完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "typedef.h"
#include #include "TemDHT11.h" #ifndef _DHT11_TYPE #define _DHT11_TYPE //连接端口 #define DHT11_Dir P2DIR #define DHT11_In P2IN #define DHT11_Out P2OUT #define DHT11_Bit BIT4 #endif //8bit湿度+8bit湿度小数点 //8bit温度+8bit温度小数点 //数据位为0是高电平26~28us | 1高电平70us u8 DHT11_Data[5] = {0}; //从DHT11中读到的数据 void read_DHT11(u8 *Data) { u8 re,m,n,Time_out; DHT11_Dir &= (~DHT11_Bit); //引脚为输入 for(n = 0; n < 5; n++) { for(m = 0; m < 8; m++) { while( !(DHT11_In & DHT11_Bit) ); //每1bit以50us低电平时限开始,直到高电平到来 delay_us(30); re = 0; if((DHT11_In & DHT11_Bit)) //30us后还是高电平说明是1 { re = 1; } Time_out = 2; while((DHT11_In & DHT11_Bit) && (Time_out++ )); if(Time_out == 1) //超时处理 { break; } *Data <<= 1; if(re) { *Data |= 0x01; } } Data++; } } //DHT11的握手协议模拟和数据的读取 u8 DHT11_GetData(void) { u8 o,sum; DHT11_Dir |= DHT11_Bit; DHT11_Out &= ~DHT11_Bit; //拉低,发出开始信号 delay_ms(18); //拉低18ms DHT11_Out |= DHT11_Bit; //拉高20us等待 delay_us(20); DHT11_Dir &= (~DHT11_Bit); if( !(DHT11_In & DHT11_Bit) ) //DHT11响应 { while( !(DHT11_In & DHT11_Bit) ); //80us低电平,等待DHT11的响应信号 while( (DHT11_In & DHT11_Bit) ); //DHT11准备发送数据 read_DHT11(DHT11_Data); //主机接收数据 sum = 0; for(o = 0; o < 4; o++) //数据校验 { sum += DHT11_Data[o]; } if(sum != DHT11_Data[4]) { return 0; } else { return 1; } } return 0; } //对温度湿度进行格式化(如果获取温度成功) void DHT11_format(char *Des_str) { Des_str[0] = DHT11_Data[0]/10 + 0x30; Des_str[1] = DHT11_Data[0] + 0x30; Des_str[2] = '.'; Des_str[3] = DHT11_Data[1]/10 + 0x30; Des_str[4] = DHT11_Data[1] + 0x30; Des_str[5] = '%'; Des_str[6] = ' '; Des_str[7] = DHT11_Data[2]/10 + 0x30; Des_str[8] = DHT11_Data[2] + 0x30; Des_str[9] = '.'; Des_str[10] = DHT11_Data[3]/10 + 0x30; Des_str[11] = DHT11_Data[3] + 0x30; Des_str[12] = 'C'; Des_str[13] = 0; } |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
817浏览 0评论
179浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 21:13 , Processed in 1.365240 second(s), Total 67, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号