基于单片机的湿度控制系统设计.docx
- 文档编号:28973846
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:49
- 大小:1.29MB
基于单片机的湿度控制系统设计.docx
《基于单片机的湿度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的湿度控制系统设计.docx(49页珍藏版)》请在冰豆网上搜索。
基于单片机的湿度控制系统设计
基于单片机的湿度控制系统设计
【摘要】生活上,合适的空气湿度有益于人们的身体健康;工业上,芯片的封装,设备的维护以及工厂的装配等,都需要在合适的湿度下进行。
该课题对空气的湿度进行研究,采用单片机和湿度模块组成的湿度控制系统,对环境的湿度进行数据采集、处理。
系统通过测量当前环境的绝对湿度,及时、精确地了解空气湿度的变化,并将当时绝对湿度值与预设的上下限值进行比较,如果不在合适的空气湿度范围内,系统会自动发出报警。
本设计具有控制方便、组态简单和灵活性大等优点。
【关键词】单片机;湿度传感器;ADC0832数模转换
BasedonSCMhumiditycontrolsystemdesign
[Abstract]Indailylife,suitableairhumiditybeneficialtopeople'shealth.Inindustry,chipencapsulation,equipmentmaintenanceandfactoryassembly,etc,allneedinappropriatehumiditytowork.Thisessayanalyzesthehumidityoftheair,thehumiditycontrolsystemconstitutedbysingle-chipmicrocomputerandhumiditysensorcollectthedataoftheenvironmentalhumidityanddealwithit.Thissystemcanbeawareofthechangeoftheenvironmentalhumiditytimelyandaccuratelybymeasureabsolutehumidity,absolutehumiditymeasuredbysystemwillbecomparewiththepresupposedupperlimitandlowerlimit.iftheenvironmentalhumiditybeyondupperlimitorunderlowerlimit,thissystemwillgiveanalarm.thisdesign'sadvantageiscontrolconvenient,configurationsimpleandflexibly.
[Keywords]SCM;Humiditysensors;ADC0832analog-to-digitalconversion
序言
目前我国已经进入全面建设小康社会的阶段,无论经济还是文化都已经发展到了一个另世人瞩目的时期。
但是,我们常常会听到有人无奈的说:
天有不测风云啊!
我们都在抱怨气候的变化无常,而我们却无法控制。
过去,面对突如其来的变化,如温度、湿度的变化,我们束手无策。
人们试图研制一种可以预测气候的系统,因此有了天气预报。
但是天气预报只能告诉我们一些大概的信息,不能准确的获知我们身边的信息。
于是,本课题设计一种能准确获知我们身边气候的系统——湿度控制系统。
测试其中最难测量的物理量——湿度,并对其进行处理、控制[1~3]。
本检测系统也可应用于环境保护、工业控制、农业生产等方面[4~5]。
设计电路以单片机为核心,配以湿度检测模块、报警电路、键盘电路和LED数码管显示电路。
本设计能控制我们的生存空间,使人们的生活更舒适。
所以说,这是一个实用而且具有发展前途的设计。
第一章系统的整体设计方案
1.1设计内容
本次设计分为两个内容:
硬件、软件。
硬件以单片机为核心,配以湿度模块电路、键盘电路、数模转换电路、显示电路和报警电路。
主要实现以下功能:
1.通过湿度模块电路对环境的湿度进行数据采集;
2.通过单片机对采集的数据进行处理;
3.当环境湿度低于或者高于设置湿度时启动报警。
湿度检测系统是一个智能化的系统,它的软件主要实现功能:
1.单片机能够控制湿度模块对空气的湿度进行采样;
2.把采集的数据通过单片机处理,再以十进制的形式显示出来;
3.按键和显示电路可对设置的报警上下限值进行更改,并通过显示电路显示出来。
1.2系统框图
本次设计的系统框图见图1-1。
解析:
单片机控制湿度模块AM1001对环境的湿度进行检测并通过单片机处理用数码管显示出来,键盘电路可设置报警的上下限值,当环境湿度高于上限或者低于下限报警值时,启动报警电路,即蜂鸣器响。
1.3系统设计方案
本设计大体分为6步:
1.设计之前,查找资料。
先对湿度的概念进行了解,并了解一些湿度传感器的工作原理。
图1-1硬件电路组成框图
湿度,表示大气干燥程度的物理量。
在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。
空气的干湿程度叫做“湿度”。
在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示;若表示在湿蒸汽中液态水分的重量占蒸汽总重量的百分比,则称之为蒸汽的湿度。
空气湿度是指空气潮湿的程度,可用相对湿度(RH)表示。
相对湿度是指空气实际所含水蒸气密度和同温下饱和水蒸气密度的百分比值。
人体在室内感觉舒适的最佳相对湿度是,49%~5l%,相对湿度过低或过高,对人体都不适甚至有害。
绝对湿度是一定体积的空气中含有的水蒸气的质量,一般其单位是克/立方米。
绝对湿度的最大限度是饱和状态下的最高湿度。
绝对湿度只有与温度一起才有意义,因为空气中能够含有的湿度的量随温度而变化,在不同的温度中绝对湿度也不同,因为随着温度的变化空气的体积也要发生变化。
但绝对湿度越靠近最高湿度,它随温度的变化就越小。
2.分析系统的主要性能;
3.对整个电路的流程进行分析;
4.硬件的准备以及焊接;
5.用c语言进行软件的编写并仿真;
6.将硬件和软件进行系统仿真直至完成设计。
1.4系统完成的技术指标
1.实时显示绝对湿度,系统的精度为10mg/L;
2.采用3位数码管进行湿度显示;
3.显示报警上限值为180mg/L,下限值为90mg/L;
4.湿度超过上下限湿度时进行报警;
5.数码管采用动态显示方式。
第二章系统的硬件设计方案
2.1控制模块设计方案
2.1.1控制芯片选择思路
该课题的设计意义在于可以自动检测环境的湿度,并根据环境湿度的变化来自动执行相应的除湿、加湿工作,以提醒人们在合适的湿度下进行工作、生活。
目前,面向控制性领域且使用最为广泛的控制芯片是单片机。
单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理等等都离不开单片机。
2.1.2单片机选择方案
方案一:
选用STC单片机
STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强[6]。
方案二:
选用PIC单片机
PIC单片机是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片[7]。
方案三:
选用ATMEL单片机
ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式[8]。
ATMEL公司把EERROM及Flash技术巧妙的用于形成特殊的集成电路,在系统的开发过程中可以十分容易进行程序的修改,这就大大缩短了系统的开发周期。
同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不影响到信息的保存。
本设计要求可以随时改变湿度报警的上下限值,ATMEL单片机的EERROM及Flash技术对本设计比较实用(控制方便),所以控制芯片选择ATMEL51系列单片机。
2.1.2AT89C51芯片简介
图2-1AT89C51芯片实物图
AT89C51提供以下的功能标准:
4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。
另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位[9~11]。
主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式图2-2单片机管脚图
·片内振荡器和时钟电路
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示
表2-1AT89C51芯片p3口特殊功能表
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2湿度检测模块介绍及选择方案
2.2.1湿度检测模块选择思路
要对当前环境湿度进行检测,并且需要和单片机结合,最好便是用传感器来检测环境湿度,通过单片机进行数据处理后显示出来。
传感器的选择需要精度高,而且便于单片机控制。
2.2.2湿度传感器选择
方案一:
使用SHT1x/7x系列单片集成传感器
SHT1x/7x系列单片集成传感器是一种可以同时测量湿度、温度和露点的传感器,不需外围元件直接输出经过标定了的相对湿度、温度及露点的数字信号,可以有效解决传统温、湿度传感器的不足。
SHT1x/7x系列单片集成传感器是利用CMOSensTM技术制造的,内部集成了湿度敏感元件和温度敏感元件、放大器、一个14b的A/D转换器、标定数据存储器以及数字总线接口以及稳压电路[12~13]。
SHT1x/7x系列电源电压适用范围宽:
2.4~5.5V。
测量精度高:
湿度的精度为±3.5%,温度的精度为±0.5℃(在20℃时)。
待机时电流低于3μA。
传感器的数字输出是通过两线数字接口直接连到微处理器上去,便于进行系统设计。
方案二:
使用湿度传感器HS1101/HS1100
优点:
全互换性;在标准环境下不需校正;长时间饱和下快速脱湿;可以自动化焊接,包括波峰焊或水浸;高可靠性与长时间稳定性;快速反应时间。
湿度传感器HS1101/HS1100的缺点是选择HS1101/HS1100时,进行湿度补偿时外围的电路比较复杂,对测量的准确性,会产生干扰。
方案三:
使用AM1001湿度模块
AM1001湿度模块,即湿度传感器与电路一体化的产品。
模块的供给电压为直流电压,湿度通过电压输出进行计算,本模块具有精度高,可靠性高,一致性好,且已带温度补偿,确保长期稳定性好,使用方便及价格低廉等特点,尤其适合对质量、成本要求比较苛刻的设计使用。
图2-3AM1001实物图
技术参数:
(1)供电电压(Vin):
DC4.5~6V
(2)消耗电流:
约2mA(MAX3mA)
(3)使用温度范围:
0~50℃
(4)使用湿度范围:
95%RH以下(非凝露)
(5)湿度检测范围:
20~95%RH
(6)保存温度范围:
0~50℃
(7)保存湿度范围:
80%RH以下(非凝露)
(8)湿度检测精度:
±5%RH(0-50℃,30-80%RH)
(9)电压输出范围:
0.6~2.85VDC
模块优点:
低功耗、小体积、带温度补偿、单片机校准线性输出、可靠性高、使用方便、价格低廉。
以上三种湿度传感器都是应用于湿度的测量,SHT1x/7x系列单片集成传感器的性能最为优越,不需要外围的器件,测量精度高,是温湿度控制系统的最佳选择,但本设计只需要检测环境湿度,出于节约成本的考虑,所以不选择方案一。
湿度传感器HS1101/HS1100最大的缺点是外围电路复杂,容易对测量的准确度产生影响。
因此,选择方案三,相比方案一,节约成本。
相比方案二,简化了外围电路的设计,提高了测量的准确度。
2.3模数转换介绍
2.3.1模数转换器选择方案
目前常用的AD转换器有:
(1)带信号调理、1mW功耗、双通道16位AD转换器:
AD7705
AD7705是AD公司出品的适用于低频测量仪器的AD转换器。
它能将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。
AD7705是基于微控制器(MCU)、数字信号处理器(DSP)系统的理想电路,能够进一步节省成本、缩小体积、减小系统的复杂性。
应用于微处理器(MCU)、数字信号处理(DSP)系统,手持式仪器,分布式数据采集系统。
(2)3V/5VCMOS信号调节AD转换器:
AD7714
AD7714是一个完整的用于低频测量应用场合的模拟前端,用于直接从传感器接收小信号并输出串行数字量。
输入信号加至位于模拟调制器前端的专用可编程增益放大器。
调制器的输出经片内数字滤波器进行处理。
数字滤波器的第一次陷波通过片内控制寄存器来编程,此寄存器可以调节滤波的截止时间和建立时间。
AD7714有3个差分模拟输入(也可以是5个伪差分模拟输入)和一个差分基准输入。
单电源工作(+3V或+5V)。
因此,AD7714能够为含有多达5个通道的系统进行所有的信号调节和转换。
AD7714很适合于灵敏的基于微控制器或DSP的系统,它的串行接口可进行3线操作,通过串行端口可用软件设置增益、信号极性和通道选择。
AD7714具有自校准、系统和背景校准选择,也允许用户读写片内校准寄存器。
CMOS结构保证了很低的功耗,省电模式使待机功耗减至15μW(典型值)。
(3)串行AD转换器ADC0832:
ADC0832是一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
ADC0832特点:
·8位分辨率;
·双通道A/D转换;
·输入输出电平与TTL/CMOS相兼容;
·5V电源供电时输入电压在0~5V之间;
·工作频率为250KHZ,转换时间为32μS;
·一般功耗仅为15mW;
·8P、14P—DIP(双列直插)、PICC多种封装;
本课题设计采用LED数码管动态显示绝对湿度,ADC0832芯片相比于其他的转换芯片体积较小,高分辨率,使多器件挂接和处理器控制变的很方便。
所以该课题的数模转换芯片采用ADC0832芯片。
2.4报警模块简介
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
报警电路的要求是电路器件简单,易于控制。
所以报警模块选择单片机设计中最常使用的有源蜂鸣器。
本设计利用单片机的I/O控制三极管的开关状态,进而达到控制蜂鸣器的报警。
2.4.1蜂鸣器驱动方式
单片机驱动蜂鸣器的方式有两种:
一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。
PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。
在单片机的软件设置中有几个系统寄存器是用来设置PWM口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。
而利用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。
比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。
第三章 硬件模块功能实现
本设计硬件模块有:
控制电路、显示电路、复位开关电路、振荡电路、模数转换电路等。
3.1显示电路
我们设计最常用的显示元器件是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
图3-1数码管结构原理图
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反,如下图。
图3-2数码管编码显示原理图
共阳极的数码管0~f的段编码是这样的:
共阳极0~f数码管编码
0xc0,0xf9,0xa4,0xb0,//0~3
0x99,0x92,0x82,0xf8,//4~7
0x80,0x90,0x88,0x83,//8~b
0xc6,0xa1,0x86,0x8e//c~f
共阴极的数码管0~f的段编码是这样的:
共阴极0~f数码管编码
0x3f,0x06,0x5b,0x4f, //0~3
0x66,0x6d,0x7d,0x07, //4~7
0x7f,0x6f,0x77,0x7c, //8~b
0x39,0x5e,0x79,0x71 //c~f
湿度检测结果利用LED数码管动态显示,原理图如下:
图3-3显示电路模块
数码管按显示方式分有静态显示和动态显示两种,静态显示的特点是每个数码管的段选必须接一个8位的数据线来保持显示的字形码。
当送入一次字形码后,可显示的字形可一直保持,直到送入新字形码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖,和人眼的视觉暂留作用,使人的感觉各位数码管都在同时显示。
动态显示的亮度要比静态的差一些,所以在选择限流电阻时应略小于静态电路中的。
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O埠来驱动,要知道一个89C51单片机可用的I/O埠才32个。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 湿度 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)