智能温湿度器设计报告_第1页
智能温湿度器设计报告_第2页
智能温湿度器设计报告_第3页
智能温湿度器设计报告_第4页
智能温湿度器设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、杭州电子科技大学智能温湿度计 题 目: 智能温湿度计设计 课程名称: 单片机 学 院: 自动化 专 业: 电气工程与自动化 年 级: 3 学 号: 11931306 11931307 11931308 学生姓名: 魏进朝 肖强 王焜 温湿度控制器设计报告一、 功能与特点l 配用全数字型温湿度传感器DHT11,温度测量范围0-50,湿度测量范围20%RH90%RH,可以满足一般需要。若要求更宽测量范围,只需更换温湿度传感器型号,硬件电路及软件程序全兼容。l 温湿度测量响应时间快、长期稳定性好。l 采用先进的专用微处理器芯片STC89C52,可靠性高,抗干扰能力强。l 配用EEPROM芯片AT24

2、C04,使存储的温度上下限和湿度上下限可以掉电永久保存。l 可以通过四个按键方便地实现温湿度上下限的调整。l 当温度或湿度超限后,报警信号点亮相应报警灯。如果配用三极管和继电器,该信号也可以驱动继电器打开或切断风机、加热器等外部设备。二、 硬件设计1、设计框图本研究设计的温湿度控制器框图如图1所示。图1 温湿度控制器方框图图中STC89C52单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超过上限值时,报警信号点亮相应报警灯。该报警信号可以通

3、过三极管驱动继电器,以控制外部风机或加热器。2、温湿度传感器器及检测电路图2 DHT11温湿度传感器外型及管脚DHT11温湿度传感器外型及管脚如图2所示。其中电源引脚的供电电压为 3.5-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间不要发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。 DHT11典型应用电路如图3所示,其连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,图3 DHT11典型应用电路DHT11数字湿温度传感器采用单总线数据格式

4、,即单个数据引脚端口完成输入输出双向传输。其数据包由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为三只

5、报警灯,其中L3为超温报警,L4为超湿报警,L5保留给用户定义。图5 单片机系统原理图4、显示电路显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:表2 液晶屏技术指标接口信号说明如表3所示。表3 液晶屏接口信号说明与单片机接口电路如图6所示。图6 LCD与单片机接口电路5、温湿度上限存储温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K1K4按键调节并保存,其中K1为温度上限增加,K2为温度上限减小,K3为湿度上限增加,K4为湿度上限减小。AT24C04是IIC芯片,其电路如图7所示。图7 EEPROM存储电路6、供电及程序下载电路本设计采用USB接口供电,电源电

6、压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图8所示。图8 供电及程序下载电路三、 软件编程1、软件流程图本设计软件主程序流程图如图9所示。图9 主程序流程图2、主程序 下面介绍main.c主程序编写,其他程序略。(1) 头文件和一些宏定义#include <reg52.h>#include "1602.h"#include "dht.h"#include "2402.h"(2) 管脚定义sbit Led_qushi=P16; /去湿灯sbit Led_jiangwen=P1

