驱动dht11温湿度传感器.doc

驱动dht11温湿度传感器.doc

ID:57677679

大小:168.00 KB

页数:4页

时间:2020-08-31

驱动dht11温湿度传感器.doc_第1页
驱动dht11温湿度传感器.doc_第2页
驱动dht11温湿度传感器.doc_第3页
驱动dht11温湿度传感器.doc_第4页
资源描述:

《驱动dht11温湿度传感器.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DHT11是数字的湿度传感器....6元一个买的...与它的通信方式类似于I2C总线通信.串行数据一次返回40位.数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。如果模块离芯片距离近,建议在数据线接一5k电阻上拉.时序图如下:第一次拉低要求至少18ms,之后拉高20-40us,之后DHT拉低80us后再拉高80us..之后进入数据阶段.

2、每个数据,0,1以高电平的时间长短区分.0数据高电平时间为26-28us,1为70us..不论1或者0,之前都先输出50us的低电平..数据传输完成后拉高总线.在此次的程序中用P2.1作为信息口.程序如下#include#defineHIGHP2OUT

3、=BIT1;#defineLOWP2OUT&=~BIT1;voidDelayNus(intn){CCR0=n;TACTL

4、=MC_1;//增计数到CCR0while(!(TACTL&BIT0));//等待TACTL&=~MC_1;//停止计数TACTL

5、&=~BIT0;//清除中断标志}charreceive(void)//接受函数{chartem,cnt=0;//临时变量用于存储接受数据while(cnt<8){while(!(P2IN&BIT1));//等待50us的低电平结束DelayNus(45);if(P2IN&BIT1)//长于30us定义为1{tem++;tem<<=1;while(P2IN&BIT1);//结束高电平}else{tem<<=1;}if(cnt!=7)while(!(P2IN&BIT1));//最后一次给函数返回留下时间cnt++;}returnt

6、em;}intmain(void){inti;chartemph,templ,humdh,humdl,check,cal;WDTCTL=WDTPW+WDTHOLD;_DINT();BCSCTL1&=~XT2OFF;do{IFG1&=~OFIFG;for(i=0xff;i>0;i--);}while(IFG1&OFIFG);_EINT();BCSCTL2

7、=SELM_2+SELS;//SMCLK8分频P2DIR

8、=BIT1;P2OUT

9、=BIT1;TACTL

10、=TASSEL_2+ID_3;//initedLOW;DelayNus(

11、18000);HIGH;DelayNus(30);P2DIR&=~BIT1;while(P2IN&BIT1);while(!(P2IN&BIT1));while(P2IN&BIT1);//Datacomeshumdh=receive();humdl=receive();temph=receive();templ=receive();check=receive();cal=humdh+humdl+temph+templ;if(check==cal){LPM0;}return0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。