登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请教HD44780 LCD驱动的两个问题...

作者:碧水长天 栏目:单片机
请教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
不好意思
HD44780那种我没用过。还是看一下数据手册吧。
一般来说使能端没有上升沿或下降沿之分,只有高低电平之分,一般是高电平有效,有的有2-3个使能端作为寻址用。
LCD模块一般是先写控制字、地址等,然后再写显示内容。

3楼: >>参与讨论
碧水长天
谢谢...
经过调试,验证了主题帖中第2个问题:若要在第一行第一个字符位显示数据,则写入的控制字为0x80,第二行第一个字符则为0xc0,第二个字符则为0xc1...

至于E的使能电平,有的书上说上升沿有效,有的书上说下降沿有效,不过在有效时需保持至少410ns的延迟是必须的,因此,在我上面的程序中,虽然二者都可以,但依然不能证明是上升沿有效还是下降沿有效,因为4MHZPIC16F877A,每条指令的执行周期为250ns,两条指令也可以达到延迟410ns的要求...

不过,我明天把
       bcf     PORTA,E         ; ①*
       call    delay4ms        ;
       bsf     PORTA,E         ; ②*
中的call delay4ms语句给去掉,然后再互换①和②,相信也许能得到正确答案...



参与讨论
昵称:
讨论内容:
 
 
相关帖子
关于浮点运算
请各位进来谈谈16F873的抗干扰效果
请高手指教!
【请教】如何活用Stimulus Controller?
"四十岁后,不滞于物,草木竹石均可为剑"
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号