




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./基于51单片机指纹电子密码锁设计摘要随着人民生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性低,无法满足人们的需求。随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码锁控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码锁控制的密码量少,安全性能差的缺点。在传统的身份认证中,我们往往使用密码加密法,但是这种方法只是"防君子不防小人"。在高明的黑客眼里,由几个字符组成的密码脆弱得不堪一击。现在,科技的发展让我们有了新的选择——生物识别技术。将生物识别技术应用于笔记本、门锁等方面,可以对文件、财产起保护作用,并且可以进行身份识别。生物识别技术的发展主要起始于指纹研究,它亦是目前应用最为广泛的生物识别技术。本设计开发了一款基于单片机的指纹识别电子密码锁系统。该系统以STC89C52单片机作为模块核心,通过串口通信控制ZFM-60指纹模块实现录取指纹并存储指纹数据,并通过HS12864-15C液晶显示比对流程及比对结果,辅以直流继电器与发光二极管模拟开锁的动作。本系统具有体积小、性价比高、传输速度快、适合家庭及单位使用。关键词:单片机,密码锁,指纹识别51singlefingerprint-basedelectroniccodelockdesignABSTRACTWiththeimprovementofpeople'slivingstandards,howtoachievefamilysecurityissuehasbecomeparticularlyprominent,thetraditionalmechanicallocksbecauseofitssimplestructure,lowsecurity,cannotmeetpeople'sneeds.AselectronicproductstointelligentminiaturizedandthecontinuousdevelopmentofSCMhasbecometheelectronicproductresearchanddevelopmentpreferredcontroller,theelectroniclockcontrolsystemwithanti-theftalarmfunctiongraduallyreplacethetraditionalmechanicalcontrolsystemswithcode,overcomepasswordless,poorsafetyperformanceshortcomingsofmechanicallockcontrol.Intraditionalidentity,wetendtousepasswordencryptionmethod,butthismethodonly"anti-anti-villainisnotagentleman."Intheeyesofcleverhackers,passwordconsistsofseveralcharactersfragiletoovulnerable.Now,thedevelopmentofscienceandtechnologysothatwehaveanewoption-biometrics.Thebiometrictechnologyusedinnotebook,doorlocks,etc.,theycanfileforprotectionofproperty,andcanbeidentifiable.biometrictechnologyinfingerprintprimaryoriginresearch,itisalsothemostwidelyusedbiometrictechnology.ThesystemdesignoffingerprintrecognitionelectronpasswordlockbasedonSingle-chipmicroprocessorisdevelopedinthethesis.ThesystemSTC89C52MCUasthecoremodule,throughtheserialcommunicationcontrolZFM-60fingerprintmodulefortakingfingerprintsandstorefingerprintdataandliquidcrystaldisplaybyHS12864-15Cratiothanontheprocessesandresults,supportedbysimulationofDCrelaysandLEDsunlockaction.Thesystemissmall,cost-effective,andfastandsuitableforfamiliesandunits.KeyWords:Single-chipmicroprocessor,password,Fingerprintrecognition.目录TOC\o"1-3"\f\h\z\u第一章绪论11.1课题研究意义11.2国内外指纹密码锁发展历史及现状31.3本文主要内容4第二章整体设计方案52.1方案比较与论证52.2系统总体设计72.2.1系统功能描述7系统总体框架72.3本章小节8第三章系统硬件设计93.1单片机及最小系统93.1.1STC89C52单片机介绍9外部晶振设计12复位电路设计133.2指纹模块设计15指纹识别技术简介153.2.2指纹模块简介163.2.3指纹模块指令183.2.4指纹模块接口电路设计213.3按键电路设计213.4液晶显示模块设计233.4.1FYD12864工作流程243.4.2FYD12864指令说明243.4.3FYD12864液晶显示接口电路设计293.5本章小节31第四章系统软件设计324.1系统工作过程分析324.2主程序流程图334.3键盘程序流程设计354.4LCD显示模块程序流程设计354.5指纹识别程序设计364.5.1指纹模块通讯协议说明364.5.2指纹模版的采集存储384.5.3指纹比对程序设计394.6Keil编程404.7本章小结41第五章实物制作与调试425.1电路的焊接425.2程序的烧写445.3小灯、继电器的调试455.4液晶的调试455.5指纹模块、按键的调试465.6本章小结47总结48参考文献49附录一50附录二51英文原文56中文翻译65.第一章绪论我们今天的工作生活中,很多场合需要身份验证。而基于传统的标志的身份认证技术由于受到证件伪造以及密码破解等手段的威胁,逐渐表现得有些不足。如何保护自己的重要文件,如何保证自己的隐私不被泄露?在传统的身份验证下,我们倾向于使用密码加密方法,但这种方法"只是防得住君子,防不住小人"。在高明黑客的眼中,密码由几个字符脆弱得不堪一击。现在,科学技术的发展,使我们有了新的选择-生物识别技术。在笔记本,门锁等加上生物识别的技术,它们可以对文件财产进行保护,并且是高安全性,高效率的。生物识别技术是基于对人的外貌,声音和对其它生物特征身份验证的科学解决方案,现有的生物识别技术,包括指纹识别技术一般,掌纹识别,视网膜识别,虹膜识别,脸部识别技术,语音识别技术和手写识别技术[1]。生物识别技术的主要优点是:1,减少,杜绝假冒身份,确认真实身份;2,降低管理成本,免去了人工身份认证过程;3,人性化,减少或消除使用卡,钥匙或密码等问题。指纹是研究生物特征识别技术的起源,它也是应用最广泛的生物识别技术。指纹识别技术的发展依靠于现代电子集成制造技术和快速可靠的算法的研究。虽然指纹是人体皮肤的一小部分,但其中所包含的数据信息却大到我们难以想象。对这些包含的数据信息对比不是一个简单的问题,而是使用模糊匹配算法,加以大量的操作。现代电子集成制造技术使我们能够制造相对小的指纹图像读取装置,而在计算速度迅速发展的今天,使在单片机上进行两个指纹的对比运算成为可能。此外,匹配算法的可靠性也在不断提高,使得指纹识别技术越来越成熟[2]。1.1课题研究意义随着社会的发展和技术的进步,传统的安全防盗系统面临极大的挑战。长久以来,安防系统验证身份的方法是验证一个人是否持有有效的信物,如照片、密码、钥匙、磁卡和IC卡等。因此从本质上来看,这种方法验证的是该人持有的某种"物",而不是验证该人本身。只要"物"的有效性得到确认,则持有该"物"的人的身份也就随之得到确认。这种通过"物"来确认人的身份的办法存在的漏洞是显而易见的:"物"的丢失或出错都会导致合法的人无法被认证,并且各种信物容易被伪造、破译。在网络化时代的今天,我们每个人都拥有大量的认证密码,比如开机密码、邮箱密码、银行密码、论坛登陆密码等等;密码作为身份识别的标志已被广泛采用。密码容易被遗忘,也有被人窃取的可能,无论是在智能化还是安全性能方面都已经不能满足需求,现在的各种钥匙,如门锁钥匙,汽车钥匙,保险柜钥匙等也如同密码一样存在显而易见的漏洞。这些传统的安全系统所采用的方式,随着社会的发展,其安全性越来越脆弱不堪一击。但是我们不能回避这个尴尬的问题,我们的生活中随时都需要进行个人身份的确认和权限的认定,尤其是在信息社会,人们对于安全性的要求越来越高,同时也希望认证的方式简单快速。为了解决这一存在已久的问题,人们把目光转向了近年来兴起的生物识别技术,希望能借助人体的生理特征或行为动作来进行身份识别。这样就可以不必携带大串钥匙,也不用费心去记各种密码。生物特征和钥匙、密码相比具有唯一性,不可复制性,例如指纹,专家推论以全球60亿人口计算,300年内都不会有两个相同的指纹出现。以电子商务、电子银行的安全认证为例,目前在电子商务中经常出现他人假冒当事人的身份,如果通过生物特征进行认证,就可有效防止此类事件的发生。另外,网络、数据库和关键文件等的安全控制,机密计算机的登陆认证,银行ATM、POS终端等的安全认证,蜂窝电话,PDA的使用认证等等,都可以依靠生物特征来认证。可见,生物特征识别不但有可观的经济效益,还有不可估量的国家信息安全效益。1997年比尔•盖茨曾这样预言:"生物识别技术即利用人的生理特征,如指纹、虹膜等来识别个人的身份,将成为未来几年IT产业的重要革新。,指纹识别技术在生物识别技术中相对来看是发展的最成熟的识别技术,指纹锁则是指纹识别技术的代表作品,指纹锁在当今安防系统中应运而生成为继机械锁、密码锁、感应锁之后另一代门锁的代表,单体指纹代替钥匙或者密码成为开锁工具,大大降低了安防系统的潜在安全隐患,主要是因为指纹的独特生理附属性,在一段比较长的历史时期内避免了遗失、被盗、被复制的隐患,因此目前看来指纹锁几乎完美的解决了传统门锁存在的问题,但是一把合格的指纹锁,须采用国际领先水平的智能芯片和高标准的安装材料,这就决定了其刚性成本很高,同时由于拥有极高的科技附加值,指纹锁市场价格普遍比较昂贵,近年来指纹识别产品在各个行业的大规模开始应用,以及人们对于智能化和安全性能的追求为指纹锁的市场拓展创造了有利条件,因此可以预见,指纹锁将迎来一个改变安防系统的历史机遇。现代社会越来越需要高效,可靠的身份识别系统。可分离人身份的传统方式,如口令,密码,身份。可以进行假冒,伪造,盗窃,或者破译,不能完全满足现代社会经济活动和社会安全的需要。作为最传统和最先进的生物鉴定方法,指纹具有很强的相对稳定性。从六个月胎儿完全形成指纹到死后尸体腐烂,指纹结构,整体分布的统计特性并没有显著的改变,显然指纹具有其唯一性。至今仍然无法找到两个人有相同的指纹,甚至是同卵双胞胎都是不一样的指纹。从易用性,安全性,成熟度和成本以及其他方面综合比较,指纹识别技术将成为未来人的生理特征识别的主流技术。自动指纹识别技术创建了一个个人身份识别的新时代,指纹识别的应用使我们生活更加安全,方便[5]。以单片机为控制器的技术已经发展的非常成熟,因为它的控制性能和高可靠性的优点,电子产品与单片机控制是分不开的,如电饭煲,洗衣机,汽车等都需要微处理器控制。学习单片机的基础知识后,我们需要在实践中把所学知识组织起来,在现实生活中应用它,所以我联系指纹识别技术和单片机的原理与应用选择了基于单片机的指纹识别系统这个课题,我希望我的设计可以完成简单的身份认证,给身份认证提供方便。1.2国内外指纹密码锁发展历史及现状生物识别技术在传统安防系统面临尴尬的时候,给人们带来了希望,并且在今后一个很长的历史时期都将是缓解了安防压力的有力保障,生物识别技术主要包括指纹识别、人脸识别、掌形识别、指静脉识别、红膜识别、视网膜识别、声音识别等,由于各种生物识别技术的差异,只有基于指纹识别技术的产品有希望在近几年大规模的投入民用的市场,因此指纹识别产品将是世界各国在生物识别技术领域发展和投入的重点。一方面,指纹识别产品的快速发展得益于低价位取像设备的引入及其飞速发展,以及可靠的比对算法的研究发展,另一方面,指纹识别技术和其他的很多技术一样,也是从专用走向公用,逐渐成为人们关注的前沿高科技之一,而现在俨然已经成为了各种高科技产品的标识。苹果公司计划推出带有指纹登陆模块的手机,微软公司推出了可单独操作的指纹辨认器;IBM开始出售附有指纹辨认器的手提电脑;韩国LG电子公司也推出了一种通过指纹启动的手机。但是必须指出的是指纹科技产业作为新兴的高科技智能产业,其技术上存在难以逾越的高度,迄今为止,全球指纹科技产品也刚刚处于起步阶段,国内市场上还没有产生真正意义上的指纹科技产品强势品牌,目前在中国市场上已经有一些指纹锁厂家进入市场开发阶段,如XX锦江科技、新加坡玺玛克、XX爱迪尔和XX鸿达等,但这些公司的全国性业务还没有完全做开,一般的指纹锁厂家都是通过直销方式为政府机关、金融系统提供产品。目前世界上指纹锁主要以德国与韩国为代表,无论是在技术还是工艺方面都占据着优势,而国内的岭南锁系主要是做组合安装,自主技术和工艺水平偏低。国外的指纹锁品牌借助北京奥运会登陆中国,强势的占据了指纹锁的高端市场,而国内技术和工艺偏低的指纹锁产品只是艰难的占据着低端市场,因此和国外品牌的利润相比相距甚远,传统的门锁需要新一代的锁来更替,在这样巨大的市场需求下,国内许多企业纷纷研制开发指纹安防产品,然而经过最初几年的市场突围,指纹锁却一直没有大规模的普及应用。众多厂家倒在了市场引导阶段,成为指纹锁市场开拓大军的先烈。而现在指纹锁市场已经基本被打开,指纹锁将迎来一个快速发展的时期。1.3本文主要内容基于指纹识别的电子锁系统设计主要由单片机、指纹模块、电子锁、液晶显示屏、ADC键盘、时钟几个部分构成,围绕指纹锁为核心功能设计的一个系统,在第二章中对设计方案的选择作重点介绍。第三章介绍系统硬件电路设计,第四章介绍系统软件设计,第五章介绍实物制作与调试。第二章整体设计方案基于指纹识别的电子锁系统是针对以指纹图像采集、识别为核心而开发出的系统。系统会控制指纹模块搜索是否有手指放上,一旦感应到有手指,就立即采集指纹图像,并将采集到的图像转化成特征并存储下来。通过比对该特征和模版特征来控制是否开锁。该系统利用人体指纹各异性和不变性,为用户提供加密手段,使用时只需用户将手指放在指纹传感器的采集窗口上,即可完成采集任务,操作十分方便快捷。系统的液晶显示屏可以显示出指纹模块采集、转化、合并、存储、比对各个流程的结果,系统另外还有指纹模版的存入功能,用户可以随意存入或者删除指纹模块中的模版,只要指纹模块中有该用户的指纹模版,该用户就可以通过指纹开锁。2.1方案比较与论证方案一:采用数字电路控制使用数字锁电路的好处是设计简单。以74L112双JK触发器构造的数字逻辑电路作为控制核心的密码锁,一共有16个用户输入键,其中只有12有效的密码按键。,另一种是干扰按钮,如果按下干扰按钮键盘输入电路会自动清零,以前输入的密码无效,需要重新输入:电路报警触点接通三次,电路将锁定键盘10秒,以防止他人非法操作。电路有两大部分组成:备用电源〔UPS和密码锁电路,其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码检测、执行电路、开锁电路、报警电路、键盘输入次数锁定电路。其原理方框图如图2-1所示图2-1数字密码锁方案方案二:以单片机为核心的控制方案首先,设备可灵活编程:一是编程过程中可以根据自己的设计要求编写程序为自己的设计,可以通过下载的方式将根据设计编写的程序写入设备,如果你想更换程序,就可以把以前输入的程序擦拭后,自己将程序重写下载写入到设备,这样可以同时使用户节约成本和提高安全性。其次是在单片上丰富灵活的I/O端口,这些端口可以添加多个组件,以增加其功能用来实现的其他机械锁不可能完成的任务。因为可以加温度显示,时间显示,甚至通过I/O端口添加远程控制功能,这些都可以通过添加各种组件来完成。但是如果在其他机械锁中,完成这些功能,需要加入额外的专用组件。最终控制的准确性,对所有的锁来说准确性是最重要的,因为它是保证安全性的前提,如果精度不足够高的话,就很难得到适当的安全保障,单片机的准确性是比较不错的。单片机为核心的控制方案不仅可以实现基本锁定功能,可以添加一些额外的功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大程度上扩展功能,而且还可以方便的对系统进行升级所以我们采用以单片机为核心的控制方案。2.2系统总体设计2.2.1系统功能描述本系统是根据指纹采集,识别模块开发出的指纹识别电子密码锁系统。该系统使用一个搜索手指指纹模块,一旦搜索到手指,立即采集手指指纹图像,并且将所收集的图像以数据形式发送。它利用人类指纹各向异性和不变性,为用户提供加密。只需把你的手指平放在指纹采集仪的采集窗口上完成指纹采集,操作十分方便。其主要功能是通过液晶显示屏显示出了各个过程和指纹对比结果。采集指纹图像之前,指纹模块必须检测是否在传感器表面上出现手指,所以应该有这种指纹录入的功能。简单的描述本次设计的功能即使用指纹模块检测、录入指纹,将比对的数据显示在液晶屏幕上。本系统拥有一次最多录入三个指纹的能力该系统的主要功能有以下几个方面:1.录入指纹:系统预先要有录入指纹的功能,即将个人的指纹通过指纹采集器采集用户指纹的特征信息。2.合成指纹模板并存储:通过光电转换后,将指纹特征值和对应的ID号存储到存储器中。上位机只要有上传指纹的命令,模块可以立即将数据传送到指定位置。3.搜索指纹库比对指纹:当有指纹录入时,模块会响应上位机指令搜索指纹库比对指纹,同时液晶显示比对结果,继电器动作、发光二极管亮。2.2.2系统总体框架系统的总体框架是指根据设计任务要求,对系统所需元件、设备参数进行必要的计算,通过认真研究、分析、比较选定设备型号,再将设备、元件通过可靠的接口电路联系起来构成一个完整的系统。在系统的整体方案确定之前,先要明确设计要求,然后对系统硬件、软件进行设计,其中包括绘制原理框图、电路图,对原理进行必要说明,综合考虑系统的性能和稳定性要求,以保证所设计的系统达到预期的要求。通过查阅大量的文献资料、综合分析考虑。主控芯片选用STC89C51单片机。系统总体框图如图2-2所示图2-2系统总体框架图2.3本章小节本章开头分别分析了采用数字电路控制和采用单片机控制的优缺点。根据总体设计原则,最终确定本系统采用单片机控制的方案。在采用单片机控制方案确定后,本章又给出了该系统的总体设计。并简单的对系统功能进行了描述,最后给出了系统的总体框架图。本章是本设计的前提,为接下来的工作打下了基础。第三章系统硬件设计系统的硬件电路设计主要是根据系统整体框图来具体的设计各个部分的电路,主要包括STC89C52单片机外围电路设计、指纹模块ZFM-60电路、ADC键盘电路、液晶FYD12864电路几部分。3.1单片机及最小系统3.1.1STC89C52单片机介绍单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器〔CPU、随机存取存储器〔RAM、只读存储器〔ROM、输入/输出端口〔I/0等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。现在可以说单片机是百花齐放的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,它们各具特色,互成互补,为单片机的应用提供广阔的天地[6]。纵观单片机的发展过程,可以预示单片机的发展趋势。MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS〔互补金属氧化物半导体工艺。80C51就采用了HMOS〔即高密度金属氧化物半导体工艺和CHMOS〔互补高密度金属氧化物半导体工艺。现在常规的单片机普遍都是将中央处理器〔CPU、随机存取数据存储〔RAM、只读程序存储器〔ROM、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW〔脉宽调制电路、WDT〔看门狗、有些单片机将LCD〔液晶驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。[7]STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。工作电压:5.5V~3.3V〔5V单片机/3.8V~2.0V〔3V单片机工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口〔32个,复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。ISP〔在系统可编程/IAP〔在应用可编程,无需专用编程器,无需专用仿真器,可通过串口〔RXD/P3.0,TXD/P3.1直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒通用异步串行口〔UART,还可用定时器软件实现多个UART工作温度范围:-40~+85℃〔工业级/0~75℃〔商业级PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4mA~7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备下图3-1为STC89C52RC引脚功能说明。图3-1STC89C52引脚图VCC〔40引脚:电源电压VSS〔20引脚:接地P0口:为8位准双向I/O接口,它的每一位都可以分别定义为输入线或输出线〔作为输入时,口锁存器必须置1,可启动4个TTL负载。P1口:为8位准双向I/O接口,它的每一位都可以分别定义为输入线或输出线〔作为输入时,口锁存器必须置1,可启动4个TTL负载。P2口:为8位准双向I/O接口,当它作为I/O接口使用时,可直接连接外部I/O设备;在接有片外存储器或扩展I/O且寻址范围超过256字节时,P2口可用做高8位的地址总线。P3口:为8位准双向I/O接口,还可以将每一位用于第二功能,第二功能的定义见表3-1。表3-1STC89C52P3口的第二功能端口功能第二功能P3.0RXD〔串行输入口P3.1TXD〔串行输入口P3.2INT/0〔外中断0P3.3INT/1〔外中断1P3.4T0〔定时/计数器0P3.5T0〔定时/计数器1P3.6外部数据存储器写选通P3.7外部数据存储器读选通XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。本设计的主程序主要由液晶显示、通讯子按键程序组成。主程序的工作流程描述如下:首先初始化各种硬件功能模块进行初始化。包括开机液晶显示、键盘扫描、指纹模块建立通信。3.1.2外部晶振设计单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器〔VCO。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡[8]。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。STC89C52的内部有一个用于构成振荡器的高增益反相放大器,通过XTAL1,XTAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使其构成自激振荡器,电容的值具有微调的作用,我们取30pF,具体的接法如图3-2外部晶振电路。图3-2外部晶振电路STC89C52的工作频率范围在0~24MHz。我们选用的是11.0592MHz的晶振,振荡周期约为1μs机器周期约为0.1μs,所以这个晶振可以满足这个系统的要求。并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到信号。3.1.3复位电路设计单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值[9]。单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位,当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由按键复位和上电复位两部分组成。〔1上电复位:STC89系列单片机为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10KΩ和10μF。〔2按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。本系统采用的复位电路如图3-3所示。单片机在上电瞬间,RC电路充电,RST引脚端出现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效复位。其中电容选10uF、电阻选10K。图3-3复位电路3.2指纹模块设计指纹识别技术简介指纹识别技术的原理和其他生物识别技术的原理类似。它是使用指纹特征对个体身份进行分辨和识别。指纹识别技术是所有生物识别技术中最成熟的,也是应用最广泛的。这主要是因为使用指纹识别对用户来说非常简单,而且指纹识别准确率很高。严格地说,指纹识别的原理包括指纹采集原理、指纹特征提取原理和指纹特征匹配原理三大部分[3]。指纹采集原理是基于指纹或生理特性,通过各种指纹传感技术来显示出他的特征,并将指纹图案用数字化表示。由于指纹脊和谷的不同的几何特征,主要表现为脊是突起,谷是凹陷的,所以当暴露于光,反射光的强度是不同的。当接触于平面上,形成在平面压力是不同的。在另一方面,由于指纹的脊和谷的不同的物理特性,主要表现为:脊和谷的温度不同,其导电性也是不同的,他们反馈的波长就不相同。根据这些几何特征,生理特征的不同,把人的指纹采集到计算机系统中形成一个指纹图象。指纹特征分析原理是通过对指纹图案的整体特征和细节特征进行提取,鉴别。理想的指纹图像是一幅黑白相间的二值图像。但是由于指纹通常是用按压的方式得到的,因此,油墨、纸张、手指的状况以及皮肤的变形等原因都会导致指纹图像不理想。另外,通过扫描仪或者摄像机进行数字化的时候,由于光照的影响,也会引入各种噪声。这些因素都使灰度图像不能直接用来匹配。因此,有必要选择合适的特征来描述指纹征来描述指纹[4]。通常采用的结构特征有2种层次:1全局特征。所描述的是指纹的全局纹路结构,如图3-4所示,利用计算机处理时具体划分为:弓型、环型、螺旋型。其他的指纹图案都基于这3种基本图案。图3-4指纹基本纹路图案2局部特征。断点和分叉是最常用的指纹局部结构特征,也称为细节特征。采用这种特征的一个例子是细节—坐标模型,也就是使用指纹的细节点及其坐标和其他一些特征来描述指纹。对于指纹身份鉴定,特别是对现场的模糊指纹进行认定的时候所使用的信息是细节特征点,如图3-5中的小桥、三角点、分叉点、端点和环。图3-5指纹图像人们根据纹路的局部结构特征共定义了150多种细节特征,如果同时使用所有的这些特征,将很难自动而且迅速地从指纹图像中提取并且区分他们。通常,自动指纹鉴定系统只使用其中2种主要的特征,即分叉点和断点。其他细节特征都可以用他们的组合来表示。例如小桥是由2个端点组成的,而环是由2个分叉点组成的。指纹特征值匹配原理是对指纹图案的整体特征和细节特征按模式识别的原理进行比对匹配。匹配是在已经登记指纹与当前需要验证的指纹之间进行的。匹配操作不是对两个指纹图像做比较,而是将已经数字化的指纹特征值进行匹配。3.2.2指纹模块简介指纹模块里面主要是DSP芯片,型号为AS606,加上外面的CMOS芯片,CMOS芯片主要是对指纹进行"照相",生成指纹特征,如下图所示就是一个指纹模板,录入两次这样的指纹特征就能生成一个指纹模板。具体的工作过程是:扫描指纹〔录入图像、生成特征、合成模板〔建立一个指纹库文件,成功录入一个指纹。图3-6指纹模版指纹模板就是"照一次相",将指纹模块里面的CMOS芯片采集一次指纹信息,然后进行模糊处理生成0和1两种记录信息,存入指纹模块的FLASH芯片里面。当切换到识别模式的时候,指纹模块就会先让CMOS芯片采集一次指纹,然后和FLASH芯片的数据进行对比。看是不是存在,如果存在就能返回是几号指纹。这样我们就能通过单片机或者电脑进行指纹识别与登记了。具体指纹模块介绍如下:此指纹模块型号是:ZFM60,此模块上里面包含了:1、光学头2、通信连接线3、DSP芯片4、稳压芯片5、FLASH芯片6、CMSO传感器等部件组成。主要技术指标:供电电压:DC3.8~7.0V背光颜色:绿色亮灯方式:长亮/闪烁供电电流:工作电流:<65mA峰值电流:<95mA指纹图像录入时间:<0.5秒窗口面积:14.5×19.4mm匹配方式:比对方式〔1:1搜索方式〔1:N特征文件:256字节模板文件:512字节存储容量:1000枚安全等级:3级〔从低到高:1、2、3、4、5认假率<FAR>:<0.001%〔安全等级为3时拒真率<FRR>:<1.0%〔安全等级为3时搜索时间:<1.0秒〔1:500时,均值上位机接口:UART〔TTL逻辑电平通讯波特率<UART>:〔9600×Nbps其中N=1~12〔默认值N=6,即57600bps3.2.3指纹模块指令进行指纹模块的操作是通过单片机的串口发送与接收命令完成的。我们先通过串口给指纹模块发送命令,然后等待指纹模块传回数据。再通过单片机进行数据的处理,从而判断命令有没有执行。主要为以下几条命令。1开机的时候进行模块握手,从而判断模块是不是连接正常。命令如下:验证口令:指令包格式:2bytes4bytes1byte2bytes1byte4bytes2bytesXX模块地址包标识包长度指令码口令校验和0xEF01Xxxx01H07H13HPasswordSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H表示口令验证正确;确认码=01H表示收包有错;确认码=13H表示口令不正确;2生成指纹模板需要进行如下四个个命令:录入图像、生成特征、合成指纹模板、存储指纹模板。录入指纹图像指令:指令包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度指令码校验和0xEF01Xxxx01H03H01HSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H表示录入成功;确认码=01H表示收包有错;确认码=02H表示传感器上无手指;确认码=03H表示录入不成功;图像生成特征Img2Tz指令:指令包格式:2bytes4bytes1byte2bytes1byte1byte2bytesXX模块地址包标识包长度指令码缓冲区号校验和0xEF01Xxxx01H04H02HBufferIDSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H表示生成特征成功;确认码=01H表示收包有错;确认码=06H表示指纹图像太乱而生不成特征;确认码=07H表示指纹图像正常,但特征点太少而生不成特征;确认码=15H表示图像缓冲区内没有有效原始图而生不成图像;特征合成模板RegMode1指令:功能说明:将CharBuffer1与CharBuffer2中的特征文件合成特征模板。指令包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度指令码校验和0xEF01Xxxx01H03H05HSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H表示合并成功;确认码=01H表示收包有错;确认码=0aH表示合并失败〔两枚指纹不属于同一手指;存储模板Store指令:指令包格式:2bytes4bytes1byte2bytes1byte1byte2bytes2bytesXX模块地址包标识包长度指令码缓冲区号位置号校验和0xEF01XXXX01H06H06HBufferIDPageIDSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytesXX模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H表示储存成功;确认码=01H表示收包有错;经过以上四个步骤与命令,我们就录入了一个指纹,重复以上步骤,我们可以再录入其它指纹。3指纹识别是先转换到识别模式,然后不断的探测是不是有指纹出现在光学采集头上。如果有则扫描指纹,与库里面的指纹进行比对,如果是就读出是几号指纹。模块会自动探测是不是有指纹,如果有则发送下面的命令:搜索指纹Search指令:指令包格式:2bytes4bytes1byte2bytes1byte1byte2bytes2bytes2bytesXX模块地址包标识包长度指令码缓冲区号参数参数校验和0xEF01Xxxx01H08H04HIDStarPagePageNumSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytes2bytes2bytesXX模块地址包标识包长度确认码页码得分校验和0xEF01Xxxx07H07HxxHSUM注:确认码=00H表示搜索到;确认码=09H表示没有搜索;如果搜索到就返回相应的指纹号,如果没有就会返回0。3.2.4指纹模块接口电路设计ZFM60系列独立式指纹识别模块引脚功能:模块中引脚1与电源相连,引脚2接单片机的RXD端,引脚3接单片机的TXD端,引脚4悬空,引脚5接地。表3-2如下:表3-2指纹识别模块引脚功能引脚号名称类型功能描述1Vinin电源正输入端2TDout串行数据输出。TTL逻辑电平3RDin串行数据输入。TTL逻辑电平4GND-信号地。内部与电源地连接指纹模块电路如图3-7所示图3-7指纹模块接口图3.3按键电路设计按键的闭合与否反应在电压上就是呈现出高电平或低电平,如果高电平表示断开,那么低电平则表示闭合,通过电平的高低状态的检测可确认键按下与否。为了确保CPU对一次按键动作只确认一次,并且防止干扰信号的影响,必需加入消除电平抖动的措施,下图3-8为按键抖动示意。消除抖动通常有硬、软硬两种方法,硬件消除抖动可采取双稳态电路或滤波消抖电路;软件消抖是在第一次检测到有键按下时,执行一段延时程序再确认该键是否仍闭合,如果还是闭合状态则确认该键按下,从而消除抖动和干扰影响。按键接口设计有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该设计方案IO资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场合。由于本设计中的按键较多,考虑系统可靠性和键盘设计的简单所以采用矩阵按键。本系统的按键电路如图3-9所示,按键按下是呈低电平,我们采用软件消抖来减少对的单片机影响。有键按下有键按下前沿抖动按键确定后沿抖动图3-8按键闭合及断开前后的电压矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,单片机通过检测行或列线上的电平变化可以确定哪个按键被按下。矩阵键盘的检测方法有多种,常见的有:逐点扫描法、逐行扫描法、全局扫描法。在本实例中我们采用逐行扫描法来实现按键检测,其中P1.4-P1.7作为列线,P1.0-P1.3作为行线。识别过程如下:1、判断键盘中是否有键按下。设置所有行线为输出口,并输出低电平;设置列线为输入口,读取列线上的电平状态,只要有一列的电平为低,就表示有按键按下,并且被按下的键位于电平为低的列线与4跟行线相交叉的4个按键中,若所有列线都为高电平,表示没有按键按下;2、判断被按下按键所在的位置。在确认有键按下后〔进行按键消抖处理后,接下来就是确定具体哪个案件被按下,方法是:依次将每根行线设置为输出口,并输出低电平〔同时剩余行线输出高电平,然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与设置为输出低电平的行线交叉处的按键就是被按下的按键。3、按键位置确定后,接下来就要给矩阵键盘中的每个按键进行编号,也就是进行按键编码,程序设计中常用计算法和查表法两种方式对按键进行编码,本实例采用计算法编码。图3-9按键电路3.4液晶显示模块设计液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,20世纪中叶开始广泛应用在轻薄型显示器上。液晶显示器的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。为叙述简便,通常把各种液晶显示器都直接叫做液晶。液晶体积小、功耗低、现实操作简单,但是它有一个致命的弱点,其使用温度范围很窄,通用型液晶正常工作温度范围为0°C~+55°C,存储温度范围为-20°C~+60°C,因此在设计相应产品时,务必要考虑周全,选取合适的液晶。3.4.1FYD12864工作流程1基本操作时序:读状态:输入:RS=L,RW=H,E=H输出:D0~D7=状态字写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:D0~D7=数据读数据:输入:RS=H,RW=H,E=H输出:无写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲输出:无2状态字说明表3-3状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0~6当前数据地址指针的数值STA7读写操作使能1:禁止0:允许对控制器每次进行读写操作之前都必须进行读写检测,确保STA7为0。实际上,由于单片机的操作速度慢于液晶控制器反应速度,因此可以不进行读/写检测,或只进行简短延时即可。3.4.2FYD12864指令说明表3-4指令集〔RE=0:基本指令集指令指令码说明RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除显示0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器〔AC到"00H"地址归位000000001X设定DDRAM的地址计数器〔AC到"00H",并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容进入点设定00000001I/DS指定在资料的读取与写入时,设定游标移动方向及指定显示的移位I/D=1:游标向右移,DDRAM地址计数器〔AC加1I/D=0:游标向左移,DDRAM地址计数器〔AC减1S:显示画面整体位移显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置ON游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容S/C=0,R/L=0:游标向左移动S/C=0,R/L=1:游标向右移动功能设定00001DLX0REXXDL=1〔必须设为1RE=1:扩充指令集动作RE=0:基本指令集动作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器〔AC设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器〔AC设定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0设定DDRAM地址到地址计数器〔AC读取忙碌标志〔BF和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志〔BF可以确认内部动作是否完成,同时可以读出地址计数器〔AC的值写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的RAM〔DDRAM/CGRAM/IRAM/GDRAM读出RAM的值11D7D6D5D4D3D2D1D0从内部RAM读取资料〔DDRAM/CGRAM/IRAM/GDRAM表3-5指令表〔RE=1:扩充指令集指令指令码说明RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器〔AC到"00H"卷动地址或IRAM地址选择000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM地址反白选择00000001R1R0选择4行中的任一行作反白显示,并可决定反白与否睡眠模式0000001SLXXSL=1:脱离睡眠模式SL=0:进入睡眠模式扩充功能设定000011XREG0RE=1:扩充指令集动作RE=0:基本指令集动作G=1:绘图显示ONG=0:绘图显示OFF设定IRAM地址或卷动地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5—AC0为垂直卷动地址SR=0:AC3—AC0为ICONIRAM地址设定绘图RAM地址001AC6AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器〔AC当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。"RE"为基本指令集与扩充指令集的选择控制位元,当变更"RE"位元后,往后的指令集将维持在最后的状态,除非再次变更"RE"位元,否则使用相同指令集时,不需每次重设"RE"位元。具体指令介绍:1清除显示RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:清除显示屏幕,把DDRAM位址计数器调整为"00H"2位址归位RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能:把DDRAM位址计数器调整为"00H",游标回原点,该功能不影响显示DDRAM3位址归位RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHI/DS功能:把DDRAM位址计数器调整为"00H",游标回原点,该功能不影响显示DDRAM功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。4显示状态开/关RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能:D=1;整体显示ONC=1;游标ONB=1;游标位置ON5游标或显示移位控制RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容6功能设定RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0REXX功能:DL=1〔必须设为1RE=1;扩充指令集动作RE=0:基本指令集动作7设定CGRAM位址RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:设定CGRAM位址到位址计数器〔AC8设定DDRAM位址RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定DDRAM位址到位址计数器〔AC9读取忙碌状态〔BF和位址RSRWDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能:读取忙碌状态〔BF可以确认内部动作是否完成,同时可以读出位址计数器〔AC的值10写资料到RAMRSRWDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能:写入资料到内部的RAM〔DDRAM/CGRAM/TRAM/GDRAM11读出RAM的值RSRWDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能:从内部RAM读取资料〔DDRAM/CGRAM/TRAM/GDRAM12待命模式〔12HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:进入待命模式,执行其他命令都可终止待命模式13卷动位址或IRAM位址选择〔13HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHSR功能:SR=1;允许输入卷动位址SR=0;允许输入IRAM位址14反白选择〔14HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHR1R0功能:选择4行中的任一行作反白显示,并可决定反白的与否15睡眠模式〔015HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHSLXX功能:SL=1;脱离睡眠模式SL=0;进入睡眠模式16扩充功能设定〔016HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1REGL功能:RE=1;扩充指令集动作RE=0;基本指令集动作G=1;绘图显示ONG=0;绘图显示OFF17设定IRAM位址或卷动位址〔017HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:SR=1;AC5~AC0为垂直卷动位址SR=0;AC3~AC0写ICONRAM位址18设定绘图RAM位址〔018HRSRWDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定GDRAM位址到位址计数器〔AC3.4.3FYD12864液晶显示接口电路设计FYD12864共有20个引脚,各引脚说明如表3-6所示。表3-6接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地11D4DataI/O2VDD电源正极12D5DataI/O3VO液晶显示对比度调节端13D6DataI/O4RS数据/命令选择端〔H/L14D7DataI/O5R/W读/写选择端〔H/L15PSB并/串选择H并行L串行6E使能信号16NC空脚7D0DataI/O17RST复位,低电平有效8D1DataI/O18NC空脚9D2DataI/O19A背光电源正极10D3DataI/O20K背光电源负极FYD12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字〔16X16点阵、128个字符〔8X16点阵及64X256点阵显示RAM〔GDRAM。下图为FYD12864与单片机的接口连接图。图3-1012864引脚与单片机连接图显示模块主要完成数据的显示功能。用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,首先当模块接受指令前,单片机必须确认模块内部处于非忙碌状态,然后根据接受到指令显示相关的内容在屏幕上。1、通过RS确定是写数据还是写命令。写命令包括使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不需要移屏、在液晶的什么位置显示,等等。写数据是指要显示什么内容。2、读/写控制端设置为写模式,即低电平。3、将数据或命令送达数据线上。4、给E一个高脉冲将数据送入液晶控制器,完成写操作。3.5本章小节本章首先介绍了主要控制元件STC89C52单片机,并且介绍了各引脚功能及组成最小系统各部分的原理。然后,了解了12864液晶的使用方法及其编程要点,接着叙述了如何对按键编程,因为按键必须添加防抖动设置,以减少误差。最后介绍指纹模块,列出本设计需要的程序模块。第四章系统软件设计系统软件设计主要以硬件电路设计为基础,以实现系统功能为导向,主要包括指纹识别程序设计、ADC键盘程序设计、液晶FYD12864程序设计几部分。4.1系统工作过程分析在本文的硬件电路中,单片机嵌入到系统中作为控制器。应用程序开发分为两个部分,即指纹识别模块的应用开发,和12864液晶,按键程序的开发。程序开发将建立主程序调用一系列子程序通过C语言函数作为主要途径,也就是利用C语言函数分别对指纹识别模块和液晶显示电路编制子程序。在此设计中,使用编程单片机的keil软件作为开发环境的,因为编译器支持模块化设计,可以将源程序分成几个模块各自进行编写,最后通过编译器生成一个最终的文件。开发环境可以调试软件模拟程序,可以轻松进行程序的编写和调试,调试成功的代码文件通过开发板就可以下载到单片机中。单片机上电后,主程序应完成相应的初始化。根据电路的功能性要求,主要程序必须初始化液晶,并且检测按键。如果有相应的键被按下,执行相应的操作,对指纹模块的读写是单片机通过串行接口进行的。所以要对串口进行初始化由于使用串口和模块通讯,所以必须先约定好单片机和模块的串口工作速度和数据包格式。SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:表4-1SCON寄存器地址位位76543210字节地址:98HSM0SM1SM2SM3SM4SM5SM6SM7SCONSM0和SM1为工作方式选择位,可选择四种工作方式:表4-2串行口工作方式SM0SM1方式说明波特率000移位寄存器fosc/1201110位异步收发器〔8位数据可变10211位异步收发器〔9位数据fosc/64或fosc/3211311位异步收发器〔9位数据可变PCON中只有一位SMOD与串行口工作有关:表4-3PCON寄存器位76543210字节地址:97HSMODPCONSMOD〔PCON.7波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。发送数据共11-14个字节,前6个字节是模块的XX和模块地址为固定值,后5-8个字节是传输的模块的命令。同时根据外部晶振和系统默认的传输速率算出控制串口的各寄存器的初始值。指纹模块的通讯波特率〔UART的要求为9600bps,所以如果单片机要与指纹模块进行通信是,必须波特率一致,此时需要在编程时设置单片机的波特率为9600bps。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:1、确定T1的工作方式〔编程TMOD寄存器;2、计算T1的初值,装载TH1、TL1;3、启动T1〔编程TCON中的TR1位;4、确定串行口控制〔编程SCON寄存器;5、串行口在中断方式工作时,要进行中断设置〔编程IE、IP寄存器。下面是串口初始化程序:SCON=0x50;//UART方式1:8位UART;REN=1:允许接收PCON=0x00;//SMOD=0:波特率不加倍TMOD=0x21;//T1方式2,用于UART波特率,T0方式1TH1=0xFD;TL1=0xFD;//UART波特率设置:96004.2主程序流程图根据分析后,制定如下图的程序流程图。主程序设计流程如图4-1所示。程序的巡检过程:首先对各模块进行初始化,检测在有无按键按下,如果按下判断是那一个按键,并作出判断是否调用相应子程序。主程序主要由液晶显示、通讯子程序和按键程序组成。主程序的工作流程描述如下:首先初始化各种硬件功能模块。包括液晶显示、键盘扫描、指纹模块建立通信。图4-1主程序流程图4.3键盘程序流程设计键盘是系统与外部传递信息的通道,在硬件的基础上需要进行软件的设计。键盘模块的工作流程图如图4-2所示。图4-2键盘程序流程图4.4LCD显示模块程序流程设计显示模块主要完成数据的显示功能,然后根据接受到指令显示相关的内容在屏幕上。图4-3显示程序流程图4.5指纹识别程序设计4.5.1指纹模块通讯协议说明指纹模块采用UART与单片机通讯,对命令、数据、结果的接收和发送,都采用数据包的形式。对于多字节的,高字节在前低字节在后。数据包格式:XX地址包标识包长度包内容〔指令/数据/参数/确认码校验和XX固定为0xef01,传送时高字节在前。地址默认值为0xffffffff,用户可通过指令生成新地址,模块会拒绝地址错误的数据包。传送时高字节在前。包标识,0x01表示是命令包,0x02表示是数据包<Datapacket>,且有后续包。数据包不能单独进入执行流程,必须跟在指令包或应答包后面。0x07表示是应答包,可以跟后续包。0x08表示是最后一个数据包,即结束包。包长度指的是包内容<指令/数据>的长度加上效验和的长度〔即包内容长度+2。长度以字节为单位〔即字节数,传送时高字节在前。包内容可以是指令、数据、指令的参数、应答结果等。〔指纹特征值、指纹模板都是数据。校验和是包标示、包长度和包内容的所有字节的算术累计和,超过2字节的进位忽略。指令只能由上位机下发给模块,模块向上位机应答。模块收到指令后,会通过应答包,将有关命令执行情况与结果上报给上位机。应答包含有参数,并可跟后续数据包。上位机只有在收到模块的应答包后才能确认模块的收包情况与指令执行情况。应答包的内容包括一个字节的确认码〔必须有和可能有的返回参数。模块在上电完成初始化工作以后,等待接收上位机命令。在收到正确命令后,迅速执行相应的,操作,在操作完成后返回对应的信息。在模块执行命令的过程中,模块不会响应上位机发出的其他命令。指纹模块的命令如下表格所示类型序号代码功能说明类型序号代码功能说明系统类10x13校验口令指纹处理130x08上传特征20x12设置口令140x09下载特征30x15设置地址150x06存储模版40x0e设置系统参数160x07下载模版50x0f读系统参数170x0c删除模版60x1f读指纹模板索引表180x0d清空指纹库70x1d读指纹模板数190x03比对特征指纹处理类80x01录指纹图像200x04搜索指纹90x0a上传图像其他类210x14采样随机数100x0b下载图像220x18写记事本110x02图像转特征230x19读记事本120x05特征合成模板4.5.2指纹模版的采集存储指纹模版的采集与存储主要是单片机控制指纹模块对用户的同一枚指纹连续取两次,存储在图像缓冲区ImageBuffer,然后分别将指纹图像转化为指纹特征,存储在特征文件缓冲区CharBuffer1或CharBuffer2,然后将两个指纹特征文件合成一个模版放在指纹库中,每一个指纹模板对应一个ID号,指纹库中的模版是断电保存的。指纹模块在FLASH中开辟了一段存储区域作为指纹模板存放区,即指纹库。存储容量为1000枚,指纹库中的数据是断电保护的。指纹模板按照序号存放,若指纹库容量为N,则指纹模板在指纹库中的序号定义为:0、1、2……N-2、N-1。用户只能根据序号访问指纹库内容,相应的存储和搜索功能对应的都是针对指纹序号的操作。ATmega16控制指纹模块进行各种操作,主要涉及单片机串口控制的几个特殊寄存器,USART寄存器包括I/O数据寄存器-UDR、控制和状态寄存器A-UCSRA、控制和状态寄存器B-UCSRB、控制和状态寄存器C-UCSRC、波特率寄存器-UBRRL和UBRRH。在程序设计时,串口采用异步倍速模式,需要设定的波特率寄存器UBRR的值,计算公式为UBRR=f/8BAUD-1,指纹模块的波特率为57600bps,单片机晶振为6.0MHz,可以计算得到UBRR=12。指纹模版登录的程序流程图如图4-4所示。图4-4指纹模版采集存储程序流程图4.5.3指纹比对程序设计指纹比对程序设计是指纹锁系统程序设计的主要方面,指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较〔若与模块中指定的一个模板进行匹配,称为指纹比对方式,即1:1方式;若与多个模板进行匹配,称为指纹搜索方式,即1:N方式,模块给出匹配结果〔通过或失败,然后单片机控制电子锁动作。指纹比对程序设计如图4-5所示:图4-5指纹匹配程序流程图4.6Keil编程所需要的各种硬件已经选择好,单片机是电路中主控制器,由单片机对指纹模块及液晶、按键进行开发。首先应建立一系列的C语言子程序供主程序进行调用。本设计采用KeiluVision2对单片机编程。Keil可以编译C源码,汇编源程序,生成代码效率非常高,多数语句生成的汇编代码紧凑容易理解[11]。[Keil软件可以提供丰富的库函数和功能强大的集成开发调试工具,能够连接和重定位目标文件和库文件,创建HEX文件,调试目标程序。使用Keil软件的主要工作流程为:1、创建一个新工程,命名为"Fingerprint",然后从器件库中选择单片机型号,因为其中没有STC89C52,所以选择与它完全兼容的Atmel89c52代替。2、新建text文件,命名为main.c,然后在Target1的子文件SourceGroup1中添加main.c文件。3、点击下图中箭头所指的图标,弹出如下对话框,在Xtal后输入9600,即单片机的工作频率为9600MHz[12]。图4-6设置波特率4、点击Output标签,在CreateHEX前的方框内勾选,这样可以生成hex文件以便输入单片机中。5、用C语言创建源程序。6、修改源程序中的错误。7、测试,链接应用。4.7本章小结本章介绍了硬件选择后设计软件工作流程,及如何进行Keil软件编程,然后创建"Fingerprint.hex"文件,程序烧写时需要。接着若想系统各个部分工作有序,必须保持时钟状态一致。第五章实物制作与调试5.1电路的焊接1.焊前准备首先要熟悉所焊印制电路板的装配图,并按图纸配料,检查元器件型号、规格及数量是否符合图纸要求,并做好装配前元器件引线成型等准备工作。2.焊接顺序元器件装焊顺序依次为:电阻、电容器、二极管、三极管、集成电路、大功率管,其它元器件为先小后大。3.对元器件焊接要求〔1电容器焊接将电容器按图装人规定位置,并注意有极性电容器其"+"与"-"极不能接错,电容器上的标记方向要易看可见。先装玻璃釉电容器、有机介质电容器、瓷介质电容器,最后装电解电容器。〔2二极管的焊接二极管焊接要注意以下几点:第一,注意阳极阴极的极性,不能装错;第二,型号标记要易看可见;第三,焊接立式二极管时,对最短引线焊接时间不能超过2S。〔3三极管焊接注意e、b、c三引线位置插接正确;焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。焊接大功率三极管时,若需加装散热片,应将接触面平整、打磨光滑后再紧固,若要求加垫绝缘薄膜时,切勿忘记加薄膜。管脚与电路板上需连接时,要用塑料导线。〔4集成电路焊接首先按图纸要求,检查型号、引脚位置是否符合要求。焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。对于电容器、二极管、三极管露在印制电路板面上多余引脚均需齐根剪去[15]。〔5FYD12864注意事项:1要避免在处理机械振动和对模块施加外力,都可能使屏不显示或损坏。2不能用手或坚硬工具或物体接触、按压、磨擦显示屏,否则屏上的偏光片被物体划坏。3如果屏破裂液晶材料外漏,液晶可以通过空气被吸入,而且要避免液晶与皮肤接触,如果接触应立即用酒精冲洗,然后再用水彻底冲洗。4不能使用可溶有机体来清洗显示屏。因为这些可溶的溶剂对偏光片不利,清洗显示屏时,可用棉花蘸少量石油苯轻轻擦拭或用透明胶带粘起脏物。5要防止高压静电产生的放电,将损坏模块中的CMOS电路。6不能把模块放在温度高的地方,尤其不能长时间放在湿度大的地方,最好把模块放在温度为0℃-35℃,湿度低于70%的环境中。7模块不能贮存在太阳直射的地方。8当电源接通时,不能组装或拆卸模块。9在电源电压的偏差、输入电压的偏差及环境温度等最坏条件下,也不能超过最大的额定值,否则将损坏LCD模块。按照以上顺序及要求焊接好后的实物如图5-1所示图5-1焊接后的实物图5.2程序的烧写STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。图5-2STC-ISP工作界面调试通过的代码文件通过STC_ISP_V480下载到单片机。STC_ISP_V480使用步骤为:1、打开STC-ISP,如下图界面,在MCUType栏目下选中单片机STC89C52RC。2、选中COM端口,波特率选择9600。3、点击"打开文件"并在对话框内找到要下载的HEX文件。4、点击download/下载,根据提示给单片机上电,完成程序烧写。单片机在上电后,主程序应该完成相应的初始化工作。依据电路的功能要求,主程序必须对液晶初始化、同时对按键进行检测,如果有对应的按键按下,执行相应的操作,单片机通过串行接口对指纹模块进行读写。5.3小灯、继电器的调试首先按下电源,看电源指示灯是否点亮,证明电源电路正常。然后测试单片机是否正常工作,在Keil上编写了一段红绿小灯以一秒间隔闪烁的程序,导入单片机,上电后发现小灯按照我所要求的方式工作,证
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代餐饮店铺转让合同含环保设施及节能技术
- 海外社交媒体跨境电商品牌合作推广协议
- 智能制造基地厂房股权转让合作协议
- 水上救援专用船租赁服务协议
- 高端制造基地厂房租赁代购及产业导入合同
- 场地及综合体大楼公共设施装修工程协议
- 2025茶叶销售代理合同全新版
- 2025合同范本物业管理服务合同 示例
- 2025合作合同书 共同经营协议
- 离散数学试题及答案文库
- 理论联系实际阐述文化在社会发展中具有什么样的作用?参考答案四
- GA/T 954-2011法庭科学工具痕迹中凹陷痕迹的检验规范
- GA/T 497-2016道路车辆智能监测记录系统通用技术条件
- 第六章恶意代码分析与防范培训课件
- 净化工程施工组织设计方案方案
- CNAS实验室评审不符合项整改报告
- PDCA降低I类切口感染发生率
- 行车日常维护保养点检记录表
- 幼儿园《开关门要小心》
- 多彩的黄土高原论文自然环境
- TwinCAT PLC 编程手册
评论
0/150
提交评论