




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
页1绪论1.1课题研究背景和意义按照目前的社会和科技的发展速度,传统的安防防盗系统将面临重大挑战。密码存在容易忘记,容易被偷用的问题,在日常生活中我们在各个地方都要用到身份验证,特别是在安全需求日益增长的科技智能化社会当中,我们希望身份验证方式快捷简便。人们通过研究最近出现的生物识别技术,对每个人都存在不同的生理特征来对其身份进行验证,解决了让人们头疼的身份识别的问题。现如今看来很多比较先进的指纹识别的产品逐步出现在大众市场当中。指纹识别技术是在各个识别领域当中较为优秀和火热的存在,在当下的发展中逐渐成熟REF_Ref8327\w\h[1]。目前来说指纹是最传统、最先进的生物识别方法,具有较强的稳定性。从出生到死亡,一个人的指纹结构总体分布的特征不会什么有显微的变化。指纹很明显是唯一的,世界上有这么多人口但是依旧不可能找到两个指纹一样的人,从各个方面来看易用性、安全性、成熟度、成本等多方面来说指纹技术都是优先的选择。从现在的趋势来说指纹识别技术会有着很好的发展,它将带领我们向一个新时代出发,在现代日常生活与工作环境中的使用范围已日益广泛。指纹是人体手指上的表层皮肤,但指纹当中所拥有的数据量缺超乎我们的想象。比较这些指纹中所拥有的数据信息并不是一件容易的事情,很多操作都是通过模糊匹配算法完成的。以我们现在的技术水平可以制造出比较小巧的指纹识别传感器了,而现如今科学技术的飞速进步使我们能够在单片机上比较指纹。指纹识别技术在各种领域的技术中,相对来说是中国目前发展的较为完整的生物指纹识别技术。而近年来随着指纹识别产品在各个产业中的大量开始使用,再加上人类对智能与安全特性的强烈渴望,为指纹锁的市场扩张提供了有利条件,由此也可看出,指纹锁市场将迎来又一次全面改造安防体系的历史机会。如今通过单片机来控制各个元件的技术逐步发展了起来,它凭借着优秀的数据处理能力和低廉的成本的优点,在各种电子产品领域都有着一席位置。通过所学知识设计了由单片机控制的指纹识别系统。1.2国内外研究现状利用生物特征来甄别身份信息在未来漫长的过程中缓解安全压力的有力保证。现在,生物特征比较好实现的一般分为指纹识别和面部识别。由于与其他几种生物识别技术存在差异,无法确立统一的技术基准,所以最近预计基于指纹识别技术的产品预计将在私人市场上发布。因此,指纹识别产品将集中于大多数国家生物多样性技术的开发和投资。指纹识别产品的飞速发展一方面是因为对价格低廉的传感设备的需求和其传感设备设备的快速发展,以及比对算法的研究逐渐成熟。另一方面,近几年来指纹识别技术逐步出现在大众的视线,逐渐在各个领域涉及的高科技产品之一。在二十世纪末具备指纹识别的产品就已经诞生了。他会把指纹信息收集整合成一个可以识别出来的信息模板,然后通过模板中的信息特征来判断是否是同一个,这种方法一直使用到近年前REF_Ref8683\w\h[2]。目前来说大部分先进的指纹识别技术都集中在德国和韩国,而国内的大部分都是以组装为主,缺乏独立技术工艺水平相对较低。外国品牌品牌纷纷登陆中国占领指纹锁奢侈品市场。而国外苹果、微软、IBM、韩国的LG电子都纷纷发布了自己指纹识别技术的产品,指纹技术产业作为新型的先进智能产品,是技术上无法突破的前沿科技。在我国从2000年后指纹识别技术就的到了飞速发展。目前,杭州锦江科技、深圳市爱迪尔、吉林鸿达等几家国际指纹锁制造商,已经步入了国内市场的新市场发展阶段,不过,这些企业的业务范围还不能做到最大,因为一般的指纹锁厂家都是采用直卖的方式供应商品。国产指纹锁产品只能占据低价市场因为缺乏技术水平和工艺,现在指纹锁市场基本已经完全开放,指纹锁进入了快速发展期。如今国内的发展涌现出许多的厂商,例如深圳市的迪安杰科技有限公司,他们致力于生物识别领域,提供高质量的指纹传感器和优秀的指纹识别算法服务,他们的产品广泛应用众多行业。1.3本文内容安排该系统设计介绍了基于51单片机的指纹密码锁设计与实现情况。围绕系统设计对本文内容进行安排,主要由以下六个部分内容组成:第1章绪论。介绍了指纹识别密码锁设计研究的意义和背景状况,同时也介绍了该设计在国内外研究的状况,然后说明本文的内容安排框架。第2章系统分析。首先对指纹识别密码锁系统功能的需求进行介绍,然后对系统设计是否可以实现进行了分析,包括系统实现的成本、系统的操作合不合理、系统实现所用的技术。第3章总体设计。简要概述系统功能,然后通过系统框架图和系统流程图并进行分析。第4章系统详细设计。讲述了系统开发所需环境和各个模块的设计,例如介绍单片机的最小系统、指纹传感模块的实现、矩阵按键的选型和实现、显示模块的实现、存储模块和继电器电磁锁模块的设计。第5章系统测试。介绍了测试方法的选择和测试的意义,使用测试用例测试各个模块功能是否正常工作。第6章总结和展望。对全文进行概括讲述系统的功能实现,对系统需要优化的方向以及对系统未来的发展进行总结。2需求可行性分析2.1需求分析目前的社会迫切需要高效和可靠的识别系统来识别人类身份。传统方式类似于密码这种它容易破解和伪造,不能完全符合现在社会经济活动和社会安全的需要。我们大家几乎都有许多的验证自己身份的密码,但是密码存在很容易被遗忘和被盗的问题。像门锁钥匙、车钥匙等各种钥匙还存在易丢失明显的缺点。从信息和安全性能的角度来看,它无法满足现在的要求。随着信息技术的发展,传统的物理密码系统变得越来越脆弱,但我们无法避免这个难题。在社会生活的过程中我们经常要进行登录验证个人信息,特别是在大数据社会中,人们希望信息安全得以保障,希望认证方法也变得简单快速。人们通过研究指纹识别技术,对不同的生理特征来对其身份进行验证,解决了让人们头疼的身份识别的问题。由此可以看出指纹密码锁的设计是符和目前的需求的,下表2-1为系统的功能需求。表2-1系统功能需求2.2可行性分析2.2.1技术可行性分析指纹识别技术具有更加稳定高效的优势。近年来虽然人脸识别技术也快速发展抢占生物识别应用领域,但是并没有因此降低指纹识别在行业的渗透率及普及化,指纹识别技术凭借高识别率、短耗时等优势被广泛使用于各个领域当中。匹配算法技术的逐渐成熟,使得指纹识别技术变得逐步完善。单片机的控制性能和高可靠性的优点在电子产品控制中成为首要的选择对象。还有其易扩展性,形成各种应用规模的计算机控制系统。具有低功耗的优势被使用于各个领域当中。单片机相当于一台小型的计算机,它具备逻辑运算的能力,可以对单片机内部的存储器进行传输、清零、检测、复位等数据进行展开运算解决。RAM存储可以进行灵活运用,让单片机开发工程师带来巨大的便利。在实际开发上采用了C语言为主要开发语言,它能够通过直接访问的物理地址对硬件设备直接实现操作,C语言还具有底层跨平台的特性,在C语言标准库环境下编写的C语言程序代码可以在不同的计算机操作系统下编译。因此具有灵活简单、可跨平台、类型丰富多样等优点。而用C语言作为开发语言在技术上已经非常成熟了。针对以上所述技术点,确认满足开发该系统的技术需要。2.2.2操作可行性分析本设计按键可以控制系统执行操作,在系统操作的时候具有良好的人机交互,而且操作界面友好,有液晶显示提示相关信息。系统操作简单易上手,软件配置操作也比较简单。针对以上所述,说明了本系统在操作上比较符合设计的要求。2.2.3经济可行性分析本设计所采用硬件模块元器件满足系统的基本运行,没有追求过高的性能和高精度要求,而且符合大众市场价格低廉对个人的经济能力要求不高,所以系统硬件成本低能满足设计要求。本系统开发所用软件在目前的基本配置的计算机上都可以顺利地运行。针对以上所述,说明了本系统在实现的成本上不是很高,满足系统的设计要求。2.3本章小结本章分析了系统的需求,说明了系统的设计应该具备的功能,从系统实现的成本、系统的操作合不合理、系统实现所用的技术来证明说明系统开发是能够实现的。3系统总体设计3.1系统功能描述本设计是用51系列单片机作为主控模块的指纹密码锁,通过指纹识别对比来实现开锁的功能,具有安全便捷性。指纹比对不成功,指示灯不会变化,继电器断开不工作,电磁锁处于关闭状态无法通过。指纹识别成功的情况下,发光二极管亮起同时继电器工作带动电磁锁开关可以通过。进入管理员界面中,将获得指纹采集、指纹清除、紧急解锁和密码修正的权限。所执行的操作都会在LCD12864显示屏上显示有关的提示信息。该系统刚开始需要提前输入指纹,通过指纹传感器收集相应的指纹图像,将收集到的指纹图像转化生成特征文件,然后合成模板保存。指纹特征信息和指纹的序列号由光电转换后保存在存储器中。通过输入相应的指令,模块就可以快速在指定位置将数据传输完成。当需要门打开时,它会自动检测指纹传感器上是否有指纹信息的输入。当指纹模块接收到数据时,它会自动搜索指纹库中是否存在已经录入的指纹数据。在LCD12864显示屏上显示会有相关的匹配提示,如果存在单片机则控制继电器接通进而控制电磁锁打开、发光二极管被点亮以提示锁已打开。3.2系统总体框架系统总体框架是指按照设计工作的任务需要,对系统关键部件和主要元件参数所要进行的合理估算,通过认真调研、分析并比较确定的主要元件型式,使设备部件之间通过一个简单可靠的接口电路,连接成一个相对完善的结构体系。设计系统必须明确总体的设计条件,先制定原理框图和流程图,并说明基本原理,然后综合分析系统的可靠性,再确定控制系统的总体配置。通过参阅各种资料,进行结合考虑下。使用STC89C52单片机作为控制单元,选用带字库的液晶屏作为显示界面,存储模块使用的是AT24C02,指纹模块使用的是FM608系列,使用17个微动开关组成4*4矩阵键盘和复位按键,采用12MHz的晶体振荡器作为振荡源。下图3-1为系统总体框图。图3-1系统总体框图3.3系统流程程序的执行过程:首先会把各个模块设为默认状态,接下来可以直接进行指纹识别了。系统会甄别指纹是否已经录入,如果没有录入则会提示没有该指纹信息,然后重新检测有无指纹录入,如果已经录有改指纹,继电器会工作发光二极管会发亮提示锁已打开。同时系统会检测按键A有没有按键被按下,按下则会提示输入密码,然后判断密码是否正确,密码错误的话则会重新回到检测状态,判断正确的话就进入功能选择界面。在这个界面中会检测按键,如果按键为1则是添加指纹信息。指纹传感器采集两次指纹信息存储并且产生对应的序号。如果按键为2则是删除相关已经采集好的指纹信息。输入想要删除的指纹编号系统会判断是否正确,删除完成后会提示相应信息。如果按键为3则是应急开锁。按下后继电器会控制电磁锁开启发光二极管会发亮提示锁已打开,成功后提示按任意键返回。如果按键为4则是修改登录管理员的密码。输入想要修改的密码两次,然后会辨别输入是否相同,密码相同的话则会更改完成按任意键返回,密码不相同的话则会提示重新输入回到输入密码界面重新检测。按复位键则会回到各个模块初始化。下图3-2为程序执行流程图。图3-2程序执行流程图3.4本章小结本章对系统的设计目标进行了介绍,讲述了硬件的选择,然后绘制整个系统的总体框架图和程序运行流程图。总体设计是基本前提,为接下来的设计工作做好了铺垫。4系统详细设计4.1系统开发环境(1)系统硬件开发工具采用AltiumDesigner通常称AD。AD作为备受推崇的Protel系列的延续,受到国内学校和企业电子电路开发商的高度评价,这个软件的可用性和耐用性受到电子设计师的高度评价。AD承载了以前Protel的大部分优秀特性,增加了许多优秀的改进,扩充了一些现有的板级设计接口,并具有一些FPGA和SOPC设计理念,便于开发人员进行开发以及电路设计。能够很好的运用这个软件的话,电路设计的质量和效率大大提高REF_Ref8807\w\h[3]。(2)系统软件设计使用的是KeilVision4。该软件是由德国KeilSoftware公司推出的一款软件开发版本REF_Ref8873\w\h[4],该软件能够对大部分51系列的单片机进行编程。它可以编译C语言类型,在功能结构上都有优势,而且代码生成响应速度快。Keil可以使用C语言来开发这在可读性与可维护性上更吸引开发者。该软件具有非常多的库函数,还有操作丰富的编译工具,还支持多窗口的显示可以任意拖动。该软件比较容易上手,使用起来可以有效降低操作时间来提升效率。Keil软件的使用流程:①首先通过点击“projectNewuVisionProject”来创建一个工程,单片机版本选择与STC89C52兼容的AT89C52。②新建文本点击保存后,将文件命名后缀为“.c”,然后在Source选项上点右键,选择"SourceGroup1",把保存的文件添加进入。③点击菜单“Project--OptionsforTarget”后在Xtal框中输入波特率,然后在Output选项框中选择hexfile,使得工程编译可以产生hex文件。最后在之前建好的文本中写代码即可。(3)程序的传输到单片机需要用到STC-ISP这款软件,将调试完成后的代码文件传输至单片机中。该软件的操作简单便捷,是程序烧录的不二选择。STC-ISP软件使用流程:①将烧录器连接电脑后首先选择STC89C52单片机,然后点击扫描选择所连接的COM口,最后将波特率设置为9600。②选择需要传输的十六进制文件,点击下载按钮,然后接着给单片机通电。使用时要注意的是,点击完按钮后再给单片机通电,如果顺序反过来会传输失败。下图4-1为STC-ISP烧录界面。图4-1STC-ISP烧录界面4.2单片机及最小系统4.2.1单片机STC89C52介绍单片机是一个紧凑而完备的综合功能的微机控制器,主要广泛应用在工业管理领域。单片机将各种驱动电路都集成在同一模块上,模块中集成的电路越多,所能实现的操作也更多。而单片机又简称为单片式微控制器,是把计算机功能整合在晶片中,它的尺寸小、重量轻、售价也比较低廉,为教学、应用和科学研究提供了便利的条件REF_Ref9039\w\h[5]。MCS-51单片机,是由美国INTEL公司设计制造的各种单片机的统称。其中的8051是第一个也是最具标志性的产品,而这个系列的其他单片机也都是在8051上有增减改进起来的。在家用电器,工业控制等领域较为常见。STC89C52,是新一代快速低耗能的单片机,具有在线编程的功能,而且价格成本低。STC89C52型应用了具有八位CPU和系统内可编程闪存功能的单晶体片技术,为各种单片机控制系统提供了非常灵活和高效的处理措施,它的指令程序与以前的8051系列的嵌入式单片机基本相同REF_Ref9105\w\h[6]。下图4-2为单片机引脚说明。图4-2STC89C52引脚图VCC(40引脚):接电源GND(20引脚):接地。端口P0~P2:8位双向输入输出口。端口P3:8位双向输入输出口。下表为STC89C52单片机P3口的第二功能。表4-1STC89C52P3口的第二功能4.2.2外部晶振设计微控制器系统离不开晶体振荡器,也叫做晶振。晶振通过时钟频率来实现对单片机指令的操作。单片机的指令执行的快或者慢都会受到它的影响,频率越低,单片机执行命令的速度越慢,反之亦然。晶振频率选择一般在1.2MHz和12MHz的区间。晶振一般是通用的,这可以让系统内所有组件同步协调。晶振一般和反馈电路组合起来,通过接收外部输入的信号,然后控制系统内部振荡的频率和相位,这种电路一般被称为锁相环电路。如果元器件有不一样的时钟频率需求的时候,就可以利用锁相环电路来实现。STC89C52单片机的连接方式是选用12MHz的晶振,频率在1.2MHz至12MHz之间符合设计的要求。外部晶体振荡器电路,是通过两个电容器和一个晶振组合而成。值得注意的是,晶体振荡器和微控制器之间的距离不应太远,否则可能会导致晶体振荡器频率不稳定。本系统选用两个30pF的电容器。单片机中有逆变放大器XTAL1和XTAL2,通过两个逆变放大器与晶振相连,然后再一边连接一个电容来实现。下图4-3为晶振电路的连接图。图4-3晶振电路连接图4.2.3复位电路设计系统复位通常是为了解决在运行过程中有其他干扰因素导致程序不稳定,一般都是将电路状态恢复到默认状态下。当单片机刚刚启动时,需要将系统中的各个部分恢复到默认状态下。复位电路一般有按键复位和上电复位的形式。上电复位:实现是通过连接到电源的时候,经过电容持续的拉高RST引脚来实现的。上电复位可以保护电路,如果电源状态有问题就会自动复位。电阻选择10K的,电容选用10μF的。按键复位:在RST引脚连接一个微动开关然后在连接到VCC。电容与按键为并排连接状态,电容选用10μF的。按键导通后会使得电容器电流流失,然后通过电源对电容充电,使得复位引脚被拉高来实现复位功能,下图4-4为连接图。图4-4复位电路连接图4.2.4电源电路设计电源模块是整个系统的基础,本系统使用的是DC电源座子作为电源输入口,它通过220V的电源适配器可以将电压转化成5V的直流电给系统提供电源REF_Ref9180\w\h[7]。电源接口1连接自锁开关的1端口,电源接口2端口连接地极,自锁开关2端口接VCC。通过自锁开关来控制整个系统的开闭状态,自锁开关相比微动开关来说的好处就是,当自锁开关按下去之后状态就会固定住不会回弹,只有再次按下去之后才会弹回。在电源旁在接一个发光二极管来判断系统是否已经开启,电源接发光二极管后再接一个1K阻值的电阻然后接到地线。下图4-5为电源电路的连接。图4-5电源电路4.3指纹模块设计4.3.1指纹识别技术简介指纹识别技术的基本原理与其他生物特征指纹识别技术的基本原理相似。指纹识别技术是在目前来说算是比较完整,而且应用范围比较宽广的一种,这是因为指纹识别技术具有安全性能高,操作简单等优势。指纹识别的基本原理通常可以分为三个部分,指纹收集和指纹信息提取还有指纹比对原理。指纹收集的原理。指纹采样原理可以通过各种指纹传感模块对指纹信息进行采集。采集的图像会受到指纹不同情况影响,由于指纹的脊和谷会存在不同的状态,一个是向上突起的一个是向下凹陷的,但是它们都暴露在相同的光下时,它们所反馈回来的光照信息是不一样的。当接触在同一个面上时,在该平面上所对应的感应也是有所区别的。指纹的不同特性主要出现在脊谷温度不同、电导率不同、反射光波长不同的情况下。利用几何特征和生物特征之间的差异,采集人体指纹并在计算机上生成指纹图像。指纹信息提取的原理。通过对采集到的指纹进行详情分析,因为指纹特征信息存在于指纹的脊和谷当中,通过二值化细化把特征不一样的指纹信息变成相同宽度和相同灰度的细脊线,方便用来特征提取,二值化就是把指纹图像转化为黑白的二值图,对指纹图像划分为小块对其进行计算,指纹一般是通过指纹按压的方法采集的,各种外界环境等条件都会导致指纹图像成像不理想。因此为了更好得到指纹特征对指纹采集也是非常重要的。指纹比对的原理。一般来说,指纹识别中主要有分叉点和断点,通过从二值化的图像中提取特征,在模板中提取出断点和分叉点REF_Ref9258\w\h[8]。指纹纹路并没有完全连贯的而是会出现断点和分叉点,这些就叫做特征点,而正是因为这些特征点可以作为指纹匹配的标准。指纹采集时的会有不同程度的干扰会导致伪特征点、噪声等影响因素。通过匹配算法将已经录入的指纹和现在要对比的指纹进行比较,是通过比较他们的数字化特征值来进行对比的。4.3.2指纹模块指令指纹录入的详细的操作步骤:首先收集指纹,然后生成特征文件,接着合成模板,最后对指纹进行存储。指纹对比的详细的操作步骤:采集指纹,搜索指纹库,指纹匹配。通过指纹传感中的CMOS芯片收集指纹图像后,进行简单处理生成两个信息记录零和一,并将其存储在指纹库中。指纹模块进入比对模式时,先收集指纹信息,然后和指纹库中已经存入的指纹信息进行比较REF_Ref9314\w\h[9]。可以验证它是否存在,如果对比成功则显示指纹的序号。可以使用单片机来实现对指纹信息的注册解锁了。主要为如下表4-2的几个指令。表4-2指纹命令表一般指纹的功能所使用的命令有录入指纹图像、生成特征、搜索指纹、合成模板、删除模板这几个。通过应答包所对应的指令码来判断具体情况。对于录入指纹图像来说。如果为00H则表示指纹信息录入成功;如果为01H则表示接收包出现错误;如果为02H则表示指纹传感器没有检测到指纹信息。如果为03H则表示指纹录入失败。对于生成特征来说。如果为00H则表示成功生成图像特征。如果该值为01H则在接收数据包时发生错误。如果为06H则表示指纹图像混合且不清晰,特征生成失败。对于搜索指纹来说。如果为00H则表示检测到库中存在指纹。如果该值为01H,则在接收数据包时发生错误。如果为09H则表示在库中没有检测到指纹。对于合成模板来说。如果为00H则表示合成成功,如果该值为01H则在接收数据包时发生错误。如果该值为1eH则说明合成失败。对于删除模板来说。如果为00H则表示删除模板成功。如果该值为01H则在接收数据包时发生错误。如果该值为10H则说明删除失败。4.3.3指纹通信协议说明指纹模块的动作都是利用单片机的串口传输来实现的。开始通过串口向指纹传感模块发出指令,然后接收指纹传感模块反馈数据回单片机。随后由单片机再对数据信息进行加工,判断指令是否已进行。指纹模块与单片机之间的通信是异步的,UART是一种半双工串行通信接口REF_Ref9382\w\h[10]。信息通过数据包传输。当指纹模块接收到指令时,指令的操作状态和结果使用应答包反馈给MCU。反馈包括参数和随后可能出现的数据包。微控制器只能在接收到来自指纹模块的回复数据包后检测指纹模块的访问状态和命令运行状态。回复数据包的内容通常包括一个必须存在的单字节验证码,以及所有可能的返回参数。只能执行一条指令,如果有其他指令正在执行的时候,模块不执行其他指令,而是要等待前面一条指令的执行完成。4.3.4指纹模块接口电路设计下表为ZFM60系列的指纹模块引脚功能:表4-3指纹识别模块引脚功能电源VCC与指纹传感器1端口相连,P3.7口与指纹传感器2端口相连,电源VCC与指纹传感器3端口相连,P3.0口与指纹传感器4端口相连,P3.1口与指纹传感器5端口相连,指纹传感器6端口接地极。下图4-6为指纹模块电路。图4-6指纹模块接口图4.3.5指纹模块程序设计指纹程序设计主要为以下几个部分。分为了指纹模版的采集存储、指纹搜索识别程序设计和指纹删除程序设计。(1)指纹模版的采集存储首先进行指纹图像收集,接着会判断有没有采集成功,没有成功的话就再次采集指纹图像,然后把收集到的指纹信息进行转化,将生成的文件存储到缓冲区当中。接着就会在库中搜索有没有存在这个指纹信息,如果不存在的话就合成文件储存起来。最后会返回所录入的指纹编号。下图4-7为指纹采集存储的流程图。图4-7指纹采集存储流程图指纹模板采集主要代码程序如下表4-4所示。表4-4指纹模板采集主要代码(2)指纹搜索识别程序设计首先对收集到的指纹信息加以整合,转化成为特征文件,接着就搜索库中是否存在已经录入的指纹信息。将读取到的指纹信息送到单片机中,单片机会对接收到的指纹信息判别。指纹比对方法有两种,一种是一对一,另一种是一对多,与特定的进行比较属于一对一,而同时与多个模板比较的话则是一对多称为指纹搜索。对比之后会返回对比结果成功或者失败,如果比对成功,则有单片机给继电器置一个低电平导通发光二极管发亮提示,反之则提示没有搜索到该指纹信息需要重新采集。指纹比对程序流程如图4-8所示:图4-8指纹对比流程图指纹对比主要代码程序如下表4-5所示。表4-5指纹对比主要代码(3)指纹删除程序设计通过输入一个想要删除的指纹序号,然后会搜索库中是否存在对应序号的指纹,如果存在的话就确认删除,如果不存在的话就重新输入新的指纹序号再次检测。指纹删除流程如图4-9所示。图4-9指纹删除流程图指纹删除主要实现代码如下表4-6所示。表4-6指纹删除主要实现代码4.3按键模块设计4.3.1按键电路设计按键是否按下表现在电平状态的不同,要想确定按键,可以通过测试输入输出的电平状态来判断。通过加入消抖保护来确保按键一次一次有序的按不会多个一起反应。消除抖动一般有硬件、软件二种不同的方式。可以通过将电路设计成在没有替他外部干扰的信号情况下,电路保持原来的状态不改变,以达到实现硬件消除抖动的效果,这种一般称为双稳态电路。软消除抖动则是通过程序延时实现的REF_Ref9483\w\h[11],按下后先延时检测按键是否已经闭合,以此减少震动和干扰的影响。一般按键设计主要有独立的和矩阵型的。独立按键需要每个按键都要接一条输入线,这样测量按键状态的话比较方便只要知道输入线的电平状态就可以了。独立式键盘的话电路设计比较简单方便,但是它所占的输入输出口多比较浪费资源。所以独立按键不适合按键多和操作复杂一点的场合。考虑到本次系统使用的按键情况所以使用了矩阵键盘。其中R1-R4作为列线,C1-C4作为行线。C1-C4行线接的是单片机中的P1.0~P1.3口,R1-R4列线接的是单片机中的P1.4~P1.7口。下图4-10为按键电路图。图4-10按键电路下图4-11为按键功能图,数字键盘用于密码的输入,通过按键A可以切换到管理员模式,按键B可以在密码输入时出现错误后进行删除输错的密码,按键D为确认按键。图4-11按键功能图4.3.1按键程序设计用户需要对系统输入信息控制,而按键则是系统与用户传递信息的桥梁。按键识别过程如下:(1)想要判断是否有按键按下。将列线和行线分别输出高电平和低电平,即将P1置为0xF0。通过扫描所有列线上的电压来判断,如果列线上的高电平变为了低电平,就说明有按键按下,反之则说明没有按键按下。(2)当检测到有按键按下后,通过延时进行消除抖动,然后需要确定哪个被按下,通过设置电平状态来判断保存它们的电平状态来计算键值。(3)一旦确定了键位,下一步就是键位上的按键分配一个值。通过计算法来为按键进行编号。以按键5为例,将P1初始化置为0xF0,当按键5被按下时,此时P1口的高4位电平值为1101,对应列值应该是0xD0,然后将P1置为0x0F,再次读取P1口外部电平状态,此时低4位应为1101,即行值为0x0D,将两次的电平状态按位或运算得0xDDREF_Ref9558\w\h[12]。按键模块的工作流程分析如下图4-12所示。图4-12键盘程序流程图按键扫描的程序如下表4-7所示。表4-7按键扫描的程序主要实现代码4.4液晶显示模块设计4.4.1LCD12864简介液晶是一类高分子材料,由于其独特的特点,在很早的时候就得到了应用。液晶显示屏是由光电推动液晶分子形成点、线、平面,通过背光一起组成画面。液晶体积小、功耗低、现实操作简单。可以形成良好的界面让人们更加直观的看到所显示的内容。它可以显示多种组合的的汉字例,如像16*16型或者8*4型。如果需要显示字符的话,可以通过其中的缓存器DDRAM来写入代码实现,将想要显示的数据把其对应的字符编码写入缓存器当中即可。其实就是发送一个字节数据,硬件会自动解析你所需要显示的字是哪一种,然后会把数据显示到屏幕上。显示部分主要完成显示交互界面的功能,在各个操作都会有相应的提示,本次设计选用带字库的LCD12864液晶显示模块REF_Ref9624\w\h[13]。4.4.2LCD12864指令说明表4-8基本操作时序RS为低电平的时候是写指令操作,RS为高电平的时候是写数据操作。RW为低电平的时候是执行写操作的。在完成读写操作的时候需要对读写状态进行检测,要保证STA7位值为零才可以。但是事实上来说,单片机执行周期的速度没有显示器的响应速度快,所以通过简单延时就可以完成不需要进行读写检测。表4-9基本指令集显示部分主要完成显示交互界面的功能。显示程序需要完成初始化,不然将会出现异常情况。在接收到命令之前单片机必须验证显示模块是否空闲,如果处于空闲状态则根据指令数据进行显示。通过读取BF标志位状态,只有BF值为零的时候然后才能进行新的指令,如果没有检查的话则需要等待一个较长的时间,因为要等待前面一个指令进行完成才可以下一个。4.4.3LCD12864显示接口电路设计下表4-10是LCD12864的引脚说明。表4-10接口信号说明模块中引脚1接电源地,电源VCC与1引脚相连,引脚3接可调电阻用于调节LCD显示亮度,RS口与显示模块的4引脚相连,RW口与显示模块的5引脚相连,使能口与显示模块6引脚相连,引脚15接地极,电源VCC与19脚相连,引脚20接地极,其他引脚置空不接。 下图4-13为显示电路连接图。图4-13显示电路连接图4.4.4LCD12864显示程序设计显示模块的作用是一个交互界面,可以通过指令来控制LCD显示想要的内容,先发送指令再发送数据。首先初始化清屏后会展示初始界面,通过写入命令在想要的位置显示,然后在通过写入数据,在想要显示的位置显示对应的数据信息。下图4-14为显示程序的流程图。图4-14显示程序流程图LCD显示的主要代码如下所示:初始化清屏,显示模块在开始都需要进行初始化,根据指令表可以知道所需要实现功能对应的命令。写入0x30说明使用的是基本指令操作,写入0x03则说明地址归位,写入0x0c说明将整体的显示打开了并且关闭掉光标的显示,写入0x01则说明清屏,写入0x06则说明进入设定点,将光标向右移动。显示初始化主要实现代码如下表4-11所示。表4-11显示初始化主要实现代码写命令,定义了WriteCommand函数,通过RS的状态来判断,为低电平的时候是写指令操作。写入命令主要实现代码如下表4-12所示。表4-12写命令主要实现代码写数据,定义了WriteData函数通过RS的状态来判断,为高电平的时候是写数据操作。写入数据主要实现代码如下表4-13所示。表4-13写数据主要实现代码显示字符串,该函数有三个参数,ROW为行坐标,COL为纵坐标,*PUTS为需要显示的文字。显示字符串主要实现代码如下表4-14所示。表4-14显示字符串主要实现代码4.5AT24C02存储模块设计4.5.1AT24C02存储模块电路设计AT24C02当中有着256个八位字节,使用CMOS技术可以降低耗能。而且有断电数据保护的功能,并且支持数据的双向传输。器件使用寿命长擦出次数可达10000次,存储数据时间超过100年。下表4-15为存储模块的引脚功能。表4-15AT24C02模块引脚功能下图为4-15为AT24C02与单片机的接口连接图引脚1~4接的都是电源地,引脚5(SDA)接的是单片机的P2.4口,引脚6(SCL)接的是单片机的P2.3口,引脚7(WP)接的是单片机的P2.2口,引脚8接的是电源。图4-15AT24C02引脚连接图4.5.2AT24C02存储模块程序设计AT24C02采用的是串行通信,串行器件不但占有了极少的资源和I/O线路,并且体积也大为减小,同时具备了较好的抗干扰能力、耗电量少、数据安全性高和支持在线编程等优点。由于STC89C52单片机内部没有集成IIC总线,所以用到了AT24C02模块,AT24C02使用的是IIC通信REF_Ref9712\w\h[14]。首先定义了start函数,启动IIC总线。拉高时钟数据口然后在由高到低的跳变,起始信号结束后开始下一个数据传送。数据需要在时钟线上是高电平的时候维持电平状态不变,只有在时钟线变成低电平的时候才能改变数据线的状态。总线起始函数主要实现代码如下表4-16所示。表4-16起始函数实现代码定义了stop函数用来停止总线,开始将时钟电平拉低,准备进入停止信号阶段同时将数据口也拉低,延时然后再将时钟拉高进入停止信号,将数据口拉高后停止信号结束。总线停止函数主要实现代码如下表4-17所示。表4-17停止函数实现代码实现了基本IIC通讯函数后,就可对AT24C02进行操作,主要是写入数据和读取数据两个函数。芯片寻址可以在内部读写,可任意在00~FF地址写入我们需要保存的数据。写入数据顺序为:首先会发出开始信号,然后IIC总线开启,然后向对方发送所在地址,然后再发送器件内部的存储地址,写入数据到器件中后,最后总线停止。下图4-16为写入数据流程图:图4-16写入数据流程图写入数据主要代码如下所示,该函数有两个变量一个存储地址一个是所要写入的值。写入数据函数主要实现代码如下表4-18所示。表4-18写入数据函数实现代码读取数据顺序为:首先会发出开始信号,然后IIC总线开启,然后向对方发送所在地址,然后再发送器件内部的存储地址。IIC总线再次开启应答,接着向器件发送所在地址。从器件读出数据后返回所读取的数据。下图4-17为读取数据流程图:图4-17读取数据流程图读取数据主要代码如下所示,该函数参数是存储地址,返回值为字符型。将数据读取完成后存入i变量中然后返回。读取数据函数主要实现代码如下表4-19所示。表4-19读取数据函数实现代码4.6继电器电磁锁模块继电器的操作原理是,当继电器被设置为低电平时,电磁铁被连接到内部并且操作电路被连接。如果继电器处于高电平,关闭后电磁铁无磁性,弹簧引出磁铁,分离工作电路。换言之,继电器的操作原理是利用电磁结构作为工作电路的接通断开控制。利用继电器的操作原理的控制电路的优点是可以利用较低的操作电压来限制大电流、远距离限制和半自动控制。继电器由单片机或微机控制,电磁锁由继电器控制。该模块具备耗能小,控制能力强,安全系数高等优点REF_Ref9767\w\h[15]。下图4-18为继电器电磁锁与单片机的接口连接图。图4-18继电器连接图4.7本章小结本章首先阐述了最小系统的设计。然后介绍了软件开发环境,进行指纹模块的简介和指令的使用以及电路设计,再介绍按键选型设计进行介绍需要在按键上增加延时来消抖以降低误差。然后对液晶显示模块进行介绍,接着对存储模块以及与继电器电磁锁模块的基本连接。5系统整体测试5.1系统测试5.1.1测试目的系统测试是开发中必不可少的流程。不论是组装产生的错误还在系统功能上面的错误都能够通过测试发现问题,测试是将已经完成的设计功能和预期的需求进行比较测试,可以发现成品和预期之间的差异所在,可以更好的调整解决问题。系统测试目的是验证开发结果是否合理,功能模块是否正常运行,整体项目是否符合规范,尽可能的减少错误率,保证了系统的质量。5.1.2测试方法测试的方法有很多种,例如从算法细节和系统功能情况来说分为黑盒测试、白盒测试和灰盒测试。动态测试和静态测试是通过程序执行的状况来区分的REF_Ref9823\w\h[16]。本次是通过传统的黑盒测试在系统上进行,以确保所有功能的正常使用。黑盒测试,测试系统模块功能是否都能工作。在测试中,标准程序被当成一个看不清内部的黑匣子。在不考虑程序结构和内存特性的前提下。它只检查程序功能如何依照使用规则来正确运作,并且检查程序如何能够正确接收系统数据并获取正确的输入及输出讯号。5.2整体流程整体操作步骤为:(1)连接电源按下自锁开关后,电源发光二极管工作,显示提示按下指纹进行开锁。(2)将手指放到指纹传感器上采集。如果放入的指纹跟指纹库中的比对成功的话,继电器会工作发光二极管会发亮电磁锁工作,成功后提示按任意键返回。如果放入的指纹跟指纹库中的比对失败的话,则会提示没有该指纹信息,然后重新检测有无指纹录入。(3)进入到管理员界面中则需要按下按键A,然后输入正确的密码才可进入。(4)成功进入管理员界面后。通过按下按键1可以增加指纹信息,将手指放到指纹传感模块上即可进行收集保存。需要注意的是采集指纹信息时,通过两次同样指纹录入才可。想要继续采集指纹信息的话保持上述步骤即可。(5)通过按下按键2,可以删除指纹信息。显示会提示相关信息,把对应的指纹信息编号输入,之后按下确认键即可删除。(6)通过按下按键3,可以对系统进行紧急开锁,通常是在特殊情况下或者是指纹不好用的情况下使用。(7)通过按下按键4可以对登录管理员账号密码的修改,修改的时候需要输入两次密码,并且两次输入要一样才能修改完成。5.3测试用例(1)登入管理员界面测试表5-1登入管理员界面测试表下图为部分用例测试结果:图5-1登入管理员界面测试-序号1测试结果图5-2登入管理员界面测试-序号3测试结果(2)指纹信息录入测试表5-2指纹信息录入测试表 下图为部分用例测试结果:图5-3指纹信息录入测试-序号1测试结果图5-4指纹信息录入测试-序号4测试结果(3)指纹识别测试表5-3指纹识别测试表下图为部分用例测试结果:图5-5指纹识别测试-序号1测试结果(4)指纹删除测试 表5-4指纹删除测试表下图为部分用例测试结果:图5-6指纹删除测试-序号1测试结果(5)管理员密码修改测试表5-5管理员密码修改测试表下图为部分用例测试结果:图5-7管理员密码修改测试-序号1测试结果图5-8管理员密码修改测试-序号3测试结果5.4本章小结本节介绍了测试的目的和方法,讲述了整体流程,对功能模块指纹识别、指纹录入、指纹、指纹删除、密码修改进行了黑盒测试,经过一系列测试,发现测试结果基本符合预期效果。6总结与展望6.1总结本系统是指纹密码锁,使用指纹传感器完成一个简单的个人信息验证系统。系统功能基本齐全。该系统液晶显示界面与用户有良好的交互,显示相关信息提示用户的操作。在管理员模式下系统实现了增删指纹、应急解锁和修改登录密码的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年法学概论考试的法学新生代挑战及试题及答案
- 互联网协议基础试题及答案
- 校招国企会计笔试题目及答案
- 校招产品经理面试题目及答案
- 基于数位技术的医疗设备维修与管理
- 校招:质量工程师面试试题及答案
- 数据中台的构建与应用试题及答案
- 劳动法实施中的问题与试题及答案
- 医疗行业供应量数字化的挑战与解决方案
- 校招:会计工程师面试真题及答案
- 安徽省2024年中考英语模拟试卷(含答案)4
- 2022年山东威海中考满分作文《竟然如此简单》
- 水利工程水闸泵站施工组织设计
- 第七届江西省大学生金相技能大赛知识竞赛单选题题库附有答案
- 创新方法论智慧树知到期末考试答案章节答案2024年西安理工大学
- JTS-215-2018码头结构施工规范
- 山东省日照市东港区2023-2024学年八年级下学期期末数学试题
- 湖北省武汉市武昌区2023-2024学年八年级下学期期末数学试题
- 工程造价咨询的协调配合及服务措施
- 2022-2023学年广东省深圳市高二(下)期末数学试卷含答案
- 急诊科护士岗位说明书
评论
0/150
提交评论