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

下载本文档

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

文档简介

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

2、简单的外围电路,如按键输入、LED 灯报警电路、蜂鸣器电路,最后通过编写软件和制作硬件,实现一个可以通过单片机对指纹的录入,识别,删除等功能操作的指纹识别系统。关键词 指纹识别系统;单片机 89C52;液晶 12864 精选优质文档-倾情为你奉上专心-专注-专业Abstract With the rapid development of modern science a variety of new technologies, in everyday life, we need a variety of authentication and a variety of password auth

3、entication, as well as a variety of devices with keys for the safe installation of security systems, etc., social progress the development of technology, to promote the traditional security system resilience increasingly weak. Thus, biometric applications, born around us began to enter various secur

4、ity systems, biometric fingerprint identification as a typical application has been very widely used and recognized, unique fingerprint characteristics, life is not for everyone one variable characteristics, and each persons fingerprints are not the same individual.The system uses 89C52RC microcontr

5、oller as the main chip, it passes between the fingerprint recognition module FM-180 serial communication with the communication method by using a liquid crystal display as 12864, plus simple peripheral circuits, such as key input, LED light alarm circuit, buzzer circuit, and finally through the prep

6、aration and production of software, hardware, you can implement a microcontroller on the fingerprint input, recognition, and delete functions operate fingerprint identification system.Key words Fingerprint identification system;SCM 89C52;LCD 12864精选优质文档-倾情为你奉上专心-专注-专业目 录 精选优质文档-倾情为你奉上专心-专注-专业精选优质文档-

7、倾情为你奉上专心-专注-专业1 绪论1.1 课题的背景和意义随着如今各种各样的高新技术的迅猛发展,在百姓日常生活中经常需要我们去确认各种身份的认证。而在现在的大数据信息时代,每个人都拥有各种各样的大量认证密码,有一些是全数字的,还有一些是图像密码,例如手机开机密码,移动端支付密码,电脑开机密码,聊天软件登录密码等等,就单单这些移动端的密码都可以是无数个,更不要说还有一些更重要的安全密码,例如银行卡的支付密码等。还有其他的一些比较传统的硬件机械安全防盗系统保险柜,大门钥匙、汽车钥匙、摩托车钥匙等等,随着现在时代的变化,科技的进步,传统的一些安全系统已经正在变得越来越脆弱了,因此,更先进更高级的生

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

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

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

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

12、入、指纹的识别、指纹的删除等共,组成了一个基于 51 单片机的指纹识别系统,从而对指纹识别算法的研究和单片机的结构更进一步的了解,并且根据硬件选型,选择了其中较为可行的方案,并制作和调试电路板。具体的章节和各章的内容安排如下:精选优质文档-倾情为你奉上专心-专注-专业第 1 章阐述了本课题的研究背景和意义,同时介绍了生物识别特征的几个识别手段,最后介绍了指纹识别技术的概念。第 2 章介绍了本文设计的要求,最后根据要求设计出合理的具体方案。第 3 章介绍了本设计的硬件部分,包括主要的元器件选型,各个电路的设计和分析。第 4 章介绍了本设计的软件部分,包括整个系统的方框图,功能的具体介绍,最后还简

13、单介绍了开发环境。第 5 章介绍了本系统的调试过程,主要是在整个系统的调试过程中遇到的问题和解决方法。第 6 章是对本文的一个总结,以及提出对整个设计的一些不足。精选优质文档-倾情为你奉上专心-专注-专业2 设计方案2.1 设计要求本设计要求如下:1、系统默认至少有一位管理员,没管理员的时候提示必须添加管理员方可操作;2、可以对管理员进行添加,最多有 2 位,普通用户可以添加 400 多位;3、录入指纹和删除指纹的时候必须管理员验证,验证成功才可以添加用户,否则不可以添加用户;4、可以查看管理员和普通用户的数量;5、可以对指纹进行删除,需管理员验证;6、通过以上要求,制作出一套具有软件和硬件相

