基于单片机的温湿度检测仪设计

系统简介

温湿度检测仪设计主要应用在科研实验室、农业大棚、花园、粮食大仓以及土壤等各个领域。在对国内市场上
的温湿度检测仪进行研究调查的基础上,设计了一套能够对不符合温度和湿度要求的仓库或大棚进行通风、降低温
度、去除潮湿的系统。主要完成当温度或湿度过高或者过低能够自主调节并且报警提醒,直到温湿度符合要求是停
止报警。对于硬件设计方面,主要是以STC89C52单片机为核心进行设计,实现采用DHT11温湿度传感器传递温湿度,
并且在LCD1602液晶屏上显示温湿度以及温湿度的上下限,温湿度的上下限存储在EEPROM芯片AT24C02中,当温湿度
过高或过低可以通过继电器的吸合起到开关的作用,继电器可以驱动负载从而做到加温、降温和加湿、除湿的作用,这种方法可以节省人力去对温湿度进行控制,具有控制温湿度、精确度高、功能齐全、性价比高的特点。经过
仿真和测试过程能够实现温湿度检测仪自动报警以及温湿度控制的效果。

1 引 言

自从单片机发明以来,单片机的性能不断地升级和发展,也随着科技的高速发展,我家庭生活、工业和农业、
气候、环境卫生、国家边防、科研、航天等行业,经常要对周围的温度、湿度进行监测和监控。温湿度控制系统已
经成为当代社会研究的重要项目,由于对这些参数的控制,使得温度、湿度不再是单独的,而是在整个系统中得到
了充分的体现。目前的温湿度测量和工作一般是由人力来进行的,要求手动测量,并针对不适应气温、湿度的需
要,实施通风、下降气温、消除湿气等各种作业。这种运算方法耗费时间长,工作效率低下,随机几率高,错误
多。因此,我想要一种温度和湿度的控制设备,因为它的成本很低,计算起来也很容易。通过微电脑系统实现了温
度、湿度管理,温度、湿度的控制精度。它功能齐全、体积小、价格便宜、简单方便的优点,去满足工艺需求。温
湿度的测量是现代测试技术中的一个重要环节,它在保证质量、节约能源、保证安全的前提下,保证温度、湿度的
准确、快捷。采用智能化的数字温湿传感器,对温度进行实时监测,是目前国内外发展的一大趋势。在温湿度检测
方面,新技术层出不穷,新产品层出不穷。其特点是温度、湿度传感器由分散式器件向集成化、智能化、系统化发
展。温、湿度控制中的线性处理、温度、湿度的自动校正。温度、湿度的自动校正、温度、湿度的控制等都是较好
的应用。目前,由于利用CMOS技术制造的单片机,拥有更高的气温、湿度、抗干扰能力等优势,使单片机的应用获
得了更普遍的应用。室温测定的最基本方式是通过温度控制计直接测量室温后再读出,而最常见的则是化学温度
计,如汞玻璃温度控制计、热电偶或电阻温度控制计、酒精温度控制计等。这些通常用刻度的方式来表达刻度的温
度,需要用读数来进行温度的测定。通过单片机的温度和湿度传感器,可以实现温度和湿度的实时显示。
1.1 本课题相关背景
  温度、湿度与人类的生产和发展息息相关,在工业生产中,温度、湿度是最常用的工艺参数,在机械、电子、
信息、石油、化工等行业中,都要求对温、湿度进行监测和控制。随着生活水平的提高,人们对居住环境的要求也
越来越高,温度和湿度的变化会对身体造成很大的影响,甚至还会影响到身体的舒适和心情,因此监测和控制温湿
度是必不可少的。
  作为一种常用的控制芯片,它在仪表智能化、工业检测控制、机器电力一体化等领域都有很好的应用前景,比
如温度、湿度控制等,单片机可以实现温度、湿度的全过程控制,并且具有很高的性价比。
  人类的日常生活都是依靠感觉来进行的,比如疼痛可以让人不会再受到伤害,而最直接的感觉就是温度和湿
度。皮肤所能感知到的仅仅是一个大致的数字,并不能很好地体现出当时的温度和湿度,这也是因为人类的主观感
觉,如果想要得到更高的数据,就需要更高的测量设备了。近几年,温度、湿度测量设备的迅速发展和科技的迅速发展,使人们更加注重日常生活中的各个环节。工农业的生产都离不开对温湿度的精确控制。而且以往的传统模式
需要人力一直监督,比较耗时耗力,而且人为地去操作非常不方便,所以我们必须去研究一种新模式去跟紧时代的
步伐,面向更加智能化的温湿度控制仪去发展。可以利用单片机的高集成、强大的功能,可以帮助玩家完成自己想
要的功能,降低人工操作带来的麻烦和错误。随着智能化的不断发展,用智能代替手工,已经成为了一种潮流。
  采用STC89C52微处理器,实现了对室内温度和湿度的准确监测。该类型的微处理器还能实现对温度的加热和冷
却,使其达到一定的温度范围。这个控制系统能够把温度控制在一种特殊的区域内,这个控制系统能够在温室、花
圃、花木栽培中为植株的生长发育创造一种良好的环境,这种系统可以实时地显示房间的温度和湿度,从而满足温
湿度的要求。
1.2 课题研究意义
  我们每天都能感觉到温度和湿度,而人的感知能力却是有限的,所以要对温湿度有准确地判断才行。温度和湿
