基于STC89C52单片机的温度监控报警系统设计和仿真
摘要:在生活中温度是一个十分重要的参数。能够有效的监控温度,是非常重要的。监控家用电器的温度,可以大大减少火灾发生的情况,保障生命安全,减少财产损失。监控温棚温度,可以减少农植物的死亡,保证农作物的收成。监控病人的体温,可以及时发现的感冒的早期特征,预防病情恶化。因此设计一个温度报警系统是十分有必要的。本文主要介绍了一个基于STC89C52单片机的温度报警系统,利用STC89C52单片机开发温度报警系统的过程,重点是单片机和传感器的硬件连接。温度报警器系统内的软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要设定报警温度。
Abstract: In the life, the temperature is a very important parameter. It is very important to effectively monitor the temperature. To monitor the temperature of the household electrical appliances can greatly reduce the fire, ensure the safety of life and reduce property loss. To monitor the greenhouse temperature can reduce the death of agriculture plants and guarantee harvest. To monitor the patients" body temperature can found the early characteristics of cold in time and prevent deterioration. So, it is very necessary to design a temperature alarm system. This paper mainly introduces a temperature alarm system which based on STC89C52 single-chip microcomputer, the development process of temperature alarm system by using STC89C52 single-chip and the hardware connection of the single chip microcomputer and sensor. This paper detailedly analyzes the software programming and the system process of each module in the temperature alarm system and introduces the circuits one by one. The system can easily realize temperature acquisition and display, and it can set alarm temperature according to the need.
关键词:单片机;温度控制;STC89C52;DS18B20
Key words: single-chip;temperature control;STC89C52;DS18B20
中图分类号:TP277 文献标识码:A 文章编号:1006-4311(2016)05-0133-02
0 引言
本文将介绍以STC89C52单片机为控制器,以DS18B20为传感器,以LED为显示器,以按键为输入设备,以5号电池为电源,以蜂鸣器和报警灯为报警装置,构成的数字温度控制系统。该设计的控制器STC89C52单片机常见,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,体积小,安装方便;传感器DS18B20测量精度高,可以精确到0.1℃;4节干电池供电使系统的抗干扰性得到加强,不会受到来自电网的不稳定电流的的干扰,方便携带,可以干燥的任何地方进行温度监测;本系统可以做其他系统的扩展系统。
1 系统硬件设计
数字温度报警系统的组成部分有:电源电路、测温电路、报警电路、STC89C52单片机、LED显示电路、输入电路.DS18B20实时检测温度,将数据送到单片机处理。单片机上电后数码管显示当前的环境温度,可通过按键设定需要的上下限报警温度。当检测到的温度高于或者低于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁。如图1。
1.1 AT89S52单片机简介
AT89S52是一种高性能CMOS8位微控制器,系统内部具有8K可编程Flash存储器。利用Atme1公司高密度非易失性存储器技术制造,能与工业80C5l产品指令和引脚完全兼容。在单芯片上,拥有8位CPU和在系统可编程Flash,能够让AT89S52为众多嵌入式控制应用系统提供高灵活性、超有效性的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,2个数据指针,2位I/O口线,全双工串行口,三个16位定时器/计数器,一个6向量2级中断结构,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.2 温度检测电路
美国DALLAS半导体公司将其推出的第一片支持“一线总线”接口的温度传感器命名为DS18B20,该传感器具有抗干扰能力强、高性能、低功耗、微型化、易配微处理器等优势,能够将温度直接转化为串行数字信号,便于处理。主机控制DS18B20完成温度转换必须经过3个步骤:初始化■ROM操作指令■存储器操作指令。测量温度区间可控制在-55℃~+125℃之间,检查温度的固有分辨率达到0.5℃,具有很高的适用性。测温元器件DS18B20的仿真器件,Vcc电源引脚,GND接地引脚。DQ温度信号输送引脚,可与单片机引脚进行直接相连。
1.3 显示模块电路
显示采用四位数码管显示,输出信号经三极管8550放大,驱动4位数码管。当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。
2 系统软件设计
控制系统分为:数码管显示部分、温度信号处理部分、按键设定报警温度部分。每个部分在独立完成各自的任务。其中,温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到0.1℃。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量周期是1s,也就是说只需1s就可以测量出温度。通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。
读温度子程序流程图:读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。其程序流程如图2所示。
3 仿真与调试
AT89S52系列单片机在很多产品中得到了广泛的应用。由于单片机应用技术涉及面很广,在实际的应用过程中需要投入大量的人力、物力和财力,一旦控制方案有误,其相应的开发设计也必然无用,导致投入成本的巨大浪费。Proteus仿真软件很好地解决了这些问题,它可以像 Prote1一样绘制硬件原理图并实现硬件调试,再与Keil C编程软件进行联调,实现对控制方案的验证。
控制系统功能是:在电源接通的后DS18B20将检测环境温度,将温度数据传给AT89S52,单片机将处理所得数据,将实时温度值显示在LED上。如果环境温度超出正常温度设定值时,系统将进行声光报警。同时可以按P2.0按键进入菜单键,调整温度的报警的上限值和下限值,按P2.1按键为自加1键,按P2.2按键为自减1键。
3.1 上限温度测试
当把上限温度也设为30°C,当环境等于或高于30°C时,数码管显示H 30.0,系统报警,LED灯D5将闪烁,同时蜂鸣器响。
3.2 下限温度测试
把下限温度设为10°C,当环境等于或低于10°C时,数码管显示L 10.0,系统报警,LED灯D5将闪烁,同时蜂鸣器响。
4 结束语
本温度报警器,通过单片机实时检测温度传感器DS18B20的状态,并将DS18820得到的数据进行处理。上电后数码管显示当前的环境温度,通过按键可设置高低温报警值,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测精确到0.1℃。进入设置界面后如果没有键按下系统会在15s后自动退出设置界面。由于采用了4节干电池供电使系统的抗干扰性得到加强。在软件上,充分利用了STC89C52的系统资源,系统运行流畅。体积小很方便携带。
参考文献:
[1]曹巧媛主编.单片机原理及应用[M].二版.北京:电子工业出版社,2002:33-37.
[2]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编[M].北京:北京理工大学出版社,2003:35-38.
[3]何力民编.单片机高级教程[M].北京:北京航空大学出版社,2000:23-27.
[4]D. I. Shin,S. J. Huh,T.S. Lee,I.Y. Kim.Web-based remote monitoring of infant incubators in the ICU[J]. International Journal of Medical Informatics, 2003.
[5]Bagchi,Sonali,Mitra,and Sanjit K."An Efficient Algorithm for DTMF Decoding Using the Sub-band NDFT."[J]. Proc.IEEE Int.Symp.On Circuits and Systems, 1995.