14、结合的指纹考勤系统。2.2 设计方案通过上节的设计要求,根据搜集资料并且结合自身所学知识,最后制定的本设计方案如下:本设计以 51 单片机 STC89C52 作为主芯片,选取了指纹识别模块 FM-180 进行二次开发,该模块采用串口通信方式,按照指纹系统自定义的协议来跟单片机通信,单片机按照固定的协议去读取指纹系统的数据,同时对指纹系统发送指令进行控制,从而实现指纹的操作;而显示器选用 LCD12864,液晶在系统运行中和各个不同功能模式的时候显示对应的提示内容;设计要求可对指纹进行录入、识别、删除等操作,通过不同的按键来完成,本设计采用了 5 个独立的按键,软件部分采用轮询检测 IO 电平来

15、判断按键值;报警提示选用的元件是蜂鸣器和 LED 灯。2.3 本章小结本章介绍了本课题设计的具体要求,最后根据设计要求制定的合理可行的具体方案。精选优质文档-倾情为你奉上专心-专注-专业3 硬件设计3.1 主要元器件选型3.1.1 单片机选型图 2 STC89C52本设计中需要用到跟指纹模块进行通信,而经过对单片机与模块通信方式的多种比较后,决定采用比较简单的串口通信,而串口通信在大学课本里面也有讲过,自己用起来应该还是相对比较简单的。串口通信的方式,几乎在任何一款单片机都有硬件支持的,只不过有的串口有多个,有一些少而已。按照之前自己接触过的单片机,51 单片机作为本次的单片机主控芯片,功能上

16、是基本可以满足实现的,51 单片机作为最经典的 8 位处理器,同时也是很多大学作为电子类专业的必选课程之一,可见其功能和实用性还是被大家认可的。所以本次决定在 STC89C52RC 单片机和 STC12C5A60S2 这两个中选出一个作为主控芯片。精选优质文档-倾情为你奉上专心-专注-专业两者都是 51 内核,不同点有一下几点:1、12C5A60S2 是 1T 模式的,比普通的 51 单片机 89C52 可以快 68 倍,而定时器,串口为了兼容传统的 51 单片机,是可以设置为 1T 模式或者 12T 模式的;2、12C5A60S2 有两个独立的串口,而 89C52 只有一个串口,一般在调试过

17、程中,有多个串口是最好的,可以调试看信息,找问题所在,而这次的设计显然不需要,只需要用到一个串口通信即可;3、作为重要的对比,12C5A60S2 的 RAM 有 1280 个字节,ROM 有 60K 的存储空间,可见 12C5A 的容量是非常大的,而 89C52 的 RAM 和 ROM 就相对小很多,分别是 512 字节和 8K,但实际上,作为本次的功能,已经足够了。经过以上选择对比,最后决定选用 STC89C52 作为本次的主控芯片。3.1.2 指纹模块作为本次的重要传感器,指纹识别模块无法自己去做,只能通过网上淘宝买现成的模块回来进行二次开发,市场有各种各样的指纹模块,价格也是五花八门,但

18、实际上基本的协议还是比较相似的,只不过有的支持的协议指令多,有一些支持的指令相对来说比较少而已,本次需要用到的功能有录入指纹,识别指纹,清空指纹,显然这三个指令,几乎所有的模块都可以实现,根据最后筛选和价格比对,最后决定选用 FM-180 作为本次的指纹识别模块。FM-180 指纹模块,一体化结构,已经包含了算法芯片,其质量稳定,性能优异,产量稳定,多行业客户的实际选择,给您无忧的产品保障体系。 FM-180 指纹模块由光学指纹传感器、高速 DSP 处理器、高性能指纹比对算法、大容量 FLASH 芯片等软硬件构成,集成了采集芯片和指纹算法芯片;性能稳定,结构简单,具有指纹录取、图像处理、指纹对

19、比、指纹搜索和模板存储、手指感应输出等功能;采用 8 条精简指令,开发更简单。产品特点:功能完善:独立完成指纹采集、指纹登记、指纹比对(1:1)和指纹搜索(1:N)功能。体积小巧:产品体积小巧,没有外接算法 DSP 芯片的电路板,已经集成一体,方便安装,故障少。 超低功耗:产品整体功耗极低,适用于低功耗要求的场合。 抗静电能力强:具有很强的抗静电能力,抗静电指标达到 15KV 以上。 应用开发简单:开发者可根据提供的控制指令,自行指纹应用产品的开精选优质文档-倾情为你奉上专心-专注-专业发,无需具备专业的指纹识别知识。 安全等级可调:适用于不同的应用场合,安全等级可由用户设定调整。技术参数:供

