基于单片机的智能电子密码锁的设计
2017-08-07赵淑萍张艳玲山东协和学院
赵淑萍 张艳玲 / 山东协和学院
基于单片机的智能电子密码锁的设计
赵淑萍 张艳玲 / 山东协和学院
目前使用的智能电子密码锁大部分都来自于单片机技术,而且主要都是以AT89C52单片机为主控器件,此次论文的设计系统为AT89C52的单片机为系统,由4*4矩阵键盘和报警系统、LCD1602显示屏等组成,具有的功能是对密码的设定、修改、密码输入错误超过3次的时候就报警并且锁定这个电子密码锁并且密码可以持有者自己修改设定等功能,经过设计实验表明该电子密码锁的设计安全、智能、实用、成本低,符合现在人们生活的需要[1]。智能电子密码锁除了上述的基本功能外,按照个人实际情况,可稍作改动,添加遥控器等。
AT89C52;LCD1602显示屏;电子密码锁;4*4矩阵键盘
1.设计方案的设定
1.1 智能电子密码锁的特点和设计的要求
1.1.1 智能电子密码锁的特点。
(1)电子密码锁需要有好的保密性,随机开锁成功的可能性几乎为零。
(2)密码必须可以变动,使用者能够随时根据自己的意愿改动密码,为了防止密码被盗用,而且也可以防止用户的变换而使得电子密码锁的保密性下降。
(3)当密码多次输入错误时,系统因为有密码输入保护而自动报警。
(4)使用起来必须灵活,操作简单,易学。
1.1.2 智能电子密码锁设计的要求。
(1)为防止密码的泄露,在输入密码时,屏幕上显示的将是*符号。
(2)当开始输入密码时,LCD屏幕上显示INPUT PASSWORD。若密码输入正确,在屏幕上将会显示 OK,密码错误时显示ERROR。
(3)此设计的智能电子密码锁带有报警功能,当输入错误密码时LED灯则闪亮,并伴有蜂鸣器声响起。
(4)错误密码限制为3次,当三次输入错误密码时,则此密码锁将锁定。解锁密码是由用户自行设置和修改,修改密码时需要正确输入原密码,并且新密码需要二次确认方可成功修改。
1.2 总体设计方案的选定
为了能利用单片机的各种优点,所以本次将选用AT89C52单片机作为这次设计的核心元件。原理图如下图1所示。
图1 单片机控制密码锁原理图
2.系统硬件设计
2.1 硬件电路的设计
本设计是分配单片机硬件资源:
P0.0~P0.7用于在LCD液晶显示。
P2.6、P2.7控制蜂鸣器和报警灯。
P2.0的控制开锁电路。
P1.0~P1.7用于控制键盘的电路。
P3.3~P3.5用于控制LCD显示模块的控制端口。
2.1.1 芯片擦除。
通过控制信号可以组合PERO阵列和三个电擦除,并且还能够使得管脚处于10ms的低电平。在任何有字节存储被重复编程时,芯片擦出必须执行。
2.1.2 开锁机构。
为了打开密码锁,使用者通过屏幕在键盘上输入密码。当密码正确时,单片机从屏幕上得到信息并且发送开门信息开锁驱动接收到信息之后开时工作,使得密码锁能够打开。
2.1.3 键盘的设计。
此次电子密码锁的键盘采用的是矩阵键盘,为了操作不紊乱,所以键盘的设计是每一条水平竖直的线的交点都不相通。
4*4矩阵键盘的工作原理如下:
为了减少I/O接口被大量占用,所以在键盘按键比较多的时候,键盘一般采用矩阵排列,4*4=16个按键通过一个端口就可以控制,因此,在键盘按键数量较多的时候,采用矩阵键盘还是比较合理的。
2.1.4 显示电路设计。
本次设计的显示电路采用的是字符型液晶屏,显示是由单片机的p0口控制,而LCD显示屏的控制端口由p3.3~p3.5控制。
3.系统软件设计
因为本设计中的AT89C52单片机设计程序是靠C语言来编译的,所以需要一个C语言编译器来执行,因为Keil能够支持AT89C52的单片机,所以可采用Keil编译器来进行编写程序。
3.1 主程序模块
主程序主要功能是完成系统的初始化、设置中断向量、检查有无键盘按键按下、以及调用显示等等。
3.2 键盘扫描及识别子程序
4*4键盘采用的查询方式,主要是放在主程序中,当没有按下按键时,单片机开始循环主程序,但是当有按键按下时,单片机便开始转向相应的子程序处理,处理结束后再返回。其程序流程如下图2所示:
图2 键盘扫描程序流程图
3.3 系统模块密码设置子程序
设计主要是通过分模块进行的,因此子程序便成为了系统整体软件的组成部分,子程序不但能使程序化整为零,使其由复杂变为简单,而且也方便读者阅读,修改等。由于每个模块都有属于它自己的子程序,而且主要都是用LCD显示屏显示数据,所以必须要要用到显示子程序,由于设计中用的是矩阵键盘,所以就要用到键盘扫描子程序。如下图3为密码修改子程序流程图[2]
图3 键盘扫描程序流程图
[1]房小翠,王金凤.单片机实用系统设计技术[M].北京:国防工业出版社,1999,6:10-11.
[2]赵益丹,徐晓林,周振峰.电子密码锁的系统原理、设计程序及流程图[N].嘉兴学院学报,2003,15:12-13.