求指导,上位机向下位机发送数据lcd1602显示
![](../imgqa/ele/mcu/mcu-3721rd.com-16893une5rqdvnmu.png)
![](../imgqa/ele/mcu/mcu-3721rd.com-168944crfpiql10o.png)
![](../imgqa/ele/mcu/mcu-3721rd.com-16897f0vsfmjszov.png)
求大神指导下问题出现在哪里。我自己猜液晶屏没正常显示应该是初始化没成功,但是不清楚为什么不成功。
漏掉张图片。
1602控制不成功,没有查忙,或用延时来替代查忙
是在清屏后边加延时来代替判忙么?
注意看1602的手册,是每次向1602写入数据或命令前都需要查忙,可以在论坛里找些例程参考参考
依稀记得以前用51的时候,P0口要上拉的。太久没用,不知道现在有没有改进。
不知小编用的哪款单片机,有的单片机没有T1,只有T0和T2.
用的stc12C5A60S2
改进了现在用的芯片内置上拉电阻
改进了现在用的芯片内置上拉电阻
stc12C5A60S2是1T单片机,要调整写命令/数据中的延时,以符合1602手册规定的时序,由于是1T单片机,delay延时函数的参数要调整,根据经验:
/*-------------------------
1ms延时子程序(12MHz 1T)
-------------------------*/
void delay1ms(uint k)
{
uint i,j;
for(i=k;i>0;i--)
for(j=892;j>0;j--);
}
各路大神,有需要采购电子元器件样品或者批量的请上淘宝店铺,店名:深圳国际电子商城
各路大神,有需要采购电子元器件样品或者批量的请上淘宝店铺,店名:深圳国际电子商城
在write_data()和write_com()两个函数里的延时不需要那么长,加几个_NOP_()就可以了,在所有的write_data()和write_com()调用之前,加延时,可以先加10个毫秒以上的延时,等能正确控制1602了,再缩短这个延时。
谢谢,找到问题了。1602头文件里其实是没有延时函数的,主函数也没有,真是尴尬死了。
感谢回复,找到问题了,头文件主函数都么有延时函数的原因。真尴尬