LCD1602等液晶屏使用注意事项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602等液晶屏使用注意事项
很多人都在使用LCD1602等液晶做显示,结合我自己使用的体会,说几点:
一、为什么开机后,程序中写的开机菜单(如logo等)没有显示就直接进入后面的代码,而且极容易出现满屏乱码?
答:系统的电源从上电到稳定要有几十毫秒甚至更长的时间,这段时间极易使单片机程序走乱,或者开始几行代码没有正确执行。
解决的方法是在配置位(--CONFIG())中一定要加入上电定时使能位:PWR TEN。
这样就可以使得单片机在上电时的72MS内保持复位状态,避免由于电压还未稳定而发生程序执行错误等问题。
二、程序可以正确执行,也能正确显示,但运行一段时间后,在字符间隔的空白处会出现乱码,如何解决?
答:这可能是干扰所导致的,可以这样解决:在字符间隔的空白处,要写入空格符补齐(注意:空格也是字符!),如数组里的字符串,即使不足16位,后面也要用空格补齐到16位。
其他没有字符的空白处,同样要写入空格,总的原则是:所有字符间隔的空白处,一定不要使它们处于游离状态!
三、为什么在清屏之后的显示内容上,往往会缺失第一行前面的几个字符?
答:清屏是要耗时的。
因此在清屏命令之后一定要安排一条延时50MS以上的命令,不然因为延时不够,单片机来不及,就会使得第一行前面几个字符来不及写。
形成空格,或所有字符都会退后几个位置。
四、为什么屏幕上显示的字符和程序中设定的位置不同,如退后几格?
答:仍然是要正确的安排延时的问题。
很多朋友的程序可能是引用书上或网上下的,这时要特别注意的是:原来使用的晶振的频率和你现在使用的晶振是否一致? 举一例:如果原来的程序是在4M时用的,那你引用后是在8M中使用,那所有的延时函数的时间都不对了(延时时间减少了一半!),LCD1602在使用中,很多地方都安排有延时,如果延时时间不够,就不能正确显示。
解决的办法是重新修改延时函数的值,使之符合要求。
五、程序可以正确执行,也能正确显示,但连续运行一段时间后(可能几个小时到几天),显示屏上原来正确显示的字符会变成乱码。
如何解决?
答:有些人喜欢将屏幕上一成不变的的那些字符,写在大循环之前,即一次写成之后,永远不再改变,这样做从道理上说并无问题,程序也比较简单明了。
但是如果长时间运行,可能遇到干扰等原因,会使个别字符出现乱码。
我的做法是在大循环中,安排一定的时间刷新一次屏幕(重写一次),这样即使因干扰出现乱码,也能及时更新。
刷新的安排有多种方法:如安排在更新数据的同时更新那些不变的字符,比如温度显示,(如28*C)温度值是不断更新的,但*C是永远不要更新的。
实际上程序中可能还有其他功能,
并不需要每次扫描都要进行温度转换和显示更新,如果每15秒检测一次温度,那可以安排同时更新温度值和*C.也可以用大循环计次的方式,隔一定时间刷新一次。
当然如果程序的功能比较复杂,要完成的任务比较多,使用液晶时,一定要考虑的是:不要频繁的去读写液晶,那会占用很多的机时,会严重影响任务的执行。
所以刷新屏幕、更新数据一定要安排的合理。
以上只是自己的一点体会,不对之处,请各位指正。