基于单片机的指纹密码锁

【摘要】 本设计是一款基于单片机的指纹识别电子密码锁系统。该系统以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.rhkb.cn/news/137.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉

文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程,但太费劲了,这里有个非常简便的好方法,分享给大家。 1. 导入QXlsx库 转载链接 :https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md…

QT + Opencv 实现灰度模板匹配

QT Opencv 实现灰度模板匹配 实现思路 1.模板创建代码思路 1 初始化和准备: 使用 cv::buildPyramid 函数构建图像金字塔。图像金字塔是一种多分辨率表示,每个层级的图像分辨率逐步降低。 调整 m_TemplData 的大小以匹配图像金字塔的层级数。 计算每…

深度学习知识点:LSTM

文章目录 1.应用现状2.发展历史3.基本结构4.LSTM和RNN的差异 1.应用现状 长短期记忆神经网络(LSTM)是一种特殊的循环神经网络(RNN)。原始的RNN在训练中,随着训练时间的加长以及网络层数的增多,很容易出现梯度爆炸或者梯度消失的问…

git提交

基本流程:新建分支 → 分支上开发(写代码) → 提交 → 合并到主分支 拉取最新代码因为当前在 master 分支下,你必须拉取最新代码,保证当前代码与线上同步(最新),执行以下命令:bashgit pull orig…

Spring——自动装配

假设一个场景: 一个人(Person)有一条狗(Dog)和一只猫(Cat),狗和猫都会叫,狗叫是“汪汪”,猫叫是“喵喵”,同时人还有一个自己的名字。 将上述场景 抽象出三个实体类&…

基于 JavaEE 的影视创作论坛

在当今数字化时代,影视创作论坛成为了影视爱好者们交流与分享的重要平台。本文将详细介绍基于 JavaEE 的影视创作论坛的设计与实现,让大家了解其背后的技术奥秘。 文末附有完整项目代码 该论坛具备丰富的功能,包括首页推荐、用户管理、影片管…

系统思考—因果关系

果的背后是因,因的背后是系统:我们遇到的每个结果,无论是企业的业绩问题,团队的效率问题,还是个人的情绪问题,都源于我们日积月累种下的因。这些因可能是错误的习惯、僵化的制度、还是短视的决策。 改变系…

JS爬虫实战演练

在这个小红书私信通里面进行一个js的爬虫 文字发送 async function sendChatMessage(content) {const url https://pro.xiaohongshu.com/api/edith/ads/pro/chat/chatline/msg;const params new URLSearchParams({porch_user_id: 677e116404ee000000000001});const messageD…

IDEA中创建maven项目

1. IDEA中创建maven项目 在IDEA中创建Maven项目,前提是已经安装配置好Maven环境。如还未配置安装Maven的,请先下载安装。如何下载安装,可参考我另外篇文章:maven的下载与安装教程本篇教程是以创建基于servlet的JavaWeb项目为例子&…

【C++入门】详解(中)

目录 💕1.函数的重载 💕2.引用的定义 💕3.引用的一些常见问题 💕4.引用——权限的放大/缩小/平移 💕5. 不存在的空引用 💕6.引用作为函数参数的速度之快(代码体现) &#x1f4…

django基于Python的电影推荐系统

Django 基于 Python 的电影推荐系统 一、系统概述 Django 基于 Python 的电影推荐系统是一款利用 Django 框架开发的智能化应用程序,旨在为电影爱好者提供个性化的电影推荐服务。该系统通过收集和分析用户的观影历史、评分数据、电影的属性信息(如类型…

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…

_STM32关于CPU超频的参考_HAL

MCU: STM32F407VET6 官方最高稳定频率:168MHz 工具:STM32CubeMX 本篇仅仅只是提供超频(默认指的是主频)的简单方法,并未涉及STM32超频极限等问题。原理很简单,通过设置锁相环的倍频系数达到不同的频率&am…

python类和对象

一、什么是类和对象 类和对象一般是编程中较早接触到的比较抽象的概念,其实我们只要按照我们现实生活的实例去类比,就很好理解了 概念理解 我们可以把类比做是一个盖房子的图纸,对象比做是根据图纸去创建出来的一栋房子,这样每…

太原理工大学软件设计与体系结构 --javaEE

这个是简答题的内容 选择题的一些老师会给你们题库,一些注意的点我会做出文档在这个网址 项目目录预览 - TYUT复习资料:复习资料 - GitCode 希望大家可以给我一些打赏 什么是Spring的IOC和DI IOC 是一种设计思想,它将对象的创建和对象之间的依赖关系…

CNN Test Data

由于数据量过大,打不开了 搞一组小的吧。收工睡觉 https://download.csdn.net/download/spencer_tseng/90256048

Windows下调试Dify相关组件(2)--后端Api

1.部署依赖的服务(代码最外层的docker目录) 1.1 将middleware.env.example复制,并改名为middleware.env。 1.2 查看docker-compose.middleware.yaml,有5个服务 db:postgres数据库。 redis:redis缓存。 sa…

从预训练的BERT中提取Embedding

文章目录 背景前置准备思路利用Transformer 库实现 背景 假设要执行一项情感分析任务,样本数据如下 可以看到几个句子及其对应的标签,其中1表示正面情绪,0表示负面情绪。我们可以利用给定的数据集训练一个分类器,对句子所表达的…

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中,阅读了官方文档,在之前做flutter时候,经常使用overlay,使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…

基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)

本篇技术博文摘要 🌟 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 📘 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。我…