防火防盗报警系统的软件设计_第1页
防火防盗报警系统的软件设计_第2页
防火防盗报警系统的软件设计_第3页
防火防盗报警系统的软件设计_第4页
防火防盗报警系统的软件设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Q260046902 专业做论文西南科技大学毕业设计(论文)毕业设计(论文)题目名称:防火防盗报警系统的软件设计题目名称:防火防盗报警系统的软件设计年年 级:级: 2003 级级 本科本科 专科专科学生学号:学生学号: 20035123学生姓名:学生姓名: 颜雄颜雄 指导教师:乔静指导教师:乔静学生单位:学生单位: 信息工程学院信息工程学院 技术职称:助教技术职称:助教学生专业:学生专业: 生物医学工程生物医学工程 教师单位:信息工程学院教师单位:信息工程学院西西 南南 科科 技技 大大 学学 教教 务务 处处 制制西南科技大学本科生毕业论文I防火防盗报警系统的软件设计摘要:随着计算机的普及和

2、信息技术的迅猛发展,智能化被引入医院,并迅速发展起来。本文主要完成了防盗防火报警系统的软件设计。设计了主控模块、键盘模块、温度模块、修改密码等模块。主控模块控制各模块的中断申请,键盘模块实现单片机与外界的沟通,温度模块判断是否有火灾并向主控模块报告,修改密码模块使用户可以随时修改密码。本系统采用单片机的高级语言 C 语言进行设计,并给出了相关流程图。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。经测试能实现基本的报警功能。关键词:防盗;防火;报警系统;模块西南科技大学本科生毕业论文IIThe Software Design of an Alarm System

3、 of Theft-proof and FireproofAbstract: With the rapid development of computers and information technology, intelligent alarm system is introduced into hospital, and its development is rapid. In this paper, software design of an intelligent alarm system is introduced, the main control module, keyboar

4、d module, temperature module and change passwords module are designed. Interrupted applications of each module are controlled by the main control module, MCU communicated with the outside world is made by the keyboard module. If any fire is determined by the temperature module, it is reported to the

5、 main control module. User can change passwords at any time. The advanced C language based on MCU is adopted to design in this system, and the relative flow is showed in this paper. In order to expand and alter, the module structure is adopted in software designing, which makes the logic relation of

6、 designing program more simple and clear. After being tested, the system can realize the basic alarm function.Key words: theft-proof, fireproof, alarm system, module西南科技大学本科生毕业论文III目 录第 1 章 绪 论.11.1 课题的开发背景及意义.11.2 国内外研究状况.11.3 论文主要内容概述.3第 2 章 系统总体设计方案.42.1 系统总体构成.42.2 系统的基本功能和工作过程.52.2.1 防火防盗报警系统功能

7、和特点.52.2.2 系统的基本工作过程.5第 3 章 硬件平台.7第 4 章 系统软件的设计与实现.94.1 软件设计思想.94.2 系统软件实现.104.2.1 主控模块.104.2.2 密码模块.134.2.3 显示模块.144.2.4 键盘模块.154.2.5 外部中断.164.2.6 温度模块.184.2.7 X25045 模块.21第 5 章 系统的调试.245.1 调试软件UVISION2 介绍 .245.2 各功能模块调试.245.2.1 温度模块调试.245.2.2 键盘扫描模块调试.245.2.3 外部中断调试.25西南科技大学本科生毕业论文IV5.2.4 主控模块调试.2

8、5结 论.26致 谢.27参考文献.28西南科技大学本科生毕业论文1第 1 章 绪 论1.1 课题的开发背景及意义 随着社会经济的飞速发展和人民生活水平的不断提高,对安防技术提出了更高的要求,医院也不例外。安全防范技术涉及到社会的方方面面,是保护国家和人民利益与安全的重要手段。我国的医院设施建设水平随着我国经济水平的整体提高逐步得到改善。医院人群密集,重、危症病人、瘫痪病人较多,并且有大量价格昂贵的高档精密仪器、设备,又是用电多、易燃、易爆化学危险品多的地方,一旦防火不力,发生火灾,势必会造成人员伤亡和较大的财产损失,后果不堪设想。因此,医院的防火防盗不可忽视。近年来电子通讯技术的飞速发展,极

9、大地推动了安防技术的发展。单片微机以其具有体积小、价格低、集成度高、性价比高等突出优点己在工业控制、智能仪表、数控机床、数据采集以及各种家用电器等方面得到了广泛应用。因此利用单片机和一些简单的外围器件来开发一种适合于医院的低价位、运行可靠的多功能智能型安全防范报警系统,对医院出现的各种紧急意外事件如发生盗窃、火灾等自动发出报警信息并通知管理人员进行及时处理己经势在必行。本文所要介绍的是智能防盗防火报警系统的软件部分的设计,是在安防技术蓬勃发展的背景下,为了满足医院对安全的需要而设计的。在硬件搭建的基础上,软件实现遇到险情时的自动报警功能。1.2 国内外研究状况 在社会信息化进程日益发展的今天,

