基于单片机的指纹打卡机设计

2023-11-11 20:20

本文主要是介绍基于单片机的指纹打卡机设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博主主页:单片机辅导设计
博主简介:专注单片机技术领域和毕业设计项目。

文章目录

  • 主要介绍
  • 一、本设计的研究内容
  • 二、 系统方案的制定
    • 2.1系统功能要求
  • 三、系统硬件设计
    • 3.1系统整体设计
  • 三、系统软件设计
    • 4.1系统主程序设计
  • 四、结论
  • 目录


主要介绍

   在科学技术飞速发展的今天,社会对身份识别的要求越来越高,尤其是在企业管理的人员签到、工作考勤等活动中对身份识别的高效性和可靠性的需求更为迫切。传统的身份识别方式已经难以满足信息高度机密化的现代社会的需求。但随着计算机运算能力的不断增强以及相关算法的不断完善,指纹识别技术在身份识别领域的应用越来越普遍。
因此,将指纹识别技术应用于签到考勤中,做成指纹打卡机,能够很好的满足现代社会的要求。本设计以STC12系列单片机作为主控芯片,设计一个满足基本考勤要求的指纹打卡机系统。整个系统最终功能包括指纹登记、指纹签到签退、指纹信息删除以及打卡时间显示等,能够基本满足一般的考勤需要。

关键词: 指纹 打卡机 单片机

一、本设计的研究内容

本课题,主要是针对传统考勤系统易作假、难管理、低效率等不足,利用指纹识别技术、单片机控制技术等手段,设计一种高效、可靠、便捷的指纹打卡机。其功能满足指纹登记、指纹考勤(签到、签退)、指纹修改和删除等。整个系统以增强型STC12系列单片机作为主控芯片,实现对指纹模块(FM-70)、显示模块(LCD1602)、按键模块等各部分的控制,从而构成一台完整独立的指纹打卡机。
该打卡机设计为脱机型打卡机[9],不需要PC的参与就可以独立完成考勤功能,实用性强。这就避免由于上层控制端(如PC机)出现故障或者不匹配而导致指纹打卡机无法正常工作的情况。另外,脱机型打卡机灵活性强,只需要提供相适应的电源,就能够在各种各样的场合使用。与联机型指纹打卡机相比,脱机型指纹打卡机不需要依靠复杂的数据库技术,系统结构简明直观,一定程度上降低了开发难度。
传统的指纹打卡机一般采用指纹图像统计方法[7]来进行指纹识别,即将采集到的指纹图像与指纹库里的指纹图像进行统计比较,计算出两者的相似度,当相似度达到设定值,则判断两幅指纹图像来自同一人,从而实现身份认证。但这种方法存在比较明显的缺点,因为采集指纹图像时,会由于指纹清洁度或手指滑动、旋转、角度等问题,导致同一根手指采集到的指纹图像相差较大,从而使得误识率和拒识率偏高。针对这点,本设计采用的是指纹图像特征对比的方法,即通过比较两幅指纹图像的特征结构,来判断两幅指纹图像是否来自同一个人。即使由于各种原因导致前后采集的两幅指纹图像差异较大,但两者之间的特征结构依然相差不大。因此,利用特征对比的方法能很好解决上述问题。
特征对比包括两个部分:特征提取、特征匹配。为了更好地降低指纹识别的误识率和拒识率,本设计采用8邻点统计提取方法[4]和点模式匹配算法[4]。
(1)特征提取
在提取特征之前,需要进行细化,步骤如下:
①从整幅指纹图像中,找出所有纹线边界点;
②判断该边界点是否该删除;
对边界点P(图2-1),顶替两个特征量nsum和tsum,他们的值分别为
nsum= (1)
tsum= (2)
如果P点的值同时满足tsum=2,nsum≠1且nsum<6,则可以将其删除(像素值置为0)。

在这里插入图片描述

图1-1 8邻点分布图
③对下一个边界点进行判断,直到整幅指纹图像都没有可以删除的边界点为止。
指纹细节特征点(端点和分叉点)的提取是按照8邻点统计方法进行的。目标像素点P以及其8邻点的定义如图1-1所示,对目标像素点P,计算其nsum和tsum的值。工式(1)描述为:如果naum=1,则P为纹线端点;如果nsum=3,则P为纹线分叉点。该公式必须在指纹纹线被严格细化成单像素宽的情况下,才能正常工作。公式(2)描述为:如果tsum=2,则P为纹线端点;如果tsum=6,则P为纹线分叉点。该公式不仅适用于完全细化的图像,还适用于未完全细化的图像。
由于存在大量噪声,所以需要注意对原始细节特征点集中的伪特征进行删除。
(2)特征匹配
特征匹配又分为两种:特征对比、特征搜索。特征对比就是把待识别指纹特征文件与模块中的一个模板文件进行匹配,即1:1方式;特征搜索就是把待识别指纹文件与模块中的多个模板进行匹配,即1:N方式。
目前比较先进的匹配算法为点模式匹配算法[4]:从待识点集中选择任意一个特征点pi,再从模板点集中选择任一个特征点qk,然后把两者组成一对特征点对。分别在待识指纹图像和模板指纹图像中确定出两个距离它们最近的特征点p1、p2和q1、q2组成特征点子集。这样,分别在待识指纹图像和模板指纹图像中就形成了两个三角形(pi,p1,p2)和(qk,q1,q2),通过判断这两个三角形的相似度来确定特征点对是否匹配。
三角形相似度判断的步骤如下:①分别计算顶点pi和qk所对应的边长; ②如果,说明两个三角形所对应的一条边不等长,即两个三角形不可能相似,结束本次判断;③选择新的顶点pi和qb,以及距离它们最近的两个特征点,返回第①步;④否则,分别计算和。如果且,则两个三角形的三边近似相等,也就是两个三角形近似全等。·

二、 系统方案的制定

2.1系统功能要求

本设计的基本功能要求如下:
功能1:录入功能,录入人员的指纹信息,并同时输入对应的编号,并在显示屏上显示,系统自动保存;
功能2:指纹打卡功能(包括签到、签退),人员输入指纹信息,若不存在,系统提示错误;若存在,则系统自动输出对应的人员编号信息,记录并显示打卡时间;
功能3:信息删除和修改功能,系统可以随意修改或删除人员信息。
根据功能要求,拟出三种方案。

三、系统硬件设计

3.1系统整体设计

根据课题设计的功能要求,并综合成本、性能和开发难度等因素,最终确定好整个系统的硬件结构,其电路图、最终实物图分别如图3-1、图3-2所示。
在这里插入图片描述

图3-1 系统电路图
在这里插入图片描述

图3-2 系统实物图
按键模块和蜂鸣器由P3口驱动。另外,电源模块设计为5V直流电输入,并附加一个LED灯作为系统通电标志。

三、系统软件设计

4.1系统主程序设计

利用STC12C5A60S2作为主控芯片设计指纹打卡机,其主程序流程图如图4-1所示。
在这里插入图片描述

图4-1 系统主程序流程图

四、结论

  根据设计要求,本系统已基本实现以下功能:①人员指纹登录,系统上电后,各模块初始化,通过按键选择指纹登录功能,系统进入指纹登录模式,人员可以把自己的指纹信息存入到系统当中并进行编号;②人员考勤签到,通过按键选择指纹签到模式,签到模式又分为签到与签退,第一次指纹打卡为签到,系统将签到人的指纹信息与指纹库中的指纹模板进行匹配,若指纹符合,则签到成功,液晶屏显示签到时间和签到人员的编号。若指纹不符合,则液晶屏不显示;第二次指纹打卡为签退,系统将签退人的指纹信息与指纹库中的指纹模板进行匹配,若指纹符合,则签退成功,液晶屏同时显示签到签退时间;③指纹信息删除,通过按键选择指纹删除模式,系统清除指纹库里的所有指纹模板。
虽然该系统基本满足指纹打卡需求,但功能相对简单,而且还有很多需要完善的地方,如指纹存储容量不够大,显示信息不够详细,删除功能并没做到真正的随意删除和修改等。在以后的学习当中,我会对系统作进一步改进。

目录

目录
第1章 引言 1
1.1 指纹识别的研究意义 1
1.2 指纹识别的国内外发展现状 2
1.3 本设计的研究内容 2
第2章 系统方案的制定 6
2.1 系统功能要求 6
2.2 方案一 6
2.3 方案二 7
2.4 方案三 7
2.5 最终方案确定 8
第3章 系统硬件设计 9
3.1 系统整体设计 9
3.2 系统主控模块(STC12C5A60S2系列) 10
3.3 指纹识别模块(FM-70) 12
3.2.1 FM-70的特点 12
3.2.2 FM-70管脚功能 13
3.2.3 FM-70内部资源介绍 14
3.3.4 FM-70主要指令 14
3.4 显示模块(LCD1602) 15
3.5 独立按键模块 17
3.6 时钟模块(DS1302) 18
3.7 蜂鸣器 19
第4章 系统软件设计 21
4.1 系统主程序设计 21
4.2 指纹采集程序设计 23
4.3 指纹签到程序设计 26
4.4 指纹删除程序设计 28
4.5 开发环境介绍(Keil) 30
结 论 32
致 谢 33
参考文献 34

这篇关于基于单片机的指纹打卡机设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/392589

相关文章

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激