基于单片机指纹识别系统设计说明_第1页
基于单片机指纹识别系统设计说明_第2页
基于单片机指纹识别系统设计说明_第3页
基于单片机指纹识别系统设计说明_第4页
基于单片机指纹识别系统设计说明_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、任务书课程设计题目:指纹识别功能简述:1)根据所学的知识和能力,设计程序可以实现根据指纹的大小、 形状等特征,识别出不同的指纹。2)利用按键标志当前指纹识别的状态,例如录入状态,识别状态, 清楚状态;利用液晶1602能够显示当前指纹识别的状态信息。3)利用继电器,对当前信息的判断,例如提醒当前指纹识别错误;利用蜂鸣器和LED等提醒当前指纹识别是否正确第一章绪论1. 1、指纹识别中的基本槪念1.2指纹识别的发展前景1.3、指纹识别课题设计的容与意头第二章方案选择2. 1系统原理图设计2.2方案说明2. 3方案比较2.4方案选择第三章硬件设计3. 1 AT89C52单片机设计3.2电源电路设计3.

2、 3按键控制部分电路3.4 LED指示灯电路3.5蜂鸣器电路3.6指纹传感器模块第四章 软件程序设计4. 1程序流程图4. 2程序第五章调试5. 1硬件调试5. 2软件调试 随着时代的发展,社会越来越需要高效、可靠的身份识别系统传统的 个人身份鉴别手段如钥匙、口令、密码、件,甚至IC卡等识别方式, 由于它们具有可假冒、可伪造、可盗用、可破译的弱点,已不能完全 满足现代社会经济活动和社会安全防的需要。随着识别技术的不断成 熟和计算机技术的飞速发展,各种基于人体生理特征的身份识别系统 如:指纹、手掌、声音、视网膜、睡孔和面纹等识别技术纷纷从实验 室中走出来。目前,从实用的角度看,指纹识别技术是优于

3、其它生物 识别技术的身份鉴别方法。本次设计我们利用指纹识别传感器进行指 纹采集与识别,在单片机中对指纹进行处理,用按键标志当前指纹识 别的状态,录入状态,识别状态,清除状态,用液晶1602能够显示当 前指纹识别的状态信息;用继电器对当前信息进行判断,例如提醒当 前指纹识别错误;利用蜂鸣器和LED等提醒当前指纹识别是否正确关键词:指纹识别;单片机;指纹识别传感器;液晶1602;继电器第一章绪论进入21世纪后,由于国际反恐、互联网应用等因素的推动,在全球围,指 统识别技术得到了更加广泛的应用,指纹识别市场进入高速发展阶段。利用人的 生理特征,例如像指纹等来识别个人的身份,将成为今后几年IT产业的重

4、要革 新。指纹在所有的生物特征中,相对稳定、不随年龄而变化和采集较为便捷,同 时它的研究历史最长、相对更为成熟。与现有的智能卡、和密码的身份识别系统 相比,指纹识别的性价比最高,也更适于应用到大众生活中。因此指纹识别以其 革命性的便捷和安全性成为一个理想的卓越的解决方案。1. 1、指纹识别中的基本槪念指纹识别是成熟的生物识别(Biometric)技术,由于人体的身体特征具有不可复 制的特点,人们把目光转向了生物识别技术,希望可以籍此技术来应付现行系统 安全所面临的的挑战。要把人体的特证用于身份识别,这些特征必须具有唯一性 和稳定性。研究和经验表明,人的指纹、掌纹、而孔、发音、虹膜、视网膜、骨

5、架等都具有唯一性和稳定性的特征,即每个人的这些特征都与别人不同、且终生 不变,因此就可以据此识别出人的身份。基于这些特征,人们发展了指纹识别、 面部识别、发音识别等多种生物识别技术,目前许多技术都已经成熟并得以应用, 其中的指纹识别技术更是生物识别技术的热点。1.2指纹识别的发展前景指纹行业是一个新兴的行业,本身具有很高的科技含量,相对利润高发展前景广 阔。经专家预计,指纹产品将是未来IT产业新的增长点:利润率最高、发展潜 力最大。于是,世界顶尖的指纹识别技术得到了全球囲的高度重视,指纹识别技 术的应用如火如荼地迅速发展起来。目前,国已经有不少企业在参与指纹识别技 术的开发和应用。指纹技术在现

