【《基于单片机的密码锁设计》7300字】_第1页
【《基于单片机的密码锁设计》7300字】_第2页
【《基于单片机的密码锁设计》7300字】_第3页
【《基于单片机的密码锁设计》7300字】_第4页
【《基于单片机的密码锁设计》7300字】_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-4-第1章绪论1.1选题背景及研究意义在旧时代人们想要保守住自己的私人秘密,需要一个私密的空间,往往采用的是找一个无人问津的地方,但是人的足迹是有迹可循的,一旦被人盯上秘密也会随之泄露,保密性微乎其微;其后,随着时代的变迁,各类锁具则顺势而生,虽能在一定的程度上加大保密性能,但还是经常出现秘密泄露事件。在21世纪的今天,鉴于通信发展迅速,作为电子行业需要紧跟时代步伐。而AI智能无疑是最令人延伸出探索欲的领域。AI(ArtificialIntelligence)一直被称作为最前端的智能产品,长年间都在被人们所关注。比如里面的一个小技术——人体指纹仿生技术,指纹是人类手指末梢位于指腹上凹凸不平的皮肤构成的螺旋状图案,是人类人体个性象征之一,其具有鲜明的指向性和特定的唯一性,作为鉴别一个人的身份非常具有代表性和指定性。处于通信发达的时代,指纹无疑是保护自己私密空间的不二之选,由于指纹的唯一性能够有效的确保信息的安全,也被广泛的运用在日常生活中,比如手机、电脑、打卡机、门锁等等。可以从这些地方看出,指纹有很大的发展空间,而且实用性也很广泛,如果不讲究保密性能,台灯、蓝牙耳机等等运用指纹模块也会使得其设备使用变得更加方便、简单快捷。近些年来由于集成半导体电路的飞速发展及国外对国内半导体行业的重压,低成本、高性能的嵌入式芯片逐渐渗透进各行各业的各种设备中。经典嵌入式芯片STC89C52具备成本低、功能强大、物理端口丰富、软件编译简洁等优点使其能广泛应用于各种工业及民用场景中;非特殊领域的指纹识别技术所需的硬件平台需要具备灵活、轻便、低成本等特点,恰好符合STC89C52的应用场景,因此该嵌入式芯片可应用于本设计的指纹加密锁REF_Ref2458\r\h[1]。1.2国内外研究现状随着社会的进步,传统的锁已经不能满足日益增长的安全需求,智能指纹也随之出现。所谓智能指纹其实是一种基于指纹识别技术巧妙的结合了电子信息技术、机械制造技术及智能算法新型指纹识别技术REF_Ref7397\r\h[2]。在我国,目前很多地方都运用到了指纹密码锁,包括:各种门锁、电脑锁,保险库等设备的指纹解锁,指纹密码锁具有极强的安全性和方便性REF_Ref7426\r\h[3]。它的这些优点使得它在日常生活中非常受欢迎,而且在国内的各种研究下带领此行业迈入了智能化,但在国内能掌握指纹识别智能化技术并不广泛。总体来说,国内指纹密码锁虽然普及率相对较高,但指纹识别技术距世界尖端水平依然有一段距离,尤其是智能指纹识别技术需要长足的努力REF_Ref7459\r\h[4]。在海外,美国、德国、日本的电子密码锁在国际电子密码锁市场中占据了主体地位,从市场反响侧映了他们设计的电子密码锁具备高市场接受度,指纹识别准确且识别快速的优点。当前的指纹密码锁市场,已逐步从市场快速膨胀期迈向市场成熟期,因此,指纹密码锁这一锁具市场的新品类的开发方向必将走向性能更强,价格更低这一趋势REF_Ref7485\r\h[5]。1.3本文主要研究内容目前市场上的密码锁种类繁多,琳琅满目。本设计就紧随人们对锁具的各方面需求,考虑经济实用的前提下,核心主控芯片采用成本较低的STC89C52单片机,存储端采用AT24C02芯片,显示端采用LCD12864液晶显示屏,以及矩阵键盘数字密码解锁和AS608识别指纹解锁。数字密码解锁功能将设计一组4*4的矩阵键盘,用户通过按对应数字的按键来达到数字解锁,指纹密码解锁功能则是采用AS608指纹识别模块,用户将已录入的指纹平贴在AS608模块平面上,能够达到本设计中的指纹解锁的设计要求。本设计是数字-指纹密码锁,数字组合密码解锁是通过4*4的矩阵键盘键入,若键入的密码与原始设定的密码完全一致,则该密码锁解锁成功;若键入密码有一位与原设定密码不一致,则显示密码错误;除数字密码解锁外,还设有指纹解锁,利用采集器采集人体指纹特征,将指纹设备识别的指纹与AT24C02中所存储的指纹进行一一对比,若指纹信息匹配完全吻合,则解锁成功;若指纹信息匹配不吻合,则显示无效指纹。本次设计的数字-指纹密码锁能够实现保护用户隐私、个人信息的前提下,成本也合理,符合前期设定各种的预算、指标、要求。第2章系统整体方案2.1系统整体结构本设计分为硬件加软件两部分,其中,硬件平台依托于STC89C52核心控制模块;存储模块采用AT24C02用来存储用户信息;人机交互端口采用LCD12864液晶显示器加4*4阵列薄膜键盘保证高质量的用户体验,除以上三种主要模块外,其附件还有蜂鸣器报警装置、电源模块。通过优化开源的指纹特征识别算法并将其分别注入到AS608指纹识别模块、AT24C02存储模块和矩阵键盘模块,使用户能够实现录入和删除数字密码、多组指纹信息删改等操作,用户能够通过矩阵键盘进行更改密码、密码解锁和上下切换、退格确认等一系列基本操作。2.2硬件设计框架本指纹密码锁主要由STC89C52主控端,AT24C02存储端、矩阵键盘输入端、AS608指纹识别端组成。单片机硬件部分主要由8个模块组成:复位模块、晶振模块、电源模块、按键部分、蜂鸣器报警模块、存储模块、LCD显示模块和指纹识别模块。具体硬件结构框图如2.1所示。通过52单片机控制主控设备中所有的外围设备。复位模块是通过一个按键执行复位操作;晶振模块是为单片机提供单片机正常运行所需要的频率;按键部分是4*4的矩阵按键组,可以进行数字密码解锁、修改密码、管理指纹的录入与删除等操作;电源模块是通过一根的电源线接入,标准供电为5V;蜂鸣器报警模块由蜂鸣器和LED灯组成,解锁正确和错误时起一个警示作用;存储模块主要是存储指纹信息和各按键的功能,以便更好的调用;LCD显示模块主要是显示解锁时各种状态和管理界面,在进入管理界面时能够直观的进行精准的操作。这一系列硬件模块的组成构成的系统,再将单片机拷入对应的软件代码,能够基本实现本系统想要实现的指纹密码功能。图2.1系统结构框图第3章硬件部分3.1STC89C52STC89C52是一款低功率8位CMOS微控制器,它还集成了8位可编程FLASH以及8位CPU。它可以通过液晶显示屏呈现出4K超高清画质,其内部系统不但可以流畅运行,还能兼容美国INTEL公司生产的MSC-51的内部指令系统REF_Ref32373\r\h[6],且该公司对此芯片进行进一步的提升,使得该芯片兼具4K的2EPROM存储,即当用户在使用时发生不可控的状况,如突然断电,此时芯片的内部存储会自动的保存数据,该芯片可以有效地防止数据因断电而丢失,而且其内部存储可以有效地节省外部存储芯片,系统若需要提取数据信息,可以通过C52的内部存储直接获取。无源晶振电路XTAL1和XTAL2两个端口接单片机时钟输入,本设计中采用外部时钟时钟电路为单片机提供基本时序,详情如图3.1所示。日常所用的晶振一般采取1.2~12MHz之间任一频率,甚至有些会取至24MHz及以上,但频率高的同时功耗也会变大,在设计中考虑上述种种因素,晶振采用11.0592MHz,且在Y1的两端并联C1和C3(2*30Pf电容),以此方式对振荡频率产生波动,从而起到频率微调的作用。图3.1晶振电路上电自动复位和开关复位基于复位电路高电平动作实现,电路原理图见3.2。第一种上电自动复位,即当电路通电时,电容C2的特性为其两端电压不会发生突变,其负极板点位会逐渐接近VCC单片机RST引脚与电容负极连接,接地电阻R1右端VCC的高电位,则当前RST引脚被输入了一个高电平,芯片会自动复位。复位动作被触发后电容因其储能作用VCC的直流通路逐步被截断,RST引脚高电平动作结束,芯片开始复位动作完成。第二种复位模式为按下复位按键,当按键被按下的瞬间,电容C2被短路,RST引脚出现高电平动作,单片机识别并作出复位动作,后复位按键弹起电容C2串接入复位电路,但此时RST引脚仍为高电平,因为电容容值为10μF,充电时间约为10ms,所以10ms后C2充电结束,直流通路断路,RST引脚高电平动作消失,单片机复位结束,C2在当前复位模式下起到了缓冲的作用,防止单片机短时间内多次复位,进而发生复位不正确或单片机运行异常等情况。图3.2复位电路完整最小系统结构框图如图3.3所示。图3.3最小系统结构框图3.2LCD12864液晶显示电路设计LCD12864液晶线束模块代号12864为其显示分辨率,即其横向包含128个像素点,纵向含64个像素点,本设计使用的12864液晶显示模块内嵌简体中文字库模型,降低存储模块空间占用;12864液晶显示模块中文字库采取ASCII字符集调用模式,该种调用方式灵活、快捷的更利于操作指令的编译、执行与人机交互端口UI优化REF_Ref8788\r\h[7]。其显示点由列号与行号对应在64*64液晶屏上的所处位置。该设备有512*8比特的显示数据。显示数据调用由栈中的页地址和列地址共同决定。每次调用一个单元中的8个液晶显示位点,这种寻址方式更有助于实现低电压低功耗。LCD12864原理图如图3.4所示。图3.4LCD12864原理图3.3AS608指纹识别模块设计AS608指纹识别模块是一个集成了光路和指纹处理的集成指纹处理模块。内置DSP操作单元,能够快速高效的对指纹进行扫描采集,该指纹模块采用UART串口与单片机相连接。使用指纹解锁时,用户可直接根据通信协议通过简单的UART串口控制模块REF_Ref31039\r\h[8]。AS608模块体积小、功耗低、UART接口简单,广受大家的青睐,被广泛应用在各个场合,该模块在本系统设计的数字-指纹密码锁中运用也很合适。通过UART串口单片机来实现与AS608指纹传感器的数据传输,用户可以通过单片机串口来控制指纹传感器。示意图如下图3.5所示,可以看出AS608模块的工作电压为3.3V,而单片机的系统电源电压为5V,那么需要在电源的引脚上增加二极管来实现降压的作用,二极管的压降一般为0.7~1V,AS608需要3.3V,单片机电源供电5V,即需要增加D4和D5两个二极管,才可以达到指纹传感器的供电标准。图3.5单片机与AS608连接电路3.4AT24C02AT24C02是一个2K比特位串行EEPROM存储器,总存储空间含256字节。芯片存储单元划分为256*8bit,存储单元中的255个作为存储单元使用,余下一个单元作为写入缓冲区。该器件额定电压为1.8~6.0V,且芯片具备数据保护功能。仅在7号引脚接地状态下才能完成写入和读取的动作REF_Ref15531\r\h[9]。高明的是这个存储器使用了CMOS技术从而可以从根本上减少对器件的损耗,不仅如此,这块芯片专门配备有写保护属性,AT24C02进行通信的方式采纳IIC总线接口通信。AT24C02芯片实物图如图3.6所示。图3.6AT24C02芯片实物图AT24C02可用ROM为2Kb,寻址方式分别为芯片寻址和片内子地址寻址。本设计中使用一个AT24C02芯片,A0~A2引脚和WP接GND,保护引脚接地下拉到地,单片机控制SCL和SDA完成数据读写。原理图如3.7所示。图3.7AT24C02电路图3.5矩阵键盘的设计数字解锁方式是通过矩阵键盘键入的,本系统中设计了4x4的矩阵键盘组。为了节约I/O口资源,将16个按键进行排列过后在通过扫描的方式进行确认,仅仅需要8个I/O口,节约了一半的I/O口REF_Ref18431\r\h[10],+5V经过电阻接列线,且把行线、列线分别与单片机I/O口相接,将行线相交接口视为输出端,将列线相交接口视为输入端。在设计矩阵键盘时,行线与列线的相交点通常就是按键来代替,本系统共包含16个按键,不难看出若在系统设计中需要大量的按键时,选择矩阵键盘是最便捷最有效的方式。矩阵键盘电路图如图3.8所示。图3.8矩阵键盘电路图3.6蜂鸣器电路的设计电磁蜂鸣器依赖于电磁线圈与磁铁的相互作用扰动振动膜及外壳发出尖且短促的提示音。当其应用在一个电路中时,振荡器产生音频信号,此时电流通过电磁线圈产生磁场,振动膜在电磁线圈和磁铁的相互作用下周期性地振动和发声REF_Ref19842\r\h[11]。蜂鸣器作为报警部分选取的是5V有源蜂鸣器REF_Ref8253\r\h[12],但鉴于其工作电流较大,导致不能直驱单片机的I/O口,本系统采用8550来对蜂鸣器进行驱动,基极上的R4与单片机的P3.7口串联,当单片机的P3.7引脚输出低电平时,三极管进入导通状态,同时蜂鸣器鸣发出响声;若P3.7引脚输出为高电平,三极管则进入截止状态,同时蜂鸣器将不会发出响声。蜂鸣器电路如下图3.9所示。图3.9蜂鸣器电路图第4章系统软件各部分流程图4.1主函数流程图voidmain()是一个程序的主要核心,主函数在一个完整的程序中是至关重要的。在正式编写程序前,通常会对针对单片机和部分外围电路,实施初始化的操作,只有对器件执行初始化操作后,硬件可以正常运行,变量可以重定向。如果程序未进入死循环,则在完成程序初始化后立即启动程序;如果程序进入死循环,它将连续运行,直到完成某种测试。要格外注意程序编写规范,在对主程序的设计中,要警惕不要将所有的代码写入其中,避免代码冗余过多,不利于修改与查看。应将各个模块的代码进行封装,一段段封装好之后再送入主函数调用,此方法对于修改和查看函数非常方便。具体流程图如下4.1所示。图4.1主函数流程图4.2搜素指纹子程序流程图图4.2是搜素指纹子程序流程图,本设计采用的是AS608指纹识别模块,该模块与单片机之间的通信方式采纳的是UART来实现。若使用AS608指纹模块进行解锁,首先该模块会先采集AS608上平触的指纹信息,其后再将采集到的信息与系统之前已录入的指纹信息进行匹配,最后若两次指纹信息匹配完全吻合则会显示指纹解锁,此时已解锁成功,若两次指纹信息匹配结果不一致则会显示无效指纹,系统将不会进行解锁操作。图4.2搜索指纹子程序流程图4.3显示主函数流程图在LCD12864的液晶显示在程序编写的开始,首先判断按键按下的地址具体是哪一行哪一列,分别得出行和列地址信息后;再通过单片机写入需要显示的地址信息的命令,判断此次显示是否完成,若完成写入需要显示的内容信息后将地址位自动加一,再返回至判断显示是否完成,不断重复循环,若没完成则退出。显示函数流程图如4.3所示。图4.3显示主函数流程图4.4矩阵键盘检测函数流程图本系统设计的是4*4的矩阵键盘组,包含4列列线和4行行线共16个按键,通过锁定列线和行线的某一交叉点来确定被按下按键,该交叉点对应的数值就是需要键入的数字密码。确认列线的方式:在扫描按键前先将输出的行线全都设置为低电平,再逐一判断哪一列出现低电平现象,以此来锁定按下的按键的列。判断按键是否被按下,如果检测到有按键按下,以防误触情况可以经过一个延时程序消抖后,再判断按键是否被真的按下,此后可以对此按键进行赋初值操作;若这些判断中有一个判断是否定的,则程序将会返回0,表示没有按键被按下。确认行线的方式:在确认行线前要将上述的步骤全部执行完毕,且能够锁定某一列为低电平状态。在此基础上继续判断,此行是否有按键被按下,若确认是有按键被按下,则等待松开按键返回按键对应数值即可;若检测到该行没有按键被按下,则向左扫描一位,继续判断是否有按键被按下。直至锁定某一行某一列的交叉点,输出对应数值,达到使用矩阵键盘键入数字密码解锁的功能。矩阵键盘扫描检测函数流程图如4.4所示。图4.4矩阵键盘检测函数流程图

