舰艇舱室温湿度监测系统设计*
2012-06-07田云鹏
田云鹏 熊 华
(海军航空军械修理所 上海 200000)
1 引言
舰艇是各种精密仪表、电子设备和电机设备的高度综合体,这就决定了其对温度和湿度的实时监控具有天生的要求。特别是作战军用舰艇,由于装备有各种武器弹药,对温湿度的监测要求就更加不言而喻了。但现役的大部分舰艇,特别是出厂于上个世纪的老舰艇目前还是采取人工用干湿温度计来测温测湿的方法。这不仅使舰艇人员工作量大,在某种程度上形成非战斗减员,而且工作效率低,尤其是舰艇某些重点而人员又在航行中难以进入的舱室,温度和湿度的检测任务如不能及时彻底完成,则有可能造成无法想象的灾难性后果。
随着舰艇及其装备现代化程度的日益增高,各种精密电子设备也越来越多,而各种电子设备舱室对温度和湿度的要求也可能不尽相同,以往的人工干湿度温度计的缺限也就更加凸显出来。
为此,本文设计了一款测量精度高、结构简单实用、工作稳定可靠的基于单片机的温湿度监测系统。该系统可由用户根据环境要求设定系统的温湿度阈值;系统实时地测量显示各个舱室环境的温湿度值,使其在较宽的温度范围内具有较高的测试精度,同时还可以根据用户设定报警阈值报警,一旦发现环境温湿度超限,立即报警。舰艇全部舱室的温湿度可以在总值班室集中显示和控制,提高了监测效率,促进舰艇整体现代化水平。
2 设计方案
温湿度监控系统满足以下要求:
1)用户可以设置系统温湿度报警值;
2)检测得到的数据可以通过显示模块显示。
根据设计要求确定了系统的总体方案,整个系统由单片机、温湿度传感器、显示模块、报警器以及键盘等部分组成。系统功能原理图如图1所示。用户预先输入温湿度报警值到程序中,该值作为系统阈值。温湿度传感器监测值传输给单片机,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警。系统总体框图如图1所示。
图1 系统总体框图
3 硬件设计
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性[1]。本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路、复位电路、LED显示电路以及温湿度传感器电路。
为了设计此系统,我们采用了MCS-51系列的8031单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为单片机能识别的数字信号,再送入单片机系统的相应端口。由于8031中无片内ROM,且数据存储器也不能满足要求,可以经扩展2762和6264来达到存储器的要求,其结果通过显示器来进行显示输出。
3.1 8031单片机[2]
8031是有8个部件组成,即CPU,时钟电路,数据存储器,并行口(P0~P3)串行口,定时计数器和中断系统,它们均由单一总线连接并被集成在一块半导体芯片上,即组成了单片微型计算机,如图2所示。
图2 8031基本组成
8031的引脚图如图3所示。
8031有一个全双工串行口,这个串行口既可以在程序下把CPU的8位并行数据变成串行数据一位一位的从发送数据线发送出去,也可以把串行数据接受进来变成并行数据给CPU,而且这种串行发送和接收可以单独进行也可以同时进行。
8031的串行发送和接收利用了P3口的第二功能,利用P3.1做串行数据接收线,串行接口的电路结构还包括了串行口控制寄存器SCON,电源及波特率选择寄存器PCON和串行缓冲寄存器SBUF,他们都属于SFR、PCON和SCON用于设置串行口工作方式和确定数据发送和接收,SBUF用于存放欲发送的数据起到缓冲的作用。
3.2 程序存储器的扩展
图3 8031的引脚
由于8031无内部ROM,故扩展的程序存储器地址为0000H~FFFFH,考虑系统的需要,我们将8031的程序存储器扩展为4KEPROM,采用2764作为ROM 芯片[3]。2764与8031的连接如图4所示。
图4 2764与8031的连接
3.3 数据存储器的扩展
在单片机中有128字节的数据存储器。但往往在系统的要求下片内RAM不能满足要求,用户只有选择扩展片外的数据存储器,以进行存储系统采集的数据。根据系统对数据采集的要求。我们采用8K静态RAM6264进行扩展。与动态RAM相比,静态RAM无须考虑保持数据而刷新电路,所以扩展电路较为简单且能满足系统的要求。
数据存储器的扩展与程序存储器的扩展类似,读写控制信号与8031的和相连。P0口通过74LS373与A0~A7相连,P2.0~P2.4与 A8~A12相连,P2.7与相连,P0口与D0~D7相连作为数据线,同时CE2接+5V电源,GND接地。如图5所示。
图5 数据存储器扩展
3.4 信号采集
3.4.1 温度传感器
集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源。
AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值[4]。
摄氏温度测量电路如图6所示。
电位器R2用于调整零点,R4用于调整运放LF355的增益。调整方法如下:在0℃时调整R2,使输出V0=0,然后在100℃时调整R4使V0=100mV。如此反复调整多次,直至0℃时,V0=0mV,100℃时V0=100mV为止。最后在室温下进行校验。例如,若室温为25℃,那么V0应为25mV。冰水混合物是0℃环境,沸水为100℃环境。
图6 AD590应用电路
本设计系统为八路的温度信号采集,而MC14433仅为一路输入,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图7所示。
图7 多路分时的模拟量信号采集电路
3.4.2 湿度测量电路
测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度[5]。电容式电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。本系统采用 HS1100/HS1101湿度传感器 HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被单片机所采集频率输出的555测量振荡电路如图8所示。集成定时器555芯片外接电阻R4、R2与湿敏电容C,构成了对C的充电回路。7端通过芯片内部的晶体管对地短路又构成了对C的放电回路,并将引脚2、6端相连引入到片内比较器,便成为一个典型的多谐振荡器,即方波发生器。另外,R3是防止输出短路的保护电阻,R1用于平衡温度系数。
本设计系统为八路的湿度信号采集,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图9所示。
3.5 AD转换电路
图8 频率输出的555振荡电路
图9 八路分时的模拟量信号采集电路硬件接口
为了把温度、湿度检测电路测出的模拟信号转换成数字量送CPU处理,本系统选用了双积分A/D转换器MC14433,它精度高,分辨率达1/1999。由于 MC14433只有一路输入,而本系统检测的多路温度与湿度信号输入,故选用多路选择电子开关,可输入多路模拟量。
MC14433与8031单片机的接口设计由于MC14433的A/D转换结果是动态分时输出的BCD码,Q0~Q3HE DS1~DS4都不是总线式的。因此,MCS-51单片机只能通过并行I/O接口或扩展I/O接口与其相连[6]。对于8031单片机的应用系统来说,MC14433可以直接和其P1口或扩展I/O口8155/8255相连。下面是MC14433与8031单片机P1口直接相连的硬件接口,接口电路如图10所示。
图10 MC14433与8031单片机P1口直接相连的硬件接口
3.6 显示电路
在单片机应用系统设计中,一般都是把键盘和显示器放在一起考虑[7]。本设计是利用8031的串行口实现键盘/显示器接口。当8031的串行口未作它用时,使用8031的串行口来外扩键盘/显示器。应用8031的串行口方式0的输出方式,在串行口外接移位寄存器74LS164,构成键盘/显示器接口,其硬件接口电路如图11所示。
图中下边的8个74LS164:74LS164(0)~74LS164(7)作为8位段码输出口,74LS138的Y0作为键输入线,Y2作为同步脉冲输出控制线。这种静态显示方式亮度大,很容易作到显示不闪烁。静态显示的优点是CPU不必频繁的为显示服务,因而主程序可不必扫描显示器,软件设计比较简单,从而使单片机有更多的时间处理其他事务[7]。
3.7 系统的其他外接电路
系统的蜂鸣器电路、晶振电路、复位电路如图12、图13、图14所示。蜂鸣器额定电流IB≤30mA,而对于8031单片机,P1口的灌电流为1.6mA,拉电流为60μA,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用PNP型晶体管9012[8]。8031采用的晶振电路采用
图11 键盘及显示与主机的硬件接口
11.0592MHz的无源晶振,微调电容大小取30pF。显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一。1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化[9]。系统的输入模块采用中断扫描的4×4矩阵键盘,相比定时扫描方式提高了MCU的使用效率。
图12 蜂鸣器电路
图13 晶振电路
图14 复位电路
4 软件设计
系统单片机代码采用C语言编写,系统软件实现的功能:
1)通过LED显示温湿度值;
2)比较监测到的温湿度值和报警设置值,发现超限则蜂鸣器报警提示;
温度控制主程序的设计应还要考虑以下问题:(1)键盘扫描、键码识别和温度显示;(2)温湿度采样,数字滤波;(3)越限报警和处理;(4)温度标度转换。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序两部分组成[10]。
主程序流程图如图15所示,温度采样子程序流程图如图16所示,键扫描程序流程图如图17所示。
图15 主程序流程图
图16 温度采样子程序流程图
图17 键扫描程序流程图
5 结语
设计舱室温湿度自动监测管理系统,是当前水面舰艇全面信息化工程的需要。它可以改进新老舰艇舱室温湿度监测管理水平,提高监管效率,实现实时监管。本文在介绍舰艇舱室温湿度自动监测基本概念的基础上,分别对舱室自动监测系统的8031单片机、温湿度型号采集、键盘和数码显示等方面进行了分析并软件设计方面进行了简要介绍。但从系统的全自动化程度上看,还有许多有待进一步提高的地方,以后还要在以下几个方面开展工作:实现温湿度的自动调节控制,实现各舱室的温湿度情况在上位机上显示控制。
[1]张琳娜,刘武发.传感检测技术及应用[M].北京:中国计量出版社,1999:195.
[2]沈德金,陈粤初.MCS-51系列单片机接口电路与应用程序实例[M].北京:北京航空航天大学出版社,1990:78-79.
[3]胡汉才.单片机原理及接口技术[M].北京:清华大学出版社,1996:57.
[4]李志全,等.智能仪表设计原理及应用[M].北京:国防工业出版社,1998:34.
[5]何立民.MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1990:103.
[6]李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1999,16(3):60-62.
[7]张毅刚,彭喜元,姜守达,等.新编 MCS-51系列单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2003:201.
[8]潘其光.常用测温仪表技术问答[M].北京:国防工业出版社,1989:64.
[9]杨世成.信号放大电路[M].北京:电子工业出版社,1995:125-126.
[10]谭联群,胡生亮,付学志.基于单片机和FPGA的程控型逻辑分析仪设计与实现[J].计算机与数字工程,2011,39(7).
[11]王丹,李勇,王夙喆.嵌入式小型测温系统的设计与实现[J].计算机与数字工程,2011,39(10).
[12]周航慈.单片机应用程序设计[M].北京:北京航空航天大学出版社,1991:89-90.