6、代生活和工作中的应用已越来越普遍,例如:指 纹考勤、指纹社保、指纹银行、指纹商场、指纹接送幼儿等等生活和工作的新现 象已广为人知,指纹技术正在日益刷新着我们的现代化生活方式。1.3、指纹识别课题设计的容与意头指统识别技术相对于其他识别方法有许多独到之处,具有很高的实用性和可行 性。因此,指纹识别成为最流行、最方便、最可靠的身份认证方式,己经在社会 生活的诸多方面得到广泛应用。这是由于指纹是独一无二的,两人之间不存在着 相同的指纹,指纹是独一无二的,两人之间不存在着相同的指纹,同时指纹样本 易于采集,难以伪造,便于开发,实用性强,可以利用多个指纹构成多重口令, 提高系统的安全性。本文主要通过对M

7、CS-51系列单片机的结构和功能进行分析,来研究基于单片机 指纹识别系统的部结构特点和功能阐述以及工作原理,更好的了解了指纹识别系 统的未来前景。第二章方案选择2. 1系统原理图设计rLCD1LW1CLJ1XTAL1XTAL2R$TPSEN4QulRDRL1 RLY-SPCO2.2方案说明2.1.1方案一:摄像头采集.飞思卡尔单片机处理这种方案由指统图像采集、指纹图像预处理、指统特征提取、指纹特征匹配、特 征数据库等几部分组成。指纹识别系统的原理框图如图1所示。冶纹图像化滤特征提1|结论特征ML削沒辻埋图2-1.指纹识别系统框图该系统首先由数字摄像头ov6620采集指纹,并将指纹图像转化为数字

8、图像; 然后用16位的飞思卡尔X128单片机对指纹数字图像进行预处理,再通过图像增 强、分割、平滑、细化等处理过程得到便于指纹特征提取的数字图像:接着提取 细化后的图像细节特征点;然E将指统信息数据送入STC89C52单片机中,一块 液晶1602与STC89C52单片机相连,液晶用于显示当前指纹采集系统的工作状态 和经对比后指纹采集的信息是否正确,用一个蜂鸣器和LED指示灯指示当前采集 的指纹信息正确。当采集到的指纹信息正确,蜂鸣器发出响声并且LED指示灯点 亮。2. 1.2方案二指纹识别传感器代替第一种方案中的摄像头和飞思卡尔单片机,我们利用一个指纹识别传感 器来对指纹进行采集,识别以及部分

9、处理,然后将信息输送到AT89C52单片机中, 利用按键控制当前指纹识别的状态,用LED灯进行显示,即录入状态,识别状态, 清除状态;利用液晶1602能够显示当前指纹识别的状态信息,即录入指纹的编号 以及当前指纹;利用继电器,对当前信息的判断,例如提醒当前指纹识别错误; 利用蜂鸣器提醒当前指纹识别是否正确,如果指纹录入正确,蜂鸣器发出响声。2. 3方案比较1)复杂性:方案一采取用数字摄像头ov6620采集指纹图像,然总用16位 的飞思卡尔X128单片机进行图像处理,还要进行图像增强、分割、平滑、细化 等处理过程才能得到便于指统特征提取的数字图像;而这些过程在方案二中只用 一个指纹传感器模块就可

10、以代替,所以方案二设计简单。2)准确性:方案一中所采集的摄像头分辨率有限,所以采集的指纹信息有 一定的误差,方案二中指纹传感器模块是利用集成的光学头进行处理的,比较精 确。3)局限性:由于方案一中使用的飞思卡尔单片机处理程序比较复杂,超出 了我们的学习围,而方案二传感器就使程序简单化了。2.4方案选择鉴于各种原因,我们最终选择第二种方案,使用指纹传感器模块来设计系统。第三章硬件设计3. 1 AT89C52单片机设计3. 1. 1主要性能有12k字节Flash闪速存储器,1024字节部RAM, 32个I/O 口线,两个16位定 时/计数器,5个中斷向量,一个全双工串行通信口,片振荡器及时钟电路。