度作为日常以及工农业检测上的常用参数,温度、湿度是一种很普遍的测量方法,在工业生产、石油开采等领域,
都要对它们进行严格的监控。温度和湿度对于人体健康有很大的益处,可以让我们保持一个良好的作息时间,让我
们的身体保持一个舒适的环境。温湿度对其工农业又有重要的作用,可以保证植物处在适宜的温湿度,能够更好的
发展与生产,在这个智能时代,我们必须要对温度和湿度进行调控,使他能够满足我们的日常生活和农业发展。拥
有这样的 CPU能力的集成芯片也叫做微处理器。微机的问世,极大的促进了微机的发展,把微处理器与内存、 I/O
电路结合起来,形成了今天我们所采用的嵌入式技术。通过把微处理器引入到我们所学的电子系统中,可以很好地
提高仪器的智能化程度,而89C52微处理器则是用来监控温度和湿度的。
1.3 论文主要的研究内容
本系统所需要去实现的功能:
  (1)同时使用LCD1602显示器,即时显示温度、湿度,并可即时指示出DHT11的温度、湿度,以及定时的定时检
测。
(2)采用人工设定门限报警,四个按键设定门限,使系统更具人性化,实用性强。
  (3)当温湿度超过人工设定的临界点时,会自动开启继电器来驱动负荷,并会有指示灯提示使用者有哪些线路
需要工作。可以用AT24C02EEPROM存储门限,断电依旧可以保存。
(4)系统主要应用于粮食仓库中温湿度的智能控制,当温度和湿度过高或者过低时,实现通风降温,风扇除湿。
1.4 系统的工作原理
  该管理系统的核心是对温度、湿气的收集,以及温度、湿气的数据采集、传输、报警、显示以及对单片机实行
简单的控制。温度、湿度的测量由智能温度和湿度传感器进行,然后将测量结果传送到LCD1602的LCD显示屏上,如
果温度和湿度超过了规定的温度和湿度,就会自动发出警报,并显示为红色,显示出温度或者湿度哪一个超出范
围,并采取相应的工艺控制。在整体系统中主要采用单总线技术,单片机通常采取应用C语言的编程,Keil软件通常
是用 MCU软件编程的。在温湿度控制系统中,通常采用微处理器为核心,主要负责的是中心运算以及温湿度控制,
组织好每个系统模块的工作需求。硬件组成部分,包含了STC89C52的主要控制器模组、DHT11信号模组、LCD1602液
晶模组、外接的EPPROM门限设置模组、继电器模块。
  一般情况下,传感器选用DHT11,利用DHT11感应器对当前的温度、湿度进行实时地测量,并将测量到的温度、
湿度信息以LCD1602的 LCD显示屏进行实时的显示,然后由 MCU的中央处理器进行数据分析、处理。在系统中,还使
用了继电器来控制负荷。因此当温湿度过高或者过低时启动继电器去驱动负载去工作,做出一些降温升温或者加湿
除湿等一系列操作,例如用降温风扇或者除湿风扇来有效地去降低室内的温度或者湿度,也可以加温和加湿。

2 系统的总体方案设计

2.1 系统的总框图
  本系统设计硬件主要是以单片机STC89C52单片机为主要的核心技术加以开发,在实现时,可以通过DHT11温度和
湿度感应器实现温、湿度信息的传输,通过LCD1602的LCD显示温、湿度上下限,温湿度的上下限存储在EPPROM芯片
AT24C02中,当温度过高或过低可以通过继电器的吸合起到开关的作用,继电器也可以去驱动负载从而做到一些加
温、降温和加湿、除湿的作用。阈值通过AT24C02存储,并且AT24C02可以实现断电保存的作用。当温度或者湿度超
过范围所定的最大值或最小值就会触发相应的过阀报警,通过报警提示在做出相应的温湿度处理,将温湿度控制在
范围内。本文所研究设计的温湿度框图如图2-1所示。
在这里插入图片描述

图2-1温湿度控制方框图
2.2 方案选择
2.2.1 单片机的选择
  方案一:先选用美国ATMEL有限公司的AT89C52晶片作低压MCU,或选用CMOS8位微控制器。该设备是由美国ATMEL
有限公司的高密度、不易于损坏的存储技术所制成,具有良好和与MCS-51标准的指令系统兼容性,芯片内部使用
8bit的 CPU和 Flash内存。这种装置功能很强,它的8 K内存采用 Flash技术,不需要太多的硬件,不需要太多的硬
件,也不需要太多的开发时间,而写入到 MCU中的程序,就可以用来保护自己的劳动成果。AT89C52的价格比起8031
要便宜得多,而且在市面上也是供不应求。AT89C52可构成最小的微处理器系统,使系统体积减小、可靠性提高、使
用费用减少。在一个不到8 K的程序中,可以同时使用四个输入/输出端口。可采用5 V的电压程序,仅需10毫秒即可
进行擦写。
  方案二:由于STC89C52系列的单片机和AT89C52系列的指令都是完全并行的,不过在实践中却面临了不少问题:
  (1)AT89C52没有 ISP的下载功能,只能通过 APP下载,STC89C52可以通过 USB接口下载。
  (2)STC89C52对于单片机的执行指令应用速度特别快,比AT89C52单片机快了3~30倍,速度快一方面是比较好
的方面,不过,AT89C52型单片机并不一定适用于STC89C52单片机,因为STC89C52型单片机对时序的要求非常高,在
STC89C52单片机中,它的延时要比AT89C52系列的多10~30倍。
  (3)STC89C52型单片机对于工作环境的影响较低,当电压低于约5V时仍然可以正常操作,甚至当电压在3V到4V