10、信息技术应用已渗透到人类生存、活动的各个领域,在医院方面,防火防盗不仅要求安全可靠、高效便利,同时还要适应信息化社会运用科技手段和设备的要求。因此,在医院的日常安防工作中,引入了很多高科技手段,我们称之为技术防范。 现代安防监控系统已有了新的概念,通常称为安全自动化 SAS(Security Automation System),并与防火自动化系统 FAS.(Fire Automation System)共同构成智能建筑系统最底层的系统。目前国外发达国家已逐渐形成一个集安防、消防、医疗救护为一体的安全保障行业。安全技术防范行业真正形成行业规模是在第二次产业革命中即 1950 年1971 年,首

11、先在美国、英国等国家形成,像西南科技大学本科生毕业论文2ADEMCO(安定宝)、VICON(维康)、CHUBO(集宝)、AMERICA DYNAMIC (A. D) 等。60 年代视频图像技术、70 年代计算机数字技术。80 年代生物识别技术以及 90 年代国际互联网技术的应用,使安防行业得到快速发展。 西门子楼宇科技公司针对医院建筑安全防范的实际情况,充分结合医院本身的情况,最新推出了 Guano Easy 新型安全防范系统。Guarto Easy 将视频监控、音频对讲监听、防盗报警(有线或无线连接方式)、火灾探测、危险气体探测等多种警告方式(声光,无线,拨号)结合起来,对医院进行全方位的安

12、全防范。Guarto Easy 采用总线式结构,符合安防系统的暴露线路最短的原则。通过适配器可以接入各种信号(电压,触点等),可以连接防盗探测器,震动探测器,气体探测器,火灾探测器,紧急按钮,门禁触点等各种探测器,能够适应各种情况。在线路上,可以接入中继器实现探测线路的延长,从而更好的适应环境。 就智能建筑中的火灾报警而言,目前出现的大型组合火灾报警系统或智能火灾报警系统,一般是根据灾前检知的光、热、烟、气、味等个别异常或是否达到某种阈值来做出判断的多阈值系统,多传感元件火灾探测器是智能型的装置,使用三种不同类型传感元件的探测器记录模拟量的火灾参数,并将这些模拟量转换成数字信号,然后,探测器利

13、用数值算法判定是否存在火灾危险。现在世界各国都在致力于研究和开发能早期预报火灾的火灾探测方法和设备,如利用神经网络所具有的自学习和自适应等特点,就可组成智能火灾探测系统,提高火灾探测系统的检出率,增进系统的可靠性。 在我国,医院安全防范报警系统己成为智能医院中实现安全管理的重要系统。根据我国的规定,安全防范报警系统主要包括电视监控、防盗报警、求救求助、有毒气体泄漏报警、消防报警等内容。该系统是一种比较完善的安全防范系统,通过在可视对讲的基础上,不断扩展主机功能,增设室内分机用于接收室内各探测器的报警信号。室内分机有多个探测器接口,可接收感烟探测器、温度探测器、红外及微波探测器、有毒气体泄漏探测

14、器等传来的报警信号。 与国外相比,我国智能医院安防系统有很大的差距。现在一般医院的主要防盗措施仅限于防盗窗、防盗门,虽有一定的防盗作用,但在灾害发生的情况下,逃生就比较困难。另外,医院安全措施不足,安全防范系统也急需普及。在我国,以北京、深圳、上海、广州等较发达的城市为龙头形成了一股智西南科技大学本科生毕业论文3能化医院热。目前,公安部、建设部均要求智能医院必须具有安防系统。可以预见,智能建筑将成为 21 世纪建筑业的发展主流。特别是在我国,随着人们生活水平的日益提高,各种建筑是否智能化,安防系统是否完备、可靠,将成为评价建筑的重要指标。1.3 论文主要内容概述本课题所设计的防盗防火报警系统实

15、现的功能包括:能对医院的火灾、实行自动报警;能对盗窃实行自动报警;设置紧急呼叫系统;用户端自动报警器对各传感器的信号进行检测和控制。智能报警系统主要包含用户端电子防盗和防火系统。用户端的电子防盗防火系统又包括探测器、自动报警器及输出等组成部分,并将模块化思想引入此系统,从而使整个系统的功能更完善、灵活、可调。在硬件搭建的平台上,本课题重点设计用户端自动报警器的软件部分。本论文是按如下方式组织的:第 2 章介绍系统的总体构成、功能及基本工作过程;第 3 章简单介绍硬件平台;第 4 章介绍系统的软件实现;第 5 章介绍系统在调试过程中遇到的问题及解决办法;结论部分对本系统进行总结,并对其发展进行展

