lcd1602判忙函数

自己写的这个判忙函数有什么问题?一直不成功,换个别人的就有行了
void Not_busy()
{
RS=0;
RW=1;
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
while(P0&0x80);
E=0;
}

第1个回答  2018-05-04
判忙本身没问题,时序要做改动
第2个回答  2018-06-01
最后的使能再打开试试

lcd1602的启动时,需要先调用一次什么函数
lcd1602的启动时,需要先调用一次函数:LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符。写入1602中要显示的数据好比油,如果以单片机的高运行速度向1602写数据就很可能造成上面所说的溢出,比如连续写入abc,结果只显示出了a,这是因为1602的显示芯片每次都要花时间来处理输入的ascii码...

单片机控制的LCD1602数字钟的C语言编程
delay(100);(这是设的延时函数,不用解释)while(temp&0x80)\/\/判忙,一旦表达式为假,即temp最高位为0,\/\/则表示1602不忙,跳出while.{temp=p0;delay(20);}\/\/把p0的的高位读入temp,延时 en=0;\/\/关闭使能信号 }每次读写操作都要调用这个busy函数 ...

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

LCD1602第一行显示为16个小黑块,仿真没问题,但是烧写到板子里就有问题...
delay(100);(这是设的延时函数,不用解释)while(temp & 0x80) \/\/判忙,一旦表达式为假,即temp最高位为0,\/\/则表示1602不忙,跳出while.\/\/把p0的的高位读入temp,延时 en=0; \/\/关闭使能信号 } 每次读写操作都要调用这个busy函数 ...

相似回答