LCD1602忙碌状态检测
请问LCD忙碌状态是什么意思啊?
有必要要检测忙碌状态吗?
看到了这样一条程序
bit lcd_busy()
{
bit result;
rs = 0; //数据、命令选择端 1为数据
rw = 1; //读、写选择端 1为读
ep = 1; //使能控制
_nop_()
_nop_();
_nop_();
_nop_();
result=bit(P0&0x80); //LCD的D0-D7中,D7=1为忙碌,0为空闲
//result 是检测那里的数据啊?????
ep = 0;
return result;
}
先谢啦!
[解决办法]
result=bit(P0&0x80); //LCD的D0-D7中,D7=1为忙碌,0为空闲
RESULT是从LCD里读出来的状态位
PS:一个_nop_();是一个机器周期,是1us么?那延时几us作用有用么?
你的机器多快就是多少
这几个延时是给
rs = 0; //数据、命令选择端 1为数据
rw = 1; //读、写选择端 1为读
ep = 1; //使能控制
留出足够的时间,让LCD能够反应过来
把数据送到IO上,让你上面那句RESULT读
[解决办法]
可能是命令下达以后,回读数据或者状态需要一定的延时,D7为1的时候说明控制器还没有准备好回读数据
[解决办法]
那个时间是给lcd反应的 lcd反应比较慢
[解决办法]
LCD通过数据线送过来的
P0.7~P0.0
[解决办法]
LCD控制器的电路的内部寄存器
读操作时,其内容就出现在数据总线上