11、3. 1.2引脚结构图(如图3-1)19 XTAL1POO.ACX)18XTAL2PO.1/AD1P0.2.AD2PO.3.AD39RSTP0.4/ACMPO.5/AD5PO.6.AD6PO.7/AD72930-P2.0.A8P2.1-A9P2.2/A10P2.3/A11ALEP2.4A12孚P2.SA131_P1.QT2P2.&A14P2.7/A15P3.QPXDP1.1/T2EXP3.1HXDP12P3.21W4P13P331WTT5P1.4P3.4/T06P1.5P3.5/T17P1.6P3.6-WH8P1.7P3.7.WU1ATB9C5239图3-1AT89C52管脚图3. 1.3 一

12、些端口的介绍:P30 口: RXD (串行输入口)P31 口: TXD (串行输出口)XTAL1:振荡器反相放大器的及部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3. 1.4单片机最小系统1)外部晶振的设计STC89C52的部有一个用于构成振荡器的高增益反相放大器,通过XTAL1,ATAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使 其构成自激振荡器,电容的值具有微调的作用,我们取30PF,具体的接法如图 3-2外部晶振电路。C122pF图3-2外部晶振电路STC89C52的工作频率围在0-24MHZ。我们选用的是11.0592MHZ的晶振,振 荡周期约

13、为1us机器周期约为0. 1us,所以这个晶振可以满足这个系统的要求。 并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到 信号。2)复位电路的设计MCS51单片机通常采用上电自动复位和按钮复位两种方式,本系统采用简单 的自动复位电路如图2-2所示。单片机在上电瞬间,RC电路充电,RST引脚端出 现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效复位。 其中电容选10uF.电容选10K。10ufR1图3-3复位电路3.2电源电路设计本系统采用的5V电源主要采用两种方法,第一是直接用9V电池然后通过一 个变压电路,利用7805将转化成5V供单片机和液晶显示部

14、分使用;其二是用 220V通过变压器等将其转化成5V两种方法都可以,但是由于第一种方法便于携带、而且成本相对较低所以我们选 用第一种方案。图3-4 电源电路3.3按键控制部分电路1)消除抖动按键的闭合与否反应在电压上就是呈现出高电平致低电平,如果高电平表示 断开,那么低电平则表示闭合,通过电平的高低状态的检测可确认键按下与否。 为了确保CPU对一次按键动作只确认一次,并且防止干扰信号的影响,必需如入 消除电平抖动的措施,下图3-5为按键抖动示意图:图3-5按键闭合及断开前后的电压消除抖动通常有硬、软硬两种方法,硬件消除抖动可采取双稳态电路或滤波消抖 电路;软件消抖是在第一次检测到有键按下时,执

15、行一段延时程序再确认该键是 否仍闭合,如果还是闭合状态则确认该键按下,从而消除抖动和干扰影响。当按 键较多时,我们多采用硬件件消抖法。本系统中按键少直接釆用直接接入的方式。2)按键接口设计按键接口设计有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独 立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。 这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该 设计方案I0资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场 合。由于本设计中的按键只有3个,考虑系统可靠性和键盘设计的简单所以采用 独立式按键。本系统的按键电路如图3-6所示:图3-6独立