7、5;/降温灯sbit Led_shengwen=P14;/升温灯sbit Key_TH1 = P32;sbit Key_TH2 = P33;sbit Key_HH1 = P34;sbit Key_HH2 = P35;(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_

8、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 U8comdata;extern U8 count, count_r;U16 temp;S16 temperature, humidity;S16 idata TH, HH; /温度上限和湿度上限char * pSave;U8 keyvalue, keyTH1, keyTH2, keyHH1, keyHH2;U16 RH

9、Counter;(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; keyHH1 = 1; keyHH2 = 1;/定时器0初始化void Timer0_Init()ET0 = 1; /允许定时器0中断TMOD = 1; /定时器工作方式选择TL0 = 0x06; TH0 = 0xf8; /定时器赋予初值TR0 = 1; /启动定时器/定时器0

10、中断void Timer0_ISR (void) interrupt 1 using 0TL0 = 0x06;TH0 = 0xf8; /定时器赋予初值/每2秒钟启动一次温湿度转换 RHCounter +; if (RHCounter >= 1000) FlagStartRH = 1; RHCounter = 0; /存入设定值、void Save_Setting() pSave = (char *)&TH; /地址低位对应低8位,高位对应高8位 wrteeprom(0, *pSave); /存温度上限值TH低8位 DELAY(500); pSave +; wrteeprom(1,

11、 *pSave); /存温度上限值TH高8位 DELAY(500); pSave = (char *)&HH; wrteeprom(2, *pSave); /存湿度上限值RH低8位 DELAY(500); pSave +; wrteeprom(3, *pSave); /存湿度上限值RH高8位 DELAY(500);/载入设定值、void Load_Setting() pSave = (char *)&TH; *pSave+ = rdeeprom(0); *pSave = rdeeprom(1); pSave = (char *)&HH; *pSave+ = rdeepr

12、om(2); *pSave = rdeeprom(3); if (TH>99)|(TH<0) TH = 40; if (HH>99)|(HH<0) HH = 85;void KeyProcess(uint num) switch (num) case 1: if (TH<99) TH+; L1602_char(1, 15, TH/10+48); L1602_char(1, 16, TH%10+48); break; case 2: if (TH>1) TH-; L1602_char(1, 15, TH/10+48); L1602_char(1, 16, TH

13、%10+48); break; case 3: if (HH<99) HH+; L1602_char(2, 15, HH/10+48); L1602_char(2, 16, HH%10+48); break; case 4: if (HH>1) HH-; L1602_char(2, 15, HH/10+48); L1602_char(2, 16, HH%10+48); break; default: break; Save_Setting();(5) main()函数void main() U16 i, j, testnum; EA = 0;Timer0_Init(); /定时器0

14、初始化 Data_Init();EA = 1;L1602_init();L1602_string(1,1," Welcome to T&H ");L1602_string(2,1," Control System! ");/延时for (i=0;i<1000;i+) for (j=0;j<1000;j+) ; /清屏L1602_string(1,1," ");L1602_string(2,1," "); L1602_string(1,1,"Tem: C TH:");L1602

15、_string(2,1,"Hum: % HH:"); /载入温度上限和湿度上限设定值Load_Setting();L1602_char(1, 15, TH/10+48);L1602_char(1, 16, TH%10+48);L1602_char(2, 15, HH/10+48);L1602_char(2, 16, HH%10+48);while(1) /温湿度转换标志检查 if (FlagStartRH = 1) TR0 = 0; testnum = RH(); FlagStartRH = 0;TR0 = 1; /读出温湿度,只取整数部分humidity = U8RH_d

16、ata_H;temperature = U8T_data_H; /显示温湿度L1602_int(1,5,temperature); L1602_int(2,5,humidity);/温湿度控制if (temperature > TH) Led_jiangwen = 0;else Led_jiangwen = 1; /降温if (humidity > HH) Led_qushi = 0;else Led_qushi = 1;/去湿 /键盘查询,在弹起时响应if (Key_TH1)&&(keyTH1=0) FlagKeyPress = 1; keyvalue = 1;

17、else if (Key_TH2)&&(keyTH2=0) FlagKeyPress = 1; keyvalue = 2; else if (Key_HH1)&&(keyHH1=0) FlagKeyPress = 1; keyvalue = 3; else if (Key_HH2)&&(keyHH2=0) FlagKeyPress = 1; keyvalue = 4;if (FlagKeyPress = 1) KeyProcess(keyvalue); FlagKeyPress = 0; if (!Key_TH1) keyTH1 = 0;else

18、 keyTH1 = 1; if (!Key_TH2) keyTH2 = 0;else keyTH2 = 1; if (!Key_HH1) keyHH1 = 0;else keyHH1 = 1; if (!Key_HH2) keyHH2 = 0;else keyHH2 = 1;四、 下载与调试提供例程在uVision4环境下编译,如果是其他版本uVision,只需将所有.c和.h 文件拷贝至新建项目,重新编译即可。当编译生成.hex文件后,就可以下载并进行调试了。1、 USB转串口驱动安装打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.

19、exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在开始-控制面板-打印机和其他硬件-设备管理器,在“端口”分支下有(Prolific USB-to-Serial Comm Port(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。记住括号里的COM口号。图10 成功安装USB转串口驱动示意图2、 下载程序打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,出现如下界面。图11 下载软件正确选择MCU 类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps (下载线内PL2303芯片所限,没办法!),并打开正确的.hex数据文件。点击“Download/下载”按纽,窗口出现提示:Chinese:正在尝试与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论