基于单片机的温湿度控制系统.docx
《基于单片机的温湿度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的温湿度控制系统.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的温湿度控制系统
\
基于单片机的温湿度控制系统
一、研究背景
温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。
并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。
而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。
随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。
传统的温湿度检测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。
在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。
而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。
故本次设计对于类似项目还具有普遍意义。
二、国内外研究现状
(1)温度传感器
智能温度传感器(亦称数字温度传感器)在20世纪90年代中期问世。
它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。
目前,国际上已开发出多种智能温度传感器系列产品。
智能温度传感器内部包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。
有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。
智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,温度计也越来越智能化。
(2)湿度传感器
湿度传感器产品及湿度测量属于90年代兴起的行业。
湿度传感器主要分为电阻式和电容式两种,产品的基本形式都是在基片上涂覆感湿材料形成感湿膜。
空气中的水蒸汽吸附在感湿材料上后,元件的阻抗、介质常数发生很大的变化,从而制成湿敏元件。
近年来,国内外在湿度传感器研发领域取得了较大的发展。
湿敏传感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅速发展。
国内外各厂家的湿度传感器产品水平不一,质量价格都相差较大,用户如何选择性能价格比最优的理想产品确有一定难度,需要在这方面作深入的了解。
现在国内市场上出现了不少国内外湿度传感器产品,电容式湿敏元件较为多见,感湿材料种类主要为高分子聚合物,氯化锂和金属氧化物。
三、研究方案
首先明了了设计思路以后,着手硬件电路设计。
采用学校统一发放的STC89C52单片机学习板做为课题设计的主控模块。
实现围绕着单片机的各个元器件正常工作并且实现所要的功能。
温湿度传感器不在使用分开使用。
而是采用DHT11数字温湿度一体传感器进型温湿度的测量。
一方面在简化了设计流程的同时增加的系统的稳定性;另一方面为降低了设计的成本消耗。
借鉴前人经验,传感器使用方法,用字符液晶显示可实现系统设计。
主要内容有:
⑴学习强化单片机知识
⑵掌握智能温湿度检测系统,提出硬件电路设计方案
⑶画出原理图
⑷编写单片机控制软件
⑸完成系统整体功能调试
设计中包括硬件电路的设计和系统程序的设计。
其硬件电路主要由电源电路、主控制器和显示电路等构成。
其中单片机是核心部分负责对温度信号进行接收、检验并传输处理。
四、预期结果
1.人性化的设计。
界限温度值及湿度值能够由用户根据用户需求实现控制并且通过显示器显示。
2.能够实时、准确的显示采样温度值与湿度值。
3.通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,来改变温湿度至所需状态
4.能够一改以前靠人力控制温湿度的状况、彻底的做到温湿度检测和控制的智能化。
从而大大提高系统的方便性以及稳定性。
摘 要
温湿度控制已成为当今社会研究的热门项目。
是工农业生产过程中必须考虑的因素。
作为最常见的被控参数。
温度和湿度已经不再是相互独立的物理量,而应在系统中综合考虑。
广泛应用于实验室、大棚、花圃、粮仓乃至土壤等各个领域。
而传统的温湿度控制则利用湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材。
通过人工进行检测。
对不符合温度和湿度要求的库房进行通风、降温、去湿等操作。
这种人工测试方法费时费力,效率低。
切随机性较大。
误差大。
因此就需要一种造价低廉、使用方便且计算精确的温湿度控制仪器。
利用单片机对温、湿度控制,具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。
本文通过使用STC89C52单片机、DHT11传感器模块、1602液晶显示屏模块。
简单明了的实现的可提要求。
DHT11数字温湿度传感器把采集到的温湿度数据传给单片机。
经过单片机的处理。
准确的显示到液晶屏上。
并对温湿度设置上下限。
关键词:
单片机 DHT11传感器 1602液晶显示屏 STC89C52
系统总体方案设计
功能要求
1、通过数字温湿度传感器DHT11采集温湿度数据,即时传输给单片机;
2、单片机将收到的信号进行分析和处理,将采集到时温湿度实时数据送给1602液晶显示屏;
3、通过1602LCD液晶屏完成温湿度的数据显示;
4、给定温度湿度上下限数值,设置不同的温湿度.
设计思路
电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。
以STC89C52单片机最小系统作为核心控制电路,控制DHT11传感器采集的温湿度的转换,控制1602液晶屏的显示,。
具体显示内容及方式由软件来完成。
采集温湿度方面由DHT11传感器来完成,它是一个数字温湿度传感器、内置模数转换,可以直接与单片机相连接。
而1602液晶屏是插针式,也可以直接与单片机相连接。
因此不需要手动焊接等复杂的过程。
具体步骤是:
按照原理图将传感器、1602液晶显示屏分别接入单片机。
通过DHT11传感器采集当前的温湿度值、再经单片机,将处理后的数据传送到液晶屏上显示出来。
。
设置温度的上下限值。
传感器选择方案
方案一:
选用DS18B20温度传感器作为温度检测模块。
DS18B20是一线式数字温度传感器。
具有独特的单线式接口方式。
测量范围在—55℃~125℃,—10℃~85℃,误差范围在-\+0.5℃。
最高精度可达0.0625℃。
HS1101是电容式湿度传感器。
可测量相对湿度范围在0%~100%RH。
误差为-\+2%RH。
方案二:
选用DHT11作为设计的温湿度检测模块。
DHT11是一款集成型的数字温湿度一体传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
测量范围20%~90%RH,0℃~50℃。
测温精度为-\+2℃,测湿精度为-\+5%RH。
完全符合本次毕业设计的要求。
经上述分析,方案一虽然精度更精确。
却稍显复杂。
方案二即便不能实现方案一的高精度测量。
却也能满足设计要求。
且简便易行。
可靠稳定。
具有超高的性价比。
故选择方案二。
显示器选择方案
方案一:
采用12864液晶显示屏。
液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
可与CPU直接接口,提供两种界面来连接微处理机:
8-位并行及串行两种连接方式。
具有多种功能:
光标显示、画面移位、睡眠模式等。
方案二:
采用HJ1602液晶显示屏。
HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)。
1602只能显示字母、数字和符号能显示16*2个字符,但寄存器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。
总结:
在编程使用方面,两者难度差不多,原理差不多,都是写指令、写地址、写数据等等。
当然12864液晶屏显示更全面、字符更多。
相比于1602液晶屏、12864能更形象具体的实现显示功能。
不过1602液晶屏也能实现设计的要求。
网上买比较廉价,最低的六块钱左右。
而12864液晶显示屏最便宜的也要四十块钱。
从造价方面考虑,当然是价格低廉的优先。
而HJ1602A就是最好的选择。
单片机主芯片选择方案
方案一:
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
其片内的4K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。
再者,AT89C51目前的售价比8031还低,市场供应也很充足。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需lOms。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
方案二:
STC89C51系列单片机的指令系统和AT89C51系列的完全兼容,但实际操作起来却存在很多问题:
(1)AT89C51不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。
(2)STC单片机执行指令的速度很快,大约是AT的3-30倍,尽管快是好事,但这样一来,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用STC时注意得加长延时,大约是AT的10—30倍就差不多,这一点自己调试就知道了。
(3)STC单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。
比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。
而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。
总体设计框图
按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。
总体设计方案围绕上述思想,初步确定系统的方案如图2-1所示
。
系统硬件设计
概述
此次的毕业设计主要由3个大的模块构成,分别是主控模块、传感器模块、LCD液晶显示模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;传感器模块用于实验室实时温湿度的检测、由于DHT11的数字一体性,集成了模数转换等模块。
直接接单片机即可。
LCD液晶显示模块同样接入单片机,完成对单片机处理后的数据进行显示。
主控模块设计
STC89C52芯片的简介
功能特性:
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,如图3-1所示。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
主要性能:
与MCS51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz 、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
DHT11传感器模块设计
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
DHT11传感器实物图如下所示:
(1)引脚介绍:
Pin1:
(VDD),电源引脚,供电电压为3~5.5V。
Pin2:
(DATA),串行数据,单总线。
Pin3:
(NC),空脚,请悬浮。
Pin4(VDD),接地端,电源负极。
(2)接口说明:
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
DHT11传感器连接STC89C51系列单片机相对比较简单。
单片机的P2.0口用来发收串行数据,即数据口。
连接传感器的Pin2(单总线,串行数据)。
由于测量范围电路小于20米,建议加一个5K的上拉电阻,因此在传感器的Pin2口与电源之间连接一个5K电阻。
而传感器的电源端口Pin1和Pin4分别接单片机的VDD和GND端。
传感器的第三脚悬浮放置。
DHT11传感器原件的电路原理图如下
1602液晶显示模块设计
1602液晶显示屏简介
HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)。
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
在单片机的人机交流界面中,一般的输出方式有以下几种:
发光管、LED数码管、液晶显示器。
发光管和LED数码管比较常用,软硬件都比较简单。
在单片机系统中应用晶液显示器作为输出器件有以下几个优点:
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。
因此,液晶显示器画质高且不会闪烁。
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如图
(1)引脚说明:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平
R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
(2)1602LCD的RAM地址映射以及标准字库表
LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母。
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:
1为高电平,0为低电平)。
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移。
S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光标。
B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线。
N:
低电平时为单行显示,高电平时双行显示。
F:
低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:
高电平时为8位总线,低电平时为4位总线)。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读出忙信号和光标地址。
BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。
指令10:
写数据。
指令11:
读数据。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。
1602内部显示地址如图
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下图所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
系统软件设计
在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。
主程序首先要对整个系统进行初始化,然后将采集到的温湿度指令传给系统的主流程图如图
1602液晶显示模块设计
液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里现实了字符。
1602液晶显示模块可与STC89C52直接接口的。
软件流程图如图所示:
传感器模块设计
温湿度模块DH11数字温湿传感器加湿器温湿度传感器随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。
因此,温度、湿度传感器用途越来越广泛。
新一代的数字传感器不再需要外置的AD转换模块,并具有标准接口,使用方便,得到了越来越多的应用。
DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。
1单总线通信简介目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。
其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线则以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。
这些总线至少需要两条或两条以上的信号线。
DHT11传感器模块的软件流程图如下图
系统分析与调试
本设计是在KeilC环境下开发的,KeilC软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者的首选。
设计的首要任务是安装和学习使用这个软件,在简单的学习和了解KeilC后,我们便可在此环境下开始了对带录音功能的电子琴的设计工作。
在编译完KeilC后,再运用STC_ISP_V480软件烧录到开发板上,实现实物与程序的连接。
在烧录前要对STC_ISP_V480进行一些必要的设置。
第一步:
设置MCUType为STC89C52RC;第二步:
打开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:
选择对应的COM端口,(可在我的电脑的设备管理处查看COM选项);第四步:
点击Download/下载,等提示
请给MCU上电时,打开开发板上的开关,它就自行烧录了
在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。
开始供电后、稍带几秒等1602液晶屏能正常显示当前温湿度了之后。
观察当前温湿度的变化。
并且针对与自己设定的限值相比较。
若当前温度没有超标,即没有超过限值。
可以用手捂住DHT11传感器,令其温度的显示超标。
经过测试。
完全可行。
因而简单的实现了对温度的控制。
湿度控制原理跟温度一样。
结论与展望
本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。
虽然系统还存在一些不足,比如温湿度测量不够精确,特别是湿度,波动较大。
尝试了各种改进方法。
仍然不太理想。
不过大体能反映出设计的目的和要求。
与预期的结果相差不多。
经过近一年的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。
了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。
同时,对一些外围设备比如传感器、液晶屏、键盘、等有了一定的了解!
学会了对一项工程如何设计:
首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次