1、基于stc59c52指纹考勤系统设计指纹考勤系统实验报告班级: 电信 092 班姓名:保 昆 200916022218邵苗苗 200916022217何郭微 200916022207马政仑 200916022222指导老师: 陶福寿2012年5月6日1指纹识别技术概述 31.1指纹识别技术的发展系统简介 31.2系统简介 42指纹识别系统的设计 52.1指纹识别系统的硬件设计 52.1.1FM180 指纹识别模块 52.1.289C52RC 单片机 72.1.3UART 接口 92.2 指纹识别系统的软件件设计 93设计内容 103.1指纹识别流程图 103.2程序代码 104测试结果 145
2、心得体会 15保 昆: stc89c52 邵苗苗:FM-180 指纹识别模块 何郭微:UART 串口 马政仑:1062 液晶显示1指纹识别技术概述1.1指纹识别技术的发展系统简介人们使用指纹进行个人身份鉴定已经有很长的历史考古证实,公元前 7000 年到 6000 年以前,古叙利亚和中国,指纹作为身份鉴别己经开始应用。考古发 现,在这个时代,一些粘土陶器上留有陶艺匠人的指纹,中国的一些文件上印有 起草者的大拇指指纹,在 Jercho 的古城市的房屋留有砖匠一对大拇指指纹的印 记等。在我国,早在公元 650 年,唐代作家贾公秀在其作品中就着重提到了指纹 是确认个人身份的方法。我国将指纹应用于民间
3、契约及断案有悠久的历史,但是 由于缺乏专门性研究,未能将指纹识别技术上升为一门科学。虽然指纹的一些特 征己经被人们认识和接受但不能证明,但指纹己经广泛应用社会的各个方面。用指纹采集仪采集指纹,提取出细节点,然后将细节点保存到数据库中,形 成指纹模板库。在线部分用指纹采集仪采集指纹,提取出细节点,然后将这 些细节点与保存在数据库中模板细节点进行匹配,判断输入细节点与模板细节点 是否来自同一个手指的指纹。 一般来说,离线处理允许人工因素介入,可根据 需要手动调整系统参数,而在线处理应完全由系统自动完成所有操作。自动指纹 识别系统框图如图 1 所示:离线部分匹配指纹图像 降噪后的图像 细节点在线部分
4、图 1 自动指纹识别系统框图预处理是将输入的(直接采集进来的)低质量、有噪音的指纹源图象处理成 已细化了的清晰的二值图像。它的目的是减少低质量的图像对分类识别结果的影 响,预处理中一般包括图像增强、滤波、二值化、细化等步骤。在上图中提到细节提取,该细节所指的是指纹纹路。指纹纹路有 3 种基本类 型环型、弓型和螺旋型。现在,科学家已能够通过模型再现那些较为常见的 指纹,也能重复不太复杂的罕见指纹的形成过程。目前尚未发现有不同的人拥有相同的指纹,所以每个人的指纹也是独一无 二。由于指纹是每个人独有的标记,近几百年来,罪犯在犯案现场留下的指纹, 均成为警方追捕疑犯的重要线索。现今鉴别指纹方法已经电脑
5、化,使鉴别程序更 快更准。每一个人的指纹纹路都有各自的特点,所以每一个指纹纹路的细节也是有所 不同的。要识别一个指纹,其关键所在就是提取每一个指纹纹路的细节,只有提 取到更多的细节点数才能更加准确的识别一个指纹。离线部分进行的是指纹录入操作:当开始指纹采集的时候,指纹识别模块将 对所读取指纹进行图像增强,着重对指纹纹路进行扫描,并提取其特有的纹路。 在将其进行保存。在线部分进行的是指纹录入操作:当识别源置于指纹识别区域时,指纹识别 模块同样进行图像增强的操作,此时指纹识别模块将对指纹纹路进行扫描,读取 指纹纹路的特点并将其与指纹库的存储资源进行比对。当所读取指纹纹路与所读 取指纹相似度超过 9
6、0%,则表示读取成功。1.2 系统简介指纹识别系统的基本结构和整体流过程,并且从硬件系统和软件系统两个主 要方面探讨了设计指纹识别系统的基本方法。硬件系统的设计主要是基于 89C52RC 单片机、FM180 指纹识别模块、以 及相关的程序设计;软件系统的设计主要是指纹识别系统算法的设计,其中包括 图像处理和图像识别两个方面。通过实验显示,该系统采集的指纹图像较清晰、 失真较小,处理后的图像轮廓分明、特征突出,利于指纹分类与识别。通过对指纹识别系统的研究、设计与开发,综合运用了信号采集及接收技术,图像处理及识别技术, 基本实现了利用单片机进行指纹识别系统开发的目的。2指纹识别系统的设计2.1指纹
7、识别系统的硬件设计硬件系统是实现一切系统功能的物质基础,它是系统不可缺少的一个整体,一个 工程系统的建立都是在硬件基础上展开的。本次设计任务的硬件设施已经配备, 其核心是 89C52RC 单片机与 FM180 指纹识别模块,我们的任务是完成两者的 主电路连接,实现指纹图像采集的功能。2.1.1FM180 指纹识别模块FM-180亮背景光学头指纹识别设备采用光学指纹传感器,由高性能 DSP处理器 和 FLASH 等芯片构成,具有指纹图像处理,模版提取,模版匹配,质问搜索和 模版存储等功能。指纹特征:指纹算法是从指纹图像中提取的特征,代表了指纹 的信息。指纹的保存,比对,搜索都是通过操作指纹特征来
8、完成。图二系统参数与接口(A 型)FM-180 是完整的指纹识别模块,不需挂接任何外围部件,模块始终处于从属 地位,主机需要通过不同的指令让模块完成各种功能。主机的指令,模块的应答 以及数据交换都是按照规定格式的数据包来进行的。主机必须按照格式封装要发 送的指令或数据,也必须按格式解析收到的数据包。FM180 指纹识别模块使用 USB 供电,使用拓展的+5V 电源接口。该模块的正 常工作电流为 100-170mA。峰值电流将可达到 200mA。在该模块进行指纹录入 操作时,其时长约为 1.5s。而当其进行指纹识别操作时,由于要进行特征提取和 指纹对比等步骤,所以其操作时长约为3-5s。该模块可
9、以存储约900 组指纹数据。 经过小组成员 100 次的反复操作,该模块的识别率为 100%,该数据将在更多的 实验数据下长生变动。图三 1602 液晶显示此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令是用于 控制液晶状态是否显示光标,光标是否闪烁,是否清除原来数据以及显示的具体 位置。数据显示主要是将要显示的信息按需要准时显示出来。按键电路:其按键共有三个。K1:复位。K2:指纹录入。K3:指纹读出。 按下 k1系统处于复位状态,将清空之前的所有操作!按下 k2键后,FM-180 指纹识别模块开始处于工作状态,工作灯闪亮。此时可以进行指纹录入工作,将 所需录入的指纹置于识别区 1
10、-2 秒,显示 test finger1.2.3.表示录入成功!按下 k3 键后模块处于识别工作模式,将之前多录入的指纹体置于识别区3-5秒,显示 finger1.2.3表示读取成功模式指示灯:共有两个灯,一红一绿。与模块握手通过,绿灯亮起。进入 识别模式;红色灯亮,进入录入指纹模式。 电源与指示灯:该模块使用 USB 供电,使用拓展的+5V 电源接口。当与计 算机接通后,按下开关,电源指示灯亮起。2.1.289C52RC 单片机STC89C52 是一种低功耗、高性能CMOS8 位微控制器,具有 8K 在系统可 编程 Flash 存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程
11、Flash, 使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具 有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定 时器,内置 4KB EEPROM,MAX810 复位电路,三个 16 位 定时器/计数器,一 个 6 向量 2 级中断结构,全双工串行口。另外 STC89X52 可降至 0Hz 静态逻辑 操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、 定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振 荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复
12、位为止。最高运作 频率 35Mhz,12T。STC89C52 具体介绍:1主电源引脚( 2 根)VCC(Pin40):电源输入,接5V 电源GND(Pin20):接地线2外接晶振引脚(2 根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端3控制引脚(4 根)RST/VPP(Pin9):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机 复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读 指令,如果接高电平则从内部程序存储
13、器读指令。4可编程输入/输出引脚(32 根)STC89C52 单片机有 4 组 8 位的可编程 I/O 口,分别位 P0、P1、P2、P3 口, 每个口有 8 位(8 根引脚),共 32 根。PO 口(Pin39Pin32): 8 位双向 I/O 口线,名称为 P0.0P0.7P1 口(Pin1Pin8): 8 位准双向 I/O 口线,名称为 P1.0P1.7P2 口(Pin21Pin28): 8 位准双向 I/O 口线,名称为 P2.0P2.7P3 口(Pin10Pin17): 8 位准双向 I/O 口线,名称为 P3.0P3.71.I/O 口输入/输出口经过特殊处理,很多干扰是从 I/O
14、进去的,每个 I/O 均有对 VCC/对 GND二级管箝位保护。2.电源 单片机内部的电源供电系统经过特殊处理,很多干扰是从电源进去的3.时钟 单片机内部的时钟电路经过特殊处理,很多干扰是从时钟部分进去的4.复位电路 单片机内部的复位电路经过特殊处理,很多干扰是从复位电路部分进 去的.工作流程:当读取主函数时定时器0 开中断设17ms的初值。只对液晶进行 写操作,不进行读操作。液晶初始化,串口初始化。UART 方式1:8 位 UART, REN=1:允许接,SMOD=0 波特率不加倍。T1 方式,用于 UART 波特率,UART 波特率设置:9600。打开定时器 0,中断 0,低电平中断。中断
15、 1,低电平中断。 开中断 0,开中断 1。开始握手 6次,如果没有一次成功,表示模块通信不正常。只要成功就跳出此循环。与模块握手通过,绿灯亮起。进入识别模式。录入一个指纹,如果仍为低电 平,表示按键有效。此时等待松手与模块握手通过。采集两次,生成 1个指纹模 板成功,保存也成功,进入录入指纹模式。循环一结束。模式转换,其中用 modeflag 来标志,默认从第 1 个指纹开始录入。如果仍为 低电平,表示按键有效,等待松手。0 表示录入指纹,1表示识别指纹。2.1.3UART 接口UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发
16、送装 置,UART 是一个并行输入成为串行输出的芯片。用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了 RS-232C 数据终端设备接口,这样计算机就可以和调制解调器或其它使用 RS-232C 接口 的串行设备通信了。作为接口的一部分,UART 还提供以下功能:将由计算机内 部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转 换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入 奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停 标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键 盘和鼠标也是串行设备)。可
17、以处理计算机与外部串行设备的同步管理问题。2.2指纹识别系统的软件件设计图六ALIENTEK MiniSTM32 开发板编辑器3设计内容3.1 指纹识别流程图图七 指纹识别流程图3.2 程序代码void main(void)/主函数unsigned char i=0;ET0=1; /定时器 0 开中断TL0=0x97; /17ms 的初值 TH0=0xBD;delay1ms(5);LcdRw=0; /只对液晶进行写操作,不进行读操作delay1ms(5);LCD_Initial();/液晶初始化delay1ms(5);GotoXY(0,0);/x,yPrint(test);/串口初始化SCON
18、=0x50; /UART 方式 1:8 位 UART; REN=1:允许接收PCON=0x00; /SMOD=0:波特率不加倍TMOD=0x21; /T1 方式 2, 用于 UART 波特率TH1=0xFD;TL1=0xFD; /UART 波特率设置:9600TR1=1;TR0=1;/ 开定时器 0IT0=0;/ 中断 0 低电平中断IT1=1;/ 中断 1 低电平中断EX0=1;/ 开中断 0EX1=1;/ 开中断 1EA=1;/P0=0;/tab0;/ 显示 0for(i=0;i6;i+)/ 开始握手 6 次,如果没有一次成功,表示模块通信不正常。只要成功就 跳出此循环if(VefPSW(
19、)/ 与模块握手通过,绿灯亮起。进入识别模式green=0;buzzer=0; delay1ms(300);buzzer=1; green=1; red=0; break;elsered=0; break;while(1)if(k2=0)/ 录入一个指纹delay1ms(10); if(k2=0)/如果仍为低电平,表示按键有效通过 while(k2=0);/ 等待松手 if(VefPSW()=1&modeflag=1&SaveNumber10)/ 与 模 块 握 手 if(enroll()=1)/ 采集两次,生成 1 个指纹模板成功 if(savefingure(SaveNumber+1)=1
20、)/保存也成功 SaveNumber+;/加一次 GotoXY(0,1);/x,y Print(Finger:); GotoXY(0,8);/x,y str0=0x30+SaveNumber; Print(str);delay1ms(200); GotoXY(0,1);/x,y Print(Finger:);GotoXY(0,8);/x,y Print( );delay1ms(200); GotoXY(0,1);/x,y Print(Finger:);GotoXY(0,8);/x,y str0=0x30+SaveNumber;Print(str);elsebuzzer=0; for(i=0;i
21、=1)GotoXY(0,1);/x,yPrint(Finger:);GotoXY(0,8);/x,ystr0=0x30+searchnum;Print(str);/蜂鸣器响一声buzzer=0; delay1ms(100);buzzer=1;if(clearallflag=1)clearallflag=0;Clear_All();red=0; /红色灯亮green=1;/蜂鸣器长响一次,表示清除所有指纹结束modeflag=1;/ 进入录入指纹模式GotoXY(0,1);/x,yPrint(Finger:);GotoXY(0,8);/x,ystr0=0x30;Print(str);buzzer
22、=0;delay1ms(800);buzzer=1; SaveNumber=0; /while(1)结束/void int0(void) interrupt 0/中断 0,清除所有指纹if(k3=0) /清除所有指纹delay1ms(10);if(k3=0)/如果仍为低电平,表示按键有效while(k3=0);/等待松手 clearallflag=1;void Timer0(void) interrupt 1/定时器 0 中断函数TL0=0x97;TH0=0xBD;clk0+; /延时 17msvoid int1(void) interrupt 2/中断 1,模式转换if(k1=0)/模式转换
23、 其中用 modeflag 来标志,默认从第 1 个指纹开始录入delay1ms(10);if(k1=0)/ 如果仍为低电平,表示按键有效 while(k1=0);/等待松手 modeflag=modeflag;/0 表示录入指纹 1 表示识别指纹 if(modeflag=0)green=0;red=1;elsered=0;green=1;4测试结果开发板的供电:在该次课程设计的过程中,我们用到了 FM-180 指纹识别模块以 及 STC89c52 单片机开发板。所设计的整体系统使用的 USB 串口供电,使用拓 展的+5V 电源接口。指纹模块:我们选取了FM-180 指纹识别模块作为此次设计的
24、硬件模块。当进行 指纹录入命令时,指纹识别区域的红灯将会一直处于点亮状态,直至录入结束。 当进行指纹采集的命令时则该区域的红灯将会以 1s 的间隔进行闪烁,同样至采 集结束。识别时间:FM-180 指纹识别模块进行指纹识别操作时,由于要进行特征提取和 指纹对比等步骤,所以其操作时长约为 3-5s。录入的时间:FM-180 指纹识别模块进行指纹录入操作时,其时长约为1.5s。 意外怎么操作:在整个设计的过程中,我们也遇到了一些意外。在我们进行系统 调试的时候,开发板意外停止工作。经过复位等操作无果的情况下,我们选择了 断电重启,在系统重启后该问题得到了解决。5心得体会在了解了基础知识之后,我开始
25、进行上机操作,当然,其中遇到很多的难题, 很多东西都是第一次接触,又没有别人在旁边指导操作,完全凭借自己去摸索练 习。其中的困难可想而知。然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通 过本次实验,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太 多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个 新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获, 正所谓“一份耕耘,一份收获。”没有付出,何谈回报呢?再者,通过本次实验, 我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题, 这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出 的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好 学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中, 我一定会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准 备,才能事半功倍!在最后要特别感谢本门课程的辅导老师陶福寿老师,在整 个学期的学习过程中,陶老师一次又一次的对我们进行指导,一次又一次的向我 们讲解,在整个设计的过程中给了我们很大的帮助,也让我们最终能成功的完成 此次设计!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1