基于STC89C52的多功能密码锁设计
2022-10-19陈昱行刘宾坤吉庆辉李昱霖
陈昱行,刘宾坤,李 冶,吉庆辉,李昱霖
(大连理工大学城市学院,辽宁 大连 116600)
0 引 言
当今社会,在日常的生活和工作中大多物品都需要赋予密码从而保护个人隐私。随着电子技术与计算机技术的飞速发展,单片机相关技术在不断更新,单片机性能也在逐步完善。如今多数单片机都凭借完备的功能以及较为低廉的价格受到用户的青睐,因此市面上也逐渐出现了基于各式单片机设计的不同种类的密码锁。
相对于传统的机械式钥匙开锁,密码锁保密性好,编码量大,使随机开锁成功率大大降低。同时,密码是可变更的,用户可以频繁更改密码,防止密码被破译,还可以避免知晓密码者的更替而使锁的密级下降。文中涉及的密码锁还具有误码输入保护以及误码自动报警等优点。
1 系统总体设计
该密码锁以STC89C52单片机为核心器件,由最小系统中的时钟电路和复位电路来承担状态控制功能,其他模块围绕单片机最小系统展开,包括4×4按键矩阵模块,该模块可以实现密码的设置、输入、删除、取消、确定等功能;LCD1602显示模块可实现密码锁状态和输入密码的显示;密码存储功能借由EPROM芯片实现,本设计使用的EPROM芯片型号为AT24C02,该芯片可通过IC接口和单片机进行数据传输;继电器模块根据单片机内部程序运行判断输入密码是否正确,输出一个对应电平控制继电器的吸合与释放,密码正确时单片机输出一个低电平控制继电器吸合从而开锁。在设计上因选用PNP型三极管与蜂鸣器相连,且单片机上电I/O口默认为高电平,所以平时蜂鸣器不会鸣叫,当密码输入错误时会输出低电平实现自动报警;使用5 V USB接口为系统供电。密码锁系统结构如图1所示。
图1 密码锁系统结构
2 系统硬件分析
2.1 主控芯片
STC89C52是低电平控制,高性能CMOS 8位单片机,片内含可反复擦写的FLASH只读程序存储器和256 B随机存取数据存储器(RAM),STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以满足不同产品的需求。
2.2 单片机最小系统
单片机最小系统主要由时钟电路、复位电路、电源电路组成。
时钟电路的主要器件是晶振,并辅之以2个电容帮助晶振更快起振,电容的取值范围一般为15~33 pF。
复位电路同时存在按键复位以及上电复位两种方式,为防止系统运行时受到各种因素的干扰导致程序跑飞,可通过这两种方式的其中一种使程序重新回到初始位置再次执行。设计中存在两种复位方式,以防止系统中仅有一种复位方式,在出现故障时该复位方式失效。
除单片机最小系统的3个部分外,设计中还多了一些外部电路。由于STC89C52的P0口是漏极开路输出,因此在P0口处接了一个10 kΩ的排阻,使得P0口可以作为普通的I/O口使用,本设计用P0口来做液晶显示的数据口。单片机31脚(EA)为访问外部存储器允许/编程电压输入。我们需要特别注意此引脚的特性,当接高电平时,单片机在复位后会直接访问内部存储器并从0000H开始执行。由于程序存储在单片机内部,所以EA外接高电平,使单片机能够从片内读取程序执行。
2.3 按键矩阵模块
按键矩阵使用4×4键盘将其与单片机的P1.0~P1.7引脚相连。实现数字按键0~9与手动关锁、修改密码、管理员密码以及删除、取消、确定等一系列功能。
2.4 显示模块
本设计使用LCD1602实现显示功能。该器件可显示2行16个字符,能方便显示英文字母大小写、阿拉伯数字、常用符号等,通过自定义还可显示简单的汉字。系统中将单片机的P0.0~P0.7依次与D0~D7(8位双向数据线)连接,使P2.5~P2.7依次与RS(数据/命令寄存器选择)、R/W(读/写操作选择)、E(使能端)连接。
2.5 密码存储模块
本设计使用AT24C02作为密码存储单元。AT24C02是美国Atmel公司出品的低功耗CMOS型EPROM,支持IC即总线数据传送协议,可通过IC接口与单片机进行数据传输,同时还具有专门的写保护功能等。该模块在密码锁中常被用于密码的存储与记录。
2.6 继电器模块
本设计采用的继电器为电磁式继电器。通过弱电控制强电的方式使其成为一个“自动开关”。将其与单片机的P3.2引脚相连,当进行开锁操作时,若操作成功,单片机通过程序输出一个低电平,使继电器吸合从而开锁。
2.7 蜂鸣器模块
本设计使用电磁式蜂鸣器,将其与单片机的P3.3引脚相连用于报警,并用P3.2引脚接红色LED灯与其配合,在报警时起到警示作用。当输入密码错误次数大于3次时,通过程序控制单片机输出一个高电平,使红色LED灯亮并使蜂鸣器报警,之后控制密码锁键盘进入锁定状态。
2.8 电源模块
本设计使用5 V USB接口供电,为系统运行提供能量。系统PCB版图如图2所示。
图2 PCB版图
3 软件程序设计
程序设计主要为实现密码锁的一些基本功能,如:密码输入、删除、取消和确定,以及手动关锁、密码修改和密码重置等功能。在接通电源开机后,密码锁进入初始化页面,通过按键输入当前的开锁密码,密码输入正确并开锁后,可以进行手动关锁和密码修改等操作。
若执行完修改密码操作后忘记了重新设置的密码,可执行密码重置操作直接输入程序中设定的初始密码,按下管理员密码按键,密码会重置为初始密码。
该密码锁的本质是单片机通过运行程序判断输入密码的正误来输出对应电平,使继电器吸合或释放,实现锁的开与关。开锁操作流程如图3所示,修改密码操作流程如图4所示。
图3 开锁操作流程
图4 密码修改操作流程
4 结 语
在信息技术与新兴高科技产业飞速发展的今天,如何获得信息安全保障成为人们面临的一大难题,这足以证明人们越来越需要高效且安全的密码锁。本设计为基于单片机设计的密码锁,具备密码输入、液晶显示、密码修改、输入密码错误时报警等功能,相对于传统的机械式钥匙开锁,其具备保密性好、编码量多、密码可变等优点,更加安全且造价低廉,定能受到用户们的青睐。