基于STC89C51单片机的温湿度检测系统
0 引 言
当计算机教室温度过高,会导致机器的散热功能无法正常运行,影响电路稳定运行。为了确保机房的设备正常运转,机器的温度最好保持在18-25℃。如果室内的空气湿度过大,会导致设备金属部件产生锈蚀,电路板的绝缘性能降低,从而影响设备的稳定运行。为防止静电产生,保证设备的安全系数不受影响,机房的空气也不能过于干燥。因此,机房的温度、湿度要控制在稳定状态,避免意外发生[1]。
一、整个作品采用STC89C51微处理器作为MCU(Microcontroller Unit),硬件电路主要包括51单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分。其中由DHT11温湿度传感器及1602 LCD液晶显示器构成系统的显示模块。系统程序给定温湿度上下限值并通过1602 LCD显示器显示,传感器测量的信号由LCD显示出来,LCD显示实时的温、湿度值。当室内的温湿度超过限定值,蜂鸣器鸣叫报警。
二、温湿度的检测和控制是研究的主要内容。当环境中的温湿度发生变化时,DHT11温湿度传感器随着温度、湿度的变化而变化,然后将变化的电阻通过转换电路和转换信号检测为相对应变化的电压,然后把模拟电压信号由A/D转换器转换为数字信号并送入到单片机中。单片机对采集到的信号进行滤波处理并通过查表得到实际测量的湿度值。
三、该系统通过按钮设定最适宜的温度和湿度,传感器向最小系统输送监控信号,若超过预设值,蜂鸣器就会报警提醒,控制温、湿度的设备即可做出调整,使室内的温、湿度回到正常范围。
四、根据各种不同的计算机教室最适温度进行温度调节,若低于下限温度则采取升温措施,通常采取电热增温和空调增温。若高于上限温度则采取降温措施,通常通过空调降温和风扇降温;为满足机房不同种类计算机对湿度的要求,我们可以随时对温、湿度进行调节,对于不利情况能够及时的显示,并采取相应的措施提醒用户进行调整,以达到最适宜的温湿度。
1 整体方案结构
1.1 总体设计方案及其论证
本设计要实现的功能是:实时显示当前环境的温、湿度,允许用户设定温、湿度的上下限值,当环境温湿度超过或低于限定值时,系统会以蜂鸣器鸣叫的方式进行报警,并且使控温设备启动。待室内达到正常范围时,蜂鸣器停止鸣叫,控温设备停止运行,系统正常工作。
(1)温度检测:对温室温度进行测量并反映在显示器上。
(2)湿度检测:对温室湿度进行测量并反映在显示器上。
(3)显 示:1602 LCD显示器显示实时温度、湿度值。
依据功能设定,本系统主要分为以下三个模块:
(1)温湿度采集模块
(2)数据处理模块
(3)用户交互模块
其中温湿度采集模块使用的是DHT11数字温湿度传感器,它使用单总线方式,接口简单,而且无需另外校准。分辨率为8bit,能够满足日常环境温湿度的检测要求。
数据处理模块使用的是STC89C51单片机作为最小系统,其完成温湿度数据的采集、运算和控制设备运行的功能。
用户交互模块主要由按键、1602液晶显示器、蜂鸣器和控制设备构成。其中按键用于用户设定温湿度的限定值,1602 LCD用于显示数据,蜂鸣器用于提示用户,控制设备用于调节和控制不符合要求的温、湿度。
1.2 系统设计简图
C51单片机作为主控制器,负责处理由DHT11传输的数据,并把处理好的数据送向显示器模块,DHT11温湿度传感器主要用来采集周围的环境参数,并把采集得到的数据送向单片机。按键电路主要是用来完成单片机的复位操作和温湿度限定值的设定。蜂鸣器电路是用三极管来实现的,用来提示周围的温度或者湿度是否超出设定数值,控制设备等候指令,当蜂鸣器响起且温、湿度不在标准范围内,控制设备自行启动,直到温、湿度正常。显示电路主要用来显示当前的温湿度。

图1-2-1 温湿度监控系统原理图
2 系统硬件设计
2.1 器件选定
将单片机用作测控系统时,总要有被测信号输入通道,由计算机拾取必要的输入信息。对于测量系统而言,其核心任务是怎么样获得准确的被测信号;而对测控系统来说,不可缺少的环节是对条件的监测和对被控对象状态的测试,传感器是实现测量与控制的第一环节,是测控系统的关键部分,一切准确的测量和控制都将在传感器对原始信号的准确可靠的转换和捕捉,工业生产过程的自动化测量和控制,基本主要依赖各种传感器来控制和检测生产过程中的各种量,使系统和设备在最佳状态正常运行,从而保证生产的高质量和高效率[2]。
2.1.1 DHT11温湿度传感器
四条引脚中有两条是电源引脚,有一条是输出数据的引脚,只需要给其供上额定电压,输出引脚采集信号即可完成。若输出信号是模拟量,则通过A/D芯片,将模拟量转换为数字信号,然后传送给单片机。DHT11是数字传感器,不需要进行模数的转换。
2.1.2 1602LCD显示器
本设计将采用点阵字符型1602液晶显示模块。


基本操作时序
(1)读状态;输入:RS=L,R/W=H,E=H;输出:D0~D7为状态字。
(2)读数据;输入:RS=H,R/W=H,E=H;输出:无。
(3)写指令;输入:RS=L,R/W=L,E=H,D0D7为指令码;输出:D0D7为数据。
(4)写数据;输入:RS=H,R/W=L,E=H,D0~D7为数据;输出:无。
图 2-1-2 外形尺寸

图2-1-3 点阵字符型1602液晶显示器的显示地址映射图
控制器内部带有80B的RAM缓冲区,对应关系如图2-1-2所示。
在图中的00H0FH、40H4FH地址中的任意处写显示数据时,液晶都可以立即显示出来,但写入到10H27H或50H67H地址处时,必须通过移屏指令将他们移入可显示区域才能正常显示[4]。
2.2 主控系统电路和各硬件模块
2.2.3 复位电路与晶振电路
检测系统采用上电复位,当RST引脚上出现了两个周期以上的高电平就会触发内部复位,这里的EA端与复位电路无关,由于数据都放在了内部存储器,所以EA端直接上拉高电平。
2.2.4 蜂鸣器警报模块
图2-2-4 蜂鸣器警报模块
2.2.6 系统显示模块
显示模块选用1602点阵字符型液晶显示器,它是目前工控系统中使用最广泛的液晶屏之一。它的显示的质量高,驱动方便,经过编程后显示的内容丰富多样。
S1:复位键 S2:设置/保存 S3:数值加 S4:数值减
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177691.html原文链接:https://javaforall.net
