51单片机1602LCD液晶屏关于判忙的问题 _nop_();?

bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(DataPort & 0x80);
}
判忙原理我懂不用解释
_nop_()函数用来延时我也知道不用解释
但我想问的是,这里为什么要延时
如果我直接
EN_CLR;
EN_SET;
这2句话中间不加_nop_()会有什么后果?
吗?

EN_CLR; EN_SET;这2句话中间不加_nop_()由于输出脉冲电平时间太短,可能会无效。你可看看DATASHEET中该引脚对脉冲电平持续时间的要求,如果低于单个机器周期的时间,可以不加。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-01

参考资料:LCD1602中文说明书

这个1602判忙函数 _nop_();是什么意思 还有返回的(DataPort & 0x80...
1602读取状态,最高位为1时表示1602处于忙碌状态,不能继续执行指令,只有为0时才能进一步操作。这在1602的手册上有详细说明的,你没仔细看啊!

LCD 1602显示字符,编写程序的时候,为何要弄一个忙信号判断函数?这个...
比如要显示abc,则这样操作,写a---判忙---写b---判忙---写c---判忙。这样就不会出错了。这几年推出的lcd,像手机的屏响应速度就比较快,而1602这个古董我用示波器测过,大约40us左右的忙处理时间,而很多速度快的单片机的指令周期都是ns级的。也就是说单片机相当一段时间都在‘等’LCD。incl...

关于LCD1602程序的问题。求教。。为什么老是提示 error C141: syntax...
你这个程序写的乱七八糟的。最起码要包含reg52.h,要不所有51单片机的寄存器都不能用。还有sfr是定义特殊寄存器的,你用sfr定义了一个DBPort给定了输出值,可是之后看你DBPort的用法又是当输入用的。另外,sfr DBPort = 0x80;这句之后又莫名其妙出来一对大括号,也没有函数名(估计应该是判忙...

AVR单片机如何用12864\/1602显示屏显示点亮小灯的个数。
1602只是一个显示的输出装置。点亮小灯 的数量应该由单片机查询得出,然后转换后输出显示到液晶上

相似回答