|
當(dāng)我采用延時(shí)的辦法時(shí),protues仿真1602液晶能正常顯示字符,但當(dāng)我用查忙函數(shù)時(shí),1602液晶只亮不顯示字符。查忙后程序如下:
#define DATAPORT P0
#define BUSY 0x80
void ini() //LCD初始化{
rw=0;
en=0;
P2=0xff;
writeCG();
write_order(0x38,1);
write_order(0x0c,1);
write_order(0x06,1);
write_order(0x01,1);
}
void lcd_wait(void)
{
DATAPORT=0xff; //讀LCD前若單片機(jī)輸出低電平,而讀出LCD為高電平,則沖突,Proteus仿真會(huì)有顯示邏輯黃色
en=1;
rs=0;
rw=1;
_nop_();
_nop_();
_nop_();
while(DATAPORT&BUSY)
{ en=0;
_nop_();
_nop_();
en=1;
_nop_();
_nop_();
}
en=0;
}
void write_order(uchar com,uchar BusyC)
{
/* rs=0;
P2=order;
delay(4);
en=1;
delay(4);
en=0; */
if(BusyC)lcd_wait();
DATAPORT=com;
rs=0; // 選中指令寄存器
rw=0; // 寫模式
en=1;
_nop_();
_nop_();
_nop_();
en=0;
}
void write_date(uchar date)
{
/* rs=1;
P2=date;
delay(4);
en=1;
delay(4);
en=0; */
lcd_wait( ); //檢測(cè)忙信號(hào)
DATAPORT=date;
rs=1; // 選中數(shù)據(jù)寄存器
rw=0; // 寫模式
en=1;
_nop_();
_nop_();
_nop_();
en=0;
}
|
-
3.png
(146.56 KB, 下載次數(shù): 54)
下載附件
2019-12-22 18:40 上傳
-
2.png
(89.37 KB, 下載次數(shù): 39)
下載附件
2019-12-22 18:33 上傳
-
1.png
(60.41 KB, 下載次數(shù): 54)
下載附件
2019-12-22 18:33 上傳
|