温湿度控制器液晶屏输出设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

温湿度控制器设计报告

一、功能与特点

●配用全数字型温湿度传感器DHT11,温度测量X围0℃--50℃,湿度测

量X围20%RH—90%RH,可以满足一般需要。若要求更宽测量X围,只

需更换温湿度传感器型号,硬件电路及软件程序全兼容。

●温湿度测量响应时间快、长期稳定性好。

●采用先进的专用微处理器芯片STC89C52,可靠性高,抗干扰能力强。

●配用EEPROM芯片AT24C04,使存储的温度上下限和湿度上下限可以掉电永久保存。

●可以通过四个按键方便地实现温湿度上下限的调整。

●当温度或湿度超限后,报警信号点亮相应报警灯。如果配用三极管和继电器,该信

号也可以驱动继电器打开或切断风机、加热器等外部设备。

二、硬件设计

1、设计框图

本研究设计的温湿度控制器框图如图1所示。

图1 温湿度控制器方框图

图中STC89C52单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超过上限值时,报警信号点亮相应报警灯。该报警信号可以通过三极管驱动继电器,以控制外部风机或加热器。继电器电路套件中不标配,如果需要请另外说明。

2、温湿度传感器器及检测电路

图2 DHT11温湿度传感器外型及管脚

DHT11温湿度传感器外型及管脚如图2所示。其中电源引脚的供电电压为

3.5--5.5V。传感器上电后,要等待1s 以越过不稳定状态在此期间不要发送任何

指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

DHT11典型应用电路如图3所示,其连接电路简单,只需要占用控制器一个I/O 口即可完成上下位的连接。建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,

图3 DHT11典型应用电路

DHT11数字湿温度传感器采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分。一次完整的数据传输为40bit,高位先出。数据格式如表一:

表1 DHT11数据格式

3、单片机电路

本设计选用宏晶公司高性能单片机STC89C52,其管脚如图4所示。

图4 STC89C52单片机管脚图

该芯片为52内核8位单片机,兼容Intel等52内核单片机,支持ISP下载,适用于常用检测控制电路。由STC89C52组成的单片机系统原理图如图5所示。

图中DATA引脚为温湿度传感器单总线引脚,K1、K2、K3、K4为四只调节按键,用以调整温湿度上限值。L3、L4、L5为三只报警灯,其中L3为超温报警,L4为超湿报警,L5保留给用户定义。

图5 单片机系统原理图

4、显示电路

显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:

表2 液晶屏技术指标

接口信号说明如表3所示。

表3 液晶屏接口信号说明

与单片机接口电路如图6所示。

图6 LCD与单片机接口电路

5、温湿度上限存储

温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K1—K4按键调节并保存,其中K1为温度上限增加,K2为温度上限减小,K3为湿度上限增加,K4为湿度上限减小。AT24C04是IIC芯片,其电路如图7所示。

图7 EEPROM存储电路

6、供电及程序下载电路

本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图8所示。

图8 供电及程序下载电路

三、软件编程

1、软件流程图

本设计软件主程序流程图如图9所示。

图9 主程序流程图2、主程序

下面介绍main.c主程序编写,其他程序略。

(1) 头文件和一些宏定义

#include

#include "1602.h"

#include "dht.h"

#include "2402.h"

(2) 管脚定义

sbit Led_qushi=P1^6; //去湿灯

sbit Led_jiangwen=P1^5; //降温灯

sbit Led_shengwen=P1^4; //升温灯

sbit Key_TH1 = P3^2;

sbit Key_TH2 = P3^3;

sbit Key_HH1 = P3^4;

sbit Key_HH2 = P3^5;

(3) 常量、变量定义

//定义标识

volatile bit FlagStartRH = 0; //开始温湿度转换标志

volatile bit FlagKeyPress = 0; //有键按下

//定义温湿度传感器用外部变量

extern U8 U8FLAG,k;

extern U8 U8count,U8temp;

extern U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

extern U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp; extern U8 U8checkdata_temp;

extern U8 U8data;

extern U8 count, count_r;

U16 temp;

S16 temperature, humidity;

S16 idata TH, HH; //温度上限和湿度上限

char * pSave;

U8 keyvalue, keyTH1, keyTH2, keyHH1, keyHH2;

U16 RHCounter;

(4) 各子程序

//数据初始化

void Data_Init()

{

RHCounter = 0;

Led_qushi = 1;

Led_jiangwen = 1;

Led_shengwen = 1;

TH = 40;

HH = 85;

keyvalue = 0;

keyTH1 = 1;

keyTH2 = 1;

相关文档
最新文档