一种电子密码锁的设计
2021-10-20冯美艳宋志阳
冯美艳 宋志阳
(安阳学院航空工程学院,河南 安阳 455000)
单片机控制的电子密码锁不仅操作简单、成本低而且准确性高,正常情况下可以通过指纹开锁,安全性高。在钥匙管理员请假或不在工作岗位时,可以通过密码来开锁,使用之后可以及时零成本的更换密码[1],极大的方便租房、实验室和买卖看房等业务,同时也解决了传统机械钥匙和IC 容易丢失的问题。
1 系统总体设计
系统如图1 所示:由STC89C52 单片机系统、LCD 显示系统、ZFM-60 指纹识别系统、FLASH 系统、按键系统、报警系统、电子锁系统和电源系统组成[2]。
图1 系统总体设计图
系统由设置模式和开锁模式两部分组成。系统上电,若设置按键按下,系统进入设置模式。设置模式中,需要先输入一次密码确认。确认密码后,选择设置指纹或设置密码。设置指纹系统中可以选择录入指纹和删除指纹。设置密码模式中可以选择注册、更新和删除密码。设置模式完成后,系统保存新数据。系统上电,若没有设置按键按下,则进入开锁模式。如果识别到指纹,则进入指纹开锁模式,指纹识别系统将识别到的指纹特征文件通过UART 传到单片机,单片机将接受到的指纹特征文件同FLASH 中保存的指纹特征文件进行比对,比对成功则亮绿灯开锁。反之不开锁,示警。若按键按下的不是设置键则进入密码开锁模式,输入六个数字,通过串口送入单片机模块。单片机模块将输入的密码同FLASH 中存储的密码相比对,比对成功亮绿灯开锁,反之示警[3]。
2 系统硬件设计
2.1 单片机最小系统
STC89C52 单片机有40 个管脚,32 个I/O 口,3 个定时器和4 路中断。连接正确的复位系统、晶振系统和电源系统就可以让单片机运行。
复位系统连接在单片机的RST 接口处,作用为:系统上电,复位系统将单片机寄存器和存储系统恢复初始值或整定值。同时复位系统配置有一个机械开关。如果需要人为复位时,可以按下按键实现强制复位。本设计中选用了10μF 的电容以及10kΩ 的电阻作为复位电路的电容与电阻[4]。
晶振系统和单片机的XTAL1 和XTAL2 连接。作用为:产生时钟信号,提供合适的时钟频率。
电源系统采用5V 转3.3V 模块实现,可以为单片机提供3.3V 电压或5V 电压[5]。
2.2 指纹识别系统
指纹识别系统采用ZFM-60 模块。模块可以实现指纹采集、强化、生成特征文件。系统在FLASH 中配有指纹缓冲区或指纹库用于存储指纹特征文件。模块的通信方式可以为UART 或USB。本次设计采用的将模块是4 和5 管脚与单片机系统与单片机的P3.0(第10 管脚RXD)和P3.1(第11 管脚TXD)连接进行UART 通信。系统上电后,指纹识别系统向单片机发送一个握手信号0x55,握手成功后可以进行通信。
2.3 LCD 显示系统
LCD 显示系统如图2 所示,主要采用LCD12864 模块。该设计将LCD 显示系统的第4~6 管脚和单片机的P0.5~P0.7 管脚(第32~34 管脚)相连接、LCD 显示系统的7~14 管脚和单片机的P2 口(第21~27 管脚)连接。作用为:
图2 LCD 显示系统原理图
(1)显示当前密码锁的状态。系统上电,显示请输入密码或刷指纹。
(2)在进行指纹的录入、删除、保存和密码的注册、更新、删除和保存时,起提示下一步和显示作用。
(3)开锁成功时,显示欢迎光临,开锁成功。开锁不成功时,显示密码错误/指纹错误,请输入密码或刷指纹。三次开锁不成功时,显示系统锁定,请三分钟后再试。
2.4 按键系统
按键系统如图3 所示:由矩阵键盘组成。8 个接口同与单片机最小系统的P1 口(第10~17 管脚)连接,优点是可以提高I/O的利用率。它用4 条I/O 线作为行线,4 条I/O 线作为列线组成的键盘。在行线和列线的每一个交叉点上设置一个按键。这样键盘中按键个数是4×4 个。分别表示数字0~9、返回上一步、确定、设置、向上键和向下键。当有按键按下时且为按下数字键时,进入密码开锁模式,密码正确,绿灯亮开锁。当按下设置键时进入设置模式。向上键和向下键为在系统做选择时使用。
图3 按键系统原理图
2.5 报警系统
报警系统主要由蜂鸣器系统和灯光显示系统组成。蜂鸣器系统与单片机系统的P0.3 接口(第36 管脚)连接。蜂鸣器报警系统主要由一个1K 电阻、蜂鸣器和三极管组成。灯光显示系统与单片机系统的P0.4 接口(第35 管脚)连接。灯光显示系统由一个1K 电阻和红色发光二极管D1 组成。当输入正确的密码或指纹时,单片机向蜂鸣器和发光二极管D1 发送一个高电平,示警系统不工作。当输入错误的密码或指纹时,单片机向蜂鸣器和发光二极管D1 发送一个低电平,D1 亮红灯和蜂鸣器滴滴5s示警。
2.6 电子锁系统
电子锁系统如图4 所示:单片机系统的P3.0 接口(第10 管脚)接电子锁系统,控制电子锁的打开和关闭。电子锁系统如图4 所示由2 个1K 电阻,1 个绿色发光二极管D3、1 个接触器线圈、1 个继电器和电源组成。作用为:当输入正确的指纹或密码时,单片机向电子锁系统发送一个低电平,三极管导通,接触器线圈带电,继电器吸合,绿色发光二极管D3 亮,锁打开。反之发送一个高电平,发光二极管D3 不亮,继电器断开,锁闭合。接触器外反解一个稳压二极管,其保护接触器的作用。当门锁没电时,可以通过在J3 接电源强制门锁打开。
图4 电子锁系统原理图
2.7 存储系统
存储系统电路图如图5 所示。可以存储100 枚指纹,系统采用AT24C02 存储指纹特征文件。存储系统的第12347 管脚接地,第8 管脚直接接地,第56 管脚和单片机系统的P3.1 和P3.2管脚(第11 和第12 管脚)连接用于读写指纹特征文件。
图5 存储系统原理图
3 系统软件设计
系统软件设计采用KEIL 软件编译。KEIL 软件采用C 语言进行编译,相对于汇编代码来说在结构上、可读性上、功能性和可维护性上由明显的进步。
系统软件流程主要分为设置模式流程和开锁模式流程。系统的优先级为设置模式大于开锁模式。开锁模式中指纹开锁模式大于密码开锁模式。系统上电,系统就不断扫描是否有设置按键按下,有则进入设置模式,无则进入开锁模式。如图6 所示,设置模式中需要确定系统密码,确定后可以选择设置指纹还是设置密码。设置指纹中可以进行指纹的录入、增加和删除。设置密码中可以进行密码的更改和删除。设置完成后,将最新信息存入FLASH。
图6 设置模式流程图
开锁模式中,如图7 所示,系统不断扫描是否有指纹输入,若有则进入指纹开锁模式,将输入的指纹的特征文件同系统中存储的特征文件进行比对,比对成功则开锁,反之示警。若无指纹输入但有0~9 的按键按下,则进入密码开锁模式。密码正确开锁,密码不正确示警。电子锁开锁后倒计时120s 后自动闭合。连续示警三次后,电子锁锁定三分钟,不允许任何形式的开锁。
图7 开锁模式流程图
3.1 指纹识别系统程序
设置模式中如果要录入新的指纹,要先与单片机进行握手,握手成功后,采集两次指纹,生成一个指纹特征文件,存入FLASH 中。
3.2 LCD 显示系统程序
LCD 显示系统程序主要实现上电显示欢迎光临,请刷指纹或输入密码。在设置模式时显示,请输入密码,分两行显示指纹模式和密码模式。进入指纹模式后上下显示录入新指纹和删除指纹。进入密码模式显示更换密码和删除密码。完成后显示返回和保存,保存后返回首页。
LCD12864_pos(1,2);
LCD12864_writebyte("欢迎光临,请刷指纹或输入密码");//上电显示
LCD12864_pos(0,1);
LCD12864_writebyte("指纹模式");
LCD12864_pos(1,1);
LCD12864_writebyte("密码模式");//显示选择模式界面
3.3 按键系统程序
16 个按键对应的信息不同。有按键按下且进入开锁模式时,输入六个数字开锁。如果为设置模式且为密码模式时,对比新旧密码,将新密码存入密码数组。当按下返回键时,系统返回初始界面。
4 结论与展望
本文设计的电子密码锁能够实现指纹开锁和密码开锁两种开锁方式。指纹密码锁系统能有效地完成指纹录入、指纹搜索、指纹比对和删除指纹开锁方式安全、便捷。密码开锁模式可以实现密码注册、更新和删除开锁方式方便,不需要特定人群就可以开锁。