基于51单片机电子密码锁设计

中国新通信 / 2017年11月23日 18:25

数码

李凯丽+樊建强

【摘要】 本论文采用AT89S51单片机作为主控芯片,密码程序采用C51语言实现,使用3-8译码器和数码管相互结合实现密码显示。数码管以“-”实时显示当前输入密码个数。密码输入正确正常显示,表示密码正确指示灯亮;密码输入错误时,表示密码错误指示灯亮,继而蜂鸣器发出警报声进行报警。

【关键词】 AT89S51单片机 C51语言 3-8译码器 数码管

引言

传统锁在安全方面有很多隐患,为了保证人们的生命财产安全,提高锁的安全等级非常必要,现如今越来越多的人开始应用安全信息系统,在财产安全、隐私保护、机密保护等方面的需求非常迫切。

在此我们研究了电子密码锁,电子密码锁种类繁多,既有简单的电路控制产品,又有复杂基于芯片的控制部分和外围电路部分、机械部分等性价比高的产品。随着电子技术的更新换代,电子锁具的发展也异常迅速[1],我们可以结合各种电子密码锁开锁信息,对研究电子密码锁产品的多样化发展具有非常重大的意义。

一、设计方案选择

电子密码锁设计的主控芯片使用单片机,硬件电路还包括数码管显示模块、声光报警模块、键盘扫描模块等,为了能够将电子锁的相关作用充分发挥出来,需要实现以下功能。

(1)使用数字键盘实现密码输入。当按键顺序与设计值相符合,并且字符数相等时,可以将锁打开。

(2)键盘锁定和报警。首次密码输入错误,数码管显示错误提示,密码输入次数超过

设定次数,蜂鸣器报警的同时锁定键盘。

(3)输入密码功能。当按下一位数字键时,最右边的数码管显示一个“-”,同时将已

经输入的所有“-”依次向左移动一位。

(4)清除密码功能。按下清除键时清除输入的所有值并清除所有显示。

二、基于51单片机的电子密码锁硬件电路设计

通过对电子密码锁进行研究,在此选择AT89S51 单片机作为主控模块、使用4×4 键盘输入密码、采用74LS47、74LS138 和三极管设计显示模块与声光报警模块。电子密码锁的硬件电路设计系统框图如图1所示。

基于51单片机的电子密码锁硬件电路主要利用键盘对各个模块进行扫描,在完成数据显示同时也能对密码进行修改,通过扫描相应模块来完成输入工作。在完成输入工作后,显示模块能够为我们提供所需数据,然后利用声光报警系统对密码输入情况进行判别:红灯为正确;绿灯及声音为错误。本文所设计的基于51单片机的电子密码锁硬件电路包括四部分,分别为扫描模块、控制模块、显示模块以及报警系统。

2.1键盘扫描模块电路设计

扫描模块主要是对键盘扫描模块电路进行设计,通过4×4 扫描键盘对按键及按键位置进行判别。在按键后,按键位置的行线及列线能够接头,使得开关之间接通。在电路中扫描到按键后,及时对其使用软件进行抖动,利用软件计算时间的延迟,进而得以错过抖动时间,完成输入。

2.2单片机控制模块电路设计

控制部分选择AT89S51单片机控制模块来完成,单片机能够在该系统中完成显示、报警等一系列的功能,采用的芯片属于直插式的集成电路[2],有4 个八位的并行双向I/O 端口,分别记作P0、P1、P2、P3。第20 引脚为接地端;第40引脚为电源端;第31 引脚通过接高电位来选择合理的存储设施;第18、19 脚处连接晶振(工作频率为12MHz),其主要作用是产生时钟信号;第9 脚为复位脚,该处接通高电位时,能够中断单片机的运行状态。P0 口连接的是声光报警器, P2 口连接译码器通过动态扫描来实现数码管的驱动,该译码器可以同时驱动六个数码管,P1 口与16 个阵列式按键相连实现对键盘的扫描。我们利用编程来实现数码管的驱动及数据显示,然后,在设置相关的一些指令来实现数码管的动态显示及报警提示等[3]。

2.3声光报警模块电路设计

当按下开锁指令后,数码管会显示相应的数组,当数字相等指示灯颜色显示绿色,输入正确;反之,数值与密码不符,指示灯颜色显示红色,并且会触发蜂鸣器的反应。

2.4数码显示模块电路设计

图2是数码显示模块,它包括74LS47、74LS138两个译码器及6个8段数码显示管。系统中的数据由编码器传送,然后该数据会分别由两个不同的译码器进行译码,再利用显示管将数据分别显示出来[4]。

