LCD1602读忙总是高电平为什么
发布网友
发布时间:2022-09-05 12:02
我来回答
共1个回答
热心网友
时间:2024-01-27 01:14
bit lcd_busy()
{
bit result;
LCD_RS=0; //指令
LCD_RW=1; //读
LCD_EN=1; //能
_nop_();
_nop_();
_nop_();
_nop_();
result=(bit)(P0&0x80);
LCD_EN=0;//不能
return result;
}
这个是检测LCD忙否的函数
其中result为0 LCD空闲 为1 LCD忙
主要看result=(bit)(P0&0x80); 0x80二进制是10000000 因为数据由低位开始到最高位结束,这句意思就是看P0口的最高位是否是1,如果是1说明P0口最后的数据还没传完,此时 P0&0x80=1; LCD忙碌
否则 P0&0x80=0;LCD空闲