使用DHT11和51单片机进行温度的读取。
1、DHT11
DHT11是非常用的温湿度传感器。其共有4个引脚,实物图网上一大把,这里就不放了,分别是VCC供电,串行单总线,NC空脚悬空就行,最后便是GND。
2、时序图
- 这是它从低功耗状态转换高速状态的时序,
从IO口输出至少18ms(不超过30ms)的低电平它就会工作了,外部低电平结束后它会输出83us的低电平作为响应信号,之后输出87us的高电平让单片机做好接收信号的准备.
![](https://img-blog.csdnimg.cn/20191222204118972.png)
2、87us高电平结束后将会接受40bit的数据那么对于dht11的单总线来说何为1何为0呢?它定义在87us高电平结束后会有54us的低电平,如果这54us低电平后有23到27us的高电平则为0,54us低电平后有68到74us的高电平则为1.
时序图如下:
最后是我们喜闻乐见的源码:
头文件。
#ifndef __LCD_H_
#define __LCD_H_
/**********************************
当使用的是4位数据传输的时候定义,
使用8位取消这个定义
**********************************/
//#define LCD1602_4PINS
/**********************************
包含头文件
**********************************/
#include<reg51.h>
//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
/**********************************
PIN