在该系统设计当中,P2口低4位连接74LS47译码器,然后根据译码器的属性选择数码管,在此选择共阳极数码管类型的七段译码器。AT89S51通过不同接口输出的相应数据[5],在经过译码器处理后能显示出不同数字,需要注意的是,译码器与数码管之间还应当设置限流电阻,避免电流过大时数码管出现损坏现象。P2.4-P2.6 口接于74LS138译码器的三个输入端,这个译码器的输出端连接在公共极上,利用三极管与数码管来实现。然后根据不同端口输出量对译码器进行控制,通过译码器点亮相应的数码管,三极管在该系统中能起到控制的功能,通过芯片来对数码管进行动态的扫描显示。

三、系统软件部分设计

电子密码锁系统中密码程序使用Keil uVision4软件进行程序编写,电路采用Proteus Professional V7.5 SP3进行仿真。

具体操作流程如下,通过扫描键盘对系统中的各项功能进行控制,对于系统的初始密码设置来说,我们可以利用数码管来完成显示,然后通过按键进行输入,并且在键盘中,我们还可以设置3个按键来对密码进行修改、显示以及开锁功能进行操作[6]。当操作人员按下开锁按钮以后,数码管的显示数值同设计值相同时,绿灯亮;反之,红灯亮,蜂鸣器发出声响,触动报警装置。

当单片机复位以后,系统会启动初始化,将初始密码存放到设定的几个单元当中(40H~45H),然后重新选择六个单元(30H~35)存储数码管的数据,在设置完成后,系统开始自检,当自检完成以后启动扫描程序,对键盘开始扫描,当键盘中的按键触发相应程序后,能够将后设置的密码数据显示到数码管中。数码管显示完成后可以重复启动子程序扫描键盘,该过程循环进行。

四、 电子密码锁硬件电路测试分析

4.1 硬件电路测试

数码管在程序启动后显示“------”,等待输入密码。输入密码后,F会逐渐左移,一旦密码错误操作人员按“clr”键能够对已输入的密码进行清除,重新进行输入。

密码正确后,数码管显示“PASS”, 如图3所示,并且LED灯显示绿色,电路自动完成开锁开始运行。

如果密码错误,数码管会显示 “ERROR1”,如图4所示,密码连续输入三次错误后,系统的报警系统会自动触发,LED灯显示绿色,并且蜂鸣器开始发声报警,然后键盘自动锁死,停止相关操作。找到键盘中的“lock”键来对密码锁进行锁定。数码管恢复初始“------”,黄色指示灯亮起。

4.2系统在仿真调试可能存在问题及处理措施分析

当操作人员没有输入密码或密码输入位数不够时按下“enter”键,数码管界面为 “false”,导致不能正常返回初始界面。解决办法:“enter”键跳转时,跳转到开始即可。

当操作人员输入正确密码并按下确认键,数码管会输出通过指令,如果操作人员继续操作按下“clr”键,屏幕上显示“ERROR1”,触发系统的报警装置,同时数码管不能继续工作。产生这种现象的主要原因是由于跳转故障,我们可以添加一个标志帮助数码管正常工作。

如果系统处于运行状态中,用户开启密码锁后重新对其进行上锁,在完成相关操作后,该系统能够完成上锁指令,但是在上锁前系统的报警装置自动启动,数码管显示的是密码错误指令。产生这种故障的主要原因是由于系统的运行速度快,造成键盘的按键恢复不及时,扫描系统会重新对按键进行检测,“lock”的重复操作会造成系统运行出现故障。针对这种现象,我们可以在完成按键后,等待一段时间,当按键恢复后,再执行相关的指令。

五、结论

本次设计的基于51单片机的电子密码锁硬件电路中采用AT89S51单片机作为主控芯片,密码程序采用C51语言实现,使用3-8译码器和数码管,相互结合实现密码显示。数码管可以实时显示当前输入密码个数。密码输入正确正常显示,表示密码正确的指示灯变亮;密码输入错误时,表示密码错误的指示灯变亮,且蜂鸣器发出声音进行报警。该电子密码锁运行安全可靠,维护方便。

参 考 文 献

[1] 李力.《双处理器控制数字化焊接电源单片机系统》[M].天津:天津大学出版社, 2007:18-21.

[2] 周润景,张丽娜,丁莉.基于Proteus的电路及单片机设计与仿真(第2版)[M].北京:北京航空航天大学出版社,2003: 49-51

[3] 李广第等.单片机基础[M].北京:北京航空航天大学出版社,2001:03-06.

[4] V.Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 .

[5] Yeager Brent.How to troubleshoot your electronic scale[J]. Powder and Bulk Engineering. 1995 .

[6] Behzad Razavi.Design of Analog CMOS Integrated Circuits[M]. 2001 .

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。