基于51单片机的指纹识别_第1页
基于51单片机的指纹识别_第2页
基于51单片机的指纹识别_第3页
基于51单片机的指纹识别_第4页
基于51单片机的指纹识别_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、 摘要随着现代化各种科学新技术的快速发展,在日常生活中,我们需要各种身份认证和各种密码认证,还有对各种设备配备钥匙,对保险柜安装防盗系统等等,社会的进步,科技的发展,促使传统的安全系统的抵御能力越来越薄弱。因此,生物特征识别应用而生,开始走进我们身边的各种安全系统,指纹识别作为生物特征识别的一个典型应用已经得到很广泛的应用和认可,指纹特征具有唯一性,是每个人终生不变的特征之一,并且各个人的各个指纹都不一样。本系统采用89C52RC单片机作为主芯片,通过与指纹识别模块FM-180之间通过串口通信方式的通信,采用液晶12864作为显示器,加上简单的外围电路,如按键输入、LED灯报警电路、蜂鸣器电路

2、,最后通过编写软件和制作硬件,实现一个可以通过单片机对指纹的录入,识别,删除等功能操作的指纹识别系统。关键词指纹识别系统;单片机89C52;液晶12864AbstractWiththerapiddevelopmentofmodernscienceavarietyofnewtechnologies,ineverydaylife,weneedavarietyofauthenticationandavarietyofpasswordauthentication,aswellasavarietyofdeviceswithkeysforthesafeinstallationofsecuritysyste

3、ms,etc.,socialprogressthedevelopmentoftechnology,topromotethetraditionalsecuritysystemresilienceincreasinglyweak.Thus,biometricapplications,bornaroundusbegantoentervarioussecuritysystems,biometricfingerprintidentificationasatypicalapplicationhasbeenverywidelyusedandrecognized,uniquefingerprintcharac

4、teristics,lifeisnotforeveryoneonevariablecharacteristics,andeachpersonsfingerprintsarenotthesameindividual.Thesystemuses89C52RCmicrocontrollerasthemainchip,itpassesbetweenthefingerprintrecognitionmoduleFM-180serialcommunicationwiththecommunicationmethodbyusingaliquidcrystaldisplayas12864,plussimplep

5、eripheralcircuits,suchaskeyinput,LEDlightalarmcircuit,buzzercircuit,andfinallythroughthepreparationandproductionofsoftware,hardware,youcanimplementamicrocontrolleronthefingerprintinput,recognition,anddeletefunctionsoperatefingerprintidentificationsystem.KeywordsFingerprintidentificationsystem;SCM89C

6、52;LCD12864目录TOC o 1-5 h z HYPERLINK l bookmark4 绪论5 HYPERLINK l bookmark6 课题的背景和意义5 HYPERLINK l bookmark8 生物识别技术概述5 HYPERLINK l bookmark10 指纹识别技术概述6 HYPERLINK l bookmark12 本章小结6 HYPERLINK l bookmark38 设计方案8 HYPERLINK l bookmark40 设计要求8 HYPERLINK l bookmark42 设计方案8 HYPERLINK l bookmark44 本章小结8 HYPER

7、LINK l bookmark46 硬件设计9 HYPERLINK l bookmark48 主要元器件选型9单片机选型9指纹模块10液晶显示11 HYPERLINK l bookmark50 电路设计14最小系统14液晶显示电路15指纹通信电路16蜂鸣器电路17按键电路18LED电路18 HYPERLINK l bookmark72 本章小结19 HYPERLINK l bookmark74 软件设计20 HYPERLINK l bookmark76 系统方框图20 HYPERLINK l bookmark78 功能介绍20 HYPERLINK l bookmark80 开发环境介绍23Ke

8、il编译器23STC-ISP下载器24 HYPERLINK l bookmark82 4.3.4Protel软件25 HYPERLINK l bookmark84 4.4部分代码说明26 HYPERLINK l bookmark86 4.5本章小结30 HYPERLINK l bookmark88 系统调试31 HYPERLINK l bookmark90 制作和调试31原理图设计31PCB制作32 HYPERLINK l bookmark123 调试过程34 HYPERLINK l bookmark125 调试完成、实物图36 HYPERLINK l bookmark127 本章小结37 H

9、YPERLINK l bookmark129 总结38参考文献39致谢401绪论课题的背景和意义随着如今各种各样的高新技术的迅猛发展,在百姓日常生活中经常需要我们去确认各种身份的认证。而在现在的大数据信息时代,每个人都拥有各种各样的大量认证密码,有一些是全数字的,还有一些是图像密码,例如手机开机密码,移动端支付密码,电脑开机密码,聊天软件登录密码等等,就单单这些移动端的密码都可以是无数个,更不要说还有一些更重要的安全密码,例如银行卡的支付密码等。还有其他的一些比较传统的硬件机械安全防盗系统保险柜,大门钥匙、汽车钥匙、摩托车钥匙等等,随着现在时代的变化,科技的进步,传统的一些安全系统已经正在变得