第5章结论本设计主要是实现指纹密码解锁功能,在设计初期由于经验不足,时常发生原理图网络接口错误或者程序代码的错误,经过各种排查,以及求解同学和老师解决了这些初始问题;在中期运用AltiumDesigner20画原理图和PCB时,因为自身对电路板各器件地学习了解不够全面,没能了解到封装存在各种功能尺寸问题,致使第一版电路板实物设计出来由于各器件的封装有多种多样,没有与自己所准备的器件相匹配,导致发厂打出的电路板出现无法使用的问题,只能重新修改与持有器件相匹配的封装,在第二版期间,注意区分了器件的管脚和器件封装的直插与贴片的不同之处,但由于对应注意管脚的性能,只是对了管脚数目,导致第二版功能没有成功显示,最终也设计失败,直到第三版通过不断地检查,结合了之前出现过的问题,还向老师寻求了帮助,进行确认检查无误之后,打出第三个电路板,将打出的电路板进行焊接检查完成后,下载好程序后,一次测试便成功了,展现出正确的显示成果;在后期不断地对设计出的实物进行测试,验证本设计想要达到的各种效果。通过对问题的一步步检查及修改,克服了种种难题,最终顺利地呈现出正确地显示成果。在这次设计中遇到的问题对我来说即是难题也是挑战,从面对问题时地困惑到解决问题时豁然开朗,让我对知识也有了更加透彻地学习,以及知道了在各个方面自身存在的问题和不足之处。对于理论和实践的结合也有了更深层次的学习和经验,对于我以后的相关工作也有了很大的帮助。由于一次次的失败,更加了解器件内部的原理,对于画图方面学到了要仔细辨别需要的封装,不能一概而论。通过接触实物设计和软件相结合也让我深刻认识到学习知识不能仅靠了解熟悉理论,没有实际操作,理论的知识也只是一句空话,在面对问题时,常常感到困难,出现难以解决的问题,还是要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论