之间时都可以工作,但是对于AT89C52型单片机时,在这类环境下无法工作,所以当系统应用于STC型比较好用时,
不一定适用于AT型单片机。
  经过这两种方案的对比,结合校园里的数字电路、单片机和 C语言的编程原理,结合单片机的各项功能和资
源,我决定采用STC89C52单片机作为首选,校内可以使用的单片机,使用起来更加方便,STC89C52系列单片机是最
合适的。本系统采用STC89C52单片机作为主要控制单元,既能保证设计运行和操作,又能降低成本,又能方便地获
得软件。
2.2.2 传感器的选择
  方案一:选择DHT11作为设计的传感器。DHT11是一款数码温度、湿度测量一体的集成式温度和湿度传感器。
  方案二:采用DS18B20型温湿传感器。DS18B20是一个使用了独特的单引线连接方式的线性温度传感器,用于-
55~125℃,-10~85℃,它的测温误差一般在上下0.5℃,其最大精确度为0.0625℃。湿度传感器选用的是HS1101型
的电容型湿度传感器,其相对湿度范围为0%RH~100%RH。其湿度的测定误差通常为正负2%RH。
  DHT11型温度湿度传感器,主要用于特殊的数码模组采集和温湿度检测,保证了产品的高可靠性,并具有超出常
规设备的长期稳定性。该传感器主要是由一个感湿器和一个用来检测周围环境温度的NTC元件所构成,并与一台8位
微控制器相结合。这类产品制造起来,就具有了品质较高、响应速度较快、高抗干扰、性价比高的优点。这类测量
范围湿度在0%~80%RH之间,温度在20℃~60℃。测量的气温的高度误差一般在上下两摄氏度,而测出的相对湿度误
差则在相对湿度百分之五左右。这是最适合此次毕业设计的要求。
  经过上述的分析,方案二显然对于测量更加精密和准确但是操作相对于比较复杂,方案一虽然不能实现出方案
二的高精度的测量,但是比较符合此次设计的设计需求,制作较为简单,方法也可以适用,比较可靠稳定,性价比
高。所以我选择方案一中DHT11温湿度传感器。
2.2.3 显示器的选择
  方案一:采用LCD1602液晶显示屏,LCD1602A是一个在电子工业上很常用的字符式液晶显示,它能同时表示16x02,即2排16列32个字符。LCD1602A能显示32个字母、数字和符号,但其寄存器不仅有32个字符,有特定的表示
功能,例如对某些文字也能够逐个表示,通常由左至右或由右至左显示。可以让用户明显观察出来。
  方案二:12864 LCD显示,LCD模块通常采用12864的汉字格式,即12864能够同时显示汉字和图形。液晶显示屏
12864内置了8192个汉字(点阵16
16),128个字符(816)点阵(816), RAM (GDRAM)64*256。该系统可以直接
与 CPU相连,也有8bit并行和串行连接的两种接口。这种显示屏可以显示游标、画面转换、有关于自己的睡眠状态
的显示等。
  综合考虑在编程这方面而言,这两种技术的难度和原理也大同小异。关于指令、地址、数据这些都一样。但是
比12864的LCD更全面,而且更多的字符。12864和1602液晶显示屏一样,都能够很具体地表示所需要的功能。但是
1602的 LCD屏幕也可以满足这个要求。而且从价格上来说,1602液晶显示器在网上大概要六元左右,12864的液晶显
示屏至少要四十元,总体来说,还是很便宜的,性价比高,是最好的选择。

3 系统硬件电路设计

3.1 硬件系统的概述
  温湿度探测器由五个模块构成,其中五个模块为主控制器,DHT11传感器模块,液晶显示模块,阈值设置模块,
继电器模块。STC89C52微处理器主要是监控整个系统的所有功能,并利用各个端口来管理所有功能,把所有功能联
系到一起,从而构成了一个整体的系统,通过DHT11的温度、湿度感应器可以对温度、湿度信息进行读取、查询,通
过液晶显示屏则可即时显示房间的温度、湿度信息,还可表示出不同的温度、湿度。本系统将最高或者最低温度、
湿度记录在 EEPROM中。该系统在EEPROM内存储了温度和湿度的上限。当断开电源时不会失去设定的上下限,温度和
湿度的上下限可以通过四个按钮来调节。如果温度和湿度超过了预先设置在 EEPROM内存的下限,则该报警器会发出
警告,提醒其温度和湿度超过限值。报警装置还能用三极管启动继电器来控制外部的风扇或制冷器,使其达到合适
的温度、降温以及加湿、除湿。
3.2 主控模块
微机的发展,极大地促进了单片微机的诞生,美国德克萨斯仪器公司于1975年开发了TMS-1000单片微型计算机。在
这个仪器设备智能化中扮演不可缺少的一环。
如果从8位单片机开始,可以将今后的单片机发展分为下列几个阶段:
  第一时期(1976-1978):这时单片机还处在探索时期,以英特尔公司的MCS-48为代表。MCS-48是工业控制时代
的一次尝试,那时 Motorola, Zilog等公司也都在这方面投入了大量的资金,并且获得了巨大的成功。正是在那
时, SCM应运而生,所以才有了"单片机"这个名字。
  第二时期(1978-1982):这是MCS-48系列产品中最具代表性的MCS-51系列产品。该系统主要针对MCS-48单片机
