智能住宅安防报警系统

更新时间:2023-10-29 23:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文

智能住宅安防报警系统设计

[摘要] 智能建筑起源于20世纪80年代初的美国,它利用高科技手段提供给人们舒适、环保、

安全和节能的服务功能。近几年随着科学技术的日新月异,特别是计算机技术和建筑电子产业的发展,智能住宅已在世界各地发展起来。安防系统是智能建筑的重要功能之一,它能有效保证住户生命财产的安全和防止没有授权的非法入侵。本文介绍了一种以微控制器AT89C51为核心,利用公用电话网实现自动报警的安防系统。给出了系统的软、硬件设计和应用分析。

[关键词] 智能住宅 微控制器 公用电话网 报警

毕业论文

The design of security alarm system for intelligent residential area

[Abstract] Intelligent building originated in the 20th century and early 80's the United States,which

uses high-tech means to supply people's comfort, environmental protection, safety and energy conservation services. In recent years, as the great changes in science and technology, especially in electronic computer technology and construction industries, has been smart residential development around the world. The security system is one of the important functions for the intelligent building, which can efficiently protect inhabitant’s life and property, prevent illegal in breaking. This paper describes the security alarm system that uses the microcontroller AT89C51, which can auto dial alarm by the public service telephone network (PSTN). The hardware, software and application analysis are presented.

[Key words] Intelligent residential area microcontroller public service telephone network (PSTN)

alarm

1

毕业论文

引 言

智能建筑起源于20世纪80年代初的美国,它利用高科技手段提供给人们舒适、环保、安全和节能的服务功能。近些年来,随着科学技术日新月异的发展,特别是电子计算机技术和建筑电子产业的快速发展,智能住宅已在世界各地逐步普及。随着生活节奏的加快,人们忙于工作、学习,在家中的时间越来越少,家中的安全防范就显得格外重要了。如今,安防系统已成为智能建筑的重要功能之一,它不仅能有效保证住户生命财产的安全,更能防止没有授权的非法入侵.针对这一特点,本设计介绍的智能住宅安防报警系统,能对住宅中发出的报警信号进行检测,当出现警情时可通过公用电话网实现自动报警[1]。

随着生活水平的提高,液化石油气、管道煤气、管道天然气进入了大多数家庭,各种家用电器也得到了广泛的使用,人们在享受这些现代化设施带来的便利的时候,也增加了火灾隐患和有害气体中毒的危险。这时,传统的家庭住宅显然已经不能满足人们的需求。人们迫切需要一种智能型的家庭安全防范报警系统,能可靠的进行日常安全防范工作,及时发现各种险情并通知户主,以便将险情消灭在萌芽状态,这样人们便可安心工作,同时也保证了居民的生命财产不受损失。因此家庭安防系统设计与开发具有很强的研究价值,是未来智能康居工程的基本要求。

智能化安防技术随着科学技术的发展于进入二十一世纪信息技术的腾飞已迈入了一个全新的领域,没有安防技术的社会就会显得极不安全,世界科学技术的前进和发展就会受之影响。智能化安防技术的测量必须依据国家安全标准和相关规范的方法正确执行,并以相关的规定标准极限参数作为依据[2]。

2

毕业论文

目录

引言

第一章 绪论 ------------------------------------------------------------------ 4

1.1 设计应用背景 ----------------------------------------------------------- 4 1.2 研究目的和意义 --------------------------------------------------------- 5 1.3 国内外研究现状和发展趋势 ----------------------------------------------- 5 第二章 系统工具介绍 ---------------------------------------------------------- 8

2.1 AT89C51简介 ----------------------------------------------------------- 8

2.1.1 主要特性 --------------------------------------------------------- 8 2.1.2 管脚说明 --------------------------------------------------------- 9 2.1.3 振荡器特性 ------------------------------------------------------ 10 2.1.4 芯片擦除 -------------------------------------------------------- 10 2.1.5 串口通讯 -------------------------------------------------------- 11 2.2 C语言在开发单片机产品中具有的突出优点 -------------------------------- 13 2.3 Keil C51集成开发环境简介 --------------------------------------------- 14 第三章 系统介绍及电路设计 --------------------------------------------------- 16

3.1 系统功能介绍 ---------------------------------------------------------- 16 3.2 系统方案介绍 ---------------------------------------------------------- 16

3.2.1 系统构成 -------------------------------------------------------- 16 3.2.2 人体红外传感器电路 ---------------------------------------------- 17 3.2.3 可燃气体传感器电路 ---------------------------------------------- 19 3.2.4 脉冲拨号报警电路 ------------------------------------------------ 20 3.2.5 语音电路 -------------------------------------------------------- 21 3.2.6 声光报警电路 ---------------------------------------------------- 23 3.2.7 电路设计 -------------------------------------------------------- 24

