温湿度控制器上下限继电器设计报告.docx

上传人:b****7 文档编号:15584188 上传时间:2023-07-05 格式:DOCX 页数:27 大小:934.46KB
下载 相关 举报
温湿度控制器上下限继电器设计报告.docx_第1页
第1页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第2页
第2页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第3页
第3页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第4页
第4页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第5页
第5页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第6页
第6页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第7页
第7页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第8页
第8页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第9页
第9页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第10页
第10页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第11页
第11页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第12页
第12页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第13页
第13页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第14页
第14页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第15页
第15页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第16页
第16页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第17页
第17页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第18页
第18页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第19页
第19页 / 共27页
温湿度控制器上下限继电器设计报告.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

温湿度控制器上下限继电器设计报告.docx

《温湿度控制器上下限继电器设计报告.docx》由会员分享,可在线阅读,更多相关《温湿度控制器上下限继电器设计报告.docx(27页珍藏版)》请在冰点文库上搜索。

温湿度控制器上下限继电器设计报告.docx

温湿度控制器上下限继电器设计报告

温湿度控制器设计报告

本设计研究单片机数字温湿度控制器,通过全数字型温湿度传感器测量宽范围的温湿度数据,用来满足恒温湿车间控制、大棚温湿度控制等工农业生产领域需要,要求温湿度测量响应时间快、长期稳定性好,抗干扰能力强,具有较高的应用价值。

一、性能特点

●配用全数字型温湿度传感器DHT11,温度测量范围0℃--100℃,湿度测量范围0%RH—90%RH,可以满足一般需要。

若要求更宽测量范围,只需更换温湿度传感器型号,硬件电路及软件程序全兼容。

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

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

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

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

●当温度或湿度超限后,报警信号点亮相应报警灯。

●配用三极管和继电器,可以通过驱动继电器打开或切断风机、加热器等外部设备。

二、功能说明

1、实时测量当前温度值和湿度值,在液晶屏动态显示。

2、可以显示当前允许温度范围,在液晶屏显示,如“20-45”表示允许温度范围为20摄氏度至45摄氏度。

3、可以显示当前允许湿度范围,在液晶屏显示,如“15-60”表示允许湿度范围为15%至60%。

4、当温度低于温度下限时,低温报警灯亮,控制继电器动作。

5、当温度高于温度上限时,高温报警灯亮,控制继电器动作。

6、当湿度低于湿度下限时,低湿报警灯亮,控制继电器动作。

7、当湿度高于湿度上限时,高湿报警灯亮,控制继电器动作。

8、可以通过键盘调整温度上下限和湿度上下限,具体方法是连续按设置键直至温度下限、温度上限、湿度下限、湿度上限相应的位置闪烁,再通过Up键和Down键调整数值,调整完毕继续按设置键进入正常状态。

9、可以保存设置参数至EEPROM中,具体方法是按保存键,此时当前设置参数存盘,重新上电显示新的设置值。

如果不按保存键,所调整的设置参数只在此次运行有效,关电后恢复原先设定值。

三、硬件设计

1、设计框图

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

图1温湿度控制器方框图

图中STC89C52单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。

液晶屏上同时可以显示温湿度上下限值,该上下限设置值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。

当温度或湿度值超过上下限值时,报警信号点亮相应报警灯。

同时该报警信号通过三极管驱动继电器,以控制外部风机或加热器。

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

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

DHT11温湿度传感器外型及管脚如图2所示。

其中电源引脚的供电电压为3.5--5.5V。

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

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

DHT11典型应用电路如图3所示,其连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,

图3DHT11典型应用电路

DHT11数字湿温度传感器采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。

其数据包由5Byte(40Bit)组成。

一次完整的数据传输为40bit,高位先出。

数据格式如表一:

表1DHT11数据格式

3、单片机电路

(1)STC89C52单片机特点

●增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;

●工作电压:

5.5V-3.5V(5V单片机);

●工作频率范围:

0~40MHz,相当于普通8051的0~80MHz;

●用户应用程序空间4K//8K/16k/32K/64K字节;

●片上集成1280字节RAM;

●通用I/O口(32/36个),复位后为准双向口/弱上拉(普通8051传统I/O口);

●ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器。

●每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA;

●可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;

●有EEPROM功能;

●看门狗;

●内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);

●时钟源:

外部高精度晶体/时钟,内部R/C振荡器;

●用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟;

●常温下内部R/C振荡器频率为:

5.0V单片机为:

11MHz~17MHz;

●共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器;

●外部中断I/O口4路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒;

●通用全双工异步串行口(UART);

●工作温度范围:

-40~+85℃(工业级)/0~75℃(商业级);

●封装:

PDIP-40,PLCC-44。

(2)STC89C52单片机管脚及封装

STC89C52单片机有多种封装形式,本设计中选用40DIP封装,其管脚定义如图4所示。

