智能住宅安防报警系统设计_第1页
智能住宅安防报警系统设计_第2页
智能住宅安防报警系统设计_第3页
智能住宅安防报警系统设计_第4页
智能住宅安防报警系统设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1 引言在当今高速发展的社会中,人们对自身所处的环境越来越关心,居家安全已成为当今小康之家优先考虑的问题。当上班家中无人,或者仅有老人孩子在家,或晚上在家熟睡,都必须确保家庭成员和财产的绝对安全。1中国安居工程需要大力发展安全文明小区建设,严峻的社会治安形势,需要建立并完善安全文明小区防盗报警网络系统体系。2如何解决在当前每个家庭经济承受能力有限的情况下,建设满足防范功能及可靠性需求的安全文明小区防范防盗报警网络系统,是当前急需解决的课题。本方案是在考虑以上因素的基础上,所设计的可行性实施方案。在当前,随着经济的发展,人民的生活日益改善,人们对家庭生命财产安全越来越重视,采取了许多措施来保护家庭的安全。3以往的做法是安装防盗门、防盗网,但也存在有碍美观,不符合防火要求,不能有效地防止坏人的入侵。现在,全国各地都在如火如荼地开展建设安全文明小区的活动,而且很多地方都提出取消防盗网的口号,家庭电子防盗报警系统也就应运而生。因为大多数家庭都是双职工,白天家里通常没有人,发生报警后,必须要有专人来处理,因此,必须设立报警中心。而且因为国内住宅区大多数是密集型分布,一个住宅区往往有几百上千户,并且都有自身的保安队伍,因此当用户防盗报警系统报警时,除了在现场报警外,还需要向当地派出所或公安分局进行报警联网外,也需要向住宅小区的保安中心进行联网报警,以便警情得到迅速处理。4另外,考虑到国内普遍收入水平较低,对于每一户家庭的防盗报警系统成本不可太高,但因为用户数量多,也不能采用质量差的产品,以免误报频繁造成不良影响。根据以上分析,住宅小区对防盗报警系统的要求如下:1.广泛性即要求小区内每个家庭都能得到保护。2.实用性即要求每个家庭的防范系统能在实际可能发生受侵害的情况下及时报警,并要求操作简便,环节少,易学。3.系统性即要求每个家庭的防范系统在案情发生时,除能自身报警外,必须及时传到保卫部门,并同时上报当地公安报警中心。4.可靠性即要求系统所设计的结构合理产品经久耐用、系统是可靠。5.投资可行性-即要求系统投资或造价能控制在小区家庭能承受的范围之内。5智能住宅安防报警系统起源于20世纪80年代初的美国,它利用高科技手段提供给人们舒适、环保、安全和节能的服务功能。7近几年随着科学技术的日新月异,特别是计算机技术和建筑电子产业的发展,智能住宅已在世界各地逐步普及。随着生活节奏的加快,人们忙于工作、学习,在家中的时间越来越少,家中的安防就显得重要和必要了,针对这一特点,本设计介绍的报警系统,能对住宅中的报警信号进行检测,当出现警情时可通过公用电话网实现自动报警。8智能住宅安防报警系统是智能小区实现安全管理的重要系统,主要包括防盗报警、煤气泄漏报警、消防报警等。9小区管理极为重要的内容是确保住宅,住户安全,生活中,人人都可能出现一些意想不到的求助情况,现代居住的格局,邻里常年不来往已是常事,家庭生活稳密性、封闭性越来越强。10因此,小区安全防范及报警系统是具有先进的设计和设备,并为小区住户的安全提供保障的必要系统。11我国的安防自动报警控制系统经历了从无到有、从简单到复杂的发展过程,其智能化程度也越来越高。在小区内的每个住户单元安装一台报警主机,住户可选择安装在住户门口、窗户处安装声检、紧急求助、烟雾/煤气探头、瓦斯探头等报警感知设备,报警主机通过总线与管理中心的电脑连接,进行安防信息管理。如果发生盗贼闯入、抢劫、火灾、燃汽泄露等紧急事故,传感器就会立即获知并由报警系统即刻触发光警报以有效地恫吓企图行窃的盗贼;系统还会迅速向报警中心传送报警信息;报警中心接到警情后立即自动进行分辨处理,迅速识别判定警报类型、地点、用户,中心据此派出机动力量采取相应解救措施;系统具备24小时防破坏等并自我监视,一旦有任何被破坏的迹象也会即刻报警。122 系统功能及方案选择2.1 系统框图根据设计任务,该电路的总体模块可以分成以下几个基本模块,系统框图如图2-1。系统能够设置查询输入设置当前的状态,用户通过人机界面能够很方便的设置系统工作,并且通过指示灯指示当前系统的工作状态或者危险信号指示灯,系统正式工作后如果采集到传感器的信号,能够迅速在指示灯处予以显示并且给指定的电话拨号报警。13系统开关控制系统开始/结束工作,系统开始工作后需要先设定当前时间,确认后系统正式开始工作,系统可检测来自气体传感器的信号以及光敏传感器的信号以供判断是否有险情,一旦测到险情,先读取当前时间写入数组,并触发报警电路自动拨号报警。 用户回来后,可利用查询键查询何时发生何种险情。14图 2.1 系统框图2.2 方案选择2.2.1 MCU的选择MCU的选择主要从功能的完成能力、功耗、效率、成本等方面考虑。当前市场运用比较广泛的MCU有以下几类:.以CPLD、FPGA为代表的一类复杂可编程逻辑器件,这类MCU的特点是功能强大、处理能力较强、支持非常高的处理频率,但是这类MCU的操作比较复杂,而且相对于一个较小的系统MCU的利用率不高,功耗也比较大、成本较高。15.以ARM、DSP为代表的一类强大的嵌入式数据处理控制器,这类MCU具有强大的处理能力,多用于复杂的数据处理,或者生产智能手持设备等,这类MCU的处理能力虽然强大,但是成本以及功耗都相对较大,而且相对于本次设计的学习及研究目的来看不可取。16.以51系列单片机为代表的一类8位MCU处理器,这类处理器的特点有功耗低、处理能力较强、支持较高的工作频率,但是这类MCU对于高频的实时数据采集以及大容量数据处理时会出现错误活不准确。基于以上分析结合本设计的一些要求,采用51单片机作为MCU是比较明智以及合理的选择。其一本系统所占用的系统资源并不多51单片机足够使用,而其他两者使用在本设计上则显得有些浪费;其二本系统的数据采集及处理上并不需要非常高的速率以及非常大的容量;其三51单片机的处理上相对其他二者有独到的优势,其对于C语言的兼容性决定了设计的开发周期可以大大的压缩。根据本设计的详细功能分析,具体将采用STC89C52作为主控芯片。2.2.2 人机界面的选择所谓人机界面是指系统使用者在对系统进行相应的初始化设置时,和系统进行信息交换的一个可视化界面,本设计的人机界面主要是为了显示一些相对简单的提示语以及记录下的危险信息。人机界面的设计可以采用接口将系统和上位机通信,通过上位机的软件面来实现,但是这种实现方案比较复杂,而且必须保证拥有一台电脑,从设计及成本的角度上予以否定;另外一种方案是采用1602液晶来作为人机界面,鉴于本设计人机交互信息比较少,故采用本方案。2.2.3 设置、查询输入模块选择 系统上电启动后需要设置相应的参数以待工作,系统检测到危险后记录下后,用户可以通过查询装置查询历史危险记录。以上操作应该有一个输入装置来实现,鉴于以上操作都是触发了的动作,故很容易联想到使用一些按键装置来实现。本设计应该有以下按键:开/关键、设置时间键、加键、减键、显示下组信息键。这些按键可以通过续流二极管再通过两个反相器在外部中断口上,然后再将这些按键分别连接一些I/O上,这样可以比较准确的判断按键。3 STC89C52简介图 3.1 STC89C52外形及引脚STC89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除上万次。该器件与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,STC89C52是它的一种精简版本。STC89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。17外形及引脚排列如图3-1所示。3.1 主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 183.2 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下列所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。194 系统各功能模块设计4.1 单片机最小系统的设计单片机在本设计承担的任务比较繁重既要实现对控制传感器输入的检测,要对案件的监测,要实时记录险情,还要控制液晶的现实。20单片机要能正常的工作,必要的条件是供电及晶振。以下是单片机的晶振及复位电路:图 4.1 单片机晶振及复位电路4.2 液晶接口设计在上章节的方案选择里面我们已经确定了用1602液晶来实现系统的显示部分,下面介绍下1602液晶的一些属性以及使用方法。211602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线,下面是1602的实物图及引脚图及其管脚说明表:图 4.2 1602液晶实物图及引脚图 表 4.1 1602液晶管脚说明表下面介绍下1602液晶的操作相关知识。1602的寄存器选择控制表如下表所示:表 4.2 1602液晶寄存器选择控制表 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。1602通过D0D7的8位数据端传输数据和指令。.显示模式设置:(初始化)0011 0000 0x38 设置162显示,57点阵,8位数据接口;.显示开关及光标设置:(初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移) s=0 当写一个字符后,整屏显示不移动 .数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H).其他设置:1H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。.通常推荐的初始化过程:延时15ms 写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置完毕22图 4.3 1602液晶写数据时序图根据以上资料可以比较方便的对液晶进行操作,下面是1602液晶接口原理图:图 4.4 1602液晶接口图4.3 系统输入设计本设计的输入包括传感器信号的输入及按键输入,传感器输入将作为单独的一节在4.6节中详细讨论,本节将详细讨论按键模块的设计。根据上章节的讨论,本设计需要5个按键,每个按键的一段反向通过通过续流二极管再通过两个反相器后接到单片机的INT1口,并且该端分别与P2口的端口相连,按键另外一段直接与地相接。这样当有按键被按下后,单片机的INT1端产生一个低电平,触发外部中断1中断函数,然后读取P2口的值,通过分析可以判断出按下的是哪个按键。系统输入模块的原理图如下:图 4.5 系统输入模块原理图4.4 系统输出设计系统的输出包括系统指示灯、危险指示灯已经智能拨号报警模块,其中的智能拨号报警模块将在下一节中详细介绍,这里不作讨论。本节主要介绍各个指示灯的简单驱动,本设计对于指示灯部分要求比较简单,直接采用电平驱动法,即给一个低电平灯亮,反之灯灭。下面是系统输出原理图:图 4.6 系统输出模块原理图4.5 拨号报警模块设计本设计的拨号报警模块将采用技术成熟新锐科技公司生产的EX-1智能拨号报警模块,该模块是基于holtekMCU开发的一个集成智能拨号模块。23EX-1拨号模块是集DTMF信号接收、存储、发送为一体的通讯电路。模块内置的单片机和拨号管理程序能为用户提供多种信号输入输出端口,可在安防警报、信号采集、自动化控制、远程通讯信息传递等领域灵活应用。244.5.1 智能拨号报警模块的外形图及引脚定义该模块的外形图如下所示:图 4.7 EX-1智能拨号报警模块外形图该模块的引脚定义如下表所示:引脚号名称功能描述1PHA接电话线接电话线外线2PHB接电话线接电话线外线3VCC电源正极接5V直流电源正极4HTO高电平触发当引脚出现高电平时,模块开始拨号5ON/OFF允许 / 禁止双稳方式工作,接高电平打开拨号设定,再次接高电平关闭拨号设定6ERR电话线故障集电极开路输出端,当电话线出现短路、断路时输出截止7READY拨号完毕当预设号码发送完毕时输出高电平8EXA音频输入输入要传送的音频信号9LED状态指示输出接指示灯。和板载指示灯同步工作,表示模块当前所处的的工作状态10LTO断路触发当引脚与负极断路时,模块开始拨号11GND电源负极接5V直流电源负极表 4-3 EX-1智能拨号报警模块引脚定义表4.5.2 智能拨号报警模块的功能介绍EX-1智能拨号报警模块具有以下功能:1、5组手机或7组市话号码存储,掉电不丢失;2、增强信息传递通路,提供外部音频信号输入端;3、板载/外部信号输入方式可预置;4、电话机/外部开关两种拨号状态控制方式;5、电话线路状态检测功能,自动输出故障信号;6、工作状态指示输出;7、拨号完毕自动输出提示信号;8、触发一次,循环九遍拨打预置号码;9、远程中断、复位功能;10、独立工作,独立拨号,不依赖电话机等外部设备;11、标准SIP引脚封装,PCB装配灵活。4.5.3 智能拨号报警模块的号码录入想要拨号模块正确拨打欲通知的电话号码必须把要拨打的电话号码预先录入拨号模块,在录入之前您需要做完以下准备工作:25(1)、检查拨号模块,把第10、11脚连通,以确保模块处于未触发状态;(2)、把电话线连接到PHA、PHB;(3)、一部与模块连接在同一条电话线上的双音频电话机;(4)、为模块接通5V直流电源;以上准备工作请严格按步骤完成,如接通电源后指示灯出现常亮,请拿起听筒按“#”键使其熄灭。准备工作完成后就可以进行正式的录入操作了,操作时请拿起电话机听筒(为保证录入顺利,请不要使用免提),然后按以下步骤执行:步骤操作模块指示1长按“ * ”键待指示灯亮起后松开指示灯由不亮变为常亮,表示已进入号码接收状态,等待输入电话号码2输入欲通知的电话号码每按一个数字指示灯熄灭一次表示输入有效3如需输入另外几组电话号码按“#”,如不需要输入其他号码请按“*”结束录入操作按“#”键指示灯熄灭一次,同时听筒传出“嘀”的确认音,表示可以开始输入下一组电话号码;按“*”键指示灯由亮变为熄灭,同时听筒传出“嘀”的确认音表示录入操作结束,模块自动退出录入状态。4输入另外一组电话号码每按一个数字指示灯熄灭一次表示输入有效5操作同第3步同第3步6在操作过程中按“*”键或者当输入号码组数达到存储极限时,模块会自动退出录入状态,同时状态指示灯自动熄灭,听筒传出“嘀”的确认音。7当需输入新的电话号码以替代原预置的号码时,请按以上步骤重新录入即可,结束录入操作后原号码自动被删除并替换为新输入的号码。表 4-4 EX-1智能拨号报警模块录入号码操作步骤表4.5.4 智能拨号报警模块的应用电路图 4.8 EX-1智能拨号报警模块应用电路图如上应用电路图所示,当系统录入号电话号码后,按照上图的连接,当HTO端出现一个高电平(或者LTO端出现一个低电平)后系统自动触发拨号功能,据此我们可以将MCU得输出口输出的低电平通过反相器输出到HTO端口,这样很方便的实现了MCU对拨号报警模块的控制。264.6 传感器模块设计本设计的传感器模块主要用于检测火灾、煤气泄漏、盗贼进入危险信号进行监测。27经过分析及查阅相关资料,打算采用TX05D型的红外发射式传感器对盗情信号进行监测。基本原理是,改传感器具有一对红发发射接收装置,发射装置不断发出红外线,当有人经过时,接收端接收到发射的红外立马输出一个低电平给MCU处理。而对于火灾、煤气泄漏将采用基于QM-N5的气体业务传感器来实现,QM-N5传感器在接触到可燃性气体及烟雾时,其阻值降低,使555时基电路复位端即4脚电压上升,当电压达到555时基电路电源电压的1/3时,其输出端即3脚输出高电平再通过一个反相器变成低电平送给MCU处理。28传感器模块的原理图如下所示:图 4-9 传感器模块原理图5 系统软件设计5.1 系统程序框图5.1.1 主程序框图图 5.1 主程序框图5.1.2 外部中断1中断程序框图YNBATempfalg赋为0中断开始按下设置时间键?读取P2值,关闭中断。CYYYY按下“切换”键?NNNNTempfalg赋为6Tempfalg赋为5有盗情危险信号?B有火情危险信号?按下“开关”键?Tempfalg赋为3Tempfalg赋为4NYTempfalg赋为2按下“减”键?YNATempfalg赋为1按下“加”键?图 5.2 外部中断中断程序框图开启中断,返回。YN系统当前为设置工作状态,根据前面判断按键是否关机、切换或者是否有危险信号,并进行相关动作。Flag=2?NY系统当前为设置时间阶段,根据前面判断按键是否关机、加、减,并进行相关动作。Flag=1?CNY系统当前为关机状态,根据前面判断按键是否为开始,并进行相关动作。Flag=0?5.2 液晶显示程序及按键中断程序设计 本设计的程序设计的难点在于液晶显示以及按键检测及危险信号检测上,故本节将详细介绍这两个模块。5.2.1 液晶显示程序设计本设计中对于1602液晶的操作主要是将一些固定的字符写入1602的寄存器中,以达到在液晶上显示的效果。结合4.2节的讨论,我们可以定义出液晶的写指令以及写数据函数,定义好这两个函数后,在后面的程序中可以很方便的调用来达到在指定位置显示指定内容的效果。#define uchar unsigned char#define uint unsigned int/定义液晶控制端口sbit lcdrs = P10;sbit lcdrw = P11;sbit lcden = P12;void delayms(uint z) /毫秒延时函数 uint i,j; for(i=z;i0;i-) for(j=124;j0;j-);void lcd_write_com(uchar com) /液晶写指令函数 lcdrw = 0; lcdrs = 0; P0 = com; delayms(5); lcden = 1; delayms(5); lcden = 0;void lcd_write_dat(uchar dat) /液晶写数据函数 lcdrw = 0; lcdrs = 1; P0 = dat; delayms(5); lcden = 1; delayms(5); lcden = 0;void lcd_init() /液晶初始化函数 lcden = 0; lcd_write_com(0x38); lcd_write_com(0x0c); lcd_write_com(0x06); lcd_write_com(0x01); lcd_write_com(0x80);5.2.2 按键中断程序设计本设计的按键输入以及危险信号都经过处理编程低电平输入,通过了续流二极管以及两个反相器接入INT1端,这样当有输入时,INT1可以产生一个很稳定的低电平触发信号,然后进入外部中断1的中断函数里面处理相关信号。下面是简化了的外部中断函数处理输入信号的程序:uchar flag; /用于记录系统当前状态,可用于判断系统状态及设置时间uchar num,tempnum;/用于记录当前险情组数,设置系统只存5组,重启系统复位void int0() interrupt 2 uchar tempdat = P2; uchar tempflag,i; EX0 = 1; switch(tempdat) case 0x0fe: /设置时间 tempflag = 0;break; case 0x0fd: /时间加 tempflag = 1;break; case 0x0fb: /时间减 tempflag = 2;break; case 0x0f7: /系统开关 tempflag = 3;break; case 0x0bf: /火警信号 tempflag = 4;break; case 0x0df: /盗情信号 tempflag = 5;break; case 0x0ef: /切换下组险情 tempflag = 6;break; switch(flag) case 0: if(tempflag=3) /系统在关机状态下按下开机键,进入设置时间状态 break; case 1: if(tempflag=3) /系统在设置时间状态下按下关机键,进入关机状态 if(tempflag=0) /系统开始设置时间 break; case 2: if(tempflag=3) /系统关机 if(tempflag=0) /系统又设置时钟进入设置分钟 if(tempflag=1) /时钟加 if(tempflag=2) /时钟减 break; case 3: if(tempflag=3) /系统关机 if(tempflag=0) /系统设置好时间后进入监控状态 if(tempflag=1) /分钟加 if(tempflag=2) /分钟减 break; case 4: if(tempflag=3) /系统关机 if(tempflag=0) /系统重新进入设置时间状态 break; case 5: if(tempflag=3) /系统关机 if(tempflag=0) /系统重新进入设置时间状态 if(tempflag=4) /遇到盗情危险,将当前时间及危险类型记入数组 if(tempflag=5) /遇到火情危险,将当前时间及危险类型记入数组 if(tempflag=6) /显示下组危险记录 break; EX1 = 1;6 总结大学四年就这样匆匆忙忙的过去了,真正让大学四年得到升华是这次毕业设计,这次毕业设计让自己把所学的内容以及需要学的东西都应用进来了,也把自己的不足全都表现出来了。这次毕业设计我选的题目是智能安防报警系统设计,该题目的核心是对于环境危险信号的检测以及输出控制智能拨号模块通过电话网拨号报警。本次设计我采用STC89C52作为系统的控制核心,其他的各个功能模块都是通过综合比较分析得出的方案。本次设计中也出现了不少问题,软件、硬件层面都出现了问题,这些问题也反映了我在某些方面的欠缺。软件上来说,一开始设定的软件流程图纯在一些逻辑上的错误,导致自己在做这套系统的时候走了很多弯路,辗转几次才确定最终方案,这主要是经验欠缺以及思考局限性导致的;然后由于自己的粗心大意导致一些拼写错误,当然这类错误比较好修改,通过编译器的提示很容易发现错误。硬件上来说,出现的错误也比较单一,主要是因为自己的粗心大意,导致某些线路连接错误,但凡这类错误,解决的办法只有一个,逐条逐条线路检查并排除错误。毕设是一次非常好的提升自身能力的机会,通过这次毕业设计我真的感觉到自己的进步。在以后的学习、工作生活中,我会吸取这次毕设的经验,做事仔细、分析要全面,出现错误时也不能灰心大意,要有勇气、有信心去解决它。附录A 仿真及硬件实物结果仿真图: 实物图:附录B 系统原理图附录B 最终PCB图附录D 程序清单/*工程名:智能住宅安防报警系统作 者:付江云说 明:系统开关控制系统开始/结束工作, 系统开始工作后需要先设定当前时间, 确认后系统正式开始工作,系统可检测 来自气体传感器的信号以及光电传感器 的信号以供判断是否有险情,一旦测到 险情,先读取当前时间写入数组,并触 发报警电路自动拨号报警。 用户回来后,可利用查询键查询何时发 生何种险情。*/#include#define uchar unsigned char#define uint unsigned int/定义液晶控制端口sbit lcdrs = P10;sbit lcdrw = P11;sbit lcden = P12;/控制输出信号端口sbit sys = P13;sbit tohuo = P14;sbit todao = P15;sbit tophone = P16;/定义几个变量uchar flag; /用于记录系统当前状态,可用于判断系统状态及设置时间uchar num,tempnum; /用于记录当前险情组数,设置系统只存5组,每次重启系统又复位bit disdanger; /显示灾情标志位uchar temphour,tempmin,tempsec,secnum;/定义存储时间的二维数组uchar info104;/预设液晶显示的内容uchar code dat112 = System is;uchar code dat212 = setting!;uchar code dat314 = not working!;uchar code dat414 = Fire Danger!;uchar code dat515 = Theft Danger!;uchar code dat615 = Setting Time!;uchar code dat76 = Time:;uchar code dat810 = ;uchar code dat912 = working!;uchar code dat1015 = Setting Hour!;uchar code dat1115 = Setting Min! ;uchar code dat1215 = Setting Sec! ;uchar code dat1313 = Fire Danger!;uchar code dat1414 = Theft Danger!;uchar code dat1513 = No Danger!;uchar code huan32 = 0xe0,0xff,0xe4,0xff,0xe4,0xe4,0xff,0x00, 0xe0,0xff,0xe4,0xee,0xf5,0xe4,0xe4,0x00, /汉字环 0xe2,0xe4,0xec,0xf4,0xe4,0xe4,0xe4,0x00, 0xe2,0xff,0xe2,0xea,0xea,0xe2,0xee,0x00 /汉字付 ;void delayms(uint z) /毫秒延时函数 uint i,j; for(i=z;i0;i-) for(j=124;j0;j-);void lcd_write_com(uchar com) /液晶写指令函数 lcdrw = 0; lcdrs = 0; P0 = com; delayms(5); lcden = 1; delayms(5); lcden = 0;void lcd_write_dat(uchar dat) /液晶写数据函数 lcdrw = 0; lcdrs = 1; P0 = dat; delayms(5); lcden = 1; delayms(5); lcden = 0;void lcd_init() /液晶初始化函数 lcden = 0; lcd_write_com(0x38); lcd_write_com(0x0c); lcd_write_com(0x06); lcd_write_com(0x01); lcd_write_com(0x80);void system_init() sys = 1; tohuo = 1; todao = 1; tophone = 1; flag = 0; num = 0; disdanger = 0; temphour = 23; tempmin = 59; tempsec = 59; secnum = 0; tempnum = 0; TR0 = 0;void main() uchar i; system_init(); lcd_init(); EA = 1; ET0 = 1; TMOD = 0x01; TH0 = 0x3c; TL0 = 0x0bc; EX1 = 1; for(i=0;i12;i+) lcd_write_dat(dat1i); lcd_write_com(0x8

温馨提示

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

评论

0/150

提交评论