![]() |
很可能是仿真模型不完备,忽略这个信号试试。 |
实际使用仅显示时不需要这个读忙,注释掉就可以。 |
Lcd1602不检测忙状态也是可以的。 #define LCD_DATA P0 //液晶看数据口定义 sbit LCD_RS=P3^2; //LCD1602数据/命令选择引脚,H:数据,L:命令 sbit LCD_RW=P3^3; //LCD1602读写引脚,H:数据寄存器,L:指令寄存器 sbit LCD_EN=P3^4; //LCD1602使能引脚,下降沿触发 void Delay(uint i) //延时函数 { while(i--); } void Delay_MS(uint z) //z*1MS延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void Lcd_W_Com(uchar com) //液晶写指令函数 { LCD_RS=0; LCD_RW=0; LCD_DATA=com; Delay(20); LCD_EN=1; Delay(20); LCD_EN=0; } void Lcd_W_Dat(uchar dat) //液晶写数据函数 { LCD_RS=1; LCD_RW=0; LCD_DATA=dat; Delay(20); LCD_EN=1; Delay(20); LCD_EN=0; } void Lcd_Show_Str(uchar hang,add,uchar *p)//液晶写字符串函数 { if(hang==1) //液晶第一行 Lcd_W_Com(0x80+add); else //液晶第二行 Lcd_W_Com(0x80+0x40+add); while(1) { if(*p=='\0') break; Lcd_W_Dat(*p); //写入数据 p++; } } void Lcd_Init() //液晶初始化 { Lcd_W_Com(0x38); //数据总线为8位,显示2行,5x7点阵 Lcd_W_Com(0x0c); //开显示,有光标,光标闪烁 Lcd_W_Com(0x06); //光标自动右移 Delay(1000); //等待设置完成 } |