• 2.76 MB
  • 2022-05-17 13:24:09 发布

指纹识别智能考勤管理系统的设计

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
指纹识别智能考勤管理系统的设计龙岩学院毕业设计题目:指纹识别智能考勤管理系统的设计专业: 14级电子信息工程2班(专升本)   学号:2014041830   作者: 余伯阳 指导教师(职称):任志山副教授二〇一六年六月三日 指纹识别智能考勤管理系统的设计指纹识别智能考勤管理系统的设计【摘要】对公司单位进行考勤管理,能提高公司的工作效率与管理能力。本系统设计主要采用STC15F2K60S2单片机与指纹识别模块,设计一个基于指纹识别的考勤管理系统。该系统以STC15单片机为控制核心,采用软、硬件相结合的方法设计。用USBTOTTL模块来通讯,实现上位机与下位机的通讯。能完成人员指纹信息的识别与添加新的人员指纹,可以实现人员日常的出勤情况管理、统计和查询等智能化、数字化的工作。考勤时,考勤软件、电路板上的蜂鸣器、LED灯会做出提示,有万年历显示功能。【关键字】STC15单片机指纹识别上位机语音提示时间显示Thedesignofthefingerprintattendancemanagementsystem【Abstract】Attendancemanagementunitofthefirm,itcangreatlyimprovethecompany"sworkefficiencyandmanagementability.ThissystemdesignmainlyUSESSTC15F2K60S2microcontrollerandfingerprintidentificationmodule,designaattendancemanagementsystembasedonfingerprintidentification.STC15singlechipmicrocomputerascontrolcore,thesystemadoptsthemethodofcombiningsoftwareandhardwaredesign.TOcommunicationwithUSBTOTTLmodule,realizetheuppermachineandlowermachinecommunication.Cancompletethefingerprintinformationrecognitionandaddnewpersonnelfingerprints,canimplementstaffdailyattendancemanagement,statisticsandquerysuchasintelligence,digitalwork.Attendance,attendancesoftware,buzzer,LEDlightsonthecircuitboardtomakeprompt,calendardisplayfunction.【KeyWords】STC15microcontrollerFingerprintidentificationUppermachineVoicepromptTimetoshowI 指纹识别智能考勤管理系统的设计目录第1章绪论11.1课题设计背景与意义11.1.1课题设计背景11.1.2课题设计的意义11.2课题内容及预期目标1第2章设计的总体方案22.1设计要求22.2设计方案的比较22.2.1单片机的选择22.2.2考勤方式的选择22.3系统设计方框图3第3章指纹识别系统设计43.1指纹识别技术简介43.1.1指纹识别技术介绍43.1.2指纹识别的工作过程43.2指纹模块设计43.2.1指纹模块选择43.2.2FM-180指纹识别模块介绍43.2.3FM-180指纹模块工作原理53.2.4FM-180系统参数与接口53.3UART通讯协议63.3.1UART简介63.3.2UART接口63.3.3UART通讯协议73.3.4UART通讯指令格式7第4章硬件设计104.1单片机控制系统的设计104.1.1STC15F2K60S2单片机的作用104.1.2STC15F2K60S2单片机简介104.2显示单元电路的设计114.2.1LCD1602液晶显示电路的作用114.2.2LCD1602液晶显示屏引脚说明114.2.3LCD1602液晶显示屏电路114.3蜂鸣器电路设计124.4DS1307电路设计124.5按键电路与指示灯电路设计134.6指纹模块134.7USB转TTL模块144.8电源模块14第5章软件设计165.1程序设计语言的选择16III 指纹识别智能考勤管理系统的设计5.2程序程图165.2.1程序主流程图165.2.2USB串口接收数据流程图175.2.3指纹模块流程图18第6章上位机与数据库设计206.1上位机设计206.1.1VisualBasic软件介绍206.1.2指纹考勤软件开发介绍206.1.3指纹考勤软件介绍216.2数据库设计226.2.1MicrosoftOfficeAccess软件介绍226.2.2数据库创建22第7章系统调试247.1硬件调试247.2软件调试247.3综合调试247.3.1硬件、软件综合调试247.3.2测试结果257.4系统的不足与展望28第8章结论29致谢语30参考文献31附录32附录1原理图32附录2实物图32附录3PCB图33附录4元件清单33附录5主程序34III 指纹识别智能考勤管理系统的设计第1章绪论1.1课题设计背景与意义1.1.1课题设计背景现代对人事的考勤管理是企业、事业单位的一项重要任务,它执行的好坏,会影响公司的经济、社会效益与员工的薪资等诸多方面。如今每个单位面临着一个重要问题便是对员工的考勤进行科学、有效地管理。传统的考勤通常是用到:磁卡、IC卡、手工签到等方式,这些方式时常会发生代打卡、误读卡或打卡出错等现象发生。就算是采用人工来干预,也会由于受到技术手段等方面的限制,产生影响,不能从根本上改变这种效率低、管理难、人情成分、假冒横行等不科学管理手段的发生。随着生物技术的发展,传统考勤方式也在不断进步,特别是随着指纹识别技术的发展而日趋成熟。如今正逐步被用到身份的识别与验证,其中就包含着指纹考勤、警方确定犯罪嫌疑人等许多领域。指纹识别的最大特点在于它不可替代,每个人的指纹都是比较固定、不会轻易发生改变,通过分析与鉴定指纹的特征点,可以准确地辨认一个人的身份。1.1.2课题设计的意义指纹考勤系统运用指纹识别技术,采用考勤软件,这使得管理人员与员工不必再保管或携带个人的相关证件。用指纹考勤,只需刷一下指纹,考勤软件与数据库就能记录和生成员工的考勤情况。员工也能查询自己的考勤信息。管理人员既可以查询员工考勤的信息,又可以对员工信息,进行添加与删除。财务部门可以根据考勤情况得到员工的薪资报表。这样的考勤方式可以保证企业考勤管理的严肃性、纪律性与公正性。能最大限度上杜绝虚假的考勤,提高考勤的效率。1.2课题内容及预期目标本设计采用C语言与单片机技术,利用VB6.0制作考勤软件,实现指纹考勤管理。使用STC15F2K60S2单片机与指纹考勤软件,用USBTOTTL模块来通讯,实现上位机与下位机的通讯,完成人员考勤信息数据的上传与上位机对人员考勤信息的获取和管理。1 指纹识别智能考勤管理系统的设计第2章设计的总体方案2.1设计要求本设计的任务是完成一个基于单片机考勤管理系统的设计。任务要求:(1)可以自己设置考勤时间,如果在该时间内签到,会被认为是迟到;(2)可以实现考勤信息查找与删除;(3)能添加员工的个人信息,点击增加,电路板上的指示灯会闪烁,液晶屏会做出提示,要求待登记人员连续2次同样的操作,则人员的个人信息登记成功,否则失败。考勤软件能做出相应的提示;(4)能显示人员的签到信息,如显示人员签到时对应的签到时间;(5)在数据库中,可以每天生成一张表格,记录当天是否考勤、考勤时间等信息;(6)每次人员刷指纹,电路板上的1602蜂鸣器都会有提示;(7)在非考勤时间,1602显示万年历。2.2设计方案的比较2.2.1单片机的选择方案一:采用AT89S51单片机制作考勤管理系统,AT89S51是低功耗、高性能的微控制器,它有8K的可编程Flsah存储器,和256字节的RAM,虽能存储,但是对于本设计有许多考勤人员信息,和繁杂的程序,这样的存储容量不够用,所以并不适合选用AT89S51。方案二:用STC15F2K60S2单片机设计考勤管理系统,它有能够兼容传统8051指令集的指令代码,速度和一般的8051相比快了8到12倍,它内部有2048字节片内RAM数据存储器,这样的容量足够本设计的使用。在其内部集成了高精度的晶振电路与高可靠的复位电路,所以电路图不必接外部晶振电路与外部复位电路,可以使电路的设计更加简化。故选用STC15F2K60S2单片机。2.2.2考勤方式的选择方案一:采用磁卡考勤,工作原理是:利用每个人的信息在电脑上都有唯一识别的字符串,代表自己的唯一编码,电脑以此来对员工信息识别和记录处理。虽然用磁卡考勤有比较方便的管理能力,但磁卡考勤容易出现代打卡等现象的发生。而且随身携带并不方便,容易出现磁卡忘带,或遗失等情况。42 指纹识别智能考勤管理系统的设计方案二:采用指纹考勤,它的安全性比较高,指纹考勤是根据人指纹的唯一性进行识别,把指纹模块作为前台,把电脑作为后台进行信息管理。先是对员工的指纹进行采样、库存,当员工考勤时,把员工的指纹和指纹库里的指纹比对,确认之后,记录、显示员工考勤的时间、日期。考勤管理系统可对员工的信息进行管理。指纹识别在目前生物检测学中,正在被广泛地应用与深入研究。综上所述,选择用指纹识别技术来实现考勤管理系统。2.3系统设计方框图STC15F2K60S2单片机是本系统设计的控制核心,用1602显示,指纹模块可以采集人员的信息与用来签到。每次人员刷指纹,电路板上的1602和蜂鸣器都有提示,在非考勤时间里,可以显示万年历。该系统与PC机的上位机相关联,制定与实现可靠的上、下位机通讯协议,完成指纹考勤信息数据的上传和上位机对考勤信息的获取。总方框图如图2-1所示:PC机STC15单片机最小系统指纹模块按键控制时钟显示语音提示液晶显示图2-1总方框图42 指纹识别智能考勤管理系统的设计第3章指纹识别系统设计3.1指纹识别技术简介3.1.1指纹识别技术介绍指纹识别是:比较指纹不同特征点。每个人指纹纹路图案、交叉点跟断点各不一样。是唯一、终生不变的。根据指纹可以鉴定每个人的真实身份。3.1.2指纹识别的工作过程指纹识别技术分为:验证和辨识。验证:是将采集的指纹跟已录入好的指纹比对,确认身份的过程。辨识:将采集的指纹跟已录入的指纹比对,找到相同的指纹。3.2指纹模块设计3.2.1指纹模块选择按识别方式分:射频指纹模块、光学指纹模块、半导体指纹模块3种。射频指纹模块:利用生物射频指纹识别技术,传输射频信号的传感器,通过手指皮肤层,控制层纹理测量,获取指纹图像。由于刮擦指纹芯片的寿命不长故不便使用。光学指纹模块:用光的折射、反射原理,根据指纹凹凸不平,光折射角度及反射回去光线亮度不同,CMOS传感器收到亮度不同的图像,再提取指纹特征文件,完成指纹采集。光学指纹模块已应用较长时间,一定程度上可适应温度改变,价格较低,有较高分辨率半导体指纹模块分为:电容、电感式,因为凸凹不平的指纹与平板接触距离不同,得到电容、电感数值也不样,按这个原理把采集的不同数值汇总,就完成指纹的采集。有较好的图像质量,但耐磨性与稳定性不好。根据以上介绍最终选用光学指纹模块。3.2.2FM-180指纹识别模块介绍本设计用的光学指纹传感器是FM-180,它由:光学头、DSP芯片、通信连接线、CMOS传感器、稳压芯片、flash芯片等部分组成。DSP芯片型号是:PS1802,加上外面的CMOS芯片。可实现图像处理、模板匹配、模板提取、模板存储跟指纹搜索等功能。CMOS芯片的主要是对指纹进行“照一次相”,生成指纹特征,之后进行模糊处理生成0与1两种的记录信息,存入到flash芯片里。当2次录入这样的指纹就可以生成一个指纹模板。切换到指纹识别模式,芯片采集指纹,再用flash芯片数据的对比。若存在便返回看为几号指纹,这样便可通过指纹模块进行指纹登记、识别。实物如图3-1所示。42 指纹识别智能考勤管理系统的设计图3-1指纹模块实物3.2.3FM-180指纹模块工作原理指纹识别的算法一般分为:指纹图像采集、预处理、特征提取、指纹分类跟指纹比对。如图3-2所示:图3-2指纹识别框图(1)指纹图像采集:按指纹凹凸不平,光折射的角度、反射光线亮度不同,CMOS传感器收到亮度不同的图片信息,便完成指纹采集。(2)预处理:预滤波的指纹图像,模式计算,基于方向图滤波,二值化、细化成二进制图像,然后指纹的中心参考点,细节特征点特征提取;(3)提取特征;(4)指纹分为:左环型、右环型、漩涡型、尖拱型、拱型五类;(5)指纹比对:将2个指纹比较,确定是否同源的过程;(6)可靠性问题:因为指纹识别不是100%准确,故用指纹识别率来衡量。3.2.4FM-180系统参数与接口如表3-1所示:表3-1FM-180系统参数与接口42 指纹识别智能考勤管理系统的设计工作环境:温度:-20°C—+50°C相对湿度:40%RH—85%RH储存环境:温度-40—+85°C;相对湿度:<85%H(无凝露)外形尺寸(L*W*H):56*20*21.5mm3.3UART通讯协议3.3.1UART简介UART即通用异步收发传输器。是通用串行数据总线,用于异步通信。能实现全双工的传输与接收的双向通信。3.3.2UART接口在PCB板上,模块和用户的接口都是采用同一个单排插座,模块和用户串行通讯的时候,接口引脚定义如表3-2所示:表3-2指纹模块接口引脚定义注:in是输入模块、out表示从模块输出。42 指纹识别智能考勤管理系统的设计(1)绿色TXD接STC15单片机的P3.0RXD口;(2)白色RXD接STC15单片机的P3.1TXD口;(3)GND与电路板的GND相连3.3.3UART通讯协议UART是一种异步串口通信协议,它的工作原理是:每个字符一个接一个传输数据。起始位:发“0”信号,表示传输字符开始。资料位:起始位后,用ASCII码,从最低位开始传送,靠时钟定位。奇偶校验位:资料位加一位,“1”的位数为偶数是偶校验,为奇数是奇校验。停止位:是一个字符数据结束的标志。可为高电平,因为数据在传输线上是定时的,且每个设备有自己的时钟,在通信中2台设备有点不同步。停止位不但表示传输结束,而且提供计算机校正时钟同步的机会。空闲位:处在“1”状态,代表此时线路无传送资料。波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数。一个符号表示:信息量(比特数)跟符号的阶数有关。如图3-3所示,是标准10位异步串行协议字符时的时序图:图3-3时序图3.3.4UART通讯指令格式FM-180指纹识别模块,不需接外围部件,模块一直处于从属地位,主机通过不同的指令去完成各种功能。(1)PS_StoreChar模板储存功能说明:将CharBuffer1或CharBuffer2模板文件存到PageID号flash数据库位置。输入参数:缓冲区号(BufferID),指纹库位置号(PageID)返回参数:确认字42 指纹识别智能考勤管理系统的设计指令代码:06H表3-3指令包格式注:缓冲区CharBuffer1、CharBuffer2的BufferID为1h与2h表3-4应答包格式注:确认码=00H:储存成功;确认码=01H:收包有错;确认码=0bH:PageID超出指纹库范围;确认码=18H:写FLASH出错;sum指校验和(2)PS_LoadChar读出模板功能说明:把flash数据库指定的模板读到缓冲区CharBuffer1或CharBuffer2输入参数:缓冲区号(BufferID),指纹库模板号(PageID)返回参数:确认字指令代码:07H表3-5指令包格式注:缓冲区CharBuffer1、CharBuffer2的BufferID分为1h与2h表3-6应答包格式注:确认码=00H:读出成功;42 指纹识别智能考勤管理系统的设计确认码=01H:收包有错;确认码=0cH:读出有错或模板无效;确认码=0BH:PageID超出指纹库范围;sum指校验和(3)PS_DeletChar删除模板功能说明:去掉数据库指定id号开始的N个指纹模板输入参数:PageID(指纹库里的模板号),N:模板删除的个数。返回参数:确认字指令代码:0cH表3-7指令包格式表3-8应答包格式注:确认码=00H:删除模板成功;确认码=01H:收包有错;确认码=10H:删除模板失败;sum指校验和42 指纹识别智能考勤管理系统的设计第4章硬件设计4.1单片机控制系统的设计4.1.1STC15F2K60S2单片机的作用单片机是整个控制系统的核心,负责指挥、协调各个单元电路,它在系统中担负着重要的角色,本系统的单片机主要完成以下功能:(1)LCD1602显示输出;(2)控制蜂鸣器电路工作;(3)控制按键;(4)控制指示灯的亮灭;(5)负责与上位机进行通讯;(6)控制指纹模块;(7)控制时钟显示;(8)协调各单元电路有序工作;4.1.2STC15F2K60S2单片机简介STC15F2K60S2:3个16位可重装载的普通定时、计数器,3路的CCP/PWM、PCA;掉电唤醒的专用定时器;2组的高速异步串行口;5个外部中断;1组高速同步串行通信端口;8路高速的10位A/D转换器;2个数据指针DPTR和外部总线等功能。如图4-1所示,是STC15F2K60S2单片机的引脚图:14023933843753663573483393210311130122913281427152616251724182319222021P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0/ADC0/CCP1/RxD2P1.1/ADC0/CCP1/TxD2P1.2/ADC2/SS/ECIP1.3/ADC3/MOSIP1.4/ADC4/MISOP1.5/ADC5/SCLKP1.6/ADC6/RxD_3/XTAL2P1.7/ADC7/TxD_3/XTAL1P5.4/RST/MCLKO/SS_3VccP5.5GndP4.5/ALEP2.7/A15/CCP2_3P2.6/A14/CCP1_3P2.5/A13/CCP0_3P2.4/A12/ECI_3/SS_2P2.3/A11/MOSI_2P2.2/A10/MISO_2P2.1/A9/SCLK_2P2.0/A8/RSTOUT_LOWP4.4/RD͞P4.2/WR͞P4.1/MISO_3P3.7/INT3͞/TxD_2/CCP2/CCP2_2P3.6/INT2͞/RxD_2/CCP1_2P3.5/T1/T0CLKO/CCP0_2P3.4/T0/T1CLKO/ECI_2P3.3/INT1P3.2/INT0P3.1/TxD/T2P3.0/RxD/INT4/T2CLKO图4-1单片机引脚图42 指纹识别智能考勤管理系统的设计4.2显示单元电路的设计4.2.1LCD1602液晶显示电路的作用当电路板上电,1602显示“WelComeInit”初始状态,当在上位机添加指纹时显示“WelcomePleaseHandIN!”提醒输入指纹并且指示灯会闪烁一下,如果没有及时输入指纹,1602显示“WelcomeGetFailed”,上位机会提示指纹增加失败,并且返回万年历界面。重新添加指纹,按下按键,1602显示“WelcomePleaseHandIN!”,当指纹第一次添加成功后,显示“WelcomeOK,HandIN2nd”,当指纹添加成功后,显示“WelcomeGetOK”表示已经添加成功了。当签到的时候,按下按键之后,进行签到,显示“OK”,表示签到成功。4.2.2LCD1602液晶显示屏引脚说明如表4-1所示:表4-1LCD1602的引脚定义引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3V0对比调整电压4RS0/1输入0-输入指令1-输出数据5R/W0/1输入0-向LCD写入指令或数据1-从LCD读取信息6E1,1→0输入使能信号,1时读取信息,1→0(下降沿)执行指令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极4.2.3LCD1602液晶显示屏电路1602液晶屏D0~D7管脚接单片机P0.0~P0.7引脚,RS引脚接P1.0,E管脚P1.1,通过连电阻来对比调整电压,令1602工作在合适的亮度。单片机在处理、传输数据时会有大小不一的电流,加入排阻作用是稳压,这样单片机工作得更稳定。LCD1602液晶显示屏的电路组成如图4-2所示:42 指纹识别智能考勤管理系统的设计图4-2LCD1602显示电路4.3蜂鸣器电路设计蜂鸣器:采用直流电压供电。主要分为电磁式、压电式,本设计使用电磁式蜂鸣器,由振荡器、电磁线圈、磁铁、振动膜片与外壳组成。9012是PNP型三极管,参数:集电极-发射极电压:-30V;集电极-基电压:-40V;发射极-基极电压:-5V;集电极电流:0.5A;耗散功率:0.625W。每次按下按键,则识别指纹,成功蜂鸣器叫一声,并把数据送到上位机显示,失败叫三声。蜂鸣器由三极管基极接到单片机P1.7口,如图4-3所示。图4-3蜂鸣器电路4.4DS1307电路设计42 指纹识别智能考勤管理系统的设计DS1307有56字节,为非失真性RAM,全BCD码时钟日历,实时时钟芯片,地址和数据由两线双向的串行总线传输。能提供小时、分钟、秒等信息,每个月天数能自动调整。而且有闰年补偿功能。AM/PM标志位,决定了时钟在12、24小时的工作模式,内置电源感应电路,可以电池切换有掉电检测等功能。时钟晶振是32.768KHZ,产生的振荡信号经过15次分频后,获得1HZ的秒信号,即每秒钟跳一下,石英钟内部的分频器只能进行15次的分频,所以时钟比较准,32.768K=32768=2^15,数据转换较为方便、精确。使用CR1220的纽扣电池,给时钟芯片提供3.0V电压。DS1307的SCL接单片机P1.5口,SDA接P1.6口,电路如图4-4所示:图4-4DS1307电路图4.5按键电路与指示灯电路设计按键电路的作用是当人员考勤时,按下按键就能刷指纹进行签到。按键与单片机P3.3口相连,如图4-5所示:图4-5按键电路指示灯电路是当添加新的人员时,点击增加,则电路板上指示灯会闪烁一下,提示待输入指纹的人员按下指纹。指示灯电路如图4-6所示:图4-6指示灯电路4.6指纹模块采用FM-180指纹模块,有四个引脚,VCC、TXD、RXD、GND,TXD为发送数据,RXD为接收数据。TXD引脚接单片机P3.1口,RXD引脚接单片机P3.0口,电源与地分别接电路板上的电源和地,如图4-7所示。42 指纹识别智能考勤管理系统的设计图4-7指纹模块接口4.7USB转TTL模块USB转TTL模块主要有四个引脚,VCC、GND、TXD、RXD,其中TXD为发送数据,RXD为接收数据。TTL电平,能自主选择是5V或3.3V,有3个状态灯,CH340G芯片,有PWR电源灯,和TXD、RXD指示灯,方便观察产品是否在工作,3.3V与5V由短路帽选择。用这个模块,能让电脑与单片机进行串口通讯。TTL电平:数据用2进制表示,规定+3.3V或+5V等价于逻辑“1”,0V等价于逻辑“0”,称为TTL信号系统,为正逻辑USBTOTTL模块的TXD直接连单片机RXD;USBTOTTL模块的RXD直接连单片机TXD;USBTOTTL模块的GND直接连单片机GND;选择5V或3.3V,用短路帽连接。单片机和这个模块的接线图,如图4-8所示,如图4-9所示为实物图。图4-8USBTOTTL模块图4-9USBTOTTL模块4.8电源模块本设计采用5V电压,先用电源适配器把220V的交流电压转为12V直流电压,再经由电源模块,转为5V电压,输出到电路板上提供电压。电源模块如图4-9所示:42 指纹识别智能考勤管理系统的设计图4-10电源模块42 指纹识别智能考勤管理系统的设计第5章软件设计5.1程序设计语言的选择STC15F2K60S2单片机有先进指令集结构,能兼容普通8051指令集。选择KeiluVision5软件编写程序。KeiluVision5是能兼容单片机C语言的软件开发系统。KeiluVision5可以生成利用效率很高的目标代码,多数语句的代码很紧凑,理解起来较容易。C语言具有功能上、结构性、可读性跟可维护上有明显优势,故易学易用。5.2程序程图5.2.1程序主流程图程序设计主流程图,如图5-1所示:42 指纹识别智能考勤管理系统的设计开始初始化LCD1602显示按键按下?是否接到上位机命令?增加指纹删除指纹识别指纹发送数据到PC机是否是是是否是图5-1程序设计主流程图5.2.2USB串口接收数据流程图如图5-2所示,为USB串口接收数据流程图42 指纹识别智能考勤管理系统的设计串口初始化开始串口上是否发送信号?启动串口接收数据是否接收完一个字节?启动串口中断取走相应的数据是否所有数据都接收完?结束否是否是是否图5-2USB串口接收数据的流程图5.2.3指纹模块流程图刷2次指纹登录一个模板,存在flash指纹库中,流程图如图5-3所示:42 指纹识别智能考勤管理系统的设计开始发获取图像指令:PS_GetImane等待接收答应包读取到图像发生成特征指令:PS_GenChar参数:BufferID-1等待接收答应包OK闪绿灯1次发获取图像指令:PS_GetImane等待接收答应包读取到图像发生成特征指令:PS_GenChar参数:BufferID-2OK闪绿灯1次发注册模板指令:PS_GeModle结束闪登陆成功指示等待接收答应包发生成特征指令:PS_StoreChar参数:BufferID-2OK等待接收答应包结束闪登陆成功指示等待接收答应包图5-3指纹录入流程图42 指纹识别智能考勤管理系统的设计第6章上位机与数据库设计6.1上位机设计6.1.1VisualBasic软件介绍VisualBasic是面向对象,可视化和事件驱动机制的使用结构化的高级编程语言。VB不必编写大量的代码编辑界面元素,只需搭积木方式构建、编写程序。拥有简单易学、功能强大、效率高等特点。在VB6.0环境下,开发人员用新颖易用的可视化设计工具跟事件驱动的编程机制,能高效、快捷在Windows环境发展,这是强大的,和丰富的图形界面的应用软件系统。6.1.2指纹考勤软件开发介绍本设计用VB6.0软件来制作指纹考勤系统软件,软件界面是:标题栏、菜单栏、工具栏、工具箱设计窗口、属性、工程资源管理器与布局面板。指纹考勤系统的设计有以下步骤:(1)制定一个计划;(2)创建界面;(3)编写代码;(4)测试、调试程序;(5)生成可执行文件;(6)打包文件。制作考勤管理系统的步骤是:打开VisualBasic6.0,选择打开“标准EXE”,出现标准窗体,如图6-1所示。先建立用户界面对象,添加标签Label控件、文本框TextBox控件、按钮CommandButton控件、Framel控件、ComboBox控件、Timer等控件,如图6-2所示,其次是设置对象的属性;然后是对象事件过程的编程:分别点击进去编写代码,如图6-3所示。图6-1标准窗体然后保存文件与运行程序。保存文件:文件forml另存为.frm;文件工程另存为.vbp。当创建应用程序后,能生成可执行文件,点击“文件”,“生成工程1.exe”命令,弹出“生成工程对话框”。42 指纹识别智能考勤管理系统的设计最后制作安装盘:(1)保存制作的文件,退出VisualBasic6.0;(2)开始VisualBasic6.0VisualBasic6.0中文版向导工具package&deployment向导;(3)选定工程及选项对话框输入文件名:“指纹考勤系统”;(4)选择发行方法。如图6-2所示为完成的界面,如图6-3所示为程序设计界面图6-2考勤软件制作界面图6-3程序设计界面6.1.3指纹考勤软件介绍指纹考勤软件设计完成之后,可以实现的功能有:打开串口号能实现上下位机的通讯,同步时间按钮能实现万年历时间的同步更新。能设置上、下午的考勤时间。会把考勤信息记录到数据库中。信息栏可以输入学号或姓名,公司能查看已登记人员的指纹信息并可删除信息。可以添加人员的指纹,个人信息。输入学号与姓名,点击增加,增加成功或者失败,考勤软件都会做出相应的提示。指纹考勤系统完成后如图6-4所示:42 指纹识别智能考勤管理系统的设计图6-4指纹考勤系统软件6.2数据库设计6.2.1MicrosoftOfficeAccess软件介绍MicrosoftAccess是微软公司创建的一个组件。程序可以在视觉的方式来创建和修改数据库的访问计划。Access的用途有:用来进行数据分析;用来开发软件;表格模板;创建与运行旧数据库。6.2.2数据库创建数据库可以被理解为:根据数据结构,数据存储和管理的仓库。设计数据库通常包括:确定设计目的、组织数据信息、创建数据库文件。数据库设计有以下步骤:(1)根据应用程序的需要来选择所需的数据基本结构;(2)确定应用程序的基本结构数据;(3)按所需数据设计应用表;(4)设计表之间的关系;(5)设计索引和有效性;(6)设计各种的需要查询。MicrosoftOfficeAccess创建一个新数据库。点击“新建”,输入文件名称,保存目录。本系统设计的数据库可以每天生成一张表格如图6-5所示,进入该表格,可以显示每天的考勤信息,表格里面记录着考勤情况,如图6-6所示。注册表里记录着人员的信息,如图6-7所示。时间表里记录着考勤设置的时间,如图6-8所示。42 指纹识别智能考勤管理系统的设计图6-5数据库图6-6考勤信息图6-7注册表图6-8时间表42 指纹识别智能考勤管理系统的设计第7章系统调试7.1硬件调试当电路板焊好后,对电路板进行检查调试,硬件调试主要是对硬件故障的排除,硬件调试主要有以下几方面:(1)检查电路板是否有断路、毛刺,跟其它线或焊盘是否粘连在一起等现象。(2)先目测一下,发现有问题的连接或接点,用万用表检测电路的通断状态,是否跟设计规定相符合,检查元器件正负极有无焊反,在器件安装及上电前,检查各电源线与地线是否有短路现象。(3)当通电后,用手摸一下芯片是否发热,如果发热,应马上关掉电源,过后再进行检测。如果芯片没发热,再测试芯片的电源端电压是否达有到设计的要求,接地端是否都接地。在电路调试时发现一些问题:9012三极管插反了。单片机管脚和程序里的管脚设置不同,导致1602无法显示,之后,将程序修改过来便能显示了。电路出现了虚焊的情况。7.2软件调试完成程序编程后,进行软件调试,软件调试主要有以下步骤:(1)首先进行人工的检查。当程序写好后,先人工检查程序,不要马上烧写入STC15单片机里。因为是采用C语言来编程,需要特别小心地检查语法是否正确,如括号是否配对好,有无漏写分号等,通过仔细检查,发现并排除相应的错误。(2)然后上机调试。编译后,注意软件对错误信息的提示,找到相关程序中错误的地方,进行改正。应注意的是:有时出现错误不一定是在这行,假如那行没找到错误的话,就要去上行去找。(3)当确认程序无语法与逻辑错误时,直接下载到STC15单片机来调试。采用从下到上的方法调试,(单独调好各个模块,再连接成完整系统调试)。在软件调试时发现一些问题:程序编译时出现了错误,检查之后发现是语法方面出现错误,当用stc-isp-15xx-v6.85H软件进行烧写时,程序无法烧写到单片机,检查后才知道是USB转TTL模块的TXD与RXD的引脚插反。7.3综合调试7.3.1硬件、软件综合调试当软、硬件调试后,进行软件跟硬件的综合调试,首先电路板上电,用USB转TTL模块与电脑USB串口相连来通讯,打开烧写软件,42 指纹识别智能考勤管理系统的设计选好单片机型号,将main.hex程序文件加载进去,按下载/编程按钮,关掉电路板电源,再打开,程序下载到单片机里面,之后打开考勤软件,选择好串口号,按下同步时间按钮,可以使电路板上的万年历显示当前的时间,再设置考勤的时间,点击保存按钮,使用考勤软件控制指纹的增加、删除,要连续两次添加指纹,才能成功,当指纹添加成功之后进行签到,按电路板的按键,1602显示OK,表示签到成功。考勤软件的信息栏显示考勤人员的签到信息。同时,在信息栏可以查找已登记人员的信息,并且可以删除信息。最后打开数据库,输入admin登录密码,进入到数据库,里面有每一天的考勤信息,表格里记录着当天考勤是否迟到,考勤的时间,注册表里记录着已注册人员的信息。时间表中设置着考勤时间。经过综合调试,本系统基本实现预期的功能。7.3.2测试结果测试结果如下:(1)当电路板上电,1602显示“WelComeInit”初始状态,如图7-1所示:图7-1(2)在非考勤时间,显示万年历如图7-2所示,可以在电脑上修改时间,万年历有断电保护功能。图7-2(3)点击添加增加新的人员信息,电路板上的指示灯会闪烁一下,1602显示“WelcomePleaseHandIN!”,提示人员按指纹,如图7-3所示。图7-342 指纹识别智能考勤管理系统的设计(4)当按指纹后显示“WelcomeOK,HandIN2nd”,要求人员第2次输入指纹。如图7-4所示:图7-4(5)两次指纹一样,则登记成功,1602显示“WelcomeGetOK”如图7-5所示,考勤系统提示指纹添加成功,如图7-6所示:图7-5图7-6(6)指纹添加失败,1602显示“WelcomeGetFailed”如图7-7所示,如图7-8所示考勤软件显示增加失败:图7-7图7-842 指纹识别智能考勤管理系统的设计(1)每次按按键,则识别指纹,成功,如图7-9所示1602显示“OK”表示签到成功,蜂鸣器叫一声,并把数据传送到考勤软件中,失败则叫三声。图7-9(2)能设置上午跟下午的考勤时间,在该时间内刷指纹,会被认为迟到,会把信息记录到带有登录密码的数据库中;输入学号或姓名能查公司已登记人员的指纹信息,还能查找与删除人员信息;如图7-10所示可显示人员的签到信息。图7-10(3)在数据库中,每天生成一张表格,记录当天考勤的信息,如当日考勤是否迟到如图7-11所示;考勤软件的保存键是用来保存考勤时间,可把时间保存到数据库"时间"表里如图7-12所示。考勤软件会自动读取时间表。“注册表”里保存着学号、姓名及指纹号如图7-13所示。数据库密码admin,所以不是任何人都能看和修改。该指纹考勤软件带有数据库保存指纹及签到的记录。图7-11考勤信息图7-12时间表42 指纹识别智能考勤管理系统的设计图7-13注册表7.4系统的不足与展望因为时间与个人能力的原因,本系统设计只能完成到目前的状态,本系统还存在着许多的不足有待改进。比如电路的设计比较简单,应该多加一些功能,考勤软件只能设置上午、下午的考勤时间,不能设置晚上加班的考勤时间。针对着本系统的这不足之处,可以这样来改进:如把蜂鸣器提示改成语音播报提示,液晶显示可以改成用LCD12864来显示,这样可以显示汉字,万年历方面,还可以加入温度的显示。考勤软件加入晚上考勤的时间设置等。还有许多的不足与展望,这里就不一一叙述。42 指纹识别智能考勤管理系统的设计第8章结论本设计用STC15F2K60S2单片机和指纹识别技术,能实现身份的识别、验证等功能。采用FM-180指纹模块,该系统是按指纹的唯一性来辨别身份。本系统采用基于指纹考勤系统的上位机软件,通过USBTOTTL模块,实现电脑与电路板进行通讯。该上位机软件是VisualBasic6.0设计的,制作完成后,可以实现人员指纹的增加与删除,可以通过刷指纹进行考勤,当人员考勤后,通过按下按键,在指纹模块上进行签到,考勤软件上会有人员的签到信息。每次人员刷指纹或录指纹,电路板上的液晶屏、蜂鸣器会提示。考勤软件可以查找已经登记人员的信息,也可以删除人员的信息。考勤软件的同步时间按钮可以让电路板实现万年历的时间同步功能,该软件可以设置上、下午的考勤时间,并且该时间会保存到MicrosoftAccess软件里,在数据库中,记录着每一天的人员的考勤信息。通过以上设计,该指纹考勤管理系统基本实现了预期功能。42 指纹识别智能考勤管理系统的设计致谢语光阴似箭,日月如梭。两年的本科学习即将结束了,回首这两年,感觉收获了许多。在这临别之际,我对许多人充满了感激,是他们让我在这两年中,不断地进步首先我感谢我的母校:龙岩学院,这里有良好的学习、生活环境,让我在学习、生活中更加方便,在这里,有着一批知识渊博的老师,为我开启了学海之舟。在这里,我增长了知识,开阔了见识,锻炼了能力。2年前,我带着崇敬之心来到了这里,通过这两年的生活,我对龙岩学院充满着热爱和不舍。在论文完成之际,我由衷地感谢我的指导老师任志山老师,他给予了我细心的指导与帮助。他丰富的工作经验和严谨的工作态度,让我受益匪浅,对我毕业设计的顺利推进产生了重要的影响。与此同时,我要感谢所有关心、帮助我的家人,我的同学和朋友。我想本次论文的成功会是对你们最大的欣慰与回报。为此,我努力了,也正在努力着,还会继续努力下去。最后,我由衷地感激在百忙之中抽出时间审阅这篇论文的各位老师。42 指纹识别智能考勤管理系统的设计参考文献[1]郭全花,李凤云.基于网络的自动指纹识别系统[J].河北建筑工程学院学报,2004,22(3):119-122.[2]冯星奎,李林艳,颜祖泉.一种新的指纹图像细化算法.中国图像图形学报,1999,4(10)835-838.[3]李建华,马小妹,郭成安.基于方向图的动态闽值指纹图像二值化方法.大连理工大学学报.2002,42(5):626-628.[4]刘家锋,唐降龙,赵泉.一个基于特征点匹配的联机指纹鉴别系统.哈尔滨工业大学学报,2002.34(1):132-136[5]奚建荣.基于局域网的指纹考勤系统的设计与实现[J].电子学报,2002,30(11):1923-1927.[6]杜艳,张申,靳慧,关民.基于VB与Access的公司信息管理系统设计[J].徐州工程学院学报:自然科学版,2011,26(2):42-48.[7]沈小丰,李小贝.便携式指纹识别系统的设计[J].自动化技术与应用,2005,24(4):55-58.[8]苏鹏.改进的指纹细节特征提取算法[J].中国图像学报,2002,7(12):89-94.[9]LinHongWan,Yi-feiJain.AFingerprintimageenhancement:algorithmandperformanceevaluation[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,1998,20(8):777~789.[10]Considine,CarolDean,Tony.Activelearningindistanceeducation.ASEEAnnualConferenceProceedings,2003[11]Maio,D.,Maltoni,D.,Cappelli,R.,etal.FVC2000:fingerprintverificationcompetition[EB/OL].http://bias.csr.unibo.it/fve2000.2002-08.42 指纹识别智能考勤管理系统的设计附录附录1原理图附录2实物图42 指纹识别智能考勤管理系统的设计附录3PCB图附录4元件清单序号名字型号数量1单片机STC152K60S212液晶显示屏LCD160213芯片DS130714晶振32.768KHZ15电池盒CR122016纽扣电池3V17LED灯红、绿各18独立按键19电阻2K410电阻10K211三极管9012112蜂鸣器113极性电容10uf114排阻10K115单片机插座116排针若干17液晶显示屏插座16孔118指纹模块119电源模块5V120电源适配器12V121USB线122杜邦线若干23导线若干42 指纹识别智能考勤管理系统的设计附录5主程序#include"include.h"#include"ds1307.h"#defineMode_Get0#defineMode_See1//sfrP4=0xC0;sbitP40=P4^0;sbitP41=P4^1;sbitP42=P4^2;sbitP43=P4^3;sbitP44=P4^4;//sbitP45=P4^5;sbitP46=P4^6;sbitP47=P4^7;externvu8Command(vu8*p,vu8MaxTime);sfrP1M1=0x91;sfrP1M0=0x92;sfrT2H=0xd6;sfrT2L=0xd7;vu8Timer[8];vu8SysDate[5];vu8UartRx[15],UartTx[5]={0x58};vu16RecCnt;vu16RecTimeCount;vu8UartRecInit=0,Uart_RecOk=0,UartFlag_RecTime=0;vu8Mode=Mode_See;vu8UartSendCnt=0;externvu8DELE_one[16];externvu8DELE_all[12];externvoidClear_All(void);vu8SecOld=255;voidUartSend(void){vu8i;ES=1;//USART_Cmd(USART1,ENABLE);for(i=0;i>8;TR1=1;ES=1;S2CON=0x50;T2L=(65536-(FOSC/4/BAUD));T2H=(65536-(FOSC/4/BAUD))>>8;42 指纹识别智能考勤管理系统的设计AUXR|=0x14;TH0=(65536-10000)/256;TH0=(65536-10000)%256;TMOD|=0x01;EA=1;ET0=1;TR0=1;while(0){S2BUF="a";while((S2CON&S2TI)==0);S2CON&=~S2TI;SBUF="b";while(!TI);TI=0;}//while(1)//{//TI=1;//printf("sfgrn");//while(!TI);//TI=0;//Delay_NMS(10);//}}voidClear_One(vu8num){vu16i,sum=0;Delay_NMS(200);DELE_one[10]=0;DELE_one[11]=num;for(i=6;i<14;i++)sum+=DELE_one[i];DELE_one[14]=sum/256;DELE_one[15]=sum%256;Command(DELE_one,50);}voidDisTime(void){Get_Time(Timer);if(SecOld!=Timer[6]){SecOld=Timer[6];42 指纹识别智能考勤管理系统的设计LCDW_Com(0x80);LCDW_Dat("2");LCDW_Dat("0");LCDW_Dat(Timer[0]/10+48);LCDW_Dat(Timer[0]%10+48);LCDW_Dat("-");LCDW_Dat(Timer[1]/10+48);LCDW_Dat(Timer[1]%10+48);LCDW_Dat("-");LCDW_Dat(Timer[2]/10+48);LCDW_Dat(Timer[2]%10+48);LCDW_Dat("");LCDW_Dat("W");LCDW_Dat(":");LCDW_Dat(Timer[3]+48);LCDW_Com(0x80+0x40+3);LCDW_Dat("");LCDW_Dat(Timer[4]/10+48);LCDW_Dat(Timer[4]%10+48);LCDW_Dat(":");LCDW_Dat(Timer[5]/10+48);LCDW_Dat(Timer[5]%10+48);LCDW_Dat(":");LCDW_Dat(Timer[6]/10+48);LCDW_Dat(Timer[6]%10+48);}}vu8FlagWork=0;vu8SaveZhiwen(void){vu8n,j=0,Flag=1,i;LCDW_Com(0x01);LCD_Str(0,4,"Welcome");LCD_Str(1,3,"Geting...");if(VefPSW()==1){if(enroll()==1){42 指纹识别智能考勤管理系统的设计if(savefingure(SysDate[2]+1)==1){SysDate[2]++;//STMFLASH_Write(50*1024+STM32_FLASH_BASE,SysDate,253);IapEraseSector(IAP_ADDRESS);Delay_NMS(20);for(i=0;i<5;i++)IapProgramByte(IAP_ADDRESS+i,SysDate[i]);Delay_NMS(20);}else{//PutER();Flag=0;LCD_Str(1,0,"GetFailed");Delay_NMS(2000);}}elseFlag=0;}elseFlag=0;LCDW_Com(0x01);LCD_Str(0,4,"Welcome");LCD_Str(1,3,"Seeing...");n++;returnFlag;}voidReadZhiWen(void){//u8i;while(1){searchnum=search();if(searchnum>=1&&searchnum<=162){LCDW_Com(0x01);LCD_Str(0,7,"OK");UartTx[0]="G";UartTx[1]=searchnum;UartTx[2]=searchnum;UartSendCnt=3;42 指纹识别智能考勤管理系统的设计UartSend();Beep=0;Delay_NMS(100);Beep=1;Delay_NMS(1000);LCDW_Com(0x01);SecOld=255;return;}elseif(searchnum==255){LCDW_Com(0x01);LCD_Str(0,5,"ERROR");Beep=0;Delay_NMS(100);Beep=1;Delay_NMS(100);Beep=0;Delay_NMS(100);Beep=1;Delay_NMS(100);Beep=0;Delay_NMS(100);Beep=1;Delay_NMS(100);LCDW_Com(0x01);SecOld=255;return;}}}voidmain(void){vu16i;PIN_LED_Warn=1;SysInit();for(i=0;i<6;i++){if(VefPSW()){break;}else{42 指纹识别智能考勤管理系统的设计LCDW_Com(0x01);LCD_Str(0,5,"Error");LCD_Str(1,1,"PleaseCheck!");PIN_LED_Warn=1;PIN_LED_Fac=1;while(1);}}//PIN_LED_Warn=0;//STMFLASH_Read(50*1024+STM32_FLASH_BASE,SysDate,253);for(i=0;i<5;i++)SysDate[i]=IapReadByte(IAP_ADDRESS+i);if((SysDate[0]!="H")&&(SysDate[1]!="M")){SysDate[0]="H";SysDate[1]="M";SysDate[2]=0;for(i=3;i<5;i++)SysDate[i]=0;}if(!Key){SysDate[0]="H";SysDate[1]="M";SysDate[2]=0;for(i=3;i<5;i++)SysDate[i]=0;Clear_All();LCDW_Com(0x01);LCD_Str(0,4,"Welcome");LCD_Str(1,3,"DelAllOK");while(!Key);}LCDW_Com(0x01);//LCD_Str(0,4,"Welcome");//LCD_Str(1,3,"Seeing...");while(1){if(!Key)ReadZhiWen();if(Uart_RecOk){Uart_RecOk=0;//PIN_LED_Warn=0;42 指纹识别智能考勤管理系统的设计if((UartRx[0]==0x58)&&(UartRx[1]==0x04)){if(SaveZhiwen()){UartTx[0]="K";UartTx[1]=SysDate[2];UartTx[2]=SysDate[2];UartSendCnt=3;UartSend();}elsePutER();}elseif((UartRx[0]==0x59)&&(UartRx[1]==UartRx[2])){Clear_One(UartRx[2]);PutOK();}elseif((UartRx[0]==0x6a)&&(UartRx[8]==0x6a)){Timer[0]=UartRx[1];Timer[1]=UartRx[2];Timer[2]=UartRx[3];Timer[3]=UartRx[4];Timer[4]=UartRx[5];Timer[5]=UartRx[6];Timer[6]=UartRx[7];Write_Time(Timer);PutOK();}}DisTime();}}voidUart1()interrupt4using1{if(RI){RI=0;if(UartRecInit==0){UartRecInit=1;RecCnt=0;42 指纹识别智能考勤管理系统的设计UartFlag_RecTime=1;RecTimeCount=100;}if(RecCnt<15)UartRx[RecCnt++]=SBUF;if(RecCnt>=15){UartRecInit=0;RecTimeCount=100;UartFlag_RecTime=0;Uart_RecOk=1;ES=0;//USART_Cmd(USART1,DISABLE);}}if(TI)TI=0;}voidTimer0()interrupt1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;//PIN_LED_Warn=0;if(UartFlag_RecTime){if(RecTimeCount>0)RecTimeCount--;else{UartRecInit=0;UartFlag_RecTime=0;Uart_RecOk=1;ES=0;//USART_Cmd(USART1,DISABLE);}}}42