10、越来越脆弱了,因此,更先进更高级的生物识别技术开始走进我们的身边,出现在各种各样的安全系统中。比如人脸识别、指纹识别、眼球视网膜识别等,而指纹识别作为生物识别里面一个比较成熟的已经获得了各行业界的认可的识别系统,广泛的被应用到安全系统中去。指纹识别具有唯一性,每个人的每一个指纹都是独一无二的,可以说指纹是一个人身份的标志。本系统采用的是STC89C52传统的51单片机作为主控MCU,由于其低功耗、编程灵活简单、外围设备丰富,性价比高,所以被广泛的应用在一些低端的电子设备中,在高端产品中由于实时性,扩展性上受到了比较大的限制,所以很少有其身影。但是也有它自身的突出的优点和意义,那就是简单好用便宜

11、,在本次设计中做为主芯片,跟指纹模块进行串口通信,加以简单的一些外围设备,很方便的可以完成指纹识别系统应该具备功能。这对于我更好的理解指纹识别原理和单片机结构功能很有帮助,这也是选题的意义所在。1.2生物识别技术概述所谓生物识别技术就是,通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段,利用人体固有的生理特性,(如指纹、脸象、红膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。由于人体特征具有人所固有的不可复制的唯一性,这一生物密钥无法复制,失窃或被遗忘,利用生物识别技术进行身份认定,安全、可靠、准确。目前已经出现了许多生物识别技术,如指纹识别、手掌几何学识别、虹膜识

12、别、视网膜识别、面部识别、签名识别、声音识别等,但其中一部分技术含量高的生物识别手段还处于实验阶段。我们相信随着科学技术的飞速进步,将有越来越多的生物识别技术应用到实际生活中。而根据国际生物识别小组在2009年作出的一个不完全统计,目前市场上已经有很多种针对人类的各个不同生理特征和行为的特征的应用。比如视网膜识别、虹膜识别、人脸识别、指纹识别等,而其中应用最多的就是说指纹识别。1.3指纹识别技术概述每个人的每一个手指的皮肤都有一个不一样的花纹,是每个人的一个生物特征,这个特征具有一个非常重要的特点,那就是唯一性。也就是说任何一个不同的手指的指纹都是不一样的,独一无二的。在指纹识别技术中称这个指

13、纹为指印,即是人手指的按印,如下图所示。图1指纹指印19世纪初,科学家们发现每个不同的指纹的两个非常重要的特征,一是两个不同手指的指纹纹脊不同,二是指纹纹脊的样式终生不变性。这一研究发现使得指纹正式在犯罪鉴别中得以应用。指纹指标技术把一个人跟他的指纹对应起来,通过比较他的指纹和事先已经存在的指纹做对比,从而确认这个人的真正身份。每一个人的指纹的皮肤纹路在图案、断点和交叉点上各不相同,也就是说,唯一性的,独一无二的。1.4本章小结本文以51单片机为主芯片,米用指纹识别模块FMT80,液晶米用12864显示,加上其他外围的一些简单设备,可以实现对指纹的录入、指纹的识别、指纹的删除等共,组成了一个基

14、于51单片机的指纹识别系统,从而对指纹识别算法的研究和单片机的结构更进一步的了解,并且根据硬件选型,选择了其中较为可行的方案,并制作和调试电路板。具体的章节和各章的内容安排如下:第一章阐述了本课题的研究背景和意义,同时介绍了生物识别特征的几个识别手段,最后介绍了指纹识别技术的概念。第二章介绍了本文设计的要求,最后根据要求设计出合理的具体方案。第三章介绍了本设计的硬件部分,包括主要的元器件选型,各个电路的设计和分析。第四章介绍了本设计的软件部分,包括整个系统的方框图,功能的具体介绍最后还简单介绍了开发环境。第五章介绍了本系统的调试过程,主要是在整个系统的调试过程中遇到的问题和解决方法。第六章是对

15、本文的一个总结,以及提出对整个设计的一些不足。2设计方案设计要求本设计要求如下:1、系统默认至少有一位管理员,没管理员的时候提示必须添加管理员方可操作;2、可以对管理员进行添加,最多有2位,普通用户可以添加400多位;3、录入指纹和删除指纹的时候必须管理员验证,验证成功才可以添加用户,否则不可以添加用户;4、可以查看管理员和普通用户的数量;5、可以对指纹进行删除,需管理员验证;6、通过以上要求,制作出一套具有软件和硬件相结合的指纹考勤系统。设计方案通过上节的设计要求,根据搜集资料并且结合自身所学知识,最后制定的本设计方案如下:本设计以51单片机STC89C52作为主芯片,选取了指纹识别模块FM

16、-180进行二次开发,该模块采用串口通信方式,按照指纹系统自定义的协议来跟单片机通信,单片机按照固定的协议去读取指纹系统的数据,同时对指纹系统发送指令进行控制,从而实现指纹的操作;而显示器选用LCD12864,液晶在系统运行中和各个不同功能模式的时候显示对应的提示内容;设计要求可对指纹进行录入、识别、删除等操作,通过不同的按键来完成,本设计采用了5个独立的按键,软件部分采用轮询检测IO电平来判断按键值;报警提示选用的元件是蜂鸣器和LED灯。本章小结本章介绍了本课题设计的具体要求,最后根据设计要求制定的合理可行的具体方案。3硬件设计3.1主要元器件选型3.1.1单片机选型T2/P1.0T2EX/

17、P11匚二PL2匚Pl+3二P1.4匚P1.5匸PL6匸P17匚RST1RXD/P3-0TXD/F3.1jIMT0/P3.2IT0/P3.4匚二U/P35匚二W/P3.6匚ZRD/P3.7匚XTAL2;_XTAL1匚VSS匸012123456739-1111098733222VCCPO.Q/怔0PO,1/AD1PO.2/AD2PQ.3/AD3P0.4/AD4PO.5/AD5PO.&/AD6PO.7AD7EAALE7PR0GfsSnP2.7/AL5P2.5AA14P2.5/M3曲4/A12PZ3ML1F2.2A10P2,1A9P2.0/A8图2STC89C52本设计中需要用到跟指纹模块进行通信,

18、而经过对单片机与模块通信方式的多种比较后,决定采用比较简单的串口通信,而串口通信在大学课本里面也有讲过,自己用起来应该还是相对比较简单的。串口通信的方式,几乎在任何一款单片机都有硬件支持的,只不过有的串口有多个,有一些少而已。按照之前自己接触过的单片机,51单片机作为本次的单片机主控芯片,功能上是基本可以满足实现的,51单片机作为最经典的8位处理器,同时也是很多大学作为电子类专业的必选课程之一,可见其功能和实用性还是被大家认可的。所以本次决定在STC89C52RC单片机和STC12C5A60S2这两个中选出一个作为主控芯片。两者都是51内核,不同点有一下几点:1、12C5A60S2是IT模式的

19、,比普通的51单片机89C52可以快68倍,而定时器,串口为了兼容传统的51单片机,是可以设置为1T模式或者12T模式的;2、12C5A60S2有两个独立的串口,而89C52只有一个串口,一般在调试过程中,有多个串口是最好的,可以调试看信息,找问题所在,而这次的设计显然不需要,只需要用到一个串口通信即可;3、作为重要的对比,12C5A60S2的RAM有1280个字节,ROM有60K的存储空间,可见12C5A的容量是非常大的,而89C52的RAM和ROM就相对小很多,分别是512字节和8K,但实际上,作为本次的功能,已经足够了。经过以上选择对比,最后决定选用STC89C52作为本次的主控芯片。3

20、.1.2指纹模块作为本次的重要传感器,指纹识别模块无法自己去做,只能通过网上淘宝买现成的模块回来进行二次开发,市场有各种各样的指纹模块,价格也是五花八门,但实际上基本的协议还是比较相似的,只不过有的支持的协议指令多,有一些支持的指令相对来说比较少而已,本次需要用到的功能有录入指纹,识别指纹,清空指纹,显然这三个指令,几乎所有的模块都可以实现,根据最后筛选和价格比对,最后决定选用FM-180作为本次的指纹识别模块。FM-180指纹模块,一体化结构,已经包含了算法芯片,其质量稳定,性能优异,产量稳定,多行业客户的实际选择,给您无忧的产品保障体系。FM-180指纹模块由光学指纹传感器、高速DSP处理

21、器、高性能指纹比对算法、大容量FLASH芯片等软硬件构成,集成了采集芯片和指纹算法芯片;性能稳定,结构简单,具有指纹录取、图像处理、指纹对比、指纹搜索和模板存储、手指感应输出等功能;采用8条精简指令,开发更简单。产品特点:功能完善:独立完成指纹采集、指纹登记、指纹比对(1:1)和指纹搜索(1:N)功能。体积小巧:产品体积小巧,没有外接算法DSP芯片的电路板,已经集成一体,方便安装,故障少。超低功耗:产品整体功耗极低,适用于低功耗要求的场合。抗静电能力强:具有很强的抗静电能力,抗静电指标达到15KV以上。应用开发简单:开发者可根据提供的控制指令,自行指纹应用产品的开发,无需具备专业的指纹识别知识

22、。安全等级可调:适用于不同的应用场合,安全等级可由用户设定调整。技术参数:供电电压:DC46V供电电流:工作电流:110mA(典型值)峰值电流:140mA指纹图像录入时间:V0.3秒匹配方式:比对方式(1:1)搜索方式(1:N特征文件:256字节模板文件:512字节存储容量400枚安全等级:3级认假率(FAR):V0.0001%拒真率(FRR):V1.0%搜索时间:V1.0秒(1:1000时,均值)上位机接口:UART通讯串口波特率:57600bps图3FM-1803.1.3液晶显示作为人机交互界面,显示器起到一个至关重要的元件,本文中需要将整个操作的过程完全显示在显示器上面,比如录取指纹,识

23、别指纹是否正确还是错误等等。下面就本设计的过程中对显示器的元件选型进行分析和对比。万案1tvab图4数码管采用数码管的形式来作为显示器,数码管是一种半导体发光器件,一般单独的数码管有7段的数码管和8段的数码管,8段的数码管比7段多了一个小数点的段,他们的显示单元都是发光二极管。数码管还有共阳极和共阴极之分。将每个发光二极管的正极连到一起,将负极单独分开,就是共阳极,反过来,将每个发光二极管的负极连着一起就是共阴极。需要显示一个数字的时候,只需要把对应的发光二极管点亮即可组成一个数字显示,而一般采用的方法是动态扫描,使得每个发光二极管轮流的显示出来,由于单片机的速度很快,所以我们肉眼并不能看出来

24、。数码管价格便宜,使用简单,但是只能显示基本的数字,并不能显示一些比较复杂的字符,所以在一般需要显示复杂的电子设备中比较少见。方案2采用液晶LCD1602作为显示器,供电电压有3.3V和5V两种,能够同时显示16*2个字符,16列2行,其内部模块里面已经存储了160多个我们平时很普遍用到的的点阵字符图形,每一个字符符号都有一个固定的代码编码,只需要发送对应的代码编号给液晶模块,就会自动显示出来对应的字符,共有16个引脚,和单片机通信采用的是并行通信方式,即8个IO口,该模块优点是可以显示基本的字符符号,价格便宜。但是也有其不足的地方,就是不能显示中文,而且只能是显示2行,和单片机通信需要8个I

25、O口。加上3个控制引脚,一般都需要用到11个10口。图5液晶1602方案3采用液晶12864,显示器12864液晶,可以显示中文,并且是自带字库,字库中有几千个常用的汉字,用起来基本是可以满足的,接口也是比较灵活,可以选择并行或者串行接法,串行接法只需要用到两根线。液晶的引脚图如下图所示。液晶的D0D7是数据引脚,当液晶作为并行通信的时候,单片机要连接这8个数据口,而液晶的PSB引脚是选择并行或者串行的引脚,当低电平时为串行方式,当高电平时为并行方式。由于串口方式接口更简单,和单片机通信只需要2个IO口,在电路图设计中更为方便,所以一般在设计中可选择该方式。液晶还带了一个背光的对比度调节电位器

26、,可以调节字体和背光之间的一个对比度,而现在很多液晶都已经出厂时就把这个电阻值定好了,无需在手动去调节。表一液晶12864引脚管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正34V0RS(CS)H/L对比度(亮度)调整RS“H”,表示DB7DB0为显示数据RS“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E“H”,数据被读到DB7DB0R/W“L”,E“HL”,DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L

27、三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端图6LCD12864综上三个方案对比,最后选择液晶12864作为本次的显示器模块3.2电路设计3.2.1最小系统单片机最小系统一般由晶振电路、复位电路和单片机组成,是整个设计系统中最基本的也是最简单的电路,只有简简单单的几个元件,2个电容和一个晶振连接单片机的XTAL1和XTAL2引脚,而一个电阻和一个电解电容连着单

28、片机的复位引脚,看似这个电路非常简单,但这也关系着整个软件系统能不能正常工作,只有这个电路正常了,其他电路才有可能继续执行下去,由这个简单的电路,加上单片机最简单的启动程序,也就是我们平时所说的bootloader,简称为引导程序,这个引导程序是有芯片厂家出厂的时候就已经刷进去的,上电之后芯片会去执行这一段程序,包括配置一些寄存器和分频之类的操作,同时当我们去烧写程序的时候,也需要用到这个引导程序,通过PC发送固定码给芯片,芯片接受到后进进入这个程序开始接受用户程序,达到升级用户程序的功能,构成单片机最小系统。单片机正常供电为直接5V,工作时RST复位引脚为低电平,手册上面说明只要单片机的复位

29、脚超过2个机器周期的高电平,单片机就可以正常复位,所以按下复位按键,单片机复位。VCCC110uFGNDGND-|RW2EN3P134567SgP3010P3U112Echo1314151617XIISX219201KP10VCCP11P00P12P01P13P02P14P03P15【nP04P16二P05P17P06RST三P07P301UEAP31ALE/PROGP32PSEXP33P27P34P26P35P25P36P24P37P23X2P22VIP21GNDP20U189C5239SS3735站32313D2928272&252+252221斗0C+l110GND-|ITXTALC53

30、0图7最小系统电路3.2.3液晶显示电路本设计中,液晶显示起到一个人机交互的作用,尤其重要,试想如果没有界面提示的话,整个操作过程将很难去实现全部的功能。液晶12864可以显示4行,每一行可以显示8个汉字,共可以显示32个汉字,对应这个系统来说,是足够的,一般出现不够行的情况下,大都是采用切换到第二个节目显示的方法;12864液晶跟单片机的通信方式有两种,一种是并行,一种是串行,对于串行来说,电路是比较简单不需要那么多的IO口,只需要两个IO就行,一发一收,但速率就比并行比较慢,而并行由于8个IO起发送数据,因此要比较快,对于显示刷新频率要求不高的话,可以考虑用串行方式,毕竟电路简单,IO少,

31、而本次的设计过程中采用的是并行方式,跟LCD液晶的通信端设置为P0端,而单片机的P0端默认是没有上拉的,因为也要在电路中给P0口接上一个8个电阻的排阻,阻值一般取1K,而液晶的第三脚作为背光调节亮度,可以接一个电阻器来改变该脚的电压值从而达到可以调节亮度的效果,由于没有现成的电位器,因此该引脚悬空操作,液晶也可以正常显示。GNDG19RrstD4321O987S1-1111PrshlGND|vcc12開斗IGND图8液晶12864电路图3.2.4指纹通信电路本文采用的指纹识别模块是集成的模块,跟单片机通信采用的是串口方式,波特率是57600,8位数据,一位停止位,无校验。由于单片机需要外部晶振

32、,所以在需要用到串口的电路中,该晶振都必须是为11.0592M的倍数,如果采用12M的话,波特率会有误差,会造成串口数据丢失的情况。89C52单片机只有一个串口,所以用串口1跟指纹模块通信,单片机的RXD接指纹模块的TX,而单片机的TXD接指纹模块的RX。通过指纹模块的数据手册,发送对应的指令给指纹模块,即可实现录入指纹、识别指纹、清空指纹等操作。指纹模块VCCGND指纹通信电路3.2.5蜂鸣器电路GND8550P37蜂鸣器-VCC图10蜂鸣器驱动电路本次设计中,由于需要在录入指纹和识别指纹中对正确或者错误做出判断,因此在电路设计中加入了蜂鸣器来作为提醒报警响应的作用。采用的是直流电压5V供电

33、的有源蜂鸣器,但是一般的蜂鸣器在整个系统运行中需要比较大的电流,51单片机的IO口除了P0口外其他的都有一个弱上拉电阻,但IO的驱动电流也是非常低,不加外部的驱动电路是很难直接驱动的。而最常用的就是用普通的三极管来放大电流驱动,该三极管在电路中的作用是开关电路并且放大电流,P37高电平为蜂鸣器响,低电平蜂鸣器停止。报警提醒电路如图10所示。3.2.6按键电路4P11II2功能界面按键K2IGNDII2切换按键K314P143-2确定按键KIIGND4P33GND查看按键4P34_31_|K5I#取消按键GND图11按键电路设计中有录入指纹功能、识别指纹功能、清除指纹库功能,这些功能的切换都是通

34、过按键来实现的,按键一般有独立按键,矩阵键盘等,由于本次涉及到的按键不需要很多个,因此采用独立按键的形式,简单方便易操作,而按键电路用的是直接练到单片机的IO上面,通过对该10口电平读取不同的值来区别按下还是弹开,按键用的是4脚按键,对角的两个引脚为一对,是导通的,随便一个引脚接地,对角IO接入单片机,按下按键时,4个引脚都接通,即与单片机连着的引脚也被拉低,单片机IO也响应被拉低,软件就认为此时按键被按下,执行按下操作,由于按下过程中有电压毛刺,所以软件一般采用10MS的延时来代替消抖动作。3.2.7LED电路LED作为电子电路中最常用的指示作用,本次中也用到了两个LED灯来作为系统的提示灯

35、作用,一个为红色,一个为绿色,LED作为二极管的一个最典型元件,其两端也是有一个压降,一般1.3V左右,根据电子知识,只要在两端上有超过这个的压降,二极管就导通,为了保险起见,可以在单片机的IO口接上一个限流电阻,不至于上电时容易烧坏。当单片机的P35和P36高电平的时候,LED灯就亮,反过来,当为低电平的时候,LED灯就灭。P36R33GNDiHD2图12LED电路3.3本章小结本章介绍了本设计的元器件选型以及各个电路部分的设计和分析。4软件设计4.1系统方框图通过第二章的介绍,我们根据设计的要求采用STC89C52作为主控芯片,FM-180则作为本次最重要的指纹传感器,液晶12864作为人

36、机交互界面,同时用独立按键来进行各个功能切换,蜂鸣器和LED灯作为报警提示,最后根据设计要求做出的方框图图下图所示:IF。报警电路蜂鸣器报警电路系统上电之后,经过一系列的初始化,比如串口初始化,定时器初始化,初始化完成后进入主程序。由于单片机是单线程运行的,所以在主程序中采用一个while循环来执行整个的主程序。4.2功能介绍1、本系统设计了一个管理员的操作,即出厂时必须录入一个指纹,该指纹录入成功后就是该系统的管理员,方可进入主界面。主界面的功能有识别指纹功能、添加管理员功能、添加普通用户功能、清空指纹库功能,而每个功能的选择是通过按键来切换的。nJ一员库一式理户纹蓍用指别八H.主界面图14

37、2、进入主界面之后可以对系统进行一系列的操作,管理员可以有2个,当录入达到2个时会有提示。而要对系统的指纹进行录入普通用户和清空指纹库指纹都需要管理员验证。当验证失败的时候液晶提示相对应的内容,只有验证成功了才可执行下一步操作。图15管理员验证3、当管理员验证成功后就可以录入普通用户了,该系统可以录入多达400多位的普通用户,录入过程中只需要按住手指不放,当录入完成后液晶提示录入成功字符同时显示出对应的指纹ID号。同样的录入失败也会有同样的提示。图16添加用户4、清空指纹库的操作一样要经过管理员验证,验证成功后,系统将把所有的指纹删除,即清空指纹库。这时候没有任何指纹,同样的提示要录入管理员,

38、也就是恢复出厂设置。图17清空指纹库5、除了基本的录入指纹,识别指纹,清空指纹之外,板子还有一个查询按键,当按下该按键时,液晶显示出系统中已经存在的管理员和普通用户的数量,起到一个很好的查看作用。图18查询界面4.3开发环境介绍4.3.1Keil编译器本次的软件编程部分采用的是KEIL编译器KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil的网站虽然没有中文

39、版本,但是Keil软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。C51工具包的整体结构,口Vision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.obj)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.abs)。abs文件由OH51转换成标准的hex文件,以供调试器dS

