基于STC89C51单片机的温湿度检测系统

2020-08-22 19:13发布

基于STC89C51单片机的温湿度检测系统

摘 要:设计一种计算机教室温度、湿度检测系统,用于控制机房的温、湿度。整个系统采用STC89C51微处理器作为主控系统,硬件电路主要包括51单片机、DHT11温湿度传感器、显示器模块、警报器以及控制设备等5部分。通过给定的温湿度的上下限值并由1602 LCD显示器显示,传感器测量的信号由LCD显示出来,LCD显示实时的温、湿度值。当温、湿度超过限定值时,蜂鸣器鸣叫报警。


关键词:单片机;温湿度传感器;LCD显示器 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温湿度传感器 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH,温度0~50℃。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准,校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数,采用单线制串行接口[5],使系统集成变得简易快捷。


在这里插入图片描述


图2-1-1 封装信息

四条引脚中有两条是电源引脚,有一条是输出数据的引脚,只需要给其供上额定电压,输出引脚采集信号即可完成。若输出信号是模拟量,则通过A/D芯片,将模拟量转换为数字信号,然后传送给单片机。DHT11是数字传感器,不需要进行模数的转换。

在这里插入图片描述

2.1.2 1602LCD显示器 液晶显示器(Liquid Crystal


Display, LCD)是一种被动式发光的低功耗显示器件。由于液晶这种物质本身不发光,它只是在外加电场的作用下使液晶内部的分子有序排列,从而改变通过这些液晶分子的光线方向,光线再经过底板的反射、散射最终进入人们的视野中。液晶显示器具有重量轻、体积小、功耗低、抗扰能力强等优点,广泛应用于人们的生活中、仪器仪表、控制系统等领域[3]。 本设计将采用点阵字符型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.1


STC89C51单片机简介


STC89C51单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 其主要特性如下:


工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)


工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz


用户应用程序空间为12K/10K/8K/6K/4K/2K字节


片上集成512字节RAM


通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。


ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片


具有EEPROM功能


具有看门狗功能


共3个16位定时器/计数器。即定时器T0、T1、T2


外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒


通用异步串行口(UART),还可用定时器软件实现多个UART


工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)


PDIP封装 2.2.2 单片机最小系统


在这里插入图片描述


图2-2-2 最小系统原理图 2.2.3 复位电路与晶振电路 检测系统采用上电复位,当RST引脚上出现了两个周期以上的高电平就会触发内部复位,这里的EA端与复位电路无关,由于数据都放在了内部存储器,所以EA端直接上拉高电平。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率,可以用于同一个晶振项链的不同锁相环来提供的。单片机STC89C51的晶振电路采用无源晶振,微调电容取30pF。


在这里插入图片描述


图2-2-3 复位电路、晶振电路 2.2.4 蜂鸣器警报模块 本设计采用蜂鸣器报警电路,如图所示。当蜂鸣器额定电流≤30mA,而对于STC89C51单片机,P3.2口的灌电流为15mA,仅靠单片机的P3.2口电流是不能驱动蜂鸣器的,必须使用晶体管放大电流。通常使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫,实现报警。


在这里插入图片描述

图2-2-4 蜂鸣器警报模块 2.2.5 温湿度按键模块


在这里插入图片描述


图2-2-5 按键模块 2.2.6 系统显示模块 显示模块选用1602点阵字符型液晶显示器,它是目前工控系统中使用最广泛的液晶屏之一。它的显示的质量高,驱动方便,经过编程后显示的内容丰富多样。 DHT11是数字型温湿度传感器,可直接以数字的方式传输所采集到当前环境的温、湿度,DHT11采用的是单总线通信,因此只需将单片机的一个I/O端口与DHT11的通信接口连接就可以实现数据的采集和传送。


在这里插入图片描述


图2-2-6 1602LCD与DHT11原理图 2.3 硬件实施控制与实物成品


在这里插入图片描述


操作说明: S1:复位键 S2:设置/保存 S3:数值加 S4:数值减 1、系统上电后,LCD1602显示当前环境的温湿度值,按下S2设置键,依次进入预设温度上限、湿度上限、湿度下限、温度下限的调节模式。


2、按S3数值加键,预设值加。


3、按S4数值减键,预设值减。


4、设置成功后,再按S2设置键退出,返回到正常监测模式。


在这里插入图片描述


图2-3-1 硬件实物图1


在这里插入图片描述

图2-3-2 硬件实物图2 3 系统软件设计


系统软件设计采用分部模块化设计,其中包括主程序、温度检测子程序、湿度检测子程序、数据储存、子程序读取、LCD显示子程序。软件设计时温湿度监测系统的核心部分,将采用循环的方式来完成数据的收集,并进行数据对比。系统上电后正常运转,并进行温、湿度的检测与处理。


在这里插入图片描述


图3-1 软件设计流程图 4 结 语


本文设计的是计算机教室的温湿度检测、报警、控制系统。由高性价比单片机STC89C51对传感器数据进行处理,通过温湿度传感器,实现对温、湿度数据的采集,并对数据进行处理, 1602


LCD显示器显示即时温、湿度值。当测出数值超出设定的温、湿度值时,由单片机驱动蜂鸣器模块,实现报警功能,控制设备自行启动,调节室内的温度、湿度,使其恢复到正常范围。综合上述的功能,就可以构造一个以DHT11传感器和C51单片机为基础的系统,实现稳定和简便的温、湿度环境数据监测功能。