进行改进,并建立了通用总线系统的基本结构。
  (1)新的微处理器使外部总线更加完美。MCS-51主要应用于较为常见的8位 MCU总线,包括8位的数据总线、16
位的地址、串行通讯接口,并具备与多台MCS-51通讯的能力。
(2)集中管理外围功能单元模式的CPU。
(3)具有体现工控特性的地址存储空间和操作方法。
(4)系统的功能与指令也越来越趋于完善,并且多增加了许多突出控制的功能与指令
  第三时期(1982-1990):在这一时期内,随着八位单片机的发展而日趋稳定,16位单片机的问世,又使MCS-96
系统的单片机发展成为了一种新的方向,MCS-96系统的MCS-96,将其运用于各种测量系统的模数转换、程序执行时
的监视器、脉宽调制装置等功能上,都被加入到了MCS-96芯片中。
  第四时期(1990-2022):单片机产生了更快速、更大的寻址方式,8位通用型、16位通用型、32位通用型、少
量的微型、廉价的专用型 MCU。
3.2.1 单片机的引脚说明
单片机的主要特征:
(1)有较高的性价比,同等价位价格低廉,功能齐全。
  (2)单片机有较高的集成度、体型较小,该系统具有高可靠性,所有的功能都集成在一个芯片上,其内部使用
了总线技术,可以降低各个晶片之间的连接与接线,从而提高了系统的稳定性和抗干扰性。此外,由于 MCU的体积
较小,在强磁场的情况下,采用了屏蔽措施,因此适用于较差的工作环境。
  (3)单片机的控制能力很好。为了适应新的工业自动化要求,一般要求为单片机指令系统提供大量的扩展指
令、I/O端口和逻辑运算能力。与同类产品相比,单片机的逻辑控制能力和运算速度都大大提高。
(4)单片机具有低功耗、电压较低、方便生产制造便于携带的产品。
(5)在 MCU的外部总线中加入了串行总线模式,如 IIC(Inter-Intergrated Circuit)和 SPI(连续性能接
口),这样可以进一步的去减小体积,将结构简化。
(6)典型的单片机扩充系统及系统结构,总体比较规范,可以轻松地组成不同大小的应用程序。
VCC:STC89C52单片机的电源正向输入,一般接+5V。
XTAL1:单个芯片的时钟系统所对应的反相放大器输入端。
  XTAL2:一般情况下,只是在XTAL1和XTAL2之上串联了一个主要由岩英组成的振荡晶体系统而已,此外,也可在
两管脚中间添加一个20pF以下的小电容,而这种小电容的主要功能就是为了使整个系统比较平稳,并且防止噪声影
响而使得机器死机。
  PORT0(P0.0~P0.7):双端口0是一种带有8位字长的开路汲极双向输入和输出接口,共带有8个位,P0.0表示0
位,P0.1所代表1位,以此类推。其他的三种I/O接口分别为P1、P2、P3,这一类本来就不具有系统的组态,而是将
他们看成内部具有一组提升回路,当P0口为I/O口时可以驱动8个LS的TTL负载。
  PORT1(P1.0~P1.7):第一端口是一种双向输入/输出端口,其输出缓冲可以使4 TTL加载,当端口1被设定为
高电平时,数据就会被口1所传输。若使用8052或8053,则 P1.0可以接收来自定时器2的脉冲的输入管脚,而 P1.1
则具备T2EX的功能,它可以利用外部的中断输入来触发引脚位。
  PORT2(P2.0~P2.7):第二端口是一种双向I/O接口技术,它里面的每个连接都可以驱动4个LS的TTL负载,当
第二个连接被设计成高电平后,这个连接就可以被用于输入,而P2可以被用于普通I/O接口技术时,它也可以被用作
STC89C52扩展的外部变流器里面的数字存储,但在这里,P2并不能用于普通I/O端口。
  PORT3(P3.0~P3.7):第三端口是一种双向输入/输出接口,其输出的缓冲能够驱动4TTL的负荷,并且还能够
提供许多另外的功能,比如串行通信,外部中断管理,时钟计时计数管理,外部数据存储,读写管理。它引脚分配
如表3-1:
表3-1引脚分配
  
端口引脚 替代功能
P3.0 RXD, 串行通信输入。
P3.1 TXD, 串行通信输出。
P3.2 INTO,外部中断0输入。
P3.3 INT1, 外部中断1输入。
P3.4 TO, 计时计数器0输入。
P3.5 T1, 计时计数器1输入。
P3.6 WR: 外部数据存储器的写入信号。
P3.7 RD,外部数据存储器的读取信号。
3.2.2 单片机的最小系统
  在单片机中,一个非常关键的环节是 I/O端口的并行。STC89C52具有4个8bit的并联输入/输出端口,分别为
P0,P1,P2,P3。每个端口都包含一个锁存器,一个具有输出功能的驱动器,一个用于输入的数据缓存器。在存取
片外扩充存贮器时,8位较低的位址及资料在不同时刻由P0端口传输,而高8位的位址则由P2端口进行传输。在不采
用片外扩充内存的情况下,4个输入/输出接口均能用作双向接口。
  四个输入/输出端口均为8-位双向端口,它们的总体结构特点基本相同,但是每个I/O口都有自己独立的特点。
  STC89C52单片机一般采用两种来形成钟表信息,一种是由内在钟表信息和外界钟表信息。如果将单片机在XTAL1
