基于单片机的指纹密码锁

devtools/2025/1/14 17:52:45/
【摘要】 本设计是一款基于单片机的指纹识别电子密码锁系统。该系统以STC89C52单片机作为模块核心同时结合ZFM-60指纹模块实现录取指纹并存储指纹数据的功能,并且通过HS12864-15C液晶显示比对流程及比对结果,该指纹电子密码锁通过直流继电器与发光二极管来模拟开锁的动作。本系统有小体积、高性价比、高传输速度的特点,适合家庭及单位使用。
【关键词】 单片机;指纹比对;电子密码锁;液晶屏

1 引言

我们现在市场上的主流密码锁一般都是电子设计的,但是这种密码锁的设计有很多缺陷比如他容易被人窃取密码同时主人也很容易忘记密码,由于这类情况的发生大大增加了安全隐患。因此人们开始转而探索生物识别技术,希望可以利用此技术来应付现在系统安全所面临的挑战。据研究结果表明,人类身体的很多部位具有不可复制的特点,比如人类的声音、视网膜、指纹等等都是我们人体
独有的特征。这些外部条件让我们的身份认证更加安全方便,其中近年来发展成熟的指纹识别技术成为生物识别技术中的热点。

2 系统硬件设计

基于单片机的指纹电子密码锁硬件模块主要有指纹传感器,电源,单片机,继电器,液晶显示屏,按键等构成。在系统工作时硬件中的指纹模块可以对外来指纹进行录入和清除工作,这一硬件部分的工作是采用C 语言构建系统程序,单片机通过对不同的按键执行操作后向模块发送相应指令,完成对应功能。在硬件与软件完成匹配调试后,整体可构成一个独立的指纹识别系统。

2.1 按键模块

矩阵式键盘由行线和列线构成,其中按键的位置位于行和列的交叉点上。当键被按下时,其交点处的行线和列线接通,随即对应的行线或列线上的电平会产生变化。通过检测行或列线上的电平变化,单片机可以确定哪个按键被按下。
在本设计中我们采用了逐行扫描法来实现按键检测的功能,识别的具体过程如下:
判断键盘中是否有键按下。本设计中将行线设置为输出口,并且输出低电平;同时将列线设置为输入口,输出为高电平。我们在读取的时候只需查看列线上的电平状态,如果有一列的电平为低电平,就表示此时有按键按下。
判断被按下按键所在的位置。在确认有键按按下后依次将每根行线设置为输出口,并输出低电平然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与行线交叉处的按键就是被按下的按键。按键位置确定后,我们采用计算法编码的方法给矩阵键盘中的每个按键进行编号。

2.2 指纹模块

本设计我们所选择的是型号为 ZFM60 的指纹模块,该指纹模块里面主要是型号为 AS606 DSP 芯片,其中芯片外面装载有 CMOS 芯片,当我们录入两次这样的指纹特征时就能生成一个指纹模板。当指纹模板处于工作状态时,模块会将第一次录入的指纹信息进行模糊处理并且生成“0 ”和“ 1 ”两种不同的信息同时模块会把生成的信息存入到FLASH 芯片里面。当使用到指纹模块的识别模式时, CMOS 芯片将采集到的指纹和之前存储在FLASH 芯片里的数据库进行对比,并且从N 个录入的指纹数据里面找出与之对应的指纹。单片机会对识别结果进行判断,如果存在的话就会显示对应的指纹标号。

2.3 液晶显示器

在本设计中采用了 12864 液晶显示器,显示器主要完成数据的显示功能。本设计一开始必须对用户所编的显示程序进行初始化,否则该指纹模块会出现无法正常显示的问题,在模块接收到其他指令前,单片机必须确认模块内部处于非忙碌的工作状态,然后显示器会接收到指令,并且根据相应的指令将需要显示的内容放在显示屏上。

2.4 记忆存储设计

本设计中将 AT24C02 作为记忆存储装置, AT24C02 是美国Atmel公司一款低功耗的的 CMOS E2PROM ,它的工作电压范围为2.5V-5V。 AT24C02 内部含有 256*8 位存储空间以及一个 16 字节页写缓冲器。该器件通过I2C 总线接口进行操作并且有一个专门的写保护功能。AT24C02 有良好的资料保存功能,在断电的情况下芯片里面的资料能保存几十年。

3 软件设计部分

本设计采用 keil 进行 C 源码编程, keil 软件可以提供丰富的库函数和功能强大的集成开发调试工具,能够连接和重定位目标文件和库文件,创建HEX 文件,调试目标程序。

4 系统调试

keil 编写的程序分别对矩阵键盘,显示屏以及指纹模块进行调试,同时检验蜂鸣器、继电器、LED 灯是否正常工作。通过软件硬件的调试,判断基于单片机的指纹密码锁能不能实现正常采集、录入、存储指纹的功能。

5 结束语

本文提出的指纹密码锁将单片机和指纹模块结合在一起,通过人体指纹独有特性提高了电子锁的安全性能。同时本设计的软件和硬件还有很大的扩展性可以增加其他功能,有一定推广性。

http://www.ppmy.cn/devtools/150467.html

相关文章

Cisco认证是Cisco公司建立的网络技术证书体系

思科认证体系是由Cisco公司建立的分为3个层次的网络技术证书体系,随着Cisco产品线的扩大和市场份额的不断提升,Cisco产品从当初仅有的 Cisco路由器和Cisco交换机发展到现在的6大方向:路由交换,网络设计,网络安全&#…

ubuntu报错:没有在该文件夹中粘贴文件的权限

1 现象: 近期给ubuntu扩展了硬盘,但是在其中进行文件操作时提示“没有在该文件夹中粘贴文件的权限” 2 原因: 新增硬盘挂载地址为“/home/username/data/” 终端输入 ls -ld /home/username/data/输出 drwxr-xr-x 3 root root 4096 1月…

Mysql--架构篇--体系结构(连接层,SQL层,存储引擎层,文件存储层)

MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),其体系结构设计旨在提供高效的数据存储、查询处理和事务管理。MySQL的体系结构可以分为多个层次,每个层次负责不同的功能模块。 MySQL的体系结构主要由以下几个部分组成&#…

【集成学习】Stacking算法详解

文章目录 1. Stacking核心思想2. 多层Stacking2.1 如何减轻多层Stacking过拟合 3. 重复K折Bagging: 集成学习(Ensemble Learning)是一种通过结合多个模型的预测结果来提高整体预测性能的技术。常见的集成学习框架有:Bagging、Boos…

80个Three.js 3D模型资源

Three.js 3D模型资源”涵盖了在WebGL和JavaScript环境下使用three.js库进行3D建模和渲染的基础知识。 Three.js是目前最流行的JavaScript库之一,用于创建和展示交互式的3D图形。它允许开发者在浏览器中直接构建复杂的三维场景,无需深入学习底层的WebGL …

《系统爆破:MD5易破,后台登录可爆破?》

声明:笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 爆破Sales系统 一、爆破MD5 场景:已知MD5的加密字符串,如何得知明…

MATLAB语言的函数实现

MATLAB语言中的函数实现详解 引言 MATLAB(矩阵实验室)是一种高级语言和互动环境,广泛应用于数值计算、数据分析、可视化以及工程与科学计算等多个领域。MATLAB的强大之处在于其丰富的函数库以及用户自定义函数的能力。本文将深入探讨MATLAB…

Node.js——http 模块(二)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…