版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 authentication, as well as a variet
3、y 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 security systems, biometric fingerpr
4、int 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 microcontroller as the main chip, it pas
5、ses 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 preparation and production of soft
6、ware, 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 目 录 1 绪论.5 1.1 课题的背景和意义 .5 1.2 生物识别技术概述 .5 1.3 指纹识别技术概述 .6 1.4 本章小结 .6 2 设计方案.8 2
7、.1 设计要求 .8 2.2 设计方案 .8 2.3 本章小结 .8 3 硬件设计.9 3.1 主要元器件选型 .9 3.1.1 单片机选型.9 3.1.2 指纹模块.10 3.1.3 液晶显示.11 3.2 电路设计 .14 3.2.1 最小系统.14 3.2.3 液晶显示电路.15 3.2.4 指纹通信电路.16 3.2.5 蜂鸣器电路.17 3.2.6 按键电路.18 3.2.7 LED 电路 .18 3.3 本章小结 .19 4 软件设计.20 4.1 系统方框图 .20 4.2 功能介绍 .20 4.3 开发环境介绍 .23 4.3.1 Keil 编译器 .23 4.3.2 STC-
8、ISP 下载器 .24 4.3.4 Protel 软件 .25 4.4 部分代码说明 .26 4.5 本章小结 .30 5 系统调试.31 5.1 制作和调试 .31 5.1.1 原理图设计.31 5.1.2 PCB 制作 .32 5.2 调试过程 .34 5.3 调试完成、实物图 .36 5.4 本章小结 .37 6 总结.38 参考文献.39 致谢.40 1 绪论 1.1 课题的背景和意义 随着如今各种各样的高新技术的迅猛发展,在百姓日常生活中经常需要我 们去确认各种身份的认证。而在现在的大数据信息时代,每个人都拥有各种各 样的大量认证密码,有一些是全数字的,还有一些是图像密码,例如手机开
9、机 密码,移动端支付密码,电脑开机密码,聊天软件登录密码等等,就单单这些 移动端的密码都可以是无数个,更不要说还有一些更重要的安全密码,例如银 行卡的支付密码等。还有其他的一些比较传统的硬件机械安全防盗系统保险柜, 大门钥匙、汽车钥匙、摩托车钥匙等等,随着现在时代的变化,科技的进步, 传统的一些安全系统已经正在变得越来越脆弱了,因此,更先进更高级的生物 识别技术开始走进我们的身边,出现在各种各样的安全系统中。比如人脸识别、 指纹识别、眼球视网膜识别等,而指纹识别作为生物识别里面一个比较成熟的 已经获得了各行业界的认可的识别系统,广泛的被应用到安全系统中去。指纹 识别具有唯一性,每个人的每一个指
10、纹都是独一无二的,可以说指纹是一个人 身份的标志。 本系统采用的是 STC89C52 传统的 51 单片机作为主控 MCU,由于其低功耗、 编程灵活简单、外围设备丰富,性价比高,所以被广泛的应用在一些低端的电 子设备中,在高端产品中由于实时性,扩展性上受到了比较大的限制,所以很 少有其身影。但是也有它自身的突出的优点和意义,那就是简单好用便宜,在 本次设计中做为主芯片,跟指纹模块进行串口通信,加以简单的一些外围设备, 很方便的可以完成指纹识别系统应该具备功能。这对于我更好的理解指纹识别 原理和单片机结构功能很有帮助,这也是选题的意义所在。 1.2 生物识别技术概述 所谓生物识别技术就是,通过计
11、算机与光学、声学、生物传感器和生物统 计学原理等高科技手段,利用人体固有的生理特性,(如指纹、脸象、红膜等) 和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。由于人体特征 具有人所固有的不可复制的唯一性,这一生物密钥无法复制,失窃或被遗忘, 利用生物识别技术进行身份认定,安全、可靠、准确。目前已经出现了许多生 物识别技术,如指纹识别、手掌几何学识别、虹膜识别、视网膜识别、面部识 别、签名识 别、声音识别等,但其中一部分技术含量高的生物识别手段还处于实验阶段。 我们相信随着科学技术的飞速进步,将有越来越多的生物识别技术应用到实际 生活中。 而根据国际生物识别小组在 2009 年作出的一个
12、不完全统计,目前市 场上已经有很多种针对人类的各个不同生理特征和行为的特征的应用。比如视 网膜识别、虹膜识别、人脸识别、指纹识别等,而其中应用最多的就是说指纹 识别。 1.3 指纹识别技术概述 每个人的每一个手指的皮肤都有一个不一样的花纹,是每个人的一个生物 特征,这个特征具有一个非常重要的特点,那就是唯一性。也就是说任何一个 不同的手指的指纹都是不一样的,独一无二的。在指纹识别技术中称这个指纹 为指印,即是人手指的按印,如下图所示。 图 1 指纹指印 19 世纪初,科学家们发现每个不同的指纹的两个非常重要的特征,一是两 个不同手指的指纹纹脊不同,二是指纹纹脊的样式终生不变性。这一研究发现 使
13、得指纹正式在犯罪鉴别中得以应用。指纹指标技术把一个人跟他的指纹对应 起来,通过比较他的指纹和事先已经存在的指纹做对比,从而确认这个人的真 正身份。每一个人的指纹的皮肤纹路在图案、断点和交叉点上各不相同,也就 是说,唯一性的,独一无二的。 1.4 本章小结 本文以 51 单片机为主芯片,采用指纹识别模块 FM-180,液晶采用 12864 显示,加上其他外围的一些简单设备,可以实现对指纹的录入、指纹的识别、 指纹的删除等共,组成了一个基于 51 单片机的指纹识别系统,从而对指纹识别 算法的研究和单片机的结构更进一步的了解,并且根据硬件选型,选择了其中 较为可行的方案,并制作和调试电路板。具体的章
14、节和各章的内容安排如下: 第 1 章阐述了本课题的研究背景和意义,同时介绍了生物识别特征的几个 识别手段,最后介绍了指纹识别技术的概念。 第 2 章介绍了本文设计的要求,最后根据要求设计出合理的具体方案。 第 3 章介绍了本设计的硬件部分,包括主要的元器件选型,各个电路的设 计和分析。 第 4 章介绍了本设计的软件部分,包括整个系统的方框图,功能的具体介 绍,最后还简单介绍了开发环境。 第 5 章介绍了本系统的调试过程,主要是在整个系统的调试过程中遇到的 问题和解决方法。 第 6 章是对本文的一个总结,以及提出对整个设计的一些不足。 2 设计方案 2.1 设计要求 本设计要求如下: 1、系统默
15、认至少有一位管理员,没管理员的时候提示必须添加管理员方可 操作; 2、可以对管理员进行添加,最多有 2 位,普通用户可以添加 400 多位; 3、录入指纹和删除指纹的时候必须管理员验证,验证成功才可以添加用户, 否则不可以添加用户; 4、可以查看管理员和普通用户的数量; 5、可以对指纹进行删除,需管理员验证; 6、通过以上要求,制作出一套具有软件和硬件相结合的指纹考勤系统。 2.2 设计方案 通过上节的设计要求,根据搜集资料并且结合自身所学知识,最后制定的 本设计方案如下: 本设计以 51 单片机 STC89C52 作为主芯片,选取了指纹识别模块 FM-180 进 行二次开发,该模块采用串口通
16、信方式,按照指纹系统自定义的协议来跟单片 机通信,单片机按照固定的协议去读取指纹系统的数据,同时对指纹系统发送 指令进行控制,从而实现指纹的操作;而显示器选用 LCD12864,液晶在系统运 行中和各个不同功能模式的时候显示对应的提示内容;设计要求可对指纹进行 录入、识别、删除等操作,通过不同的按键来完成,本设计采用了 5 个独立的 按键,软件部分采用轮询检测 IO 电平来判断按键值;报警提示选用的元件是蜂 鸣器和 LED 灯。 2.3 本章小结 本章介绍了本课题设计的具体要求,最后根据设计要求制定的合理可行的 具体方案。 3 硬件设计 3.1 主要元器件选型 3.1.1 单片机选型 图 2
17、STC89C52 本设计中需要用到跟指纹模块进行通信,而经过对单片机与模块通信方式 的多种比较后,决定采用比较简单的串口通信,而串口通信在大学课本里面也 有讲过,自己用起来应该还是相对比较简单的。串口通信的方式,几乎在任何 一款单片机都有硬件支持的,只不过有的串口有多个,有一些少而已。按照之 前自己接触过的单片机,51 单片机作为本次的单片机主控芯片,功能上是基本 可以满足实现的,51 单片机作为最经典的 8 位处理器,同时也是很多大学作为 电子类专业的必选课程之一,可见其功能和实用性还是被大家认可的。所以本 次决定在 STC89C52RC 单片机和 STC12C5A60S2 这两个中选出一个
18、作为主控芯片。 两者都是 51 内核,不同点有一下几点: 1、12C5A60S2 是 1T 模式的,比普通的 51 单片机 89C52 可以快 68 倍,而 定时器,串口为了兼容传统的 51 单片机,是可以设置为 1T 模式或者 12T 模式 的; 2、12C5A60S2 有两个独立的串口,而 89C52 只有一个串口,一般在调试过 程中,有多个串口是最好的,可以调试看信息,找问题所在,而这次的设计显 然不需要,只需要用到一个串口通信即可; 3、作为重要的对比,12C5A60S2 的 RAM 有 1280 个字节,ROM 有 60K 的存储 空间,可见 12C5A 的容量是非常大的,而 89C
19、52 的 RAM 和 ROM 就相对小很多, 分别是 512 字节和 8K,但实际上,作为本次的功能,已经足够了。 经过以上选择对比,最后决定选用 STC89C52 作为本次的主控芯片。 3.1.2 指纹模块 作为本次的重要传感器,指纹识别模块无法自己去做,只能通过网上淘宝 买现成的模块回来进行二次开发,市场有各种各样的指纹模块,价格也是五花 八门,但实际上基本的协议还是比较相似的,只不过有的支持的协议指令多, 有一些支持的指令相对来说比较少而已,本次需要用到的功能有录入指纹,识 别指纹,清空指纹,显然这三个指令,几乎所有的模块都可以实现,根据最后 筛选和价格比对,最后决定选用 FM-180
20、作为本次的指纹识别模块。 FM-180 指纹模块,一体化结构,已经包含了算法芯片,其质量稳定,性能优异, 产量稳定,多行业客户的实际选择,给您无忧的产品保障体系。 FM-180 指纹模块由光学指纹传感器、高速 DSP 处理器、高性能指纹比对算 法、大容量 FLASH 芯片等软硬件构成,集成了采集芯片和指纹算法芯片;性能 稳定,结构简单,具有指纹录取、图像处理、指纹对比、指纹搜索和模板存储、 手指感应输出等功能;采用 8 条精简指令,开发更简单。 产品特点: 功能完善:独立完成指纹采集、指纹登记、指纹比对(1:1)和指纹搜索 (1:N)功能。 体积小巧:产品体积小巧,没有外接算法 DSP 芯片的
21、电路板,已经集成 一体,方便安装,故障少。 超低功耗:产品整体功耗极低,适用于低功耗要求的场合。 抗静电能力强:具有很强的抗静电能力,抗静电指标达到 15KV 以上。 应用开发简单:开发者可根据提供的控制指令,自行指纹应用产品的开 发,无需具备专业的指纹识别知识。 安全等级可调:适用于不同的应用场合,安全等级可由用户设定调整。 技术参数: 供电电压:DC 46V 供电电流:工作电流:110mA(典型值)峰值电流:140mA 指纹图像录入时间:0.3 秒 匹配方式:比对方式(1:1)搜索方式(1:N 特征文件:256 字节 模板文件:512 字节 存储容量 400 枚 安全等级:3 级 认假率(
22、FAR):0.0001% 拒真率(FRR):1.0% 搜索时间:1.0 秒 (1:1000 时,均值) 上位机接口:UART 通讯串口波特率:57600bps 图 3 FM-180 3.1.3 液晶显示 作为人机交互界面,显示器起到一个至关重要的元件,本文中需要将整个 操作的过程完全显示在显示器上面,比如录取指纹,识别指纹是否正确还是错 误 等等。下面就本设计的过程中对显示器的元件选型进行分析和对比。 方案 1 图 4 数码管 采用数码管的形式来作为显示器,数码管是一种半导体发光器件,一般单 独的数码管有 7 段的数码管和 8 段的数码管,8 段的数码管比 7 段多了一个小 数点的段,他们的显
23、示单元都是发光二极管。数码管还有共阳极和共阴极之分。 将每个发光二极管的正极连到一起,将负极单独分开,就是共阳极,反过来, 将每个发光二极管的负极连着一起就是共阴极。需要显示一个数字的时候,只 需要把对应的发光二极管点亮即可组成一个数字显示,而一般采用的方法是动 态扫描,使得每个发光二极管轮流的显示出来,由于单片机的速度很快,所以 我们肉眼并不能看出来。数码管价格便宜,使用简单,但是只能显示基本的数 字,并不能显示一些比较复杂的字符,所以在一般需要显示复杂的电子设备中 比较少见。 方案 2 采用液晶 LCD1602 作为显示器,供电电压有 3.3V 和 5V 两种,能够同时显 示 16*2 个
24、字符,16 列 2 行,其内部模块里面已经存储了 160 多个我们平时很 普遍用到的的点阵字符图形,每一个字符符号都有一个固定的代码编码,只需 要发送对应的代码编号给液晶模块,就会自动显示出来对应的字符,共有 16 个 引脚,和单片机通信采用的是并行通信方式,即 8 个 IO 口,该模块优点是可以 显示基本的字符符号,价格便宜。但是也有其不足的地方,就是不能显示中文, 而且只能是显示 2 行,和单片机通信需要 8 个 IO 口。加上 3 个控制引脚,一般 都需要用到 11 个 IO 口。 图 5 液晶 1602 方案 3 采用液晶 12864,显示器 12864 液晶,可以显示中文,并且是自带
25、字库, 字库中有几千个常用的汉字,用起来基本是可以满足的,接口也是比较灵活, 可以选择并行或者串行接法,串行接法只需要用到两根线。液晶的引脚图如下 图所示。液晶的 D0D7 是数据引脚,当液晶作为并行通信的时候,单片机要连 接这 8 个数据口,而液晶的 PSB 引脚是选择并行或者串行的引脚,当低电平时 为串行方式,当高电平时为并行方式。由于串口方式接口更简单,和单片机通 信只需要 2 个 IO 口,在电路图设计中更为方便,所以一般在设计中可选择该方 式。液晶还带了一个背光的对比度调节电位器,可以调节字体和背光之间的一 个对比度,而现在很多液晶都已经出厂时就把这个电阻值定好了,无需在手动 去调节
26、。 表一 液晶 12864 引脚 管脚号 管脚名 称 电平管脚功能描述 1VSS0V电源地 2VCC 3.0+5 V 电源正 3V0-对比度(亮度)调整 4RS(CS)H/L RS=“H”,表示 DB7DB0 为显示数据 RS=“L”,表示 DB7DB0 为显示指令数据 5 R/W(SID ) H/L R/W=“H”,E=“H”,数据被读到 DB7DB0 R/W=“L”,E=“HL”, DB7DB0 的数据被 写到 IR 或 DR 6E(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背光源负端 图 6 LCD12864 综上三个方案对比,最后选择液晶 12864 作为本次的显示器模块 3.2 电路设计 3.2.1 最小系统 单片机最小系统一般由晶振电路、复位电路和单片机组成,是整个设计系 统中最基本的也是最简单的电路,只有简简单单的几个元件,2 个电容和一个 晶振连接单片机的 XTAL1
28、和 XTAL2 引脚,而一个电阻和一个电解电容连着单片 机的复位引脚,看似这个电路非常简单,但这也关系着整个软件系统能不能正 常工作,只有这个电路正常了,其他电路才有可能继续执行下去,由这个简单 的电路,加上单片机最简单的启动程序,也就是我们平时所说的 bootloader, 简称为引导程序,这个引导程序是有芯片厂家出厂的时候就已经刷进去的,上 电之后芯片会去执行这一段程序,包括配置一些寄存器和分频之类的操作,同 时当我们去烧写程序的时候,也需要用到这个引导程序,通过 PC 发送固定码给 芯片,芯片接受到后进进入这个程序开始接受用户程序,达到升级用户程序的 功能,构成单片机最小系统。单片机正常
29、供电为直接 5V,工作时 RST 复位引脚 为低电平,手册上面说明只要单片机的复位脚超过 2 个机器周期的高电平,单 片机就可以正常复位,所以按下复位按键,单片机复位。 图 7 最小系统电路 3.2.3 液晶显示电路 本设计中,液晶显示起到一个人机交互的作用,尤其重要,试想如果没有 界面提示的话,整个操作过程将很难去实现全部的功能。液晶 12864 可以显示 4 行,每一行可以显示 8 个汉字,共可以显示 32 个汉字,对应这个系统来说, 是足够的,一般出现不够行的情况下,大都是采用切换到第二个节目显示的方 法;12864 液晶跟单片机的通信方式有两种,一种是并行 ,一种是串行,对于 串行来说
30、,电路是比较简单不需要那么多的 IO 口,只需要两个 IO 就行,一发 一收,但速率就比并行比较慢,而并行由于 8 个 IO 一起发送数据,因此要比较 快,对于显示刷新频率要求不高的话,可以考虑用串行方式,毕竟电路简单, IO 少,而本次的设计过程中采用的是并行方式,跟 LCD 液晶的通信端设置为 P0 端,而单片机的 P0 端默认是没有上拉的,因为也要在电路中给 P0 口接上一个 8 个电阻的排阻,阻值一般取 1K,而液晶的第三脚作为背光调节亮度,可以接 一个电阻器来改变该脚的电压值从而达到可以调节亮度的效果,由于没有现成 的电位器,因此该引脚悬空操作,液晶也可以正常显示。 图 8 液晶 1
31、2864 电路图 3.2.4 指纹通信电路 本文采用的指纹识别模块是集成的模块,跟单片机通信采用的是串口方式, 波特率是 57600,8 位数据,一位停止位,无校验。由于单片机需要外部晶振, 所以在需要用到串口的电路中,该晶振都必须是为 11.0592M 的倍数,如果采用 12M 的话,波特率会有误差,会造成串口数据丢失的情况。89C52 单片机只有一 个串口,所以用串口 1 跟指纹模块通信,单片机的 RXD 接指纹模块的 TX,而单 片机的 TXD 接指纹模块的 RX。通过指纹模块的数据手册,发送对应的指令给指 纹模块,即可实现录入指纹、识别指纹、清空指纹等操作。 图 9 指纹通信电路 3.
32、2.5 蜂鸣器电路 图 10 蜂鸣器驱动电路 本次设计中,由于需要在录入指纹和识别指纹中对正确或者错误做出判断, 因此在电路设计中加入了蜂鸣器来作为提醒报警响应的作用。采用的是直流电 压 5V 供电的有源蜂鸣器,但是一般的蜂鸣器在整个系统运行中需要比较大的电 流,51 单片机的 IO 口除了 P0 口外其他的都有一个弱上拉电阻,但 IO 的驱动 电流也是非常低,不加外部的驱动电路是很难直接驱动的。而最常用的就是用 普通的三极管来放大电流驱动,该三极管在电路中的作用是开关电路并且放大 电流,P37 高电平为蜂鸣器响,低电平蜂鸣器停止。报警提醒电路如图 10 所示。 3.2.6 按键电路 图 11
33、 按键电路 设计中有录入指纹功能、识别指纹功能、清除指纹库功能,这些功能的切 换都是通过按键来实现的,按键一般有独立按键,矩阵键盘等,由于本次涉及 到的按键不需要很多个,因此采用独立按键的形式,简单方便易操作,而按键 电路用的是直接练到单片机的 IO 上面,通过对该 IO 口电平读取不同的值来区 别按下还是弹开,按键用的是 4 脚按键,对角的两个引脚为一对,是导通的, 随便一个引脚接地,对角 IO 接入单片机,按下按键时,4 个引脚都接通,即与 单片机连着的引脚也被拉低,单片机 IO 也响应被拉低,软件就认为此时按键被 按下,执行按下操作,由于按下过程中有电压毛刺,所以软件一般采用 10MS
34、的 延时来代替消抖动作。 3.2.7 LED 电路 LED 作为电子电路中最常用的指示作用,本次中也用到了两个 LED 灯来作 为系统的提示灯作用,一个为红色,一个为绿色,LED 作为二极管的一个最典 型元件,其两端也是有一个压降,一般 1.3V 左右,根据电子知识,只要在两端 上有超过这个的压降,二极管就导通,为了保险起见,可以在单片机的 IO 口接 上一个限流电阻,不至于上电时容易烧坏。 当单片机的 P35 和 P36 高电平的时候,LED 灯就亮,反过来,当为低电平的时 候,LED 灯就灭。 图 12 LED 电路 3.3 本章小结 本章介绍了本设计的元器件选型以及各个电路部分的设计和分
35、析。 4 软件设计 4.1 系统方框图 通过第二章的介绍,我们根据设计的要求采用 STC89C52 作为主控芯片, FM-180 则作为本次最重要的指纹传感器,液晶 12864 作为人机交互界面,同时 用独立按键来进行各个功能切换,蜂鸣器和 LED 灯作为报警提示,最后根据设 计要求做出的方框图图下图所示: 图 13 系统结构框图 系统上电之后,经过一系列的初始化,比如串口初始化,定时器初始化, 初始化完成后进入主程序。由于单片机是单线程运行的,所以在主程序中采用 一个 while 循环来执行整个的主程序。 4.2 功能介绍 1、本系统设计了一个管理员的操作,即出厂时必须录入一个指纹,该指纹
36、录入成功后就是该系统的管理员,方可进入主界面。主界面的功能有识别指纹 功能、添加管理员功能、添加普通用户功能、清空指纹库功能,而每个功能的 选择是通过按键来切换的。 图 14 主界面 2、进入主界面之后可以对系统进行一系列的操作,管理员可以有 2 个,当 录入达到 2 个时会有提示。而要对系统的指纹进行录入普通用户和清空指纹库 指纹都需要管理员验证。当验证失败的时候液晶提示相对应的内容,只有验证 成功了才可执行下一步操作。 图 15 管理员验证 3、当管理员验证成功后就可以录入普通用户了,该系统可以录入多达 400 多位的普通用户,录入过程中只需要按住手指不放,当录入完成后液晶提示录 入成功字
37、符同时显示出对应的指纹 ID 号。同样的录入失败也会有同样的提示。 图 16 添加用户 4、清空指纹库的操作一样要经过管理员验证,验证成功后,系统将把所有 的指纹删除,即清空指纹库。这时候没有任何指纹,同样的提示要录入管理员, 也就是恢复出厂设置。 图 17 清空指纹库 5、除了基本的录入指纹,识别指纹,清空指纹之外,板子还有一个查询按 键,当按下该按键时,液晶显示出系统中已经存在的管理员和普通用户的数量, 起到一个很好的查看作用。 图 18 查询界面 4.3 开发环境介绍 4.3.1 Keil 编译器 本次的软件编程部分采用的是 KEIL 编译器。Keil C51 是美国 Keil Soft
38、ware 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用, 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。Keil 的网站虽然没有中文版本, 但是 Keil 软件却被中国 80%的硬件工程师使用,但凡与电子相关的专业,都会 开始从单片机和计算机编程开始学习,而学习单片机自然会用到 Keil 软件。 C51 工具包的整体结构,Vision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境(IDE),
39、可以完成编辑、编译、连接、调试、仿真等整个 开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分 别由 C51 及 C51 编译器编译生成目标文件(.obj)。目标文件可由 LIB51 创建 生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.abs)。 abs 文件由 OH51 转换成标准的 hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直 接写入程序存贮器如 EPROM 中。 图 19 Keil 软件界面 4.3.2 STC-ISP 下载器 STC-ISP 是一
40、款单片机下载编程烧录软件,是针对 STC 系列单片机而设计 的,可下载 STC89 系列、12C2052 系列和 12C5410 等系列的 STC 单片机,使用 简便,现已被广泛使用。 图 20 STC-ISP 4.3.44.3.4 ProtelProtel 软件软件 图 21 protel 软件 本设计电路图的设计是通过 Protel 画的,这个软件在大学的实验课程中也 是有学到的,所以用这个软件来设计电路图。由于电路图的连线比较复杂,如 果用线直接连的话看起来会比较乱,而且容易出问题,所以本设计采用网络的 方式来连接元器件。通过画好原理图之后,就转换成 PCB 即可。 4.4 部分代码说明
41、 该代码说明:液晶 12864 可以显示 4 行文字,每一行最多可以显示 8 个汉 字,一共可以显示 32 个汉字,一般在程序中只需要告诉液晶的 X、Y 轴即可。 液晶的行数据的地址分别是 0X80,0X90,0X88,0X98,分别表示的是第一行, 第二行,第三行和第四行。例如想要在液晶的第二行的第三个位置显示文字, Lcd12864_PutString(1,2,添加成功);这样即可显示出来。 void v_Lcd12864SetAddress_f( unsigned char x, y ) /地址转换 unsigned char byAddress ; switch( x ) case 0
42、 : byAddress = 0 x80 + y ; break; case 1 : byAddress = 0 x90 + y ; break ; case 2 : byAddress = 0 x88 + y ; break ; 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
43、, y ) ; while( *pData != 0 ) v_Lcd12864SendData_f( *pData+ ) ; delay(30); 该代码说明:按键方式采用的是独立按键的方式,一共用到 5 个独立按键, 没有按下按键的时候,单片机对应的 IO 口是高电平,当有按键按下时对应的 IO 口就被连到 GND,对应的 IO 也就是低电平。单片机检测到后,根据相对应的 IO 口执行不同的按键功能。对于消抖操作,在简单的设计中可以使用一个时间 延时来处理。这个时间不能太长,如果太长的话会导致按键不灵敏等问题。 uint FUN_KeyDec() bit press = 0; if(!IOK
44、EY_dec) /如果检测到低电平,说明按键按下 keyDelay_1ms(1); /延时去抖,一般 10-20ms if(!IOKEY_dec) /再次确认按键是否按下,没有按下则退出 while(!IOKEY_dec);/如果确认按下按键等待按键释放,没有释放 /则一直等待 press = 1; if(press) ClrScreen12864(); sys_status=8; return 0; 该代码说明:当进行指纹识别的时候,单片机通过串口发送对应的指令给 指纹模块,指纹模块从而进行搜索指纹功能。当用户按下手指的时候,模块会 自动获取该指纹的特征值,并对这个特征值进行判断是否已经存在
45、系统中,如 果是存在则返回该指纹的序号,如果不匹配则返回 0。单片机将返回到的数据 做判断,0 则认为识别识别,大于 0 则认为识别成功。 unsigned char search(void)/搜索用户 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
46、0; 该代码说明:采集指纹的过程中,需要采集两次的指纹,将 2 次采集到的特征 值生成一个指纹模板,并对该模板进行保存。当保存模板成功后,单片机将该 指纹的模板的序号写入到单片机的 EEPROM 中,以便实现掉电保存指纹。 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; Fdelay1m
47、s(100); Beep=1; Fdelay1ms(2000);/延时 2S 开始采集下一个特征 /开始采集第二个特征 while(1) temp=ImgProcess(2); /生成特征 2 if (temp=3)/生成特征文件 2 成功 if ( (Command(MERG,40) if(enroll()return 1; if(kk 4)return(0); else/特征文件合并生成模板,结果存于 ModelBuffer Beep=0; Fdelay1ms(100); Beep=1; Fdelay1ms(100); Beep=0; Fdelay1ms(100);/响两声,表示生成一个模
48、板成功 Beep=1; return 1; else 4.5 本章小结 本章主要介绍了设计过程中的软件部分,包括整个系统的方框图,还有功 能介绍,最后简单介绍了开发环境。 5 系统调试 5.1 制作和调试 5.1.1 原理图设计 图 22 原理图 根据第三章的硬件设计部分,电路分为最小系统、液晶电路、指纹通信电 路、供电电路、按键电路、蜂鸣器和 LED 电路。确定了基本的电路设计后,就 开始画电路图,采用的是 Protel 软件来画电路图,电路元件之间的连接采用的 是网络的形式来连接。 5.1.2 PCB 制作 画好电路图之后,要对每个元件进行封装,有一些元件,Protel 软件本身 是自带有
49、的,而有一些没有的就需要找其他的代替或者自己画封装。封装画好 之后就可以进行转成 PCB 了。PCB 中主要的就是进行 PCB 布线,采用的是手动 布线,把元件摆好位置后,采用的是 2 层板的布线,布线完成后就可以添加泪 滴、覆铜、布地等操作。最后就是发出去给工厂打板即可。 图 23 PCB 底层 图 24 PCB 顶层 图 25 PCB 无覆铜层 5.2 调试过程 板子焊接好后,就要对单片机烧写程序,开始验证各个软件和硬件的部分, 而本次中事实上不是一下就成功的,也遇了不少的问题,下面就对在调试过程 中遇到的问题阐述说明: 1、无法下载程序 由于考虑到把难度降低,同时在板子的电路尽可能的简单
50、,所以本电路中 没有烧写程序的电路,而是直接把单片机的串口接出来,用一个烧写工具 USB 转 TTL 电平的串口工具来烧写,该模块的主芯片用到的是 PL2303,即是 USB 转 成 TTL 电平直接跟单片机进行串口通信。把电路基本焊接完成后,首先接上电 源,用万用表量电压正常,接上 USB 转 TTL 模块,开始下载程序,发现一直没 反应,最后发现是没有共地造成的,共地之后正常下载; 2、指纹模块无法工作 单片机和指纹模块之间的通信方式采用的是串口方式,成功烧写程序之后, 单片机经过串口初始化之后,为了方便测试两者之间的通信是否正常,单片机 上电之后会直接通过串口发送指令给指纹模块,实现识别
51、功能,当指纹模块接 受到该指令时,指纹采集头会亮,但是指纹头却一直没有反应,确认了指纹模 块的接线正确之后,指纹头还是没有反应。将指纹模块拔掉,用 USB 转 TTL 工 具来调试单片机的串口数据,接入电脑后,打开调试助手,在串口参数正确的 情况下,发现单片机发送出来的数据是乱码,波特率等其他参数都是正确的, 同时也进行了共地,那就是晶振的问题,发现晶振用的是 12M 的,用到串口的 时候,晶振必须是用 11.0592M 倍数的才不会有误差,其他的会有误差,造成数 据丢失乱码等现象,换了晶振之后,串口通信正常。 3、指纹模块反应慢 把程序下载后,先让程序直接进入指纹识别模式,但是发现指纹模块一
52、直 很难识别指纹成功,反应慢,把指纹模块的电源断开,用串口调试助手看单片 机发送的数据又是正确的,一直找不到原因,后来发现单片机的 TXD 和 RXD 一 直连着杜邦线,把杜邦线拔掉,指纹模块正常工作了; 4、按键不灵敏 板子上有 5 个按键,有各自的功能,在测试中,发现所有的按键都不太灵 敏,当按下录入按键时,本来液晶是显示提示正在录入指纹,但结果液晶一直 没正常的显示,或者有时显示,硬件实在找不出问题后转向软件问题,最后发 现按键消抖延时,长得太离谱,导致要一直按着按键才有反应,改短了时间后, 按键也正常反应。 5、蜂鸣器 蜂鸣器作为本次的报警器件,直接烧写一个调试成功的让蜂鸣器报警的程 序,发现蜂鸣器不响,一开始怀疑是三极管烧坏了,换了之后发现还是不行, 查看后原理图给的限流电阻为 1K,而焊接的却是 10K 的,电阻阻值太大,导致 电流不够让三极管导通,最后换了 1K 电阻,蜂鸣器正常报警; 6、液晶不显示 本次采用的是液晶 12864 作为显示器,采用的是串口接法,只需要用到单 片机的 2 个 IO 口,方便简单,在调试过程中,发现液晶无法显示出文字信息, 只亮了背光,把一样的程序烧到另外一个开发板上面,开发板上面的液晶正常 显示,验证了是焊接的板子问题,再次将开发板上面的液晶换到焊接的板子上 面,液晶也正常显示,由此可见,就是液
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银川暖气费优惠活动方案
- 门店经营店铺活动方案
- 闽侯活动策划方案
- 阅读礼仪活动方案
- 青年员工开展活动方案
- 长江银行宣传活动方案
- 南昌市中医院化学消融技术考核
- 门窗制作安装活动方案
- 里昂活动策划方案
- 长沙泡温泉团建活动方案
- 数据接入管理办法
- 2025年证券从业资格考试《金融市场基础知识》真题(附答案)
- 国家开放大学《城市管理学》形考任务(1-4)试题与答案解析完整版
- 2025年兰州市中考物理试题卷(含答案解析)
- 施工材料投入计划和机械设备配备计划
- 新版《药品召回管理办法》质量管理培训课件
- 新生儿鼻饲护理
- 股权投资项目可行性研究报告
- 移动会计笔试题目及答案
- CJ/T 94-2005饮用净水水质标准
- 净化板材料安装合同协议书
评论
0/150
提交评论