优秀毕业设计密码门禁系统设计.docx
《优秀毕业设计密码门禁系统设计.docx》由会员分享,可在线阅读,更多相关《优秀毕业设计密码门禁系统设计.docx(37页珍藏版)》请在冰豆网上搜索。
优秀毕业设计密码门禁系统设计
摘要
本设计使用AT89C51实现基于单片机的密码门禁系统的设计,其主要具有如下两种模式:
业主模式和访客模式;在业主模式下,设置8位密码,密码通过键盘输入;若密码正确,亮绿色灯,蜂鸣器发出核对通过声并将锁打开;若输入密码错误,则亮黄灯并发警示声提示错误;若密码连续输入错误超过3次,亮红灯,蜂鸣器发报警声,并且锁定键盘。
在访客模式下,房间号通过键盘输入,为3位,若输入的房间号存在亮绿灯,向居民发送请求并发核对通过声;若输入的房间号不存在,则亮黄灯并发警示声提示错误;若房间号连续输入错误超过3次,亮红灯,蜂鸣器发报警声,并且锁定键盘。
密码门禁系统的设计主要有三部分组成:
4×4矩阵键盘接口电路、密码锁的控制电路、八位七段LED数码管显示电路。
另外还有LED提示灯,报警蜂鸣器等。
本文设计的密码门禁系统以单片机AT89C51为核心,从单片机最小系统设计、键盘设计、显示电路、开锁电路及报警电路等几个方面出发,详细研究和设计了密码门禁系统的各个部分,完成了系统的软件编程。
关键词:
AT89C51;LED;4×4矩阵键盘;密码锁
Passwordentranceguardsystem
Abstract
ThisdesignuseAT89C51realizesthepasswordentranceguardsystemwhichbasedonsinglechipdesign.Itmainlyhasthefollowingtwomodes:
theownermodeandthevisitorsmode.Inownermode,setupeightpassword,passwordthroughthekeyboardinput;Iftheinputpasswordcorrect,lightgreenlight,thebuzzersendout"mistakes"soundandwillopenthelock;Iftheinputpasswordmistake,thebrightyellowlighttohinterror;Ifthepasswordinputthewrongmorethanthreetimes,brightredlight,thebuzzersendout"drops"sound,andlockthekeyboard.Inthevisitormode,inputowner’sdoornumber,requestthescreencallsandopeningthedoor.Theownercanchoosetoopenthedoororrefusedtocallthescreen.
Passwordentranceguardsystemdesignofthreemainparts:
4×4matrixkeyboardinterfacecircuit,passwordslockcontrolcircuit,totalcathodeseventh--8LEDdisplaycircuit,andanotherLEDlights,alarmbuzzer,etc.
Inthispaper,thedesignpasswordentranceguardsystembasedonthesinglechipcomputerAT89C51,startwithsinglechipminimizesystemdesign,thekeyboarddesign,displaycircuit,theunlockcircuit,thealarmcircuitandseveralotheraspect,detailedresearchanddesigntheallpartsoftheentranceguardsystem,completethesystemsoftwareprogramming.
Keywords:
AT89C51;LED;4×4matrixkeyboard;Passwordslock
摘要Ⅰ
AbstractⅡ
第一章绪论1
1.1本课题研究的背景和意义1
1.2密码门禁系统的概述1
1.3密码门禁系统的发展趋势1
1.4本次设计的任务1
第二章系统的总体设计3
2.1系统的结构3
2.2系统的可行性分析3
第三章硬件电路设计5
3.1单片机AT89C51的简介5
3.1.1AT89C51主要特性5
3.1.2AT89C51的引脚6
3.1.3存储器结构7
3.1.4振荡特性8
3.1.5芯片擦除8
3.24×4矩阵键盘8
3.2.1键盘识别方法8
3.2.2如何消除键的抖动9
3.2.3按键的设置9
3.3振荡电路9
3.4复位电路10
3.5显示电路10
3.6报警电路11
3.7设计、仿真电路图12
第四章软件程序设计13
4.1软件设计原则13
4.2软件设计流程图14
第五章系统功能15
结束语18
致谢19
参考文献(References)20
附录A外文翻译_原文部分21
附录B外文翻译_译文部分25
附录C程序清单27
第一章绪论
1.1本课题研究的背景和意义
社会治安仍是当今社会面临的一个重大安全问题,如何应用高科技手段提高安全防范措施,更有效地阻止犯罪行为的发生是科技工作者义不容辞的责任。
在目前的形势下,对于普通单元楼,仅仅依靠普通的门锁、防盗门来保证单元楼居民的安全是不够的。
因为眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。
所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。
经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。
有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小手一定条件的限制。
此外即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
况且在钥匙丢失后,传统机械锁的安全性将大大下降。
如果能安装一套适合于整个单元楼的简易门禁系统,将会有助于保护居民的安全。
鉴于此,我们的“密码门禁系统”—带液晶显示和报警功能的数字密码锁便应运而生。
1.2密码门禁系统的概述
门禁就是出入口控制,在人们进出重要通道的时候进行适当级别的权限鉴别,以区分是否能通过的一种管理手段。
门禁系统属于智能弱电系统中的一种安防系统,作为一种新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算及技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施。
门禁系统通过在建筑物内的主要管理区、出入口、电梯厅、设备控制中心机房及贵重物品的库房等重要部门的通道口安装门磁、电控锁或读卡器等控制装置,由计算机或管理人员在中心控制监控,能够对各个通道口的位置、通行对象及通行时间、方向等进行实时控制或设定程序控制,从而实现对出入口的控制。
门禁系统一般由门禁控制器、门禁读取器、输入口、电控锁、门禁软件、电源和相关门禁应用设备几部分组成。
常见的门禁系统有:
密码门禁系统、非接触IC卡门禁系统,指纹、虹膜、掌型等生物识别门禁系统等。
密码门禁系统的核心部分是电子密码锁,电子密码锁以51单片机为核心,配以相应硬件电路,完成密码的设置、存储、识别和显示、驱动电磁执行器并检测其驱动电流值、接受传感器送来的报警信号、发送数据等功能。
具有很高的安全性、可靠性、低成本、低功耗、易操作等优点。
1.3密码门禁系统的发展趋势
随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
密码门禁系统的核心部分密码锁发展到现在已有许多品种出现,如数字密码锁、红外线控制密码锁、电子密码锁、智能密码锁、单拨式电子密码锁和拨码盘式全机械式密码锁等等。
但集自动报警、远程通信、远程控制、信息记录为一体的机电一体化的密码门禁系统将是未来的发展趋势。
1.4本次设计的任务
本次设计就是要完成一个基于单片机的密码门禁系统,它用于一个单元楼的门锁控制。
设有两种工作模式:
居民和访客。
当输入8位密码并按下开锁键后启用居民模式,当输入三位房门号并按下呼叫键后启用访客模式。
在居民模式下,如果输入的密码正确则开锁,如果密码错误则提示警告,如果输入密码错误超过三次则发出报警并自动锁定键盘。
在访客模式下,用户输入房门号呼叫居民,居民可以在房内选择是否开锁。
第二章系统的总体设计
2.1系统的结构
基于单片机的密码门禁系统的结构如图2-1所示,各部分主要功能如下:
图2-1密码门禁系统结构
①AT89C51即单片机,对系统的各项数据、指令进行处理。
②八位七段数码管显示电路,用于输入时显示密码和房间号。
③振荡电路,用于产生时间数据。
④矩阵键盘输入电路,用于密码,房间号输入及系统操作。
⑤报警电路,用于系统被恶意试探或输入密码错误超过三次时发出报警信号。
2.2系统可行性分析
本次设计使用ATMEL公司的AT89C51实现基于单片机的密码门禁的设计,其组要有如下功能:
AT89C51单片机P2口作为键盘口,其中P2.0~P2.3为键盘扫描输入线,P2.4~P2.7为键盘扫描输出线,组成4×4共16个按键,10个数字键,A、B、C3个字母键,D、E、F3个功能键。
P0.0~P0.2为八位七段LED数码管显示位控口,P0.5~P0.7为指示灯控制口,其中P0.5控制绿LED灯,表示输入的密码或房间号正确;P0.6控制红LED灯,表示连续输入密码或房间号3次后报警;P0.7控制黄LED灯,表示输入的密码或房间号错误,但次数为到3次。
P1口为八位七段LED数码管显示段控口。
P0.3输出呼叫信号来呼叫居民,P3.6输出开锁控制信号驱动电磁锁,P3.7输出音频控制信号。
通电复位,电路进入就绪状态,等待居民输入密码或房间号。
当输入密码或房间号后,通过对按下功能键的判断来选择开门、呼叫、重新输入操作。
当输入的密码正确,则发出密码正确声音和开锁信号并亮绿色LED灯;当输入密码错误,则发出密码错误警示音并亮黄色LED灯;当连续3次输入密码错误则发出报警声并亮红色LED灯。
输入的房间号存在,则发出呼叫声音、呼叫信号并亮绿色LED灯;当输入房间号不存在,则发出房间号不存在警示音并亮黄色LED灯;当连续3次输入房间号不存在则发出报警声并亮红色LED灯。
主要的设计实施过程:
首先,选用ATMEL公司的单片机AT89C51,并选择其他电子元器件。
第二步,设计硬件电路原理图,并在Proteus中完成布线。
第三步,使用KeviluVision3软件编写单片机的汇编语言程序。
第四步,使用Proteus和KeviluVision3进行软硬件联调。
第三章硬件电路设计
3.1单片机AT89C51的简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3-1所示:
图3-1AT89C51外形及引脚排列
3.1.1AT89C51主要特性
主要特性:
1、与MCS-51兼容
2、4K字节可编程FLASH存储器
3、寿命:
1000写/擦循环
4、数据保留时间:
10年
5、全静态工作:
0Hz-24MHz
6、三级程序存储器锁定
7、128×8位内部RAM
8、32可编程I/O线
9、两个16位定时器/计数器
10、5个中断源
11、可编程串行通道
12、低功耗的闲置和掉电模式
13、片内振荡器和时钟电路
特性概述:
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.1.2AT89C51引脚
引脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P1口部分引脚还具有第二功能,P1口第二功能如表3-1所示:
表3-2P1口第二功能
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口每个引脚还具有第二功能,P1口第二功能如表3-2所示:
表3-2P3口第二功能
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:
来自反向振荡器的输出。
3.1.3存储器结构
程序存储器:
如果EA引脚接地,程序读取只从外部存储器开始。
对于89C51,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址范围为:
2000H~1FFFH。
数据存储器:
AT89C51有128字节片内存储器。
它由RAM块和特殊功能寄存器(SFR)块组成。
RAM块有128个字节,其编址为00H~7FH;SFR块占128个字节,其编址为80H~FFH,两者连续但不重复。
3.1.4振荡特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.1.5芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.24×4矩阵键盘
本系统的输入功能基本可以由键盘完成。
键盘按其结构形式可以分为编码式键盘和非编码式键盘两大类。
编码式键盘是由其内部硬件电路自动产生被按键的编码。
这种键盘使用方便,但价格昂贵。
非编码式键盘主要由软件产生被按键的编码。
它结构简单、价格便宜,但使用起来不如编码式键盘方便,键盘管理程序的编码也较为复杂。
单片机系统中普遍使用非编码式键盘。
这类键盘应主要解决以下几个问题:
①键的识别;②如何消除键的抖动;。
在以上几个问题中,最主要的是键的识别。
3.2.1键盘识别方法
非编码式键盘识别闭合键通常有两种方法:
一种称为行扫描发法,另一种称为线反转法。
在本次设计中,采用类似于线反转法的一种键盘识别方法。
矩阵键盘接线如图3-2所示:
图3-2矩阵键盘接线图
具体识别方法如下所述:
首先将行线作为输出线,列线作为输入线。
先通过行线输出全“0”信号,读入列线值。
如果此时有键被按下,则必然使某1列线值为0。
然后逐列判断找出值为0的列,记下列号。
再将行线和列线的输入输出关系互换,并且通过列线输出全“0”信号,读入行线值。
然后逐行判断找出值为0的行,记下行号。
这样,当一个键被按下时,必定可以读得一对唯一的行号和列号。
为了使获取键值方便,设定:
从上到下,行号依次为0、1、2、3;从左到右,列号依次为0、4、8、12。
如此,被按下键的键值为行号与列号之和。
3.2.2如何消除键的抖动
由于按键为机械开关结构,因此机械触点的弹性及电压突跳等原因,往往在触点闭合或断开的瞬间会出现电压抖动,如图3-3所示。
图3-2键闭合和断开时的电压抖动
为了保证见识别的准确,在电压信号抖动的情况下不能进行状态的输入,为此需要进行去抖动处理(消抖)。
去抖动有硬件和软件两种方法。
硬件方法就是加消抖电路,从根本上避免抖动的产生;软件方法则采用时间延迟以避开抖动,待信号稳定之后,在进行键扫描。
一般情况下,延迟消抖得时间约为10~20ms。
在本次设计中,为简单起见,采用软件延迟消抖的方法。
3.2.3按键的设置
本系统的按键设置主要分为数字字母键和功能键两部分。
数字包括0~9,字母键包括A、b、C,功能键包括开门、呼叫、清除。
矩阵键盘的界面设置如图3-3所示:
图3-3矩阵键盘界面
其中开门键为输入密码后,请求开锁用;呼叫键为输入房间号后,请求呼叫居民用;清除键为将当前输入的内容清除,重新输入用。
3.3振荡电路
时钟电路分为内部方式和外部方式两种电路,XTAL1和XTAL2分别构成片内振荡器的反相放大器的输入端和输出端,如图3-4所示。
可采用石英晶体或陶瓷振荡器。
由于输入到内部时钟电路是经过一个二分频触发器的,故不需要对外部时钟信号的工作周期提出特别要求,但必须遵守最小和最大电压高低电平的要求,在晶体振荡器的两端并联两个电容C1,C2参数为30pF,对振荡器频率有微调作用,振荡范围为1.2MHZ~12MHZ。
图3-4振荡电路
3.4复位电路
复位电路可以分为上电复位和外部按键复位两种复位方式。
本次设计采用的是复合复位电路,既有上电复位也有外部按键复位。
复位电路如图3-5所示:
图3-5复位电路
3.5显示电路
本设计中显示电路包括两个部分:
绿红黄LED灯及共阴极八位七段LED数码管显示器。
LED灯接口电路、LED数码管接口电路分别如图3-6、3-7所示:
图3-6LED灯接口电路
图3-6LED数码管接口电路
如果要在同一时刻显示不同的字符,从电路上看这是办不到的,只能利用人眼对视觉的残留效应,采用动态扫描显示的方法,逐个地循环点亮各位数码管,每位显示2ms左右,使人看起来就好像在同时显示不同的字符一样。
为了实现LED显示器的动态扫描显示,除了要给显示器提供显示段码之外,还要对显示器进行位的控制,即通常所说的“段控”和“位控”。
因此对于多位LED数码管显示器的接口电路来说,需要有两个输出口,其中一个用于输出显示段码;另一个用于输出位控信号。
在此通过三八译码器使P0.0、P0.1、P0.2三个口控制显示器的八位。
3.6报警电路
本设计带有声音提示及自动报警功能,当输入密码或房间号后有相应提示音;当连续输入密码或房间号次数超过3次后则自动发出报警声音。
其设计思路如图3-7所示:
当输入产生某种结果后,AT89C51单片机发出声音从P3.7端口输出到LM386,经放大后送入喇叭。
图3-7音频电路
3.7设计、仿真电路图
图3-8设计、仿真电路
第四章软件程序设计
4.1软件设计原则
软件是系统的灵魂,如果没有软件,那么硬件也心痛虚设,只有配合了软件,硬件电路才可以完成人们设计它时的一些功能,所以软件设计就显得比较重要了。
但是软件的设计是建立在硬件的基础上的,它是在硬件电路的基础上,编写程序,使得CPU能够按照人们的设想给出脉冲从而在硬件电路上实现其功能。
在本次软件设计中,单片机应用软件系统的设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。
依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块。
在软件设计中,从以下几个方面考虑了设计原则。
(1)程序代码效率。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点目标代码简短,占用内存少,执行速度快,效率高。
(2)程序错误分析。
主要是对一些错误的语句的识别纠正。
4.2软件设计流程图
键分析程序流程图如