16、按键电路按键按下是呈低电平,我们采用软件消抖来减少对的单片机影响。3.4 LED指示灯电路图3-7 LED灯指示电路当k2键按下时,录入模式指示灯red亮;当k1键按下时,识别模式指示灯green 亮。3.5蜂鸣器电路图3-8蜂鸣器电路3.6指纹传感器模块1)指纹模块电路如下所示:VCCP_ZW-P30VCC TXD RXD GNDP31图3-9指统识别模块指纹模块里面主要是DSP芯片,型号为PS1802,加上外面的CMOS芯片,CMOS 芯片主要是对指纹进行照相”,生成指纹特征,如图3-8所示就是一个指纹模 板,录入两次这样的指纹特征就能生成一个指纹模板。具体的工作过程是:扫描指纹(录入图像

17、)、生成特征、合成模板(建立一个指 纹库文件,成功录入一个指纹)。图3-10指统模板指纹模板就是“照一次相”,指纹模块里而的CMOS芯片采集一次指统信息,然E 进行模糊处理生成0和1两种记录信息,存入指纹模块的FLASH芯片里面。 当切换到识别模式的时候,指纹模块就会先让CMOS芯片采集一次指纹,然后和 FLASH芯片的数据进行对比。看是不是存在,如果存在就能返回是几号指纹。这 样我们就能通过单片机或者电脑进行指纹识别与登记了。2)指纹传感器模块实物图指纹模块型号是:FM-180,此模块上里面包含了:K光学头 2、通信连接线3、DSP芯片(在模块里而)4、稳压芯片5、FLASH芯片6、CMSO

18、传感器(在模块里面)等部件组成。2、通信连接线3、DSP芯片1、光学头模块从左到右:黑色:GND绿色;T;红色:VCC黑色:GND红色:VCC4、稳压芯片4、稳压芯片5、FLASH 芯片5、FLASH 芯片6、CMOS传感器6、CMOS传感器图3-11指纹传感器模块实物图第四章软件程序设计该设计主要通过设定的3个按键来实现一定的功能,3个按键分别为模式切换(识 别模式和录入指纹模式人指纹录入、删除所有指纹。4. 1程序流程图4.1.1程序主流程图(1)指纹录入:先进行录入模式,然后按一下录入指纹,灯会闪烁,录入成功 一次,蜂鸣器响一次,这时候拿开手指,1秒放入同一个手指,会再录入一次, 如果两

19、次都成功,就成功录入了一个指纹。蜂鸣器会响两次,同时显示录入指纹 成功。如果不成功就会显示录入失败。录入完成后,可以进入识别模式,或者接 着录入下一个指纹。录入完成,按一次指纹转换,进入指纹识别开锁模式。 单片机主程序流程设计:单片机的主程序流程图卩4.2系统关键代码引脚使用:sbit relay 二P4; /继电器引脚sbit buzzer二P5; /蜂鸣器引脚sbit red二P2T;/录入模式指示灯在板子靠近单片机处sbit green二P2S;/识别模式指示灯 在板子远离单片机处sbit k2二P34; /录入一次指纹sbit k1=P33; /模式识别转换sbit k3二P3八2;

20、/清除所有指纹(10个指纹清除)部分主函数代码:void ma in (void)/主函数unsigned char i二0;ET0=1;/定时器0开中断TLO二0x97;/17ms 的初值THO二OxBD;de I aylms (5);LcdRw=0;/只对液晶进行写操作,不进行读操作de I aylms (5);LCD_lnitial () ;/液晶初始化de I aylms (5);GotoXY (0, 0) ;/x, yPrint(Identify);/串口初始化SC0N=0x50;/UART 方式 1:8 位 UART;REN=1:允许接收PCON=OxOO;/SMOD=O:波特率不

21、加倍TM0D=0x21;/T1方式2,用于UART波特率TH1=0xFD;TL1=0xFD;/UART 波特率设置:9600TR1=1;TRO二1;/开定时器0IT0=0;/中斷0低电平中斷IT1=1;/中斷1低电平中斷EXO=1;/开中斷0EX1=1;/开中斷1EA二 1;mode () ; /看当前是什么模式for(i二0;i6;i+)/开始握手6次,如果没有一次成功,表示模块通信不正 常。只要成功就跳出此循环if(VefPSWO)/与模块握手通过,绿灯亮起。进入识别模式green二0; /读一次buzzer二0;shownum(0);de Iaylms(300);buzzer=1;bre

22、ak;e I sered=1;green二1;break;)whi le(1)if (k2=0)/录入一个指纹de I aylms (10);if(k2=0)/如果仍为低电平,表示按键有效while(k2=0);/ 等待松手if (VefPSW() =1 &modef Iag=1 &SaveNumber10)/ 与 模块握手通过if (enrol I ()=1)/采集两次,生成1个指纹模板成功i f (savef i ngure (SaveNumber+1 )=1) /保存也成功SaveNumber+;/ 加一次 shownum(SaveNumber);)e I sebuzzer二0;for(

23、i=0;i=1 &searchnum=162)/最多是 162 个指纹 shownum(searchnum);/蜂鸣器响一声re I ay二0;buzzer=0;de I aylms (100);buzzer=1;for (i=0;i20;i+)de I aylms (150);)re Iay=1;if(searchnum=255)/不正确的指纹 蜂鸣器响三声shownum (0);buzzer=0;de I ay1ms (100); buzzer=1;deIaylms (100); buzzer=0;de I ay1ms (100); buzzer=1;delay1ms (100); buz

