驱动液晶LM016L的问题

[复制链接]
3137|1
 楼主| mhjerry 发表于 2011-7-7 11:38 | 显示全部楼层 |阅读模式
本帖最后由 mhjerry 于 2011-7-8 20:43 编辑

为什么资料上说需要40us才能完成此过程,而我仅仅一个NOP,NOP不是一个机器周期吗,我用的是51,12MHZ,那就是1us了,就解决问题了,纠结中~~~
判断液晶是否处于忙状态,即判断BF的值。根据资料:
“当RS=0,R/W=1是执行读取的操作,这时候,LCM的忙碌标志BF将放置在数据总线上的D7位。。。整个执行过程需要40us。”
下面是我的代码:


  1. CHECK_BF:
  2. PUSH ACC
  3. BUSY: CLR RS ;RS清零
  4. SETB RW   ;RW置为1
  5. SETB EN    ;使能EN
  6. NOP       ;注意延时(去掉就不可以正常工作,我纳闷为什么这里延时1US就OK了?)
  7. MOV A,LCD ;LCD代表液晶的8位值(前有语句LCD  EQU  P2)
  8. CLR EN
  9. JB ACC.7,BUSY
  10. CALL DELAY
  11. POP ACC
  12. RET
  13. ;============================================================

电路图:
 楼主| mhjerry 发表于 2011-7-7 18:06 | 显示全部楼层
NOP去掉就不行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:本人回复,均代表个人观点。 个人经验不错,如有错误,敬请指教!

0

主题

103

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0