|
示波器波形是按 (LCD_EN_1;delay_nus(10);)以下代碼測試的,
當“LCD_EN_1;delay_nus(5);”這樣就會亂碼,但波形不明顯,按這個測試當E=15uS時不可靠,見圖片顯示不完整。
/*********************************************************************
*功 能:寫入LCD初始化時的命令,不可以檢測忙狀態(tài)
*********************************************************************/
void LCD_WriteInitcmd(uchar cmd)
{
LCD_RS_0;
delay_nus(1);
LCD_RW_0;
delay_nus(1);
DATAOUTCLR;
DATAOUT |= cmd;
LCD_EN_0;
delay_nus(1);
LCD_EN_1;
delay_nus(10);
LCD_EN_0;
delay_nms(1);
}
/*********************************************************************
*名 稱:LCD_Writecmd()
*功 能:寫指令到LCD1602,指令數(shù)據(jù)占一個字節(jié)
*入口參數(shù):cmd:待寫入的指令
*出口參數(shù):無
*********************************************************************/
void LCD_Writecmd(uchar cmd)
{
while(LCD_busy());
LCD_RS_0; //對同一個寄存器的兩次寫入,中間延時一會
delay_nus(1);
LCD_RW_0;
delay_nus(1);
LCD_EN_0;
delay_nus(1);//產(chǎn)生脈沖
DATAOUTCLR;
DATAOUT |= cmd;
LCD_EN_1;
delay_nus(10);//必要的延時
LCD_EN_0; //下降沿,LCD1602開始工作
delay_nus(1);
}
/*********************************************************************
*名 稱:LCD_Writedata()
*功 能:寫一字節(jié)數(shù)據(jù)到LCD1602
*入口參數(shù):dat:無符號字節(jié)類型,0~255 包括各個ASCII碼字符
*出口參數(shù):無
*********************************************************************/
void LCD_Writedata(uchar dat)
{
while(LCD_busy());
LCD_RS_1;
delay_nus(1);
LCD_RW_0;
delay_nus(1);
DATAOUTCLR;
DATAOUT |= dat;
delay_nus(1);
LCD_EN_1;
delay_nus(10);
LCD_EN_0;
delay_nus(1);
}
|
|