16、望。西南科技大学本科生毕业论文4第 2 章 系统总体设计方案2.1 系统总体构成本防盗防火报警系统是一种新型的电子安全报警系统,该系统的设计是将电子探测、智能控制相结合,从而形成防盗、防火报警系统。系统总体构成包括防盗防火探测器、用户端自动报警器两个主要模块,系统组成框图如图 2-1所示。 图图 2-1 系统组成框图系统组成框图图图 2-1 系统组成框图系统组成框图看门狗电路EEPROM电源电路用户端自动报警器AT89C51密码控制电路热释电红外探测器微波探测器温度探测器感烟探测器CO探测器报警开关紧急呼救开关防盗探测器防火探测器工作灯报警灯故障灯报警器蜂鸣器键盘LED显示模拟量及传感器信号开

17、关量的输入指示灯控制输入/输出西南科技大学本科生毕业论文5在防盗防火探测器部分,红外探测器和微波探测器探测到信号后经一个逻辑与非门,通过单片机的 P3.2 脚进入自动报警器,软件中这部分功能用外部中断 0 实现,用户端自动报警器的主控模块判断其险情情况,然后决定是否进行声光报警;感烟探测器和 CO 探测器也经一个逻辑与非门,通过单片机的 P3.3脚进入自动报警器采用外部中断 1 实现相应功能;温度传感器经 P3.4 引脚进入自动报警器,这部分采用温度模块实现,也受到主控模块的控制。主控模块响应各中断申请后,给相应的三色灯低电平使其亮,有险情的话同时送蜂鸣器低电平使其发出响声报警。人与单片机的沟

18、通通过键盘实现,在软件中使用键盘模块实现向主控模块提出各种申请。为了方便用户修改密码,设计了密码模块来实现。LED 的显示通过显示模块来实现。2.2 系统的基本功能和工作过程2.2.1 防火防盗报警系统功能和特点前端报警器能够快速、准确地检测到现场的异常状态,一旦有人入侵、发生火灾或天然气漏气时,相应的探测器立即向自动报警器发出报警信号。接到警情事件后,经确认后及时通报给微控制器,自动报警器立即进行确认,50 秒确认无误后,进行现场声、光报警。用户端自动报警器可检测探测器或传输线路发生的故障(如探头断线或掉电等)。探测器出现故障时点亮故障灯。自动报警器的面板上设有 LED 显示器、键盘及三色警

19、灯,三色警灯分别指示光报警、正常工作以及系统出现故障的状态。系统开关机采用密码控制且允许修改密码,防止误报同时增加用户端自动报警器的保密性。如果出现误报警,50 秒内用户可以通过键盘输入密码解除报警。平时可以更改密码。2.2.2 系统的基本工作过程用户端的防范现场,一旦有人入侵、或发生火灾等紧急情况时,与之相应的报警探测器(各种防火、防盗及手动报警按钮等)则立即向用户端自动报警器发出报警信号。接到警情事件后,自动报警器立即进行确认(多次巡检中断信号),若 50s 后无人解除警情同时警情确认无误后,进行事件的现场声(蜂鸣器)、光(LED)报警, 在用户端自动报警器的面板上设有 LED 显示器、键

20、盘以及三西南科技大学本科生毕业论文6色警灯(LED),三色警灯分别指示火灾或红外/微波双鉴的防火防盗报警、正常工作及系统出现故障的状态,即报警灯(红)、工作灯(绿)和故障灯(黄)。用户端报警器同时具有探头故障报警功能,避免由于探头掉电而漏报,出现故障时点亮故障灯,如果判断探头掉线(被剪断),则声光报警。如果出现误触发而报警时可以通过触发延迟时间(50s 定时器),用户通过输入设定的密码来解除报警信号。当探测器检测到异常信号传给自动报警器时,只有解码正确时才会有开锁电平输出给单片机,控制关闭中断,解除用户端自动报警器的监测报警状态。此时,自动报警器对这个异常信号不做出任何响应,直到被复位后,自动

21、报警器才重新开始工作。如果三次误码输入,则产生报警信号电平,触发报警器中断响应,此时报警器进入报警状态。密码电路中设有 50 秒定时中断输出控制信号,防止长时间无效操作。当有超过 50 秒的无效操作时,中断开启,发出报警信号。密码由用户端自动报警器设定,并可随时更改,由键盘可输入用户新密码。用户不小心输入错误时,在规定时间内更正密码即可解除报警,有效的预防了误报。输入密码时的按键有效提示由绿色发光二极管来实现,即密码输入正确时发光二极管被点亮。西南科技大学本科生毕业论文7第 3 章 硬件平台 本文主要完成报警系统软件部分的设计和实现,所需的硬件平台由另一位同学搭建。硬件系统框图如图3-1 所示

22、: 热释电红外探测器微波探测器温度探测器感烟探测器CO 探测器LED 显示电路电 源AT89C51逻辑与非门逻辑与非门输入输出控制电路键盘/密码控制电路看门狗电路EEPROM紧急呼叫按钮报警蜂鸣器LED 指示灯图图 3-1 硬件系统框图硬件系统框图防盗探测器是由红外与微波探测器组成的双鉴探测器,双鉴探测器工作时将探测到的红外和微波两种信号经过与非门处理后送单片机,即只有同时检测西南科技大学本科生毕业论文8到两个探测器输出端口为高电平信号时,自动报警器才会响应盗情报警信号,否则不报警。防火探测器是由温度探测、感烟探测和一氧化碳探测构成的复合型火灾探测器。其中温度探测器采用一个温度传感器 DS18

