基于单片机的指纹密码锁

【摘要】 本设计是一款基于单片机的指纹识别电子密码锁系统。该系统以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 结束语

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952958.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业总部和分支通过GRE VPN互通

PC1可以ping通PC2 1、首先按照地址表配置ip地址 2、分别在AR1和AR3上配置nat 3、配置GRE a 创建tunnel接口,并选择tunnel协议为GRE,为隧道创建一个地址,用作互联 b 为隧道配置源地址或者源接口,这里选择源接口;再为…

回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测

回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测 目录 回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测。 程序设计 完整代码:回…

计算机网络(五)运输层

5.1、运输层概述 概念 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时…

【PPTist】插入形状、插入图片、插入图表

一、插入形状 插入形状有两种情况,一种是插入固定的形状, 一种是插入自定义的形状。 插入固定的形状时,跟上一篇文章 绘制文本框 是一样一样的,都是调用的 mainStore.setCreatingElement() 方法,只不多传的类型不一…

Elasticsearch—索引库操作(增删查改)

Elasticsearch中Index就相当于MySQL中的数据库表 Mapping映射就类似表的结构。 因此我们想要向Elasticsearch中存储数据,必须先创建Index和Mapping 1. Mapping映射属性 Mapping是对索引库中文档的约束,常见的Mapping属性包括: type:字段数据类…

ROS Action接口

实现自主导航是使用Action接口的主要目的 在实际使用navigation导航系统的时候,机器人需要自主进行导航。不能每次都手动设置导航的目标点。所以需要编写程序代码来实现导航控制。这就需要使用到navigation的导航接口。Navigation的这个导航接口有好几个。Rose官方…

macOS 安装tomcat9

macOS 安装tomcat9 URL:https://tomcat.apache.org/download-90.cgi 解压之后放到指定目录 /Users/lanren/install/tomcat-9 自己取个名字就行 给权限: ① 先进行权限修改:终端输入sudo chmod 755 /Users/lanren/install/tomcat-9/bin/…

PatchTST:通道独立的、切片的 时序 Transformer

出处:ICLR 2023 代码链接:yuqinie98/PatchTST: An offical implementation of PatchTST: "A Time Series is Worth 64 Words: Long-term Forecasting with Transformers." (ICLR 2023) https://arxiv.org/abs/2211.14730 一 模型主要思想及…

QT c++ 样式 设置 按钮(QPushButton)的渐变色美化

上一篇文章中描述了标签的渐变色美化,本文描述按钮的渐变色美化。 1.头文件 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> //#include "CustomButton.h"#include <QVBoxLayout> #include <QLinearGradient> #include <QPushButton&…

OPT: Open Pre-trained Transformer语言模型

摘要 大规模语言模型通常需要数十万计算日的训练时间&#xff0c;展现了在零样本和小样本学习中的显著能力。鉴于其计算成本之高&#xff0c;这些模型在没有大量资本投入的情况下难以复现。对于那些通过API提供的少数模型&#xff0c;研究者无法获取完整的模型权重&#xff0c…

力扣257(关于回溯算法)二叉树的所有路径

257. 二叉树的所有路径 一.问题描述 已解答 简单 相关标签 相关企业 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,5…

《OpenCV计算机视觉实战项目》——银行卡号识别

文章目录 项目任务及要求项目实现思路项目实现及代码导入模块设置参数对模版图像中数字的定位处理银行卡的图像处理读取输入图像&#xff0c;预处理找到数字边框使用模版匹配&#xff0c;计算匹配得分 画出并打印结果 项目任务及要求 任务书&#xff1a; 要为某家银行设计一套…

Python学习(三)基础入门(数据类型、变量、条件判断、模式匹配、循环)

目录 一、第一个 Python 程序1.1 命令行模式、Python 交互模式1.2 Python的执行方式1.3 SyntaxError 语法错误1.4 输入和输出 二、Python 基础2.1 Python 语法2.2 数据类型1&#xff09;Number 数字2&#xff09;String 字符串3&#xff09;List 列表4&#xff09;Tuple 元组5&…

系统思考—要素连接

“改变你的思维&#xff0c;就能改变你的世界”— 诺曼皮尔 世界上的所有事物&#xff0c;都在规律的支配下&#xff0c;以系统的方式运转。显性的部分是我们能看到的“要素”&#xff0c;而那些看不见的力量&#xff0c;正是推动系统运作的要素之间的相互作用。更隐秘的&…

云原生(1)

作业&#xff1a; 1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shel 脚本将/usr/local 日录下大…

【IO编程】文件IO的API

这篇文章在 文章&#xff1a;【文件I/O】文件持久化 的基础之上&#xff0c;更进一步的描述了文件IO中更多更详细的API详解。 文件IO 文件IO操作是必须要理解的环节之一&#xff0c;因为 s&#xff1a;套接字文件 &#xff1b;p: 管道文件 —> 都需要通过文件IO来进行打开…

【数据库】Unity 使用 Sqlite 数据库

1.找到需要三个 DLL Mono.Data.Sqlite.dllSystem.Data.dllsqlite3.dll 上面两个dll可在本地unity安装目录找到&#xff1a; C:\Program Files\Unity\Hub\Editor\2022.3.xxf1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32 下面dll可在sqlite官网下载到&#xff…

省级-农业科技创新(农业科技专利)数据(2010-2022年)-社科数据

省级-农业科技创新&#xff08;农业科技专利&#xff09;数据&#xff08;2010-2022年&#xff09;-社科数据https://download.csdn.net/download/paofuluolijiang/90028570 https://download.csdn.net/download/paofuluolijiang/90028570 数据 年份、省份、农业科技专利数量…

51单片机——定时器中断(重点)

STC89C5X含有3个定时器&#xff1a;定时器0、定时器1、定时器2 注意&#xff1a;51系列单片机一定有基本的2个定时器&#xff08;定时器0和定时器1&#xff09;&#xff0c;但不全有3个中断&#xff0c;需要查看芯片手册&#xff0c;通常我们使用的是基本的2个定时器&#xff…

计算机的错误计算(二百零九)

摘要 利用两个大模型判断 是否为有理数&#xff1f;其值是多少&#xff1f;由实验知&#xff0c;其中一个大模型判断错误&#xff0c;说不是有理数&#xff1b;至于其值&#xff0c;该大模型选了一个错误的数值。 例1. e^(45*ln(24.8))是有理数吗&#xff1f;其值是多少&am…