或XTAL2的导线上,然后将它和岩英晶体连接起来,可以组成一个自激振荡式器,以便于发生在单片微式机中的时钟
脉冲。图3-2中的C1、C2的功能是迅速地使 MCU的工作频率降低,并使其产生迅速的振动。电容值一般定为5pF-
30pF,最典型的是30 pF。晶振 CYS通常在1.2MHz-12MHz之间进行振荡,其典型的数值是12MHz和11.0592MHz。
  STC89C52单片机的 RST管脚连接到高电平,维持2个机械周期后,单片机可以进行重置,如果管脚仍然处于高电
平,则单片机循环重置。
  通常复位电路有两种方法,一是接上电源,二是手动按键重置。接上电源自动复位电路相对来说很简单,即在
复位电路中只要连接上电源,就能在电路中进行电容充电。只有确保Vcc的上升持续时间在一毫秒以内,就能够进行
自动恢复。一般采用6MHz的时钟频数,电容通常取值为22μF,而电流则通常取值为ω。由于除常规的线上电恢复以
外,还必须为键盘的自动恢复做好准备,故我的设计就是自动的键盘重置。按键的人工重置通常有两种,一种是电
平,另一个是脉冲方式,在此,电平重置由 RST端经由电阻器与 Vcc连接而被接通。单片机最小系统如图3-2所示:在这里插入图片描述

图3-2 单片机的最小系统
3.3 DHT11传感器模块设计
3.3.1 DHT11传感器简介
  DHT11数码温度和湿度传感器是一种温度、湿度混合的传感器,它可以对数字信号进行校正,并对其进行解调。
为了提高产品质量的稳定性,提高产品质量的稳定性。DHT11型数字温湿度监控传感器中包含了一种由电阻进行感温的原始器件,一个是NTC的温度检测器件,另一个则是具有更高效能的八个嵌入式微控制器。所以这些质量好,反应
快,抗干扰能力强,性价比最高。DHT11的温度和湿度传感器都是通过各种测试和校准的。它所接受的校正因子也被
储存在 OTP记忆体中。在检测信息的处理过程中,这些参数都是要进行校正的。这类传感器一般都是单线制串行连
接口,这样的好处是可以把系统集成变得越来越便捷。这类感应器虽然体积小,它的功耗极小,却能够传递超出二
十米的信息。可以去应用到各种场合,产品通过4针单排引脚去封装起来,连接比较便捷,可以通过用户去改变封装
形式,所以这也是本次设计最优选择。
DHT11传感器实物图如3-3所示:在这里插入图片描述

图3-3 DHT11传感器实物
(1)关于DHT11引脚介绍:
Pin1(VCC):电源引脚,可以提供3V-5.5V电压。
Pin2(DATA):串行数据,单总线。
Pin3(NC):空脚,请悬浮。
Pin4(VDD):接地端口,电源的负极。
(2)接口说明:
一般来说,在20米以下的导线上要用5 K的上拉电阻,超过20 m的时候要考虑到实际情况。
(3)数据帧数的描述:
  DATA一般是用来与DHT11的温度、湿度信号进行同步的,一般采用单行方式,每次传输需要4ms,小数部分和整
数部分会详细的描述,而现在的小数部分则可以在后续的扩充中使用。
(4)电器特征:VDD=5V,T=25℃,如表3-2所示:
表3-2 DHT11的电器特征
  
参数 条件 Min typ max 单位
供电 DC 3 5 5.5 V
供电电流
测量 0.5 2.5 mA
平均 0.2 1 mA
待机 100 150 uA
采样周期 秒 1 次
注:采样的周期间隔不能低于1S
(5)时序描述:
  DHT11当用户MCU开始传送第一个信息以后,将由一个较低输出功率的状态转变为一个较大功率的状态,等待主
设备的信号消失,DHT11会发出一个响应,然后传送40bit的数据,然后进行一次信号的收集,让一家人可以选择自
己的数据。在此模式中,DHT11会接触到一个信号,然后进行一次温度和湿度的采集,在没有收到启动指令的情况
下,DHT11不会自动进行温度和湿度的采集,在采集完数据后,会自动切换到低速状态。
  总线的空闲时刻一般处在较高电平,主机缩短了总线通道,以等候DHT11的响应,此时总线通道的拉力应大于
18ms,以确保DHT11能够成功的检测到开始信息。DHT11可以在接收主发出的信息以后,,一直等待主传送信号完
成,接着继续传输80μs的低电平应答信号,在完成主传送信号之后,延迟等待20μs-40μs之后,从DHT11中读出应
答信号。当信号发出后,主机可以转换成高电平或高电平,从而使母线上拉电阻增加。
  当总线上处在低电平时,则DHT11在发出应答信息,然后在总线上拉到80μs,以便于传输数据,一个字节的数
据小于50μs时,高电流的宽度或高度就确定了这个数据的地址是零或一。一旦读出的应答信号处于高电平,则
DHT11将没有反馈,所以需要测试线路的连接方式是否合理。DHT11在每一个ascii字符的传送完毕时,将下降
50μs,然后,总线将从上至下的高电阻转换为闲置状态。
3.3.2 DHT11传感器模块电路设计
  DHT11型感应器与STC89C52单片式微型计算机之间的接口技术,相对来说比较简单。因为P2.0端口是由单片机控
制的,它能够接受并传送串连式数据。而Pin2单总线则与DHT11传感器并联。而为了测量所在区域的温度范围集成电
路的直径不大于二十米,通常加了5K的上拉电阻,从而使每个大于5K的低温电阻都与Pin2端口接通了供电。该感应
器的Pin1和Pin4接头,分别与VCC和GND连接口相连接。感应器的前三针悬而。。DHT11传感器原件电路图如3-5所
示:在这里插入图片描述

