毕业设计基于单片机的粮仓温湿度控制系统设计.docx
《毕业设计基于单片机的粮仓温湿度控制系统设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的粮仓温湿度控制系统设计.docx(20页珍藏版)》请在冰豆网上搜索。
毕业设计基于单片机的粮仓温湿度控制系统设计
摘要:
本文提出的粮仓温、湿度测控系统采用AT89S52单片机为测控核心,以“一线式”数字温度传感器DS18B20和电容式湿敏传感器HS1100/HS1101为温、湿度数据采集部件,通过PC机作为人机接口,实现了远程数据采集与测控指令参数的设置。
具有界面友好、控制灵活、硬件系统集成度高、电路简单、功能强、性能可靠、成本低等特点。
本系统解决了传统温、湿度测试器材及人工去湿、降温的诸多弊端。
并可实现多点温、湿度参数的测量与控制。
关键词:
AT89S52;DS18B20;HS1100/HS1101;PC机;人机接口
Abstract:
Thepaperdevelopsatemperatureandhumiditycontrollingsystemforgraindepot.ThesystemisbasedonachipmicroprocessorAT89S52,usesone-linetypedigitaltemperaturesensorDS18B20andthecapacitancehumiditysensorHS1100/HS1101tocollecthumituredata,realizesthecollectingofremotedataaswellasthesettingofmeasuringandcontrollingorderparameter.Thesystemhasthefollowingadvantages:
itsinterfaceisfriendly,itiscontrolledeasily,itshardwaresystemisintegratedhighly,thecircuitryissimple,its
functionisstrong,ithasgoodperformance,thecostislowerandsoon.Thesystemsettlesmanydefectsoftraditionalhumituretestingequipmentsaswellasmanualdewettingandcooling.Meanwhile,thesystemrealizesthemeasuringandcontrollingofmultiple-pointhumitureparameters.
Keywords:
AT89S52;DS18B20;HS1100/HS1101;PC;
personaldigitalassistant(PDA)
目录
1.系统功能说明1
2.系统总体设计1
2.1.系统硬件结构设计1
2.2.通信方案选择1
3.系统硬件设计2
3.1.数据采集电路设计2
3.1.1.温度采集接口电路2
3.1.1.1.DS18B20介绍:
2
3.1.1.2.接口电路4
3.1.2.湿度采集电路5
3.1.2.1.HS1100/HS1101湿度传感器介绍:
5
3.1.2.3.多路湿度检测信号的实现5
3.1.3.多路开关介绍6
3.2.单片机系统设计7
3.3.其它外围接口电路设计8
3.3.1.RS-485串口电路8
3.3.2.控制参数存储器8
3.3.3.键盘及显示电路8
3.3.3.1.键盘电路8
3.3.3.2.显示电路8
3.3.4.控制设备驱动电路10
3.3.4.1.风机、空调机、加湿机驱动电路10
3.3.4.2.报警接口电路11
3.4.RS485-RS232电平转换电路11
4.系统软件设计12
4.1.粮仓温、湿度测控系统软件12
4.1.1.湿度检测子程序12
4.1.2.温度检测子程序13
4.2.上位PC机接口软件13
5.结束语14
1.系统功能说明
本设计以粮仓室内外温、湿度测控电路为核心,以上位PC机为系统人机接口,测控电路与上位PC机通过串行通信方式实现数据交互。
测控电路通过数据采集装置定时采集粮仓温湿度数据,并根据控制参数做出控制决策,驱动设备运行(自动启动或关闭空调设备或风机系统),并随时准备接受上位PC机的指令,当受到询问时,将粮仓的各项数据编码通过串行通信方式传输到上位PC机。
上位PC机可根据用户要求定时向测控电路查询粮仓温、湿度数值和设备运行状态。
并可以对从机进行参数设置(包括:
空调起、停参数;风机起、停参数;加湿机起、停参数;温、湿度报警门限等)及控制(强制打开空调风机与加湿机),从机也可以独立工作。
上位PC机通过串口电路接收到数据后,进行数据处理,在监控界面上显示当前的状态信息,并将此信息实时地存储到数据库中,为用户维护和管理准备数据。
也可以将一段时期的数据信息汇集成报表,还可以将一段时间的数据绘制成图形、曲线,实现对数据的分析与管理。
2.系统总体设计
2.1.系统硬件结构设计
根据系统功能要求,本硬件系统包括四个功能模块:
1、上位PC机。
完成参数设置及控制、数据存储、处理及管理功能。
2、串行通信模块。
应用RS-485通信方式完成测控电路与上位PC机的数据交换。
3、测控电路模块。
主要由AT89S52组成主控电路,实现数据收集与控制功能,并能在主机关机的情况下独立实现所有的控制功能。
4、数据采集模块。
实现温、湿度实时数据采集与数据转换。
系统结构框图如下:
图1:
系统结构框图
2.2.通信方案选择
RS-485以远距离、多节点(128个)以及传输线成本低的特性成为工业应用中数据传输的首选标准。
考虑到本系统传输距离及多粮仓控制的扩展方向等因素,本系统选用RS-485通信方式,RS-485通信的特点如下:
(1)RS-485的逻辑“1”以两线间的电压差为+2~+6V表示;逻辑“0”以两线间的电压差为-2~-6V表示,该电平与TTL电平兼容,可方便与TTL电路连接;
(2)RS-485接口的最大传输距离标可达3000米,RS-485接口在总线上是允许连接最多达128个收发器,可以利用单一的RS-485接口建立起单元用户设备网络系统。
本设计采用RS-485总线半双工通信方式。
标准RS-485接口的输入阻抗为≥12KΩ,相应的标准驱动节点数为32个。
MAX1487芯片的输入阻抗设计成1/4负载(≥48KΩ),相应的节点数可增加到128个。
MAX1487是半双工通信芯片,且具有抗静电及抗雷击的功能,因此本设计选用了MAX1487芯片。
3.系统硬件设计
本系统硬件包括:
温度检测、湿度检测、A/D转换、单片机及附属电路、控制接口(空调、风机)、键盘及显示、报警电路、通信串口、PC机等部分的设计。
系统整体电路框图如图2所示。
图2:
系统整体电路框图
3.1.数据采集电路设计
3.1.1.温度采集接口电路
3.1.1.1.DS18B20介绍:
DALLAS最新单线数字温度传感器DS18B20“一线总线器件”体积小、适用电压宽、经济。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测控,支持3—5.5V的电压范围。
DS18B20具有如下特点:
(1)独特的单线接口只需1个接口引脚即可通信。
(2)在DS18B20中的每一个器件上都有独一无二的序列号可实现多点测量。
(3)不需要外部元件即可实现测温。
(4)由数据线供电,不需外接电源。
(5)测量范围从-55至+125℃,在-10—+85℃范围内保证0.5℃的精度。
(6)用户可以从9位到12位选择数字温度计的分辨率。
(7)内部有温度上、下限告警设置。
(8)用户可定义的非易失性的温度告警设置
图3:
是TO-92封装和SSOP封装的DS18B20的外部结构图。
图3:
DS18B20外观
DS18B20引脚功能描述如下:
DQ:
数据输入/输出引脚。
开漏单总线引脚。
当被用在寄生电源下,可向器件供电。
VDD:
电源引脚,可选择使用。
当工作于寄生电源时,此引脚必须接地。
NC:
空引脚。
DS18B20内部结构主要由六部分组成:
电源电路、64位光刻ROM及1—wire接口、温度传感器、非易失的温度报警触发器TH和TL、配置寄存器和CRC校验码产生器。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
DS18B20高速存储器包含了9个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是配置寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余校验字节。
其中,配置寄存器的内容如下:
“TMR1R011111”低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表1所示:
(DS18B20出厂时被设置为12位)
表1分辨率设置表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,S为符号位。
如下表2所示。
表212位的温度转化形式表
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
DS18B20依靠一个单线接口通信。
在单线接口情况下,必须先建立ROM操作协议,才能使用存贮器和控制操作。
因此,控制器必须首先提供五种ROM操作命令之一:
(1)ReadROM(读ROM);
(2)MatchROM(匹配ROM);(3)SearchROM(搜索ROM);(4)SkipROM(跳过ROM);(5)AlarmSearch(告警搜索)。
这些命令对每一器件的64位光刻ROM部分进行操作。
如果在单线上有许多器件,那么可以挑选出一个特定的器件并给总线上的主机指示存在多少器件及其类型。
在成功地执行了ROM操作序列之后可,使用存贮器和控制操作,然后控制器可以提供六种存贮器和控制操作命令之一。
DS18B20依靠一个单线接口通信。
单线总线的空闲状态是高电平。
3.1.1.2.接口电路
AT89S52与DS18B20的接口电路如图4所示。
图4:
AT89S52与DS18B20的接口电路
图中,DS18B20的I/O端口DQ通过一个4.7K的外部上拉电阻与单片机连接。
多片DS18B20共用一条总线,通过光刻序列号的区分实现多点测温。
本设计中DS18B20采用寄生电源方式,故GND与VDD端均接地。
3.1.2.湿度采集电路
3.1.2.1.HS1100/HS1101湿度传感器介绍:
HS1100/HS1101湿度传感器特点:
高可靠性和长期稳定性,快速响应时间,适用于线性电压输出和频率输出两种电路,其相对湿度在1%--100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04pF/℃,精度较高。
3.1.2.2.湿度测量电路设计:
HS1100/HS1101电容传感器,其容量随着所测空气湿度的增大而增大。
将电容的变化量准确地转为计算机易于接受的信号,常有两种方法:
一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。
集成定时器555芯片外接电阻R1、R3与湿敏电容C,构成了对C的充电回路。
7端通过芯片内部的晶体管对地短路又构成了对C的放电回路,并将引脚2、6端相连引入到片内比较器,便成为一个典型的多谐振荡器,即方波发生器。
另外,R21是防止输出短路的保护电阻。
该振荡电路两个暂稳态的交替过程如下:
首先电源v㏄通过R1、R3向HS1100充电,经t充电时间后,Uc达到芯片内比较器的高触发电平,约0.67V㏄,此时输出引脚3端由高电平突降为低电平,然后通过R3放电,经t放电时间后,Uc下降到比较器的低触发电平,约0.33V㏄此时输出,此时输出引脚3端又由低电平突降为高电平,如此翻来覆去,形成方波输出。
其中,充放电时间为t充电=C(R1+R3)Ln2,t放电=CR3Ln2因而,输出的方波频率为:
f=1/(t放电+t充电)=1/[C(R1+2R3)Ln2]可见,空气湿度通过555测量电路就转变为与之呈反比的频率信号,表3给出了其中的一组典型测试值。
表3:
空气湿度与电压频率的典型值
湿度%RH
频率HZ%
湿度%RH
频率HZ%
0
7351
60
6600
10
7224
70
6468
20
7100
80
6330
30
6976
90
6168
40
6853
100
6033
50
6728
3.1.2.3.多路湿度检测信号的实现
为了能够实现湿度信号的多点测量,本设计采用2片8选1模拟开关CD4051组成矩阵测量网络,可实现64路湿度信号的采集。
矩阵测量网络由湿度—频率变换电路及2片CD4051组成,其硬件电路如图5所示。
图中,每片CD4051有3条地址码控制线,通过单片机的控制每片CD4051可实现8选1功能,2片CD4051组合使用就可实现64路湿度信号的采集。
U2的INH端直接接地,U1的INH端通过单片机端口控制,在进行湿度信号采集的时候该端口置为低电平,允许多路开关选通。
U1的X端子与单片机P3.4端口相连,实现湿度信号的采集。
图5:
湿度矩阵测量网络
3.1.3.多路开关介绍
多路开关,又称“多路模拟转换器”。
多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。
反之,当模拟信号有公共输出端输入时,作为信号分离器,实现了1线到n线的分离功能。
。
在本设计中,选用的是8选1多路开关CD4051,它是一种单片、COMS、8通道开关。
该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。
图6:
CD4051的内部原理框图
图中功能如下:
通道线IN/OUT(4、2、5、1、12、15、14、13):
该组引脚作为输入时,可实现8选1功能。
作为输出时,可实现1分8功能。
XCOM(3):
该引脚作为输出时,则为公共输出端;作为输入时,则为输入端。
A、B、C(11、10、9):
地址控制引脚。
INH(6):
禁止输入引脚。
若INH为高电平,则为禁止各通道和输出端OUT/IN接至;若INH为低电平,则允许各通道按表3-2关系和输出段OUT/IN接通。
VDD(16)和VSS(8):
VDD为正电源输入端,极限值为17V;VSS为负电源输入端,极限值为-17V。
VGG(7);电平转换器电源,通常接+5V或-5V。
CD4051作为8选1功能时,若A、B、C均为逻辑“0”(INH=0),则地址码00013经译码后使输出端OUT/IN和通道0接通。
3.2.单片机系统设计
本系统中,我们采用美国ATMEL(爱特梅尔)公司生产的AT89S52单片机作为主控芯片。
AT89S52单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
图7:
AT89S52最小系统
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图7所示为AT89S52单片机最小系统原理图。
3.3.其它外围接口电路设计
3.3.1.RS-485串口电路
本系统中,P3.0、P3.1、P3.2、P3.3分别与RS-485串口芯片MAX1487的DI、RO、RE、DE相连,然后通过MAX1487的A、B端实现与远端上位管理端的连接。
RS-485串口电路见图8。
图8:
RS-485串口电路
3.3.2.控制参数存储器
本系统测控端,温、湿度调控参数存储在串行EPROMAT24C04中。
单片机的P1.0、P1.1、分别与IC总线接口EPROM芯片AT24C04的SCL、SDA相连,AT24C02的器件地址线A1、A2接地,A0悬空,单片机对AT24C02数据的访问必须遵循IC总线通信协议,由软件模拟实现。
硬件接口电路见图9。
图9:
串行EPROM电路
3.3.3.键盘及显示电路
3.3.3.1.键盘电路
在单片机应用系统设计中,通过按键实现控制功能和数据输入是非常普遍的。
由于本系统所需按键数量不多,故采用5个独立式按键。
它们分别用来进行功能选择、参数输入和强行控制等功能(一般情况下可采用上位PC机进行操作)。
硬件电路见粮仓温、湿度测控整体原理图(附录一)。
3.3.3.2.显示电路
本系统用八位数码管分别显示当前温度(四位)和湿度(四位)数值。
其驱动电路采用一片串行输入输出共阴显示驱动芯片MAX7219来完成。
MAX7219是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。
其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。
只有一个外部寄存器用来设置各个LED的段电流。
MAX7221与SPI(TM)、QSPI(TM)以及MICROWIRE(TM)相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。
一个方便的四线串行接口可以联接所有通用的微处理器。
每个数据可以寻址在更新时不需要改写所有的显示。
MAX7219同样允许用户对每一个数据选择编码或者不编码。
整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。
MAX7219功能特点如下:
10MHz连续串行口;独立的LED段控制;数字的译码与非译码选择;150μA的低功耗关闭模式;亮度的数字和模拟控制;高电压中断显示;共阴极LED显示驱动;24脚的DIP和SO封装。
MAX7219管脚配置如下图10所示:
图10:
MAX7219管脚配置
MAX7219管脚功能描述如下表4:
表4管脚功能描述
管脚
名称
功能
1
DIN
串行数据输入端口。
在时钟上升沿时数据被载入内部的16位寄存器。
2,3,5-8,10,11
DIG0-DIG7
八个数码管驱动线路置显示器共阴极为低电平。
关闭时输出高电平。
4,9
GND
地线(4脚和9脚必须同时接地)。
12
LOAD
载入数据。
连续数据的后16位在LOAD端的上升沿时被锁定。
13
CLK
时钟序列输入端。
最大速率为10MHz.在时钟的上升沿,数据移入内部移位寄存器。
下降沿时,数据从DOUT端输出。
14-17,20-23
SEGA-SEGG,DP
7段和小数点驱动,为显示器提供电流。
当一个段驱动关闭时,此端呈低电平。
18
SET
通过一个电阻连接到VDD来提高段电流。
19
V+
正极电压输入,+5V
24
DOUT
串行数据输出端口,从DIN输入的数据在16.5个时钟周期后在此端有效。
MAX7219与AT89S52单片机接口电路如图11所示:
图11:
MAX7219与AT89S52接口电路
3.3.4.控制设备驱动电路
3.3.4.1.风机、空调机、加湿机驱动电路
粮仓温、湿度的控制是通过空调器与风机实现的。
打开进出口的风机,在粮仓内形成通风气流;如果风机调节达不到控制要求,则使用空调进行降温与排湿。
湿度的调整还可配合加加湿机进行调节。
风机、空调机、加湿机的控制是由单片机和光电耦合器驱动双向晶闸管完成的。
其驱动电路如图12所示。
图中,发光二极管是用来指示设备运转情况的。
当单片机输出端口为低电平时,LED1亮,光耦通,双向晶闸管导通,应用晶闸管驱动设备避免了机械触点式继电器驱动的一些缺点。
其中,单片机的P1.2、P1.3、P1.4端口分别接空调机、风机、加湿机的驱动电路。
图12:
风机、空调机、加湿机驱动电路
3.3.4.2.报警接口电路
本设计采用峰鸣音报警电路。
峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。
压电式蜂鸣器约需10mA的驱动电流,可以用一个晶体三极管驱动,如图13所示。
在图中,P2.3接晶体管基极输入端。
当P2.3输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。
图13:
三极管驱动的峰鸣音报警电路
3.4.RS485-RS232电平转换电路
上位PC机串行接口采用标准RS232接口,而温、湿度测控电路的通信方式为RS485串行通信方式(为了提高通信距离和实现多粮仓测控)。
二者不能直接连接,需要进行电平转换方可将测控电路与PC机相连。
图14所示为RS485-RS232电平转换电路。
分别采用一片MAX232与MAX1487来完成。
转换电路供电部分由PC机RS232端口的4、7脚通过V1、V2、V3、R4和电容C6来实现的。
整个电路可做在RS232接头盒内。
图14:
RS485-RS232电平转换电路
4.系统软件设计
本设计软件系统主要包括:
粮仓温、湿度测控系统软件、上位PC机数据通信及人机交互接口软件二部分。
4.1.粮仓温、湿度测控系统软件
粮仓温、湿度测控系统软件设计主要由初始化、温湿度数据采集、信号显示、设备驱动信号处理、键盘处理、数据通信等几部分组成。
程序流程如图15所示。
图15:
温、湿度测控系统程序流程图
其中,初始化主要完成对单片机各功能部件初始状态的配置以及开户软件看门狗功能;数据采集完成对环境温、湿度的实时数据采集及相关处理;信号显示部分通过单片机控制实现了对温、湿度参数的实时显示;设备驱动信号处理则通过对温、湿度实时参数与存储在EEPROM中的控制参数进行比较,并适时输出相应的设备驱动信号;键盘处理模块用于现场控制信号的设定以及特殊情况下强制执行信号的操作;数据通信完成温、