23、B20 信号线 DQ 接单片机的P3.4 口,温度信号经 P3.4 口进入单片机。光电感烟探测器的输出端输出高电平触发信号经与非门进入单片机进行处理,CO 探测器的有效信号也送入与非门,只要从光电感烟探测器传来的信号也为高电平信号就能触发单片机的外部中断 1,进行防火报警。键盘控制电路采用常用的整个 P0 口来做一个 4*4 矩阵键盘,P0P3 口作为行线,通过上拉电阻接+5V,被箝位在高电平状态,P4P7 口为列线。显示电路采用串行口控制的 4 位 LED 显示器接口电路,采用共阳 LED,相应的亮段必须送 0,相应的暗段必须送 1。 在输入输出控制电路中,用单片机的 P2.0 接黄灯用于表

24、示系统出现故障,P2.1 接绿灯表示正常工作,P2.2 接红灯进行光报警,P2.3 接蜂鸣器进行声报警。 它们都是一个引脚直接接单片机,另一个脚直接接高电平,当出现相应状态时,单片机只需向响应的端口引脚置低电平,即可触发相应的器件发出报警或警告信息。西南科技大学本科生毕业论文9第 4 章 系统软件的设计与实现4.1 软件设计思想 本设计采用单片机 C 语言编程,在 uVision2 环境下编写、编译、调试程序。在硬件电路的基础上,采用 C 语言设计实现防火防盗报警系统的软件部分。用户端自动报警器的软件部分采用模块化设计,分为主控模块、温度模块、显示模块和键盘模块等。各个模块的关系如图 4-1

25、所示: 主控模块温度模块键盘模块显示模块密码模块X25045 模块 图图 4-1 模块关系图模块关系图 因为防盗探测器中的热释电红外传感器和微波探测器,以及烟雾探测器可以用两个外部中断实现,所以险情探测部分只需单独设计温度模块。各个模块实现的功能及关系如下:主控模块:起主要控制作用,控制各模块的中断申请(如接到警报后,自动报警器立即进行确认,50 秒确认无误后,进行现场声、光报警) ,判断各种报警条件是否满足(如果出现误报警,50 秒内用户可以通过键盘输入密码解除报警)并发出相应指令控制相关器件。显示模块:密码键盘显示、控制 LED 显示及三色警灯,三色警灯分别指示光报警、正常工作以及系统出现

26、故障的状态,由主控模块发出指令进行控制。西南科技大学本科生毕业论文10密码模块:用户不小心输入错误时,在规定时间内更正密码即可解除报警,有效的预防了误报,平时可以修改密码。密码模块要通过键盘模块与主控模块进行通讯。键盘模块:单片机与外界沟通联系的桥梁,输入密码以及各种特殊功能都需要通过键盘模块输入。温度模块:探测环境温度,当温度超出设定的警戒值时,向主控模块发出警报。主控模块做出响应后,下达声光报警的指令。X25045 模块:把看门狗定时器、VCC 监控电路和 EEPROM 三种常用功能组合在一起,存储了报警信息和用户的密码信息。具有监测总线和监控电路的功能。整个系统采用传感器电路检测人体的入

27、侵和火灾的发生。一旦发现情况,传感器检测电路发出信号,向单片机申请中断。单片机响应中断后,根据报警类型的不同,发送不同的报警信息。4.2 系统软件实现本系统的软件实现包括主控模块、密码模块、键盘模块和温度模块及外部中断等,下面分别对它们进行介绍 。4.2.1 主控模块主控模块是本设计中的一个重要模块,它控制各模块的中断申请,判断是否响应该中断。主控模块流程图如图 4-2 所示。西南科技大学本科生毕业论文11 NYY开 始延迟 100s探头掉线检测判断险情种类声光报警是否误报?报 警有无险情?N存储报警信息图图 4-2 主控模块流程图主控模块流程图开始后,先要延迟 100s,等待系统上电复位,然

28、后再进行探头掉线检测。一切正常后,调用险情检测函数,判断有无险情,还要判断是哪种险情类型,判断险情类型是为了以后扩展自动电话报警的功能而设置的,因此需要对报警信息进行储存。报警信息通过一个写入函数把信息保存到 X25045 中的EEPROM 中,需要显示的时候通过一个读出函数从 X25045 中的 EEPROM 中读出。本设计中由于硬件设计时没有设计自动电话报警的功能,但为了以后的扩西南科技大学本科生毕业论文12展和程序的可移植性,在软件的设计中设计了判断险情种类的功能,这种功能在险情检测函数中实现。通过险情检测函数返回不同的返回值来实现判断险情种类。在判断险情种类后,调用声光报警函数进行声光