图3-5 DHT11电路原理图
3.4 液晶显示模块设计
3.4.1 液晶显示屏介绍
  LCD1602A是一种可能同样表示三十二个字符的工业常用数字。我们每天都知道很多关于 LCD屏幕的知识。液晶
显示的基本模块已经在日常生活的各个方面都有所反映,但一般主要是在电子上,例如计数器、万用表、电子表等
等。LCD显示器屏的主要信息内容有数码、特定字符和图像。在单片机的人工通信界面上,一般都会有一种中央输出
模块:LED数位管、LCD、夜光管。LED数位管和LED指示灯都是最常见的,而且软件和硬件上都很容易。
将 LCD用作输出装置的单片机系统具有如下的优势:
  由于 LCD在接收到信号后,会持续发出特定的颜色和亮度,所以不像 CRT显示器那样,不需要持续地刷新高质
量的屏幕,所以这种 LCD的图像质量更好,而且不会总是闪烁。
液晶显示器大部分都是数字型的,与单片机的连接比较方便,看上去也更加地简单可靠。
相比之下,夜视屏的功耗更大,因为它的电池板和芯片都是由它来完成的,因此它的功耗要比其它的显示器低很
多。
(1)引脚说明:
第一引脚:VSS为地电源。
第二引脚:VDD接正5V电源。
  第三引脚:VL是 LCD的反差调节接口,在连接正向电源时,反差会变小,在接地时,反差会增大,在高反差时
会出现“鬼影”,可以用10 K的电位计来调节反差。
  第四引脚:以RS为寄存器的选定标准,当接通高电平有效时选定数据寄存器,当接通低电平为有效时选定命令
寄存器。
  第五引脚:R/W是读写信号总线,在接通高电平后进行读出工作,在接通低电平有效电流后进行输入工作。当RS
和R/W同时接上低电平有效后才能写命令和显示位置,当RS和R/W同时接上高电平后才能完成写忙动作,当RS同时接
上高电平,R/W同时接上低电平有效后才能完成写数据动作。
第六引脚:E端口是使能接口,当E端口由高电平跳转换为低电平时,由液晶模块进行指令。
第七至十四引脚:D0~D7作为8位双向数据线。
第十五引脚:正极背光源
第十六引脚:负极背光源。
(2)LCD1602RAM地址映射和标准字库表
LCD1602 LCD模组可以在其内部存储160种点阵符号,包括阿拉伯数字,常用符号,英文字母,日文等等,每个字母
都有自己的编码,如" A",在编码中是01000001 B (41 H)。
它以指令程序的形式显示读写,光标操作,萤幕操作。(注意:1是高电平,0是低电平)。
指令1:高清显示也是LCD的,01H指令,将光标恢复至0H指令上。
指令2:恢复光标,将光标重新回到0H位置。。
  指令3:使用游标设定的显示模式。I/D:指针的方向、高电平和低电平的方向。S:在萤幕上,所有的字符都向
右或向左移动。高电平表示正在工作,低电平不工作。
  指令4:显示切换控制。D:全屏的开、关、高电平、低电平、关机。C:光标开关动作,高电平,指针开关动
作,低电平。B:当打开和关掉的游标闪烁,高电平开始闪亮,低电平则有效地不再闪亮。
指令5:移动或游标。SC:移动显示文字要求上高,而移动鼠标则要求较低。
  指令6:具有设定指令的功能。DL:4在总线时要求上高,在8bit总线下要上低。N:通常是低水平的一行,高水
平的则是两排。F:通常在低级时产生5×7的点阵字符,而在高级别时会出现5×10的点阵字符。
指令7:字符发生器设置RAM的地址。
指令8:地址DDRAM设置。
  指令9:读出光标位置的手忙信号。BF:显示忙碌的标志位,忙碌信息通常为高电平,这时候模组就无法接收到
信息和命令,不忙碌一般以低电平有效显示,模组就能够很快速地去接收到信息和命令。
指令10:数据写入。
指令11:数据读取。
  LCD模组是一个速度较慢的过去显示装置,所以要保证在进行各种指示动作时都是用低电平的讯号,因为这样显
示出是很不忙,可以接收数据和命令,否则指令就会失去效果。本设计需要的字符模块从00H到OFH以及40H到4FH。
3.4.2 液晶显示模块电路原理图
  LCD是按照液晶的物理性质原理,利用电流来对显示器进行一次控制,有的位置也有显示器,以便将画面表现出
来。LCD的厚度非常的薄,可以用来驱动更大的芯片,也可以更好地完成所有的颜色,目前在笔记本电脑、 PDA、数
码相机等行业中都有广泛的应用。在图3-7中显示了该电路中的液晶界面:
3.5 阈值设定模块
  在这个设计中,所有温度和湿度的阈值信息都被保存到了AT24C02的EEPROM中,并利用了键盘上的K1,K2,K3,
K3,K3来调整和保存,K1为增加温度的上限,K2为减少温度的上限,K3为增加相对湿度的上限,K4为减少相对湿度
的上限。
AT24C02芯片整套产品有2.7-5.5 V和1.8-5.5 V。
设备操作:
  CLOCK和数据变化: SDA经常要求管理人员的脚。只有当 SCL较低的时候, SDA的插脚数据才会发生变化。将
