标题:
请教12864zw液晶显示屏单片机驱动问题!
[打印本页]
作者:
banqiao
时间:
2018-4-1 11:44
标题:
请教12864zw液晶显示屏单片机驱动问题!
请教各位大侠,在驱动12864zw液晶时出现如下问题,不得其解,本着学习到底的精神请教大家,一探究竟。谢谢了!!!!!!
1、在测试液晶忙闲时程序如下
void read_BF()
{
bit aa;
uchar i;
RS=0;
RW=1;
E=1;
delayus(1); //延时40微秒
aa=(bit)(P0&0x80);
E=0;
while(aa);
}
问题:当不加延时不能检测液晶忙闲,加延时且延时远远大于技术说明要求的时间才可正常检测忙闲。但网上好多程序都没加延时,也可正常
运行,液晶的技术说明要求延时都是纳秒级的,但实际要延时几十微秒才行,不知为啥,请高手解惑。
2、把测试液晶忙闲时程序修改如下
void read_BF()
{
bit aa;
uchar i;
RS=0;
RW=1;
E=1;
delayus(1); //延时40微秒
aa=P0^7;
E=0;
while(aa);
}
问题:如果修改成上面,则不能正常运行,停止在while(aa)处,请解惑。
3、液晶初始化如下:
void lcd_init()
{
LCD_PSB = 1; //并口方式
lcd_wcmd(0x34); //扩充指令操作
lcd_wcmd(0x30); //基本指令操作
lcd_wcmd(0x0f); //显示开,关光标
lcd_wcmd(0x01); //清除LCD的显示内容
}
问题:按照以上程序可正常运行,但把基本指令操作放到扩充指令操作之前,程序就不能正常运行,显示出现错误请高手解惑。
作者:
bailoao
时间:
2018-4-1 14:37
把while上面到e=1用大括号靠起来再试试。建议再复习下c语言,这是基础。
作者:
yzwzfyz
时间:
2018-4-1 15:29
LCD忙不忙与你的程序无关,它有自已“忙”表求法则。所以延时测试它,与不延时测试它都可以。
你要认真搞清楚LCD的驱动逻辑。并考虑你的程序逻辑是否合理。
如果不考虑LCD忙不忙,强行对它作业会发生什么呢?手册上是如何说的呢?你又是如何评估的呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1