第四章 软件设计 ------------------------------------------------------------- 25

4.1 主程序及流程图 -------------------------------------------------------- 25 4.2 各子程序模块 ---------------------------------------------------------- 27

4.2.1 INT0外中断服务子函数模块 ---------------------------------------- 27 4.2.2 INT1中断服务子函数模块 ------------------------------------------ 27 4.2.3 燃气检测子函数模块 ---------------------------------------------- 28 4.2.4 全面检测子函数模块 ---------------------------------------------- 29 4.2.5 拨号子函数模块 -------------------------------------------------- 30 4.3 应用说明 -------------------------------------------------------------- 30

4.3.1 系统硬件安装说明 ------------------------------------------------ 30 4.3.2 系统工作过程说明 ------------------------------------------------ 31

结论 ------------------------------------------------------------------------- 32 致谢语 ----------------------------------------------------------------------- 33 参考文献 --------------------------------------------------------------------- 34 附录1 ------------------------------------------------------------------------ 35 附录2 ------------------------------------------------------------------------ 40

3

毕业论文

第一章 绪论

1.1 设计应用背景

随着社会的发展和科学技术的进步,数字网络生活时代已经到来。在这个时代,家庭现代化、物业管理智能化和社区服务信息化的必然发展趋势使得智能社区的出现成为必然。然而智能社区必不可少的就是智能安防系统,本设计就是以智能社区的一栋别墅为设计背景,来实现自动报警的安防系统。通过模拟别墅内键盘输入模块、数码管显示模块、传感器触发电路及传感器个数、拨号电路等,采用 AT89C51 单片机为核心控制器, 可同时检测放置在多个重点位置(如门、 窗等)的传感器信号,对住宅中防盗、防火传感器的报警信号进行采集和监测,当出现被测监点有人进入、 燃气泄露或火灾等事故发生时,传感器将警情信号传给系统,在系统给出声光报警的同时,可通过现有固定电话网向预先设定的号码台或人(如110,119 等其他号码)实现自动拨号报警,同时及时通知小区保安室,最大程度的保证小区居民的生命和财产安全。

报警系统包括防盗、消防、气体涉漏报警和紧急按钮。防盗一般是在家庭的入口,如门、窗安装传感器,在室内安装红外线传感器;消防一般是在室内安装烟雾传感器气体泄露一般是在厨房、洗手间安装气体传感器;紧急按钮是提供给家庭成员有紧急事情时通知管理处的按钮。传感器一旦发生报警,户内要响报警声,同时可自动通知小区管理处。

家庭防盗报警子系统和整个家庭网络紧密整合,可以通过安防系统中的报警触发家庭网络中的任何一个设备的动作或状态。在住宅内适当的位置配置一些传感器:包括双鉴移动探测器、玻璃破碎探测器、声音探测器、门磁开关等,可以设定当这些传感器处在某种状态时,执行一系列的动作。例如,当家中有非法闯入时,通过智能电话控制器进行远程报警、通过灯光控制单元将灯光打开。火灾报警系统通常由火灾(感烟和感温) 探测器、火灾报警装置、燃气泄漏探测器及智能监控终端等组成。火灾探测器测试实时检测监控点的温度和烟度,并将实时数据传输到智能数据终端进行实时处理,并根据数据处理结果控制消防和报警装置的联动,实现实时报警和自动消防。同时智能监控终端通过传输线将灾情信息传输到小区管理中心,防止事态的蔓延。

这样的设计具有以下优点: ·自动拨号报警;

·可根据不同用户的需要, 对系统任意扩展; ·安装使用方便, 有较高的性价比。

目前许多人对智能家居安防系统的功能认识不足,许多设计师也缺乏相应的专业知识去向业主推广,导致一部分实际上有需求的业主对智能家居安防系统还一无所知。但是近年来,

4

毕业论文

低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。P3口也可作为AT89C51的一些特殊功能口,如下表所示:

表2-1 P3口的特殊功能

口管脚 P3.0 P3.1 P3.2 P3.3 备选功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) 口管脚 P3.4 P3.5 P3.6 P3.7 备选功能 T0(记时器0外部输入) T1(记时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) ·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:来自反向振荡器的输出[5]。

2.1.3 振荡器特性

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

2.1.4 芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可

10

毕业论文

选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

2.1.5 串口通讯