SCL高峰期间的数据更改为起始或终止信号。
起始状态:在每一次操作前都必须有一个起始信号,当SCL较高时期时,SDA有一个下沿。
  终止状态:当SCL为高时期时候,在SDA中出现的一条上沿是终止信息,当终止信息出现以后会终止目前全部的
连接。
当一次读取顺序后,停止的信号就会使芯片或EEPROM进入到一种储备用的供电模式。
  IIC (Inter-Integrated Circuit)总线是一款由 PHILIPS有限公司所生产的一款双线型串行总线,通常用来
把周边装置和微控制器连接在一起。IIC总线是80年代出现的,它最早是在音频和视频方面使用的,目前它的主要用
途是服务管理,它包含了各个部件之间的通讯,例如,管理员检查各个部件,管理系统的结构,了解各个部件的运
行状况,如供电和控制风扇。还能监控硬盘、温度、内存、网络等各种数据,让系统更加地安全,更加的方便。
IIC总线的硬件构成:
  IIC串行总线通常分成两条信号线路,分别为 SDA和 SCL,它们能够实现前后双向的输出。在总线 SDA的上方,
所有的街道 IIC总线装置的串行数据 SDA都必须与总线 SCL相连。
  为避免母线信号的干扰,要求各器件与总线相连的输出端应为开路。设备上的串行数据线路均为双向端口,输
入与输出电路都用来将数据到总线上,而输入与输出线路也用来接受总线数据。而串行时钟也为双向端口,用作传
送总线数据的主机,一面要透过SCL传输时刻信息,一面又要测量总线SCL的SCL值,以确定下一次时刻脉冲的发生时
刻;总线空闲时,由于各元件均为开、漏输出,所以上拉电阻RP将使SCL与SDA之间始终保持在高位水平。而所有装置
的输出电流均会使总线的信号线路下降,即 SDA和 SCL为"与"。
  通常情况下,主机与附属设备可以互相传送资料,而传送至资料的总线则是传送装置,而从总线上所接收的资
料则称为接收机。
开始信息:从高电平接入SCL,在SDA从高电平转移至低电平时有效,进行通信。
结束信息:从高电平接入SCL,SDA可以从低电压有效切换至高电平,从而完成了数据传输。
  应答信息:在接收的数据大小为8bit后,发出了一条特定的低电压脉冲,说明IC已传送到数据,或者数据已被接
收。CPU先把下一个信号传发送给被控制的单元,然后再等待被控制的单元发出回应,当CPU接受到这个信息以后,
可以再选择是否继续传送新的信息。若没有收到信号,系统会自动判定被控制的设备出现故障。如图3-9所示:在这里插入图片描述

图3-9 开始、结束信号图
3.6 继电器模块
  电磁继电器主要由定子、衔铁、触点阀簧、输入导线等所构成,只要在输入导线二端加一个电流,导线内就会
有大量电流经过输入导线,进而形成电磁效应,进而使感应电枢的动态触点与静止接点之间产生常开接点。如果导
线内没有电流流过,则电磁的吸力减弱或没有,电枢受弹簧的影响,返回原来的方位,这样动和静态接触就分离成
了常闭式接触。这种吸和分离在电路中起着连接和切断电流的功能。在开启状态下,继电器"常闭"和"常开"触头均
可变为"常开"接触及"常闭"接触。通常,继电器由两部分组成,即高电压工作和低电压控制。
  在继电器中由PNP三极管作为起动,当门限达到设定后,单片微型计算机会从高至低,让电流流过三极管导致继
电器吸合,再外接风扇进行除湿作用。硬件电路如图3-10所示:
在这里插入图片描述

图3-10 按键控制电路图
系统原理图
在这里插入图片描述
在这里插入图片描述

4 系统软件设计

在对我们的产品有了一定的了解之后,我们要做的就是按照流程来设计,把各个模块分成不同的部分,然后把
各个部分的功能结合起来,形成一个完整的软件。首先是对整个控制系统进行初始化,然后由指令把收集到的温度
和湿度信号发送至控制系统中。图4-1中显示了主要的程序流程:
在这里插入图片描述

图4-1 主程序流程图
4.1 液晶显示流程模块设计
  液晶显示系统,在执行每条程序指令之前都需要先去确认忙的指标是否为低电平有效,在低电平时,如果显示
器的不忙,就可以接收到指令,如要去表示数字就需要提前进入显示器的数字位置,去告知系统中那块数字已经表
示了。液晶显示器模块的流程图如图4-2所示:在这里插入图片描述

图4-2 液晶显示模块的流程图
4.2 传感器流程模块设计
  DHT11空气湿度感应器随着现代科技的日益发达,最新的一代数字传感器已经放弃了外置的AD转换模块,同时拥
有标准的端口,使用起来相当简单。DHT11作为一个全新的单总线的数字温湿度感应器,具有许多优点,例如设计更
加便捷、方便控制、很容易实现系统功能。DHT11传感器模块的软件流程图如4-3所示:
在这里插入图片描述

图4-3 DHT11传感器模块的程序流程图

5 软件介绍与实物仿真

5.1 Keil软件介绍
  这个系统设计是在Keil条件下应用的,因为Keil软件系统能够接收C语句的编程与调试,而且应用起来也相当简