40、cope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。21ProjeEileEdit力mProjectFlashPeiipheralsToolsSVCSWindowHelpjj沁、丄a梓z工拿Ez-冶宙038才输入:兀i-iSourceGroup10891*输出:无;2JSTARTUPS51090H1解091voidvLcdl28i4SetAddressz(unsignedcharai-Jmain.c何i-.KEY.c095unsignedcharbyAddre;z-JljCD12flM_2.c09+switch(x)

41、i-国FINGER.C095t24C02.09Scase0:byAddres=0 x804y;097break;09Scase1:byAddras-0 x90+y;099break;10Dcase2:byAddress=0 x5E十y;101break;102case3:byAddre3+y;103break;1WdsfauIt:105breakj1.107vLcdl286SsndCmdf(byAddress);1081谶总/+-fri-+it-it-it-jt+it-it+-frit-it-jk+jt+110y为距篱聂左边位這111葢为第几行112一+*背*:1士*土+*:!*古+*士*:士

42、古*113voidLcdl2864P-iLStzing(unsignedcharxfurnCOhlFIGd固FJNGEIU他Bin,匚LCD12S64.c图19Keil软件界面固4.3.2STC-ISP下载器STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。 STC-ISP(V6.35H)住肖告电诂官网:wwwWT匚MCLkuuSTCe3C62FC/LE52fiC7弓IlHUSfeAutM*卑口号酬仇心叶丰删鮒止moaoo回冉鈿弋码輕冲

43、区巨卜古u丰二吐klm滨.门卜USB-SEHIALCH340CCOHEJ定4口口*w:i趴十wi.L5ZDDIOk20OO+3ffi打幵程序宏件打秤EEFRCM文件谡件送项脫机下戟/UB/U7|程序力至启倩输|工酣乜|_|甘亂世12:Tf畔片士H口芦他血話能LTI凡丸垢辭口m有蜀i电才可停iterjjr回Fl邓和JHRAHiHIIamh冃介i-4n口下次垮启訪B寸.Fl0/F1和心:cocoon國0003767FE4F5DCFD75eiCOClCiH00rsE493A3FSE493AS4Ci03COC20HDFFdeo29El53A3F2540724COC30H54OF4420CS834004

44、F4S45eoCOCdCiHeo0B010201oe102040eosoCOC50H93-SOECi3FF543F30E50554COCfiOkL.I.,B丄程岡八陀:5:自动骑门代码、妊进吕达hr担:布顶目程序當布呗目帮助读取丰机魂盘岂Workspec&l.DsnWrk工作台指纯朝.PrjPCB工程:iHl.二汨器*恿理團-SchdDG图20STCISP434Protel软件殳AltiumDesignerSummer09-E:工程项目论文指纹KJPC叭EMdkp(x)/()脊命3(y)二袒心世)设计(0)工貝报吉(B)屋口陋)科助凹i签日|厲艮|冋齟叩i审詣aJr+.:-o|4*/垃j壬n*

