很多资料里有介绍1602在送指令或数据之前需要检测“忙”状态,资料上是这样讲的:<br /><br />BF为忙碌信号(Busy Flag,简称BF),当BF为1时,不接收微机送来的数据或指令;当BR为0时,接收外部数据或指令,所以,在写数据或指令到LCD之前,必须查看BF是否为0;<br /><br />请教大侠们:这个检测“忙”状态要掌握怎样的时序啊?下面的这种写法对吗?<br />DELAY: MOV P1,#0FFH ;P1为D0-D7数据端口。<br /> CLR RS<br /> SETB RW<br /> CLR E<br /> NOP<br /> SETB E <br /> MOV A,P1<br /> JZ DELAY<br /> RET <br />经调试,这种方式调不过。<br />我看过一些别人的程序,有些根本就不去检测“忙”,直接用个记数延时,请问真正的读“忙”是怎么样检测的呢?请给个子程序或完整的程序参考,谢谢! |
|