20、电电压:DC 46V供电电流:工作电流:110mA(典型值)峰值电流:140mA 指纹图像录入时间:0.3 秒匹配方式:比对方式(1:1)搜索方式(1:N特征文件:256 字节模板文件:512 字节存储容量 400 枚安全等级:3 级 认假率(FAR):0.0001%拒真率(FRR):1.0%搜索时间:1.0 秒 (1:1000 时,均值)上位机接口:UART 通讯串口波特率:57600bps图 3 FM-1803.1.3 液晶显示作为人机交互界面,显示器起到一个至关重要的元件,本文中需要将整个操作的过程完全显示在显示器上面,比如录取指纹,识别指纹是否正确还是错误 等等。下面就本设计的过程中对

21、显示器的元件选型进行分析和对比。精选优质文档-倾情为你奉上专心-专注-专业方案 1图 4 数码管采用数码管的形式来作为显示器,数码管是一种半导体发光器件,一般单独的数码管有 7 段的数码管和 8 段的数码管,8 段的数码管比 7 段多了一个小数点的段,他们的显示单元都是发光二极管。数码管还有共阳极和共阴极之分。将每个发光二极管的正极连到一起,将负极单独分开,就是共阳极,反过来,将每个发光二极管的负极连着一起就是共阴极。需要显示一个数字的时候,只需要把对应的发光二极管点亮即可组成一个数字显示,而一般采用的方法是动态扫描,使得每个发光二极管轮流的显示出来,由于单片机的速度很快,所以我们肉眼并不能看

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

23、,而且只能是显示 2 行,和单片机通信需要 8 个 IO 口。加上 3 个控制引脚,一般都需要用到 11 个 IO 口。精选优质文档-倾情为你奉上专心-专注-专业图 5 液晶 1602方案 3采用液晶 12864,显示器 12864 液晶,可以显示中文,并且是自带字库,字库中有几千个常用的汉字,用起来基本是可以满足的,接口也是比较灵活,可以选择并行或者串行接法,串行接法只需要用到两根线。液晶的引脚图如下图所示。液晶的 D0D7 是数据引脚,当液晶作为并行通信的时候,单片机要连接这 8 个数据口,而液晶的 PSB 引脚是选择并行或者串行的引脚,当低电平时为串行方式,当高电平时为并行方式。由于串口

24、方式接口更简单,和单片机通信只需要 2 个 IO 口,在电路图设计中更为方便,所以一般在设计中可选择该方式。液晶还带了一个背光的对比度调节电位器,可以调节字体和背光之间的一个对比度,而现在很多液晶都已经出厂时就把这个电阻值定好了,无需在手动去调节。表一 液晶 12864 引脚管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示 DB7DB0 为显示数据RS=“L”,表示 DB7DB0 为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到 DB7DB0R/W=“L”,E=“HL”, DB

25、7DB0 的数据被写到 IR 或 DR6E(SCLK)H/L使能信号精选优质文档-倾情为你奉上专心-专注-专业7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8 位或 4 位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD 驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端图 6 LCD12864综上三个方案对比,最后选择液晶 12864 作为本次的显示器模

26、块3.2 电路设计3.2.1 最小系统单片机最小系统一般由晶振电路、复位电路和单片机组成,是整个设计系统中最基本的也是最简单的电路,只有简简单单的几个元件,2 个电容和一个晶振连接单片机的 XTAL1 和 XTAL2 引脚,而一个电阻和一个电解电容连着单片机的复位引脚,看似这个电路非常简单,但这也关系着整个软件系统能不能正精选优质文档-倾情为你奉上专心-专注-专业常工作,只有这个电路正常了,其他电路才有可能继续执行下去,由这个简单的电路,加上单片机最简单的启动程序,也就是我们平时所说的 bootloader,简称为引导程序,这个引导程序是有芯片厂家出厂的时候就已经刷进去的,上电之后芯片会去执行

27、这一段程序,包括配置一些寄存器和分频之类的操作,同时当我们去烧写程序的时候,也需要用到这个引导程序,通过 PC 发送固定码给芯片,芯片接受到后进进入这个程序开始接受用户程序,达到升级用户程序的功能,构成单片机最小系统。单片机正常供电为直接 5V,工作时 RST 复位引脚为低电平,手册上面说明只要单片机的复位脚超过 2 个机器周期的高电平,单片机就可以正常复位,所以按下复位按键,单片机复位。图 7 最小系统电路3.2.3 液晶显示电路本设计中,液晶显示起到一个人机交互的作用,尤其重要,试想如果没有界面提示的话,整个操作过程将很难去实现全部的功能。液晶 12864 可以显示4 行,每一行可以显示

28、8 个汉字,共可以显示 32 个汉字,对应这个系统来说,精选优质文档-倾情为你奉上专心-专注-专业是足够的,一般出现不够行的情况下,大都是采用切换到第二个节目显示的方法;12864 液晶跟单片机的通信方式有两种,一种是并行 ,一种是串行,对于串行来说,电路是比较简单不需要那么多的 IO 口,只需要两个 IO 就行,一发一收,但速率就比并行比较慢,而并行由于 8 个 IO 一起发送数据,因此要比较快,对于显示刷新频率要求不高的话,可以考虑用串行方式,毕竟电路简单,IO 少,而本次的设计过程中采用的是并行方式,跟 LCD 液晶的通信端设置为 P0端,而单片机的 P0 端默认是没有上拉的,因为也要在

29、电路中给 P0 口接上一个8 个电阻的排阻,阻值一般取 1K,而液晶的第三脚作为背光调节亮度,可以接一个电阻器来改变该脚的电压值从而达到可以调节亮度的效果,由于没有现成的电位器,因此该引脚悬空操作,液晶也可以正常显示。图 8 液晶 12864 电路图3.2.4 指纹通信电路本文采用的指纹识别模块是集成的模块,跟单片机通信采用的是串口方式,波特率是 57600,8 位数据,一位停止位,无校验。由于单片机需要外部晶振,所以在需要用到串口的电路中,该晶振都必须是为 11.0592M 的倍数,如果采用12M 的话,波特率会有误差,会造成串口数据丢失的情况。89C52 单片机只有一个串口,所以用串口 1

30、 跟指纹模块通信,单片机的 RXD 接指纹模块的 TX,而单精选优质文档-倾情为你奉上专心-专注-专业片机的 TXD 接指纹模块的 RX。通过指纹模块的数据手册,发送对应的指令给指纹模块,即可实现录入指纹、识别指纹、清空指纹等操作。图 9 指纹通信电路3.2.5 蜂鸣器电路图 10 蜂鸣器驱动电路本次设计中,由于需要在录入指纹和识别指纹中对正确或者错误做出判断,因此在电路设计中加入了蜂鸣器来作为提醒报警响应的作用。采用的是直流电精选优质文档-倾情为你奉上专心-专注-专业压 5V 供电的有源蜂鸣器,但是一般的蜂鸣器在整个系统运行中需要比较大的电流,51 单片机的 IO 口除了 P0 口外其他的都

31、有一个弱上拉电阻,但 IO 的驱动电流也是非常低,不加外部的驱动电路是很难直接驱动的。而最常用的就是用普通的三极管来放大电流驱动,该三极管在电路中的作用是开关电路并且放大电流,P37 高电平为蜂鸣器响,低电平蜂鸣器停止。报警提醒电路如图 10 所示。3.2.6 按键电路图 11 按键电路设计中有录入指纹功能、识别指纹功能、清除指纹库功能,这些功能的切换都是通过按键来实现的,按键一般有独立按键,矩阵键盘等,由于本次涉及到的按键不需要很多个,因此采用独立按键的形式,简单方便易操作,而按键电路用的是直接练到单片机的 IO 上面,通过对该 IO 口电平读取不同的值来区别按下还是弹开,按键用的是 4 脚

32、按键,对角的两个引脚为一对,是导通的,随便一个引脚接地,对角 IO 接入单片机,按下按键时,4 个引脚都接通,即与单片机连着的引脚也被拉低,单片机 IO 也响应被拉低,软件就认为此时按键被按下,执行按下操作,由于按下过程中有电压毛刺,所以软件一般采用 10MS 的延时来代替消抖动作。精选优质文档-倾情为你奉上专心-专注-专业3.2.7 LED 电路LED 作为电子电路中最常用的指示作用,本次中也用到了两个 LED 灯来作为系统的提示灯作用,一个为红色,一个为绿色,LED 作为二极管的一个最典型元件,其两端也是有一个压降,一般 1.3V 左右,根据电子知识,只要在两端上有超过这个的压降,二极管就

33、导通,为了保险起见,可以在单片机的 IO 口接上一个限流电阻,不至于上电时容易烧坏。当单片机的 P35 和 P36 高电平的时候,LED 灯就亮,反过来,当为低电平的时候,LED 灯就灭。图 12 LED 电路3.3 本章小结本章介绍了本设计的元器件选型以及各个电路部分的设计和分析。精选优质文档-倾情为你奉上专心-专注-专业4 软件设计4.1 系统方框图通过第二章的介绍,我们根据设计的要求采用 STC89C52 作为主控芯片,FM-180 则作为本次最重要的指纹传感器,液晶 12864 作为人机交互界面,同时用独立按键来进行各个功能切换,蜂鸣器和 LED 灯作为报警提示,最后根据设计要求做出的

34、方框图图下图所示:图 13 系统结构框图系统上电之后,经过一系列的初始化,比如串口初始化,定时器初始化,初始化完成后进入主程序。由于单片机是单线程运行的,所以在主程序中采用精选优质文档-倾情为你奉上专心-专注-专业一个 while 循环来执行整个的主程序。4.2 功能介绍1、本系统设计了一个管理员的操作,即出厂时必须录入一个指纹,该指纹录入成功后就是该系统的管理员,方可进入主界面。主界面的功能有识别指纹功能、添加管理员功能、添加普通用户功能、清空指纹库功能,而每个功能的选择是通过按键来切换的。图 14 主界面2、进入主界面之后可以对系统进行一系列的操作,管理员可以有 2 个,当录入达到 2 个

35、时会有提示。而要对系统的指纹进行录入普通用户和清空指纹库指纹都需要管理员验证。当验证失败的时候液晶提示相对应的内容,只有验证成功了才可执行下一步操作。图 15 管理员验证精选优质文档-倾情为你奉上专心-专注-专业3、当管理员验证成功后就可以录入普通用户了,该系统可以录入多达 400多位的普通用户,录入过程中只需要按住手指不放,当录入完成后液晶提示录入成功字符同时显示出对应的指纹 ID 号。同样的录入失败也会有同样的提示。图 16 添加用户4、清空指纹库的操作一样要经过管理员验证,验证成功后,系统将把所有的指纹删除,即清空指纹库。这时候没有任何指纹,同样的提示要录入管理员,也就是恢复出厂设置。图

36、 17 清空指纹库5、除了基本的录入指纹,识别指纹,清空指纹之外,板子还有一个查询按键,当按下该按键时,液晶显示出系统中已经存在的管理员和普通用户的数量,起到一个很好的查看作用。精选优质文档-倾情为你奉上专心-专注-专业图 18 查询界面4.3 开发环境介绍4.3.1 Keil 编译器本次的软件编程部分采用的是 KEIL 编译器。Keil C51 是美国 Keil Software 公司出品的 51 系列兼容 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软

37、件时更能体现高级语言的优势。Keil 的网站虽然没有中文版本,但是Keil 软件却被中国 80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到 Keil 软件。C51 工具包的整体结构,Vision 与 Ishell 分别是 C51 for Windows 和 for Dos 的(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或其它编辑 C 或汇编源文件。然后分别由 C51 及 C51 编译生成目标文件(.obj)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成

38、绝对目标文件(.abs)。abs 文件由 OH51 转换成标准的hex 文件,以供调试器 dScope51 或 tScope51 使用进行级调试,也可由使用直接对进行调试,也可以直接写入程序存贮器如 EPROM 中。精选优质文档-倾情为你奉上专心-专注-专业图 19 Keil 软件界面4.3.2 STC-ISP 下载器STC-ISP 是一款下载编程软件,是针对系列单片机而设计的,可下载STC89 系列、12C2052 系列和 12C5410 等系列的 STC 单片机,使用简便,现已被广泛使用。精选优质文档-倾情为你奉上专心-专注-专业图 20 STC-ISP4.3.44.3.4 ProtelP

39、rotel 软件软件精选优质文档-倾情为你奉上专心-专注-专业图 21 protel 软件本设计电路图的设计是通过 Protel 画的,这个软件在大学的实验课程中也是有学到的,所以用这个软件来设计电路图。由于电路图的连线比较复杂,如果用线直接连的话看起来会比较乱,而且容易出问题,所以本设计采用网络的方式来连接元器件。通过画好原理图之后,就转换成 PCB 即可。4.4 部分代码说明该代码说明:液晶 12864 可以显示 4 行文字,每一行最多可以显示 8 个汉字,一共可以显示 32 个汉字,一般在程序中只需要告诉液晶的 X、Y 轴即可。液晶的行数据的地址分别是 0X80,0X90,0X88,0X

40、98,分别表示的是第一行,第二行,第三行和第四行。例如想要在液晶的第二行的第三个位置显示文字,Lcd12864_PutString(1,2,添加成功);这样即可显示出来。void v_Lcd12864SetAddress_f( unsigned char x, y ) /地址转换 unsigned char byAddress ; switch( x ) case 0 : byAddress = 0 x80 + y ; break; case 1 : byAddress = 0 x90 + y ; break ; case 2 : byAddress = 0 x88 + y ; break ;

41、 case 3 : byAddress = 0 x98 + y ; break ; default : break ; v_Lcd12864SendCmd_f( byAddress ) ;void Lcd12864_PutString( uhar x, uchar y, unsigned char *pData ) v_Lcd12864SetAddress_f( x, y ) ;精选优质文档-倾情为你奉上专心-专注-专业 while( *pData != 0 ) v_Lcd12864SendData_f( *pData+ ) ;delay(30); 该代码说明:按键方式采用的是独立按键的方式,

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

43、KEY_dec);/如果确认按下按键等待按键释放,没有释放/则一直等待press = 1; if(press)ClrScreen12864();sys_status=8;return 0; 精选优质文档-倾情为你奉上专心-专注-专业该代码说明:当进行指纹识别的时候,单片机通过串口发送对应的指令给指纹模块,指纹模块从而进行搜索指纹功能。当用户按下手指的时候,模块会自动获取该指纹的特征值,并对这个特征值进行判断是否已经存在系统中,如果是存在则返回该指纹的序号,如果不匹配则返回 0。单片机将返回到的数据做判断,0 则认为识别识别,大于 0 则认为识别成功。unsigned char search(v

44、oid)/搜索用户 unsigned char SearchBuf=0;uchar i=0;while(1) if (ImgProcess(1)=3)/首先读入一次指纹 SearchBuf=Searchfinger();/进行指纹比对,如果搜索到,返/回搜索到的指纹序号 if(SearchBuf=1) return SearchNumber; else i+;if(i5)return 0; return 0;该代码说明:采集指纹的过程中,需要采集两次的指纹,将 2 次采集到的特征值生成一个指纹模板,并对该模板进行保存。当保存模板成功后,单片机将该指纹的模板的序号写入到单片机的 EEPROM 中

45、,以便实现掉电保存指纹。unsigned char enroll(void) /采集两次指纹,生成 1 个 指纹模板精选优质文档-倾情为你奉上专心-专注-专业 unsigned char temp=0,count=0,kk=0; while(1) temp=ImgProcess(1); /生成特征 1 if (temp=3)/生成特征文件成功 break; else /采集第一个特征成功 count=0; Beep=0;Fdelay1ms(100);Beep=1;Fdelay1ms(2000);/延时 2S 开始采集下一个特征/开始采集第二个特征 while(1) temp=ImgProces

46、s(2); /生成特征 2 if (temp=3)/生成特征文件 2 成功 if ( (Command(MERG,40)& (FifoNumber=11) & (FIFO9=0 x00)=0 ) /合并不成功返回 0,成功返回 1kk+;if(enroll()return 1;if(kk 4)return(0);else/特征文件合并生成模板,结果存于 ModelBuffer精选优质文档-倾情为你奉上专心-专注-专业 Beep=0; Fdelay1ms(100); Beep=1; Fdelay1ms(100); Beep=0; Fdelay1ms(100);/响两声,表示生成一

47、个模板成功 Beep=1; return 1; else 4.5 本章小结本章主要介绍了设计过程中的软件部分,包括整个系统的方框图,还有功能介绍,最后简单介绍了开发环境。精选优质文档-倾情为你奉上专心-专注-专业5 系统调试5.1 制作和调试5.1.1 原理图设计图 22 原理图精选优质文档-倾情为你奉上专心-专注-专业根据第三章的硬件设计部分,电路分为最小系统、液晶电路、指纹通信电路、供电电路、按键电路、蜂鸣器和 LED 电路。确定了基本的电路设计后,就开始画电路图,采用的是 Protel 软件来画电路图,电路元件之间的连接采用的是网络的形式来连接。5.1.2 PCB 制作画好电路图之后,要

48、对每个元件进行封装,有一些元件,Protel 软件本身是自带有的,而有一些没有的就需要找其他的代替或者自己画封装。封装画好之后就可以进行转成 PCB 了。PCB 中主要的就是进行 PCB 布线,采用的是手动布线,把元件摆好位置后,采用的是 2 层板的布线,布线完成后就可以添加泪滴、覆铜、布地等操作。最后就是发出去给工厂打板即可。图 23 PCB 底层精选优质文档-倾情为你奉上专心-专注-专业图 24 PCB 顶层精选优质文档-倾情为你奉上专心-专注-专业图 25 PCB 无覆铜层5.2 调试过程板子焊接好后,就要对单片机烧写程序,开始验证各个软件和硬件的部分,而本次中事实上不是一下就成功的,也

49、遇了不少的问题,下面就对在调试过程中遇到的问题阐述说明:1、无法下载程序由于考虑到把难度降低,同时在板子的电路尽可能的简单,所以本电路中没有烧写程序的电路,而是直接把单片机的串口接出来,用一个烧写工具 USB转 TTL 电平的串口工具来烧写,该模块的主芯片用到的是 PL2303,即是 USB 转成 TTL 电平直接跟单片机进行串口通信。把电路基本焊接完成后,首先接上电源,用万用表量电压正常,接上 USB 转 TTL 模块,开始下载程序,发现一直没反应,最后发现是没有共地造成的,共地之后正常下载;精选优质文档-倾情为你奉上专心-专注-专业2、指纹模块无法工作单片机和指纹模块之间的通信方式采用的是

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

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

52、改短了时间后,按键也正常反应。5、蜂鸣器蜂鸣器作为本次的报警器件,直接烧写一个调试成功的让蜂鸣器报警的程序,发现蜂鸣器不响,一开始怀疑是三极管烧坏了,换了之后发现还是不行,查看后原理图给的限流电阻为 1K,而焊接的却是 10K 的,电阻阻值太大,导致电流不够让三极管导通,最后换了 1K 电阻,蜂鸣器正常报警;6、液晶不显示本次采用的是液晶 12864 作为显示器,采用的是串口接法,只需要用到单片机的 2 个 IO 口,方便简单,在调试过程中,发现液晶无法显示出文字信息,只亮了背光,把一样的程序烧到另外一个开发板上面,开发板上面的液晶正常显示,验证了是焊接的板子问题,再次将开发板上面的液晶换到焊

53、接的板子上面,液晶也正常显示,由此可见,就是液晶本身的问题。想起液晶有串行和并精选优质文档-倾情为你奉上专心-专注-专业行两种接口,咨询了卖家之后才得知,这一块液晶是并口接口的,想要换成串行接法,须将液晶背面的一个电阻焊掉,焊掉该电阻之后,重新插上液晶,正常显示。5.3 调试完成、实物图在经过各个部分的硬件和软件调试后,基本每个模块电路和对应的程序都没有问题后,整合软件,烧写到板子,上电,开始测试各个功能,正常使用,最终做出来的板子如图所示:精选优质文档-倾情为你奉上专心-专注-专业图 26 指纹识别系统硬件实物图5.4 本章小结本章介绍了在本次设计的过程中,软件代码编写和硬件调试过程中遇到的问题,并介绍是如何解决的,这也是本次设计中所学到的经验和体现自己动手能力一个很好的说明。精选优质文档-倾情为你奉上专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业6 总结指纹识别在目前看来,市场前景应该还算是比较不错的,而且作为人体生物特征识别技术中,应该还是比较广泛和技术比较成熟的,根据国际生物识别小组在 2009 年作出的一个不完全统计,目前市场上已经有很多种针对人类的各个不同生理特征和行为的特征

温馨提示

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

评论

0/150

提交评论