浅析基于单片机的防盗密码锁的设计
2021-12-20杨军平
杨军平
(江苏中国科学院能源动力研究中心,江苏 连云港 222000)
本文提供的是一个利用STC89C52单片机配合使用C语言编程控制来完成相应防盗功能的密码锁的研究方案。这种智能电子锁的硬件电路设计具备了编制、更改6位明码、多次输入密码失败报警等功能,另外它具备了管理员后台解锁、输入时长报警和输入次数过多锁定键盘等防多次试探的功能,此外还增加了掉电存储功能。本系统设计成本低廉,功能实用。
1 基本原理
本论文提出的防盗密码锁实现方案是以STC89C52单片机为中心器件。而且辅助对应相关外围硬件电路,来实现完成相关功能操纵动作。例如实现明码的编制和存储、修改比对和驱动液晶显示、电流驱动电磁继电器的同时时时监控流经它的相关电流值、传感器得到报警信号可以即时接受并且数据可以即时传送给单片机。当STC89C52感应到由键盘按入的数字密码后,便通过已经存储在电可擦可编程只读存储器中的密码比对,因为这六位密码能够实现299多万种组合以方便使用者按照自己的意愿更改,所以保密的程度非常好,而密码的组合顺序可以是持续布列或者非持续布列的,假设密码输入准确,那么单片机就驱动继电器进行打开操作;如果密码输入错误,那么使用者可以第二次输入密码,密码以能够输入三次为上限;但是连续按三回数字都出现错误,那么STC89C52经过通讯线路给蜂鸣器传递信号实现鸣响达到报警效果。
系统是将STC89C52与4×4矩阵键盘、掉电存储芯片等外围硬件通过信号线连接而成。我们通过矩阵键盘来按下密码并利用按键或直接修改程序的方式完成密码的设置或修改。通过液晶屏幕显示出输入的密码和状态,同时也可以按下唯一无定义的键来供用户选择是否让密码显示实际数字还是显示米字符。本设计利用仿真软件成功仿真出密码锁的功能,如果需要的话,我们只需在现实生活应用时把继电器改装为由电磁铁控制的吸合线圈,或者直接利用继电器常开常闭点来使电磁铁吸合或松开线圈从而达到闭锁或开锁目的。STC89C52会自动识别并存储人们打开密码锁动作时流经继电器的驱动电流,把这个电流值当作状态信息传递到的STC89C52的CPU进行分析,并且STC89C52会时时感应到密码识别程序的报警信息,这个识别程序是自身保持无穷轮回的,单片机把这个报警信号通过的P2.0端口传递到蜂鸣器实现报警。
2 系统总体设计方案
2.1 系统的功能介绍
系统设计方案是基于用STC89C52作为主机运算器,外围电路元器件包含AT24C02芯片、矩阵键盘、继电器、开锁LED灯、1602液晶和蜂鸣器等。其中选择AT24C02实现密码掉电存储,继电器模拟开锁而且能够外接电磁锁,发光二极管为开锁指示灯。(1)有报警、锁定键盘功能,如果密码输入错误3次,系统会锁住键盘1分钟并有蜂鸣器声音报警提示,1分钟后可以再次输入密码。(2)可以设置修改密码(6位数的密码)(0~9之间任意数字),修改密码之前必须再次输入原始密码,关键的一步是输入新密码的时候要连续输入两次,当只有按下确认,并且两次输入完全一致时才可以改密完成,否则修改不成功,这主要是为了防止误操作。(3)密码支持掉电保存功能,应用AT24C02芯片保存密码,可以随时修改密码,密码输入过程中,可按清除键逐个删除已输入的数字。(4)在按下密码状态时,用户可以自主选择显示或者隐藏已经输入的数字。这一步是通过按无定义键实现的。(5)有管理员密码,即使忘记密码也不怕,只要输入管理员密码就可以把密码还原成初始密码。可以双重保护,万一管理员密码忘记了,我们想办法找回密码,按下密码还原键3秒后可以把密码还原成初始密码,要连接按下3秒才能还原,防止误操作。本设计设置的用户初始密码为123456,管理员密码为888888,如果要更改初始密码或管理员密码,我们可以更改对应的C语言程序来实现。值得一提的是液晶背光有可控功能,当没有按键按下30s后,液晶背光可以自动关闭,再有按键按下就可以重新点亮背光,不管是白天还是晚上都可以节约电能,既节能又不影响操作。
2.2 系统的整体框图
本系统研究方案采用STC89C52作为主控制器。按照理想中要实现的功能,简单分成了四个主要的功能单元:主控制器、键盘、24C02、LCD1602等。系统整体框图如图1。
图1 系统框图
2.3 单片机电路设计
STC89C52作为主控制单元器件,它与外围器件硬件连线设计如图2所示。
图2 单片主控电路
3 软件设计与整体电路
3.1 主程序流图
如图3是系统的主程序流程图,密码如果按入错误会在LCD上出现error提示。当成功输入6位开锁密码时,才可以打开密码锁。
图3 主程序流程图
3.2 整体电路图
密码锁系统利用仿真软件protel对各功能单元做了硬件电路的设计,通过Keil软件和Proteus,进行程序编程和实物仿真。图4为密码锁仿真电路。
图4 电子密码锁仿真电路
4 结语
本设计是由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4×4矩阵键盘。实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈,单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给单片机的芯片处理,同时将接收来自无限循环的密码识别程序的报警信息也发送给智能报警器,从而使整个密码锁正常运行。