基于单片机的电子密码锁设计
2021-07-01程志远
程志远
(盐城工学院,江苏 盐城221051)
0 引言
当今社会,人们的生活水平不断提高,物品多样性越来越丰富,物品安全问题也越来越得到重视。锁具的出现为人们的安全提供了保障,但在科技发达的现在,传统锁具已经无法满足人们的安全需要,因此,电子密码锁的发明和使用尤为重要。电子密码锁主要是靠单片机控制整个电子电路,实现门锁的开与关,相对于传统机械锁来讲密码锁的安全性更高,可操控性更好,只需要记住自己设置的密码即可,无须携带任何钥匙或者卡制产品即可开门,所以广泛受到人们的青睐[1]。
因电子密码锁保密性好,广泛地应用于住宅与商业、公共建筑的安全防范、个人资料的保存等领域。电子密码锁在操作上可以实现无钥匙开锁,整体结构不用暴露在外,使用密码开锁安全性强。同时密码具有一定的隐蔽性,输入密码操作简单快捷且密码不会轻易被窃取,所以,电子密码锁的实用性非常强,非常具有现实意义。本文基于单片机的结构功能设计一个实用的电子密码锁系统。
1 硬件设计
1.1 设计方案论证
系统要包含实现密码解锁的所有模块,主要有主控模块、密码输入按键模块、开锁显示模块、报警与保护模块。该设计以STC89C52单片机为核心,根据其内部特性,设计出的结构框图如图1所示。
图1 结构框图
1.2 系统硬件设计
根据结构框图的连接,设计出基于单片机的电子密码锁系统的电路连接模块。其主要包括单片机最小系统模块、4×3矩阵键盘模块、LCD1602显示电路模块,继电器电路和声光指示电路。
1.2.1 主控模块
在以往单片机的学习中,了解到51单片机中的STC89C52单片机功能强大,适配性高。因此,在此次设计中主控模块采用STC89C52单片机。该单片机具有8位CPU,振荡器片内自带且具有4个8位I/O接口用来连接外围设备等特性。在其工作过程中,必须连接好时钟和复位电路来确保51单片机的正常工作。下面是单片机两种电路的介绍。
(1)时钟电路
单片机内部有一个高增益的反相放大器,引脚XTAL1和XTAL2分别是该放大器输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷振荡器一起构成自激振荡器,80C51内部时钟电路如图2所示。振荡器频率主要由石英晶振的频率确定。
图2 内部方式时钟电路
(2)复位电路
复位电路可以使系统初始化,当人们在输错密码时不用全部删掉,只需按一下复位按钮便可重新输入密码,极其方便。同时也可以在程序错乱的情况下使系统复位,保证系统的稳定运行。产生复位信号的电路逻辑如图3所示。
图3 复位信号的电路逻辑图
根据此次设计的可行性,采用上电自动复位。只要电源的接通过程是顺时的,在接通电源的瞬间便可实现复位初始化。
1.2.2 按键模块
密码输入用按键模块来模拟,按键采用独立式按键。每一个独立式按键都有与之匹配的数字,4×3矩阵键盘的行线与列线分别接至单片机对应的输入口,因为每条垂直线和水平线都是相互交叉但又不连通的,一般都是利用按键进行连接[3]。因此,单片机的一个端口就可以连接需要的按键个数。每按下一个按键,就会有电平信号输入直单片机内部,通过设定好的程序显示对应的数字。只有顺序按下与设定密码一致的按键时,才会开锁成功,且密码由自己设置,保证了人们的私人安全。
1.2.3 开锁显示模块
LCD1602液晶显示屏内部自带存储器且具有强大的显示功能,可以通过驱动电路直观地显示多项内容,与单片机的连接也相对简单易行。因此,以LCD1602作为显示器。每输入一位密码时,就会有对应的数字显示,同时,为了保证安全,LCD1602可以在显示时以“*”来代替密码数字。当密码输入正确时,显示屏会在另一行显示开锁成功的提示,相反,显示屏则提示开锁失败并返回至等待输入密码状态。开锁成功后,还可以进行修改密码操作,与传统锁相比更加便利。
1.2.4 报警保护模块
报警功能由继电器模块与蜂鸣器共同完成。当密码输入错误时,单片机主程序会将检测到的错误开锁信息以电平信号的方式传给继电器与蜂鸣器,蜂鸣器发出报警,继电器工作使连接的指示灯点亮,以此提示开锁失败。蜂鸣器还可以在输入密码时,按一次按键便会短暂响一下来提示是否输进密码。继电器还可以起到监测作用,在正确输入密码的一定时间后使系统恢复至初始状态。
2 软件设计
2.1 主程序模块
单片机的软件系统是单片机系统重要组成部分之一,要使单片机协调有序地工作,就需要片单片机软件系统和硬件系统的共同配合[4]。主程序是设计的核心,是系统能够完成一系列开锁过程中最重要的内容,可以存放用于单片机与显示屏工作的程序并可以将其初始化,使系统接通电源时可以从指定的地方开始工作。主程序还可以检测与判断矩阵键盘的输入,判断是否开锁并相应传输接下来的信号,同时控制LED的显示。由此可见,主程序的建立使系统可以有序地进行,同时也将所有的模块连接起来共同工作。
2.2 键盘扫描子程序
首先扫描第0行,判断3个按键,加入消抖指令消抖,之后等待按键释放,接着扫描第二行、第三行和第四行,最后返回键值。只要有一个按键按下,单片机就会有信号变化,然后做出相应的转化,使LED显示,对应的按键数字。
2.3 其他软件设计
LCD显示系统具有输入密码正确或错误的相应显示,同时可以将键盘输入的密码转换为“*”增加隐蔽性。开锁显示是主程序的一部分,可以显示用户的开锁情况,方便观测与判断。其中增加了继电器与延时子程序,继电器可以用来保护系统电路安全,同时连接更多的外围设备,增加了系统的多样性与安全性。
3 Prote u s仿真分析
根据上文总结的软硬件设计,结合单片机等方面的理论知识,采用Proteus仿真软件根据设计过程完成搭线,对设计的电子密码锁系统进行仿真。
例如:设置密码为543210六位数字。当输入正确的密码时,LCD显示“open”,继电器后面的灯亮表示开锁成功,之后P1.3连的LED亮灭闪烁。当输入密码错误时,LED显示屏显示“error”,蜂鸣器工作发出报警信号,P1.7连的led亮处于警示状态,仿真图如图4所示。
图4 开锁示意图
仿真结果达到预期设想,系统具有输入密码开锁与报警显示等功能。可以应用于日常生活,保证人们的安全。
4 结语
本文以51单片机为核心设计了一个完整的电子密码锁系统。系统开锁显示、报警系统、密码输入等功能都按照预期设定正常进行,最后的仿真结果说明电子密码锁具有安全可靠,操作简易等优点。电子密码锁可以在人们的日常生活中起到至关重要的作用,保护人们的人身和财务安全,密码锁的报警功能、显示功能也是非常实用且便利的,可以更加直观地呈现开锁结果,方便人们的生活。随着科技的进步,我们还需要去研究更加安全、更加多样化的密码锁,为我们的生活带来更多的便利,也使我们的日常生活更加多样化。