51单片机1602液晶初始化问题
时间:10-02
整理:3721RD
点击:
请问下,51单片机上的1602液晶初始化时为什么要进行四次显示模式设置呢?和设置一次有什么区别呢?
void LCD_Init(void)
{
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08); /*显示关闭*/
LCD_Write_Com(0x01); /*显示清屏*/
LCD_Write_Com(0x06); /*显示光标移动设置*/
DelayMs(5);
LCD_Write_Com(0x0C); /*显示开及光标设置*/
}
void LCD_Init(void)
{
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08); /*显示关闭*/
LCD_Write_Com(0x01); /*显示清屏*/
LCD_Write_Com(0x06); /*显示光标移动设置*/
DelayMs(5);
LCD_Write_Com(0x0C); /*显示开及光标设置*/
}
这是1602液晶屏要求的,PDF中对于初始化要求这样写,刚才试了下设置一次LCD_Write_Com(0x38);结果只能显示上面行,下面一行不能正常显示
设置一次应该也行的.多次有等待稳定的效果吧.
void lcd_init()
{ //LCD初始化设定
lcd_wcmd(0x38); ////16*2显示,5*7点阵,8位数据
delay(1);
lcd_wcmd(0x0c); //显示开,关光标
delay(1);
lcd_wcmd(0x06); //移动光标
delay(1);
lcd_wcmd(0x01); //清除LCD的显示内容
delay(1);
}