其最小应用系统如图5所示。

图4STC89C52管脚图

图5单片机最小系统

(4)单片机电路

由STC89C52组成的温湿度控制器单片机系统原理图如图6所示。

图中DATA引脚为温湿度传感器单总线引脚,单片机通过该引脚和传感器通信,读取温湿度数据。

K1、K2、K3、K4为四只调节按键,分别为设置键、上调键、下调键和保存键,用以调整温湿度上下限值并保存数据。

L2、L3、L4、L5为四只报警灯,其中L2为低温报警,L3为高温报警,L4为低湿报警,L5为高湿报警。

图6单片机系统原理图

4、显示电路

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

表2液晶屏技术指标

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

表3液晶屏接口信号说明

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

图7LCD与单片机接口电路

5、温湿度上限存储

温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K1—K4按键调节并保存,其中K1、K2、K3、K4分别为设置键、上调键、下调键和保存键。

AT24C04是IIC芯片,其电路如图8所示。

图8EEPROM存储电路

6、继电器驱动电路

当温湿度数据超过正常范围时,单片机发出继电器动作信号。

该低电平信号通过三极管方法,驱动继电器线圈得电,继电器结点动作。

该结点可以控制空调、加热器、抽风机等电器,以控制温湿度范围。

具体电路如图9所示。

图9继电器电路

四、Portel电路图设计

Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。

它集成了软件界面、仿真功能和PLD设计和信号完整性分析,在此基础上Protel99SE又增加了一些新的功能,用户使用更加方便灵活。

Protel的功能十分强大,在电子电路设计领域占有极其重要的地位。

它以其强大功能和实用性,逐渐获得广大硬件设计人员的青睐,是目前众多EDA设计软件中用户最多的产品之一。

Protel软件组成

Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。

(1)原理图设计模块(Schematic模块)

电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。

图4.1所示为一张电路原理图。

该原理图是由Schematic模块设计完成的。

Schematic模块具有如下功能:

丰富而灵活的编辑功能、在线库编辑及完善的库管理功能、强大的设计自动化功能、支持层次化设计功能等。

(2)印制电路板设计模块(PCB设计模块)

印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。

设计了电路原理图后,需要根据原理图生设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。

印制电路板设计模块具有如下主要功能和特点:

可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出系统等。

(3)电路信号仿真模块

电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。

它运行在Protel的EDA/Client集成环境下,与ProtelAdvancedSchematic原理图输入程序协同工作,作为AdvancedSchematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境。

在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原理图,加上激励源,然后单击防真按钮即可自动开始。

五、软件编程

1、软件流程图

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

图13主程序流程图

2、主程序

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

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

#include

#include"1602.h"

#include"dht.h"

#include"2402.h"

(2)管脚定义

//定义三个LED灯

sbitL2=P1^3;

sbitL3=P1^4;

sbitL4=P1^5;

sbitL5=P1^6;

sbitKey_SET=P3^2;//设置键

sbitKey_UP=P3^3;//加键

sbitKey_DOWN=P3^4;//减键

sbitKey_SAVE=P3^5;//保存键

sbitRelay=P2^0;

(3)常量、变量定义

//定义标识

volatilebitFlagStartRH=0;//开始温湿度转换标志

volatilebitFlagKeyPress=0;//有键按下

 

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

externU8U8FLAG,k;

externU8U8count,U8temp;

externU8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

externU8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

externU8U8comdata;

externU8count,count_r;

U16temp;

S16temperature,humidity;

S16idataTH,TL,HH,HL;//温度上限和湿度上限

char*pSave;

U8keyvalue,keySET,keySAVE,keyUP,keyDOWN;

//定义变量

U16RHCounter;

U8FlagSet,hide;

(4)各子程序

//数据初始化

voidData_Init()

{

RHCounter=0;

L2=1;

L3=1;

L4=1;

TH=40;

TL=20;

HH=85;

HL=20;

keyvalue=0;

keySET=1;

keySAVE=1;

keyUP=1;

keyDOWN=1;

FlagSet=0;

hide=0;

}

//定时器0初始化

voidTimer0_Init()

{

ET0=1;//允许定时器0中断

TMOD=1;//定时器工作方式选择

TL0=0x06;

TH0=0xf8;//定时器赋予初值

TR0=1;//启动定时器

}

//定时器0中断

voidTimer0_ISR(void)interrupt1using0

{

TL0=0x06;

TH0=0xf8;//定时器赋予初值

RHCounter++;

//设闪烁标志

if(RHCounter>400)hide=0;

elsehide=1;

//每2秒钟启动一次温湿度转换

if(RHCounter>=800)

{

FlagStartRH=1;

RHCounter=0;

}

}

//存入设定值、

voidSave_Setting()

