1602液晶显示乱码

2019-07-16 01:33发布

写了一个用1602液晶显示时钟、闹钟、温度程序,为什么单片机上电后先显示乱码,过一会儿才显示正常,为什么啊?我的程序有6k多,会是因为程序太大,51单片机执行慢了的原因吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
那低头一笑的温
2019-07-16 10:37
是的, LCD_Init()之后,要加上
LCD_Write_Com(0x80);for(i=0;i<16;i++) LCD_Write_Data(' ');
LCD_Write_Com(0xc0);for(i=0;i<16;i++)  LCD_Write_Data(' ');
清缓存,也就是显示全屏空格,你也可以把这个定义成一个清显示的函数,以后会用到的:
#defined   LCD_CLEAR_FIRST_LINE      0
#defined   LCD_CLEAR_SECOND_LINE   1
#defined   LCD_CLEAR_ALL_LINE          2

void LCD_Clear(unsinged char   ClearLine)
{
      switch(ClearLine)
      {
              case  LCD_CLEAR_FIRST_LINE:
                        LCD_Write_Com(0x80);for(i=0;i<16;i++) LCD_Write_Data(' ');
                        break;
             case   LCD_CLEAR_SECOND_LINE :
                        LCD_Write_Com(0xc0);for(i=0;i<16;i++)  LCD_Write_Data(' ');
                        break;
             case  LCD_CLEAR_ALL_LINE:
                        LCD_Write_Com(0x80);for(i=0;i<16;i++) LCD_Write_Data(' ');
                        LCD_Write_Com(0xc0);for(i=0;i<16;i++)  LCD_Write_Data(' ');
                        break;
             default:
                       break;
         }
}

一周热门 更多>