求大神指点:12864判忙,一直为忙程序卡死在那,读取数据时,读出来的一直为高0XFF。

求大神指点:12864判忙,一直为忙程序卡死在那,读取数据时,读出来的一直为高0XFF。,第1张

问题可以分三种来讨论:

1、时序问题:液晶的时序,要适当加一些延时,单片机不一样,延时就不一样,自己试着做一下。

2、软件问题烂消:液晶的读写功能时序是否满足? 程序有无错误?

3、硬件问题:液晶的忙脚会不会因为焊接的原因一直拉高? 再有就是液晶驱动芯片是否坏掉?

第一,建议你先用别人做好的12864模块板子,取下他们的液晶模块,安装上你的液晶模块,确保你的液晶可以正旦历桥常使用。

第二,看看别人的液晶驱动程序,你写的程序在时序功能实现上是不是对的(初始化程序,选屏、选内存区域,输入字符,给出使能信号,读回忙信号等等)。

第三,在各个时序部分加入延时,比模猛如使能信号,让它给一会儿,读取信号也让它多等一会儿才读。

一般液晶就这些问题,没什么特别的。

我理解的赋0x00是一个初始化端口,然后后面的DATA赋给dat,是因为用了读取状态的命令,DI=0,RW=1,EN=1。这个命令表示的是读取状态,让dat得到液晶显示乱团器的状哗毕橘态,进而判断第7位busy信号是否为0,其数滑实还有个可能就是程序的功能没有作用,只是起到了一个延时的作用,因为有些12864是很快的,不需要去检测忙信号,有时我用着这个也很纠结,只能单纯的按照延时来理解了,比如说这个判断方法:

void CheckState(void)

{

unsigned char i

Databuffer = 0xff

LCD_RS=0

LCD_RW=1

LCD_EN=1

for(i=0i<20i++)

if( (Databuffer &0x80) != 0x80 ) break //D7=0 空闲退出

LCD_EN=0

}

理解仅供参考~~~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12491794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存