完整版基于51单片机报警器的毕业设计.docx
《完整版基于51单片机报警器的毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于51单片机报警器的毕业设计.docx(34页珍藏版)》请在冰豆网上搜索。
![完整版基于51单片机报警器的毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-1/14/555cb7bd-62c6-4347-ae43-1986e7cde67d/555cb7bd-62c6-4347-ae43-1986e7cde67d1.gif)
完整版基于51单片机报警器的毕业设计
毕业设计(论文)
题目名称:
基于单片机的保险箱报警器的设计
就读学校:
中原工学院
专业:
工业自动化
学生名称:
胡晓宇
指导老师:
王晓楠
中原工学院继续教育院
2015年5月
基于单片机的保险箱报警器的设计
就读学校:
中原工学院
专业:
工业自动化
学生:
胡晓宇
指导老师:
王晓楠
2015年5月
摘要
随着人民生活水平日益提高科学技术的不断发展,人们对财产以及资料的安全保密要求也在不断的提高,设计出一款拥有较高的安全性能的保险箱已成从事电子行业人员的一项重要任务,保险箱的设计应该改进以往的设计思路,增加多项功能使其更安全更人性化,为满足人们对保险箱的使用要求,增加其安全性,用密码代替钥匙,并且增加报警功能的保险箱应运而生。
电子密码装置无论在技术上还是在性能上都有了大大的提高,从而使保险装置的安全性、可靠性得到大幅度的提高、应用日益广泛,人民对保险装置的需求得到满足。
核心处理模块是电子密码锁工作的核心,它不仅要对密码锁的信息进行处理,还要负责调度各种程序稳定的运行并控制其他模块,其模块主要由单片机,键盘,存储器,显示电路组成。
其中,单片机是核心处理模块的核心部分,其主要任务是配合软件来完成信息处理和记录、控制调度其他部分正常工作、电器的控制、密码校对和修改等工作。
从电子密码锁功能的需要、性价比、程序的数据量和接口电路等多方面综合考虑,本文选用ATMEL公司的AT89S51单片机作为控制器的核心。
键盘电路的设计采用4×4行列键盘的形式,直接由AT89S52的接口的高、低字节构成。
电子保险箱报警器采用AT89C51单片机控制、AT24C02存储、1602液晶显示,4×4矩阵键盘输入密码。
该保险箱报警器由于是由AT89S51芯片作为CPU因此可以采用编写程序的方法使得该报警器具有智能化、人性化、再具体设计各个功能单元、CPU模块、检测模块、报警模块、过程大概如下检测环境亮度、当环境亮度变化时继续检测密码输入的情况、如果没有输入正确的密码而此时报警电路发出报警声提示有被盗危险、由于考虑到实际情况的复杂还加有震动报警模块防止盗贼用暴力的方式开启保险箱、当CPU检测到超过一定强度的震动就立即发出报警提示、从该装置的设计与制作过程完全符合分析、该保险箱报警器具有安全性高、成本低、功耗低、易操作等优点。
关键字:
AT89S51LCD1602模块
Abstract
Aspeople'slivingstandardsareimprovingthecontinuousdevelopmentofscienceandtechnology,people'spropertyandthesecurityandconfidentialityofinformationrequirementsarealsoconstantlyimprove,designedwithatheelectronicsindustryprofessionalsisanimportanttask,safedesignshouldbeimprovedthepreviousdesignthinking,increasethenumberoffunctiontomakeitsaferandmorethesafeuseofrequirements,increaseitssecurity,passwordinsteadofkeys,andincreasethesafeemergeasthetimesrequirealarmfunction.Electroniccipherdevicebothintechnicalorperformancegreatlyimproved,sothatthesafetydevicesafety,reliabilityisgreatlyimproved,applicationisincreasinglywide,peopleontheinsurancedeviceneedsaremet.Thecoreprocessingmoduleisthecoreofelectroniccipherlock,itnotonlytothelocksoftheinformationprocessing,butalsoisresponsibleforschedulingvariousproceduresforstableoperationandcontroloftheothermodule,themoduleiscomposedofasingle-chipmicrocomputer,keyboard,memory,displaycircuit.One,singlechipisthecoreprocessingmoduleisthecorepart,itsmaintaskistocooperatewithsoftwaretoperformtheinformationprocessingandrecording,controlothernormaloperation,electricalcontrol,passwordcheckandmodificationwork.Fromtheelectronicpasswordlockfunctionneeds,cost-effective,programdataandinterfacecircuitandotheraspectsintoconsideration,thispaperchoosesATMELcompanyAT89S51MCUasthecoreofthecontroller.Keyboardcircuitdesignusing4x4ranksintheformofakeyboard,directlyfromtheAT89S51interfaceofuseprogrammingmethodmakesthealarmofeachfunctionunit,CPUmodule,detectionmodule,alarmmodule,itfollowsthedetectionenvironment,whentheenvironmentbrightnessbrightnesschangecontinuestodetectthepasswordinputcase,ifnottoenterthecorrectpasswordandthealarmcircuittosendoutalarmsoundpromptstheriskoftheft,consideringtheactualsituationofthecomplicatedwithshockalarmmoduletopreventthievesusingviolentmeanstoopenthesafe,whenCPUdetectsmorethanacertainstrengthoftheshockimmediayissuedawarning,fromwhichthedevicedesignandproductionprocesswiththeanalysis,thesafealarm,easytooperate.
Keyword:
AT89S51、LCD1602、module、
2.9检测电路………………………………………………………………………...-10-
2.10震动模块:
…………………………………………………………………….-11-
3.6密码修改流程图………………………………………………………………-16-
结论.............................................................-17-
致谢.............................................................-18-
附录5源程序..................................-25-
第一章系统的硬件设计
1.1硬件系统的总体结构图
该保险箱报警器的硬件组成部分可分为CPU模块、电源模块、键盘输入模块、及检测模块、具体组成如下图所示:
图1-1硬件系统的总体结构图
1.2AT89S51的介绍
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
主要性能特点
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入输出(IO)口;
4、2个中断优先级、2层中断嵌套中断;
5、5个中断源;
6、2个16位可编程定时器计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
管脚说明
VCC:
电源电压输入端。
GND:
电源地。
P0口:
P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通IO口,还有第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(T0定时器的外部计数输入)
P3.5T1(T1定时器的外部计数输入)
P3.6WR(外部数据存储器的写选通)
P3.7RD(外部数据存储器的读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
IO口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALEPROG:
地址锁存允许编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EAVPP:
外部程序存储器访问允许。
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2:
内振荡器反放大器的出端。
1.3硬件系统组成
如图1所示,本系统的硬件部分主要由单片机AT89S51、存储芯片AT24C02、4×4矩阵键盘、LCD1602、报警电路和检测电路组成;其中检测电路是用光敏电阻、lm741、电阻电位器组成,而报警电路使用蜂鸣器。
1.4微处理器模块
CPU是采用AT89S51单片机,因为本系统要实现密码检测、密码设定、环境变化检测、声光提示等功能,要求微处理器必须能提供很多IO口,而且由于系统体积限制,很难扩展IO口和使用外部程序存储器,所以选用AT89S51单片机。
1.5记忆模块:
AT24C02芯片作为记忆模块的核心部分,作用是存储用户设置的有效开锁密码。
由于一片AT24C02拥有256字节存储空间,而本设计中只需要存储8个字节的数据,所以只需要一片AT24C02就已足够了。
并且AT24C02是一种非易失性存储器,掉电后数据不会掉失,而且该存储器内数据保存寿命可以保证达到100年以上,功耗低,十分适合本设计使用。
1.6声光提示模块:
由发光二极管LED和蜂鸣器组成,由单片机控制。
发光二极管LED有两种状态,LED亮表示密码输入正确并且解除报警;输入密码错误时LCD1602会有相应的提示。
蜂鸣器采用5V驱动蜂鸣器,作为报警电路。
当输入密码错误次数超过3次后就发出声音警报。
1.7显示模块:
拷虑到友好的人机界面,采用LCD1602液晶显示。
显示模块的作用主要是显示提示信息和输入的密码,以方便用户使用。
1.8键盘模块:
键盘模块的作用是让用户输入密码和修改密码。
考虑到本系统需要用到大量的按键,键盘模块采用4×4的16按键矩阵键盘模式。
第二章单元模块电路
2.14×4矩阵键盘
如图2-1所示,本系统采用4×4矩阵键盘。
当LCD1602为时钟界面显示时,S2为时设置键,S3为分设置键,S4为切换键;当切换到密码锁界面显示时,16个按键分为输入数字键和功能键。
按键也有相应的标识S14为取消键,S15为确定键,S16为密码重设键。
图2-14×4矩阵键盘
2.2复位电路
为确保系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
如图2-2所示,时钟电路工作后,在RST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。
图2-2复位电路
2.3振荡电路
图2-3所示为单片机晶体振荡电路。
在本系统设计中晶振选择频率为11.0592MHz,其中两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地,一般在几十皮法,它会影响到晶振的谐振频率和输出幅度。
多数情况下电容取值在15pF-30pF左右,在本系统中取电容为15pF。
图2-3振荡电路
2.4发光二极管LED电路
图2-4所示为发光二极管LED电路,单片机IO口(FMQ)引脚为高电平时三极管处于截止状态发光二极管熄灭。
当输入密码正确后,该IO口由高电平变为低电平,三极管处于导通状态发光二极管点亮,表示驱动了开锁电路;当输入密码错误时,LED连接的IO口任为高电平,发光二极管处于熄灭状态。
其中R2为发光二极管LED的保护电阻,阻值为1K。
图2-4发光二极管LED电路
2.5报警电路
本系统中的报警电路采用蜂鸣器,如图2-5所示。
当连续3次输入错误密码后,FMQ引脚有高电平变为低电平从而三极管处于导通状态就会驱动报警电路,二极管点亮、蜂鸣器不停地响,以示警报。
其中,R2阻值为1kΩ。
三极管为8550。
8550是PNP型中功率高频三极管,最大耗散功率为700mW,在此电路中起功率放大作用。
图2-5声光报警电路
2.6电源输入电路
电源输入电路如图2-6所示,由于目前那种5V输出的直流电源普遍使用因此本系统采用这种供电方式当接入该电源后再经过一个大电容滤波使输入电流更加平稳,该电源的设计方便,易用,可重复利用。
图2-6电源输入电路
图2-7电源实物图
2.7AT24C02存储电路
按I2C总线电气标准,AT24C02与硬件接口如图2-8所示。
SDA与SCL线接10K的上拉电阻接到5V的电源VCC,三根地址线均接地。
图2-8AT24C02存储电路
2.8LCD1602显示电路
LCD1602液晶显示模块基本技术:
1)、主要功能A、40通道点阵LCD驱动;B、可选择当作行驱动或列驱动;C、输入输出信号:
输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6);D、通过单片机控制将所测的频率信号读数显示出来
2)、技术参数
1
VSS
电源地
2
VDD
电源正极
3
VL
液晶显示偏压
4
RS
数据命令选择
5
RW
读写选择
6
E
使能信号
7-14
D0—D7
数据
15
BLA
背光源正极
16
BLK
背光源负极
表2-9LCD1602引脚接口说明表
该报警器的显示模块是采用LCD1602液晶显示,LCD_01——LCD_08接到单片机的P0口,RS、RW、EN接到P2.2-P2.0引脚、R1为调节LCD1602的背光亮度。
具体如下图所示:
图2-10LCD1602的外接电路
2.9检测电路
(1)为了使该装置具有更高的安全性能、根据环境的变化设计了在没有密码的情况下使用暴力手段破坏保险箱,在这种情况下,一直处在黑暗的光敏电阻受到强光照射阻值会变小由LM741比较器输出低电平、检测到LM741输出端口电平变化就发出报警信号、若是在正常输入密码而且正确的情况下就解除发出报警信号、电路如下图:
图2-11亮度检测电路
(2)LM741引脚图管脚图通用型集成单运放LM741。
LM741的管脚图如2-12所示,其特点是电压适应范围较宽,可在±5~±18V范围内选用;具有很高的输入共模、差模电压,电压范围分别为±15V和±30V;内含频率补偿和过载、短路保护电路;可通过外接电位器进行调零,如附图2-12所示。
图2-12LM741管脚图
2.10震动传感器模块
图2-13震动传感器模块
一、主要芯片:
LM393、振动检测探头
二、工作电压:
直流 3-5V
三、特点:
1、具有信号输出指示;
2、单路信号输出;
3、输出有效信号为低电平,指示灯亮;
4、带安装孔,安装方便,灵活;
5、可用于检测振动的场合等;
6、电路板输出开关量,传感器发生振动时,传感器会输出TTL电平信号,产品灵敏度高;
2.11电路板的绘制于生产
采用ProtDXP2004软件绘制原理图和PCB板。
使用湿膜制版工艺制版具体过程如下图:
图2-14PCB板制作过程图
第三章软件程序设计
3.1软件总设计流程图
该保险箱报警器的软件总设计流程图如图3-1所示。
图3-1软件总设计流程图
3.24×4矩阵键盘扫描程序
当键盘中按键数量较多时,为了减少对IO口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。
矩阵式键盘接口见图3-2所示,它由行线和列线组成,按键位于行、列的交叉点上。
当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU通过检测行或列线上的电平变化可以确定哪个按键被按下。
图3-24×4矩阵键盘
图3-2为一个4×4行列结构,可以构成16个键的键盘。
很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的IO口线。
矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。
在矩阵键盘的软件接口程序中,常使用的按键识别方法有行扫描法和线反转法。
这两种方法的基本思路是采用循环查循的方法,反复查询按键的状态,因此会大量占用MCU的时间,所以较好的方式是采用状态机的方法来设计,尽量减少键盘查询过程对MCU的占用时间。
图3-2中,JP05、JP06、JP07、JP08为4根列线,作为键盘的输入口(工作于输入方式)。
JP01、JP02、JP03、JP04为4根行线,工作于输出方式,由MCU(扫描)控制其输出的电平值。
行扫描法也称为逐行扫描查询法,其按键识别的过程如下:
(1)将全部行线JP01-JP04置低电平输出,然后读JP05-JP08四根输入列线中有无低电平出现。
只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。
如读到的都是高电平,则表示无键按下。
(2)在确认有键按下后,需要进入确定具体哪一个键闭合的过程。
其思路是:
依次将行线置为低电平,并检测列线的输入(扫描),进而确认具体的按键位置。
如当JP05输出低电平时(JP05=0、JP06=1、JP07=1、JP08=1),测到JP02的输入为低电平(JP01=1、JP02=0、JP03=1、JP04=1),则可确认按键S3处于闭合状态。
通过以上分析可以看出,MCU对矩阵键盘的按键识别,是采用扫描方式控制行线的输出和检测列线输入的信号相配合实现的。
(3)矩阵按键的识别仅仅是确认和定位了行和列的交叉点上的按键,接下来还要考虑键盘的编码,即对各个按键进行编号。
在软件中常通过计算的方法或查表的方法对按键进行具体