1、简介
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制
2、数据
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和 数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
3、时序图
数字1
数字0
时序分析:
a : dht = 1
b :dht = 0
延时30ms
c: dht = 1
在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在!
代码实现:
#include "reg52.h"
sbit LED = P3^7;
sbit dht = P2^7;
void Delay30ms() //@11.0592MHz
{
unsigned char i, j;
i = 54;
j = 199;
do
{
while (--j);
} while (--i);
}
void Delay60us() //@11.0592MHz
{
unsigned char i;
i = 25;
while (--i);
}
void check_DHT()
{
//a点dht = 1
dht = 1;
//b点dht = 0
dht = 0;
//延时30ms
Delay30ms();
//c点dht = 1
dht = 1;
//在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在
Delay60us();
if(dht == 0){
LED = 0;//亮灯说明模块存在
}
}
void main()
{
LED = 1;
check_DHT();
while(1);
}