概述
1、封装信息
2、DHT11通讯总介
❶微处理器与DHT 11之间的通讯和同步, 采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。一次完整的数据传输为40bit, 高位先出。
❷数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和
❸数据传送正确时, 校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
3、DHT11唤醒工作和睡眠
❶DHT 11在没有主机唤醒的时候处于低功耗模式。
❷当需要使用的时候, MCU发送一次开始信号, DHT 11从低功耗模式转换到高速模式, 等待主机开始信号结束后, DHT 11发送响应信号, 送出40bit的数据, 并触发一次信号采集。
❸如果没有接收到主机发送开始信号, DHT 11不会主动进行温湿度采集.采集数据后转换到低速模式。
4、DHT11通讯过程
❶总线在空闲的时候为高电平
❷主机把总线拉低等待DHT 11的响应。拉低的时间必须大于18毫秒, 保证DHT 11能检测到起始信号。
❸DHT 11接收到主机的开始信号后, 等待主机开始信号结束,然后发送80us低电平响应信号。
❹主机发送开始信号结束后, 延时等待20-40us后, 读取DHT 11的响应信号。(主机发送开始信号后,可以切换到输入模式,或者输出高电平均可)
❺当最后一bit数据传送完毕后, DHT 11拉低总线50us, 随后总线由上拉电阻拉高进入空闲状态。
5、DHT11通讯时序图
❶总时序图
❷主机呼叫和DHT11回应
❸信号0表示方式
❸信号1表示方式
6、参考代码
void COM(void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; //---------------------- P2_1=0 ; //T P2_1=1 ; //T //---------------------- while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); // Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while((P2_0)&&U8FLAG++); //---------------------- P2_1=0 ; //T P2_1=1 ; //T //---------------------- //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 // 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; U8comdata|=U8temp; //0 }//rof } void RH(void) { //主机拉低18ms P2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //主机设为输入 判断从机响应信号 P2_0=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) //T ! { U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((P2_0)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; }//fi }//fi
最后
以上就是含糊宝贝为你收集整理的DHT11温湿度传感器的全部内容,希望文章能够帮你解决DHT11温湿度传感器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复