前言
下面将介绍如何利用STC89C52单片机和DHT11温湿度模块以及HC-08蓝牙模块实现测量温湿度。以及各模块的使用方法。
一、项目要求
利用DHT11温湿度模块测量温湿度,利用HC-08蓝牙模块将数据传到手机上。
二、各模块简介
1.DHT11温湿度模块简介
1.1DHT11温湿度模块外观
1.2DHT11温湿度模块使用方法简介
1.2.1DHT11温湿度模块工作的过程
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主
机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集, 用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集, 如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。
1.2.2DHT11模块DATA引脚上40bit数据说明
8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据
+8bit校验
1.2.3DHT11模块工作的时序图
说明:
1.DATA引脚拉高
2.DATA引脚拉低(至少18ms)
3.DATA引脚拉高(20~40us)
4.如果在后面的80us内检测到DATA引脚被拉低,则说明模块存在
5.再检测DATA引脚是否被拉高
6.再检测DATA引脚,看其是否被拉低,如果拉低,则准备开始传输数据
1.2.4DHT11模块传输数据的时序图
模块给单片机传输的数据只能是0和1。我们可以通过0,1时序图的不同从而判断模块给单片机传输的数据是0还是1.
0的时序图
说明·:
1.不断检测DATA引脚是否被拉高
2.检测到被拉高后,进行延时35us
3.检测DATA引脚是否为低电平,如果是,则传输的数据为0,否则,为1。如果为1,则需要进行等待至引脚为低电平
1的时序图
2.HC-08蓝牙模块简介
2.1HC-08蓝牙模块外观
2.2HC-08蓝牙模块使用方法简介
1.使用相关的AT指令,更改模块的波特率等指标.
2.将蓝牙模块RXD与单片机的TXD相连,TXD与单片机的RXD相连.
2.3HC-08蓝牙模块的AT指令表及部分说明
说明:
1.在模块未连线状态下可以进行AT指令状态操作,连线后进入串口透传模式
2.模块启动大约需要150ms,所以最好在模块上电200ms后进行AT指令操作
3。AT指令操作成功会一律返回OK(有些指令此外)
三、项目实现的代码
1.HC-08蓝牙模块传输数据部分代码
1.1串口初始化代码
void Uart_Init()//串口中断初始化函数
{
AUXR = 0X01;//隔离电离辐射
SCON = 0X50;//串口工作方式1,允许接收
TMOD &= 0X0F;
TMOD |= 0X20;//定时器1工作方式2
TH1 = 0XFD;
TL1 = 0XFD;//波特率为9600
TR1 = 1;//定时器1开始计时
}
1.1数据传输代码
void Send_Byte(char cmdata)//发送一个By