一、非标协议外设——LCD602显示
LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 16×02 即 32 字符(16列2行)
二、简介
在网上看到一篇博客,讲的很详细,链接在这http://admin.guyuehome.com/42685 LCD1602屏幕简介(全网最详细教程) - 古月居LCD1602屏幕简介(全网最详细教程)http://admin.guyuehome.com/42685
这里简单总结一下:
让lcd160显示字符其实就是在哪显示和显示什么的问题
lcd显示哪个位置时,即显示地址时,最高位必须为1
lcd1602共有16跟线其中数据和指令是共用D0-D7的,当RS为1写数据,RS为0,写地址
每次在写之前都要读一下看看是否在忙(也就是是否在写数据或地址)
三、遇到的问题
在写检查函数的时候,即就是文章中说的check_busy( )函数时,自己有一处没有搞明白,下面是函数
下面是写地址的函数,我没明白的地方是,当在调用写数据和写地址时,每次都要调用检查是否忙的函数,也就是数据最高位D7是否为一,刚开始给dataShow初始化0x80,是为了能够进去判断,但是后面dataShow没有被赋值,所以它就一直在check_busy()的while循环中出不来,既然出不来,那就卡在check_busy()里了,不会向下执行,可是下板后确发现可以显示,所以自己在这块想了好久。
后来我想通了,仔细看这块的赋值,databuffer 就是那8个数据引脚呀 !
虽然别人给我这么说,我还是没有理解,可是后来我懂了!仔细看代码的后半段,它是在读数据呀,