欢迎来到天天文库
浏览记录
ID:37995021
大小:36.00 KB
页数:4页
时间:2019-05-23
《基于单片机实验系统v2的温度湿度计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机实验系统V2的温度湿度计 DHT11是集温度湿度检测于一体的数字化传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛
2、刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。为方便在单片机实验系统V2上开发温湿度程序,现根据DHT11的范例程序,结合STC12C系列单片机的特点,编写了DHT11的有关接口函数(C51语言)。请大家下载并使用在自己的系统中。 与DHT11有关的接口函数如下: //注意:系统的主频是12M,CPU:STC12C5406AD//绍兴文理学院工学院 沈红卫 2009年12月 /*delay*//*延时时间:(11T*i+4T)/12us,在12M下*//*延时10us的i约为11*/voiddelay(unsignedchari){whi
3、le(i--);} /*C:0x000F7FC8MOVR7,#0xC82T5:while(k--);C:0x0011AE07MOVR6,0x074TC:0x00131FDECR73TC:0x0014EEMOVA,R61TC:0x001570FAJNZC:00113T6:}C:0x001722RET2T*/ voiddelay18ms(void){inti;for(i=1;i<=1800;i++)delay(11);//约10us} /*接收DHT11的1字节数据函数*/ voidCOM(void){U8i;for(i=0;i<8;i++){//延时50us,等待数据开始信号结束de
4、lay(11);delay(11);//delay(11);//delay(11);//delay(11);//判断数据是0还是1while(!dht_data);if(dht_data){delay(11);//延时40us(如果是0的话,高电平只维持26~28us)delay(11);delay(11);delay(11);U8temp=0;if(dht_data)U8temp=1;//此时,如果还是高电平,则说明数据位为1,否则是0 //while(dht_data);//等待数据位传送结束,为下一位接收做好准备(此句不能用,否则死机)U8comdata<<=1;U8comda
5、ta
6、=U8temp;}}} //--------------------------------//-----湿度读取子程序------------//--------------------------------//----以下变量均为全局变量--------//----温度高8位==U8T_data_H------//----温度低8位==U8T_data_L------//----湿度高8位==U8RH_data_H-----//----湿度低8位==U8RH_data_L-----//----校验8位==U8checkdata-----//----调用相关子程序如下---
7、-------//----Delay();COM();//--------------------------------voidRH(void){//主机拉低18msdht_data=0;delay18ms();delay18ms();dht_data=1;//总线由上拉电阻拉高主机延时10usdelay(11);//主机设为输入判断从机响应信号dht_data=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行while(dht_data);if(!dht_data)//T!{ //判断从机是否发出80us的低电平响应信号是否结束delay(11);//延时40u
8、s后判断并等待结束delay(11);delay(11);delay(11); while(!dht_data); if(dht_data)//判断从机是否发出80us的高电平,如发出则进入数据接收状态{ delay(11);//延时40us后判断并等待结束delay(11);delay(11);delay(11); while(dht_data);//数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_da
此文档下载收益归作者所有