单,所以是产品设计的首选。在产品设计的第一个任务时可以去学会怎么应用和安装这个软件系统,然后在简单的
跟着视频练习之后,就可以掌握并可以简单的应用Keil。在我们做好了前期的硬件设计与软件的工作流程图之后就
可以直接去Keil进行验证,在验证完毕后就能够采用STC-ISP软件并烧录在开发板上,就能够直接去达成实际设备与
程式之间的衔接。在烧录之前,必须先对STC-ISP作出一下基本设定。第1步:为STC89C52RC设置好MCU Type;第2步:
启动编译程序,确保是以.Hex为后缀的文本;第3步:确定COM端口;第4步:单击Download下载。当给MCU上电压时,通
过开发板开关就能够自动烧录了。
Keil程序图如5-1所示,烧录图如5-2所示:
在这里插入图片描述

图5-1 Keil程序图在这里插入图片描述

图5-2 STC程序烧录图
  在完成对程序的调试和烧录之后,还需要进行演示,把开发板与电脑连上,设置好对应的接口,最终供电进行
下载。
5.2 仿真测试图与实物测试图
  在经过之前对于Keil的学习中,要做的就是通过在Keil中编写C语言代码,然后将代码以.hex文件保存,最后在
Proteus中仿真,仿真所需一块STC89C52芯片单片机,由于Proteus不支持STC类单片机,选择AT89C52类单片机进行
仿真,需要DHT11温湿度传感器、LCD1602A液晶显示屏、24C02芯片、四个继电器、蜂鸣报警器以及若干电阻、电容
和三极管。连接如图5-3所示:在这里插入图片描述

图5-3 仿真原件线路图
  完成连接工作后,接下来需要将Keil编程过的C语言代码输入进单片机中。输入过程双击单片机找到编辑的C语
言程序文本,一般都是以.hex结尾的文件,再点击确定即可。向单片机内输送文件如图5-4所示:在这里插入图片描述

图5-4 单片机输入程序仿真图
  下一步可以启动仿真,仿真开始时会有一段间隔,蜂鸣报警器发出声响等待传感器传递数据。启动成功的仿真
图如图5-5所示:
在这里插入图片描述

图 5-5 启动程序成功的仿真图
  当前的温度为26℃,湿度为60%RH,温度的上限为50℃,温度的下限为20℃,湿度的上限为70%RH,湿度的下限
为40%RH。在仿真中可以通过DHT11温湿度传感器的按键调整设定的温湿度如图5-6所示:在这里插入图片描述

图 5-6 DHT11仿真图
可以通过按键去调整温湿度的上下限如图5-7所示:在这里插入图片描述

图 5-7 上下限手动摁键图
  当通过摁键提高湿度到达71%RH,湿度超过湿度的上限70%RH会发出报警,并且亮灯提醒,继电器会启动。如图
5-8所示:在这里插入图片描述

图 5-8 湿度超过上限报警图
  当前期工作准备完毕后就可以开始进行实物测试,首先去用STC-TSP将 Keil编写的程序烧录到 MCU中,再去用
一段USB接口给温湿度测试仪进行上电,只需要将接口接上实物另一端连接电脑,这样实物的前期工作就准备完毕
了。如图5-9所示:在这里插入图片描述

图5-9 实物前期工作图
  接着我们按下开关按钮,单片机会先发出声响,DHT11温度和湿度传感器向 LCD显示温度和湿度,并显示温度和
湿度范围的高低值,这时报警器会随着数据的稳定停止发出声响。如图5-10所示:
在这里插入图片描述

图5-10 实物开机图
  因为传感器没有办法跟仿真一样去调节温湿度,所以通过调节温湿度的上下限去验证实物是否测试成功,调整
温度的上限和下限如图5-11所示:在这里插入图片描述

图5-11 温度超过上限、温度超过下限图
调整湿度的上下限去验证实物是否有效,如图5-12所示:
在这里插入图片描述

图5-12 湿度超过上限、湿度超过下限图
当湿度超过上限时继电器会吸合启动风扇进行除湿操作,这就是实物的所有测试操作。

结 论

整个控制系统设计是采用以单片微型机为基础器件的控制系统,并且通过自己的软件以及Keil的程序设计,通
过学习C语言程序,其中包括算法,格式进行编程,再Keil中进行验证,如果有报错就得重新进行验证,当所有验证
没有报错就可以进行到下面的烧录,通过软件STC-TSP进行烧录,先选择所用到的单片机,然后选择应用的程序文
件,一般都是以.HEX结尾的进行下载烧录,通过USP下载到单片机实物中,这一个可以通过仿真软件Proteus 8进行
仿真,先将每个部分正确的连接起来,再选择之前编好的C语言程序文件,只要在仿真软件中双击STC89C52单片机,
然后选择.HEX文件就可以将文件编程录入到单片机中,这样就可以让单片机根据你需要完成的任务要求进行工作。
当仿真中可以成功实现所有要求时,实物只需要按照电路图进行连接就可以实现同样的功能。
系统最终已经达到了各项任务需求。包括以下内容:
  (1)对温度与湿度的显示测量与提示,以及利用在LCD1602液晶显示屏上显示的DHT11传感器测量到一定的温湿
度以及设定固定的日期检测并更新一次。
(2)可以自动设定阈值,当温度和湿度都达到阈值时,可以开启蜂鸣报警器实现报警提示。
(3)当温度相对湿度都达到阈值后可以直接开启变频器驱动负载,负载选用风扇进行除湿操作。
由于时间情况还存在一些不足的地方,有以下几点:
(1)温湿度测量无法达到小数。
(2)湿度的波动较大。
(3)继电器只设计了当湿度过高时启动风扇进行除湿处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值