24、zer=0;delay1ms (100); buzzer=1;delay1ms (100);)if (clearal If lag=d)clearalIf lag二0;Clear AI I ();red=0;/红色灯亮green=1;蜂鸣器长响一次,表示清除所有指纹结束 modefl ag=1;/进入录入指纹模式GotoXY (0, 0) ;/x, yPr int(Input);shownum (0);buzzer二0;delaylms (800);buzzer=1;SaveNumber=0;1i f (changef I ag=1)mode () ;/显示当前模式 changefIag=0;

25、)/wh ile(1)结束/void intO(void) interrupt 0中断 0,清除所有指纹 if(k3=0) /清除所有指纹delaylms (10);if(k3=0)/如果仍为低电平,表示按键有效while(k3=0); /等待松手cIearaI IfIag=1;changefIag=1;)void TimerO(void) interrupt 1/定时器 0 中断函数TL0=0x97;TH0=0xBD;c I k0+;/延吋 17msvoid int1 (void) interrupt 2/中断 1,模式转换if(k1=O)/模式转换 其中用modeflag来标志,默认从第1

26、个指纹开始录 入delaylms (10);if (k1=0) /如果仍为低电平,表示按键有效while(k1=0);/等待松手modef Iag=modef Iag;/0表示录入指纹1表示识别指纹 changefl ag=1;/模式发生了转换)第五章调试完成了硬件的设计、制作和软件编程之后,要使系统能够按设计正常运行,必须 进行硬件调试和软件调试。5. 1硬件调试硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。(1) 在电路的电源焊接一个电源指示灯,判断电路电是否正常。(2) 将电路中的电源线布置在通用板的四周,这样使用电源很方便,减少干扰, 同时可以减少短路故障发生的可能。

27、(3) 元器件合理布局,且尽量减少占用板子的面积,力争做到节俭。特别是单 片机的晶振尽量靠近单片机,减少干扰。(4) 液晶的焊接注意方向,且调节背光的电位器不可以少。5. 2软件调试软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时 也能发现硬件故障。程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序 是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连 接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意 各子程序的现场保护与恢复。本设计主要有:指纹识别传感器图像采集模块(2)单片机图像处理按键模块和指示灯模块指纹液

28、晶显示和蜂鸣器、继电器模块不断地对单片机下程序,观看调试结果。参考文献1 河桥,段清明,邱春玲.单片机原理及应用.:中国铁道,2007. 122 星奎,林艳,颜祖泉.一种新的指纹图像细化算法.中国图像图形学报,1999, 4(10)835-838.3 吕凤军数字图象处理编程入门一一做一个自己的Photoshop.:清华大学, 1999.4 文星,王雄沂,母国光.纹线跟踪及其在细化指纹后处理中的应用.光电子 光,2002, 13 (2): 184-187.5 家锋,唐降龙,泉.一个基于特征点匹配的联机指纹鉴别系统工业大学学报, 2002. 34 (1): 132-1366 简兵,庄镇泉等.基于脊

