首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

LCD1602忙碌状态检测,该怎么解决

2012-04-16 
LCD1602忙碌状态检测请问LCD忙碌状态是什么意思啊?有必要要检测忙碌状态吗?看到了这样一条程序bit lcd_bus

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控制器的电路的内部寄存器
读操作时,其内容就出现在数据总线上

热点排行