通信机房温度监控系统的设计与.docx
《通信机房温度监控系统的设计与.docx》由会员分享,可在线阅读,更多相关《通信机房温度监控系统的设计与.docx(23页珍藏版)》请在冰豆网上搜索。
通信机房温度监控系统的设计与
通信机房温度监控系统的设计与
摘要....................................................................1ABSTRACT................................................................1引言....................................................................21系统概述.............................................................31.1设计内容及要求.....................................................31.2系统方案...........................................................31.3系统硬件电路.......................................................42系统程序设计.........................................................42.1单片机89C51介绍及端口分配.........................................42.2设计思路...........................................................52.3A/D转换子程序设计.................................................62.4显示子程序设计.....................................................92.5按键子程序设计....................................................103系统程序调试........................................................123.1调试准备..........................................................123.2调试步骤..........................................................12结论与谢辞.............................................................16参考文献...............................................................17附件1程序清单.........................................................18
通信机房温度监控系统的设计与制作——软件
部分
信息工程学院通信网络与设备专业黄宗党
摘要:
本文以单片机89C51为核心,设计了一个通信机房温度监控系统。
该系统可显
示通信机房实时环境温度,并通过与上、下限的温度值进行比较,判断是否启动升温设
备或降温设备。
系统设有4个独立按键,第一个按键为显示上、下限的温度值,第二个
按键为加1功能,第三个按键为位选功能,第四个按键为设置门限值功能。
系统具有温
度采集准确,控制性强,可扩展性好等优点。
关键词:
单片机AD590温度监控报警
CommunicationRoomTemperature
MonitoringSystemDesignandProduction-The
SoftwarePart
(MajorofCommunicationNetworkandEquipment,InformationandEngineering
college,JinHuaCollegeofVocationAndTechnology,HUANGZong-dang)
Abstract:
Thispaperdiscusseson89C51microcontrollerasthecore,anddesignatelecommunicationroomtemperaturemonitoringsystem.Thissystemcandisplayreal-timecommunicationcomputerrooms,andthroughtheenvironmenttemperatureandtemperatureonthefloor,comparison,determinewhetherheatingequipmentorcoolingequipment.Systemhasfourindependentbutton,thefirstbuttontodisplaytheupperandlowerlimitfortemperature,thesecondbuttonandthethirdadd1functionkeysforaselectedfunction,thefourthbuttonforsettingthresholdfunction.Accuratetemperaturegatheringsystemhasstrongscalability,controllingtheadvantages.
Keywords:
MonolithicintegratedcircuitAD590TemperatureMonitoringAlarm
-1-
引言
随着市场经济的快速发展和人们对信息交流需求的日益增加,通信机房的地位和作用越来越重要。
为保证通信机房正常有效的运转,温度控制是十分必要的。
电信设备尤其是交换机等设备对机房的温度有着较高的要求。
温度偏高,易使机器散热不畅,使晶体管的工作参数产生漂移,影响电路的稳定性和可靠性,严重时还可造成元器件的击穿损坏。
通信设备在长期运行工作期间,机器温度控制在18?
25?
之间较为适宜。
本文主要内容是以AT89C51单片机为核心控制模块,通过温度传感器采集温度送入A/D转换模块进行模数转换后将信号送入单片机进行显示并通过与上、下限的温度值进行比较,最后判断是否启动升温设备或降温设备。
系统设有4个独立按键,第一个按键为显示上、下限的温度值,第二个按键为加1功能,第三个按键为减1功能,第四个按键为设置门限值功能。
软件编程采用模块化主要分为主程序、A/D转换子程序、计算子程序、按键子程序、显示子程序。
课题的主要任务是完成环境温度检测,利用单片机实现温度调节并通过计算机调节实施监控,设计后系统具有操作方便,控制灵活等优点。
本设计包括温度采集模块,A/D转换模块,温度显示模块,报警模块四个部分。
文中对每个部分功能实现过程作了详细的介绍,整个系统的核心是进行温度监控,完成了课题的要求。
-2-
1系统概述
1.1设计内容及要求
该系统的设计的要求,编写完成通信机房温度监控系统的程序,能实时显示测量的温度值,并当温度超出设定范围时,启动声光报警。
温度范围0-99?
,分辨率0.1?
,测量误差?
1?
。
温度显示格式为:
xx.x,显示器每隔10s刷新一次温度值。
当温度值超过设定的报警限值时,可用蜂鸣器和发光管实现声光报警。
当温度低于设定值时开启加温设备。
当温度高于设定值时开启降温设备。
以温度传感器AD590、ADC0809、OP07等为主要元件,设计一个通信机房温度监控系统。
该系统通过AD590温度传感器采集通信机房的温度信号然后由OP07组成的集成运算放大器放大后送入ADC0809进行模/数转换,转换完成后将数字信号送入单片机89C51进行显示并通过与上、下限的温度值进行比较,最后判断是否启动升温设备或降温设备。
系统设有4个独立按键,第一个按键为显示上、下限的温度值,第二个按键为加1功能,第三个按键为位选功能,第四个按键为设置门限值功能。
1.2系统方案
温度控制系统主要由单片机系统、按键、采集电路、A/D转换、显示、报警电路等组成,其系统框图如图所示。
温度传感器
AD590
集成运放模/数转换显示温度值OP07ADC0809
单片机
AT89C51
按键设置上驱动报警下限温度值
图1系统框图
该系统通过温度传感器AD590采集温度信号,采集到的温度经过集成运放OP07放大后送入模/数转换芯片ADC0809将采集到的温度信号转换成数字信号送入单片机89C51进行显示,并通过按键来设置门限值,当温度高于上限值时驱动报警电路启动电风
-3-
扇进行降温,当温度低于下限值时驱动报警电路启动点暖机进行升温。
1.3系统硬件电路
图2系统硬件原理图
2系统程序设计
2.1单片机89C51介绍及端口分配
该设计用到的单片机89C51,AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
-4-
图3单片机89C51管脚分布图
系统管脚分布,如下表所示:
表1单片机管脚分布
P0显示段选码
P1A/D信号输入
P2.0,P2.3显示位选码
P2.4,P2.5按键1,按键2
P2.6报警电路
P3.0,P3.1下载程序
P3.4,P3.5按键3,按键4
P3.6,P3.7,P3.2,P2.7,ALEA/D控制端口
2.2设计思路
以单片机89C51为核心、以温度传感器AD590、ADC0809、OP07等为主要元件,设计一个通信机房温度监控系统。
该系统通过AD590温度传感器采集通信机房的温度信号然后由OP07组成的集成运算放大器放大后送入ADC0809进行模/数转换,转换完成后将数字信号送入单片机89C51进行显示并通过与上、下限的温度值进行比较,
-5-
最后判断是否启动升温设备或降温设备。
系统设有4个独立按键,第一个按键为显示上、下限的温度值,第二个按键为加1功能,第三个按键为位选功能,第四个按键为设置门限值功能。
软件编程采用模块化主要分为主程序、A/D转换子程序、按键子程序、显示子程序。
开始
系统初始化
A/D转换程序
调用计算程序
送显示
调用按键子程序
温度比较
报警程序
结束
图4系统程序流程图
2.3A/D转换子程序设计
A/D转换主要利用芯片ADC0809进行。
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A,D转换,之后EOC输出信号变低,指示转换正在进行。
直到A,D转换完成,EOC变为高电平,指示A,D转换结束,结果数据已存入锁存
-6-
器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
ADC0809时序图如下所示:
图5ADC0809时序图
表2ADC0809通道选择表
CBA被选通的通道
IN0000
IN1001
IN2010
IN3011
IN4100
IN5110
IN6110
IN7111
ADC0809与单片机的接口一般采用两种方式:
查询方式与中断方式。
设计中我使用的是中断的方式,采用中断方式可以大大节省CPU的时间,当转换结束时,EOC发出一个脉冲向单片机提出中断请求,单片机响应中断请求,当外部中断1的中断服务程序读AD转换结果,并启动0809的下一次转换,外部中断1采用边沿触发方式。
ADC0809转换时间为128us,系统使用的12MHz的MCS-51单片机,故需要128个机器周期。
AD用到单片机P1口作为转换结果输入口,另外用到单片机的ALE,RD,WR,P2.7,INT0。
A/D转换子程序流程图如下所示。
-7-
开始
启动A/D转换
调用显示等待转换结果
读取转换结果
将结果送显示缓存区40H
结束
图6AD转换流程图
程序如下:
ZHUANHUAN:
MOVDPTR,#7FF8H;指向通道IN_0,且P2.7=0
MOVA,#00H
MOVX@DPTR,A;锁定通道IN_0,并启动转化
RET
中断服务程序:
INT_0:
PUSHPSW;保护现场
PUSHACC
PUSHDPH
PUSHDPL
CLREA;关闭中断
MOVDPTR,#7FF8H;指向通道IN_0,且P2.7=0
MOVXA,@DPTR;读取AD转换结果到A
MOVADJIEGUO,A;将AD转换结果保存至AD结果寄存器
-8-
2.4显示子程序设计
显示部分设计采用4位一体的共阳数码管,段选接在单片机的P0口上,位选接在单片机的P2口的高4位上。
采用LED动态显示方式,显示时轮流向各位数码管送出各字型的段码和相应的位选,位选选中的LED则显示段码对应的字符,没选中的LED则不显示新的内容,利用发光二极管的余辉和人眼视觉的暂留作用,使人感觉各个LED数码管好像同时都在显示。
动态扫描显示的优点是电路简单,占用I/O资源少,成本低;缺点是占用CPU,软件稍复杂。
显示用到寄存器分配情况如下所示:
表3寄存器分配表
当前温度上限温度值下限温度值
标志位30H30H30H
十位31H34H37H
个位32H35H38H
小数位33H36H39H
表4共阳数码管段码表
0,9段码0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H0,9带小数点段码40H,79H,24H,30H,19H,12H,02H,78H,00H,10H标志位段码0FEH,0BFH,0F7H
-9-
开始
显示程序初始化
送位选码
送显示数据
延时10ms
否
判断显示是否完毕
是
返回主程序
图5显示子程序流程图
2.5按键子程序设计
该设计用到4个独立式按键进行控制,第一个按键的功能是:
按一次显示设定的上限值,按第二次显示温度的下限值,按第三次返回当前的温度值。
第二个按键的功能是:
实现加一功能,即对选定的数码管进行加一,当加到9时便返回0。
第三个按键的功能是:
设置位选,用于选定温度状态位,温度十位,温度个位,温度小数位。
第四个按键的功能是:
设置键,按下该键系统进入设置门限值状态。
按键的单片机口线为P2.4,P2.5,P3.4,P3.5。
-10-
跳转设置状态扫描显示按跳转设置子程查看子程序键、设置按键序等待按键松开关闭中断跳转程序
结束
等待按键松开是送上限温度给判断标志寄存
显示寄存器器是否为0
默认选用上限温度否跳转标志寄存设置,十位设置器值加一是判断标志寄存调用AD启动子
器是否为1程序跳转程序是判断标志寄存启动声报警结束否跳转标志寄存器是否为1送下限温度给器值加一显示寄存器否扫描显示、加跳转程序标志寄存器清一、位选设置结束零键、设置键
跳转相应按键跳转程序子程序结束
跳转标志寄存
器判断
图6按键程序流程图
跳转加一程序
等待按键松开
是判断显示寄存显示寄存器置0器是否为9
否
显示寄存器值
加一
跳转当前设置状态判断
送显示寄存器是判断标志寄存值至上限温度器是否为0寄存器
否
是送显示寄存器判断标志寄存值至下限温度器是否为2寄存器
否
调用显示子程序
跳转标志寄存器判断
图7加一子程序流程图
-11-
跳转状态设置
子程序
等待按键松开
否标志寄存器值判断标志寄存
加一器是否为2
是
标记寄存器值
清零
调用显示子程序
跳转标志寄存
器判断
图8跳转设置子程序流程图3系统程序调试
3.1调试准备
Protues仿真软件,Medwin编程软件,下载软件。
3.2调试步骤
3.2.1仿真调试
图9系统仿真图
3.2.2下载测试
使用软件STC-ISP将仿真正确的程序下载到单片机89C51中进行实物调试。
-12-
图10程序下载界面
将程序下载到单片机中,成功后进行显示与按键的调试。
根据设计要求,显示部分要求第一位显示温度值的标志位,第二到第四位显示温度值(个位带小数点)。
进行显示调试,设置一个当前温度的初始值为--11.1,上限温度值为,99.9,下限温度值为,00.0。
-13-
图11温度显示实物调试图
按键实物调试,根据按键的功能要求,第一个按键的功能是:
按一次显示设定的上限值,按第二次显示温度的下限值,按第三次返回当前的温度值。
第二个按键的功能是:
实现加一功能,即对选定的数码管进行加一,当加到9时便返回0。
第三个按键的功能是:
设置位选,用于选定温度状态位,温度十位,温度个位,温度小数位。
第四个按键的功能是:
设置键,按下该键系统进入设置门限值状态。
现在把上限温度值设置为-66.4,把下限温度值设置为_37.3。
-14-
图12按键功能实现图
图13实物总图
-15-
结论与谢辞
参考文献
[1]陈其纯.电子线路[M].高等教育出版社,2005,7:
45,50(
[2]张迎新(单片机初级教程—单片机基础[M](北京航空航天大学出版社,2004,10:
105,110(
[3]楼然苗(51系列单片机设计实例[M](北京航空航天大学出版社,2006,5:
78([4]陈明荧(8051单片机课程设计实训教材[M](北京:
清华大学出版社,2004,8:
60,71([5]阉石(数字电子技术基础[M](高等教育出版社,1998,3:
34,52(
-16-
附件1程序清单
BAOJINGBITP3.2
XSAJBITP2.4;按键口线
JYAJBITP2.5
WXAJBITP3.4
SZAJBITP3.5
SHENGBITP2.6
DUANXUANKOUEQUP0
WEIXUANKOUEQUP2
BIAOZHIEQU30H;当前温度寄存器
SHIWEIEQU31H
GEWEIEQU32H
XIAOSHUEQU33H
SHIUEQU34H;上限温度寄存器
GEUEQU35H
XIAOUEQU36H
SHIDEQU37H;下限温度寄存器
GEDEQU38H
XIAODEQU39H
ADJIEGUOEQU40H;各状态数值寄存器
SXJGEQU41H
XXJGEQU42H
JISHIEQU41H
ORG0000H
LJMPSTART
-17-
ORG0003H
LJMPINT_0;转外部中断INT_0子程序
ORG000BH
LJMPTimer0;转内部中断T0子程序
ORG0030H
START:
;程序初始化
MOVSP,#05FH;堆栈指针初始化
MOVBIAOZHI,#0;给定显示标志位初始值
MOVSHIWEI,#9;给定显示十位位初始值
MOVGEWEI,#9;给定显示个位初始值
MOVXIAOSHU,#9;给定显示小数位初始值
MOVJISHI,#0;给定计时寄存器初始值
SETBEA;开启中总中断
MOVTMOD,#01H;设定定时器0工作方式为1
MOVTH0,#3CH;设定定时器T0的定时初始值
MOVTL0,#0B0H
SETBTR0;启动定时器T0
SETBEX0;开启外部中断0
SETBET0;开启内部时钟中断0
LCALLZHUANHUAN;调用AD转换子程序
MAIN:
;程序主函数
LCALLKEY;调用按键子程序
LCALLDISPLY_LOOP;调用显示子程序
SJMPMAIN;跳转主程序
;*************************启动AD转化子程序********************************
ZHUANHUAN:
MOVDPTR,#7FF8H;指向通道IN_0,且P2.7=0
MOVA,#00H
MOVX@DPTR,A;锁定通道IN_0,并启动转化
-18-
RET
;**************INT_O中断读取AD转化结果程序*************
INT_0:
PUSHPSW;保护现场
PUSHACC
PUSHDPH
PUSHDPL
CLREA;关闭中断
MOVDPTR,#7FF8H;指向通道IN_0,且P2.7=0
MOVXA,@DPTR;读取AD转换结果到A
MOVADJIEGUO,A;将AD转换结果保存至AD结果寄存器
;*****************计算子程序**********************
MOVB,#0A0H;将10送寄存器B
DIVAB;;执行第一次除法得到十位
MOVSHIWEI,A;将得到的十位数值送十位寄存器
MOVA,B;送第一次除法运算后的余数
MOVB,#0A0H;将10送寄存器B
DIVAB;执行第二次除法运算得到个位和小数位
MOVGEWEI,A;将得到的个位数值送个位寄存器
MOVXIAOSHU,B;将得到的小数数值送小数寄存器
SETBEA;开启中断
POPDPL
POPDPH
POPACC
POPPSW;还原现场
RETI;退出中断
;***********按键子程序*********
KEY:
JNBXSAJ,