29、报警。为了减少误报的情况,设计了一个判断是否误报的函数,用户可以通过输入密码来解除报警。在主控模块中可以调用这个判断是否误报警的函数进行判断。判断是否误报警的函数流程图如图 4-3 所示:密码正确?开 始N=0解码输入N=N+1N3到 50 秒? 返 回NY解除报警YNYN 图图 4-3 判断是否误报警的函数流程图判断是否误报警的函数流程图在判断是否误报警的函数中,用单片机内部定时器设定了 50 秒钟的时间,用户可以在此时间内输入密码解除报警。而且只有 3 次输入密码解除报警的机会,如果在这 3 次输入中密码都不正确,则现场声光报警。如果密码正确则红灯熄灭,同时蜂鸣器响声停止,报警解除,绿灯亮

30、,系统回到正常的工作状态。西南科技大学本科生毕业论文134.2.2 密码模块密码由用户端自动报警器设定,并可随时更改,通过键盘可输入用户新密码。用户不小心输入错误时,在规定时间内更正密码即可解除报警,有效的预防了误报。在修改密码的函数中,首先要扫描键盘,判断用户是否要修改密码,如果检测到用户按的是功能键 C,则向单片机发送信号,系统便知道用户要求更改密码。再一次调用键盘扫描程序,系统开始接受输入的数据。在修改前系统要求用户输入原来的密码进行确认其是否有修改密码的权限,如果输入的密码正确则可以修改密码,否则不可以修改密码,密码错误通过红灯亮 5 秒进行提示。这样的设计是为了使系统更安全、更完善。

31、在输入第一次新密码后,需要再次输入新密码进行确认。如果两次输入密码相同则密码修改成功。如果第一次和第二次输入的不相同则此次密码修改不成功,通过红灯亮 5 秒进行提示。密码修改成功后通过调用一个写入函数把密码保存到 X25045 的 EEPROM 中,以防止掉电后密码丢失。密码模块的流程图如图 4-4 所示:西南科技大学本科生毕业论文14 开 始键盘扫描按下 C 键?密码正确?输入旧密码输入新密码再次输入新密码两次相同?密码修改成功结 束NYNYNY密码存到 X25045 图图 4-4 密码模块流程图密码模块流程图4.2.3 显示模块显示模块主要是用来显示室内温度,方便用户随时知道室内的温度情况

32、。硬件采用的是串行口控制的 LED 显示器接口电路,利用串行口加 4 片外围芯片 74LS164 分别控制 4 个 LED,所以温度显示只能显示 4 位。由于考虑到火灾时的温度不会在零度以下,所以在编显示函数时就不用考虑显示零度以下的西南科技大学本科生毕业论文15温度,只显示零度以上的温度。4.2.4 键盘模块键盘输入信息的主要过程包括三个步骤。首先 CPU 判断是否有键按下,然后确定按下的是哪一个键,最后把此键代表的信息翻译成计算机所能识别的代码。单片机应用系统中通常采用的是非编码键盘,本设计采用的是非编码中的行列式键盘。键盘采用整个 P0 口来做一个 4*4 矩阵键盘,P0.0P0.3 口

33、作为行线,通过上拉电阻接+5V,被箝位在高电平状态,P0.4P0.7 口为列线,如图 4-5 键盘电路所示。图图 4-5 键盘电路键盘电路程序扫描法是一种常用的键识别方法,本设计中的键盘程序就采用这种方法。扫描程序查询的内容如下:1、查询是否有键按下。首先单片机向行扫描口 P0.0P0.3 输出全为 0 的扫描码 F0H,然后从列检测口 P0.4P0.7 输入列检测信号,只要有一列信号不为 1,即 P0 口不为 F0H,则表示有键按下。接着要查出按下键所在的行、列位置。2、查询按下键所在的行、列位置。单片机将得到的信号取反,P0.4P0.7口中为 1 的位便是键所在的列。接下来要确定键所在的行

34、,需要进行逐行扫描。单片机首先使 P0.0 口接地,P0.1P0.7 口为 1,即向 P0 口发送扫描码 FEH,接着输入列检测信号,若为全 1,则表示不在第一行。然后使 P0.1 接地,其余为 1,再读入列信号。这样逐行发 0 扫描码,直到找到按下键所在的行,将该行扫描码取反保留。若各行都扫描以后仍没有找到,则放弃扫描,认为是键的西南科技大学本科生毕业论文16误动作。3、对得到的行号和列号译码,得到键值。4、键的抖动处理。当用手按下一个键时,往往会出现所按键在闭合位置和断开位置之间跳几下才到闭合状态的情况,释放一个键时也会出现类似情况。抖动的持续时间不一,通常不会大于 10 毫秒。若抖动的问