45、人凹亠泪藹口宀尅Pr&iectc中X口Jif理图.SchUtKN原理图.SchDcc曰錘猎纹识别沪诃匚乃B三5i&DocumenisSBPCB2-PcbDtx:E1SfrUingaH1Gen&ret&dBFreeDocumenls日SoaresDocumenls口斥弓里圉SchD&c图21protel软件本设计电路图的设计是通过Protel画的,这个软件在大学的实验课程中也是有学到的,所以用这个软件来设计电路图。由于电路图的连线比较复杂,如果用线直接连的话看起来会比较乱,而且容易出问题,所以本设计采用网络的方式来连接元器件。通过画好原理图之后,就转换成PCB即可。4.4部分代码说明该代码说明:

46、液晶12864可以显示4行文字,每一行最多可以显示8个汉字,一共可以显示32个汉字,一般在程序中只需要告诉液晶的X、Y轴即可。液晶的行数据的地址分别是0X80,0X90,0X88,0X98,分别表示的是第一行,第二行,第三行和第四行。例如想要在液晶的第二行的第三个位置显示文字,Lcdl2864_PutString(l,2,添加成功);这样即可显示出来。voidv_Lcd12864SetAddress_f(unsignedcharx,y)/地址转换unsignedcharbyAddress;switch(x)case0:byAddress=0 x80+y;break;case1:byAddres