单片机的结构和特殊寄存器,这是编写软件的关键。至于串口通信需要用到SCON、TCON、TMOD、SCON等特殊功能寄存器,它们各自所代表的意义以下一一说明。

SBUF数据缓冲寄存器,这是一个可以直接寻址的串行口专用寄存器。SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。

SCON串行口控制寄存器,通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。它的各个位的具体定义如下:

SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式如下表所示:

表2-2 串行口的工作模式

SM0 0 0 1 1 SM1 0 1 0 1 模式 0 1 2 3 功能 同步移位寄存器 8位UART 9位UART 9位UART 波特率 fosc/12 可变 fosc/32或fosc/64 可变 在这里我们只说明最常用的模式1是。表中的fosc代表振荡器的频率,也就是晶振的频率。UART为(Universal Asynchronous Receiver)的英文缩写。

SM2在模式2、模式3中为多处理机通信使能位;在模式0中要求该位为0。

REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。REM是由软件置位或清

11

毕业论文

零。如果在一个电路中接收和发送引脚P3.0、P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0来禁止接收,在子程序结束处加入REM=1再次打开串口接收。大家也可以用上面的实际源码加入REM=0来进行实验。

TB8发送数据位8,在模式2和3是要发送的第9位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。

RB8接收数据位8,在模式2和3是已接收数据的第9位。该位可能是奇偶位,地址/数据标识位。在模式0中,RB8为保留位没有被使用。在模式1中,当SM2=0,RB8是已接收数据的停止位。

TI发送中断标识位。在模式0,发送完第8位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI置位后,申请中断,CPU响应中断后,发送下一帧数据。在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。

RI接收中断标识位。在模式0,接收第8位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU取走数据。但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。同样RI也必须要靠软件清除。常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位1。它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有两个定时器:定时器0和定时器1,而定时器2是89C52系列芯片才有的。

波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷10=960字节。51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12MHZ的晶振来计算,那么它的波特率可以达到1MHZ。模式2的波特率是固定在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD为1,波特率为focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1或2(52 芯片)的溢出速率。

那么我们怎么去计算这两个模式的波特率设置时相关寄存器的值呢?可以用以下的公式去计算:

12

毕业论文

波特率=(2SMOD÷32)×定时器1溢出速率 (2-1) 上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1作为计数,TH1作为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2下定时器1溢出速率的计算公式如下: 溢出速率=(计数速率)/(256-TH1) (2-2)

上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加1,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12MHZ的晶振用在51芯片上,那么51的计数速率就为1MHZ。通常用11.0592MHZ晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600的波特率,晶振为11.0592MHZ和12MHZ,定时器1为模式2,SMOD设为1,分别看看那所要求的TH1为何值。晶振为11.0592MHZ时,代入公式9600=(2÷32)×((11.0592MHZ/12)/(256-TH1))计算,可得TH1=250;晶振为12MHZ时,代入公式9600=(2÷32)×((12MHZ/12)/(256-TH1))计算,可得TH1≈249.49。 上面的计算可以看出使用12MHZ晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592MHZ的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计[6][7]。

2.2 C语言在开发单片机产品中具有的突出优点

将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如:

·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间;

·片上的数据和程序存储器空间过小和同时存在着向片外扩展它们的可能; ·片上集成外围设备的被寄存器化(即SFR),而并不采用惯用的I/O地址空间; ·8051芯片的派生门类特别多(达到了上百种之多),而C语言对于它们的每一个硬件资源又无一例外地要能进行操作。

这些都是过去以MPU为基础的C语言所没有的。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰苦不懈的努力,终于于90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。目前,8051上的C语言的代码长度,已经做到了汇编水平的1.2~1.5倍。4K字节以上的程度,C语言的优势更能得到发挥。至于执行速度的问题,只要有好的仿真器的帮助,找出关键代码,进一步用人工优化,就可很简单地达到十

13

毕业论文

分美满的程度。如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。今天,确实已经到MCU开发人员拿起C语言利器的时候了。

下面结合8051介绍单片机C语言的优越性:

·不懂得单片机的指令集,也能够编写完美的单片机程序;

·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; ·不同函数的数据实行覆盖,有效利用片上有限的RAM空间;

·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;

·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;

·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;

·提供small、compact、large等编译模式,以适应片上存储器的大小;

·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;

·提供常用的标准函数库,以供用户直接使用;

·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;

·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉; ·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等[4]。

2.3 Keil C51集成开发环境简介

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。KeilC51是美国Keil Software

公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个

功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬

14

本文来源:https://www.bwwdw.com/article/ngm2.html

Top