基于单片机的温湿度检测系统毕业设计论文说明书.docx
- 文档编号:28153034
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:38
- 大小:768.68KB
基于单片机的温湿度检测系统毕业设计论文说明书.docx
《基于单片机的温湿度检测系统毕业设计论文说明书.docx》由会员分享,可在线阅读,更多相关《基于单片机的温湿度检测系统毕业设计论文说明书.docx(38页珍藏版)》请在冰豆网上搜索。
基于单片机的温湿度检测系统毕业设计论文说明书
摘要
本设计研究基于单片机的温湿度检测系统,旨在实现对机房内温湿度自动控制,解决人才资源浪费,管理不及时的问题。
随着科学技术的快速发展,尤其是进入21世纪以来微处理器及传感器的发展,使得单片机的应用越来越广泛,因此也将单片机技术应用到机房温湿度检测控制系统上。
本文首先对背景及意义进行叙述切入主题,然后对整个系统的硬件设计和软件设计重点分析,其中在硬件设计中还分别对所选器件做了一个简单的叙述介绍,比如LED,LCD1602,STC89C52单片机,DHT11温湿度传感器及蜂鸣器按键等,最后再对这一设计进行总结。
本设计中采用数字温湿度传感器DHT11对机房内温度及湿度的检测,通过按键来设定温湿度的上下限值,将检测值与设定值比较驱动对应的加热加湿和降温去湿装置。
整个控制过程使用无源蜂鸣器作为超限报警,选择液晶LCD1602作为整个系统的显示器,实时显示检测的温湿度值。
本系统硬件结构简单,操作灵活,以高级语言C语言开发,KEIL4程序开发软件为开发工具设计而成。
关键词:
STC89C52单片机;DHT11温湿度传感器;蜂鸣器;LCD1602液晶;KEIL
Abstract
ThisdesignbasedonMCUtemperatureandhumiditytestingsystem,inordertoachieveautomaticcontrolofroomtemperatureandhumidity,solvethewasteofhumanresources,managementisnottimelyissues.Withtherapiddevelopmentofscienceandtechnology,especiallythedevelopmentofmicroprocessorandsensorsincetwenty-firstCentury,makingmoreandmoreextensiveapplicationofsingle-chipmicrocontroller,sowilltechnologyappliedtoroomtemperatureandhumiditymeasurementandcontrolsystem.Thispaperfirstdescribesthebackgroundandsignificanceofthesubject,thenthewholesystemhardwaredesignandsoftwaredesignareemphaticallyanalyzed,whichinthehardwaredesignoftheselecteddevicearedescribed,suchasLED,LCD1602,STC89C52microcontroller,DHT11temperatureandhumiditysensorandthebuzzerbutton,thenthethisdesignissummarized.ThisdesignusesdigitaltemperatureandhumiditysensorDHT11todetectthetemperatureandhumidityinsidetheroom,throughthebuttontosetupperandlowervaluesoftemperatureandhumidity,thedetectedvalueiscomparedwiththesetvalueofthedriveandcorrespondingcoolingheatingandhumidifyingdehumidifyingdevice.Thewholecontrolprocessusingpassivebuzzerasthealarm,selectthesystemLCD1602asaliquidcrystaldisplay,real-timedisplayoftemperatureandhumiditydetectionvalue.Thehardwareofthissystemhastheadvantagesofsimplestructure,flexibleoperation,withthelanguageClanguagedevelopment,KEIL4applicationdevelopmentsoftwaredevelopmenttoolsanddesign.
KeyWords:
STC89C52microcontroller;DHT11temperatureandhumiditysensor;buzzer;LCD1602crystal;KEIL
1引言
1.1课题的研究背景及意义
早期的机房对温湿度的检测都是通过人工来不断测量记录数据,如果需要一个准确的机房温湿度,那么就需要记录员不断采样记录。
这时负责采样记录的人员就不能花时间做其他的工作,这对人才是一个极大的浪费。
即使采样员在不断的采样记录,也会存在一个误差,而且此误差会比较大,并且就算记录比较精确,但是如果温湿度高于规定值或者低于规定值,系统不能自动进行加热和加湿等操作。
还需要人工来进行加热加湿,因此这中状况急需改变。
随着科技的发展,尤其是单片机技术及传感器技术的发展,人们开始将单片机和传感器技术应用到了机房的温湿度检测控制系统上,通过设计几个按键用于对系统温湿度上下限的设定,采用温湿度传感器DHT11进行温湿度检测,不断检测机房内的温湿度,通过外围继电器电路驱动对应的加热加湿,降温去湿装置。
我们仅仅只需要一块非常小的单片机芯片配合外围电路就能完成整个系统的控制工作。
因此其设计体积是非常小的,成本也是非常低的。
所以本文研究基于单片机设计温湿度检测系统将是非常有意义和价值的。
1.2单片机的意义和本设计特点
在现代生活的各个领域中,单片机几乎已经完全控制了整个行业,甚至已经潜移默化的改变了人们的生活方式和生活习惯,大到航空航天领域,小到马路上各式各样的花样灯控制等等。
这无不体现单片机的智能以及重要性。
可以预示单片机未来的发展趋势:
1)低功CMOS耗化;
2)微型单片化;
3)主流与多品种共存化;
4)大容量、高性能化:
以往单片机内的ROM为1KB~4KB,RAM为64~128B;
单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。
简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。
它体积小,价格便宜,功能丰富,调写程序便利。
因为它兼容了传统的8051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。
4k的flash存储器,8bit的位宽处理,128的RAM。
该设计使用它可以满足我们的所有需求。
我们在这个设计中采用了51内核单片机STC89C52作为核心部件,主要起主控作用,引领整个系统的运行控制,当作控制器的核心部位,本设计使用DHT11温湿度传感器对机房内的温湿度进行检测,通过设置4个按键用于对温湿度上下限值设定,当检测的温湿度值高于或低于设定上下限值时驱动对应的加热加湿降温去湿装置且蜂鸣器报警,此蜂鸣器采用无源蜂鸣器。
整个系统使用液晶LCD1602进行显示,将检测的温湿度数据实时显示在上面,整个系统就可以实现自动控制,实现无人操作。
整个设计界面美观,设计硬件体积小,成本低,适合家庭机房等小型场合使用。
2硬件设计
2.1系统总设计结构图
本设计由主控芯片STC89C52单片机,晶振电路,复位电路,电源电路,温湿度检测电路,加热电路,降温电路,加湿电路,去湿电路,LCD1602显示电路,按键电路及蜂鸣器报警电路组成。
51单片机负责整个系统的控制运行。
如图:
图2-1系统结构框图
2.2LCD1602液晶简介
LCD1602为字符型,通常只能显示字符和数字,如果想显示汉字的话一般选择LCD12864,LCD1602能够显示2行字符,每一行显示16个字符,故得名为1602。
其内部含有许多个RAM,我们使用到的是40个。
通过控制1602的控制管脚RS,RW,E我们即可向LCD1602显示器中写入数据,具体的显示位子第一行起始地址是0x80,第二行显示的起始地址是0x40+0x8。
其具体的图形如下:
图2-2LCD1602液晶显示器
2.3DHT11温湿度传感器简介
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
其具体实物图如下:
图2-3DHT11数字温湿度传感器
2.4按键、LED和蜂鸣器简介
按键,它是常用控制器件的一种,通常被用来对需要控制的电路开或断即接通状态或者断开状态,内部的电流是很小的,应而可以达到手动控制的作用。
在这里我们设计中使用的常用的按键,其按下后会有些许的波动,导致高低电平不稳,所以在后面的程序编写过程中需要专门用软件来消抖,一般其抖动的时间在10ms左右,如果不想再软件上做消抖处理也可以在硬件上做消抖,可以在按键那并接一个RC电路,那样就可以起到充放电延时的作用。
这样一来单片机就可以对按键按下和按键断开有一个稳定的判断识别了。
图2-4按键
蜂鸣器可分为2种,一种是无源蜂鸣器,一种是有源蜂鸣器,此二者的区分在于,有源蜂鸣器直接给高或低电平就能驱动发声,但是无源蜂鸣器需要给他一定的脉冲触发信号才能使蜂鸣器发声,在此设计中我们使用的是无源蜂鸣器,即在控制他的时候我们必须输出一定频率的脉冲方能时此蜂鸣器发声报警。
图2-5无源蜂鸣器
LED也叫做发光二极管,具有正负极,它是一种半导体固态的器件,其具有将电能转化为光能的功能,它的英文名全称是Lightemittingdiode。
其内部有一个PN结组成,当给发光二极管正极加上约2V电压的时候就会发光,如果正负极接反的话不导通,电压过大会烧坏发光二极管。
一般其导通电压是2V左右,电流是10ma。
2.5主控芯片STC89C52单片机的简介
单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。
简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。
它体积小,价格便宜,功能丰富,调写程序便利。
因为它兼容了传统的8051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。
它具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置2KBEEPROM,拥有3个16位的定时器和计数器,还有外部中断2个,和全双工串行口等等。
它的最高运作频率35MHz,6T/12T可选。
其特性有:
8K字节程序存储空间;
512字节数据存储空间;
内带2K字节EEPROM存储空间;
可直接使用串口下载;
芯片参数:
1.它是51单片机的加强版,拥有2种时钟模式,一种是6个时钟机器周期的,还有一种是12个时钟机器周期的,它完全兼容传统51单片机的指令系统。
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
4.用户应用程序空间为8K字节。
5.片上集成256字节RAM。
6.通用I/O口(32个),复位后为:
单片机拥有40个管脚,P0,P1,P2,P3各8个,还有复位1个,晶振2个,电源2个,EA一个,ALE一个。
P0口内部无上拉电阻,是漏极开路的,所以在使用P0口的时候一定要外接上拉电阻。
其他3个口都有内部的上拉电阻,所以可以不用外接。
7.单片机可以直接通过P30P31RXD和TXD串口管脚下载程序。
8.具有EEPROM功能。
9.该单片机拥有3个定时器和计数器其为16位的。
即定时器T0、T1、T2。
10.有2个外部中断,可以通过下降沿或者低电平触发中断。
11.可以使用定时器模拟出多个异步串行口。
12.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
13.PDIP封装,引脚图如下:
图2-6STC89C52单片机管脚图
2.6系统电路设计
本设计中使用51内核芯片单片机是STC89C52,通过2个20P电容和1个12MHz的晶振组成的晶振电路,系统的时钟脉冲就是由它提供,还有通过1个电阻和1个电解电容和1个按键组成的复位电路,使用1个数字温湿度传感器DHT11对机房内温度及湿度的检测,通过4个按键来设定温湿度的上下限值,如果检测温度高于设定上限温度驱动降温电路,如果检测温度低于设定下限驱动加热电路,如果检测湿度高于设定湿度上限驱动去湿电路,如果检测湿度低于设定下限驱动加湿电路。
整个控制过程使用1个蜂鸣器作为超限报警,选择液晶LCD1602作为整个系统的显示器,实时显示检测的温湿度值。
2.6.1晶振电路
电路中C2无极性电容和C3无极性电容是起振电容。
当12MHz晶振在高频的情况工作时,会产生一定的寄生的电感。
为了使电感达到平衡和产生谐振,那么可以加上2个10-33pf的无极性电容。
具体的大小可以参考下晶振厂家提供的参数手册。
单片机的内部有一振荡电路,我们需要在外部接上晶振电路单片机才能工作。
晶振和电容与内部的电路组成振荡电路。
只要单片机一上电,电容启振,晶振工作,这样单片机就有一个持续的时钟信号。
51单片机内部有一个12分频器,因此时钟周期为t=1/12≈1us。
图2-7晶振电路
2.6.2复位电路
此系统使用的51单片机是高电平复位。
对STC89C52来说,在复位引脚加上2个机器周期的高电平,可使单片机复位。
单片机的IO口呈现高电平,程序计数器从零开始执行。
采用的手动复位,按钮按下,复位引脚得到高电平,单片机复位,按钮松开后,单片机开始工作。
单片机的9脚RST(Reset)复位引脚,如图。
当我们的程序运行到1000行的时候,单片机重启启动了,之前运行的数据将会丢失,因为RAM是不储存在我们的flash区域的,这个时候,那么我们的单片机会重新开始运行,这个过程就是复位。
当我们的程序运行中,遇到一些特殊情况造成系统奔溃了,我们把这种情况叫做死机,类似我们的电脑的,这个时候我们可以手动按下复位按键,单片机会重新运行。
复位电路的存在,就是防止一些特殊情况的发生,在程序跑飞的时候能够还原。
复位电路的工作原理:
51单片机高电平复位。
对STC89C52来说,在复位引脚加2个机器周期的高电平,可使单片机复位。
单片机的IO口呈现高电平,程序计数器从零开始执行。
采用的手动复位,按钮按下,复位引脚得到高电平,单片机复位,按钮松开后,单片机开始工作。
当这个电路处于稳定状态时,电容隔离直流电,隔离+5V。
此时复位按键在弹起的状态,R1的电阻是没有电压差的。
我们的这个到单片机是高电平复位,低电平工作,当按下去的时候,电容起到放电的作用,瞬间是+5V的高电平。
所以,在按下的一瞬间,高电平复位成功。
我们再来分析从没有电到上电的过程。
电容C1上方是5V电压,这个时候哦电容C1进行充电,正离子从上往下充电,负电子从GND往上充电,这个时候电容对电路来说是短路的,相当于一根导线,电压都加在了R1这个电阻上,那么RST上的电压值,Vrst=R1*I,随着电容充电越多,在充满的时候,电流就会越来越小的,那么此时Vrst上的电压也会变小,直到电容充满后,线路中不再有电流,那么这个时候Rst和GND的电位就相等了,也即是0V。
从这个过程中,Rst复位引脚是先高电平一段时间,然后再低电平,之后单片机正常工作运行的。
我们可以根据一条充放电的公式得到:
T=1.2RC,把我们上图的参数带入,求得是564us,大于2个机器周期。
重要一点的是,每个单片机复位高电平的时候都是不,具体的要参考手册。
图2-8复位电路
2.6.3电源电路
向单片机供电。
单片机电源:
STC89C52单片机的工作电压范围:
3.3V—5.5V,一般给51单片机外接一个5V的直流稳压电源。
连接方式为VCC(40脚):
接电源+5V端VSS(20脚):
接电源地端。
2.6.4LCD1602显示电路
此设计中采用的是字符型LCD1602,它只能显示数字及字符,可以显示2行,每一行可以显示16个字符,通过控制LCD的数据命令RS管脚和读写RW管脚还有使能E管脚。
即可实现对LCD1602的读写了。
将我们要显示的温湿度数据发送到LCD上实时显示。
我们将LCD数据口接到单片机的P0口,用于数据的发送,将LCD的命令数据及读写还有使能控制端口接在单片机的P10P11P12上,通过单片机的这写管脚控制即可实现在LCD上显示,如下图:
图2-10LCD1602显示电路
2.6.5温湿度检测电路
此设计中我们使用1个温湿度传感器进行对机房内的温度及湿度的检测,传感器使用的是DHT11,此传感器采用单总线通信模式,因此其数据管脚只有一个,其他的是VCC和GND管脚。
由于我们使用的单片机不具有此接口,因此需要单片机管脚模拟单总线通信时序,设计中将DHT11的数据管脚接在单片机的P35上。
具体电路如下:
图2-11温湿度检测电路
2.6.6按键电路
在本设计中我们使用了4个按键接到单片机管脚P27,P26,P25,P24上,另一端共地,如果有按键按下去了,单片机的对应管脚就会被拉为低电平,因此可以使用此方法来判断,按键是否按下,然后做出相应的动作。
具体电路如下
图2-12按键电路
2.6.7报警电路
设计中需要设计一个超限报警装置,当检测的温湿度高于或低于设定值时就报警,设计中采用一个无源蜂鸣器,即只有触发一定频率的脉冲才能使蜂鸣器发声。
我们将单片机的P13管脚接在PNP型三极管上,当单片机P13口输出一定频率的脉冲即可触发蜂鸣器发声了。
具体电路如下:
图2-13报警电路
2.6.8加热加湿电路
设计中我们需要检测的温度高于或者湿度低于设定值,系统能够自动进行加热加湿,因此就需要一个驱动控制加热加湿的电路,本设计采用继电器来控制加热加湿模块的工作,通过单片机端口P17和P37接在三极管PNP上,当P17P37输出低电平的时候,三极管导通,继电器线圈得电,D1指示灯、D3指示灯发亮,开始加热加湿。
反之如果输出高电平的话,三极管截止,继电器线圈不得电。
D1指示灯、D3指示灯灭,加热加湿电路不工作。
具体电路如下:
图2-14加热加湿电路
2.6.9降温去湿电路
设计中我们需要检测的温度低于或者湿度高于设定值,系统能够自动进行降温去湿,因此就需要一个驱动控制降温去湿的电路,本设计采用继电器来控制降温去湿模块的工作,通过单片机端口P16和P36接在三极管PNP上,当P16P36输出低电平的时候,三极管导通,继电器线圈得电,D2指示灯、D4指示灯亮,开始降温去湿。
反之如果输出高电平的话,三极管截止,继电器线圈不得电。
D2指示灯、D4指示灯灭,降温去湿电路不工作。
具体电路如下:
图2-15降温去湿电路
2.7总电路设计
用Protel画图软件绘制的完整电路图如下:
图2-16总电路图
3软件设计
3.1系统概述
电路实现的基本功能是温湿度检测。
通过液晶LCD1602实时环境温湿度的基本信息。
增强功能是超过上下限会有对应的报警指示灯亮和蜂鸣器报警。
软件设计是本设计的关键,软件程序编写的好坏直接影响着系统运行情况的良好。
因本程序涉及的模块较多,所以程序编写也采用模块化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用C51编写。
3.2程序设计流程图
图3-1主程序流程图
主程序流程图如图4-1所示,先对液晶显示进行初始化,然后判断gFunctioncount的值是否为0,为0则进入显示子函数,否则进行下一步操作,最后执行按键扫描子程序。
按键扫描子程序原理图是这样的。
一次完整的击键过程,包含以下5个阶段:
1.等待阶段:
此时按键尚未按下,处于空闲阶段。
2.前沿(闭合)抖动阶段:
此时按键刚
刚按下,但按键信号还处于抖动状态,这个时间一般为5~20ms。
为了确保按键操作不会误动作,此时必须有个前沿消抖动延时。
3.键稳定阶段:
此时抖动已经结束,一个有效的按键动作已经产生。
系统应该在此时执行按键功能;或将按键所对应的键值记录下来,待按键释放时再执行。
4.后沿(释放)抖动阶段:
一般来说,考究一点的程序应该在这里再做一次消抖延时,以防误动作。
但是,如果前面“前沿抖动阶段”的消抖延时时间取值合适的话,可以忽略此阶段。
5.按键释放阶段:
此时后沿抖动已经结束,按键已经处于完全释放状态,如果按键是采用释放后再执行功能,则可以在这个阶段进行按键操作的相关处理。
图3-2LCD1602初始化子函数流程图
LCD1602初始化子函数流程图如图4-2所示。
LCD1602初始化子函数先设置其显示参数和输入方式,再清除屏幕显示。
4仿真及程序调试
在KEIL中我们编写好程序,通过KEIL中的编译器编译,使程序确保语法是无错误的,在没有错误的情况下我们在使用KEIL中的软件仿真一步步仿真,通过查看相关寄存器的值确认程序无误。
或者通过编译生成的HEX文件烧写到仿真软件中,看具体的效果,直到效果无误即可。
4.1程序调试用到的软件及工具
在编写程序我们使用的是KEILC51,在期内可以软件调试或者也可以使用仿真芯片来仿真测试。
4.2KEILC51简介
KEILC51是由ARM公司开发的,针对51单片机开发设计,内部具体编译调试软件仿真等等一系列功能,是一个非常强大的单片机开发工具。
还可以开发ARM程序。
只需要在KEIL软件内设定生成HEX,即可将高级语言转化为机器能识别的机器语言。
4.3调试过程
在KEIL中我们打开编写好的程序,通过KEIL中的编译器编译,使程序确保语法是无错误的,在没有错误的情况下我们在使用KEIL中的软件仿真一步步仿真,通过查看相关寄存器的值确认程序无误。
或者通过编译生成的HEX文件烧写到设计好的硬件仿真电路的单片机中,看具体的效果,直到效果无误即可。
4.4Proteus介绍
Proteus仿真软件是英国的一家公司开发设计的。
此软件专门用于电子开发设计自动化设计,因此也简称是EDA工具软件。
此软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温湿度 检测 系统 毕业设计 论文 说明书