35、题不解决,就会引起对闭合键的多次读入。为解决这种键抖动的情况,当发现有键按下后,并不立即进行逐行扫描,而是延时 10 毫秒后再进行。由于键按下的时间持续上百毫秒,所以延时后再扫描不会影响读入。键盘扫描程序流程图如图 4-6 所示:N开 始发全 0 行扫描码字有键按下?延时去抖动Y返回 0判断按键位置返回特征字节码图图 4-6 键盘扫描程序流程图键盘扫描程序流程图4.2.5 外部中断设计险情探测的时候,对于防盗信号采用外部中断 0 实现。防盗信号的硬件结构示意图如图 4-7 所示:西南科技大学本科生毕业论文17热释电红外探测器微波探测器74LS00与非门自动报警器AT89C51图图 4-7 防盗

36、信号硬件结构示意框图防盗信号硬件结构示意框图当有盗情发生时,热释电红外传感器和微波探测器输出数字信号,在经过74LS00 与非门后,再经单片机的 P3.2 脚进入自动报警器。在外部中断 0 的函数中可以直接读取 P3.2 引脚的值,如果检测到的是高电平,则标志位置“1”,向主控模块发出报警信号。光电感烟探测器和一氧化碳探测器连接在一个逻辑与非门上,然后通过 P3.3 引脚接入单片机,如图 4-8 所示。此信号通过外部中断 1 来检测,当从 P3.3 引脚检测到高电平时,标志位置“1”,并向主控模块报警。 P3.4AT89C51INT1温度探测器感烟探测器CO 探测器74LS00与非门图图 4-

37、8 火灾探测器连接示意图火灾探测器连接示意图核心代码如下:void infrared_int0() interrupt 0 using 1flag1=P32;if(flag1) flag_infrared=1;else flag_infrared=0;西南科技大学本科生毕业论文18void smog_int1() interrupt 2 using 2flag2=P33;if(flag2) flag_smog=1;else flag_smog=0;4.2.6 温度模块 温度探测信号通过 P3.4 进入 AT89C51 型单片机如图 4-8 所示。其获取信号传感器采用的是 DALLAS 公司生产

38、的一种“单总线”温度传感器 DS18B20。温度函数要按 DS18B20 的原理和指令进行编写。DS18B20 采用独特的单线接口方式,仅需要一个端口引脚来发送或接受信息。它由 64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器四部分组成。64 位光刻 ROM 是 DS18B20 的地址序列码,用于实现一个总线上挂接多个DS18B20。在本设计中只需要一个,可以不考虑 64 位光刻 ROM 的功能。根据 DS18B20 的通信协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条ROM

39、指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定操作。复位要求 CPU 将数据线下拉 500 微妙,然后释放,DS18B20 收到信号后等待1660 微秒左右,然后发出 60240 微秒的存在低脉冲,主 CPU 接到此信号表示复位成功。ROM 操作指令:DS18B20 依靠一个单线端口通讯,必须先建立 ROM 操作协议,才能进行存储器和控制操作。因此,主机必须首先提供下面 5 个 ROM操作命令之一。1、读出 ROM,代码为 33H,用于读出 DS18B20 的序列号,即 64 位激ROM 代码。2、匹配 ROM,代码为 55H,用于辨别(或选中)某一特定的 DS18B20进

40、行操作。3、搜索 ROM,代码为 F0H,用于确定总线上的节点数以及所有节点的序列号。4、跳过 ROM,代码为 CCH,命令发出后系统将对所有 DS18B20 进行操西南科技大学本科生毕业论文19作,通常用于启动所有 DS18B20 转换之前,或系统中仅有一个 DS18B20 时。5、报警搜索,代码为 ECH,主要用于鉴别和定位系统中超出程序设定的报警温度界限的节点。这些命令对每个器件的激光 ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,在本设计中只用到一个,所以可以不考虑读序列号。存储器操作指令:1、温度转换,代码为 44H,用于启动 DS18B20 进行温度测量,温

41、度转换命令被执行后 DS18B20 保持等待状态。如果主机在这条命令之后跟着发出读时间隙,而 DS18B20 又忙于温度转换的话,DS18B20 将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,主机必须在发出这条命令后立即启动强上拉,并保持 750 毫秒,在这段时间内单总线上不允许进行任何其他操作。2、读暂存器,代码为 BEH,用于读取暂存器中的内容,从字节 0 开始最多可以读取 9 个字节,如果不想读完所有字节,主机可以在任何时候发出复位命令来中止读取。3、写暂存器,代码为 4EH,用于将数据写入到 DS18B20 暂存器的地址 2和地址 3(TH 和 TL 字节) 。

42、可以在任何时刻发出复位命令来中止写入。4、复制暂存器,代码为 48H,将暂存器的内容复制到 DS18B20 的非易性E RAM 中。即把温度报警触发字节存入非易失性存储器里。如果主机在这条2命令之后跟着发出读时间隙,而 DS18B20 又在忙于把暂存器拷贝到 E RAM2存储器,E RAM 就会输出个“0”,如果拷贝完的话,DS18B20 则输出“1”。如2果使用寄生电源,主机必须在这条命令发出后立即启动强上拉并最少保持 10毫秒,在这段时间内单总线上不允许进行任何其他操作。5、重读 E RAM,代码为 B8H,用于将存储在非易性 E RAM 中的内容22重新读入到暂存器(温度触发器)中。若在

