版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于op1000指纹考勤机的考勤管理系统设计摘要当下,因为社会的科学技术进步和飞速发展,相对比于曾经的考勤通讯管理系统变得越来越麻烦。目前,自动指纹识别技术以其高效率、高安全性和低误码率等优点被广泛应用于身份信息认证等管理的很多领域。基于op1000指纹考勤机,简要介绍了指纹识别系统与考勤软件之间的通信和考勤管理。同时,本文还着重地介绍了基于单片机的指纹考勤系统的硬软件考勤系统通讯和管理这方面的制作。主单片机是STC89C52。光学指纹识别模块as608是指纹采集和处理的核心。单片机作为工作软件的组合,通过RS-232异步通讯协议与串口相连。通过通信管理,完成指纹收集、输入、相比对等相关功能。通过简单明了的原理设计,可以实现指纹识别功能,加深了对指纹识别原理的理解,加强了单片机和考勤程序软件的应用。关键词:通讯协议,串口通讯,考勤软件,指纹识别目录TOC\o"1-3"\h\u235061绪论 2105441.1课题背景和意义 2106901.2指纹考勤系统的发展现状 3264231.3研究设计的主要内容 3178642指纹通讯考勤管理系统总体方案设计与论证 4102272.1单片机的选择 4327162.2其余器件的选择 4218632.3系统设计的总体思路 5298422.4指纹通讯考勤管理系统总体设计要求 5206882.5总体设计 54523指纹识别通讯与管理系统的硬件设计 612883.1硬件设计总体框架 6172293.3单片机最小系统 7207353.3.1单片机简介 7113563.3.2单片机介绍 8130803.3.3单片机引脚说明 886633.3.4单片机最小系统 893333.3.5复位电路 9268793.3.6晶振电路 10193023.4P0口的上拉电阻 1152653.5指纹模块识别方面 1198873.5LED液晶显示模块 13111883.6拓展功能模块 1479133.7通讯协议 14249313.7.1单片机和AS608的通讯 1469983.8指纹的硬件电路模块设计 14103083.8.1按键的功能选择 15215893.8.2温度传感器模块 1635853.8.3时钟模块 16174243.8.4蜂鸣器报警器 17252473.8.5硬件电源模块 17181603.8.6单片机和AT24C02的连接电路 1849733.9硬件管理系统 18218434软件部分 2378044.1按键的设计 23183384.2液晶显示程序的重要设计 23273264.3关于指纹模块方面的通信程序流程 24246884.4DS1302读取时间的函数设计 24292484.5考勤软件登陆页面 25297724.6考勤软件签到管理页面 26223034.7信息管理 2713894.8记录信息查询系统管理 272894.9单片机跟考勤软件的通讯设计 2864914.9.1连接问题 2843784.9.2软硬件串口通信 283234.9.3串口代码 2983315硬件系统的整体调试 34208935.1单片机的有效调试 34141035.2蜂鸣器有效示警调试 34277225.312864液晶显示屏有无异常调试 34278425.4工作电源的调试 34226115.5硬件焊接调试 34100155.6软件的运用与调试 35156015.7硬件整体部分的实现 3542986硬件电路制作和调试 36167756.1制作和调试 3697026.2烧录软件介绍 36252666.3实物图 37177966.4串口线的连接 3832326.5指纹与按键的调试 39304736.6实物的硬件调试 403397结论 4319481参考文献 4417715附录A 4619092致谢 991绪论1.1课题背景和意义现如今已是信息时代,身份信息识别在现代人类的生活中经常被使用。例如,银行卡的交易秘密、费用支付密码、安全密码、居家时候指纹开门解锁密码等,这里,有数不尽的密码被识别出来。我们很多人也选择了许许多多大不相同的密码。现如今,生物辨识技术正逐渐进入到安防范畴,而指纹技术又作为一种新型的生物辨识技能,指纹是一个人一生中不可能会随着年龄增加而改变的属性,因为任何一个人他/她的指纹都是不同的,没有一点指纹重复的可能性,所以指纹可以标记为个人的或者说可以是个人的身份证明信息。与别的的辨认技术比拟,指纹技术在许多方面都有着奇特的上风,既适用又可行。当伴随着指纹技术的日趋遍及,其钻研也愈来愈深切。所以了解指纹识原理,懂得如何设计指纹识别系统显得很有必要。可便于节流谋划用度,晋升谋划管理水准,便于职工的操作。减少因员工出勤不明确而造成的劳动关系紧张,降低用户电脑操作的门槛,保障出勤资料的保管。基于欧美SSR技术的普及,开发了自助指纹考勤系统。该课题研究的是基于OP1000指纹考勤机的通讯及考勤管理应用功能,自己重新设计出一款考勤软件考勤可以通过OP1000指纹机考勤机的通讯协议方式让硬件与考勤软件联合调试。由于本设计是基于OP1000指纹考勤机的工作原理和RS-232通讯协议为前提的设计,因此,虽然使用单片机作为主要的中心控制台但是它却极大地限制了实时性和可扩展性,当然它也有其自己本身的优势和意义,即可以用最有效的处理数据方式具备了该指纹识别考勤系统所需要有的所有功能。这有助于我更好地理解指纹识别原理和单片机结构的功能,这对本课题也很重要。比起市面上的考勤机,基于OP1000指纹机考勤机设计出来的考勤机不仅更加方便适用,同时还会自动储存数据,让人们的签到打卡效率大大提高。1.2指纹考勤系统的发展现状当前采用的是手工和系统化的考勤,很明显,人力的出勤已经不能适应大规模的工作需要。而现行的银行工作人员使用的是信用卡,而电子卡片则是由职员随身携带,很可能导致丢失。另外,这种做法很难避免有人替人出勤等作弊行为。因此,传统的出勤制已经没有办法顺应当代企业的需求。指纹是人类特有的一种生物特征,它是独一的、不成转变的,它可以被应用到人类的辨认中。在一些场合之中我们利用指纹技术,可以很好的处理考勤绩效问题。当今社会科学研究者和技术开发人员越来越致力于向这个方向发展,实现其领域目标,同时还取得了较为精彩的成就,但仍然还存在着些许不足之处,如系统的通用性不好,造价也十分的昂贵。当代企事业的考勤治理方面也是十分重要的。比方说,人事单元的考勤是企事业管理制度的主要组成部分之一,跟企事业单元的人事人力、出产效力等有紧密的干系,与职工的收入直接挂钩。其次,对于企事业人员的人事出勤进行公道并有用的科学方法治理,能够去除考勤子虚不真的虚象,这也早就成为了所有企业和各个机关部门面对的实际课题。也恰好因为考勤管理对当代企事业的重要性,考勤管理系统才具备更加庞大良好的市场。1.3研究设计的主要内容本课堂设计基于熟悉op1000指纹考勤机的工作原理,然后设计与其通讯的协议方式,同时学习数据库系统方面的知识编写出考勤软件,设计出基本考勤软件管理功能,如指纹添加、指纹删除、签到、打卡、早退、迟到等,再设计一款基于单片机的考勤机,通过串口协议和异步通讯RS-232异步通讯协议,使基于单片机的实物设计可以和编写的考勤软件联动,完成考勤通讯管理系统的基本设计。2指纹通讯考勤管理系统总体方案设计与论证2.1单片机的选择在硬件电路的搭建之前必须明确设计的方案,从所有模块之间进行一个对比,然后判断选择出最有益适合本设计的硬件,以发挥器件的最大功效。所以单片机选择AT89C52是因为它是低功耗、高性能的CMOS8位单片机,可以运用在许多嵌入式控制系统中。2.2其余器件的选择光学指纹传感器:AS608指纹识别模块(指纹特征、指纹比对、指纹搜索、灵敏性高)蜂鸣器:5V有源蜂鸣器(用于指纹识别判断发声,并且价格适中)DC电源接口:电脑显示器跟电源插座的接口液晶显示:LCD12864液晶显示屏(电路的结构相对来说比较的简单,程序也十分清晰简单,价格低于同一晶格图形液晶模块,还能组构成全部都是中文的人机交互图形界面,在日常生活中经常使用。)AT24C02存储芯片:主要用于存储一些需要掉电保存的数椐,不过24C02的存储倍量只有256字节,该芯片器件可以通过I2C的总线接口进行一个专门的写保护功能的操作。DS1302时钟芯片:可以得到发生精确实时时钟的芯片,经由它可以获得全部时间的数据;而使用DS1302芯片不仅可以省去用单片机编写时间的步骤,还可以节约成本。4*4矩阵键盘:用于进入管理系统,可以添加编号指纹、删除指纹、修改密码等软件:keil软件(可用于C语言编写,程序调试,有学习过相对容易上手)Visual.Basic.6.0:VB软件可以拿来编写PC端考勤系统的软件2.3系统设计的总体思路如图2.1所示,本设计主要采用STC89C52在设计中作为主控器的单片机,负责将采集AS608指纹和独立按键的信息再传输到对主控芯片进行处理以后,通过串行模块对主控芯片进行扫描,并对指纹和数据库进行机器评估,如果指纹符合信息则发送指令给单片机同时蜂鸣器发出声音提示,考勤软件还可以调用数据库显示个人信息,不符合则考勤软件和单片机机会进行报警提示,并且考勤软件可以对用户信息进行管理。2.4指纹通讯考勤管理系统总体设计要求设计的指纹通讯考勤管理系统应具有如下特点:(1)该设计是以单片机为控制核心,加上各类电路器件,如:AS608指纹传感器、蜂鸣器、LCD液晶显示、独立键盘等。(2)该系统应该需要具备携带方便、设计简单、成本价格低、高性价比等特点。(3)软件设计简单易懂。2.5总体设计该设计的系统是以STC89C52单片机作为核心的器件,AS608指纹识别模块作为识别读取指纹信息的智能通讯考勤管理系统。在我们设计的硬件中之的AS608模块设计用于采集指纹并将其传输到主控制芯片也即将是单片机中进行分析处理。主控芯片再将指纹给进行数字化以后,又通过串行模块将指纹传输到通讯考勤软件之中,该软件检测和处理数据。在满足信息要求时,考勤软件就会向单片机发送指令。并且控制LED灯,声光报警模块进行提示,考勤软件将调用数据库显示学生个人信息,并且显示签到等信息,并且将信息保存到数据中。图2.1总体框图3指纹识别通讯与管理系统的硬件设计3.1硬件设计总体框架如图3.1所示,时钟电路实时控制时间,电源电路控制硬件系统的开关,复位电路可以使单片机复位归零,晶振电路用于提供时钟信号,产生时钟频率,指纹模块AS608识别读取指纹的信息,AT24C02用于储存数据,同时提供数据到主控芯片之中。主主控芯片获得的数据又可以经由矩阵键盘的控制把信息数据呈现在LCD上。图3.1硬件总体框架电源供电模块电源供电模块3.2硬件总体电路设计本硬件总体电路设计是以AT89S52单片机为基础,同时加上AS608指纹传感器以及报警、时钟、串口、24C02存储芯片等模块构成了总体,如图3.2所示:图3.2硬件设计图3.3单片机最小系统3.3.1单片机简介我们绝大多数人都知道TC89C52RC是STC公司生产出来的,不过大多数人都不知道这是一款成本低廉、性能又十分高的CMOS8位微控制器。它不仅仅只具有8位可编程闪存系统,STC89C52还采用了以往经典的MCS-51内核,使芯片不断在原有的基础上进步,因此进步的TC89C52RC不仅具有传统的51微处理器功能。还在带有8位处理器和系统可编程闪存的单芯片上,为许许多多嵌入式控制系统提供了高度灵活和实际有用的解决方案。3.3.2单片机介绍8052单片机是新一代抗干扰能力强、低功耗、高速的单片机,同时89C52RC单片机也是STC制造出产的单时钟、机械周期的单片机,它的指令代码完整兼容了传统8052的优异性能,并且它的速度还要快8-12倍左右。内部集成也是MAX810专用复位电路,还具备四项优点,第一项为可以在强干扰场合使用,第二项有2路PWM,第三项可以针对发动机进行控制以及第四项8路高速10位A/D转换。3.3.3单片机引脚说明1、P0.0~0.7端口作为单片机的标准、它有准确的输入输出口,同时还能用来做位置或者数据复位总线使用。2.P1.0~P1.7都可以是标准的I/O端口,在这里也可以用作A/D信号转换通道,在这几个端口之中,有一个端口比较特别,它就是P1.0端口,它还可以单独使用波特率发生器的时钟输出。PCA计数器上有数据接收端口和数据的发送端口相对于的端口是P1.2~P1.3。P1.4~P1.7端口可以接在SPI上。不仅如此,SPI也可以与同步的串行接口相接。3.P2.0~P2.7端口在其内部里面有一个上拉电阻。这也是它不受限制可以用作标准I/O端口和高8位地址总线的原因。4.P3.0~P3.7端口,最原始的一个用处是作为一个标准化、精确的I/O端口。还有P30~P3也能用作数据接收和发送端口和P1.2~P1.3端口作用一样,外部中断0和1则是用P3.2~P3.3端口。定时器0的外部输入端口跟1的时钟输出端口可以用P3.4~P3.5端口。P3.6~P3.7是读写端口也可以在也需要的时候用于外部数据存储器。5.P40~4.7的单片机接口。从P4.0~P4.3端口,这四个端口之中P4.0端口可用于SPI同步串行接口、P4.1端口可用于PCA计数器的接口、P4.3端口可用于外部信号采集端口甚至于某些时候这些端口都可以互相使用。端口P4.5可用于位置存储端口。端口P4.6除了可以用在外部低压传感器以外,功能端口还可以用于第二次复位。端口P4.7可拿来用于单片机的复位引脚上。6.本单片机的P5.0~5.4端口,常用为I/O口。7.XTAL1、2可以用作单片机内部时钟反相放大器的端口。当用于外部时钟源的时候,输入端是能够悬空。8.单片机设计里的电源端口是VCC,接地端口也是VCC。3.3.4单片机最小系统单片机和复位电路以及晶振电路三者组成在一块,却还是可以继续工作这叫做最小系统,如图3.3所示。图3.3STC89C52管脚图在STC89C52RC主控制核心单片机中,它内部组织结构框图如图3.3所示。其中STC89C52RC单片机还包括十三个组成部分:SPI接口、片内RC振荡、UART串口、数据存储器(SRAM)、高速A/D转换、晶体振荡电路等模块、串口2、中央处理器(CPU)、看考勤狗电路、程序存储器(Flash)、UART串口、定时/计数器、I/O接口。3.3.5复位电路复位电路之所以被称为初始化,它也是一种电路装置,可以用来使电路恢复到原来的状态。其工作原理与笔记本电脑的启动钥匙相似,但启动时蕴含的方法不太一样,复位电路可以用它直接把电路改变复原到最初的状态。像是笔记本电脑卡机一样,一直按着开机重启键,系统就会回到最初始状态。在此设计之中复位电路的用途:之所以要在单片机种使用复位电路,是因为有时候我们单片机系统程序在运行时,有可能会出现一些BUG,如程序运行会出现卡顿、失效、受到一些不可控因素影响时,或者我们设计程序之中有输入密码,当出现忘记密码时,就能经由复位电路,按下复位按键,复位电路里面的程序就会跟随着按键的启动从新开始启动运行。图3.4复位电路图如图3.4所示是单片机复位方案电路图,这里面5V电源复位为单板低引脚时候电路会正常工作。当主轴端复位持续两个高电平机械周期循环时,单片机将被复位。按键时肯定会出现两个机械循环。因此,按下该键可返回到最初始时候的状态。3.3.6晶振电路可以为系统提供基本的信号时钟频率的是石英振荡器,这是最常见的用法。通常,时钟中晶体的振动频率为18.423兆赫兹。一个系统总共只能用一个晶振,便于各部分维持同步。同时,只要是单片机系统里百分百都具备有晶振,任意一个系统都只能一起用一个晶振,这样的好处是相较于容易保持各部分同步。晶振的提供的时钟频率越高,那单片机的运行速度也就越快。负载电容值是晶振的另一个重要参数。如果选择与负载电容相同的并联电容,那么可以获得晶震的标称谐振频率。晶振的负载在一般情况下,通常为15pF~12.5pF。如果出于现实,我们可能要顾忌元件引脚的参数,如等效输入、输出电容,那么由这些30pF电容组成的晶体振荡电路应该是一个很好的替代方案。同时,一般晶振上的负载电容为15pF或12.5pF,要是因为实际原因需要考虑元件引脚的等效输入电容的话,那两个30pF电容构成的晶振振荡电路应该是很好的选择。
如图3.25所示,给单片机输入工作脉冲信号的是晶振。图3.5晶振电路3.4P0口的上拉电阻输出的电流如果过高的话,那么电路中的输出电平就会减小。要是上拉电阻已经存在在电路中,有可能会因为电阻太过于大,电压也变得过大,那么我们就可使用上拉电阻,上拉电阻会提供电流分量的同时“升高”电平。同样,在一定条件范围内,我们都知道管子的上拉电阻不能太低。也不能太高,太高了则会延迟整个输出电平,这种方法也能用在门电路电平的实现匹配上。同理CMOS栅极电路的输出不会停止。它与上拉电阻相连,可以设置为高电平。同时P0口作为I/O口输出的时候,P0
口输出不了高电平,给电路负载提供不了电流,这时候我们只有接上拉电阻,让电源通过上拉电阻给负载提供电流。
3.5指纹模块识别方面目前,指纹识别模块采用AS608光学指纹传感器,该传感器由DSP处理器和闪存芯片组成,具有以下五个功能:模板匹配、模板存储、指纹图像处理、模板提取、指纹搜索等功能。同时,我们还将这款指纹识别模块与同类型,甚至于不同类型的指纹产品做了一个对比,对比结果出来以后发现了AS608模块还有下列特点:1.指纹适宜性较强每当指纹在进行图像识别的时候,都会自主适应调节参数,让手指的干湿程度都无法影响成像的质量,适合的人口的数量也在逐渐增加。2.相对比之下价格也比较便宜这款指纹探头基本上都是采用自主研发连光头检测仪都是自己公司研发出来的,这也让生产的成本大幅度降低,所以相对比下来它的价格便宜。3.算法AS608指纹模块在算法上也十分优异于其它的指纹模块,它在设备识别的时候,连算法都根据光学头成像的原理重新进行了设计更改,对比一切都是最新的。还对变形、质量差、指纹等几个方面进行了修改,还留了容错机能等长处。4.方便简易还耐用不用会这方面的知识也可以使用。识别设备需要做的只是用它原本就有的控制指令,自己尝试都能设计开发出指纹识别方面的应用系统,并且还能保证功能还不错。5.快捷方便指纹探头的插口能直接连在电脑的鼠标接口上就能使用。系统参数:表1AS608参数表AS608指纹模块的基本参数:供电电压DC3.6-6.0V,外部接口UART,指纹储存数量不能超过960枚,峰值电流为150mA。该指纹模块外部的标准接口处单排插座/针都是一样的。要是用户的设备和指纹模块的串口在进行通讯的情况下,我们可以获得J1处的接口引脚定义参数如下:表2引脚功能图3.6指纹探头实物图3.5LED液晶显示模块在硬件上如果我们需要显示出所操作信息功能的情况下,需要用到LED12864液晶模块,该模块主要用于显示指纹打卡等信息情况,同时该模块的引脚在D0-D7与主控芯片引脚P0.0~P0.7进行通信连接。出于通信目的,在操作过程中,首先要检查液晶显示器的状态是不是符合,如果符合状态,当是0的时候,它开始写入指令操作和写入所需要用到的所有数据。同时将RS设置为低电平,RW设置为低电级,E设置为高脉冲。我们可以使用命令码D0到D7。当我们在编写显示数据的时候,就要在开始保存数据时,同步设置要显示的位置。此项目选择的是串行通信端口。因此,PSB接地的同时还跟R1连接至设备。具体展示如下图3.7所示:图3.7液晶显示电路3.6拓展功能模块温度传感模块:在DS1820被改良创新以后,重新推出了一款温度传感器,它是最新款、最新型的智能温度传感器DS18B20。DS18B20跟以前的热敏电阻相比较,它直接可以读出被测量的实际温度,同时还可以按照要求根据相对简单的编程实现9到12位的数字读写方式。还可以在规定的时间内完成9到12位的数字量,时间分别在93.75ms和750ms内。同时在DS18B20中读出或写入信息都只需要一跟口线,总线可以更DS18B20供电,因为他的温度变换功率都来自于总线,所以它不需要额的外电源。同时在测量温度的精准度、转换温度的效率时间、传输距离程度和分辨率等四个方面较DS1820有突破性的进展,能带给给用户更方便的使用达到更加令人满意的效果。实时时钟模块:DALLAS公司推出的DS1302在涓流充电时,可以经由简单的串行接口与单片机进行通信能提供目前我们所能知道了解到的所有时间信息,同时还能对月份及比较特殊的闰年天数做了一个自动调整,再经过AM/PM指示决定是否采用24小时的格式或者12小时的格式,同时还要保持数据跟时钟信息时功率小于1mW,之所以如此,是因为时钟芯片只有包含有实时时钟、日历和31字节静态RAM才能到达上述所说的结果。3.7通讯协议3.7.1单片机和AS608的通讯AS608跟单片机之间使用的的通信方式是串行(异步)通信.串行模式下还支持串行和全双工串行通讯,这是源于在单片机中有UART通信模块。UART能把字节用编程把数据编入进去,UART会自主把8位进制数据转换为输出的串行数据,然后在不同时间节点从TXD引脚传输出去;同时,在不同时间从RXD引脚输入的串行通讯数据,会被UART转换成为字节,并在编程读取以后处理,该方法能够实现主控芯片对AS608的管理。3.8指纹的硬件电路模块设计如图3.8所示,是STC89C52RC单片机作为主控芯片配合指纹模块结构框图。图3.8硬件结构图整个硬件模块工作过程如下:先是第一步,先打开电源的开关,让指纹探头进入到工作的状态,这里会有记录、匹配、删除三种情况,三种状态也分别对应着键盘模块上的三个按键,当我们选定进入到工作模式,主控芯片就会发出对应的指令,指令会被AS608接收到,同时显示出来。3.8.1按键的功能选择这里按键模块成功的实现了按键按下便会实行相对应选择功能,如指纹的形状对比功能、指纹删除功能等。整个工作流程是当单片机感应到有相关的按键按下时,会直接实行该对应按键的功能,如图3.9所示:S1~S3分别对应数字1~3S4进入界面键S5~S7分别对应数字4~6S8退格键S9~S11分别对应数字7~9S12、S13无用S14为数字0S15确认键S16密码重置键S17为复位按键。图3.9按键电路3.8.2温度传感器模块温度传感器选择用DS18B20,DS1820整个驱动的接入端口为P3.2。电路驱动如图3.10所示:图3.10温度传感器驱动电路3.8.3时钟模块此处选择了DS1302模块作为实时时钟,与其备用的电池互相连接上,可以有效防止系统电源故障的时候,时钟继续正常工作,驱动电路整体图如图3.11所示:图3.11时钟驱动电路3.8.4蜂鸣器报警器在绝大部分的单片机考勤系统中,蜂鸣器是用来示警或者提示的,在人们日常使用过程中,要是蜂鸣器在正常使用,就会在指纹识别成功的同时发出提示的声音,如果没有识别到指纹,或者指纹没有接触到都不会有然后的声音发出。在硬件上面如图3.12所示,与主控芯片通讯的是IO端口P2.4,要是IO收到大电流也就是高电平时,蜂鸣器不能再继续使用,不能提示。如果接收到来自单片机的低电平信号,三极晶体管将接通,蜂鸣器将发出正常提示。高电平和低电平都是由三极晶体管管控,以限制晶体管的焊接电阻为1KΩ。图3.12蜂鸣器的连接电路3.8.5硬件电源模块当硬件处于工作状态时,所需工作电压为5V,在系统运行过程中,系统可通过很多有电的接口充电,。但是,电源的电压一旦错过所需要的工作电压时,是很轻松就会把系统硬件模块给毁坏,当然电源的电压要是低了也不好,会让电路在不稳定的状态,如同电灯泡一闪一闪,最后直接坏了一样,会导致系统故障。我们可以通过图3.13看出,在电源的硬件电路中所示的电源插座只有1是正电极插座,2是负极,3也是是负极,所以,通常情况下,都是在电源正负极处焊一个电容,这是为了稳定电压,保证其余模块正常运行。图3.13电源电路3.8.6单片机和AT24C02的连接电路选用AT24C02是因为它的储存数据的效率十分的快,卖的还不贵,是数据储存需要的不二选择。只需要连接好正确的引脚插口储存芯片就能和单片机信息互通,并不复杂如图3.14是存储芯片跟单片机P3.3、P3.4、P3.5的引脚连接。图3.14AT24C02与单片机P3口的连接3.9硬件管理系统硬件管理系统分为主页面,然后又划分为六个部分:增加指纹通过图3.15实现采集的指纹。图3.15增加指纹删去指纹通过图3.16所述的代码实现密码的删除。图3.16删去指纹3.时间设置通过图3.17所述的代码来实现管理时间的设置。图3.17时间设置4更新密码通过图3.18所述的代码实现密码的更新。图3.18更新密码5.刷指纹打卡图3.19刷指纹打卡通过图3.19实现指纹打卡。6.指纹确认图3.20指纹确认图3.21指纹确认通过图3.20、图3.21实现了密码的确认。4软件部分4.1按键的设计如图4.1所示为按键在使用中的流程图:图4.1按键使用流程4.2液晶显示程序的重要设计型号为12864的显示模块在这里的目的是成功完成数据显示功能,随即在依照接收的命令,在显示屏上显示出字符内容。图4.2显示流程4.3关于指纹模块方面的通信程序流程如图4.3是串口通信方面有关于发送、接收数据的主要流程步骤。图4.3串口通信发送、接收数据4.4DS1302读取时间的函数设计在DS1302模块中一共具有31个RAM寄存器,在本设计中首先利用到了关于所有时间的寄存器。当DS1302的秒寄存器给定一个数值以后,其余时间的寄存器就会从这个定值处进行一个秒的累加,同时还会在秒累积到六十的时候向分寄存器自动进一位。同时,还要遵循低位在前,高位在后的原则。同理,在发送数据的时候也一样,先发送低位,后发送高位。不过写数据的时候为下降沿有效,读数据时为上升沿有效。其余基本操作可以看手册。DS1302是如何读取时间的,如图4.4所示。图4.4时间读取流程4.5考勤软件登陆页面本次考勤系统采用VB语言进行编程,并保存在所存储的编程文件之中。当exe程序打开时,软件将写入系统的输入初始登陆页面,如图4.5所示。系统允许快速将管理员输入的用户和密码与数据仓库中的密码信息进行一个准确的比较,如果密码和信息为真,将在系统主页面中显示,如果不正确,系统会提示。图4.5系统输入用户名和密码页面4.6考勤软件签到管理页面进入到了管理页面以后,第一步的查看连接硬件的串口号是多少,只有知道串口号,并且选择正确,软件才能和硬件联动,如图4.6页面气息可见左上角的三项选项,我们只需要选定串口号,然后把波特率调对,最后直接选择菜单点击开始,考勤软件就会工作,同时硬件就会通过刷指纹把指纹信息转化为串口的数字信息传递给考勤软件,考勤软件就会与之原本储存在数据库里的指纹信息进行一个准确的对比,随即显示出信息如图4.6、图4.7所示。图4.6管理页面。图4.7串口号页面4.7信息管理我们得知道DataGrid1控件主要是用于解锁信息管理界面中方方面面的信息。并且管理员也必须使用它来修改用户信息。它还锁定控制信息,并记录系统希望更改的信息外还能保存信息,比方说通常用于管理学生的各种信息,无论是改名字、该班级,改性别、卡号都行,如图4.8为信息管理的页面。图4.8信息管理页面4.8记录信息查询系统管理只需要单击考勤软件可以查询学生的姓名和之前就已经注册过的信息记录,系统可以依照我们所想要查询的部分信息去搜索数据库,并在DataGrid1控制页面上显示查询出相对应的信息。图4.9信息查询4.9单片机跟考勤软件的通讯设计4.9.1连接问题用一根USB转RS232的串联线,把串口接到单片机VCC、P3.o/P3.1VDD分别对应接口10和接口11,不过串口线无法这根串口线就解决了单片机与电脑的连接,所以我还选择用MAX232芯片连接在串口上作为转接。4.9.2软硬件串口通信想要软件和单片机同时实现串口通讯需要在keil软件上放入单片机串口初始化的代码,然后在VB软件上放入考勤软件串口初始化的代码实现硬件和软件的通讯联动。但是在单片机和软件调试串口时,我们需要解决调试出来的串口它们可以相互联动,所以在这之前,我们需要完成四个步骤。1.下载并安装好“vspd虚拟串口软件”,VSPD最新版是一款专业的虚拟串口工具。VirtualSerialPortDriverPro官方版可以帮助用户对设备串口中进行调试操作,通过互联网络的形式实现数据传输。2.下载“串口调试助手”串口调试助手工具有以下优点:(1)不仅可以自动搜索串口,还能打开串口。(2)之前的历史记录还能发送出来,波特率可以自己定义,非标准波特率也可以支撑。(3)上位机软件可以跟虚拟出来的串口之一连接,还可以将串口调试助手跟另外一个虚拟出来的串口相连接。4.这样连接是因为虚拟串口总是创建成对的串口,而每一对串口也是互相连接的,就像一条数据线的两端。当上位机软件给串口发送任意数据的时候,数据就会通过串口发送给串口调试助手,串口调试助手这时候不仅能看到上位机发来的数据;还可以拿串口调试助手向上位机发送任意数据,发送出去的任意数据会通过串口发送给上位机,如果上位机软件也有接收数据的功能,那么也可以看到串口调试助手发回来的数据。4.9.3串口代码1.串口初始化图4.10单片机串口初始化 图4.11单片机串口初始化图4.12单片机串口初始化上述是按键的扫描,从串口刚开始的初始化,到可以使用单片机根据设定过的按键,来指定按键操控软件,从而实现硬件与软件的通讯。图4.13串口初始化流程图2.软件串口代码图4.14软件串口代码初始化流程图图4.15软件串口代码初始化流程图通过上述代码,可以实现硬件和软件的通讯,解决了硬件和软件的联动问题。图4.16软件串口流程图5硬件系统的整体调试5.1单片机的有效调试从始至终STC89C52单片机一直都是本设计系统的核心芯片,这个改变不了。要知道最小系统是被焊接连在一起的,它也被称之为硬件的核心,我们只需要把电源关闭,在最小系统的插槽中放入芯片以后,再次打开电源让硬件整体运行起来。此时此刻,我们要检查一下单片机的引脚是不是都是好的,这里得用LED灯,如果LED灯闪烁正常,就得看看最小系统的焊接是否正确或芯片是否良好。如果两者都丝毫问题,则通过MCUIO端口P30和P31把程序烧入下载下来,当编译好的程序通过被烧录记到单片机上,同时还成功了。说明最小系统可用。5.2蜂鸣器有效示警调试在指纹考勤系统之中,蜂鸣器的用处也只有报警提示。它不算太难,我们只需要注意的是焊接三极管时,蜂鸣器的引脚与之连接的时候不能连接错误了,不然容易烧坏三极管,同时当我们连接完成以后单片机主要是利用高低电平去驱动蜂鸣器与其通讯的。5.312864液晶显示屏有无异常调试在硬件里我们通常使用12864液晶显示屏。该液晶共有20个引脚。12864液晶管脚和MCUIO端口只有在成功匹配程序中的IO端口后才能使用。检查液晶显示器是否正常显示,并按下按键按钮打开液晶显示器。如果液晶显示正常,则表明功能正常,否则需要检查电路焊接过程中是否存在短路的情况,或者LCD程序中是否存在定时错误,从而导致LCD显示最终失效没有用。5.4工作电源的调试该硬件系统中电源的调试,主要是看能不能运行起来,防止工作电压过于太高,或者偏低,所以我们一般都会选择加一个电容使电源变稳定。5.5硬件焊接调试在考勤签到管理系统之中,主要采用了PCB板采用焊接,这里主要检查一下是不是有短路,或者没有把元件焊进去的情况,以免影响硬件的使用,同时还得注意,焊接时不能长时间把焊接枪放在PCB板上,以免出现损坏等情况。5.6软件的运用与调试在考勤管理系统中,最常用的编程语言便是C语言了,这次设计我们便是运用的C语言。此外,编写程序的软件使用的是Keil4。之所以使用它不仅仅是因为它与C语言是配套使用,还以为每一次编程错误运行的时候该软件都会进行一个提示,我们可以从软件的提示之中发现自己的错误,从而修改,最终完成。5.7硬件整体部分的实现如果在焊接的时候,发现自己已经焊接完所有模块了,那必须二次甚至于三次检查焊接过程中是否存在短路或开路,如果没有什么问题的话,我们就可以拿烧录软件把程序下载进去,下载以后,打开电源按键,同时通过按键判断功能是不是都可以使用,最重要的是我们在进行串口通讯的时候,还有一个前提,得先通过虚拟串口调试,然后检查液晶显示,看看所有的功能是不是都能正常显示,要是不能就得进行程序的一个调试。测试主要过程如下:焊接时,应提前在每个位置摆放好需要焊接的器件,同时还需要确认器件的摆放位置是不是合理,以免焊接好以后,不好更改,更改也容易破坏器件。做好这些以后我们只需要根据原理图来进行器件的导线连接。所有设备焊接完毕后,只需检查导线之间是否存在没有连接、焊接错位置、没有焊进去等现象,并检查单片机引脚与器件连接是否有误。如果一切正常,可以将主控芯片和液晶显示器插入焊接板。然后,打开电源开关,要是好的话,LCD将点亮,指纹探头将点亮,蜂鸣器将鸣响。6硬件电路制作和调试6.1制作和调试制作电路板的过程基本上就是焊接和选取材料不用过多讲解,下面介绍的是硬件调试方面的问题(1)电路没有连通,是阻断的可能是在电路焊接的时候,没有焊接好,这时候我们需要使用万用表来检查电阻或者电流是不是导通的,如果没有导通,我们可以判定为电路没有连接上,需要花些时间用万用表检测出来位置,然后焊接好就行了,当然还有第二种原因是由于电路板本身就存在问题,有可能是因为电路板内部没有连接上,导致焊接上了但是没有导通,要是这种情况的话,我们只有更换电路板了。串口位置接口出现在这里的问题,最容易出错的便是把接口与单片机的引脚连接错,导致串口不能使用,无法连接考勤软件,所以我们只能一点点把弄错的引脚一步步改正,从而使接口连同,串口得以使用。6.2烧录软件介绍该设计所应有的烧录软件为普中烧录软件,用烧录软件把程序烧录到单片机的内部,在整个烧录程序的过程中,需要先选择所要烧入的程序HEX文件,选择查看后的串口号,串口号不能选错,不然硬件和软件不能联动,还需要设置波特率等信息,然后点击下载程序,同时用烧录软件把程序烧入到主控芯片中便可使用运行,如图6.1所示烧录图。图6.1烧录图6.3实物图本设计采用PCB板,除了购买元器件以外,还从头到尾把元器件焊接了上去,如图6.2所示.图6.2实物图6.4串口线的连接我们得注意大部分的串口连接线上都有四种颜色分别为红、白、黑、绿,在连接的时候我们及其要注意不能连错,不然串口不能通信,考勤软件上也找不到串口,就没有办法配套使用了。连接的时候我们大都遵从红连VCC,黑连GND,具体如下图6.3所示。图6.3驱动线连接当颜色不同的驱动线在正确的连接方式下完成以后,接下来便是把程序通过烧录下载到单片机之中,当程序烧录下载完成以后,我们就可以进行实验。6.5指纹与按键的调试如果程序早已经导入到主控芯片之中,那么指纹与按键的调试操作步骤为:把打开电源,紧接着显示屏迅速亮起,蜂鸣器发出嘟一声,指纹探头发出蓝光。2)如果需要输入我们事先设置好的密码的话就得按下“S4”键,然后当密码输入准确以后,屏幕进入到管理界面。3)接下来在管理界面之中按下S1键就可以选择是否增加指纹,同时屏幕之上会同时按指纹之类的字提示我们,我们只需要按照提示将手指放到指纹头处看到显示屏上提示成功以后,就可以识别指纹了。4)当放在指纹探头上的指纹,在被识别成功以后,成功的添加了指纹以后,LED灯会亮一下,同时蜂鸣器也会伴随着响起提示,当然就算是指纹识别失败了蜂鸣器也会响起提示。5)与此同时,我们可以按S8退格键,该按键可以在我们退不出来的时候,帮助我们退出程序,如果指纹也没有成功增加软件将不能成功打卡,则可以按返回键返回到最初的界面,再一次尝试扫描指纹。6)如果当我们按下S4按键,会提示让我们输入6位数的密码,当按下S8按键时,就可以选择可以删除不想要的数字,或者是误输入的数字,要是数字都对,这时候就能按下确认键,也就是S15,成功的进入到了管理员模式。7)系统成功的进入到管理页面,要是我们按下了数字键“S1”就会进入到指纹的录入之中,值得注意的是当指纹在进行录入的时候,必须注意的是得重复录入两次指纹,并且两次指纹都录入成功,才算是完成了指纹的录入存储。8)在硬件的管理页面之中,按“S2”键可以进入到模式选择删除不想要,或者已经离职不在的人的指纹,操作也十分的简单,只要在系统之中选中不想要的指纹,按“S8”键确认就能够删除掉了。9)“S17”键复位键可以进行开锁。10)“S16”键是在我们忘记了管理密码时,重新重置密码,让密码归零,重新按照前面的步骤设置。在本设计之中需要严格符合以上设计要求,直到软硬件都能够可以正常工作。6.6实物的硬件调试图6.4显示界面图6.5输入密码进入管理页面图6.6管理页面图6.7刷指纹打卡成功页面结论在检查电路连接的错误时,发现了一系列的错误,如:LED灯的正负极焊接出错排阻的焊接出现了错位的情况未焊接单片机的最小系统(晶振)以及发现了单片机89C51在插上座子的时候出现了插反的错误,最后发现了用来对单片机程序下载的四个排阻中,中间的两个排脚焊接出现了错误(即在连接到单片机10脚与11脚上发生了错位),导致在下载时,出现了程序无法下载的现象。(4)考勤软件管理通讯,串口通讯时这里出现了很大的问题,硬件和软件刚开始怎么都不能联动,最后利用虚拟串口工具和串口助手一步步调试才得以实现二者的联动通讯管理。在解决了上述的错误之后,进行了测试,发现能够实现预期的效果,从而完成了本次实验。不止如此,还在本设计之中增加了一些扩展,如添加了Ds18B20温度传感器,这款温度传感器可以使考勤管理系统在进入系统页面时,显示出当时的温度,添加的DS1302时钟芯片让其可以显示出年月日,让考勤打卡的准确度更加具有说服力,让这款设计变得适用性强,适用范围也更加广。在以上基础之上,我们得以完成该设计的任务,成功实现了考勤软件与硬件的通讯和考勤管理。
参考文献[1]安康康,黄金鑫,胡泓.应用于五轴仿真设备的分布式实时控制系统[J].自动化仪表,2017(3):26-29.[2]唐会成.煤矿采掘设备CAN总线电液控制系统的应用[J].自动化仪表,2018(10):92-95.[3]关学忠.基于单片机的储油罐液位无线监测系统[J].自动化技术与应用,2020(2):138-143.[4]耿冲.SQIServer2005数据库管理[M].北京:机械工业出版社,2003.[5]尹义龙,宁新宝,张晓梅.自动指纹识别技术的发展应用[J].南京大学学报(自然科学版).2002,38(1):29-35.[6]徐英慧,马忠梅,王磊,等.嵌入式系统设计[M].北京:北京航空航天大学出版社,2010.[7]于明,范书瑞,曾祥烨.ARM嵌入式系统设计与开发教程[M].北京:电子工业出版社,2009.[8]玉春蕾,周关娇,易淑友.基于STM32的嵌入式指纹识别系统的设计与实现[J].信息技术,2013(1):155-157[9]符强,任风华.基于手机蓝牙的遥控小车的设计[J].现代计算机,2011(12):77-79.[10]邓亚平,贾颢.基于C8051F021和ADS7846的触摸屏系统设计[J].电子元器件应用,2009,11(8):31—32.[11]马力,Java
基础案例教程[M].北京:电子工业出版社,2010.[12]姜仲,李绪成,Java语言程序设计[M].大连:东软电子出版社,2009.[13]段少雄,等.高效指纹考勤系统的研究与设计[J]计算机工程.2003,29(9).[14]唐业等.基于智能卡的分布式考勤管理系统的研究与实现[J].计算机应用与软件.2005,22(5).[15]张清雅.基于WebService技术的考勤管理系统的分析与实现[J].福建电脑,2010(1).[16]张鹏.基于WebService的机场运营信息系统技术架构[J].电子技术与软件工程,2013(15).[17]吴晓英,石磊.指纹考勤机在医院考勤管理中的应用与探讨[J].科技致富向导,2o13(36)[18]Gwo-ChengChao,EmbeddedFingerprintVerificationSystem,IEEEthe200511thInternationalConferenceonParallelandDistributedSystems(ICPADS'05),Vol.2,pp.52-57,2005.[19]Yang-KooKang,Real-TimeFingerprintsRecognitionMechanism-basedDigitalContentsProtectionSystemforInteractionontheWeb,IEEEthe2001PacificRimInternationalSymposiumonDependableComputing(PRDC.01),pp.304-307,2001.[20]YounheeGil,AccessControlSystemwithHighLevelSecurityUsingFingerprints,IEEEthe32ndAppliedImageryPatternRecognitionWorkshop(AIPR’03),pp.238-243,2003.附录A硬件程序#include<reg52.h>#include<intrins.h>#include"24C0x.h"#include"LCD12864.h"#include"ds1302.h"#include"18b20.h"#defineucharunsignedchar#defineuintunsignedint#definebuffer1ID0x01#definebuffer2ID0x02#definequeren0x48#definetuichu0x84#defineshanchu0x82#definechaxun0x18#defineUser1 voidfan();sbitB0=B^0;sbitB7=B^7;sbitk2=P3^7;sbitbeep=P2^4;sbitjidianqi=P2^3;externunsignedchartimes[];externunsignedchartemp_value,xs,fflag;ucharMember=1,sec,mm=1;ucharcodebuffer[User][6]={{"000000"}};uchardz[4];uchartime[4]; ucharmima[6];ucharmimag[6];ucharmimaID[6]={1,2,3,4,5,6};ucharAddress1=20,tempx=20;ucharAddress2=20;uchardataK;uchardataKey;uintPageID;uchardataquerenma=11;ucharsum[2];intsummaf,summas;ucharxdataUserPassword1[6]={0,0,0,0,0,0};//密码ucharxdataUserPassword[7]={0};//密码ucharxdataDSY_BUFFER[16]={0};//缓存voiddelayms(unsignedintz){ unsignedintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidSTC_send_bluetooth(unsignedchara) //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻{ TI=0; SBUF=a; while(TI==0); TI=0;}ucharChack(ucharUser_Number){ ucharflag,i,j=0,temp[6],Address; Address=User_Number*10; for(i=0;i<6;i++) { temp[i]=x24c02_read(Address); delayms(10); Address++; } for(i=0;i<6;i++) { if(temp[i]==UserPassword[i]) flag++;} if(flag==6)flag=1; elseflag=0; returnflag;}ucharPassWord_Chack(){ uchari=0; while(i<User) { if(Chack(i)==1) { Member=i+1; return1; } i++; } return0; }voiddelay(uinttt){uchari;while(tt--){for(i=0;i<125;i++);}}voidUART_Init(){ SCON=0x50;//串口方式1 //REN=1;允许接收 PCON=0x00;//SMOD=0 TMOD=0x21;//定时器1定时方式2 TH1=0xFD;//11.0592MHz模块默认波特率为9600bps TL1=0xFD; TR1=1;//启动定时器}unsignedcharKeycan(void)//按键扫描程序P1.0--P1.3为行线P1.4--P1.7为列线{unsignedcharrcode,ccode;P1=0xF0;//发全0行扫描码,列线输入if((P1&0xF0)!=0xF0)//若有键按下{delay(1);//延时去抖动if((P1&0xF0)!=0xF0){rcode=0xFE;//逐行扫描初值while((rcode&0x10)!=0){P1=rcode;//输出行扫描码if((P1&0xF0)!=0xF0)//本行有键按下{ccode=(P1&0xF0)|0x0F;//do{;} while((P1&0xF0)!=0xF0);//等待键释放return((~rcode)+(~ccode));//返回键编码}elsercode=(rcode<<1)|0x01;//行扫描码左移一位}}}return0;//无键按下,返回值为0}voidKeyDeal(unsignedcharKey){//unsignedcharn;if(Key!=0){ switch(Key) { case0x11:K=1;break; case0x21:K=2;break; case0x41:K=3;break; case0x81:break; case0x12:K=4;break; case0x22:K=5;break; case0x42:K=6;break; case0x82:K=34;break; case0x14:K=7;break; case0x24:K=8;break; case0x44:K=9;break; case0x84:break; case0x18:break; case0x28:K=0;break; case0x48:K=11;break; case0x88:break; default:break; }}}//*************************************//voidSFG_GetEcho() //握手{uchari;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X03;while(TI==0);TI=0;SBUF=0X53;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;summaf=0x57;SBUF=summaf;while(TI==0);TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;}while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; }//***************************************//voidSFG_getimage() //录入指纹图像{uchari;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X03;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;summaf=0x05;SBUF=summaf;while(TI==0);TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;}while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; }voidSFG_genchar(ucharbufferID)//生成特征并存于charbuffer1/2调用后单片机波特率变化{uchari;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X04;while(TI==0);TI=0;SBUF=0X02;while(TI==0);TI=0;SBUF=bufferID;while(TI==0);TI=0;summaf=0x07+bufferID;sum[0]=summaf;sum[1]=summaf>>8;SBUF=sum[1];while(TI==0)TI=0;SBUF=sum[0];while(TI==0)TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;}while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; }voidSFG_fastsearch(ucharbufferID)//搜索指纹返回指纹ID号sum、pagenum>255都会使程序卡{uchari,ID1,ID2;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X08;while(TI==0);TI=0;SBUF=0X1b;while(TI==0);TI=0;SBUF=bufferID;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=180;while(TI==0);TI=0;summaf=9+0x1b+bufferID+180;sum[0]=summaf;sum[1]=summaf>>8;SBUF=sum[1];while(TI==0);TI=0;SBUF=sum[0];while(TI==0);TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;} while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;ID1=SBUF;while(RI==0);RI=0;ID2=SBUF; //接收到的ID号while(RI==0);RI=0;while(RI==0);RI=0;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; //PageID=ID1;PageID=(ID1<<8)+ID2;}voidSFG_enroll() //自动注册模板返回存储ID=录图像+合并生成模板+储存模板{uchari,ID1,ID2;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X03;while(TI==0);TI=0;SBUF=0X10;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;summaf=0x14;SBUF=summaf; //校验和while(TI==0);TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;}while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;ID1=SBUF;while(RI==0);RI=0;ID2=SBUF;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; //PageID=ID1;PageID=(ID1<<8)+ID2;}voidSFG_deletchar(uintpageID)//删除指纹 校验和在2字节的页码处应分高低字节相加{uchari,ID1,ID2;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X07;while(TI==0);TI=0;SBUF=0X0c;while(TI==0);TI=0;ID1=pageID;ID2=pageID>>8;SBUF=ID2;while(TI==0);TI=0;SBUF=ID1;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=1;while(TI==0);TI=0;summaf=0x15+ID1+ID2;sum[0]=summaf;sum[1]=summaf>>8;SBUF=sum[1];while(TI==0);TI=0;SBUF=sum[0];while(TI==0);TI=0;for(i=0;i<9;i++){while(RI==0);RI=0;}while(RI==0);RI=0;querenma=SBUF;while(RI==0);RI=0;sum[1]=SBUF;while(RI==0);RI=0;sum[0]=SBUF;summas=(sum[1]<<8)+sum[0]; }voidSFG_identify() //自动验证指纹录图像+生成特征+搜索{uchari,ID1,ID2;SBUF=0xef;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0XFF;while(TI==0);TI=0;SBUF=0X01;while(TI==0);TI=0;SBUF=0X00;while(TI==0);TI=0;SBUF=0X03;while(TI==0);TI=0;SBUF=0X11;while(TI==0);TI=0;S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧农业无人植保飞机制造技术市场发展现状评估规划研究报告
- 2025-2030智慧农业产业模式物联网技术应用绿色种植产量预报分析
- 2025-2030智慧养老模式创新与适老化产品专卖连锁经营方案指南
- 个人协议书范文
- ercp术后常见并发症的处理
- 2026年中药炮制学实践技能卷及答案(专升本版)
- 2026年不同气候条件下的桥梁耐久性评估
- 2026年过程装备状态监测中的云服务应用
- 2026年未来机械设计的研究前沿
- 园林雕塑基础施工方案
- 2026年温州市瓯海区专职社区工作者公开招聘6人考试参考试题及答案解析
- 2025年安全生产法律法规电视知识竞赛考试卷库附答案
- 2026届江苏省南京市、盐城市高三一模物理卷(含答案)
- 2026年华峰重庆氨纶笔试题及答案
- 2026年糖尿病规范化诊疗指南解读及临床应用课件
- 2026年长治职业技术学院单招职业技能考试题库及答案详解(各地真题)
- 2026年宁夏财经职业技术学院单招职业技能测试题库及1套参考答案详解
- 2025-2030中国低空经济行业运行形势与投融资发展状况监测研究报告
- 仓储货架作业指导书
- 肿瘤科临床研究SOP的受试者招募策略
- 2025-2030中国利口酒行业供需趋势及投资风险研究报告
评论
0/150
提交评论