过程控制课程设计-温湿度测量系统

更新时间:2024-05-26 10:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电控学院

过程控制综合实验

题 目: 湿度测量仪 院 (系): 电气与控制工程学院 专业班级: 姓 名: 学 号: 指导教师: 王党树

2014年 7月 9日

52单片机控制湿度测量仪的设计与制作

摘 要

本设计采用先进的专用微处理器芯片STC89C52,可靠性高,抗干扰能力强。传感器模块采用的是HS1101电容式湿度传感器。NE555集成定时器是一种模拟和数字电路相混合的集成电路。它结构简单,使用灵活,用途十分广泛。HS1101检测出当前环境下的湿度,所得到的数据经过NE555集成定时器振荡电路处理后,接入到STC89C52单片机,以单片机为核心对数据进行记录、存储、处理和报警。系统的显示模块采用的是LCD1602液晶显示。STC89C52单片机从NE555集成定时器中读入湿度数据,在液晶屏上即时显示。报警模块采用NPN三极管控制LED指示灯和蜂鸣器进行报警,可以在视觉和听觉上起到警示作用。当湿度值超过或低于上、下限值时,报警模块会实现报警。基于STC89C52单片机设计湿度控制系统,可以及时、较为精确的反映出湿度的变化,对湿度进行智能控制也有着重大的意义。

关键词:STC89C52单片机;NE555集成定时器;LCD1602;HS1101湿度传感器

1项目背景意义

STC89C52单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为湿度控制系统的实例也很多。使用单片机能够实现湿度全程的自动控制,可以及时、较为精确的反映室内的湿度变化。湿度测量系统对湿度进行智能控制有着重大的意义。湿度测量控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。正是基于本设计的优点所在,它可以更精确的调控一些特殊环境中的湿度,所以可以将其应用于温室种植、粮仓储备及“白色”家居等方面。一般的温室种植,为了充分的利用好温室这一高效特性,就必需有一套科学的、先进的管理方法,用以对不同种类植被生长的各个时期所需的湿度等进行实时的监控和调控。此时湿度控制可以及时、精确的反映室内的湿度变化。完成诸如湿度测量及调控的控制方式,将此系统应用到温室种植、家居调控及粮食储存等方面可以更好地造福人类。

2方案分析

2.1总体方案的描述

总体来说,系统设计主要涉及了湿度数据的测量、显示以及实现报警三个方面。硬件方面有四个模块,即单片机主控模块、传感器模块、LCD1602液晶显示模块、报警模块。总体框图如图2-1所示。

图2-1方案总图

2.2微处理器模块的比较与选择

方案一:用单片机STC89C52作为系统的主控核心。此单片机具有体积小,使用灵活的,可靠性高,抗干扰能力强,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。

方案二:用FPGA等可编程器件作为控制模块。FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。FPGA在掉电后会丢失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑器件较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。

在此系统中,采用STC89C52单片机作为控制比采用FPGA实现更简便。基于综合性价比,确定选择方案一。

2.3传感器模块的比较与选择

方案一:采用电容式湿度传感器HS1101,湿度测量范围设定为33%RH—75%RH,可以满足一般需要。湿度传感器HS1101是基于独特工艺设计的电容元件,全互换性好,在标准环境下不需校正,长时间饱和下快速脱湿,可以自动化焊接,包括波峰或水浸,高可靠性与长时间稳定性,可用于线性电压或频率输出回路,快速反应时间短。将HS1101置于NE555振荡电路中,将电容值的变化转为与之呈反比的电压频率信号,可直接被计算机所采集。且其误差不大于±2%RH;响应时间小于5s;可见其精度是较高的。

方案二:采用全数字型温湿度传感器DHT11,温度测量范围0℃--50℃,湿度测量范围20%RH—90%RH,也可以满足一般需要。若要求更宽测量范围,只需更换温湿度

传感器型号,硬件电路及软件程序全兼容。测量温湿度测量响应时间快、长期稳定性好。

综合各自的性能特点,基于与NE555定时器相兼容,价格便宜,我们选择了方案一中的HS1101电容式湿度传感器。

2.4 显示模块比较与选择

方案一:采用普通LED显示。 其优点是元器件价格低廉,而且外围电路简单。但是扫描要占用大量的I/O口资源,还增大了单片机的运算开销,显示的信息也不够丰富。

方案二:采用液晶数码管显示。

液晶数码管,它的重量轻、体型薄、工作电压低、功耗极微,适合用电池供电的携带式电子设备。其缺点是可视角度小、对温度变化敏感。温度过高或者过低时,显示器对比度将降低。

方案三:采用LCD1602液晶彩屏显示。

