每块板子电路不同,我这个需要拔掉j6接线帽才可以使用lcd。大家研究好自己板子的电路,或者询问商家,有时并不一定是程序问题
要控制1602,整个.c代码的开始肯定是定义引脚,通过单片机原理图,我这块单片机的P2_7,P2_6,P2_5引脚分别接入LCD1602的RS,RW,EN引脚,P0接往数据引脚D0_0~D0_7,我们通过单片机的代码看得到,sfr定义了P2和P0,所以我们才能用sbit定义变量 sbit RS=P2^7
sbit是c51的拓展变量名,只能定义特殊寄存器的引脚。bit是变量名,用于定义一个一位的量
定义三个控制1602的引脚之后,还有D0-D7这八个数据引脚,我们可以用sfr来定义,但是用宏定义直接替换会更简单
#define DATE P2
对于忙信号检测,在51上常常陷入死循环导致程序错误,我们可以在程序中用毫秒级的延时,就可以丢掉忙信号检测。
资料手册上的初始化过程较复杂,并且多次的38h指令可以更好地初始化lcd1602
18h加延时函数可以做到流水屏效果,显示屏幕外地址上的量
之前每写入八次才能正常显示一次,可能就是忙信号检测的错误。
在安装时序图写函数时,如果不加以延时,芯片速度不够快,常常会反应不过来引脚变化,导致程序出错