资源描述:
《DHT11完成例程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/********************************************************************************************///除了dht11的接口外,其他的电路原理图与天祥的C51板对应//现象是循环显示温度和湿度各显示三秒#include"dht11.h"#includesbitDULA=P2^6;//数码管位定义sbitWELA=P2^7;staticunsignedcharflag;//中断计数标志static
2、unsignedcharcodearray[]={//数码管编码0x3f,0x06,0x5b,0x4f,0x6,0x6d,0x7d,0x07,0x7f,0x6f};externintwendu,shidu;staticvoidInitTime(void);voidDelay_1ms(unsignedintms);staticvoidSMG_Display(unsignedintvalue);intmain(void){unsignedcharmark=0;//先等上电稳定Delay_1ms(1000
3、);//因为读一次数据dht11才会触发一次采集数据.//即在先使用数据时采集一次数据ReadTempAndHumi();//因为在两次采集数据需一定的时间间隔,这里还可减少Delay_1ms(3000);//设定定时器InitTime();while(1){//三秒读一次温湿度if(flag==60){flag=0;mark++;/*//读温湿度,可检测函数调用是否失败,//函数返回OK(1)表示成功,返回EROR(0)表示失败//OK和EROR是在dht11.H中定义的宏*/ReadTempAn
4、dHumi();}if(mark%2==0){//显示温度SMG_Display(wendu);}else{//显示湿度SMG_Display(shidu);}}return0;}//设定定时器staticvoidInitTime(void){TH0=(unsignedchar)((65535-50000)>>8);TL0=(unsignedchar)(65535-50000);TMOD=0X01;TR0=1;ET0=1;EA=1;}//数码管显示函数staticvoidSMG_Display(un
5、signedintvalue){unsignedcharge,bai,shi;ge=value%10;shi=value%100/10;bai=value%1000/100;WELA=1;P0=0XFE;WELA=0;P0=0XFF;DULA=1;P0=array[bai];DULA=0;Delay_1ms(2);WELA=1;P0=0XFD;WELA=0;P0=0XFF;DULA=1;P0=array[shi];P0
6、=0x80;/*显示小数点*/DULA=0;Delay_1ms(2);WELA=
7、1;P0=0XFB;WELA=0;P0=0XFF;DULA=1;P0=array[ge];DULA=0;Delay_1ms(2);}//中断函数voidtimer(void)interrupt1{TH0=(unsignedchar)((65535-50000)>>8);TL0=(unsignedchar)(65535-50000);flag++;}/****************************************************************************
8、****************/二、保存文件名dht11.h(保存时必须命名为dht11.h)/********************************************************************************************//********************************************************************************************/#ifndef__dht11_H
9、__#define__HDT11_H__//设定标志(staticunsignedcharstatus)的宏值#defineOK1#defineEROR0externvoidDelay_1ms(unsignedintms);//函数的返回值表示读取数据是否成功OK表示成功EROR表示失败externunsignedcharReadTempAndHumi(void);#endif/*********************************************