LCD1602 等液晶屏使用注意事项
很多人都在使用 LCD1602 等液晶做显示,结合我自己使用的体会,说几点:
一、为什么开机后,程序中写的开机菜单(如 logo 等)没有显示就直接进入后面的代码,而且极容易
出现满屏乱码?
答:系统的电源从上电到稳定要有几十毫秒甚至更长的时间,这段时间极易使单片机程序走乱,或者
开始几行代码没有正确执行。解决的方法是在配置位(--CONFIG())中一定要加入上电定时使能位:
PWRTEN。这样就可以使得单片机在上电时的 72MS 内保持复位状态,避免由于电压还未稳定而发生程
序执行错误等问题。
二、程序可以正确执行,也能正确显示,但运行一段时间后,在字符间隔的空白处会出现乱码,如何
解决?
答:这可能是干扰所导致的,可以这样解决:在字符间隔的空白处,要写入空格符补齐(注意:空格
也是字符!),如数组里的字符串,即使不足 16 位,后面也要用空格补齐到 16 位。其他没有字符的空白
处,同样要写入空格,总的原则是:所有字符间隔的空白处,一定不要使它们处于游离状态!
三、为什么在清屏之后的显示内容上,往往会缺失第一行前面的几个字符?
答:清屏是要耗时的。因此在清屏命令之后一定要安排一条延时 50MS 以上的命令,不然因为延时不
够,单片机来不及,就会使得第一行前面几个字符来不及写。形成空格,或所有字符都会退后几个位置。
四、为什么屏幕上显示的字符和程序中设定的位置不同,如退后几格?
答:仍然是要正确的安排延时的问题。很多朋友的程序可能是引用书上或网上下的,这时要特别注意
的是:原来使用的晶振的频率和你现在使用的晶振是否一致? 举一例:如果原来的程序是在 4M 时用的,那
你引用后是在 8M 中使用,那所有的延时函数的时间都不对了(延时时间减少了一半!),LCD1602 在
使用中,很多地方都安排有延时,如果延时时间不够,就不能正确显示。解决的办法是重新修改延时函数
的值,使之符合要求。
五、程序可以正确执行,也能正确显示,但连续运行一段时间后(可能几个小时到几天),显示屏上
原来正确显示的字符会变成乱码。如何解决?
答:有些人喜欢将屏幕上一成不变的的那些字符,写在大循环之前,即一次写成之后,永远不再改变,
这样做从道理上说并无问题,程序也比较简单明了。但是如果长时间运行,可能遇到干扰等原因,会使个
别字符出现乱码。我的做法是在大循环中,安排一定的时间刷新一次屏幕(重写一次),这样即使因干扰出
现乱码,也能及时更新。刷新的安排有多种方法:如安排在更新数据的同时更新那些不变的字符,比如温
度显示, (如 28*C) 温度值是不断更新的,但*C 是永远不要更新的。实际上程序中可能还有其他功能,
评论0