标题: 单片机DHT11温湿度传感器实战 小型气象站源程序 [打印本页]
作者: fvsaegawgarg 时间: 2021-1-5 10:56
标题: 单片机DHT11温湿度传感器实战 小型气象站源程序
小型气象站
一、实验目的
1. 了解温湿度传感器工作原理
2. 了解光强大气压力传感器工作原理
3. 学会使用DHT11温湿度传感器检测环境温湿度
4. 学会使用光敏电阻检测环境光强度
5. 会使用1602液晶显示模块显示气象参数
二、实验设备
1. 51单片机实验板,以及电源线、下载线、杜邦线等
2. DHT11温湿度传感器、光敏电阻、PCF8591数模转换模块、1602液晶显示模块
三、实验项目要求
请设计一个小型的气象监测站,检测温湿度、光强等参数,并显示在1602液晶显示屏上。
1602液晶显示示例:

请按要求设计一个可行方案,包括设备选型、系统连接图等,并编写程序实现上述功能。
四、实验步骤
1. 设计方案
①方案:采用dht11温湿度传感器来采集温湿度,光敏电阻来采集光强情况,然后把检测到的信息送给单片机处理,并在1602液晶显示屏上显示。
②设备选型:
1、DHT11温湿度传感器
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感
器。它应用专用的数 字模块采集技术和温湿度传感技术,
确保产品具有枀高的可靠性与卓越的长期稳定性。传感器
包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接 
接线说明
1 VCC 外接3.3V-5V
2 GND 外接GND
3 DATA 小板开关数字量输出接口接单片机IO 口
光敏传感器
PCF8591是一个单独供电、低功耗、
具有I2C总线接口的8位A/D及D/A 转
换器。它有4路A/D转换输入(A/D转
换为逐次比较型),1路D/A 模拟输
出,电源电压典型值为5V。采用8位的DAC时,分辨率为5V/256=19.5mV。
3、TX51单片机实验板(带LCD1602、蜂鸣器)
③系统连接图:

2. 编写源程序,编译,生成hex文件
源程序:
//本工程基于普中单片机开发板,晶振12MHz
- #include <config.h>
- #include <dht11.h>
- #include <PCF8591.h>
- #include <I2C.h>
- #include <1602.h>
- #include <led.h>
- float value;
- u8 print1[20];
- u8 DATA[3];
- u8 RHum=0,Temp=0;
- u8 print[20];
- void delay_us(u8 n)//微秒延时
- {
- while(--n);
- }
-
- void delay_ms(u16 x)//毫秒延时函数
- {u16 i,j;
- for(i=0;i<x;i++)
- for(j=0;j<115;j++);
- }
-
- void main()
- {
- u8 i;
- TMOD=TMOD&0x0F;//清除定时器T1原有工作方式,T0工作方式不变
- TMOD=TMOD|0xA0;//设置定时器T1为工作方式2,硬启动;T0工作方式不变
-
- TL1=0x48;//晶振11.0592MHz,定时200us对应计数值184,计数初值72
- TH1=0x48;//自动重装初值
-
- EA=1 ; //总中断允许
- ET1=1 ; //T1中断允许
- TR1=1;
- LCD1602_Init(); //1602初始化
- while(1)
- {
- DATA[0]=Pcf8591_AD(0);//通道0:光敏
- DATA[1]=Pcf8591_AD(1);//通道1:热敏
- DATA[2]=Pcf8591_AD(3);//通道3:可调电阻
- value=(float)DATA[1]*5/256;
- value=100/value;
- sprintf(print1,"light:%.1f",value);
- LCD1602_disstr(print1,1,0);//输出到1602液晶显示屏
-
- }
- }
- void ET1_INT() interrupt 3 // T1中断服务程序
- //
- {
- u16 c;
- c++;
- //中断次数加1,每200us中断一次,中断5000次即为1秒
- if(c==750){
- DHT11_receive(&RHum,&Temp); //读取传感器传送过来的温湿度数据
-
- sprintf(print,"Temp:%bd;RHum:%bd%%",Temp,RHum);
- LCD1602_disstr(print,0,0);//输出到1602液晶显示屏
- }
- }
复制代码
3. 将hex文件下载到实验板运行,描述实验现象
实验现象:
DHT11温湿度,光照强度等情况分别显示在单片机的1602液晶显示屏上。
实验总结
通过本次实验知道了如何使用DHT11温湿度传感器,学会使用光敏电阻检测环境光强度,也学会使用1602液晶显示模块显示气象参数。
作者: 新昌小徐 时间: 2022-6-24 18:01
#include <config.h>
#include <dht11.h>
#include <PCF8591.h>
#include <I2C.h>
#include <1602.h>
#include <led.h>
以上的文件呢?
作者: tplin 时间: 2022-11-30 10:07
要是有完整文件就好啦!
作者: sdlyyy 时间: 2023-3-14 22:55
思路全面完整,好好学习。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |