当前位置:文档之家› 基于单片机电子密码锁的设计原理

基于单片机电子密码锁的设计原理

基于单片机电子密码锁的设计原理
基于单片机电子密码锁的设计原理

本科生毕业设计

目录

设计总说明 ............................................................................................................................ I DESIGN INTRODUCTION ................................................................ 错误!未定义书签。第1章绪论 . (1)

1.1背景 (1)

1.2电子锁 (1)

1.3电子密码锁的特点 (1)

1.4电子密码锁的发展趋势 (2)

第2章系统总体设计 (2)

2.1系统结构 (3)

2.2 系统组成 (3)

2.3 系统可行性分析 (3)

第3章硬件电路设计 (4)

3.1单片机AT89C51简介 (4)

3.1.1 主要特性 (5)

3.1.2 管脚说明 (5)

3.1.3 震荡特性 (7)

3.1.4 芯片擦除 (7)

3.2 4×4矩阵键盘 (7)

3.3复位电路 (8)

3.4 振荡电路 (8)

3.5 数码管 (8)

3.6 发光二极管LED (9)

3.7 电动锁 (10)

3.8 蜂鸣器 (10)

3.9 完整电路图 (11)

第4章软件程序设计 (13)

4.1软件设计流程图 (14)

4.2 具体功能软件实施 (15)

第5章结束语及展望 (21)

第6章鸣谢 (22)

第7章参考文献 (23)

附录 (22)

设计总说明

在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

基于以上思路,本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能:

(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。

(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。

(3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。

电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。

密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能:

(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。

(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。

(3)密码更改功能:将输入的值作为新的密码。

(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则

不打开。

主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。第二步,使用DXP 2004设计硬件电路原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万能板焊接的方法)。第三步,使用Keil uVision3软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。

关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确

基于单片机的电子密码锁

第1章绪论

1.1背景

随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。

为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。

1.2 电子锁

电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。

电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进。

1.3电子密码锁的特点

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下:

1.保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。

2.密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。

3.误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探密码。

1.4电子密码锁的发展趋势

从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。

第2章系统总体设计

2.1系统结构

图2-1

2.2 系统组成

如图2-1所示系统主要由AT89C51(51系列)、八位数码管、蜂鸣器、LED、4×4矩阵键盘、复位电路等组成。

2.3 系统可行性分析

系统工作原理分析:使用AT59C51单片机、4×4矩阵键盘、LED、蜂鸣器等。矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、*、#、CLE、Enter、MODIFY。系统开始显示“INPUT”提示输入密码;输入密码时,LED显示电路显示为“-”,当密码输入完毕按下Enter键时,对输入密码与设定的密码进行比较,若密码正确则LED显示电路显示为“PASS”提示锁打开;若密码不正确,LED显示电路显示提示“ERROR”,若连续3次输入不正确,则发出警报声同时锁定键盘。

在输入正确密码后,按下修改键时,LED显示电路显示“old”提示“输入旧密码”,此时输入正确的旧密码,则显示电路会有提示输入新密码在输入新密码后,显示电路会再次提示“再次输入新密码”若两次输入密码不一致,则修改密码失败,一致则成功。

在修改密码的过程中,如果一开始输入的旧密码错误显示电路会显示提示,同时系统返回到开始。

若在“再次输入新密码”的时候输入新密码与前次不一致,则会返回到系统开始。修改密码完成后,系统自动清零上锁。要再次开锁则需要输入正确的密码。

系统中CEL键用于退格,在输入密码时,若输入错误且未按下Enter键,按下CLE 可以删除刚输入的密码,然后再次输入。

为了防止恶意尝试,系统才用若连续输入3次错误密码则发出报警声,且锁定键盘,可以提高系统的安全系数,同时也能够保护合法用户的正常使用。

第3章硬件电路设计

3.1单片机AT89C51简介

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes 的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),

器件采用ATMEL公司的高密度/非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,AT89C51单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。

3.1.1 主要特性

·8031 CPU与MCS-51 兼容

· 4K字节可编程FLASH存储器(寿命:1000写/

擦循环)

· 全静态工作:0Hz-24KHz

· 三级程序存储器保密锁定

· 128*8位内部RAM

· 32条可编程I/O线

· 两个16位定时器/计数器

·6个中断源

· 可编程串行通道

· 低功耗的闲置和掉电模式

· 片内振荡器和时钟电路

图3—1

3.1.2 管脚说明

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

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口也可作为AT89C51的一些特殊功能口,如下表所示:

管脚备选功能:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

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 震荡特性

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

3.1.4 芯片擦除

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

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.2 4×4矩阵键盘

如图所示,本系统采用4×4矩阵键盘,16个按键分为输入数字键:*、0、#、1、2、3、4、5、6、7、8、9;功能键lock、modify、cel、Enter。矩阵键盘。

图3—2

3.3复位电路

图3—3

时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图3—3)。

3.4 振荡电路

图3—4

本设计晶振选择频率为12MHZ,电容选择30pF如图(3-4)。经计算得单片机工作胡机器周期为:

12×(1÷12M)=1us。

3.5数码管

图3-5

本设计采用两个4位8段共阴极数码管。由于由单片机直接驱动的直流电流不够,数码管亮度显得不足,所以加上三极管S9013用以放大电流。

因为LED数码管合适的驱动电流大约为9mA到20mA左右,为了适LED数码管工作电流在10mA左右,具体计算如下:

Ib=(5V-1.4V-0.7V)/27K=0.1×10-3A

Ie= Ib×(β+1)=10 mA

使用的9013的放大倍数β为100.

图3-6

3.6 发光二极管LED

图3-7

由于LED使用P0口驱动要加上上拉电阻如图3-7。3.7电动锁

图3-8由于电动锁使用P0口驱动要加上上拉电阻如图3-8。

3.8 蜂鸣器

图3-9 由于蜂鸣器使用P0口驱动要加上上拉电阻如图3-9。

3.9完整电路图

图3—9 ·3.10 使用到的元器件列表

表3—1

第4章软件程序设计

本系统程序部分使用C语言编写,C语言是一种高级程序设计语言,它的优点是简

洁明了、可移植性高。

主要完成,开始时数码管显示提示“INPUT”输入密码。输入密码后按下确认键,系统会将所输入与系统密码进行比对。若输入密码正确则显示“PASS”开锁。然后可以选择上锁或者修改密码。

开锁后,按下上锁“LOCK”键,系统上锁并返回;选择修改密码则可以对系统进行修改密码操作。在修改密码前要输入正确旧的密码。正确输入旧密码之后,会有提示输入两次新密码,若两次密码一致,则修改成功。期间操作出现失误,系统会返回初始状态,操作错误超过3次,系统会锁定键盘,并报警用以防止恶意试探密码。

4.1 软件设计流程图

图4—1

4.2 具体功能软件实施

·4.2.1 开始等待流程

系统开始一直显示提示“INPUT”,并判断有否按键,当有键按下跳出等待。

相关主题
文本预览
相关文档 最新文档