欢迎来到天天文库
浏览记录
ID:42143901
大小:133.55 KB
页数:9页
时间:2019-09-09
《1602的DHT11温湿度显示程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机:STC89C52RC功能:1602实时显不温湿度硬件连接:P2.7口为通讯口连接DHT11,DHT11的电源和地连接单片机的电源和地****************************************************************#inelude#ineludesbitP2_7=P2A7;〃定义DHT11通信10口typedefunsignedcharU8;号8位整型变量*///typedefsignedcharS8;号8位
2、整型变量*/typedefunsignedintU16;号16位整型变量*///typedefsignedintS16;/*definedforunsigned8-bitsintegervariable/*definedforsigned8-bitsintegervariable/*definedforunsigned16-bitsintegervariable/*definedforsignedbitsintegervariable号16位整型变量*///typedefunsignedlong1)3
3、2;号32位整型变量*///typedefsignedlongS32;号32位整型变量*///typedeffloatF32;浮点数(32位长度)*///typedefdoubleF64;度浮点数(64位长度)*//*definedforunsigned32-bitsintegervariable/*definedforsignedbitsintegervariable/*singleprecisionfloatingpointvariable(32bits)单精度/*doubleprecisionf
4、loatingpointvariable(64bits)双精**********************************************变量左义***********************************************U8U8FLAG,k;U8U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata,RH_shi,RH_gezT_shizT_ge;U8U8T_data_H_t
5、emp/U8T_data_L_temp,U8RH_data_H_temp/U8RH_data_L_temp/U8checkdata_temp;U8U8comdata;voidDelay_l(U16j){U8i;for(;j>0;j-){for(i=0;i<27;i++);}}voidDelay_10us(void){U8i;}voidCOM(void)U8i;for(i=0;i<8;i++)U8FLAG=2;while((!P2_7)&&U8FLAG++);Delay_10us();Delay_10u
6、s();Delay_10us();U8temp=0;if(P2_7)U8temp=l;U8FLAG=2;while((P2_7)&&U8FLAG++);if(U8FLAG==l)break;〃超时则跳出for循环〃判断数据位是0还是1//如果高电平高过预定0高电平值则数据位为1U8comdata«=l;U8comdata
7、=U8temp;//0}//rof***************************************************湿度读取子程序以下变量均为全局变量——温度高8
8、位HU8T_data_H—-温度低8位==U8T_data_L湿度高8位=U8RH_data_H-湿度低8位=U8RH_data_L-校验8位==U8checkdata——调用相关子程序如下Delay();,Delay_10us();,COM();****************************************************voidRH(void){〃主机拉低18msP2_7=0;Delay_l(180);P2_7=l;〃总线由上拉电阻拉高主机延时20usDelay_10us
9、();Delay_10us();Delay_10us();Delay_10us();〃主机设为输入判断从机响应信号P2_7=l;〃判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P2_7)//T!{U8FLAG=2;〃判断从机是否发出80us的低电平响应信号是否结束while((!P2_7)&&U8FLAG++);U8FLAG=2;〃判断从机是否发出80us的高电平,如发出则进入数据接收状态while((P2_7)&&U8FLAG++)
此文档下载收益归作者所有