43、这条命令发出之后发出读时间隙,器件会输出温度转换忙的标志。6、读电源,代码为 B4H,用于将 DS18B20 的供电方式信号发送到主机。若在这条命令发出之后发出读时间隙,DS18B20 将返回它的供电模式。DS18B20 的数据读写是通过时间隙处理位和命令字来完成信息交换的。西南科技大学本科生毕业论文20程序实现:在编写函数时,由于 DS18B20 微处理器间采用串行数据传输,必须严格的保证读写时序,否则将无法读取测温结果。如图 4-8 所示温度传感器接 P3.4引脚。 在编函数时首先初始化 DS18B20,给单总线一个高电平,稍做延时,再给总线低电平,以激活传感器。然后保证延时在 400us

44、-960us 的范围内,再次给总线高电平,等待 15-60us,如果总线为低电平,则表明传感器初始化成功。低电平会持续 60-240us,最后等待传感器释放总线。 向 DS18B20 发出各种指令都需要通过读一字节数据或写一字节数据函数来实现。这两个函数的要按照 DS18B20 的时间隙处理位和命令字的要求来编写。温度函数流程图如图 4-9 所示:西南科技大学本科生毕业论文21初始化 DS18B20开 始跳过读序号列号操作启动温度转换跳过读序号列号的操作读取温度寄存器templ、temph 分别读低、高 8 位温度数据将符号位移到高 8位正数处理,存于 temp 数组负数处理,存与 temp