{

pSave=(char*)&TL;//地址低位对应低8位,高位对应高8位

wrteeprom(0,*pSave);//存温度上限值TH低8位

DELAY(500);

pSave++;

wrteeprom(1,*pSave);//存温度上限值TH高8位

DELAY(500);

pSave=(char*)&TH;

wrteeprom(2,*pSave);//存温度下限值TL低8位

DELAY(500);

pSave++;

wrteeprom(3,*pSave);//存温度下限值TL高8位

DELAY(500);

pSave=(char*)&HL;//地址低位对应低8位,高位对应高8位

wrteeprom(4,*pSave);//存湿度上限值HH低8位

DELAY(500);

pSave++;

wrteeprom(5,*pSave);//存湿度上限值HH高8位

DELAY(500);

pSave=(char*)&HH;

wrteeprom(6,*pSave);//存湿度下限值HL低8位

DELAY(500);

pSave++;

wrteeprom(7,*pSave);//存湿度下限值HL高8位

DELAY(500);

}

//载入设定值、

voidLoad_Setting()

{

pSave=(char*)&TL;

*pSave++=rdeeprom(0);

*pSave=rdeeprom

(1);

pSave=(char*)&TH;

*pSave++=rdeeprom

(2);

*pSave=rdeeprom(3);

pSave=(char*)&HL;

*pSave++=rdeeprom(4);

*pSave=rdeeprom(5);

pSave=(char*)&HH;

*pSave++=rdeeprom(6);

*pSave=rdeeprom(7);

if((TL>99)||(TL<0))TL=20;

if((TH>99)||(TH<0))TH=40;

if((HL>99)||(HL<0))HH=20;

if((HH>99)||(HH<0))HH=85;

}

voidKeyProcess(uintnum)

{

//键盘设置功能:

通过设置键和加、减键修改当前设置,只有按下保存键才存盘,否则掉电不保存。

switch(num)

{

case1:

//设置键按下,依次设定TL\TH\HL\HH\退出

FlagSet++;

if(FlagSet>4)

{

FlagSet=0;

L1602_char(1,12,TL/10+48);

L1602_char(1,13,TL%10+48);

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

L1602_char(2,12,HL/10+48);

L1602_char(2,13,HL%10+48);

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

}

break;

case2:

//加键按下

if(FlagSet==1)//设TL

{

if(TL<100)TL++;

L1602_char(1,12,TL/10+48);

L1602_char(1,13,TL%10+48);

}

if(FlagSet==2)//设TH

{

if(TH<100)TH++;

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

}

if(FlagSet==3)//设HL

{

if(HL<100)HL++;

L1602_char(2,12,HL/10+48);

L1602_char(2,13,HL%10+48);

}

if(FlagSet==4)//设HH

{

if(HH<100)HH++;

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

}

break;

case3:

//减键按下

if(FlagSet==1)//设TL

{

if(TL>0)TL--;

L1602_char(1,12,TL/10+48);

L1602_char(1,13,TL%10+48);

}

if(FlagSet==2)//设TH

{

if(TH>0)TH--;

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

}

if(FlagSet==3)//设HL

{

if(HL>0)HL--;

L1602_char(2,12,HL/10+48);

L1602_char(2,13,HL%10+48);

}

if(FlagSet==4)//设HH

{

if(HH>0)HH--;

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

}

break;

case4:

//保存键按下

Save_Setting();

FlagSet=0;

break;

default:

break;

}

}

/********************************************************************

*名称:

Main()

*功能:

主函数

***********************************************************************/

voidmain()

{

U16i,j,testnum;

EA=0;

Timer0_Init();//定时器0初始化

Data_Init();

EA=1;

L1602_init();

L1602_string(1,1,"WelcometoT&H");

L1602_string(2,1,"ControlSystem!

");

//延时

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-");

L1602_string(2,1,"Hum:

%-");

//载入温度上限和湿度上限设定值

Load_Setting();

L1602_char(1,12,TL/10+48);

L1602_char(1,13,TL%10+48);

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

L1602_char(2,12,HL/10+48);

L1602_char(2,13,HL%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_data_H;

temperature=U8T_data_H;

//显示温湿度

L1602_int(1,5,temperature);

L1602_int(2,5,humidity);

}

//闪烁显示

if(hide==1)

{

switch(FlagSet)

{

case0:

break;

case1:

L1602_string(1,12,"");

break;

case2:

L1602_string(1,15,"");

break;

case3:

L1602_string(2,12,"");

break;

case4:

L1602_string(2,15,"");

break;

}

}

else

{

L1602_char(1,12,TL/10+48);

L1602_char(1,13,TL%10+48);

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

L1602_char(2,12,HL/10+48);

L1602_char(2,13,HL%10+48);

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

}

//温湿度控制

//温度低于下限

if(temperature

elseL2=1;

//温度高于上限

if

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2