1、温度采集报警系统的设计学号:1208421071 课程设计报告温度采集报警系统的设计 院 系 电子信息工程学院 专 业 电子信息工程 班 级 1 姓 名 孙黄超 摘 要温度采集广泛应用于人民的生产和生活中,使用温度计来采集温度,这样不仅采集精度低、实时性差,而且操作人员的劳动强度大。为了解决这一问题,本文介绍了一种采用集成温度传感器DS18B20作为检测元件,AT89C51作为CPU的温度监控系统。利用数字温度传感器DS18B20与AT89C51单片机结合来测量温度,利用相应的显示器显示温度值。利用仿真工具Proteus进行单片机应用系统的虚拟设计与仿真调试。在Keil Vision3开发环境
2、下进行C51语言程序开发。本课题主要有键盘输入模块、传感器采集模块、显示模块、报警模块、CPU处理模块、电源供电及复位模块组成。本文介绍了该温度采集报警系统的硬件和软件设计。关键字:数据采集、传感器、AT89S51单片机、仿真调试2 温度采集报警系统原理说明. 1 3.2.1 晶振电路.3 3.2.2 复位电路.4 3.2.3 按键操作电路.4 3.2.4 显示电路.5 3.2.5 报警电路.5 3.2.6 温度传感器选择. .5 3.2.7 实现温度采集报警系统的整体流程图.6 8 附录.131 引言1.1 研究背景及意义 随着社会和经济的发展,城市的消防工作越来越重要,火灾自动报警系统在消
3、防工作中的作用就越突出,我国的火灾报警系统历经了从无到有,从简单到复杂的发展过程,其中智能化程度越来越高,但是由于人为的因素导致发生火灾的消息不能及时向有关方面报告,没有及时的处理火灾事故,这导致了更多的经济财产损失。而火灾自动报警系统的实现及全方面的应用就是为了减少损失的发生率。温度采集报警系统的设计及研究应用,对于以后消防工作的进行有十分重大的意义。因此,采用单片机实现温度控制系统的研究越来越普遍,而单片机温度控制系统中的传感器的应用,简化了信息采集的设计,从而减小了设计的复杂性,增加系统的可靠性,也同时减小了在实际开发中PCB板的面积,节约了成本。报警和显示模块主要是驱动蜂鸣器实现报警功
4、能和便于实时观察。该系统充分体现了智能化、低功耗、高精度的发展趋势。重点在于传感器的设计及智能化、低功耗的硬件电路设计上。1.2 国内外研究现状由于火灾系统需要不断完善,因此,目前各个国家对于温度采集报警系统十分的重视。重视的角度虽热不同,但最终的目的就是提高温度采集报警系统的灵敏度,使之应用于各大消防隐患场所。在现代社会不断发展的时代进程中,起初的消防设施不能广泛应用于各个大型场所。因此才不断追求灵敏度高、规模小型化、高可靠性、技术智能化的系统。网络化、智能化、多样化、小型化、社区化是目前各个国家需要攻克的研究课题。为此,研究力度仍需不断加大。2 温度采集报警系统原理说明由于采用温度传感器D
5、S18B20与AT89S51单片机相结合的测温方式,因此要对两者有一个简单的了解,下面就其基本性能做下说明。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型的具有单总线接口的智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字读数方式。DS18B20的性能如下。(1)单总线接口,仅需要一个引脚与单片机进行通信。(2)多个DS18B20 均可挂在单总线上,实现多点测温功能。(3)可通过数据线供电,电压范围为3.0V5.5V。(4)温度以9或12位的数字读数方式。(5)用户可定义报警设置。(6)报警搜索命令
6、识别并标志超过程序限定温度(温度报警条件)的器件。(7)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(8)DS18B20采用3引脚PR-35封装或8引脚SOIC封装。AT89S51单片机的片内硬件组成结构如图1所示。它把那些作为控制应用所必需的基本外围部件都集成在一个集成电路芯片上。它具有如下外围部件及特性:(1)8位微处理器(CPU);(2)数据存储器(128B RAM);(3)程序存储器(4KB Flash ROM);(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工的异步串行口;(6)2个可编程的16位定时器/计数器;图1 AT8
7、9S51单片机片内结构(7)1个看门狗定时器;(8)中断系统具有5个中断源、5个中断向量;(9)特殊功能寄存器(SFR)26个;(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式 下的中断恢复模式;(11)3个程序加密锁定位; 与AT89C51比,AT89S51更突出的优点:(1)增加在线可编程功能ISP(In System Program),字节和页编程,现场程序调试和修改更加方便灵活;(2)数据指针增加到两个,方便了对片外RAM的访问过程;(3)增加了看门狗定时器,提高了系统的抗干扰能力;(4)增加断电标志;(5)增加掉电状态下的中断恢复模式;片内的各功能部件通过片内单一总线连接而成(
8、见图1),基本结构依旧是CPU 加上外围芯片的传统微机结构。CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。单片机通过模拟口采集得到的传感器输出的电压,通过设置的参数电压就可以得到传感器的输入电压,再通过温度与电压转换等式就可以得到温度参数,将得到的温度参数进行分析后进行相应的处理,显示温度数据或者是驱动蜂鸣器报警,AT89S51芯片内集成了A/D转换通道,这样就可以直接将单片机的A/D输入通道与传感器的模拟电压输出通道相连接,系统可以通过键盘来完成对报警温度的上限和下限的设置,再通过显示电路将数据显示出来,当温度超过
9、所设置的最大温度或最小温度时,系统通过驱动蜂鸣器进行报警。因此采用AT89S51芯片与温度传感器DS18B20相结合的方式实现温度报警系统的研究。3 硬件设计3.1 总体方案设计温度采集报警系统主要由电源电路、复位电路、键盘、温度采集电路、显示电路、报警电路、CPU处理(AT89S51)等组成,整个系统的原理框图如图2所示。CPU处理AT89S51电源电路 复位电路键 盘 温度采集电路报警电路显示电路图2:系统电路的总体设计框图3.2 主要模块设计 3.2.1 晶振电路瓷片电容C1、C2是用来驱动晶振Y1的,因为晶振的大小是16M,所以选用30pF的电容,如下图3所示。图3 晶振电路 3.2.
10、2 复位电路 复位电路选用了30pF的电解电容和1K的电阻,如下图4所示。 图4 复位电路 3.2.3 按键操作电路电路图如下图5所示: 图5 按键操作电路按键SET用来进行温度值的设置;BACK键用于返回上一层次的步骤;INC键用于调整数字的值,每按一次加一,数值加一;MOVE键用于显示屏上光标的移动。 3.2.4 显示电路显示采用16*4字符LCD,如下图6所示: 图6 显示电路 3.2.5 报警电路采用蜂鸣器出声、发光二极管闪烁的方式进行报警。如下图7所示: 图7 报警电路三极管NPN采用9013是作为蜂鸣器的驱动的作用的,R7、R8作为限流电阻使用。 3.2.6 温度传感器选择 采用数
11、字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。DS18B20能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。基于现有器件所限,温度采集模块采用DS18B20温度传感器效果更好。 3.2.7 实现温度采集报警系统的整体流程图 图8 温度采集报警系统整体流程图 4
12、 软件设计在本设计系统中,要求达到的目的是在温度数值低于或超过设定的安全数值的情况下,系统自动报警的目的。要实现现实社会中温度异常检测与报警预警之间的联系转换,就需要温度采集报警系统的全面应用。温度采集报警系统的主要功能是实现微妙的温度伤害差距对于生产生活影响的减弱,通过单片机等设施及时的通告给人类,以便于我们采取有利的措施。总之,该系统对于我们的生产生活有很大的影响。4.1 温度采集传感系统的任务 温度采集传感系统的任务就是运用温度传感器将超出或低于设定温度的温度状态报告给上一级,通过单片机的CPU处理系统,实现即时的报警预警,以减少国家及人民的财产安全。4.2 Proteus的界面实现下图
13、9为其基本界面: 图9 Proteus界面打开Proteus软件,将图中标号为P的小格选中,将会出现一个如下图10的界面。在界面中的Keywords中输入要找的元器件,然后点击OK就会出现在图9中的界面中,按照此方法找到我们所需要的所有器件,之后在开始的界面中绘制所需原理图。绘制好之后,将在Keil Vision4中生成的.hex文件导入到绘制好的原理图中。最后,进行调试与检测。 图10 元件快速查找界面 4.3 在Keil Vision4平台下进行编程如图11为Keil Vision4运行界面。在编写一个新的应用程序前,一定先要建立项目。下面首先介绍如何建立一个新的项目。在编辑界面下,首先要
14、建立一个点击“Project”菜单,选择下拉式菜单中的“New Project”,弹出文件对话窗口,选择要保存的路径,在“文件名”中输入一个程序项目名称,保存后的文件扩展名为“.uv2”,这是Keil Vision4项目文件的扩展名,以后可直接点击此文件就可打开先前做的项目。点击“保存”后,这是会弹出一个对话框,要求选择单片机的型号,用户可根据所使用的单片机来选择。Keil Vision4支持几乎所有的51内核单片机。 然后编写第一个程序。点击“File”菜单,单击“New” 。这时,用户可输入代码。输入完毕,单击菜单上的“File”,在下拉菜单中单击“Save As”,在“文件名”栏的编辑框
15、中,键入文件名,同时,必须键入正确的扩展名(.C或.ASM),然后,单击“保存”按钮。上述工作完成后,还有有关项目的设置,程序的编译,链接,调试。这些内容,可按照Keil Vision4开发环境的帮助功能。 5 系统调试与实验本设计完成了一个温度采集报警系统,系统的硬件组成主要有:计算机,USB转串口,STC12系列单片机,驱动电路,传感器等。本次系统的调试程序采用的是C语言进行编程的,经多次的实验以及调试,最终结果还是较好的,下图12为本次系统实验研究原理图。 图12 系统原理图通过改变温度,研究温度采集报警系统的情况如下:图1316 图13 温度超过设定安全温度,灯闪烁蜂鸣器鸣响 图14
16、温度恰在设定临界处,灯不闪蜂鸣器不响 图15 温度低于设定安全温度,灯闪烁蜂鸣器鸣响 图16 温度处于设定安全温度之间,灯不闪蜂鸣器不响由以上调试分析,验证该温度采集报警系统符合设计要求。6 总结这次的课程设计是我自己第一次设计的一个系统,前期的方案选取与材料的查找,原理图的绘制及调试,程序的编写和Proteus仿真等等,使我对之前的理论知识有了较好的巩固,同时也提高了自己的动手能力与实际学习能力,但是在学习中我也发现自己在理论知识方面存在很多不足,比如说,对单片机的中断控制系统的掌握还不够,和对LCD的菜单界面编程能力不足。所以在今后,我将更加努力地学习,提高自己的专业水平和课程设计的能力,
17、为以后更好的做相关的工作而积累经验。7 参考文献1 袁昌立. 基于网络架构的智能火灾报警系统设计.微计算机信息,2007,1-1: 215-216.2 楼然苗,李光飞. 51系列单片机设计实例M.北京航空航天大学版社.3 孙焕铭,赵成会,王金.51单片机C程序应用实例详解M.北京:北京航空航天大学出版社,2011.4 胡汉才,单片机原理及其接口技术M.北京:清华大学出版社,1996.5 赵建领,弓雷.51系列单片机开发宝典2版M.北京:电子工业出版社,2012.6 李勇.一个多串口多线程数据采集系统软件的设计与实现.微计算机.8 附录主程序:#include#include#define uc
18、har unsigned char#define uint unsigned int#define IO P0sbit RS=P20;sbit RW=P21;sbit E=P22;void check_busy(void);void write_cmd(uchar com);void write_data(uchar dat);void LCD_init(void);void write_str(uchar x ,uchar y,uchar *s);void lcd_test(void);void delay(uint); /1ms延时程序void delay(uint j)uchar i;f
19、or(;j0;j-) for(i=0;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat);/*ds18b20写一个字节*/ void WriteOneChar(uchar dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; /*读取ds18b20当前温度*/void ReadTemp(void) unsigned char a
20、=0; unsigned char b=0; unsigned char t=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 delay_18B20(100); / this message is wery important Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度 delay_18B20(100); a=ReadOneChar()
21、; /读取温度值低位 b=ReadOneChar(); /读取温度值高位 temp_value=b4; /温度整数部分 temp_dot=a&0x0f; /温度小数部分 void temp_to_1602() /温度数据转换成液晶字符显示 ReadTemp(); Temp0=temp_value/10+0; /十位 Temp1=temp_value%10+0; /个位 Temp2=.; Temp3=temp_dot*0.625+0; Temp4=0xdf; Temp5=0;#endifsbit KEY_SET=P10;sbit KEY_BACK=P11;sbit KEY_INC= P12;sb
22、it KEY_MOVE=P13;sbit ALART=P14;sbit SHK=P15;bit SET_FLAG =0; /SET flag,when flag 1 is on SET modebit OVER_FLAG=0;uchar;CURRENT_MENU=0;uchar code MESSAGE24=NO ,YES;uchar code MENU1=* Welcome *;uchar code MENU2=* SET MODER *;uchar code MENU3220=* Set sucess! *,You set is illeage;uchar code WARING=WARING:;uchar code TEM=TEMP:;uchar code SET=-SET;uchar code BACK=-BACK;uchar code HIGHS=HIGHT:;uchar code LOWS = LOW :;uchar HIGHT=40,LOW=10;uchar move,base;uchar dis_temp6;bit MENU_FLAG3;void delay_100us(uchar x) uchar y; while(x-) for(y=0;y100;y+);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1