47、s=0 x90+y;break;case2:byAddress=0 x88+y;break;case3:byAddress=0 x98+y;break;default:break;v_Lcd12864SendCmd_f(byAddress);voidLcd12864_PutString(uharx,uchary,unsignedchar*pData)v_Lcd12864SetAddress_f(x,y);while(*pData!=0)v_Lcd12864SendData_f(*pData+);delay(30);该代码说明:按键方式采用的是独立按键的方式,一共用到5个独立按键,没有按下按键的

48、时候,单片机对应的IO口是高电平,当有按键按下时对应的IO口就被连到GND,对应的IO也就是低电平。单片机检测到后,根据相对应的IO口执行不同的按键功能。对于消抖操作,在简单的设计中可以使用一个时间延时来处理。这个时间不能太长,如果太长的话会导致按键不灵敏等问题。uintFUN_KeyDec()bitpress=0;if(!IOKEY_dec)/如果检测到低电平,说明按键按下keyDelay_lms(l);/延时去抖,一般10-20msif(!IOKEY_dec)/再次确认按键是否按下,没有按下则退出while(!IOKEY_dec);/如果确认按下按键等待按键释放,没有释放/则一直等待pre

49、ss=1;if(press)ClrScreen12864();sys_status=8;return0;该代码说明:当进行指纹识别的时候,单片机通过串口发送对应的指令给指纹模块,指纹模块从而进行搜索指纹功能。当用户按下手指的时候,模块会自动获取该指纹的特征值,并对这个特征值进行判断是否已经存在系统中,如果是存在则返回该指纹的序号,如果不匹配则返回0。单片机将返回到的数据做判断,0则认为识别识别,大于0则认为识别成功。unsignedcharsearch(void)/搜索用户unsignedcharSearchBuf=0;uchari=0;while(1)if(ImgProcess(l)=3)/