29、线跟踪的指纹图细节提取算法.电路与系统学报, 20017 旭,田捷自动指纹识别算法在嵌入式系统的实现J.计算机工程与应用, 2002.8 周毅,等著.基于SPI协议的实现,计算机仿真.2003.9 窦振中单片机外围器件实用手册(存储器分册).:航空航天大学,200010 华.MCS-51系列单片机实用接口技术.:航空航天大学,199811 培仁,占辉,村峰.基于c语言编程MCS 51单片机原理与应用M.: 清华大学,2003.附件2程序清单#i ncIude #i ncIude #inc Iudelcd1602. h sbit relay二P广4; /继电器引脚sb it buzzer二P广5

30、; /蜂鸣器引脚sbit red= P27;/录入模式指示灯在板子靠近单片机处sbit green二P2S;/识别模式指示灯 在板子远离单片机处sbit k2二P34; /录入一次指纹sbit k1=P33; /模式识别转换sbit k3=P32; /清除所有指纹(10个指纹清除)#define Max User 10#define error 2unsigned charSaveNumber=0, searchnum=0;uns i gned i ntSearchNumber=O;uns i gned i ntcIk0=0;uns i gned charstr= 0, l0,/0,;Inpu

31、tunsigned char code I dentify16=Lock: unsigned char code Input16 二Lock:bit modef I ag=0, clearal If lag 二 0, changef I ag=0;/ 默认为识别模式/常用指令定艾/Verify Password :验证设备握手口令uns i gned char codeVPWD16 = 16,0X01, OXff, Oxff, Oxff,Oxff,0x01,0, 7, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1 b); 回送 12 个/设置设备握手口令uns

32、 i gned char codeSTWD16 = 16, 0X01, OXff, Oxff, Oxff, Oxff,0x01,0, 7, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1 a); 回送 12 个/Get I mage:探测手指并从传感器上读入图像unsigned char code GIMG14 = 12, 0X01 ,OXff,Oxff, Oxff, Oxff, 0x01,0, 3,1,0x00, 0x05) ; /回送 12 个/Gen Templetl:根据原始图像生成指纹特征1uns i gnedcharcodeGENT114 = 13,

33、 0X01 , OXff, Oxff, Oxff, Oxff, 0x01,0,4, 2,1,0x00, 0x08) ;/回送12个/Gen Temp I et2:根据原始图像生成指纹特征2uns i gnedcharcodeGENT2 14 = 13, 0X01 , OXff, Oxff, Oxff, Oxff, 0x01,0, 4, 2, 2, 0x00, 0x09) ; / 回 送12个/Search Finger:以 CharBufferA 或 CharBufferB 中的特征文件搜索整个或部分指纹库uns i gned char code SEAT18 = 17,0X01 ,OXff,

34、Oxff, Oxff, Oxff, 0x01,0, & 4,1,0, 0,0, 0x65,0x00, 0x73) ; /回送 16 个/Merge Templet;将 CharBufferA 与 CharBufferB 中的特征文件合并生成模板,结果存于Model Buffer ounsigned char code MERG14 = 12,0X01 , OXff, Oxff, Oxff,Oxff, 0x01,0,3,5, 0x00, 0x09);/回送 12 个/Store Temp I e t:将Mode I Buffer中的文件储存到flash指纹库中unsigned char code

35、 ST0R16 = 15,0X01 , OXff, Oxff, Oxff,Oxff, 0x01,0,6, 6, 2,0x00, 0x00,0x00, OxOf); 回送 12 个/Read Noteunsigned char code RDNT14 = 13, 0X01,OXff,Oxff,Oxff,Oxff,0x01,0,4, 0x19,0, 0x00, 0x1 e);/Clear Noteuns i gned char code DENT46 = 45, 0X01,OXff,Oxff,Oxff,Oxff, 0x01,0, 36, 0x18, 0, 0, 0,0, 0, 0, 0, 0, 0

36、, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x3d );/DEL one tempIetuns i gned char code DELE one 16 = 16, 0X01 , OXff, Oxff, Oxff, Oxff, 0x01,0, 7,0x0c,0x00, 0x00, 0,1, 0x00, 0x15);/DEL temp I et;清空指统库unsigned char code DELE al I 12 = 12, 0X01 , OXff, Oxff, Oxff,

