DHT11 一个
软件:2000/XP/win7 系统,IAR 8.10 集成开发环境、串口助手
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
DHT11 引脚:+(VCC),S(DATA),-(GND),照图片的方向插上就行,如果自己购买的模块请仔细核对一下数据引脚和电源,确保连接正确。
实验相关电路图
实验相关寄存器
实验中用到了串口和 P0_7,前面已详细讲解了串口相关寄存器的配置与使用,此实验就不再重复讲串口配置了。DHT11 程序采用模块化编程思想,只需调用温度读取函数即可,相当方便,移植到其它平台也非常容易。重点讲 P0_7 的配置和 DHT11 使用 P0_7 的方法:
P0SEL &= 0x7f; // 设置连接 DHT11 的 IO 口
#define DATA_PIN P0_7 //传感器引脚,在 DHT11.c 修改,不同 IO 修改此处即可
#include#include #include "UART.H" #include "DHT11.H" void main(void) { uchar temp; uchar humidity; uchar strTemp="Temperature:"; uchar strHumidity="Humidity:"; Delay_ms(1000); //让设备稳定 InitUart(); //串口初始化 while(1) { memset(temp, 0, 3); memset(humidity, 0, 3); DHT11(); //获取温湿度 //将温湿度的转换成字符串 temp=wendu_shi+0x30; temp=wendu_ge+0x30; humidity=shidu_shi+0x30; humidity=shidu_ge+0x30; //获得的温湿度通过串口输出到电脑显示 UartSendString(strTemp, 12); UartSendString(temp, 2); UartSendString(" ", 3); UartSendString(strHumidity, 9); UartSendString(humidity, 2); UartSendString("n", 1); Delay_ms(2000); //延时,2S读取1次 } }