目 录
摘 要 ....................................................... I ABSTRACT .................................................... II 1 绪论 ....................................................... 1 1.1 序言 .................................................. 1
1.1.1 防盗报警系统的构成 ........................................ 1 1.1.2 防盗报警器的分类 .......................................... 2 1.1.3 防盗报警系统在国内外的发展 ................................ 2 1.1.4 防盗报警系统的发展前景与趋势 .............................. 3
1.2 设计要求与研究内容 .................................... 4
1.2.1 设计要求 .................................................. 4 1.2.2 研究内容 .................................................. 5
2 系统总体设计方案 ........................................... 5 2.1 方案选择论证 .......................................... 5 2.2 主控芯片单片机的选择 .................................. 7 2.3 传感器的选择 .......................................... 7
2.3.1 常见的几种红外传感器介绍 .................................. 7 2.3.2 热释电红外传感器的原理 .................................... 9 2.3.3 热释电红外传感器的选定 .................................... 9 2.3.4 振动位移传感器的选定 ..................................... 10
2.4 显示器工作原理及其选择 ............................... 11 2.5 时钟芯片DS1302的介绍 ................................ 13 2.6 外扩存储器AT24C02的介绍 ............................. 14 3 系统硬件设计 .............................................. 15
基于单片机的家庭防盗报警系统设计
3.1 用户端探测器设计 ..................................... 15 3.2 LCD显示电路设计 ..................................... 16 3.3 报警执行电路设计 ..................................... 17 3.4 时钟电路设计 ......................................... 18 3.5 晶振与复位电路设计 ................................... 18 3.6 电源电路设计 ......................................... 19 3.7 外扩存储电路设计 ..................................... 20 3.8 键盘电路设计 ......................................... 22 4 系统软件设计 .............................................. 23 4.1 软件设计分析 ......................................... 23 4.2 系统软件程序设计 ..................................... 23
4.2.1 LCD显示程序设计 .......................................... 23 4.2.2 系统初始化程序设计 ....................................... 24 4.2.3 报警系统程序设计 ......................................... 25 4.2.4 查询记录程序设计 ......................................... 25 4.2.5 删除记录程序设计 ......................................... 27 4.2.6 调整时间程序设计 ......................................... 28 4.2.7 定时中断0程序设计 ....................................... 30 4.2.8 外部中断0程序设计 ....................................... 30 4.2.9 外部中断1的程序设计 ..................................... 32 4.2.10 4*4矩阵扫描键盘程序设计 ................................. 32
结束语 ...................................................... 34 致 谢 ...................................................... 35 参考文献 .................................... 错误!未定义书签。 附 录 ...................................................... 37
基于单片机的家庭防盗报警系统设计
基于单片机的家庭防盗报警系统设计
摘 要
防盗报警系统的设计是为满足现代住宅防盗的需要所设计的家庭式电子防盗系统。
防盗报警系统采用了由热释电红外传感器和振动位移传感器构成的复合式传感器,这种防盗器安装隐蔽,同时它的信号经过单片机系统处理后方便和PC机通信,便于多用户统一管理。防盗报警系统设计包括硬件和软件设计两个部分。硬件部分设计主要包括检测电路接收信号,LED控制电路控制发光及驱动执行报警电路执行报警等。软件部分设计主要包括中断、定时等程序设计来实现声光报警的作用。此设计实现的功能简单而实用。当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来。当有人闯入时,传感器将探测到动作,设置在监测点上的探头将人体辐射的红外光谱和振动的位移变换成电信号。此信号经放大电路、比较电路送至门限开关,打开门限阀门送出TTL 电平,然后经锁存器送至AT89C51单片机,又经单片机处理运算后驱动执行报警电路使警号发声。
关键词 单片机;红外传感器;信号接收;报警电路
I
基于单片机的家庭防盗报警系统设计
THE DESIGN OF FAMILY ANTI-THEFT ALARM SYSTEMS BASED ON SCM
ABSTRACT
The design of anti-theft alarm system is for the family of electronic security systems designed to meet the needs of modern residential burglar.
Anti-theft alarm system uses the combination sensor which consists of Pyroelectric infrared sensor and Vibration transducer for displacement,the fixing of this alarm is covert, after has been processed by SCM, the signal of alarm communicates with PC, which is convenient for uniform management. Anti-theft alarm design includes hardware part and software part.The hardware part of the design includes detection circuit receiving the signal, the LED control circuit to control light-emitting and driving the implementation of the implementation of the alarm circuit to alarm.The software part of the design includes programs like interrupt,timing to achieve the role of acousto-optic alarm,etc.The functions of the design is simple and pratical.When people go out,we can set the alarm system in the conditon of protection ,the detector begins to work. Pyroelectric infrared sensor will detect the action when people break in ,and the infrared probe setted in the observing point will convert the infrared radiation and the displacement of the vibration from the human body into the electrical signal.The signal is sent to the threshold switch through amplifier circuit and comparison circuit,then open the threshold valves and send out the TTL level,then send it to the AT89C51 SCM via the latch,and make the performing alarm circuit sounding via the processing oprations of the SCM .
KEYWORDS SCM;infrared sensor;signal receiving;alarm circuit
II
基于单片机的家庭防盗报警系统设计
1 绪论
1.1 序言
随着社会经济的飞速发展,人们对其住宅的要求也越来越高,表现在不仅希望拥有舒适的住所,而且对安全性、智能性等方面也提出了更高的要求。这时,传统的家庭住宅显然己经远远不能满足人们的需求。人们迫切需要一种智能型的家庭防盗报警系统,能可靠的进行日常安全防范工作,及时发现各种险情并通知户主,以便将险情消灭在萌芽状态,这样人们便可安心工作,同时也保证了居民的生命财产不受损失。于是有关家庭、办公室和仓库等处的安全防范和自动报警系统的开发研制日益被科研单位和生产厂家所重视。
随着电子通讯技术的飞速发展,单片机以其具有体积小、价格低、集成度高、性价比高等突出优点已在工业控制、智能仪表、数控机床、数据采集以及各种家用电器等方面得到了广泛应用。因此,利用单片机和一些简单的外围器件来开发种适合于家庭的低价位、运行可靠的智能型安全防盗报警系统,对室内出现入室盗窃等自动发出报警信息并通知户主进行及时处理已经势在必行。红外线作为一种不可见光,有很强的隐蔽性和保密性,因此在防盗、警戒等安保装置中得到了广泛的应用。红外报警器大多数采用国外的先进技术,其功能也非常先进。其中包括被动式热释电型红外报警器,还有红外监控无线报警器、超声波防盗报警器、红外线防盗报警器、高灵敏红外报警器、触摸式延时防盗报警器、 触摸式防盗报警器、红外报警器、 红外线声光报警器等。
为满足现代住宅防盗的需要而设计的基于单片机的家庭防盗报警系统,它在以前的防盗器基础上进行了很大的改进,不但可以用于单一的住宅区,也可以规模用于比较大规模住宅区的防盗。它的工作性能好,不易出现不报和误报现象,安全可靠。不仅如此,它使用了单片机做信号处理器,这样非常有利于与计算机相连接,利用计算机统一管理,使整个小区的住户基本情况、资料等在计算机内存储起来,方便来访人的查询和保安人员的统一管理。
1.1.1 防盗报警系统的构成
防盗报警系统是用物理方法或电子技术自动探测发生在布防监测区域内的侵入行为,产生报警信号,并提示值班人员发生报警的区域部位,显示可能采取对策的系统。防盗报警系统是预防抢劫、盗窃等意外事件的重要设施。一旦发生突发事
1
基于单片机的家庭防盗报警系统设计
件,就能通过声光报警信号在安保控制中心准确显示出事地点,便于迅速采取应急措施。防盗报警系统与出入口控制系统、闭路电视监控系统、访客对讲系统和电子巡更系统等一起构成了安全防范系统。
防盗报警系统由探测器、传感器、控制器、报警器、显示器几部分构成。控制器实现对热释电红外探测器和振动位移传感器的循环扫描,并控制报警信号处理电路作出相应状态处理,如果有报警信号的话,延时1~2秒对该端口进行一次扫描确保真的有险情时立即发出报警信号,控制报警电路报警,同时通过液晶显示器显示单元显示具体的事发位置。
1.1.2 防盗报警器的分类
报警探测器按工作原理主要可分为红外报警探测器、微波报警探测器、被动式红外/微波报警探测器、玻璃破碎报警探测器、振动报警探测器、超声波报警探测器、激光报警探测器、磁控开关报警探测器、开关报警探测器、视频运动检测报警器、声音探测器等许多种类。
报警探测器按工作方式可分为主动式报警探测器和被动式报警探测器。 报警探测器按探测范围的不同又可分为点控报警探测器、线控报警探测器、面控报警探测器和空间防范报警探测器。
防盗探测器是否采用电源分类可分为无源和有源两种。从防盗探测器与报警主机的连接方式可分有线与无线。除了以上区分以外,还有其他方式的划分。在实际应用中,根据使用情况不同,合理选择不同防范类型的报警探测器,才能满足不同的安全防范要求。报警探测器作为传感探测装置,用来探测入侵者的入侵行为及各种异常情况。在各种各样的智能建筑和普通建筑物中需要安全防范的场所很多。因此,就需要各种各样的报警探测器,以满足不同的安全防范要求。
1.1.3 防盗报警系统在国内外的发展
在我国,家庭智能报警是一项重要内容,报警器应具有多个探测器接口,可接收红外及微波探测器、感烟探测器、温度探测器、煤气泄漏探测器等传来的报警信号,然后通过通讯网络将报警信息传送到相关人的通讯设备上,以使灾情得到及时处理,保护人们的生命财产安全。
国内报警设备主要是在两方面发展较快,一方面是探测器技术和探测器的发展,一方面是远程报警系统的发展。探测器的发展主要表现在出现了被动红外、超
2
基于单片机的家庭防盗报警系统设计
声波和微波三种不同的探测技术。但前途的是复合式探技术,即在同一个封装盒里安装两种以上不同的探测器,两者组合后误报率将会大大降低。
目前我国有关报警系统主要就是无线式系统。它具有安装方便、简单,一次性投资小的特点,但它存在覆盖面积小、误报率高等问题,使用场合受到一定限制。但由于此类产品具有体基于彩信的无线红外防盗报警系统的硬件设计.体积小、耗电低、成本低、功能单一等优点,适合住宅小区的防盗报警。
在北美,从上世纪初报警呼救箱放置在街头巷尾,在呼救时发出声响提示,以寻求附近警察的帮助;同时,这种呼救箱直接连接到附近的警局,使得稍远一些的警察也能够收到呼救信息。随后,由于通信技术的发展,提供远程通信服务的电报公司加入到这个行业中,从而使得报警信息可以通达到更远的地方;不过,这种电报方式毕竟难以普及,所以稍后出现的电话理所当然地成为报警通讯的主要手段。而此后自动拨号系统的出现以及电话普及到千家万户,更使得通过电话线报警的方式得到了前所未有的发展。
目前,对北美的安防产业来说,最成功的经营模式就是联网报警服务模式,联网报警将整个北美的安防产业从横向到纵向进行整合串并,形成了一个集中许多高科技手段和产业化管理水准的一体化综合性产业。比如世界排名第一,北美最大的安防跨国公司一美国棋诺亚公司,它在世纪年代开始搞简单的防盗报警,其当时的业务范围和技术水平跟中国现在很多安防企业是相当的。到70年代,它对其产业的整体发展方向做了很大的调整,变为联网报警服务商,建立了首家网管中心,尤其引用了大量的网管技术、系统集成技术和电子技术,现己成为十分先进的联网报警服务平台。
从以上过程来看,报警行业的发展是以工业技术发展为基础的,只有具备良好的通信手段,才能够把各地的报警信息汇聚到相应的权威部门,然后由权威部门负责分配有限的警力来帮助到所有的社会个体。在现代计算机技术、自动控制技术和现代通信技术的支持下,安防系统也是一个很完善的计算机控制系统,防盗报警系统,电视监控系统,声音系统,门禁系统和巡更系统统一由一台计算机进行管理,标志我国的安防事业进入一个新阶段。
1.1.4 防盗报警系统的发展前景与趋势
传统的机械式家居防卫在实际使用中暴露出一些明显的问题,如:影响楼房美
3
基于单片机的家庭防盗报警系统设计
观,市容整洁;影响火灾救援通道;给犯罪分子提供了便利的翻越条件;时间久了会有高空坠物的危险等。因此,作为新一代的智能安全防盗报警器系统就应运而生,并日益受到广泛的重视和运用。
数字化、无线化、集成化是防盗报警系统进一步发展的要求,所以我们不难发现防盗报警的技术发展趋势:更稳定可靠:如探测器可抗RFI/EMI(电磁干扰/射频干扰)、防雷电等,以适应恶劣气候;更多样的功能:如探测器可调频、防遮挡、防喷盖、防破坏等;更精美、小巧的外观:以符合品味日益提高的室内装潢需求;更智能化的设计:方便地设/撤防,人性化的操作界面;更强大的联网功能;更方便的扩展性。上述发展趋势,事实上都建立在数字化、无线化、集成化的三大核心技术基础上。
1.2 设计要求与研究内容
1.2.1 设计要求
现时社会治安问题严峻,各种入室抢窃、偷盗事件时有发生。防盗报警系统是利用探测器装置对建筑物内外重要地点和区域进行布防、探测。当探测器探测到非法入侵,报警器工作状态变为报警状态,产生报警声。本论文的目的就是设计出一种符合上述要求的防盗报警系统。本文所研制的报警系统的功能要求如下:
主控芯片:AT89C51,工作在12MHz时钟频率;
检测信号:采用复合式防盗传感器,热释电红外传感器和振动位移传感器并接使用,增加报警可靠性,下降沿触发,低电平保持宽度 ≥ 1ms,监测负载 ≥ 600Ω;
输入通道:16路监测信号,220V交流电源输入; 报警方式:声光报警,蜂鸣器和LED;
显示方式:2*16字符液晶显示,LED电源指示,LED报警显示; 输入方式:4*4矩阵键盘和系统复位独立按键; 系统电源:工作电源 220V交流输入,3.6V备用电源;
相关功能:正常情况下显示当前时间,时间可调;实时对16路输入信号异常产生声光报警,并显示当前异常通道和产生异常时间并记录相应时间,报警时长可调(0—198s,199不自动停止),每通道能够记录2次异常时间(最早和最新时间);
具有记录查询和删除功能,能够查询每路历史异常记录,并能删除记录
4
基于单片机的家庭防盗报警系统设计
系统对自身部分数据处理错误能产生提示。
1.2.2 研究内容
本课题需要研究的内容主要有以下几个方面:
根据系统功能要求且考虑产品的性价比,进行系统的整体方案设计。该方案采用模块化设计方法,以方便系统的调试和用户的使用。
系统硬件设计包括芯片的选型、所选芯片的功能、芯片外围电路的合理设计。主要内容有单片机的选择、主机电路的设计、传感器的选择、报警电路的设计。
下面分3章从系统总体的方案设计、系统的硬件设计、系统的软件设计对本设计做详细的介绍。
2 系统总体设计方案
2.1 方案选择论证
该系统设计方案有以下两种:
方案一:显示方式采用数码显示,占用I/O较多,体积较大,采用扫描显示占用机时,采用静态显示则需要更多芯片;数据存储直接利用单片机内部RAM存储记录数据;按键方式采用中断矩阵键盘,相同按键占用I/O口较少,中断方式不占用多余机时,但多占用一位中断口;16路信号检测方式采用扫描检测,占用机器周期,存在扫描间隔时间,而且需多出扫描子程序;时间运行方式采用单片机内部定时中断计时,存在加大误差,而且完成日的处理程序复杂。
方案二:显示方式采用1602液晶显示模块,仅需8位数据线和3位控制线,占用I/O口较少,而且能显示字符,显示位数更多,不需要其余外围芯片;数据存储利用外扩存储器;按键方式采用扫描矩阵键盘,相同按键占用I/O口较少,扫描键盘占用机时;16路信号检测方式采用中断方式,能及时发现并处理异常,主程序以及子程序省掉相关扫描子程序;时间运行方式采用外部时钟芯片,误差小,能够够自动校正日期。
通过比较,方案二能满足我们实时快捷的要求,更加简单有效,故本设计选择方案二。因为本系统要存储每路两次报警历史记录,每次记录占用7字节空间,则共需要224B地址空间,AT89C51内部仅128B内存空间,需要外扩存储器。此处选择外扩AT24C02可擦除存储器,具有256B存储空间,采用I2C总线方式,仅占用2位I/O口。采用扫描式4*4扫矩阵键盘,仅当需要输入时扫描键盘。采用中断
5
基于单片机的家庭防盗报警系统设计
方式监测16路信号,当信号发生异常时,进入中断,扫描16路检测信号输入状况,并对信号进行计算处理,判断异常通道号,并记录相关数据,然后出发报警中断,进行报警提示。采用外部时钟芯片精确计时,单片机定时中断同时计时,每过24点自动从外部时钟芯片DS1302校准时间。
本设计包括硬件和软件设计两个部分。模块划分为数据采集、信号放大处理、人工键盘控制、报警执行、报警显示等子模块。系统电路结构可划分为:传感器检测、报警执行电路、单片机控制电路、LCD控制显示电路及相关的控制管理软件组成。用户终端完成信息采集、数据处理、数据传送、功能设定、本地报警、本地显示等功能。从系统设计的要求来分析该设计构成框图如图2—1所示:
时钟电路 外扩存储电路 单片机 AT89C51 蜂鸣器报警 LED发光报警 信号检测电路 键盘 LCD显示
图2—1 总体设计框图
整个系统由AT89C51、键盘、LCD显示屏、DS1302时钟芯片、AT24C02存储芯片、检测信号输入、声光报警电路组成。通过结构框图系统可看出:以AT89C51为系统中心,单片机与AT24C02交换历史记录信息,从DS1302获得校准时间,通过4*4矩阵键盘扫描输入相关信息,通过LCD 显示屏显示相关信息,检测信号异常时对单片机申请中断,单片机通过相关处理产生异常信息,通过声光报警(蜂鸣器,报警指示灯)。
本系统电源可采用220V交流电输入,也可直接提供5V电源,DS1302可根据需要提供备用电源(3.6V纽扣电池或者大电容)。系统的单片机时钟采用12MHz晶振;4*4矩阵键盘输入行线接入P1.0—P1.3口,列线接入P1.4—P1.7口;时钟芯
6
基于单片机的家庭防盗报警系统设计
片DS1302时钟SCLK引脚接MCU P1.6口,复位RST引脚接P1.7口,数据I/O引脚接P3.6口;AT24C02为I2C双总线传输方式,时钟信号SCK接P2.2口,数据线SDA接P2.3口;P3.4口接报警系统的蜂鸣器驱动,蜂鸣器采用三极管驱动,并联续流二极管防止三级管击穿;P3.7口接报警系统的报警指示灯。单片机的P0口做数据输入输出口;LCD的数据输入、输出和16路检测信号的输入都经过P0口,LCD三位控制线分别连接P2.5、P2.6、P2.7;16路监测信号经过74LS373锁存输入给单片机。
2.2 主控芯片单片机的选择
所谓单片机就是一块芯片上集成了CPU、ROM、RAM、定时/计数器和多种I/O接口电路等而具有一定规模的微型计算机。单片机与通用微型计算机相比较,它在硬件结构、指令设置上均有其独到之处。
单片机在控制应用领域中,有如下几方面的优点:体积小,成本低,运用灵活,易于产品化,它能方便地组成各种智能化的控制设备和仪器,做到机电仪一体化;面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得更佳的性能价格比;抗干扰能力强,适应温度范围宽,在各种恶劣的环境下都能可靠地工作,这是其他机种无法比拟的;实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高。
AT89C51是一种带4KB FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。故此设计采用AT89C51。
2.3 传感器的选择
2.3.1 常见的几种红外传感器介绍
红外探测器
红外探测器按照探测的机理的不同,可以分为热探测器和光子探测器两大类。热探测器是利用辐射热效应,使探测元件接收到辐射能后引起温度升高,进而使探
7
基于单片机的家庭防盗报警系统设计
测器中依赖于温度的性能发生变化。检测其中某一性能的变化,便可探测出辐射。多数情况下是通过热电变化来探测辐射的。当元件接收辐射,引起非电量的物理变化时,可以通过适当的变换后测量相应的电量变化。
红外测温产品
50多种红外测温仪和非接触红外测温系统可满足不同行业用户的特殊需求,提供最优非接触红外测温解决方案。在高性能和高品质的红外测温产品市场,来自德国的HEITRONICS以其在尖端领域应用中良好的品质纪录,被广泛公认为是世界一流的红外测温产品供应者而受到信任。
人体热释电红外传感器
在电子防盗、人体探测器领域中,被动式热释电红外探测器的应用非常广泛,因其价格低廉、技术性能稳定而受到广大用户和专业人士的欢迎。
无线红外传感器
无线红外传感器又名无线红外探测器,无线智能幕帘/广角红外探测器采用美国军用红外传感器进行信号采集探测与摩托罗拉芯片组合集成单片机智能技术控制,自动温度补偿、微电流省耗、无误报、无漏报、探测距离远、工作稳定、性能可靠、外形精巧、美观大方。机内设置电源外拨开关,外出设防可以接通电源,达到更加省电的效果。它是根据人体红外光谱而工作,当人体在其接收范围内活动时,探测器输出报警信号,广泛用于银行、仓库和家庭等场所的安全防范。它是目前可靠性较高的产品,红外探测部分采用报警器用传感器和红外专用处理IC。高频发射部分采用最新声表面(S)稳频技术,配合成熟的外围电路,使得产品具有红外探测灵敏度好、误报率低、高频发射频率稳定、发射功率大的特点。
总而言之,不同类型的探测器用不同的手段探测各种入侵行为,如人体的移动、物体的震动、玻璃的破碎和门窗的开关等,系统将所得的信号进行逻辑判断,发出警报。常用的传感器有对射红外探测器、磁控管(门磁)、震动开关、被动红外探测器(PIR)、双鉴探测器、烟感、温感探测头等。这些传感器不仅可以对室内的门、窗、敞开的阳台、固定玻璃、保险箱等的异常情况进行监测,而且还能对家中的火警进行监测。在家中无人的情况下还具有探测有无物体移动的功能,以发现家中是否有偷窃等异常情况。这些器件有效地为控制单元传送现场的资料,提供报警控制。而本设计采用由热释电红外线传感器和振动位移传感器构成的复合式传感器,通过探测人体特有的红外线和人体的运动来检测盗情。
8
基于单片机的家庭防盗报警系统设计
2.3.2 热释电红外传感器的原理
热释电红外(PIR)传感器是一种能检测人体发射的红外线而输出电信号的传感器。它能组成防入侵报警器或各种自动化节能装置,它能以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出,将这个电压信号加以放大,便可驱动各种控制电路。其工作电路原理及设计电路如图2—2所示, 在VCC电源端利用C1和R2来稳定工作电压,同样输出端也多加了稳压元件稳定信号。当检测到人体移动信号时,电荷信号经过FET放大后,经过C2,R1的稳压后使输出变为高电位,再经过NPN的转化,输出OUT为低电平。
R2 C1 Q1OUT Y2RS C2 R1Y1 FETR3Q2NPN R4Vcc3vVCC12v
图2—2 热释电红外传感器原理图
热释电红外传感器是基于热电效应原理的热电型红外传感器。其内部的热电元由高热电系数的铁钛酸铅汞陶瓷以及钽酸锂、硫酸三甘铁等配合滤光镜片窗口组成,其极化随温度的变化而变化。为了抑制因自身温度变化而产生的干扰,该传感器在工艺上将两个特征一致的热电元反向串联或接成差动平衡电路方式,因而能以非接触式检测出物体放出的红外线能量变化,并将其转换为电信号输出。
热释电红外传感器由传感探测元、干涉滤光片和场效应管匹配器三部分组成。设计时应将高热电材料制成一定厚度的薄片,并在它的两面镀上金属电极,然后加电对其进行极化,这样便制成了热释电探测元。由于加电极化的电压是有极性的,因此极化后的探测元也是有正、负极性的。
2.3.3 热释电红外传感器的选定
9
基于单片机的家庭防盗报警系统设计
目前常用的热释电红外传感器型号主要有P228、LHI958、LHI954、RE200B、等。热释电红外传感器通常采用3引脚金属封装,各引脚分别为电源供电端(内部开关管D极,DRAIN)、信号输出端(内部开关管S极,SOURCE)、接地端(GROUND)。本设计传感器采用双元热释电红外传感器RE200B,该传感器翻用热释电材料极化随温度变化的特殊探测红外辐射,并采用双灵敏元互补方法抑制干扰,以提高传感器的工作温度。传感器RE200B内部电路图如下:D脚接工作电压,其工作电压低且范围宽(2.2-15V);S脚为输出源极电压;GND脚为接地。如图2—3所示,为热释电红外传感器RE200B的内部电路框图。
图2—3 热释电红外传感器RE200B的内部电路框图
热释电红外传感器RE200B的主要工作参数: 工作电压:常用工作电压范围为3~15V; 工作波长:通常为7.5~14um;
源极电压:通常为0.4~1.1V,R约为47kΩ; 输出信号电压:通常大于2.0V; 检测距离:检测距离约为6~10m; 水平角度:约为120°; 工作温度范围:-10℃~40℃。
2.3.4 振动位移传感器的选定
本系统采用ND—1型振动位移传感器,它是一种集振动和位移于一体的全方位传感器。它的技术指标及参数见表2—1。其内部采用先进的固态加速度检测器件,
10
基于单片机的家庭防盗报警系统设计
对外来振动十分敏感。图2—4是ND—1型振动位移传感器的内部组成框图,它由振动和位移传感元件、灵敏度限制电路、检测控制电路、延时电路和输出级等构成。
由于器件内部集成度很高,外围电路相当简单,图中的C是延时控制电容,取值越大,延时就越长,反之则越短,一般取值0.1uF~10uF,这里取值为4.7uF。当人体在不断运动时,输出为高电平,并通过内部电路延时,当人体停止运动时,输出转为低电平。R是外接灵敏度设定电阻,取值在51K~100K之间,阻值越大,灵敏度就越高,此电阻可以不接,这时传感器灵敏度最高。
图2—4 ND—1型振动位移传感器的内部
表2—1 振动位移传感器技术指标及参数
工作电压 静态电流 灵敏度 3V—12V 3V时500毫安 0.1g 检测方向 全向 位移检测依据 加速度 -30℃~65℃ 12×22×32mm 工作温度 体积 2.4 显示器工作原理及其选择
LED数码管在单片机系统中应用非常普遍,其由发光二极管组成。LED数码管有静态和动态两种方法。
所谓静态显示就是当显示器显示某一个字符时,相应的发光二级管恒定地导通或截止。这种显示方式每一位都需要有一个8位输出口控制,静态显示时,较小的
11
基于单片机的家庭防盗报警系统设计
电流就可以得到较高的亮度且字符不闪烁,所以可以采用8255A的输出口直接驱动。当显示器位数较少时采用静态显示的方法是适合的。当位数较多是,用静态显示所需I/O口太多,一般采用动态显示方法。
所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示的亮度既与导通电流有关,也与点亮时间和间隔时间有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示的位数不大于8位,则控制显示器公共位只需要一个I/O口(称为扫描口),控制显示器的各位所显示的字型也需一个8位口(称为段数据口),为了防止闪烁,显示的时间在1~2ms。
LCD是低电压驱动,极微小功耗,与CMOS功耗电路可直接匹配,此外其极薄的扁平结构在极亮的环境光下使用,以及信息容量大,生产容易等,都充分显示了它的优越性能。但是液晶显示一个最大的缺点,是工作温度范围较窄,特别是低湿范围不够,液晶显示器不宜施加直流电压,一般来说,使用液晶显示信息,需要液晶材料或器件,相应的驱动系统和控制系统三者统一。但在本设计中需要使用液晶显示。
1602LCD主要技术参数:显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。
1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,能够同时显示16x02(2行,每行16个)即32个字符,如图2—5为LCD1602引脚排列图:
1脚:VSS为电源地。 2脚:VCC接5V电源正极。
3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4脚:RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。 5脚:RW为读写信号线,高电平读操作,低电平写操作。 6脚:E(或EN)端为使能端。
12
基于单片机的家庭防盗报警系统设计
7~14脚:DB0~DB7为8位双向数据端。 15~16脚:空脚或背灯电源。 15脚背光正极,16脚背光负极。
图2—5 LCD1602
2.5 时钟芯片DS1302的介绍
DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。具有主电源/后备电源双电源引脚,同时提供对备用电源进行涓细电流充电的能力。
DS1302引脚排列如图2—6所示:
1、8脚:VCC2为主电源VCC1为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行;DS1302由VCC1或VCC2两者中的较大者供电;当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。
2、3脚:X1和X2是振荡源,外接32.768kHz晶振。
5脚:RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:RST接通控制逻辑,允许地址/命令序列送入移位寄存器;RST能终止单字节或多字节数据的传送。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。传送过程中RST置为低电平,终止此次数据传送,I/O变为高阻态。上电运行时,VCC>2.0V之前,RST必须保持低电平。
13
基于单片机的家庭防盗报警系统设计
只有SCLK为低电平,才能将RST置为高电平。
6脚:I/O为串行数据输入输出端(双向)。 7脚:SCLK为时钟输入端。
图2—6 DS1302
2.6 外扩存储器AT24C02的介绍
AT24C02为2K位串行CMOS EEPROM,内部含有256个8位字节,有一个16字节页写缓冲器。该器件通过I2C总线接口进行数据和地址的传输,总线数据传送协议I2C规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器,数据传送是由产生串行时钟和所有起始停止信号的主器件控制的,主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。如图2—7为AT24C02引脚排列图:
1、2、3脚:器件地址输入端。输入脚用于多个器件级联时设置器件地址,悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。
5脚:SDA串行数据/地址。双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(WIRE-OR)。
6脚:SCL 串行时钟。串行时钟脚用于产生器件所有数据发送或接收的时钟。 7脚:WP 写保护。WP管脚连接到VCC,内容都被写保护为只读。当WP管脚连接到GND 或悬空允许器件进行正常的读/写操作。
AT24C02的极限参数:工作温度工业级-55℃~+125℃;商业级0 ℃~+75℃;贮存温度-65℃~+150℃;各管脚承受电压-2.0~+2.0V;VCC管脚承受电压-2.0 ~+7.0V;封装功率损耗(Ta=25℃)1.0W;焊接温度(10秒) 300℃;输出短路电流100mA。AT24C02的特性如下:数据线上的看门狗定时器;可编程复位门栏电平; 高数据传送速率为400KHz和1C总线兼容;2.7V至7V的工作电压;低功耗CMOS
14
基于单片机的家庭防盗报警系统设计
工艺;16字节页写缓冲区;片内防误擦除写保护;高低电平复位信号输出;100万次擦写周期;数据保存可达100年;商业级、工业级和汽车温度范围。
图2—7 AT24C02
3 系统硬件设计
3.1 用户端探测器设计
本系统采用复合式传感器对每路的信号进行检测。此传感器由一个热释电红外探测器和一个振动位移传感器构成,两个传感器通过一个或非门连在一起,任何一个传感器接收到报警信号,单片机都会做出反应。这样的设计增加了安全性,减少了漏报的可能性。对于每一路的信号探测输入电路如图3—1所示。而16路检测信号用到了2片4输入双与非门74LS20和4输入或非门74LS25,每4路信号相与取非后对4路与非门输出取或非。检测信号正常情况下为高电平,当一路或者多路信号异常,即跳低电平时,或非门输出低电平,下降沿对外部中断0申请中断,同时74LS373 LE端低电平锁存Dn端信号。外部中断0中断程序扫描P2.0、P2.1,分别置低电平,74LS373为OC低电平时,Qn端输出锁存的信号。16路检测信号输入电路的设计如图3—2所示。
图3—1 检测信号电路的设计
15
3.2 LCD显示电路设计
基于单片机的家庭防盗报警系统设计
图3—2 16路检测信号输入电路的设计
块状态(DUZT)、读数据(DUSJ)、写状态(XIEZT)和写数据(XIESJ),接口为A。
出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩
晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示
具等众多领域。LCD显示电路结构如图3—3所示。1602的驱动程序包含读显示模
色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工
在单片机应用系统中,常使用点阵字符型LCD显示器。液晶显示的原理是利用液
LCD显示器的种类繁多,安排列形状可分为字段型、点阵字符型和点阵图形型。
16
基于单片机的家庭防盗报警系统设计
图3—3 LCD显示电路图
3.3 报警执行电路设计
针对声光报警实现,设计了一种实用化的基于单片机AT89C51的报警执行电路。此电路接受单片机传送来的电平信号,驱动声光报警从而达到报警效果。采用红色发光二极管和压电式蜂鸣器完成声光报警。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。当接通电源后,多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
驱动电路通过P3.4口将高电平信号送至放大电路然后传给蜂鸣器,从而达到声音报警的效果。驱动电路又通过P3.7口将低电平信号送至红色发光二极管的阴极,从而达到光报警的效果。声光报警电路结构如图3—4所示。
图3—4 报警执行电路图
17
基于单片机的家庭防盗报警系统设计
3.4 时钟电路设计
为实现精确的时钟功能并节省单片机I/O口资源,该设计使用专用的接口方式为串行的时钟芯片DS1302,该芯片线路简单、体积小、易于操作,且价格低廉。DS1302与单片机之间能简单的采用同步串行方式进行通信,仅需用到三个口线:RST,I/O,SCLK。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mw。如图3—5所示时钟电路。DS1302驱动程序分为读时间(GET1302)和设置时间(SET1302),时间数据直接放入内存40H—47H或者从内存40H—47H读取。
图3—5 时钟电路图
3.5 晶振与复位电路设计
通过振荡得到一个稳定的时钟频率。利用中断方式可以实现报警持续时间未到
18
基于单片机的家庭防盗报警系统设计
10秒时,用手工按键停止的声光报警的作用。XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
复位则是通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。复位方式是单片机的初始化操作。单片机除了正常的初始化外,当程序运行出错或由于操作错误而使系统处于死循环时,也需要按复位键重启机器。单片机在时钟电路工作以后, 在RST端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。
复位方法一般有上电自动复位和外部按键手动复位以及“看门狗”复位三种类型。“看门狗”电路则是一种集成有单片机的电源监测、按键复位以及对程序运行进行监控,防止程序“跑飞”而出现死机而设计的电路[8]。晶振与复位电路如图3—6所示。
图3—6 晶振与复位电路图
3.6 电源电路设计
本系统电源电路原理图如图3—7所示,系统的电源采用220V交流供电。电网
19
基于单片机的家庭防盗报警系统设计
的220V交流电经桥路整流,电容滤波,送入7805、7809和7812的输入端,最后输出5V、9V和12V的直流电。在电源的两端并联的大电容和小电容起滤波作用。大电容是滤除低频,小电容是滤除高频。在其两端再并入同系列的大小电容可获得很宽频率范围的滤波特性。
下面对三端集成稳压器的作简单的介绍。输出电压固定的三端集成稳压器7800系列组成的电源,CW7800/CW78M00/CW78L00系列的最后两位数字表示该集成稳压器的输出电压值。这类集成稳压器的输出电压有5V、6V、9V和24V等几种。其输出电压的偏差在±2%以内。若考虑输出电流的要求,则在1.5A以内的,应选用CW7800系列的;在0.5A以内的,选用CWM00系列的;小于100MA的,选用CW78L00系列[10]。有正电压输出的78LXX系列的基本电路有:启动电路、基准电压电路、取样比较放大电路和调整电路、保护电路这些部分组成。
图3—7 电源的电路结构
3.7 外扩存储电路设计
AT24C02数据/地址的传输遵循I2C协议,I2C协议为双总线方式,其对时序有严格的要求。如图3—9为读/写周期的时序图,当对AT24C02进行读写操作时,首先向总线发起始命令(拉低SDA),然后向总线发送芯片地址,相应芯片收到呼叫后将返回应答信号,每次向芯片写数据/地址后都应检查应答信号,然后发送片内地址,对芯片进行读写操作,操作完成后发送结束信号(SCL高电平时拉高SDA)。
20
基于单片机的家庭防盗报警系统设计
对AT24C02读写的程序工作在第3组寄存器状态,分为读7字节(R_7DA)、写7字节(W_7DA),输入输出参数为:10H存放I2C操作数据首地址11H存放MCU操作数据首地址,和读1字节(R_BY,参数:R0存放I2C数据地址, A存放结果)、写1字节(R_BY ,参数:R0存放I2C地址,R2存放写入的数据)。 AT24C02的电路结构图如3—8所示。
图3—8 AT24C02的电路结构
图3—9 读/写周期时序
图3—10 数据有效时序
图3—11 起始/停止定义
图3—12 输出应答
21
基于单片机的家庭防盗报警系统设计
3.8 键盘电路设计
4*4矩阵键盘电路结构如图3—13,相对应的按键的键值如表3—1,4*4矩阵键盘按键的功能如图3—14。键盘采用扫描方式,当需要输入时调用键盘子程序扫描键盘,判断是否有按键按下并判断键值,并将键值放入寄存器R4 。若没有按键按下,则按键为空,相对应键值为16。
图3—13 键盘电路结构
7 4 1 8 5 2 0 9 6 3 调时 设置/删除 返回 确认 图3—14 键盘功能 表3—1 对应的按键的键值
S4/7 S3/8 S2/9 S1/15 S8/4 S7/5 S6/6 S5/14 S12/1 S11/2 S10/3 S9/13 S16/10 S15/0 S14/11 S13/12 22
基于单片机的家庭防盗报警系统设计
4 系统软件设计
4.1 软件设计分析
软件是系统的指挥中心,由它来配合控制完成各种预定功能。为了充分发挥AT89C51优越的性能价格比,在设计上尽量做到硬件“软化”,进一步体现软件编程的灵活性,使系统硬件设计得到简化。系统软件采用MCS-51单片机汇编语言编写,采用了模块化结构设计。为增强系统的实时性,对那些偶然事件采用中断方式处理,主程序主要用于系统的控制和管理。
软件设计时,首先是做好准备工作,即读出每个按键的键值,并检查数码管是否可以正确显示所有数字。电路设计时是按模块设计的,软件设计也一样,采用中断子程序方式,首先编写大概的主程序,然后理出所需设计的子程序并逐个分析和设计子程序,编写出子程序后应给予编译检查错误,若有错误再更正,直到通过编译即没有语法错误,等每个子程序编写完以后,再修改主程序完成整体的程序编写,最后在将程序进行调试。
4.2 系统软件程序设计
4.2.1 LCD显示程序设计
本系统显示采用1602显示模块,1062正常工作前对其进行初始化,分为硬件初始化和软件初始化。初始化过程为:上电15ms后对1602写显示模式指令38H(即设置为16*2显示,5*7点阵,8位数据接口),然后对1602写清屏指令。
1602模块显示时,刷新太快时会出现字迹模糊,因此,当显示子程序直接放在程序中循环时,会出现刷新太快而显示不清晰。在本系统中采用查询标志位显示的方法,当需要刷新显示时,置位显示标志位00H,每次循环显示子程序首先查询显示标志位,当需要刷新显示时,则执行刷新显示程序。
显示模块主要分为日期显示、时间显示、提示显示和输入显示等。在此系统中,为了减少显示的程序的大小,运用了显示模块的嵌套,但由于时间关系,程序在优化上还未达到满意的效果,显示程序比较零散,存在大量的冗余。
显示程序模块较多,但都有其基本流程,如图4—1为显示过程的基本流程图。从图中可看出,程序每一次大循环都查询显示标志位,当标志位为0时,则跳过刷
23
基于单片机的家庭防盗报警系统设计
新显示;当标志位为1时,则执行刷新显示程序。每次刷新显示前都执行清屏指令,然后向显示寄存器写数据,每写一次数据或指令之前都要读显示模块的状态字,确定显示模块处于空闲状态(状态字第7位为0)。刷新显示完成后写控制字设置光标显示模式。最后清除标志位00H,通知显示已经刷新完成。
开始 查询标志位:00H=1? YES 清屏 NO 刷新显示 00H=0 结束
图4—1 显示流程
4.2.2 系统初始化程序设计
系统的初始化工作是整个系统能够正常工作的前提,系统的初始化包括相关寄存器的初始化、LCD的初始化、AT24C02的检测以及报警时长的设置等。
如图4—2为初始化的流程图,初始化程序首先设置堆栈SP为60H,设置IE为07H(外部中断0、外部中断1和定时中断0)和中断优先级IP为01H(外部中断0优先级最高);然后初始化LCD显示屏;显示屏初始化完毕则显示设置报警时长,报警时长单位为秒,可设置范围为:0—199(其中199为不自动退出报警);设置完成后系统检查I2C的数据通信,若数据通信失败或者出错,则显示器右上角会显示“E”;2EH、2FH分别写FFH,是为了发生报警时,读取的监测信号异常的位为0,将读取的检测信号与2EH、2FH分别相与,则存在异常的位为0,通过检测位显示当前报警发生异常的通道;最后是从DS1302获取当前时间,并且开中断和启动定时。至此,系统的初始化完成,进入主程序的循环。
24
基于单片机的家庭防盗报警系统设计
开始 设置堆栈SP 中断、中断优先级 初始化LCD 设置报警时长:28H 检查I2C数据通信 设置2EH,2FH为:FFH 开中断,启动定时
结束
图4—2 初始化流程
4.2.3 报警系统程序设计
报警系统负责检测16路信号,并及时对异常发出响应,对异常进行记录等。由外部中断0和外部中断1构成,外部中断0负责检测扫描16路信号并对异常进行处理,外部中断1负责报警,外部中断0的优先级最高,这样不会因为报警状态而对其期间异常造成丢失。由硬件图可知:当16监测信号发生异常时,则此路电平拉低,将对单片机申请中断,同时低电平通知74LS373锁存异常信号;单片机进入中断,分别从两片74LS373取出信号,通过分析处理,将当前报警的通道数存入2EH、2FH,并记录当前异常时间到AT24C02;处理完成后通知外部中断1产生报警。外部中断1进入中断后,首先读取报警时长,然后点亮报警指示灯,并驱动蜂鸣器产生声光报警,报警时LCD显示当前报警时间和通道。当按下确定键或者报警时间到达则退出报警状态,置位P3.1不再进入报警中断并返回主屏。
4.2.4 查询记录程序设计
25
基于单片机的家庭防盗报警系统设计
记录的查询分为总体状况的查询和单通道的查询,总体查询能查询出现异常的通道,并显示该通道出现异常的次数,当某通道有异常记录时,可以选择此路进行详细查询其出现异常的时间。
记录的总体查询可以直观的看出历史记录。其程序流程图如图4—3。程序开始将通道记录数地址、光标显示位置和通道号分别读入R0、R2、R3,当执行上/下跳一路时,相应R0、R2、R3将减/加1,以保持显示和查询的同步。从流程图可以看出,程序的每次大循环都包括显示、键盘查询和按键判断。当相应按键按下时,则程序将做相应的跳转,执行相应动作。当进入某路详细记录查询时,首先判断该通道是否存在记录,即R0所在地内容不为0,然后将R0和R3参数传递给详细查询子程序。
开始 刷新显示? YES NO 刷新显示 YES 跳到上/下一路 YES 上/下一路? NO 查询? NO 返回? YES
结束 进入查询 NO
图4—3 总体查询流程
详细查询为查询选择通道详细的异常记录,当某通道存在异常记录时,进入查询详情,即查询其出现异常的详细时间。系统能记录每通道最多两次历史(最早和最近产生异常时间)。程序从总体查询获得参数记录数地址和通道号R0和R3 ,然后通过计算从AT24C02获取相应数据并显示出来。详细查询程序的流程如图4—4。详细查询读取和显示数据需要数据缓冲区,地址48H—4FH为其提供数据缓存。
26
基于单片机的家庭防盗报警系统设计
开始 计算、读取最早记 扫描键盘 YES 删除数据 删除记录? NO 返回? NO NO YES 下一条? YES NO 记录数为2? YES 计算、读取第二条 扫描键盘 YES 上一条? NO NO 删除记录? YES 删除数据 NO 返回? YES 结束 图4—4 详细查询流程
27
基于单片机的家庭防盗报警系统设计
4.2.5 删除记录程序设计
删除记录程序用于删除当前单通道查询的记录。清空内存数据要对存储芯片进行写操作,将减少芯片的寿命,而且占用机时,故采用删除记录的首地址,若删除的是两条中最早的记录,则后一条记录代替前一条。程序执行删除动作之前,将判断记录数和当前删除记录的位置,若需要进行调整,则现执行读写操作转移数据,然后删除记录数。如图4—5为删除数据流程图。
开始 NO 删除? YES YES 当前删除号NO 调整数据 删除记录
结束
图4—5 删除记录流程
4.2.6 调整时间程序设计
系统时间在内存的地址范围为:40H—47H。时间的调整即为修改此内存段的内容,然后在子程序结束时将此值写入到DS1302,如图4—6为时间调整子程序总体流程图,启动调时时,将关闭系统时钟的运行,然后设置调整时间的初始化工作,时间的调整从年的最高位开始,程序结束时可选择保存此次修改或者直接返回丢弃此次修改,保存修改即为将修改保存到DS1302,然后再从DS1302获取时间数据,放弃修改仅从DS1302获取时间数据覆盖此次修改。如图4—7为月的修改流程图,因为时间数据以BCD码存放,故在修改前要对数据进行调整,然后调用键盘修改数据,最后将修改后的数据调整为BCD码保存到相应内存。
28
基于单片机的家庭防盗报警系统设计
开始 初始化 修改时间 保存修改? YES 保存数据 NO 结束
图4—6 修改时间总流程
开始 获取月数据 跳到年? NO 跳到日? NO 保存数据 YES 修改数据? NO NO 确定/返回? YES 结束 YES 跳到年 YES 跳到日
图4—7 月修改流程
29
基于单片机的家庭防盗报警系统设计
4.2.7 定时中断0程序设计
定时中断0工作在第4组寄存器状态,其程序流程图如图4—8。中断程序完成对时、分、秒的计数,R7完成对秒的计数,每完成一次定时中断则R7加1,R7计数20次则约为1s时间,则对R7清零,如此,完成对时、分、秒的计数。当时间为24时时,中断会从DS1302时钟芯片校准时间,包括年、月、日、时、分、秒的校准。
开始 NO R7加1,R7=20? YES R7=0,40H加1;40H=60? YES 40H =0,41H加1;41H=60? YES 41H =0,42H加1;42H=24? YES 从DS1302获取时间 NO NO NO 结束
图4—8 定时中断0流程
4.2.8 外部中断0程序设计
外部中断0的流程图如图4—9。首先扫描16路检测信号,记录信号状态,然后通过对16路信号进行位判断,计算出异常通道号和AT24C02地址,将当前时间
30
基于单片机的家庭防盗报警系统设计
记录供以后查询,记录规则是:当前通道若没有记录,则当前记录设为第一条,若已存在记录,则将当前记录设为第二条。中断程序判断并处理完信息后,拉低P3.1口(申请外部中断1)进行报警。中断程序完成了对异常信号的判断和数据记录。
记录16路检测信号 扫描16路检测信号 开始
16路检测完成? YES NO 计算地址,并记录数据 NO 位判断正常吗? YES P3.1置0 结束 图4—9 外部中断0流程
31
基于单片机的家庭防盗报警系统设计
4.2.9 外部中断1的程序设计
外部中断1的流程图如图4—10。中断程序产生报警信号,报警时长从内存28H得,当报警时间到或按下确认后,退出报警中断程序,置位P3.1口,使不重复报警。
开始 开报警灯 驱动蜂鸣器 NO 时间到或按下确 定? YES 关报警灯,P3.1置1 结束 图4—10 外部中断1流程
4.2.10 4*4矩阵扫描键盘程序设计
键盘扫描程序流程图如图4—11,每次调用键盘都向R4先写入16,当判断有键按下时,则写入相应键值,每次判断有键按下后,都置位标志位00H,通知显示刷新显示。
32
基于单片机的家庭防盗报警系统设计
开始 初始化,R4=16 判断有键按下? YES 列扫描,列扫描信号位移 NO 输入行信号,有键按下? YES 查表,计算键值,放入R4 NO NO 四列扫描完? 等待按键释放 YES 完成
图4—11 键盘扫描流程
33
基于单片机的家庭防盗报警系统设计
结束语
本系统设计研究了一种基于单片机的防盗报警系统。该报警系统的最大特点就是使用户能够简单操作运行、易于理解、灵活自如地使用,并且在安装上非常方便、智能性较高、误报率较低。该防盗报警系统通过以AT89C51单片机为工作处理核心,采用由热释电红外传感器和振动位移传感器组成的复合式传感器,且热释电红外传感器是一种新颖的被动式红外探测装置器件,能够以非接触方式探测出人体发出的红外辐射光谱信号,并将其转化为相应的电信号输出,同时具有有效的抑制人体辐射波长以外的红外光线与可见光的干扰的性能。一般情况下传感器输出低电平,当有人在探测监控区域范围内移动时输出低电平信号,作为单片机的外部触发信号处理,经单片机内部软件编程处理后,由单片机输出控制信号,驱动声光报警电路开始报警并显示报警区域。在人们安全意识的增强以及科学技术日新月异的今天,相信基于单片机的防盗报警系统必将在更广阔的领域得到更深层次的应用,为社会发展做出贡献。
34
基于单片机的家庭防盗报警系统设计
致 谢
本文是在郑州轻工业学院杨学清老师的亲切关怀和悉心指导下完成的。在论文撰写过程中,离不开杨学清老师对我的不懈指导和积极督促及同学们无私的热心帮助,其中杨学清老师多次询问设计研究进程,并为我指点迷津,帮助我开拓研究设计思路,精心点拨内容、热忱鼓励我改掉不足,从而使我顺利的完成了毕业设计,经过一学期的忙碌,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有杨学清老师的指导,以及同学的支持和帮助,想要完成这个设计是难以想象的,再一次表示最由衷的感谢。
最后,感谢评阅、评议毕业论文和出席毕业论文答辩会的各位老师,感谢你们在百忙的工作中能给予我毕业设计以指导,在此向你们致以最诚挚的谢意和最崇高的敬意。
35
基于单片机的家庭防盗报警系统设计
参考文献
[1] 吴政江.单片机控制红外线防盗报警器[J].锦州:师范学院学报, 2001,39(3). [2] 余锡存.单片机原理及接口技术[M].西安:电子科技大学出版社, 2000,16(2). [3] 宋文绪.传感器与检测技术[M].北京:高等教育出版社, 2004,10(1).
[4] 唐桃波,陈玉林.基于AT89C51的智能无线安防报警器 [J].电子设计应用, 2003,14(3). [5] 李全利.单片机原理及接口技术[M].北京:航空航天大学出版社, 2004,18(2).
[6] 薛均义,张彦斌.MCS-51系列单片微型计算机及其应用[M]。西安:交通大学出版社, 2005,23(3).
[7] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计[M].北京:航空航天大学出版社, 2006,9(5). [8] 康华光.电子技术基础(模拟部分)[M].北京:高等教育出版社, 2004,12(4).
[9] 李文仲,段朝玉.无线单片机和无线自组织网络入门与实战[M].北京:航空航天大学出版社,2008,16(3).
[10] 张橙.株洲.家庭智能防盗报警系统的设计[M].湖南:工业大学出版社,2008,16(1). [11] 吴英才,林华清.热释电红外传感器在防盗系统中的应用.传感器技术,2002,19(2).
[12] 王洪建.AT89C2051在小区防盗报警系统中的应用.第七届青年学术会议论文集,2005,8(2). [13] 王宁.智能监控防盗报警系统.同济大学硕士学位论文,2007,19(1).
[14] 刘纯利,张玉山.单片机防盗报警系统的设计.安徽电子信息职业技术学院学报,2004,20(2). [15] 雷旭,何万强.新型家用防盗报警系统.现代电子技术,2003,17(3).
36
基于单片机的家庭防盗报警系统设计
附 录
附录1 源程序如下:
SDA BIT P2.3 ;24C02数据 SCL BIT P2.2 ;24C02时钟 E BIT P2.7 ;LCD使能 T_CLK BIT P1.6 ;时钟时钟 T_IO BIT P3.5 ;时钟数据
T_RST BIT P1.7 ;时钟复位
;====================================================== ORG 0000H SJMP MAIN ORG 0003H LJMP ALARMIT ORG 000BH LJMP TIME ORG 0013H
LJMP ALAITB
ORG 0020H
MAIN: MOV SP,#50H ;设置堆栈 50H
MOV TMOD,#01H ;设置定时器0
工作1方式
MOV IE,#07H ;设置中断:外部0、
1,定时:0
MOV IP,#01H ;设置中断0优先级
最高
37
SETB IT0 ;设置中断0为下降沿 MOV TH0,#03CH ;设初值 MOV TL0,#0B9H CALL GET1302
CALL D10MS ;初始化LCD MOV A,#38H CALL XIEZL MOV A,#08H CALL XIEZL MOV A,#01H CALL XIEZL MOV A,#06H CALL XIEZL MOV A,#0CH CALL XIEZL SETB 00H
CALL SETTIM ;设置报警时长 MOV A,#01H ;显示等待 CALL XIEZL MOV A,#0CH CALL XIEZL
MOV A,#0C0H
基于单片机的家庭防盗报警系统设计
CALL XIEZL
MOV DPTR,#LOADING
CALL ALLXS
MOV R6,#99H ;检查IIC MOV 10H,#00H MOV 11H,#00H CALL W_7DA MOV R6,#00H MOV 10H,#00H MOV 11H,#00H CALL R_7DA
CJNE R6,#99H,LOPS1 ;IIC出
错置出错位02H
SJMP LOPS2
LOPS1: SETB 02H
LOPS2: MOV 2EH,#0FFH ;初始化
2E/2F MOV 2FH,#0FFH SETB EA ;开中断
SETB TR0
;启动定时
LOOP: JNB 00H,LOOP2 CLR 00H MOV A,#01H CALL XIEZL MOV A,#0CH CALL XIEZL MOV A,#82H CALL XIEZL MOV 29H,#46H
CALL XSRQ
JNB 02H,LOOP1 MOV A,#8FH CALL XIEZL MOV A,#\"E\"
CALL XIESJ
LOOP1: MOV A,#0C3H CALL XIEZL MOV 29H,#42H CALL XSSJ MOV A,#0CEH CALL XIEZL MOV A,2DH MOV B,#10 DIV AB
MOV DPTR,#CCTAB MOVC A,@A+DPTR
CALL XIESJ MOV A,B
MOVC A,@A+DPTR
CALL XIESJ
LOOP2: LCALL KEY CJNE R4,#12,LOOP4
CALL ALARM
LOOP4: CJNE R4,#15,LOOP3
CALL DAJDAY
LOOP3: CJNE R4,#14,LOOP5
CALL SETTIM
LOOP5: SJMP LOOP
;=================================
38
基于单片机的家庭防盗报警系统设计
=====================
;ALARM:报警查询处理30H~3FH每路报警次数,
;第一组寄存器-影响: R0,R2,R3,R4,R5,A,B ALARM: MOV R0,#30H MOV R2,#0C0H
MOV R3,#1
ALA2: JNB 00H,ALA1
CALL ALAXS1
ALA1: CALL KEY CJNE R4,#10,ALA3 CJNE R3,#1,ALA4
SJMP ALA1
ALA4: DEC R0 DEC R2
DEC R3
ALA3: CJNE R4,#11,ALA5 CJNE R3,#16,ALA6
SJMP ALA1
ALA6: INC R0 INC R2
INC R3
ALA5: CJNE R4,#12,ALA7 MOV A,@R0 JZ ALA1 CALL ALARMX
SJMP ALA1
ALA7: CJNE R4,#13,ALA2
RET
;--------------------------------------------------------
--------------------------------- ;单通道查询 工作第一组寄存器 ;入口:通道号-R3/信息数地址-R0 ALARMX: MOV A,R3
MOV B,#14 MUL AB ADD A,#10 MOV 10H,A MOV 11H,#48H CALL R_7DA JNB 02H,ALX12 MOV A,#01H CALL XIEZL MOV DPTR,#ERROR
CALL ALLXS
ALX10: CALL KEY CJNE R4,#13,ALX10
SJMP ALXE
ALX12: MOV R7,#\"1\"
CALL ALAXS2
ALX13: CALL KEY CJNE R4,#12,ALX14
SJMP ALARMX
ALX14: CJNE R4,#11,ALX15 MOV A,@R0 MOV R4,A
DJNZ R4,ALX21
ALX15: CJNE R4,#14,ALX16 MOV R7,#1 ;删除记录
CALL ALXDLT
39
基于单片机的家庭防盗报警系统设计
SJMP ALXE ALX16: CJNE R4,#13,ALX13
SJMP ALXE
ALX21: MOV A,R3 MOV B,#14 MUL AB ADD A,#17 MOV 10H,A MOV 11H,#48H CALL R_7DA JNB 02H,ALX22 MOV A,#01H CALL XIEZL MOV DPTR,#ERROR
CALL ALLXS
ALX20: CALL KEY CJNE R4,#13,ALX20
SJMP ALXE
ALX22: MOV R7,#\"2\"
CALL ALAXS2
ALX23: CALL KEY CJNE R4,#12,ALX24
SJMP ALX21
ALX24: CJNE R4,#10,ALX25
SJMP ALARMX
ALX25: CJNE R4,#14,ALX26 MOV R7,#2 CALL ALXDLT
SJMP ALXE
ALX26: CJNE R4,#13,ALX23
ALXE: RET
;-----------------------------------------------------------------------------------------
;入口:通道号-R3/信息数地址-R0/选择号-R7 ALXDLT: MOV A,#01H
CALL XIEZL MOV DPTR,#DELETE CALL ALLXS MOV A,#0C0H CALL XIEZL
MOV DPTR,#QUEREN
CALL ALLXS ALXD5: CALL KEY CJNE R4,#12,ALXD6 MOV A,#01H
CALL XIEZL MOV A,#0C0H
CALL XIEZL
MOV DPTR,#LOADING
CALL ALLXS
SJMP ALXD8 ALXD6: CJNE R4,#13,ALXD5
SJMP ALXDE
ALXD8: MOV A,R7 SUBB A,@R0 ;删除数据
JZ ALXD1 MOV A,R3 MOV B,#14
MUL AB
40
基于单片机的家庭防盗报警系统设计
ADD A,#17 MOV 10H,A MOV 11H,#48H CALL R_7DA ;======================================================
ALAXS1:MOV DPTR,#CCTAB ;查询
(总览)显示 JNB 02H,ALXD4 MOV A,#01H CALL XIEZL MOV DPTR,#ERROR
CALL ALLXS
ALXD3: CALL KEY CJNE R4,#13,ALXD3
SJMP ALXDE
ALXD4: MOV A,R3 MOV B,#14 MUL AB ADD A,#10 MOV 10H,A MOV 11H,#48H CALL W_7DA JNB 02H,ALXD1 MOV A,#01H CALL XIEZL MOV DPTR,#ERROR
CALL ALLXS
ALXD2: CALL KEY CJNE R4,#13,ALXD2
SJMP ALXDE
ALXD1: DEC @R0
DEC 2DH
ALXDE: RET
LRA2:
41
MOV A,#01H CALL XIEZL MOV A,#82H CALL XIEZL MOV 29H,#42H CALL XSSJ MOV A,#8CH CALL XIEZL MOV A,R3 MOV B,#10 DIV AB
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ MOV A,#\"/\" CALL XIESJ MOV A,@R0
MOVC A,@A+DPTR CALL XIESJ MOV A,#0C0H CALL XIEZL MOV R1,#30H
MOV A,@R1 JZ LRA3
基于单片机的家庭防盗报警系统设计
MOV A,#\"!\"
SJMP LRA4
LRA3: MOV A,#\"*\" LRA4: CALL XIESJ INC R1
CJNE R1,#40H,LRA2 MOV A,R2 CALL XIEZL MOV A,#0FH CALL XIEZL CLR 00H
RET
;-----------------------------------------------------------------------------------------
ALAXS2: MOV A,#01H;单通道查询显示 CALL XIEZL MOV A,#0CH CALL XIEZL MOV A,#83H CALL XIEZL MOV 29H,#4EH CALL XSRQ MOV A,#0C0H CALL XIEZL MOV A,R7 CALL XIESJ MOV A,#3EH CALL XIESJ MOV A,#0C4H
CALL XIEZL
MOV 29H,#4AH CALL XSSJ
RET
;====================================================== ALLXS: PUSH PSW
MOV PSW,#00H PUSH 00H ;公用查表显示
MOV R0,#0
ALLXS1:MOV A,R0 MOVC A,@A+DPTR CALL XIESJ INC R0
CJNE R0,#17,ALLXS1 POP 00H POP PSW
RET
;-----------------------------------------------------------------------------------------
;XSSJ/XSQI:显示时间和日期-入口29H首地址 XSSJ: MOV DPTR,#CCTAB;显示时间
PUSH PSW MOV PSW,#00H PUSH 00H MOV R0,29H MOV A,@R0 MOV B,A ANL B,#00FH
ANL A,#0F0H
42
基于单片机的家庭防盗报警系统设计
SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ MOV A,#\":\" CALL XIESJ DEC R0 MOV A,@R0 MOV B,A ANL B,#00FH ANL A,#0F0H SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ MOV A,#\":\" CALL XIESJ DEC R0 MOV A,@R0 MOV B,A ANL B,#00FH ANL A,#0F0H SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ POP 00H POP PSW
RET
;-----------------------------------------------------------------------------------------
XSRQ: MOV DPTR,#CCTAB ;显示日期 PUSH PSW MOV PSW,#00H PUSH 00H MOV R0,29H MOV A,#\"2\" CALL XIESJ MOV A,#\"0\" CALL XIESJ MOV A,@R0 MOV B,A ANL B,#00FH ANL A,#0F0H SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ MOV A,#\"-\" CALL XIESJ DEC R0
DEC R0
43
基于单片机的家庭防盗报警系统设计
MOV A,@R0 MOV B,A ANL B,#00FH ANL A,#0F0H SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ MOV A,#\"-\" CALL XIESJ DEC R0 MOV A,@R0 MOV B,A ANL B,#00FH ANL A,#0F0H SWAP A
MOVC A,@A+DPTR CALL XIESJ MOV A,B
MOVC A,@A+DPTR CALL XIESJ POP 00H POP PSW
RET
;====================================================== ;LCD控制-数据/指令接口:A
DUZT: MOV P0,#0FFH ;LCD读状态
MOV P2,#01011111B
LOPT: CLR E SETB E JB P0.7,LOPT CLR E
RET
;-----------------------------------------------------------------------------------------
XIEZL: CALL DUZT ;写LCD指令 MOV P0,A ;指令存放 A
MOV P2,#00011111B
SETB E CLR E
RET
;----------------------------------------------------------------------------------------- XIESJ: CALL DUZT ;写LCD数据 MOV P0,A ;数据存放 A
MOV P2,#00111111B
SETB E CLR E
RET
;----------------------------------------------------------------------------------------- DUSJ: CALL DUZT ;LCD读数据 MOV P2,#01111111B
SETB E
MOV A,P0 ;数据读入 A
CLR E
RET
44
基于单片机的家庭防盗报警系统设计
;====================================================== ;KEY:键盘4*4-出口:R4 ;影响: R4,R5,R6 KEY: MOV R4,#16 MOV P1,#0FH ;键盘扫描 MOV A,P1 CJNE A,#0FH,K11
SJMP K15
K11: CALL D10MS MOV P1,#0FH MOV P1,A CJNE A,#0FH,K12
SJMP K15
K12: MOV B,A
;键盘处理
MOV P1,#0EFH MOV A,P1 CJNE A,#0EFH,K13 MOV P1,#0DFH MOV A,P1 CJNE A,#0DFH,K13 MOV P1,#0BFH MOV A,P1 CJNE A,#0BFH,K13 MOV P1,#07FH MOV A,P1 CJNE A,#07FH,K13
SJMP K15
K13: ANL A,#0F0H ;键盘码
ORL A,B
MOV B,A MOV R5,#16 MOV R4,#0
MOV DPTR,#KTAB
K14: MOV A,R4
MOVC A,@A+DPTR CJNE A,B,K16 SETB 00H
MOV P1,#0FH K17: MOV A,P1 CJNE A,#0FH,K17
SJMP K15
K16: INC R4
DJNZ R5,K14
K15: RET
;----------------------------------------------------------------------------------------- D10MS: PUSH PSW
MOV PSW,#10H
MOV R5,#20 ;10MS延时 LOPD: MOV
R7,#248
DJNZ R7,$ DJNZ R5,LOPD POP PSW
RET
;====================================================== ;R_7DA/W_7DA---24C02:读/写
;参数: 10H-IIC首地址,11H-数据首地址
45
基于单片机的家庭防盗报警系统设计
;工作第三组寄存器
;----------------------------------------------------------------------------------------- ;IIC写7字节
W_7DA: PUSH PSW MOV PSW,#10H
MOV R4,#7
LPW_7D: MOV A,@R1
MOV R2,A CALL W_BY INC R0 INC R1
JB 02H,LPW_7DE CALL D10MS
DJNZ R4,LPW_7D
LPW_7DE:POP PSW
RET
;----------------------------------------------------------------------------------------- ;IIC读7字节
R_7DA: PUSH PSW MOV PSW,#10H MOV R4,#7 LPR_7D: CALL R_BY MOV @R1,A INC R0 INC R1
JB 02H,LPR_7DE CALL D10MS
DJNZ R4,LPR_7D
LPR_7DE:POP PSW
RET
;-----------------------------------------------------------------------------------------
;IIC写操:参数: R0-IIC地址,R2-数据 W_BY: MOV R6,#5
CLR 02H
W_BYST:
CALL START
MOV A,#0A0H CALL SENDBYTE CALL WAITACK JB 01H,W_BYEND MOV A,R0 CALL SENDBYTE CALL WAITACK JB 01H,W_BYEND MOV A,R2 CALL SENDBYTE
CALL WAITACK
W_BYEND:CALL STOP JNB 01H,W_BYRET DJNZ R6,W_BYST
SETB 02H
W_BYRET:RET
;-----------------------------------------------------------------------------------------
;IIC读操-参数:R0-IIC的地址,输出: A-结果 R_BY: MOV R6,#5
CLR 02H
R_BYST: CALL START
46
基于单片机的家庭防盗报警系统设计
MOV A,#0A0H CALL SENDBYTE CALL WAITACK JB 01H,R_BYEND MOV A,R0 CALL SENDBYTE CALL WAITACK JB 01H,R_BYEND CALL START MOV A,#0A1H CALL SENDBYTE CALL WAITACK JB 01H,R_BYEND
CALL RCVBYTE
R_BYEND:CALL STOP JNB 01H,R_BYRET DJNZ R6,R_BYST
SETB 02H
R_BYRET:RET
;-----------------------------------------------------------------------------------------
;IIC接收一个字节--出口:A---接收数据 RCVBYTE: MOV R3,#08 ;一个字节共接收8位数据 CLR A
SETB SDA ;释放
SDA数据线
R_BYTE: CLR SCL NOP
NOP
SETB SCL ;启动一个时钟
周期,读总线 NOP NOP
MOV C,SDA ;将SDA状态读
入C RLC A ;结果移入A SETB SDA ;释放SDA数据线
DJNZ R3,R_BYTE ;判断8位
数据是否接收完全?
RET
;-----------------------------------------------------------------------------------------
;IIC发送一个字节--入口参数:A--待发送数据存放
SENDBYTE: MOV R3,#08 S_BYTE: RLC A MOV SDA,C SETB SCL NOP NOP
CLR SCL
DJNZ R3,S_BYTE ;8位发送完毕?
RET
;----------------------------------------------------------------------------------------- ;等待应答信号 WAITACK:
CLR SC ;等待从机返回一个
响应信号
47
基于单片机的家庭防盗报警系统设计
SETB SDA ;释放SDA信号线 NOP NOP SETB SCL NOP NOP CLR 01H
JNB SDA,ACKEND ;SDA低
电平,返回响应,
SETB 01H;没有应答信号,置
位标志 ACKEND: CLR SDA
CLR SCL
RET
;-----------------------------------------------------------------------------------------
START: SETB SDA;启动信号子程序 SETB SCL NOP CLR SDA NOP NOP CLR SCL
RET
STOP: CLR SDA ;停止信号子程序 NOP SETB SCL NOP NOP
SETB SDA
NOP CLR SCL CLR SDA
RET
;====================================================== ;时间日期调整-工作在第一组寄存器 ;影响:R0,R2,R4,(R1-显示接口) DAJDAY: CLR TR0
;停止走时
MOV 2FH,#0
LOP12: MOV R2,#85H
;光标位/年
第2位 MOV R0,#2AH ;低位缓存 MOV A,46H ;年存储
CALL DAJBCD
LOP10: JNB 00H,LOP16 CLR 00H
CALL DAJXS
LOP16: CALL KEY CALL KEYDATA MOV A,2BH SWAP A ORL A,2AH MOV 46H,A CJNE R4,#10,LOP11 INC R0 DEC R2
CJNE R0,#2BH,LOP621
SJMP LOP11
LOP621: JMP LOP62
48
基于单片机的家庭防盗报警系统设计
LOP11: CJNE R4,#11,LOP13 DEC R0 INC R2
CJNE R0,#2AH,LOP22
LOP13: CJNE R4,#13,LOP15
JMP LOPG
LOP15: CJNE R4,#12,LOP10
JMP LOPS
LOP22: MOV R2,#88H ;月第2位 MOV R0,#2AH MOV A,44H
CALL DAJBCD
LOP20: JNB 00H,LOP26 CLR 00H
CALL DAJXS
LOP26: CALL KEY CALL KEYDATA MOV A,2BH SWAP A ORL A,2AH MOV 44H,A CJNE R4,#10,LOP21 INC R0 DEC R2
CJNE R0,#2BH,LOP12
LOP21: CJNE R4,#11,LOP23 DEC R0 INC R2
CJNE R0,#2AH,LOP32
LOP23: CJNE R4,#13,LOP25
JMP LOPG
LOP25: CJNE R4,#12,LOP20
JMP LOPS
LOP32: MOV R2,#8BH ;日第2位
MOV R0,#2AH MOV A,43H
CALL DAJBCD
LOP30: JNB 00H,LOP36 CLR 00H
CALL DAJXS
LOP36: CALL KEY CALL KEYDATA MOV A,2BH SWAP A ORL A,2AH MOV 43H,A CJNE R4,#10,LOP31 INC R0 DEC R2
CJNE R0,#2BH,LOP22
LOP31: CJNE R4,#11,LOP33 DEC R0 INC R2
CJNE R0,#2AH,LOP42
LOP33: CJNE R4,#13,LOP35
JMP LOPG
LOP35: CJNE R4,#12,LOP30
JMP LOPS
LOP42: MOV R2,#0C4H ;时第2位
MOV R0,#2AH
49
基于单片机的家庭防盗报警系统设计
MOV A,42H
CALL DAJBCD
LOP40: JNB 00H,LOP46 CLR 00H
CALL DAJXS
LOP46: CALL KEY CALL KEYDATA MOV A,2BH SWAP A ORL A,2AH MOV 42H,A CJNE R4,#10,LOP41 INC R0 DEC R2
CJNE R0,#2BH,LOP32
LOP41: CJNE R4,#11,LOP43 DEC R0 INC R2
CJNE R0,#2AH,LOP52
LOP43: CJNE R4,#13,LOP45
SJMP LOPG
LOP45: CJNE R4,#12,LOP40
JMP LOPS
LOP52: MOV R2,#0C7H ;分第2位 MOV R0,#2AH MOV A,41H
CALL DAJBCD
LOP50: JNB 00H,LOP56 CLR 00H
CALL DAJXS
LOP56: CALL KEY CALL KEYDATA MOV A,2BH SWAP A ORL A,2AH MOV 41H,A CJNE R4,#10,LOP51 INC R0 DEC R2
CJNE R0,#2BH,LOP42
LOP51: CJNE R4,#11,LOP53 DEC R0 INC R2
CJNE R0,#2AH,LOP62
LOP53: CJNE R4,#13,LOP55
SJMP LOPG
LOP55: CJNE R4,#12,LOP50
JMP LOPS
LOP62: MOV R2,#0CAH ;秒第2位 MOV R0,#2AH MOV A,40H
CALL DAJBCD
LOP60: JNB 00H,LOP66 CLR 00H
CALL DAJXS
LOP66: CALL KEY CALL KEYDATA MOV A,2BH SWAP A
ORL A,2AH
50
基于单片机的家庭防盗报警系统设计
MOV 40H,A CJNE R4,#10,LOP61 INC R0 DEC R2
CJNE R0,#2BH,LOP52
LOP61: CJNE R4,#11,LOP63 DEC R0 INC R2
CJNE R0,#2AH,LOP121
SJMP LOP63
LOP121: JMP LOP12 LOP63: CJNE R4,#13,LOP65
SJMP LOPG
LOP65: CJNE R4,#12,LOP60 LOPS:
CALL SET1302
LOPG: CALL GET1302 SETB TR0
RET
;----------------------------------------------------------------------------------------- SETTIM: MOV R2,#0C6H MOV R0,#4AH MOV A,28H MOV B,#100 DIV AB MOV 4AH,A MOV A,B MOV B,#10 DIV AB
MOV 49H,A
MOV 48H,B
SETT1: JNB 00H,SETT2 CLR 00H MOV A,#01H CALL XIEZL
MOV DPTR,#SETTIME CALL ALLXS MOV A,#0C6H CALL XIEZL MOV DPTR,#CCTAB MOV A,4AH MOVC A,@A+DPTR CALL XIESJ MOV A,49H MOVC A,@A+DPTR CALL XIESJ MOV A,48H MOVC A,@A+DPTR CALL XIESJ MOV A,R2 CALL XIEZL MOV A,#0FH
CALL XIEZL
SETT2: CALL KEY
CALL KEYDATA
SETT3: CJNE R4,#10,SETT4 CJNE R2,#0C6H,SETT5
SJMP SETT4
SETT5: INC R0
DEC R2
51
基于单片机的家庭防盗报警系统设计
SETT4: CJNE R4,#11,SETT6 CJNE R2,#0C8H,SETT7
SJMP SETT6
SETT7: DEC R0
INC R2
SETT6: CJNE R4,#12,SETT1 MOV R4,4AH CJNE R4,#0,SETT8
SJMP SETT9
SETT8: CJNE R4,#1,SETT1 SETT9: MOV B,#100 MOV A,4AH MUL AB XCH A,49H MOV B,#10 MUL AB ADD A,49H ADD A,48H MOV 28H,A
RET
;----------------------------------------------------------------------------------------- DAJBCD: MOV B,A
\\
;BCD码转换 ANL B,#0F0H ANL A,#0FH MOV @R0,A INC R0 MOV A,B
SWAP A
MOV @R0,A
RET
;----------------------------------------------------------------------------------------- DAJXS: MOV A,#01H CALL XIEZL
MOV A,#83H ;日期 CALL XIEZL MOV 29H,#46H CALL XSRQ MOV A,#0C4H ;时间
CALL XIEZL MOV 29H,#42H CALL XSSJ MOV A,R2 ;光标位置
CALL XIEZL
MOV A,#0FH ;开光标 CALL XIEZL
RET
;-----------------------------------------------------------------------------------------
KEYDATA:CJNE R4,#0,KEYDA0 MOV @R0,#0
SJMP KEYDA9
KEYDA0: CJNE R4,#1,KEYDA1
MOV @R0,#1
SJMP KEYDA9
KEYDA1: CJNE R4,#2,KEYDA2
MOV @R0,#2
SJMP KEYDA9
52
基于单片机的家庭防盗报警系统设计
KEYDA2: CJNE R4,#3,KEYDA3 MOV @R0,#3
SJMP KEYDA9
KEYDA3: CJNE R4,#4,KEYDA4
MOV @R0,#4
SJMP KEYDA9
KEYDA4: CJNE R4,#5,KEYDA5
MOV @R0,#5
SJMP KEYDA9
KEYDA5: CJNE R4,#6,KEYDA6
MOV @R0,#6
SJMP KEYDA9
KEYDA6: CJNE R4,#7,KEYDA7
MOV @R0,#7
SJMP KEYDA9
KEYDA7: CJNE R4,#8,KEYDA8
MOV @R0,#8
SJMP KEYDA9
KEYDA8: CJNE R4,#9,KEYDA9
MOV @R0,#9
KEYDA9:
RET
;====================================================== ;DS1302驱动
;影响:A,R0,R4,R5,R6入口参数:初始时间在:40H
;-----------------------------------------------------------------------------------------
;Set1302设置DS1302 初始时间,并启动计时
SET1302:CLR T_RST
S1302:
53
CLR T_CLK SETB T_RST
MOV A,#8EH ;控制寄存器 LCALL WT_BY
MOV A,#00H ;写操作前WP=0 LCALL WT_By SETB T_CLK CLR T_RST
MOV R0,#40H ;日期首地址 MOV R5,#7
MOV R4,#80H ;秒写地址
CLR T_RST CLR T_CLK SETB T_RST MOV A,R4 LCALL WT_By MOV A,@R0 LCALL WT_By INC R0 INC R4 INC R4 SETB T_CLK CLR T_RST DJNZ R5,S1302 CLR T_RST CLR T_CLK SETB T_RST
MOV A,#8EH ;控制寄存器 LCALL WT_By
MOV A,#80H ;控制,WP=1,写
基于单片机的家庭防盗报警系统设计
保护 LCALL WT_By SETB T_CLK CLR T_RST
RET
;----------------------------------------------------------------------------------------- ;Get1302 从DS1302 读时间 GET1302:MOV R0,#40H;日期首地址 MOV R5,#7
MOV R4,#81H;秒读地址
G1302: CLR T_RST CLR T_CLK SETB T_RST MOV A,R4 CALL WT_By CALL RT_By MOV @R0,A INC R0 INC R4 INC R4 SETB T_CLK CLR T_RST DJNZ R5,G1302
RET
;----------------------------------------------------------------------------------------- ;功 能:写1302一字节 WT_By: MOV R6, #8
INBIT1: RRC A
MOV T_IO,C SETB T_CLK CLR T_CLK DJNZ R6,INBIT1
RET
;----------------------------------------------------------------------------------------- ;功 能:读1302一字节 RT_By: MOV R6, #8 OBIT1: MOV C, T_IO RRC A SETB T_CLK CLR T_CLK DJNZ R6,OBIT1
RET
;======================================================
;工作在第四组寄存器 时间计数中断 ;影响:R7, TIME: MOV TH0,#03Ch MOV TL0,#0b7h SETB TR0 PUSH PSW MOV PSW,#18H INC R7
CJNE R7,#14H,LOPTI ;计
数20次加 1S,R7计数 MOV R7,#00H PUSH ACC
CALL TIMES
54
基于单片机的家庭防盗报警系统设计
POP ACC SETB 00H
;======================================================
;工作在第四组寄存器--报警中断处理 LOPTI: POP PSW
RETI
TIMES: MOV A,40H ;秒计数
ADD A,#1 DAA MOV 40H,A
CJNE A,#60H,LOPTS MOV 40H,#00H
CALL TIMEM
LOPTS: RET TIMEM: MOV A,41H ;分计数 ADD A,#1 DAA MOV 41H,A
CJNE A,#60H,LOPTM MOV 41H,#00H
CALL TIMEH
LOPTM: RET TIMEH: MOV A,42H ;时计数 ADD A,#1 DAA MOV 42H,A CJNE A,#24H,LOPTH PUSH PSW MOV PSW,#00H CALL GET1302
POP PSW
LOPTH: RET
55
ALARMIT:CLR EA CLR E PUSH PSW MOV PSW,#18H MOV P0,#0FFH CLR P2.0 MOV R5,P0 SETB P2.0 CLR P2.1 MOV R6,P0 SETB P2.1 PUSH ACC PUSH B MOV A,R6 ANL 2FH,A MOV A,R5 ANL
2EH,A
MOV R0,#30H MOV R2,#1 CALL ALAITC MOV A,R6 CALL ALAITC CALL GET1302 MOV 09H,28H SETB EA POP B
POP ACC
;处理
;处理
基于单片机的家庭防盗报警系统设计
POP PSW CLR P3.1
RETI
;----------------------------------------------------------------------------------------- ALAITC: MOV R3,#8 ALTC2: RRC A JC ALTC1 INC @R0 MOV R5,A MOV A,R2 MOV B,#14 MUL AB MOV R4,#17 CJNE @R0,#1,ALTC4 MOV R4,#10
SJMP ALTC3
ALTC4: CJNE @R0,#3,ALTC3 DEC @R0
DEC 2DH
ALTC3: ADD A,R4 MOV 10H,A MOV 11H,#40H CALL W_7DA CALL D10MS INC 2DH
MOV A,R5
ALTC1: INC R2 INC R0
DJNZ R3,ALTC2
RET
;----------------------------------------------------------------------------------------- ALAITB: PUSH PSW MOV PSW,#08H PUSH ACC PUSH B MOV A,28H CJNE A,#0,ALTBS
SJMP ALTBE2
ALTBS: CLR P3.7 ALTB1: MOV R6,#250 ALTB2: CLR P3.4 CALL D1MS SETB P3.4 CALL D1MS CALL KEY CJNE R4,#12,ALTB5
SJMP ALTBE
ALTB5: DJNZ R6,ALTB2 MOV A,#01H CALL XIEZL MOV 29H,#42H CALL XSSJ MOV A,#8AH CALL XIEZL
MOV DPTR,#ALARMXS CALL ALLXS MOV A,#0C0H
CALL XIEZL
56
基于单片机的家庭防盗报警系统设计
MOV A,2EH
MOV R0,#8
ALTB7: RRC A MOV R4,A MOV A,#\"!\" JNC ALTB6
MOV A,#\"*\"
ALTB6: CALL XIESJ MOV A,R4 DJNZ R0,ALTB7 MOV A,2FH
MOV R0,#8
ALTB9: RRC A MOV R4,A MOV A,#\"!\" JNC ALTB8
MOV A,#\"*\"
ALTB8: CALL XIESJ MOV A,R4 DJNZ R0,ALTB9
MOV R6,#88
ALTB3: CALL D10MS CALL KEY CJNE R4,#12,ALTB4
SJMP ALTBE
ALTB4: DJNZ R6,ALTB3 MOV A,28H CJNE A,#199,ALTB0
SJMP ALTB1
ALTB0: DJNZ R1,ALTB1
ALTBE: SETB P3.7 ALTBE2: SETB P3.1 POP B POP ACC POP PSW MOV 2EH,#0FFH MOV 2FH,#0FFH
RETI
;----------------------------------------------------------------------------------------- D1MS: MOV R5,#10;0.1MS报警延时 LOPC: MOV
R7,#25
DJNZ R7,$ DJNZ R5,LOPC
RET
;====================================================== KTAB:
DB 0D7H,0EBH,0DBH,0BBH,0EDH ;键值表
DB 0DDH,0BDH,0EEH,0DEH,0BEH DB 0E7H,0B7H,077H,07BH,07DH,07EH CCTAB: DB \"0\ ;显示ASCLL码表
DB \"5\
DELETE: DB \"Delete Records?\" QUEREN: DB \" OK/Return \" ERROR: DB \"Processing Error\" LOADING: DB \" Loading \" ALARMXS:DB \"Alarm! \"
57
基于单片机的家庭防盗报警系统设计
SETTIME: DB \"Set Alarm Time: \"
END
58
基于单片机的家庭防盗报警系统设计
附录2
硬件电路设计的原理图如下:
59
因篇幅问题不能全部显示,请点此查看更多更全内容