解释下面程序是怎么判断DHT11的80us响应信号的。 unsigned char U8FLAG=2; while((!P2_0)&&U8FLAG++);

为什么这两句就能检测DHT11发出了80us的低电平信号 DHT11接的单片机P2^0口89C52单片机 晶振11.0592MHZ
2026年09月25日 17:59
有1个网友回答
网友(1):

U8FLAG++是加到溢出(=0)的时候退出
从2加到256时间主要看机器周期
如果按照1us算的话 大概1ms多了

1毫秒内没接到响应信号退出

接到响应信号并记录响应信号(低电平)的时间
U8FLAG++就是记录响应信号时间的
while((!P2_0)&&U8FLAG++);
一次运算(按照机器周期1us计算)

7个机器周期 7us
接收完成信号后U8FLAG的值应该是13