点阵液晶显示实验报告(5)

2019-08-30 20:33

/*

自定义延时子函数 */

void delayms(uchar z) {

int x,y; for(x=z;x>0;x--) for(y=300;y>0;y--); } /*

判断LCD忙信号状态 */ void buys() {

int dat; RW=1; RS=0; do {

P0=0x00; E=1; dat=P0; E=0;

dat=0x80 & dat; } while(!(dat==0x00)); } /*

LCD写指令函数 */

void w_com(uchar com) {

buys(); RW=0; RS=0; E=1; P0=com; E=0;

第 21 页 共 27 页

} /*

LCD写数据函数 */

void w_date(uchar date) {

buys(); RW=0; RS=1; E=1; P0=date; E=0; } /*

LCD选屏函数 */

void select_screen(uchar screen) {

switch(screen) {

case 0: //选择全屏 CS1=0;

CS2=0; break;

case 1: //选择左屏 CS1=0;

CS2=1; break;

case 2: //选择右屏 CS1=1;

CS2=0; break;

case 3: //选择黑屏 CS1=1;

CS2=1;

break; 第 22 页 共 27 页

} } /*

LCD清屏函数:清屏从第一页的第一列开始,总共8页,64列 */

void clear_screen(screen) {

int x,y;

select_screen(screen); //screen:0-选择全屏,1-选择左半屏,2-选择右半屏 for(x=0xb8;x<0xc0;x++) //从0xb8-0xbf,共8页 {

w_com(x);

w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) {

w_date(0x00); } } } /*

LCD显示汉字字库函数 */

void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun)

{ //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-3,mun:显示第几个汉字的参数 int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) {

w_date(hanzi[mun++]); }

第 23 页 共 27 页

w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) {

w_date(hanzi[mun++]); } } /*

LCD初始化函数 */

void lcd_init() {

w_com(0x3f); //LCD开显示

w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD页初始地址,共8页 w_com(0x40); //LCD列初始地址,共64列 }

void init() {

EA=1;

EX0=1; IT0=1;

lcd_init(); //LCD初始化

//开CPU总中断

clear_screen(0); //LCD清屏幕 }

void lcd_display_0() {

if(flag==1) {flag=0;clear_screen(0);}

lcd_display_hanzi(1,0,0,0); lcd_display_hanzi(1,0,1,45);

lcd_display_hanzi(1,0,2,1); lcd_display_hanzi(1,0,3,2);

lcd_display_hanzi(2,0,0,3);、

第 24 页 共 27 页

lcd_display_hanzi(1,1,2,4); lcd_display_hanzi(1,1,3,5); lcd_display_hanzi(2,1,0,6); lcd_display_hanzi(2,1,1,7);

lcd_display_hanzi(1,2,2,8);

lcd_display_hanzi(1,3,2,10); lcd_display_hanzi(1,3,3,11); lcd_display_hanzi(2,3,0,6); lcd_display_hanzi(1,2,3,9); lcd_display_hanzi(2,2,0,6); lcd_display_hanzi(2,2,1,7);

lcd_display_hanzi(2,3,1,7); lcd_display_hanzi(1,3,3,17); }

void lcd_display_1() {

if(flag==1) {flag=0;clear_screen(0);}

lcd_display_hanzi(1,0,0,0);

lcd_display_hanzi(1,0,1,45);

lcd_display_hanzi(1,1,1,1); lcd_display_hanzi(1,1,2,2);

lcd_display_hanzi(1,2,1,46);

lcd_display_hanzi(1,2,2,47); lcd_display_hanzi(1,2,3,48); lcd_display_hanzi(2,2,0,49);

lcd_display_hanzi(1,3,3,50); lcd_display_hanzi(2,3,0,48); lcd_display_hanzi(2,3,2,51); lcd_display_hanzi(2,3,2,52); }

void lcd_display_2() 第 25 页 共 27 页

lcd_display_hanzi(1,1,3,3);


点阵液晶显示实验报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:免疫学复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: