基于单片机的指纹打卡机设计-毕业论文_第1页
基于单片机的指纹打卡机设计-毕业论文_第2页
基于单片机的指纹打卡机设计-毕业论文_第3页
基于单片机的指纹打卡机设计-毕业论文_第4页
基于单片机的指纹打卡机设计-毕业论文_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的指纹打卡机设计-毕业论文文档均为word文档,下载后可直接编辑使用亦可打印摘要在科学技术飞速发展的今天,社会对身份识别的要求越来越高,尤其是在企业管理的人员签到、工作考勤等活动中对身份识别的高效性和可靠性的需求更为迫切。而传统的个人身份识别手段,如钥匙、密码、IC卡等,由于具有可盗用、可伪造、可破译的等一系列缺点,已经难以满足信息高度机密化的现代社会的需求。但随着计算机运算能力的不断增强以及相关算法的不断完善,指纹识别技术在身份识别领域的应用越来越普遍。由于指纹具有终生不变性、唯一性和不可代替性,使得身份的确定更加可靠、准确。因此,将指纹识别技术应用于签到考勤中,做成指纹打卡机,能够很好的满足现代社会的要求。本设计以STC12系列单片机作为主控芯片,设计一个满足基本考勤要求的指纹打卡机系统。其模块分为单片机主制模块、FM-70光学指纹模块、LCD显示模块以及按键模块。整个系统最终功能包括指纹登记、指纹签到签退、指纹信息删除以及打卡时间显示等,能够基本满足一般的考勤需要。关键词:指纹打卡机单片机基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第1页。

DesignofFingerprintAttendanceMachineBasedonSingleChipMicrocomputer基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第1页。AbstractIntherapiddevelopmentofscienceandtechnologytoday,thecommunityisincreasinglydemandingtheidentification,especiallyintheenterprisemanagementpersonnelattendance,workattendanceandotheractivitiesintheidentificationofthehighefficiencyandreliabilityofthemoreurgent.Thetraditionalpersonalidentificationmethods,suchaskeys,passwords,ICcards,etc.,duetothetheft,canbeforged,canbedecipheredandaseriesofshortcomings,hasbeendifficulttomeettheinformationhighlyconfidentialneedsofmodernsociety.However,withthecontinuousenhancementofcomputercomputingabilityandthecontinuousimprovementofrelatedalgorithms,theapplicationoffingerprintrecognitiontechnologyinthefieldofidentificationisbecomingmoreandmorecommon.Asthefingerprinthasalifetimeofinvariance,uniquenessandirreplaceability,makingtheidentityofthemorereliableandaccurate.Therefore,thefingerprintrecognitiontechnologyusedtosignattendance,madeoffingerprintpunchcardmachine,canbeverygoodtomeettherequirementsofmodernsociety.ThedesigntoSTC12seriesmicrocontrollerasthemaincontrolchip,designameetthebasicattendancerequirementsofthefingerprintpunchcardmachinesystem.Themoduleisdividedintosingle-chipmainmodule,FM-70opticalfingerprintmodule,LCDdisplaymoduleandkeymodule.Thefinalfunctionoftheentiresystem,includingfingerprintregistration,fingerprintsign,fingerprintinformationdeletionandcheck-intimedisplay,etc.,canbasicallymeetthegeneralattendanceneeds.KeywordsFingerprintAttendance

machineSingleChipMicrocomputer基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第2页。

目录基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第2页。第1章 引言 11.1 指纹识别的研究意义 11.2 指纹识别的国内外发展现状 21.3 本设计的研究内容 2第2章 系统方案的制定 62.1 系统功能要求 62.2 方案一 62.3 方案二 72.4 方案三 72.5 最终方案确定 8第3章 系统硬件设计 93.1 系统整体设计 93.2 系统主控模块(STC12C5A60S2系列) 103.3 指纹识别模块(FM-70) 123.2.1FM-70的特点 123.2.2FM-70管脚功能 133.2.3FM-70内部资源介绍 143.3.4FM-70主要指令 143.4 显示模块(LCD1602) 153.5 独立按键模块 173.6 时钟模块(DS1302) 183.7 蜂鸣器 19第4章 系统软件设计 214.1 系统主程序设计 214.2 指纹采集程序设计 234.3 指纹签到程序设计 264.4 指纹删除程序设计 284.5 开发环境介绍(Keil) 30结论 32致谢 33参考文献 34基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第3页。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第3页。引言指纹识别的研究意义如今,无论在生活还是工作中,越来越多的场合需要进行身份认证,而很多传统的身份认证技术在科技日益发达的现代社会,渐渐显得有些心余力拙。于是,更为高效可靠的生物识别技术应运而生。该技术不仅可以应用于隐私保护中,还可以应用在身份确认上。生物识别技术[4]是把计算机技术、传感器技术、自动控制原理等结合起来,利用人体某些生理特性(如指纹、脸形、掌形等)或行为特征(如步态、签名、声音等)来实现身份识别的一种技术。生物特征识别技术的关键在于怎样得到这些生物特征,并且将它们转换为可编辑信息存储起来,从而生成特征库。然后利用算法将采集的生物特征与特征库里的生物特征进行匹配,进而实现人的身份认证和识别。可用于辨别人的身份的人体特征需满足以下特点:(1)唯一性;(2)稳定性;(3)普遍性;(4)易采集性;(5)可接受性。而指纹这一人体特征完全满足以上条件。在各种各样的身份识别技术当中,指纹识别技术具有很高的可行性和实用性。所以,指纹识别成为目前社会上最流行、最被人认可的身份识别方式,己经在人们生活的各个方面得到广泛应用。这是因为指纹是独一无二的,两人之间不可能存在相同指纹,另外,指纹的样本易于采集,难以伪造,便于开发,可利用多个指纹构成多重口令,以提高系统安全性。将指纹识别应用于打卡考勤[2]中,主要具有以下优势:1、可靠性,有效减少甚至消除身份假冒现象;2、便捷性,使用方便,不需要携带钥匙或者磁卡,同时也避免了钥匙、磁卡的丢失或者是忘记密码所带来的麻烦;3、高效性,无需在管理方面投入过多的人员,能够有效地避免人员资源的浪费。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第4页。就传统的打卡考勤方式而言,或多或少都会存在一些难以避免的漏洞。例如,在磁卡考勤系统中,有的员工把自己的IC卡交给别人代为打卡,这样不但影响到公司工作的正常进行,还会在团体中形成一种不良风气。由此可见,这种传统的打卡考勤方式效率低,管理不方便,所起到的意义微乎其微。而指纹打卡机则可以很好地解决这个问题,利用指纹的唯一性消除传统考勤中的作假现象,使的企业管理更加高效方便。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第4页。指纹识别的国内外发展现状在各种生物识别技术当中,指纹识别技术相对而言最为普遍,因其操作过程比较简单,识别准确率较高,所以在人们生活中得以广泛应用。目前国内针对指纹识别技术的研究已经逐步进入成熟阶段。自1993年指纹识别技术进入中国市场后,迅速被引用到各个领域,尤其在2003年联网门禁方案[2]实施后更是发展迅捷。无论在社会安全、经济活动还是个人隐私方面,都会经常见到与指纹识别技术相关的研究。就目前而言,指纹识别主要应用在以下几个方面:①门禁、枪盒、保险箱等安全领域;②POS机、考勤、驾培等身份领域;③授权许可、私人会所等管理领域;④指纹支付、养老医疗领取等金融领域[4]。除此之外,还有向身份证、机动车、家居等领域发展的趋势。随着指纹识别技术越来越成熟,开发应用的难度和成本越来越低,与指纹识别技术相关的产品也越来越多地出现在我们的生活当中。与此同时,由于计算机运算能力的提高和指纹匹配算法的不断完善,有关于将指纹识别应用于打卡考勤系统的研究已经基本稳定,其涉及的相关技术也都逐渐成熟。在国外许多大公司都设立了有关指纹识别技术研究的专门机构,以为自己的产品品牌服务,如韩国现代、IBM、Intel等。可见在国际市场中,指纹技术的发展已经相当成熟,其中有关于指纹采集以及图像的识别、处理、对比等在技术层面来说都已经很完善。在完善成熟的技术支撑下,指纹识别技术得以迅速发展并被广泛应用于各个领域,主要有金融商业、安保、信息保密等行业。该技术为这些行业提供了更为安全、可靠、高效的身份识别服务。本设计的研究内容本课题,主要是针对传统考勤系统易作假、难管理、低效率等不足,利用指纹识别技术、单片机控制技术等手段,设计一种高效、可靠、便捷的指纹打卡机。其功能满足指纹登记、指纹考勤(签到、签退)、指纹修改和删除等。整个系统以增强型STC12系列单片机作为主控芯片,实现对指纹模块(FM-70)、显示模块(LCD1602)、按键模块等各部分的控制,从而构成一台完整独立的指纹打卡机。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第5页。该打卡机设计为脱机型打卡机[9],不需要PC的参与就可以独立完成考勤功能,实用性强。这就避免由于上层控制端(如PC机)出现故障或者不匹配而导致指纹打卡机无法正常工作的情况。另外,脱机型打卡机灵活性强,只需要提供相适应的电源,就能够在各种各样的场合使用。与联机型指纹打卡机相比,脱机型指纹打卡机不需要依靠复杂的数据库技术,系统结构简明直观,一定程度上降低了开发难度。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第5页。传统的指纹打卡机一般采用指纹图像统计方法[7]来进行指纹识别,即将采集到的指纹图像与指纹库里的指纹图像进行统计比较,计算出两者的相似度,当相似度达到设定值,则判断两幅指纹图像来自同一人,从而实现身份认证。但这种方法存在比较明显的缺点,因为采集指纹图像时,会由于指纹清洁度或手指滑动、旋转、角度等问题,导致同一根手指采集到的指纹图像相差较大,从而使得误识率和拒识率偏高。针对这点,本设计采用的是指纹图像特征对比的方法,即通过比较两幅指纹图像的特征结构,来判断两幅指纹图像是否来自同一个人。即使由于各种原因导致前后采集的两幅指纹图像差异较大,但两者之间的特征结构依然相差不大。因此,利用特征对比的方法能很好解决上述问题。特征对比包括两个部分:特征提取、特征匹配。为了更好地降低指纹识别的误识率和拒识率,本设计采用8邻点统计提取方法[4]和点模式匹配算法[4]。特征提取在提取特征之前,需要进行细化,步骤如下:①从整幅指纹图像中,找出所有纹线边界点;②判断该边界点是否该删除;对边界点P(图2-1),顶替两个特征量nsum和tsum,他们的值分别为nsum=(1)tsum=(2)如果P点的值同时满足tsum=2,nsum≠1且nsum<6,则可以将其删除(像素值置为0)。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第6页。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第6页。P1P2P3P4PP5P6P7P8图1-18邻点分布图③对下一个边界点进行判断,直到整幅指纹图像都没有可以删除的边界点为止。指纹细节特征点(端点和分叉点)的提取是按照8邻点统计方法进行的。目标像素点P以及其8邻点的定义如图1-1所示,对目标像素点P,计算其nsum和tsum的值。工式(1)描述为:如果naum=1,则P为纹线端点;如果nsum=3,则P为纹线分叉点。该公式必须在指纹纹线被严格细化成单像素宽的情况下,才能正常工作。公式(2)描述为:如果tsum=2,则P为纹线端点;如果tsum=6,则P为纹线分叉点。该公式不仅适用于完全细化的图像,还适用于未完全细化的图像。由于存在大量噪声,所以需要注意对原始细节特征点集中的伪特征进行删除。特征匹配特征匹配又分为两种:特征对比、特征搜索。特征对比就是把待识别指纹特征文件与模块中的一个模板文件进行匹配,即1:1方式;特征搜索就是把待识别指纹文件与模块中的多个模板进行匹配,即1:N方式。目前比较先进的匹配算法为点模式匹配算法[4]:从待识点集中选择任意一个特征点pi,再从模板点集中选择任一个特征点qk,然后把两者组成一对特征点对。分别在待识指纹图像和模板指纹图像中确定出两个距离它们最近的特征点p1、p2和q1、q2组成特征点子集。这样,分别在待识指纹图像和模板指纹图像中就形成了两个三角形(pi,p1,p2)和(qk,q1,q2),通过判断这两个三角形的相似度来确定特征点对是否匹配。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第7页。三角形相似度判断的步骤如下:①分别计算顶点pi和qk所对应的边长;②如果,说明两个三角形所对应的一条边不等长,即两个三角形不可能相似,结束本次判断;③选择新的顶点pi和qb,以及距离它们最近的两个特征点,返回第①步;④否则,分别计算和。如果且,则两个三角形的三边近似相等,也就是两个三角形近似全等。·基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第7页。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第8页。

系统方案的制定基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第8页。系统功能要求本设计的基本功能要求如下:功能1:录入功能,录入人员的指纹信息,并同时输入对应的编号,并在显示屏上显示,系统自动保存;功能2:指纹打卡功能(包括签到、签退),人员输入指纹信息,若不存在,系统提示错误;若存在,则系统自动输出对应的人员编号信息,记录并显示打卡时间;功能3:信息删除和修改功能,系统可以随意修改或删除人员信息。根据功能要求,拟出三种方案。方案一方案一的系统框图如图2-1所示。DSPDSP指纹传感器模块TFT彩屏显示按键输入铁电芯片电源模块图2-1方案一系统框图基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第9页。方案一以DSP作为主控芯片,其具有较高速的运算能力,可以对指纹图像信息进行实时采集并保存。相对应的,存储模块采用铁电存储器,因为其延时非常小,速度非常快,正好与DSP的高速特点相匹配。显示模块采用TFT彩屏,功能也相对其他显示屏更为丰富。该系统的交换界面比较丰富,而且稳定性较高,但是成本相对来说比较高。无论是DSP芯片还是TFT彩屏,都比其他同类产品的价格高出很多。另外,DSP的编程难度比较大,算法复杂,所需开发时间比较长。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第9页。方案二方案二系统框图如图2-2所示。ARMARM指纹传感器模块TFT彩屏显示按键输入AT93C56时钟模块电源模块图2-2方案二系统框图方案二采用的是ARM控制芯片,它是一种32位的处理器,运算能力虽然没有DSP强,但也算比较快速一类单片机。存储模块使用的是ATMEL的AT93C56,其采用的是SPI的通讯协议。显示模块采用TFT彩屏,ARM处理器可以通过移植ucGUI函数来进行对TFT彩屏的控制。输入模块通过独立按键来实现,若是输入信息比较复杂,可以采用矩阵按键来代替。该方案成本相对方案一来说较低,但ARM处理器直接运算图像的速度比较弱,有可能导致指纹采集有误或者失败。方案三基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第10页。方案三系统框图如2-3所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第10页。51单片机51单片机指纹传感器模块LCD1602显示屏按键输入时钟模块蜂鸣器电源模块图2-3方案三系统框图方案三采用51单片机[6]作为系统的控制芯片,该方案所选择的51单片机是STC12系列的增强型1T速率的单片机。指纹模块选择的是FM-70系列光学指纹识别模块,其内置了高速DSP处理器,在无需上位机参与的情况下,具有指纹录入、图像处理、指纹匹配和模板储存等功能。显示模块采用的是LED1602显示屏,这是一种常用液晶显示屏,控制简单,价格相对便宜。最终方案确定从开发成本来看,方案三与其他两个方案相比较具有明显的优势。而且51单片机没有太多其他的外置电路,也就避免了多余电路的干扰,从而保证系统的稳定性。另外,51单片机功耗较低,能够通过软件设置省电模式以及空闲模式,工作在空闲模式的时候,可以在CPU不工作的情况下,保证串行口、中断系统和定时/计数器的正常运行。再者,51单片机比较经典,也就意味着书籍类资料和网上资源比较丰富,可参考例程较多,这也大大降低了开发难度。从这几个方面综合考虑,最终确定采用方案三所述系统作为本次设计的系统。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第11页。

系统硬件设计基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第11页。系统整体设计根据课题设计的功能要求,并综合成本、性能和开发难度等因素,最终确定好整个系统的硬件结构,其电路图、最终实物图分别如图3-1、图3-2所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第12页。图3-1系统电路图基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第12页。图3-2系统实物图系统以STC12C5A60S2单片机[8]作为控制芯片,通过P0口实现对时钟模块进行控制,P2口主要控制系统的显示模块。系统指纹模块与主控芯片的数据接收端(RXD)和数据发送端(TXD)连接,实现相互通讯。按键模块和蜂鸣器由P3口驱动。另外,电源模块设计为5V直流电输入,并附加一个LED灯作为系统通电标志。系统主控模块(STC12C5A60S2系列)本设计的主控模块采用增强型的STC12C5A60S2系列单片机,该单片机是单时钟/机器周期(1T)的单片机,是高速、低耗、强抗干扰的新型单片机,指令代码兼容性好,而且速度比8051单片机快8~12倍。与传统51单片机相比较,STC12C5A60S2具有以下优点:片内大容量1024字节RAM。在系统数据存储量不大的情况下,可直接用片内存储空间作为系统存储空间,因此系统不需要另外设计一个独立的数据存储模块,从而使得开发设计简单化;不需要外部晶振,内部集成高精度R/C时钟(0.3%)超强抗干扰:a)高抗静电(ESD保护基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第13页。b)在4kV脉冲干扰下也可以正常工作基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第13页。c)宽电压,不怕电源抖动d)宽温度范围(-40℃~+80℃超低功耗:a)掉电模式,外部中断唤醒功耗<0.1uAb)空闲模式,典型功耗<1mAc)正常工作模式,4mA~6mA编程和仿真都可直接在系统上完成,不需要独立的编程器和仿真器。STC12C5A60S2单片机最小系统如图3-3所示。图3-3STC12C5A60S2最小系统关于复位电路:本设计中采用的STC系列单片机具有内部复位功能,所以芯片的复位引脚可以悬空,系统一旦上电,芯片自动完成复位功能。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第14页。关于晶振电路:若是外部有源晶振频率大于33MHz,应该使用外部有源晶振,时钟从XTAL1脚输入,XTAL2脚悬空;若使用内部R/C振荡器时钟(温室情况下3V单片机为8MHz~12MHz,5V单片机为:11MHz~17MHz),XTAL1和XTAL2脚悬空。但由于有源晶振价格偏高,而且内部振荡时钟有可能因电压不稳定而造成频率变化,所以在本设计中采用标准的外部晶振电路(11.0592M)。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第14页。指纹识别模块(FM-70)指纹识别模块采用FM-70系列光学指纹模块[9],其电路图如图3-4所示。图3-4指纹模块电路图模块的数据输出引脚(TXD)与单片机的数据接收端连接,数据输入引脚(RXD)与单片机的数据发送端连接。3.2.1FM-70的特点FM-70可在无上位机的情况下,完成指纹采集、图像处理[11]、特征匹配和模块存储等功能,与同类产品相比较,FM-70具有以下特点:①采用光学传感器,成像清晰,失真率低;②反应灵敏,环境适应能力强,在读取指纹图像的时候,无论手指干湿都能做出快速的反应和判断,得到优质的图像质量;③采用绿的LED光源,在确保亮度的同时具有超低光衰,大大延长使用寿命;④二次应用开发简单,可根据FM-70模块提供的控制指令,按照自身开发需求来设计指纹识别应用系统;⑤应用广泛,无论是低端还是高端的应用系统,都适合使用。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第15页。⑥上电握手,在上电完成后,模块会自动向上位机发送一个握手标志,告诉上位机可以发出命令。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第15页。工作原理:(a)上位机发出指令,FM-70模块开始工作;(b)模块采集图像,先经过FM-70模块中的光学组件获得指纹图像,并进行相关的图像处理;(c)提取特征,通过指纹提取算法,从指纹图像中提取出特征信息。该模块所提取的指纹特征文件大小为256bytes,由每两个特征文件组成一个模板文件,并将其存储在模块当中;(d)特征匹配,先录入代验证指纹图像并经过处理、提取特征后,再与模块中已存储的模板进行对比,最后给出结果并返回上位机。3.2.2FM-70管脚功能该模块与主芯片通过串口通讯连接,其接口引脚功能如表3-1所示,其对应的实物如图3-5所示。表3-1FM-70引脚功能引脚号名称类型功能(线色)1VtouchIn触摸感应电源输入端(蓝)2SoutOut感应信号输出(黄)3VinIn电源输入端(红)4TDOut数据输出,TTL逻辑电平(绿)5RDIn数据输入,TTL逻辑电平(白)6GND—接地端,内部与电源地连接(黑)图3-5FM-70引脚实物图基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第16页。模块的波特率默认为57600bps,可设置为9600~115200bps。而因为系统采用的是STC12C5A60S2单片机,所以要先把指纹模块的波特率设置为9600bps,以确保指纹模块与单片机之间能够正常通信。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第16页。3.2.3FM-70内部资源介绍模块缓冲区:由图像缓冲区ImageBuffer与特征文件缓冲区CharBuffer1和CharBuffer2组成,其保存的数据断电后会丢失。图像数据的存储和处理都在图像缓冲区中进行,当模块与上位机进行图像的上传或者下载时,其图像的格式为BMP。特征文件缓冲区即可用来存放实时特征文件,也可以用来存放模板文件;指纹库:将指纹模板按一定的序号存放在FLASH中的某一段区域,从而组成指纹库,库内数据断电不丢失,模块对于指纹的一系列处理都是通过对指纹模板序号的操作完成的;波特率设置:通过波特率控制参数N(1~12)来设置波特率,能够设置的波特率为(9600N)bps。在本次设计中把N设为1;模块口令:模块的默认口令是0x00000000,该口令一般不做修改,如果改了,则必须通过了口令验证后,模块才能与上位机正常通讯。3.3.4FM-70主要指令与指纹识别相关的主要指令如下:握手指令(GetEcho):接受到握手指令后,如果模块正常运行,则返回确认码0x55,然后才可执行其他指令。如果返回确认码不是0x55,则说明模块存在问题,不能正常共工作;图像采集(GenImg):如果探测到指纹,则录入指纹图像并存放在ImageBuffer当中,然后返回采集成功确认码。如果探测不到指纹,则返回采集失败确认码;基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第17页。特征提取(Img2Tz):从图像缓冲区ImageBuffer中存储的指纹图片中提取出指纹特征文件,并存放到CharBuffer1或者CharBuffer2中;基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第17页。生成模板(RegModel):把指纹特征缓冲区中的特征文件合并成指纹特征模板,并将其重新存放到CharBuffer1和CharBuffer2中;生成指纹库(Store):把指纹特征缓冲区里的特征模板信息放到模块的指纹库当中。自动登记(AutoLogin):该指令非常人性化,其中已包含了指纹采集、特征提取、生成模板、生成指纹库这四个过程,可以通过调用一个指令而完成四个功能,大大减少了开发人员的工作量。另外,该指令的输入参数为“按指时长,按指次数,指纹序号”。按指时长是指每次录入指纹时,手指保持按下的最大时长。按指次数是指录入同一个指纹时需要按下几次(该模块可以设置2或者3)。指纹序号指的是指纹模板存在指纹库中的序号。通过这几个参数可以方便地设置我们需要实现的功能,非常实用。显示模块(LCD1602)LCD1602液晶显示屏[8]也叫1602字符型液晶显示屏,是一种点阵型液晶显示屏,主要用来显示数字、字母和符号。字符的显示是通过点阵字符位来实现的,许多的点阵字符位相互组合构成显示屏。由于字符位与字符位之间都存在着一定的间隔,所以不能很好的显示图案。1602的显示容量为162也就是显示两行,每一行显示16个字符。其主要参数如下:①显示容量为162个字符;②工作电压为4.5~5.5V(最佳为5.0V);③工作电流为2.0mA(5.0V);LCD1602显示屏的引脚功能、实物图分别如表3-2、图3-6所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第18页。表3-2LCD1062引脚功能基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第18页。编号符号功能编号符号功能1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL偏压信号11D4DataI/O4RS数据/命令选择端(H/L)12D5DataI/O5R/W读/写选择端(H/L)13D6DataI/O6E使能信号(下降沿使能)14D7DataI/O7D0DataI/O15BLA背光源正极8D1DataI/O16BLK背光源负极图3-6LCD1062实物图管脚功能特别说明:对于管脚3(VL),是显示器对比度调整,当其与地电源连接时对比度最高,当其与正电源连接时对比度最低。因为当对比度过高时会出现“鬼影”现象,所以要通过一个1K的电阻来调节对比度,其电路图如图3-7所示。图3-7显示模块电路图基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第19页。独立按键模块基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第19页。因为系统仅需要进行简单的输入操作,所以选择用独立按键[6]作为输入模块。其优点在于:不需要占用过多的I/O口;简单便捷,操作容易;与矩阵按键相比较,独立按键的控制程序简单很多,可降低系统开发难度。按键模块电路图如图3-8所示。图3-8按键模块电路图按键模块的功能需要满足“确定”、“取消”和“选择”,所以模块设定为四个按键。按键1与单片机的P3.5口连接,实现“确定”功能;按键2和按键3分别与单片机的P3.4口和P3.3口连接,实现“选择”功能;按键4与单片机的P3.2口连接,实现“取消”功能。在使用独立按键的过程中,最重要的是消抖[8]。因为在每次按下按键之后,弹片都会不可避免的抖动,导致电路多次闭合又断开,于是会造成重复按下的错误判断,所以消抖是必不可少的。目前,消抖主要有两种方法:①硬件消抖:在按键与主芯片之间添加一个双稳压电路或是滤波消抖电路,通过稳压或滤波,确保传输到主控芯片的信号唯一;②软件消抖:在软件程序中加入一个延时函数,在系统接收到第一个按键信息后开始执行延时函数,等延时函数结束后在判断按键是否处在闭合状态,如果检测到主控芯片端口依然处在低电平,则说明按键成功闭合,消抖完成。在本设计中采用的就是软件消抖。时钟模块(DS1302)基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第20页。系统采用DS1302时钟芯片[8]作为系统外部时钟,用以记录并存储人员签到时间,然后通过I/O口把信息传送到单片机,再由单片机控制显示屏进行显示。其电路图如图3-9所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第20页。图3-9时钟模块DS1302电路图与其他时钟芯片相比较,DS1302具有以下特点:①具有强大的时钟计数功能,不仅可以对秒分时计数,还可以对年与日计数,可以设置12小时制,也可以设置24小时制,而且计数年份可达2100年。此外,它还能对闰年进行识别,当遇到闰年的时候,会自动通过补偿功能完成对闰年的计数;②内部拥有31*8位的扩展数据寄存器,以满足更大量的时间信息的存储;③其工作电压为2.0~5.5V,电流为320nA(2.0V),功耗较低,另外,在低电压低电流环境下工作使得损耗较低,一定程度延长了芯片的使用寿命;④与DS1202比较,DS1302增加了双电源功能,Vcc2为主电源,Vcc1为备用电源。正常工作时,Vcc2Vcc1,当Vcc2Vcc1且Vcc2-Vcc10.2V时,系统会自动给备用电源充电;遇到异常情况时,如Vcc2Vcc1、系统掉电等,自动转换为备用电源供电,以保证芯片内数据不被丢失。DS1302的控制指令为8位,如表3-3所示。表3-3DS1302控制位bit7bit6bit5bit4bit3bit2bit1bit01/0RAM/A4A3A2A1A0I/O基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第21页。bit0控制芯片输入输出,1为输出,0为输入;bit1~5控制寄存器输入输出;bit6控制时钟寄存器的读写操作;bit7控制芯片写入操作,1为允许写入,0为禁止写入。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第21页。蜂鸣器蜂鸣器部分采用电压式蜂鸣器[5],主要是在系统中起到提示作用,使得用户直观地知道操作是否成功,让系统更加人性化。其内部主要包括振荡电路、蜂鸣片、匹配器和共鸣箱等。在本设计中采用的蜂鸣器,其工作频率是2000Hz,可直接通过单片机的PWM端口进行驱动。所以在设计软件的时候,要注意对PWM输出信号的频率进行设置。蜂鸣器电路图如图3-10所示。图3-10蜂鸣器电路图蜂鸣器引脚1与5V电源连接,引脚2与单片机P3.6端口连接,实现相关控制。本设计中,进行指纹录入、功能选择、功能确定等操作时,蜂鸣器响一次;在进行签到签退操作时,蜂鸣器响3次。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第22页。

系统软件设计基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第22页。系统主程序设计利用STC12C5A60S2作为主控芯片设计指纹打卡机,其主程序流程图如图4-1所示。开始开始系统初始化等待按键输入,选择模式指纹匹配指纹采集模式?显示人员编号和时间结束NYN指纹签到模式?指纹删除模式?指纹采集指纹删除YYNN图4-1系统主程序流程图主函数设计的关键代码如下如下:#include<intrins.h>#include"config.h"基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第23页。#include"Lcd1602.h"基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第23页。#include"key.h"#include"time.h"#include"uart.h"#include"buzz.h"#include"FPM10A.h"#include"DS1302.h"voidInitTimer1(void)//初始化定时器T1{TMOD&=0x0F;//T1清零,T0保留 TMOD|=0x10;//设置定时器T1为方式1TH1=0xD4;TL1=0xCD;EA=1;//开总中断ET1=1;//开定时器T1中断TR1=1;//启用定时器T1}voidSys_Init() //系统初始化 { InitTimer1(); InitLcd1602(); Uart1Init(0,1,220);//初始化串口,波特率设为9600 Buzz_Init(); InitDS1302();}externsignedchartemprx;voidmain(){ Sys_Init(); showInit();基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第24页。 refreshDS1302();//刷新显示基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第24页。 while(1) { fpm10aAction(); //指纹模块开始工作 }}指纹采集程序设计本设计中指纹模块采用的是以光学传感器为基础的采集系统。指纹采集通过调用指纹模块的一系列指令来完成,所以必须熟悉并掌握FM-70模块的各指令集的功能与用法,然后根据整个设计系统的要求筛选最适合的指令来实现。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第25页。经过自己的思考分析再结合各种参考资料,确定指纹采集程序框图如图4-2所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第25页。开始开始获取图像GenImg()确认码为0x00?确认码为0x00?确认码为0x00?确认码为0x00?提取特征,存在CharBuffer1获取图像GenImg()提取特征,存在CharBuffer2合成特征模板RegModel()确认码为0x00?确认码为0x00?保存模板文件Store()结束指纹采集失败NNNNNN基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第26页。图4-2指纹采集程序流程图基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第26页。指纹采集的相关程序代码如下:①获取指纹图像:voidFPM10A_Cmd_Get_Img(void){unsignedchari;FPM10A_Cmd_Send_Pack_Head();//发送通讯协议包头for(i=0;i<6;i++)//发送命令0x1d {Uart_Send_Byte(FPM10A_Get_Img[i]); }}②提取特征文件存放在Buffer1中:voidFINGERPRINT_Cmd_Img_To_Buffer1(void){ unsignedchari; FPM10A_Cmd_Send_Pack_Head();//发送通讯协议包头 for(i=0;i<7;i++)//发送命令,提取特征{Uart_Send_Byte(FPM10A_Img_To_Buffer1[i]); }}③提取特征文件存放在Buffer2中:voidFINGERPRINT_Cmd_Img_To_Buffer2(void){unsignedchari;for(i=0;i<6;i++)//发送包头 { Uart_Send_Byte(FPM10A_Pack_Head[i]);基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第27页。 }基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第27页。for(i=0;i<7;i++)//发送命令,提取特征{ Uart_Send_Byte(FPM10A_Img_To_Buffer2[i]); }}指纹签到程序设计在进行指纹签到时,由于需要显示签到时间(包括前后两次签到的实时时间,以及两次签到的时间间隔,也就是员工工作时长),所以要熟悉对时钟模块DS1302的相关控制操作,确定好其显示格式是12小时制还是24小时制,还要明确设定好其8位控制指令的具体值。另外,需要通过LCD1602液晶显示屏来显示签到时间,所以要明确显示屏与单片机主芯片之间通讯的引脚号以及具体操作指令。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第28页。指纹签到的程序流程图如图4-3所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第28页。开始开始系统初始化进入签到模式,等待签到有指纹信息输入?读取DS1302时间指纹信息匹配匹配成功?显示人员编号和时间结束YNYN图4-3指纹签到程序流程图指纹签到的主要部分为指纹匹配,其主要程序如下:if(FPM10A_RECEICE_BUFFER[9]==0x0)//指纹模块接受到匹配指令 { Lcd1602FullClear(); FPM10A_RECEICE_BUFFER[9]='A'; Lcd1602ShowStr(0,0,"Foundfingerprint");//显示屏显示寻找模式,也就是签到模式 flagdooroper=1; Lcd1602FullClear();基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第29页。 tempbla=FPM10A_RECEICE_BUFFER[10]*0x100+FPM10A_RECEICE_BUFFER[11];//基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第29页。 str[0]=tempbla%10000/1000+0x30; str[1]=tempbla%1000/100+0x30; str[2]=tempbla%100/10+0x30; str[3]=tempbla%10+0x30; str[4]='\0'; Lcd1602ShowStr(0,1,str);//显示人员编号 GetRealTime(&CurTime);//获取当前时间指纹删除程序设计在进行指纹删除程序设计时,由于指纹模块FM-70中没有选择性删除的相关指令,只有指纹库清空类指令,也就是每一次删除都是删除指纹库里的所有指纹。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第30页。指纹删除程序流程图如图4-4所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第30页。开始开始系统初始化进入删除模式指纹信息删除是否删除指纹?显示删除成功结束YN等待按键输入图4-4指纹删除程序流程图主要程序代码如下:voidFPM10A_Delete_All_Fingerprint()//调用指纹模块的删除指令{ unsignedchari=0; Lcd1602FullClear(); Lcd1602ShowStr(0,0,"DeletAll...");//询问是否删除所有指纹 do { if(KEY_OK==0) 基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第31页。 {基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第31页。 while(KEY_OK==0);//按键确认 Lcd1602ShowStr(0,0,"Deleting..."); Delay_Ms(300); for(i=0;i<8;i++) { Delay_Ms(200); } FINGERPRINT_Cmd_Delete_All_Model(); FPM10A_Receive_Data(12);//接收到的确认码无误 Lcd1602ShowStr(0,0,"DeletSeccess");//显示删除成功 Buzz_Times(3);//蜂鸣器响3次 break; } }while(KEY_CANCEL==1);}开发环境介绍(Keil)本设计中采用Keil软件来进行程序开发,它是美国KeilSoftware公司研制的适用于单片机程序开发的一个开发系统,不仅支持汇编语言,还支持C语言编程。其特点有:系统界面人性化,工具栏有很多便捷实用的选项图标,便于开发者在编程过程中直接直接选用;具有强大的程序调试工具,例如单步运行、断点设置等,方便开发者进行程序调试;操作简单,容易上手,自带库里也提供了许多参考例程,便于使用者查阅。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第32页。其开发环境界面如图4-5所示。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第32页。基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第33页。图4-5Keil开发环境基于单片机的指纹打卡机设计-毕业论文全文共37页,当前为第33页。结论在设计过程中遇到了各种问题,例如刚开始打算先通过Protues仿真调试好再下载到硬件电路,但后来发现Protues系统里并没有与指纹相关的模块。虽然网上说可以选择一个串口通信的模块代替指纹模块,但这样一来用仿真电路来调试的便捷优势就无法体现出来,所以最后决定只用开发板来进行调试;另外,在程序设计时,由于对FM-70指纹模块的操作指令不够熟悉,导致程序经常报错。尤其是相关指令里包含的参数以及其意义必须先弄明白,才能有效地进行程序开发。同时,要善于运用程序开发软件里的调试工具,如单步运行、断点设置等;还有就是用于按键消抖的延时函数的延时时长要控制好,过短会导致消抖失败,过长会导致单片机cpu效率大大降低;除此之外,在后期硬件电路焊接时,因为焊接技术有限,经常会出现虚焊现象,从而导致系统电路多处出现短路。不过后来通过万用表一一排查出来并重新焊接成功。根据设计要求,本系统已基本实现以下功能:①人员指纹登录,系统上电后,各模块初始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论