50、首先读入一次指纹SearchBuf二Searchfinger();/进行指纹比对,如果搜索到,返/回搜索到的指纹序号if(SearchBuf=1)returnSearchNumber;elsei+;if(i5)return0;return0;该代码说明:采集指纹的过程中,需要采集两次的指纹,将2次采集到的特征值生成一个指纹模板,并对该模板进行保存。当保存模板成功后,单片机将该指纹的模板的序号写入到单片机的EEPROM中,以便实现掉电保存指纹。unsignedcharenroll(void)/采集两次指纹,生成1个指纹模板unsignedchartemp=0,count=0,kk=0;while

51、(1)temp=ImgProcess(1);/生成特征1if(temp=3)/生成特征文件成功break;else/采集第一个特征成功count=0;Beep=0;Fdelay1ms(100);Beep=1;Fdelaylms(2000);/延时2S开始采集下一个特征/开始采集第二个特征while(1)temp=ImgProcess(2);/生成特征2if(temp=3)/生成特征文件2成功if(Command(MERG,40)&(FifoNumber=11)&(FIFO9=0 x00)=0)/合并不成功返回0,成功返回1kk+;if(enroll()return1;if(kk4)return

52、(0);else/特征文件合并生成模板,结果存于ModelBufferBeep=0;Fdelay1ms(100);Beep=1;Fdelay1ms(100);Beep=0;Fdelay1ms(100);/响两声,表示生成一个模板成功Beep=1;return1;else4.5本章小结本章主要介绍了设计过程中的软件部分,包括整个系统的方框图,还有功能介绍,最后简单介绍了开发环境。5系统调试5.1制作和调试5.1.1原理图设计指级模块VCCP1匚P30P31d|4HHsr斗GNDGND电源4P11.1J.1IM能界面按键_Kl工GNDVCCrasa-、也VCCnp=-b1413121110GKD亍

53、HGND/tsepGND蜂鸣罢电路P25rw*|vcc绿灯GD|D2th12E&4GKD叹R4GNDVCCMALIP0.0.AD0P0.1.AD1XTAL1P0J.AD2RSTfZvppP03.AD3P0.4.AD4PO-5/AD5PO.6.AD6P0.7/AD7PL0.-T1PSENPl1.T1EXALEP口PJ.O.RsDP1JPl4Pl_5P王LTsDPLSP32.INT0PL7P33.3NT1P3.4.TOPQ-O.ABP3.5/T1PQ-l/APP王氏WRPU1A10P3.7.RDPU.-AllVSPQ-4A12PU.-A13P16.A14P17/A15电源指示GNDD1红灯D5图2

54、2原理图4P14冃确定按键.11K21GND4P1711K3:切换按键丄GND111K5:取消按键丄GKD4P33jj_n.杳看按键K4GND根据第三章的硬件设计部分,电路分为最小系统、液晶电路、指纹通信电路、供电电路、按键电路、蜂鸣器和LED电路。确定了基本的电路设计后,就开始画电路图,米用的是Protel软件来画电路图,电路元件之间的连接米用的是网络的形式来连接。5.1.2PCB制作画好电路图之后,要对每个元件进行封装,有一些元件,Protel软件本身是自带有的,而有一些没有的就需要找其他的代替或者自己画封装。封装画好之后就可以进行转成PCB了。PCB中主要的就是进行PCB布线,采用的是手

55、动布线,把元件摆好位置后,采用的是2层板的布线,布线完成后就可以添加泪滴、覆铜、布地等操作。最后就是发出去给工厂打板即可。JLI.*KK同回K综Qi22Rphulc3一IP尸34红Reo*2R50-CFtY101PJD幵丫E忙VCCoon|pi图23PCB底层QQQQQOQOCOOOQQOQQQQQGMOTYEXl/CGPlossw*e*swooovwooooooo5111澈Jl-X000ooR2C2QoSoKUl图24PCB顶层P2卸o0o红尸尸3一rRchui*4一rRohulo2RohuloorLOo-_sss卅5oooooooo*ooooooooo尸尸3一R:一口Robul*JltX.

56、K2图25PCB无覆铜层SY1)0K45.2调试过程板子焊接好后,就要对单片机烧写程序,开始验证各个软件和硬件的部分,而本次中事实上不是一下就成功的,也遇了不少的问题,下面就对在调试过程中遇到的问题阐述说明:1、无法下载程序由于考虑到把难度降低,同时在板子的电路尽可能的简单,所以本电路中没有烧写程序的电路,而是直接把单片机的串口接出来,用一个烧写工具USB转TTL电平的串口工具来烧写,该模块的主芯片用到的是PL2303,即是USB转成TTL电平直接跟单片机进行串口通信。把电路基本焊接完成后,首先接上电源,用万用表量电压正常,接上USB转TTL模块,开始下载程序,发现一直没反应,最后发现是没有共