37、Oxff, 0x01, 0,3, OxOd, 0x00,0x11);/常用指令定 si结束/宏定 si/#define FALSE 0#define TURE 1/状态定艾表#define on1#define off0#define MAX_NUMBER63#define _Nop() _nop_()/宏定义结束/unsi gned charFi foNumber二0;xdata unsi gned charFIF0MAX_NUMBER+1 = 0;/* *1 毫秒延 时程序*/ void delaylms (unsigned int t)unsigned int i,j;for (i=0;

38、it;i+) for (j=0;j=6)checksum二FIF0count +checksum; /计算校验和if (count=8)package=F IF0 刀 *0X100+FIF0 8; / 计算包长度stop二 TURE;if (stop)if (count=package+8)checksum=checksum-F IF0 countT;i f(checksum!=FIFOcount&0xff) result=FALSE; 校验失败,置结果标志为0e I seresult=TURE;fIag=0; break;)/do 的容结束/while (c I kO=MaxT i me)

39、& (count=2)/如果不成功,再验证一次,如果两次不成功,返回失败 return (0);)1void Clear_AI I (void) /清空指纹库de I aylms (200);Command (DELE a I 1,50) ; /清空指纹库)unsigned char ImgProcess (unsigned char BUFID) /发获取图像并生成特征 文件,存入BUFID中/输入参数为缓冲区号if (Command (GI MG, 89) & (FifoNumber=H) & (FIFO 9 =0x00)if (BUFID=1)if (Command (GENT1,60)

40、 & (FifoNumber=11) & (FIFO9 =0x00) return 1;)e I sereturn 0;)else if(BUFID=2)if (Command (GENT2, 60) & (FifoNumber=11) & (FIFO9= 0x00) return 1;)e I sereturn 0;e I sereturn 0;return 0;bit Searchfinger (void)/搜索指纹(发送搜索命令、以及根据返回值确定是否 存在)if( Command (SEAT, 60) & (FifoNumber=15) & (FIFO9 =0x00) ) /搜 索到指

41、纹SearchNumber=F IF0 10 *0x100+F IF011; /搜索到的页码/MatchScore=FIF012*0x100+FIF013可以在此计算得分,从而进行安全级别设定,本程序忽略return 1;)e I sereturn 0;1unsigned char search (void)/搜索用户unsigned char SearchBuf=0, i=0;while (i20)if (ImgProcess =1)/首先读入一次指纹SearchBu仁Searchfinger () ;/进行指纹比对,如果搜索到,返 回搜索到的指纹序号i f (SearchBuf=1)ret

42、urn SearchNumber;return 255;/表示搜索到的指纹不正确)i+;return 0;bit savef ingure (unsigned char ID)/保存指纹unsigned char i二0;/现在开始进行存储指纹模板的操作for (i=0;i=40)/如果采集了 40次,还不成功,直接采集失败, 直接退出enrol I函数返回0return (0);)/釆集第一个特征成功count二0;buzzer二0;delaylms (100);buzzer=1;delaylms (2000) ;/延时2S开始采集下一个特征/开始采集第二个特征whi le(1)temp=l

43、mgProcess (2) ; /生成特征 2if (temp=1)/生成特征文件2成功if (Command (MERG, 40)&(FifoNumber=11)&(FIFO刃二二0x00) =0 ) /合并不成功返回0,成功返回1return 0;e I se/特征文件合并生成模板,结果存于Mode I Bufferbuzzer二0;delaylms (100);buzzed ;de I aylms (100);buzzer二0;delaylms (100) ; /响两声,表示生成一个模板成功buzzer=1; return 1;)e I seif (temp=1)/采集指纹没有成功cou

44、nt+;i f (count=25)return (0);)void shownum(unsigned char dat) unsigned char numdat二0; numdat二dat;GotoXY(0, 1);/x,y Pr int (Finger:);GotoXY(0, 8);/x,y str 0=0x30+numdat/10; str 1=0x30+numdat%10;Print (str);)void mode (void)if (modef Iag0)GotoXY (0, 0) ;/x, y Pr int(Identify); green二0;red=1;)e I seGotoXY (0, 0);/x,yPrint(Input); red=

温馨提示

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

评论

0/150

提交评论