|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教HD44780 LCD驱动的两个问题... |
作者:碧水长天 栏目:单片机 |
小弟最近也在自学PIC,手中有一块SMC1602A的字符型的LCD(16字x2行),其控制器为HD44780(有可能是与HD44780兼容),在实验过程中,有两个问题不解,请前辈指教: 1.关于HD44780的使能端E的操作:究竟其在上升沿有效还是下降沿有效? 我在写控制字和数据的过程中,发现,两种操作均能使显示结果正常: RS EQU 0 ;RA0连RS,RA1连E,R/W接地 E EQU 1 ... _write ; 写数据子程序 movwf PORTC ; 写数据到RC(与DB0~7相连) bsf PORTA,RS ; RS为高,写数据 bcf PORTA,E ; ①* call delay4ms ; bsf PORTA,E ; ②* retlw 0 ... *注,将①或②两条指令互换,显示结果一样正常.... 请高人指点... 2.关于LCD控制器初始化过程中,显示位置的确定问题: 同样型号的LCD(16字x2行)中,如果要在第一行显示一个字符,是否是先将 0x80作为控制字写入,然后再写入该字符的ASCII码数据? 在第2行显示则将0xc0作为控制字写入,然后再写入该字符的ASCII码数据? 请斑竹和各位前辈指点小弟,感激不尽... * - 本贴最后修改时间:2004-11-22 22:36:05 修改者:碧水长天 |
2楼: | >>参与讨论 |
作者: xieyuanbin 于 2004/11/23 8:33:00 发布:
不好意思 HD44780那种我没用过。还是看一下数据手册吧。 一般来说使能端没有上升沿或下降沿之分,只有高低电平之分,一般是高电平有效,有的有2-3个使能端作为寻址用。 LCD模块一般是先写控制字、地址等,然后再写显示内容。 |
3楼: | >>参与讨论 |
作者: 碧水长天 于 2004/11/23 17:30:00 发布:
谢谢... 经过调试,验证了主题帖中第2个问题:若要在第一行第一个字符位显示数据,则写入的控制字为0x80,第二行第一个字符则为0xc0,第二个字符则为0xc1... 至于E的使能电平,有的书上说上升沿有效,有的书上说下降沿有效,不过在有效时需保持至少410ns的延迟是必须的,因此,在我上面的程序中,虽然二者都可以,但依然不能证明是上升沿有效还是下降沿有效,因为4MHZ的PIC16F877A,每条指令的执行周期为250ns,两条指令也可以达到延迟410ns的要求... 不过,我明天把 bcf PORTA,E ; ①* call delay4ms ; bsf PORTA,E ; ②* 中的call delay4ms语句给去掉,然后再互换①和②,相信也许能得到正确答案... |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |