内容发布更新时间 : 2025/7/20 15:19:54星期一 下面是文章的全部内容请认真阅读。
中北大学毕业论文
Write_Comm(0x01); //清显示 Write_Comm(0x80); //写首地址 for(a=0;a<16;a++) {
d=dispBUF[a];
if((a>11)&&(a<14)) {
d=numcode[num[a]]; }
if(14==a) { d=0xdf; }
Write_Data(d); }
Write_Comm(0xc0); for(b=16;b<33;b++) {
d=dispBUF[b]; if((b>24)&&(b<29)) {
d=numcode[num[b]]; }
Write_Data(d); } }
/*********检查LCD忙状态***********/ bit LCD_BUSY() { bit BS; RW = 1; RS = 0; E = 1; delay1ms(1); BS =(bit)(P0&0x80);
//如果是结果位到num[]里面读取
//待显示的结果
//写入要显示的数据
//换行,换到第二行
//写入要显示的数据(数据传输)
//lcd_busy为1时,忙,等待。lcd-busy
为0时,闲,可写指令与数据
41
中北大学毕业论文
E = 0; return BS; }
/*******************写指令函数******************************/ void Write_Comm(uchar lcdcomm) //写指令
{
while(LCD_BUSY()); RS = 0; RW = 0; E = 1; delay1ms(1); P0= lcdcomm; delay1ms(1); E = 0; }
/*********************写数据函数****************************/ void Write_Data(uchar lcddata)//写数据 {
while(LCD_BUSY()); RS = 1; RW = 0; E = 1; delay1ms(1); P0= lcddata;
delay1ms(1); //判断是否忙状态 E = 0; }
/*********************初始化LCD****************************/ void Init_LCD() {
delay(); //稍微延时,等待LCD进入工作状态 Write_Comm(0x01); //清显示 Delay(2);
Write_Comm(0x38); //8位2行 5*8 Delay(2);
Write_Comm(0x06); //文字不动,光标右移
42
中北大学毕业论文
Delay(2);
Write_Comm(0x0c); //显示开/关,光标开闪烁开 Delay(2); }
/*************************延时n*15US函数*************************/ void delay15(uchar us)