其优点是显示信息非常丰富,可以很形象的显示信号发生器的各个参数。同时颜色多样,不会很单调。占用的I/O资源比较少,不需要循环扫描,节省了大量的程序开销。

鉴于本系统的扩展要求,我们采用方案三中的LCD1602液晶作为我们的显示模块,同时写入彩屏程序,使其更生动直观。

2.5报警模块的选择

方案一:采用声光报警模块

使用蜂鸣器与LED发光二极管作为本系统的声光报警模块,其结构简单,造价低廉,可以简洁明了的在视觉和听觉上起到报警作用。

方案二:语音报警模块

GBT系列语音芯片,是最简单的语音IC。GBT40/80是40/80秒长度的语音IC,支持PWM或DAC高品质的语音输出,在6KHz采样基础上达到40秒语音长,是属于4位硬件压缩。GBT40内部内置了一个外部电阻器的系统时钟振荡器。最大支持63段语音。一组可以包含最多700组的语音元素组合。每一步都可以被定义触发模式,输出状态,语音组,静音的长度,I / O型简单编程功能。易于使用的开发系统功能选择和语音组合。

鉴于经济效益,我们选择了蜂鸣器与LED发光二极管作为本系统的声光报警模块,它可以简洁明了的在视觉和听觉上起到报警作用。

3系统硬、软件的设计

3.1硬件原理框图介绍

本设计选用宏晶公司高性能单片机STC89C52该芯片为52内核8位单片机,兼容Intel等52内核单片机,支持ISP下载,适用于常用检测控制电路。由STC89C52组成的单片机系统原理图3-1如图所示。

图3-1单片机系统原理图

本系统采用层次化、模块化设计,以HS1101湿敏芯片的传感器作为测量的器件,所得到的数据经过NE555振荡电路处理后,接入到STC89C52单片机,以单片机为核心对数据进行记录、存储、处理和报警。硬件原理框图如图3-2所示。

湿度数据 HS1101电容式湿度传感器 NE555定时器 STC89C52单片机 LCD1602显示湿度值 人为操作 过阈值报警 图3-2硬件原理框图

3.2转换电路设计

转换及测湿电路如图3-3所示。

由于测湿传感器是采用的电容式测湿传感器,故对湿度的测量转变为了对变化电容的容值检测。检测容值的有效方案首选由555芯片组成的多谐振荡器, 当电路通电时,电容HS1101被充电。当触发端2脚的电压上升到2* VCC5/3V时,输出端3变为低电

平,同时电容通过7脚放电,2脚电平下降;当2脚电平下降到VCC5/3V时,输出端3脚转变为高电平。电容HS1101放电所需时间为:

Td=RH4*C(HS1101)*㏑2

当放电结束时,VCC5将通过RH3、RH4向电容HS1101充电。2脚电压由VCC5/3上升到2*VCC5/3所需的时间为:

Tu=(RH4+RH3)*C(HS1101)*㏑2

当3脚上升到2*VCC5/3时,电路又翻转为低电平。如此周而复始,就在电路的输出端3脚得到一个周期性的矩形波,通过单片机的外部中断口可以检测这个矩形波并得到其频率,频率的计算公式如下:

f=1/(Td+Tu)=1/[(2*RH4+RH3)* C(HS1101)*㏑2];

进而得到电容值的计算公式:C(HS1101)=1/[(2*RH4+RH3)*f*㏑2]

这样就能得到测湿电容C(HS1101)的电容值并与湿度一一对应起来了。

图3-3转换及测湿电路图

3.3报警电路设计

报警电路如图3-4所示。

当湿度超过设定值时,单片机会控制蜂鸣器发声报警。电路中的三极管9013当做开关管使用,从而实现对LED灯和蜂鸣器进行控制。9013给高电平就会导通,低电平截止。

图3-4报警电路图

3.4 LCD1602显示

显示部分采用LCD 1602液晶屏进行数据显示,其主要技术参数如表3-1所示。

表3-1液晶屏技术指标

显示容量: 芯片工作电压: 工作电流: 模块最佳工作电压: 字符尺寸: 16×2个字符 4.5~5.5V 2.0mA(5.0V) 5.0V 2.95×4.35(WXH)mm 接口信号说明如表3-2所示。 表3-2 液晶屏接口信号说明

编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 符号 GND VDD VL RS R/W EN D0 D1 D2 D3 D4 D5 D6 D7 BL+ BL- 引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端(H/L) 读/写选择端(H/L) 使能信号 Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O 背光源正极 背光源负极

与单片机接口电路如图3-5所示。

图3-5接口电路图

3.5软件编程 3.5.1主程序

#include \

#define uchar unsigned char #define uint unsigned int long int f; long int q; double k; sbit rs=P2^0; sbit rw=P2^1; sbit ep=P2^2; sbit bell=P1^3;

