51单片机dht11代码
时间: 2023-07-02 11:11:41 浏览: 35
以下是51单片机使用DHT11温湿度传感器的代码示例:
```c
#include <reg52.h>
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
sbit DHT11_PIN = P0^0;
// 延时函数,延时 us 微秒
void delay_us(uint16_t us) {
while (us--) {
_nop_();
_nop_();
_nop_();
}
}
// DHT11 初始化
void DHT11_Init() {
DHT11_PIN = 1;
delay_us(30);
DHT11_PIN = 0;
delay_us(18000);
DHT11_PIN = 1;
delay_us(20);
}
// DHT11 数据读取
uint8_t DHT11_Read_Byte() {
uint8_t i;
uint8_t dat = 0;
for (i = 0; i < 8; i++) {
while(!DHT11_PIN);
delay_us(30);
if(DHT11_PIN == 0) {
dat <<= 1;
} else {
dat <<= 1;
dat |= 0x01;
}
while(DHT11_PIN);
}
return dat;
}
// DHT11 数据解析
uint8_t DHT11_Read_Data(uint8_t *temp, uint8_t *humi) {
uint8_t buf[5];
uint8_t i;
DHT11_Init();
if (DHT11_PIN != 0) {
return 1;
}
delay_us(80);
if (DHT11_PIN != 1) {
return 1;
}
delay_us(80);
for (i = 0; i < 5; i++) {
buf[i] = DHT11_Read_Byte();
}
if ((buf[0] + buf[1] + buf[2] + buf[3]) != buf[4]) {
return 1;
}
*humi = buf[0];
*temp = buf[2];
return 0;
}
void main() {
uint8_t temp, humi;
while (1) {
if (DHT11_Read_Data(&temp, &humi) == 0) {
// 读取成功,温度和湿度保存在 temp 和 humi 变量中
} else {
// 读取失败,可在此处进行错误处理
}
}
}
```
注意:以上代码仅供参考,实际使用时还需要根据自己的硬件环境进行调整。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)