45、数组返回 temp初始化 DS18B20是否正数?YN 图图 4-9 温度函数流程图温度函数流程图4.2.7 X25045 模块X25045 是美国公司 XICOR 低功耗 CMOS 的产品,它把看门狗定时器、西南科技大学本科生毕业论文22VCC 监控电路和 EEPROM 三种常用功能组合在一起。本系统中 X25045 存储了报警信息和用户的密码信息。VCC 监控功能是指只要 VCC 电平降至低于最小转换电压或者看门狗定时器达到其编程的超时极限值,RESET 输出高电平进行复位。表表 4-1 X25045 指令及其含义指令及其含义指令名指令格式操作WREN00000110设置写使能锁存器(允许

46、写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器READ0000A8011把开始于所选地址的存储器中的数据读出WRITE0000A8010把数据写入开始所选地址的存储器本系统中对 X25045 的读数据、写数据、置位写使能的编程过程简述如下(X25045 的指令如表 4-1 所示):1、读数据的操作:把/CS(P2.6 口)拉低以选择芯片:发送 8 位的读(READ)指令;送 8 位的字节地址;在读的时候使 SCK(P2.7 口)处在下降沿,所选定地址的存储器中的数据将移到 SO(P2.5 口)线上。继续提供

47、时钟脉冲可连续读出接下的地址空间中的数据。每移出一个字节数据之后,字节地址自动增加到下一个较高地址。达到最高地址($1FFH)时,地址计数器翻转至$00H,无限循环下去。把/CS 置为高电平,可以中止操作。2、置位写使能锁存器操作:/CS 先被拉到低电平;由时钟同步送入写使能指令;将/CS 变为高电平,否则写操作忽略。3、写数据到操作:拉低/CS 并保持在低电平;发送写指令;写数据。在写数据的时候保证 SCK 处在上升沿,要写的数据通过 SI(P2.4 口)线进入X25045。可以连续写多达 4 个字节的数据,但这 4 个字节必须驻留在同一页上。否则计数器将翻转到页的首地址并重新写可能己有数据

48、写入的任何单元。看门狗定时器的预置时间是通过 X25045 的状态寄存器的相应位来设定的。如表 4-2 所示,X25045 状态寄存器共有 6 位有含义,其中 WD1、WD0 和看门狗电路有关,其余位和 EEPROM 的工作设置有关。表表 4-2 X25045 状态寄存状态寄存D7D6D5D4D3D2D1D0XXWD1WD0BL1BL0WELWIP西南科技大学本科生毕业论文23WD10,WD0=0,看门狗预置时间为 1.4s。WD10,WD0=1,看门狗预置时间为 0.6s。WD11,WD0=0,看门狗预置时间为 0.2s。WD11,WD0=1,禁止看门狗工作。编程时,本系统在主控模块中加一条

49、喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,看门狗定时时间很快增长到预置时间,迫使系统复位。看门狗的程序流程图如 4-10 所示:开 始发写读使能命令发送一字节数据发写状态字命令发送一字节数据发送定时命令发送一字节数据结 束图图 4-10 看门狗程序流程图看门狗程序流程图西南科技大学本科生毕业论文24第 5 章 系统的调试5.1 调试软件 uVision2 介绍uVision2 是 KEIL 公司推出的一种全新的集成开发环境,它是一种 32 位标准的 Windows 应用程序,支持长文件名操作,有一个功能强大的编辑器、项目管理器和制作工具。uVisio

50、n2 支持 8051 的所有 KEIL 工具,包括 C 编译器、宏汇编器、链接器/定位器和目标文件至 HEX 格式的转换器。5.2 各功能模块调试 各个功能模块编好后,为了能更容易找出错误,本系统的调试采用先调试各个功能模块,在语法、逻辑上能实现其相应的功能后,再对整个系统进行调试。5.2.1 温度模块调试先打开 uVision2 软件建立工程,接下来要给项目添加源程序文件。鼠标右击“项目窗口/Files”标签页中的“Source Group 1”文件组,在弹出的快捷菜单中左键单击“Add Files to GroupSource Group 1”选项,将已经编好温度模块程序添加到新创建的项目

51、中去。然后配置 Cx51 编译器、Ax51 宏汇编器、BL51/Lx51 连接定位器以及 Debug 调试器的功能。一般采用其默认值,设定目标硬件系统的时钟频率 Xtal 为 12MHz,输出文件名默认与项目文件同名,存放在当前路径。在“Output”标签页选中方形复选框“Create HEX File”使当前项目编译连接完成之后生成一个用于 EPROM 编程的 HEX 文件。在“Debug”标签页中设定采用软件模拟仿真调试。在调试中要注意,每一次在读写之前都要对DS18B20 进行复位,否则即使语法没有问题也不能实现温度模块的功能。由于温度函数的返回的是温度数据,不是逻辑电平所以在软件模拟仿

52、真调试,排除一般性错误后,可以被其它功能函数调用。温度模块要通过目标硬件仿真调试,经目标硬件仿真后,才能实现读取温度的功能。5.2.2 键盘扫描模块调试 把源程序添加到工程中,其他步骤和温度模块调试一样。但由于键盘扫描模块中数据的处理比较多,所以不应采用全速执行程序的方法,而是采用单步西南科技大学本科生毕业论文25执行的方法。逐行单步执行,对于相对比较复杂的键盘程序,比较容易找出错误且能看到程序具体的执行过程。在键盘程序的调试中语法错误出现的频率比较多。如使用 switch/case 语句时,忽略了 case 后面的冒号,或是忘记定义端口。最容易犯的错误是在用多个表达式作为判断条件时,写括号的

53、时候忘了另外一半括弧。在编写程序的时候多注意这方面的细节,就可以避免在调试程序的时候花很多时间去修改语法错误。在修改语法错误后,再次调试,结果显示语法正确,然后就可以编译连接生成 HEX 文件。在软件模拟仿真证明键盘的功能实现以后,键盘模块的调试基本完成。5.2.3 外部中断调试 在外部中断的调试中,除了注意标点符号和中断初始化外,又忽略了另一个问题。提示错误的窗口中显示 P3 口没有定义,认真观察之后才发现,程序中用来表示端口的字母是小写,而在单片机中端口的字母一般都用大写。大小写在单片机的编程中有区别,以后尤其要注意这个问题。把端口字母改为大写后,编译就能通过了。外部中断在软件上调试通过后

54、,烧到单片机上一般都没有什么问题。5.2.4 主控模块调试 在主控模块调试中,先分别调试主控模块调用到的函数,特别是险情判断函数,看其返回值是否与预先设想的相同。在判断险情种类的函数调试中,返回的不同字符对应不同险情种类。各个函数分别调好后,就可以调主控模块了。在调试中有一个问题,在软件指出错误代码的地方,没有找到出错的原因,那一行代码是正确的。再往前认真地查找,才发现程序开始的时候定义“#define red_led P22”有问题,改成“sbit red_led=P22”。改正错误后,编译就能通过了。在软件上编译通过后生成 HEX 文件,用 A51 经济型编译器将 HEX 文件烧入单片机,

55、进行连机调试。经测试本系统能实现基本的报警功能。西南科技大学本科生毕业论文26结 论通过对各个模块以及整个系统的调试,基本达到了预期的基本要求。得到的结论如下:医院防盗防火报警软件系统的总体方案设计基本正确、可行。温度模块可以探测环境温度,返回温度值给主程序,使主程序可以做出是否有火灾的判断并报警。修改密码模块可达到用户随时可以更改密码的功能。而键盘模块除了可以输入密码解除报警以外,还可以通过按其它功能键实现特殊功能。主控模块可以在对险情作出判断的情况下,调用报警函数进行现场声光报警。刚开始设计的时候,不知道从什么地方下手。经老师的指导和请教同学后,决定从温度探测器做起。因硬件采用的是 DS18B20,除了从网上可以找到它的数据手册外,还从图书馆借了一本有关其编程的书。通过参考书上例题,了解了它的具体编程过程及注意事项。另外在编程的后期,对于看门狗的程序也毫无头绪,在能找到的资料中,只有它的指令说明并没有关于它的例子。在经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论