uchar code table1[10]={%uchar code table2[13]={%uchar code table3[12]={\ The RH is\void delay(int ms)

{ // 延时子程序 int i;

while(ms--) {

for(i = 0; i<2; i++); } }

void writec(unsigned char cmd) { rs=0; rw=0; ep=0; P0=cmd; delay(1); ep=1; delay(1); ep=0; }

void writed(unsigned char date) {

rs=1; rw=0; ep=1; P0=date; delay(1); ep=0; }

void Init_timer() {

TMOD=0x51; //0101 0001 定时器0在模式1下工作16位定时器,定时方式 定时器1在模式1下工作16位计数器,T1负跳变加1

TL0=0x00; //定时器0初值 定时50000us TH0=0x4C;

TL1=0x00; //定时器1清零 TH1=0x00;

ET0=1; //使能定时器0中断 ET1=1; //使能定时器1中断 EA=1; //使能总中断 TR0=1; //开始计时 TR1=1; }

void init() {

writec(0x38); //delay(1); writec(0x0c); //delay(1); writec(0x06);

//delay(1);

writec(0x01); //清除LCD的显示内容 }

void display(double k1) {

int a,b,c,d,e,k; k1=k1*100; k= (int) k1; a=k/1000; k=k00; b=k/100; k=k0; c=k/10; k=k; d=k/1;

writec(0xc8);

if((a==0)&&(b==0)) writed(table2[0]); else if((a==0)&&(b!=0)) writed(table2[b]); else {

writed(table2[a]); writed(table2[b]); writed(table2[11]); writed(table2[c]); writed(table2[d]); /*writed(table2[e]);*/ writed(table2[10]); /* writed(table2[a]); writed(table2[b]); writed(table2[11]); writed(table2[c]); writed(table2[d]); writed(table2[e]); writed(table2[10]); */ } }

//初值

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

* 名称: timer0()

* 功能: 定时器1,每50000us中断一次。 * 入口参数:

5心得体会

在此次课题设计中我和我的团队出色的完成了所选定的课题———湿度报警电路,他的测湿部分主要由HS1101传感器组成,湿度变化引起电容大小的改变,他的两端与Ne555的充放电口相连,组成一个波形产生电路,产生随湿度变化的方波,单片机的中断口可以检测到方波的频率,通过频率与湿度的对应关系可以反映出此时湿度的具体情况。

下面来谈一谈我所负责的部分,我主要负责的是软件的设计与后期的调试,这次主要用到的是STC89C52RC单片机,程序主要分为三个部分,L1602液晶显示函数,频率采集处理处理函数,以及主函数。程序流程图已给出,首先是频率采集处理函数,此部分利用了单片机的中断口可以测出方波频率的功能,测出波形发生电路所产生方波的频率,在此前我们通过实验算出了频率与湿度的转换关系:

RH=3296986.1/f 505.03.

然后是l1602显示程序,显示程序已经固化,所以在此不做过多阐述, 我觉得最具挑战性的部分是频率与湿度转换的时候,由于我们所选用电阻与hs1101说明书电阻值不同,所以准换关系只能通过实验得出,但是放到程序中仍然与标准湿度不相复合,原因是在传输过程中没有考虑铜损和误差累计,所以最后是能在结果中进行1误差矫正,幸好我们学习了传感器原理及其应用,对误差进行了正确的处理,所以我们才在最后得出了正确的结论。

这次课题考察了我们的模电与传感器知识,使我们明白了自己的不足,而我也学到了知识之外的东西

1:众人拾柴火焰高,现代工业体系不是一个人单打独斗,需要我们每一个人来协作完成,如果这个课题让一个人做的话,会做完但是所需要的时间将会比较长,而在实际的社会生产中也一样,需要我们每个人承担自己的工作,来组成天一个体系。

2:细节决定成败,我们在第一次的时候波形总是失真,查了好久才发现是一个电阻值有误差,我们要严格把握每一个细节,这样才会有总体的成功。

3;古罗马不是一天建成的;一个大的项目需要有耐心,同样我们也要从一点一滴学起,这样才会有质的飞跃。

4:完整的进行了产品设计,制作,测试过程,积累了经验;为我们以后的学习提供了一个指导,

5:学到了许多新知识,受益匪浅;包括很多芯片的使用及原理 6:团队合作意识得到了加强。

希望以后多进行这样的教学来提高我们的实践运用能力。

参考文献

[1]郭天祥. 新概念51单片机C语言教程[M].北京:电子工业出版社,2009. [2]张毅刚.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2008.

附 录

总电路图:

本文来源:https://www.bwwdw.com/article/x1r7.html

Top