基于单片机的防盗报警器的设计.docx
- 文档编号:29004373
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:52
- 大小:687.70KB
基于单片机的防盗报警器的设计.docx
《基于单片机的防盗报警器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的防盗报警器的设计.docx(52页珍藏版)》请在冰豆网上搜索。
基于单片机的防盗报警器的设计
基于单片机的防盗报警器的设计
摘要:
本文介绍了基于AT89S52单片机控制的由EEPROM和LED组成的防盗报警器的控制电路和控制程序的设计。
首先本文对AT89S52单片机和EEPROM的24C04存储器芯片原理做了介绍,同时分析了防盗报警器控制原理,经过分析,设计出能实现存储报警号码及自动报警的防盗报警0器硬件电路和单片机程序。
最后利用Proteus仿真软件对该系统进行仿真,查看效果。
关键词:
单片机,24C04,Proteus
ADesignofTheft-proofAlarmBasedonMCU
Abstract:
Thisarticledescribesadesignoftheft-proofalarmcontrolcircuitandcontrolproceduresbasedontheAT89S52MCU’controlingonEEPROM24c04andtheLED.First,thispaperintroducetheAT89S52andtheworkingprincipleoftheEEPROM24C04,andanalyzestheburglaralarmcontrolprinciple.Afteranalysis,thisarticledesignoutthecircuitandmicrocontrollerprocedureofthetheft-proofalarmtwhichcansavethealarmnumberandautosendoutthealarmsignal.Finally,thisarticleusetheProteussimulationsoftwaretosimulatethesystemtoviewtheresults.
Keyword:
MCU,24C04,Proteus
1引言
本文详细介绍了一种基于单片机和EEPROM的防盗报警控制器的设计。
以下对该系统所涉及的原理和应用到的技术,如:
单片机技术、Keil技术、Proteus等做了简要的介绍。
1.1防盗报警控制器研究背景
随着社会的不断发展,人们对室内财产的安全要求也越来越高,而比较普遍的防盗措施是安装防盗报警装置,而防盗报警器的控制电路和控制程序在整个防盗报警装置中处于重要地位。
1.1.1防盗报警器概述
防盗报警系统是用物理方法或电子技术,自动探测发生在布防监测区域内的侵入行为,产生报警信号,并提示值班人员发生报警的区域部位,显示可能采取对策的系统。
防盗报警系统是预防抢劫、盗窃等意外事件的重要设施。
一旦发生突发事件,就能通过声光报警信号在安保控制中心准确显示出事地点,使于迅速采取应急措施。
防盗报警系统与出入口控制系统、闭路电视监控系统、访客对讲系统和电子巡更系统等一起构成了安全防范系统。
防盗报警系统通常由:
探测器和传输通道、报警控制器、报警装置三部分构成。
报警探测器是由传感器和信号处理组成的,用来探测入侵者入侵行为的,由电子和机械部件组成的装置。
传输通道是探测器与警控制器的之间的信道,用来传输探测器的信号给报警控制电路。
报警装置则是采用声、光、电等信号采取的报警措施。
报警控制器经过分析探测器传来的信号,驱动报警装置,做出相应的处理。
随着科学技术的进步,为对付不断升级的偷盗手段,人们研制开发了不同方式结构的防盗器。
●第一代是机械式防盗器
●第二代是电子式防盗器
●第三代是芯片式数码防盗器
●第四代是网络防盗系统
采用不同原理的探测器、报警器就可以构成不同种类、不同用途、达到不同探测目的的报警探测装置。
而报警控制器则相对统一,变化不大,但又处于整个报警系统的重要地位。
没有报警控制器则无法对探测器的信号进行分析处理,同时无法控制报警装置发出报警信号。
1.2单片机技术简介
单片机简称单片微型计算机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统,使得计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
因为单片机的只要通过编写程序就可以可以实现高智能,高效率,以及高可靠性!
单片机的应用
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
1.3Keil技术简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
1.系统概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
2.KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
1.4Proteus技术简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus软件提供了丰富的资源
(1)Proteus可提供的仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
(2)Proteus可提供的仿真仪表资源:
示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
理论上同一种仪器可以在一个电路中随意的调用。
(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
1.5本课题的主要内容、要求及说明书安排
1.5.1主要内容、要求
本课题主要在研究单片机的工作原理后,选用合适的单片机存取EEPROM存储器,设计相应的硬件电路,并配合相应的软件编程编写控制程序,最后使用Proteus仿真软件对防盗报警器的控制电路和控制程序进行仿真。
工作内容:
(1)掌握一种单片机应用,如AT89S52;
(2)掌握EEPROM(24C04)的工作原理;
(3)掌握Keil程序设计软件;
(4)掌握Proteus仿真软件。
工作要求:
(1)设计相应的报警控制器硬件电路;
(2)编写相应的报警控制器软件程序;
(3)使用Proteus仿真软件,实现系统功能仿真;
1.5.2说明书安排
本文详细介绍了防盗报警器的控制电路和控制程序的设计。
共分为五章,内容安排如下:
第一章:
介绍了研究背景及利用到的主要技术。
第二章:
概括介绍了系统结构和工作原理,同时具体介绍了系统的硬件设计,详细介绍了整个系统的各个模块的电路设计、器件选型及理由。
第三章:
具体介绍了单片机程序的设计。
第四章:
具体介绍了如何利用Proteus进行系统仿真。
第五章:
总结了本次毕业设计取得的成果和心得
2系统结构及硬件电路设计
2.1系统的结构框图及工作原理
图2-1系统结构框图
本系统采用单片机AT89S52为控制核心,系统主要由四个模块:
电源模块、AT89S52最小系统、EEPROM存储模块、LED和数码管显示模块构成:
1、电源模块作为整个系统的各个模块提供稳定的电源。
2、AT89S52最小系统作为控制系统,控制着整个系统的功能实现。
3、键盘模块提供了人机交流的输入控制功能。
4、显示模块由LED和数码管组成,提供了人机交流的显示功能。
2.2电源模块
本系统中芯片的工作电压有5V。
可以利用外部9V电池然后利用7805进行电压调整获得5V稳定电压值。
7805为3端正稳压电路,提供固定的输出电压,应用范围广。
内含过流、过热和过载保护电路。
带散热片时,输出电流可达1A。
虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。
其主要特点如下:
●输出电流可达1A
●输出电压有:
5V
●过热保护
●短路保护
●输出晶体管SOA保护
●其TO-220封装结构如图2-2所示图2-27805封装结构图
图2-35V电源模块图
D1为电源指示灯,用以指示电源正常工作。
图中C1电源滤波电容,稳定电源电压,亦为抗冲击电容,防止上电时产生的冲击电压过大而影响后续电路。
C2为去耦电容,防止干扰信号返回电源影响其正常。
2.3AT89S52单片机最小系统
本设计的的单片机采用Atmel公司的AT89S52。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89S52最小系统包括晶体振荡电路、复位开关和电源部分。
电源部分有电源模块提供稳定的电压。
图2-4为AT89S52的最小系统原理图。
如图2-4所示C4、C5、X1组成晶体振荡电路连接到单片机的XTAL1、XTAL2引脚上。
C3、R11和按键开关组成复位电路连接到单片机的RST引脚上。
图2-4AT89S52单片机最小系统
2.4键盘模块
在单片机应用系统中,特别是在工业测控和智能化仪器仪表中,通常都要有人人机对话功能,他包括人对应用系统的状态干预、数据的输入以及应用系统向人报告运行状态和运行结果,这就需要配接键盘和显示器等外设。
本节结束键盘的接口技术。
键盘电路的设计应使CPU能识别是否有键按下以及是哪一个键按下,并将此键所代表的信息翻译成所能接收的形式,例如ASCII码或预定的其他编码。
键盘按接口原理可分为全编码方式和非编码方式两种。
全编码方式有硬件逻辑来提供与被按键对应的编码。
非编码方式只简单地提供输入按键连接电路,其他的工作靠软件来完成,具有经济实用的特点。
对于一个键盘或一组按键,单片机系统利用一个接口电路与CPU相连。
CPU可以采用查询或中断方式了解有无按键输入并检查是哪一个键按下,将该键号保存在某一变量中,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。
按键一般是由机械触点构成的。
当机械触点断开、闭合时,会有抖动,如下图2-5所示。
在触点抖动期间检测按键的通与断状态,可能导致判断出错。
即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。
所以就必须对按键进行消抖。
常用的有硬件方法、软件方法两种。
软件方法具有硬件设计简易、成本低等特点。
图2-5键盘抖动
由上所述,考虑到本设计中按键不多,且单片机的接口较多,同时考虑简易经济性,本设计采用由软件消抖的非编码方式独立键盘电路,如图2-6所示。
图2-6键盘输入模块
在图2-6的电路中,按键输入都采用低电平有效,上拉电阻保证了按键断开时I/O口由确定的高电平。
2.5显示模块
在单片机应用系统中,为了观察单片机的运行情况,进行人机之间的交流,通常采用显示器作为其输出设备,用于显示输入键值中间信息及运算结果等。
本设计采用常用的发光二极管(LED=LightEmittingDiode)显示器,即7段数码管和LED指示灯。
他们具有耗电省、线路简单、价格低廉、安装方便、耐振动等优点。
我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
图2-7数码管显示器外形结构及两种连接方式
在本设计中采用共阴极连接方式,原理图如图2-8所示。
图2-8数码管显示器连接电路
在图2-8所示的数码管显示器连接电路中,考虑到单片机的输出电流有限,所以在P0端口与数码管之间接入一个上拉电阻到+5V,确使在P0口输出高电平时,VCC与P0口同时给数码管供电,这样可以减小P0口的输出电流保护端口。
上拉电阻是用来限制电流的。
对照图2-7所示的字段,字型码各位定义如表2-1所示。
可以看出,如果要显示“7”字形,a、b、c、三个字段应点亮,所以对应的字型码为00000111B,依此类推可写出所要显示的各字形码存放在程序存储器的固定区域中,构成显示代码表。
表2-1
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
a
b
c
d
e
f
g
对于系统中的指示灯,本设计采用如图2-9所示的电路。
图中D2为LED指示灯,R5作为限流电阻。
P1口可输出5V电压,LED导通时压降为1.7V左右,通常电流限制在10mA以下,所以R5的阻值不小于330欧姆((5-1.7)V/10mA)。
在本设计中采用500欧姆。
图2-9LED指示电路
2.6EEPROM
EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory),电可擦可编程只读存储器,一种掉电后数据不丢失的存储芯片。
EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。
一般用在即插即用。
在本设计中使用24C04。
24C04是一个4K位串行CMOSEEPROM,内部含有512个8位字节。
其内部有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,同时有一个专门的写保护功能。
其所具有的特性如下:
●与400KHzI2C总线兼容
●1.8到6.0伏工作电压范围
●低功耗CMOS技术
●写保护功能:
当WP为高电平时进入写保护状态
●页写缓冲器
●自定时擦写周期
●1,000,000编程/擦除周期
●可保存数据100年
●8脚DIP、SOIC或TSSOP封装
图2-10为24C04的管脚配置,同时在表2-2给出了各管脚简易功能描述。
图2-1024C04管脚配置
表2-224C04管脚描述
图2-11EEPROM电路原理图
如图2-11所示为本设计的EEPROM电路原理图。
3程序设计
本系统的单片机程序利用KeiluVisionV4.02进行程序设计,以下介绍整个系统的程序流程,具体程序参见附录。
3.1主程序流程
图3-1主程序流程图
如3-1所示图所示为单片机的主程序流程图。
首先进行各个模块的初始化工作,如变量定义、单片机端口和EERPOM端口初始化、显示模块初始化等。
然后进入程序的主流程,判断系统的当前状态,扫描键盘输入确定状态后,执行相应的处理。
3.2键盘输入模块的程序设计
本设计采用由软件消抖的非编码方式独立键盘电路,所以在进行键盘输入模块的程序设计时,需考虑两个过程:
1、键盘按键的识别;2、消抖。
首先在程序中定义各个键盘的输入信号管脚,如下所示。
在key_input=0时代表输号键被按下,其他按键同此。
sbitkey_input=P1^0;//输号
sbitkey_find=P1^1;//查号
sbitkey_reset=P1^2;//复位
sbitkey_jingbao=P1^6;//警报信号
然后在一个子程序中实现键盘的识别及消抖。
本系统中把键盘的输入状态作为整个系统的状态,所以定义一个ucharstate(void)子程序,其返回值为键盘的当前状态,其定义如下:
#definestate_null0//无按键状态
#definestate_input1//输号键按下
#definestate_find2//查询键按下
#definestate_reset3//复位键按下
#definestate_jingbao4//报警键按下
在ucharstate(void)子程序中本设计利用变量keycount的条件自加来实现消抖和长短按键的识别过程。
每次进入子程序时keycount清零,然后进入循环,keycount自加,同时查询按键状态:
当keycount自加到N1时,表示长按,则返回状态值,退出子程序;当无按键按下时,退出按键查询循环,并判断keycount是否小于于N2,即是否为抖动,当keycount
整个ucharstate(void)子程序流程如图3-2所示。
图3-2主程序流程图
3.3数码管显示模块的程序设计
由上章所述,本设计利用table数组保存字形码,作为显示代码表,如下所示:
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
//0123456789
0x3e,0x73,0x7c,0x40
//“U”-10,“P”-11,“b”-12,“-”-13
};
由table数组可知,总共可以显示0~9、U、P、b、-共14个字符。
同时在程序中编写Display(uchardata_disp)函数,data_disp为要显示的字符,程序如下:
voidDisplay(uchardata_disp)
{
if(data_disp>=13)//不在表内
P0=table[13];//显示“-”
else//表内
P0=table[data_disp];//查表显示
}
对于LED指示灯,本设计中采用高电平点亮的方式,利用P0.7端口控制。
由此在程序中定义sbitLed=P1^7,当LED=0时,输出低电平,LED灯灭,当LED=1时,输出高电平,LED灯亮。
3.4EEPROM的驱动程序设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 防盗 报警器 设计