57、地造成的,共地之后正常下载;2、指纹模块无法工作单片机和指纹模块之间的通信方式采用的是串口方式,成功烧写程序之后,单片机经过串口初始化之后,为了方便测试两者之间的通信是否正常,单片机上电之后会直接通过串口发送指令给指纹模块,实现识别功能,当指纹模块接受到该指令时,指纹采集头会亮,但是指纹头却一直没有反应,确认了指纹模块的接线正确之后,指纹头还是没有反应。将指纹模块拔掉,用USB转TTL工具来调试单片机的串口数据,接入电脑后,打开调试助手,在串口参数正确的情况下,发现单片机发送出来的数据是乱码,波特率等其他参数都是正确的,同时也进行了共地,那就是晶振的问题,发现晶振用的是12M的,用到串口的时候

58、,晶振必须是用11.0592M倍数的才不会有误差,其他的会有误差,造成数据丢失乱码等现象,换了晶振之后,串口通信正常。3、指纹模块反应慢把程序下载后,先让程序直接进入指纹识别模式,但是发现指纹模块一直很难识别指纹成功,反应慢,把指纹模块的电源断开,用串口调试助手看单片机发送的数据又是正确的,一直找不到原因,后来发现单片机的TXD和RXD一直连着杜邦线,把杜邦线拔掉,指纹模块正常工作了;4、按键不灵敏板子上有5个按键,有各自的功能,在测试中,发现所有的按键都不太灵敏,当按下录入按键时,本来液晶是显示提示正在录入指纹,但结果液晶一直没正常的显示,或者有时显示,硬件实在找不出问题后转向软件问题,最后

