1、基于 STC89C52 的电子指纹密码锁设计 李永伟 太原工业学院 摘 要: 传统的机械锁因结构简单、安全性能差, 已不能满足人们的需求。文章设计了一款基于 STC89C52 单片机的电子指纹密码锁, 以单色液晶屏作为人机交互界面, 用矩阵键盘实现密码开锁、功能选择等操作。本设计具有体积小、成本低, 结构简单、安全性能强等优点, 适合家庭、仓库、公司等场所使用。关键词: STC89C52; 指纹识别; 密码锁; 作者简介:李永伟 (1989-) , 男, 山西吕梁人, 太原工业学院助教, 在读博士, 研究方向:智能控制和智能算法等。收稿日期:2017-11-03Design of Electr
2、onic Fingerprint Coded Lock Based on STC89C52LI Yongwei Taiyuan Institute of Technology; Abstract: The traditional mechanical lock has been unable to meet the requirements of people because of its simple structure and poor safety performance.In this paper, an electronic lock with fingerprint and pas
3、sword based on STC89 C52 is designed.The lock uses monochrome LCD screen as human-computer interaction interface, realizing password unlocking, function selection and other operations on a matrix keyboard.The design has such advantages as small size, low cost, simple structure, strong safety and so
4、on, suitable for families, warehouses, companies and other places to use.Keyword: STC89C52; fingerprint identification; password lock; Received: 2017-11-03引言智能门禁系统是在传统机械门锁的基础上发展而来的。随着新时代的到来, 门禁系统朝着更加数字化、安全化的方向发展。传统的门禁系统如密码式、IC 卡式均存在破解和丢失的可能性1。当今, 指纹技术日趋成熟, 比如指纹支付、指纹签到等已有许多的场合应用。指纹作为人体身体的一部分, 具有便捷、安全
5、、易管理等优势。本文以 STC89C52 为主控芯片, 设计了一款价格低、体积小、安全性能更高的电子指纹密码锁。1 系统总体方案设计本系统主要通过指纹和密码两种方式进行开锁, 开锁过程由继电器控制, 为了提高人机交互能力, 设计液晶显示屏和显示灯, 以及报警功能。系统运行时, 通过指纹识别能够实时检测和识别来访者身份。如果数据库中事先已经包含来访者信息, 则继电器控制打开门锁, 显示灯亮, 并在显示屏上显示来访者编号;否则, 打开门锁失败并报警。另外, 对于临时访客或者紧急情况, 可通过输入密码进行开锁。基于以上构思, 设计以单片机为主控芯片, 具体包含电源模块、指纹开锁模块、键盘模块、显示模
6、块, 报警模块、继电器模块和掉电保护模块的电子指纹密码锁。2 系统硬件设计2.1 主控芯片的选择本设计以单片机作为控制芯片, 主要对输入、输出的数据进行处理, 控制并实现各模块的功能。目前主要流行的单片机有 STC89C51 和 C52。相对于前代产品C51 而言, C52 具有低功耗、高性能、多功能等优势, 且具有 8K 擦除闪存2。所以, 本设计采用 STC89C52 作为主控芯片。2.2 电源模块本设计采用 USB 接口方式供电, 由直流电源插口和自锁开关构成, 其电路设计如图 1 所示。图 1 电源供电模块电路设计 下载原图其中直流电源插口的 2、3 引脚接地, 1 引脚接 VCC (
7、电源) , 但由于需要接自锁开关, 所以电源由自锁开关的另一个引脚连接, 接自锁开关的 5 引脚。2.3 指纹模块设计指纹模块用于指纹采集和指纹开锁。本设计选用型号为 ZFM608 的指纹模块, 其主要完成指纹的采集、指纹对比以及指纹存储。该模块有 DSP 芯片、光学头、通信连接线、稳压芯片、FLASH 芯片、CMOS 传感器等部件, 其电路设计如图 2所示。图 2 指纹模块电路图 下载原图其中, 引脚 2 完成感应信号的输出功能。引脚 4 完成指纹模块的数据输出功能。引脚 5 完成指纹模块数据接收的功能。指纹模块与单片机通信采用串口的方式进行接收和发出信号, 其功能主要靠程序实现。另外, 在
8、设计过程中指纹模块和单片机的波特率必须一致, 具体为 9600bps。2.4 按键模块设计按键模块主要是对管理员模式下的功能进行选择, 比如指纹的采集、删除, 开锁方式等选择, 同时可完成密码开锁。由于功能需求, 本设计采用非编码矩阵式键盘, 具体电路如图 3 所示。图 3 按键电路图 下载原图其中, P1.0P1.3 引脚作为输入端, P1.4P1.7 引脚作为输出端, 当按键按下时呈低电平, 完成相应的功能选择。16 个按键中有 09 十个数字按键, AD 四个功能按键, 以及两个空键。通过 14 个按键的输入, 将信号传输到单片机上, 之后经过程序处理, 完成相应的功能。系统采用软件消抖
9、的方式, 防止按键过程中干扰信号的影响。2.5 液晶显示模块设计液晶显示屏选用 LCD12864 型号, 需要 5V 电压驱动, 带背光, 128*64 像素, 该模块有便捷的接口处理、写入操作灵活, 人机友好型交互3。同时, 还具有以下特点:一是内部已有 8192 个 16*16 点汉字, 以及 128 个 16*8 点 ASCII 字符集;二是可完成图形显示;三是低电压低功耗。该模块有串口和并口两种通讯方式, 有 20 个引脚。由于串口方式接口相对简单, 和单片机通信只需要 2 个 I/O 口, 在电路设计中更加方便, 所以一般在设计中选择该方式。LCD12864 的电路设计如图 4 所示
10、。图 4 12864 引脚与单片机连接图 下载原图12864 选择的是串行工作方式, 即 15 引脚 PSB 接地, 可以使 714 引脚的数据I/O 口悬空而, 在能够实现数据显示的同时, 减少了引脚的使用, 减轻单片机负担。通过 3 引脚连接 10K 的电位器调节液晶显示屏的背光亮度。4、5、6 引脚作为主要的控制端, 它是按照基本的时序工作的, 其基本操作时序如表 1 所示。表 1 基本操作时序表 下载原表 如完成“欢迎使用门禁系统”的显示。首先, 初始化各个模块;其次, 定义写指令, 确定光标不显示, 且写的内容在液晶屏的中央;然后写数据, 将“欢迎使用门禁系统”写进去;最后将信息传送
11、到数据线上, 并读出来。2.6 报警模块设计报警模块是出于安全考虑, 当密码或指纹连续多次录入错误时, 能够及时发出警报。本设计选用有源蜂鸣器, 通过三极管 2N5401 放大单片机的输出电压为其提供驱动电压。三极管的导通由单片机的 P2.0 引脚控制。当 P2.0 引脚处于低电平的状态, 三极管导通, 蜂鸣器发出警报;当 P2.0 引脚处于高电平的状态时, 2N5401 处于断开状态, 蜂鸣器不可以发出警报。2.7 继电器模块设计继电器驱动模块利用其常开、常闭触点的通断, 外加电磁锁、实现锁的开关门功能。本系统采用型号为 SRD-05VDC-SL-C 的继电器, 其引脚连接如图 5 所示。图
12、 5 继电器驱动模块电路图 下载原图其中引脚 1 接地, 引脚 2 由单片机控制, 与单片机的 P3.6 引脚相连, 引脚3、4、5 与接线端子相连。图 5 中三极管选用 2N5401, 引脚从左到右分别为e、b、c。当单片机给的控制为低时, 即 b 引脚为低电压, 则 c 和 e 连接, 线圈带电, 常开触点闭合, 即接线端子 2、3 端闭合;当单片机给的控制为高时, 即b 引脚为高电压, 那么 c 和 e 断开, 线圈掉电, 常开端断开, 常闭端闭合, 即接线端子 1、2 端闭合, 由此完成开关门的任务。继电器的线圈和接线端子是分立互补影响的, 继电器的触点只相当于开关。2.8 掉电保护模
13、块设计掉电保护模块主要是当系统意外掉电后, 能够保存系统之前设置的密码。BL24C02 属于非挥发存储器件, 主要作用是防止掉电以后数据丢失。BL24C02 作为掉电保护装置, 每次修改密码, 掉点后再重启, 修改之后的密码依旧存在。BL24C02 电路设计如图 6 所示。图 6 BL24C02 电路图 下载原图图中地址输入脚 A0、A1、A2 用于多个器件级联时设置器件地址, 当悬空时认为没有连接其他器件。Vss 引脚接地, 7 引脚 (WP) 与单片机 P3.3 引脚连接, 用来写保护命令。6 引脚与单片机的 P3.4 引脚连接, 5 引脚与单片机的 P3.5 引脚连接, 完成数据的保护功
14、能。3 系统软件设计3.1 系统主程序设计系统程序的工作分析, 系统通电后首先进行初始化操作, 包括串口、液晶屏、定时器、按键、密码、继电器、指纹等, 同时进行液晶屏刷屏扫描、按键扫描;然后, 程序循环对键盘进行扫描, 等待有按键按下并执行相应的功能。当按下开关键之后, 显示“欢迎使用指纹系统”, 第一次使用时需要先录入指纹, 否则手指按在指纹模块上开锁, 蜂鸣器会报警且无法打开门。当录取指纹完成后即可开锁。当指纹设备出现故障时, 可以采用管理员密码直接开锁。系统的主程序控制流程如图 7 所示。图 7 主程序流程图 下载原图3.2 矩阵键盘控制程序设计矩阵键盘包含 10 个数字输入按键和 4
15、个功能按键, 其中 A 为进入管理员模式按键、B 为修改密码时的删除按键、C 为退出按键、D 为确定按键。在管理员模式中, 按键 1 是增加指纹功能、按键 2 是删除指纹功能、按键 3 是紧急开锁功能、按键 4 是修改密码功能, 其控制流程如图 8 所示。3.3 显示模块程序设计显示模块的主要任务是显示系统当前状态。当系统开启时, 显示“欢迎使用指纹系统”;如按下按键“4”后显示“修改密码”, 之后根据按键的指令实现相关的操作并将其显示在 LCD 显示屏上。LCD12864 液晶模块内含数字库和处理器, 具有自己的一套指令系统, 用户只需依照规定的指令格式, 给模块发送指令, 完成相应的功能。
16、图 8 键盘程序控制流程图 下载原图3.4 指纹模块程序设计单片机与指纹模块之间采用串口方式进行通信。首先通过串口向指纹模块发送命令, 然后等待指纹模块传回数据, 并通过单片机进行数据的处理, 从而判断命令是否执行, 如确认码为 00H 表示指纹录入成功。其串口通信数据接收和发送流程如图 9 所示。系统中如完成指纹的采集工作, 首先单片机给指纹模块发送一个指纹采集命令, 指纹模块收到命令后进行指纹采集, 之后将采集到的数据传回单片机, 单片机判断采集是否成功, 若成功, 在缓存区读出所对应的指纹数据。图 9 串口通信数据发送、接收流程图 下载原图4 结论系统按上文设计完成焊接, 采用 C 语言进行程序编写, 并通过 STC-ISP-V480 软件将程序烧录到 STC89C52 中, 从而实现整个系统的功能。该设计具有操作简单、安全、实惠等优点, 经过专业包装可用于家庭、厂房、公司等场所。参考文献1王金国.采用单片机的电子密码锁控制电路J.山东煤炭科技, 2000, 23 (03) :30-32. 2张淑骅.基于 AT89S52 单片机的密码锁设计J.才智, 2013, (27) :258. 3韩琇.基于 ARM 的门禁技术研究D.济南:山东大学, 2006.