59、发现按键消抖延时,长得太离谱,导致要一直按着按键才有反应,改短了时间后,按键也正常反应。5、蜂鸣器蜂鸣器作为本次的报警器件,直接烧写一个调试成功的让蜂鸣器报警的程序,发现蜂鸣器不响,一开始怀疑是三极管烧坏了,换了之后发现还是不行,查看后原理图给的限流电阻为1K,而焊接的却是10K的,电阻阻值太大,导致电流不够让三极管导通,最后换了1K电阻,蜂鸣器正常报警;6、液晶不显示本次采用的是液晶12864作为显示器,采用的是串口接法,只需要用到单片机的2个IO口,方便简单,在调试过程中,发现液晶无法显示出文字信息,只亮了背光,把一样的程序烧到另外一个开发板上面,开发板上面的液晶正常显示,验证了是焊接的板子问题,再次将开发板上面的液晶换到焊接的板子上面,液晶也正常显示,由此可见,就是液晶本身的问题。想起液晶有串行和并行两种接口,咨询了卖家之后才得知,这一块液晶是并口接口的,想要换成串行接法,须将液晶背面的一个电阻焊掉,焊掉该电阻之后,重新插上液晶,正常显示。5.3调试完成、实物图在经过各个部分的硬件和软件调试后

温馨提示

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

评论

0/150

提交评论