【《基于单片机的电子密码锁设计与实现》6300字(论文)】_第1页
【《基于单片机的电子密码锁设计与实现》6300字(论文)】_第2页
【《基于单片机的电子密码锁设计与实现》6300字(论文)】_第3页
【《基于单片机的电子密码锁设计与实现》6300字(论文)】_第4页
【《基于单片机的电子密码锁设计与实现》6300字(论文)】_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的电子密码锁设计与实现目录TOC\o"1-3"\h\u5833摘要 18461引言 2304581.研究的意义及现状 351081.1选题的目的及意义 3107401.2研究现状 314342.系统总体结构设计 4113682.1系统设计分析 447802.2工作原理及思路 4307303.主要模块及硬件设计 5181433.1主控模块 5182433.2复位电路 66053.3晶体振荡电路 7213623.4掉电储存模块 7295593.5显示模块 8190203.6键盘模块 938603.7指纹模块 10233164.系统的软件设计 1114024.1程序设计 117104.2系统程序流程图 12241524.3键盘管理程序设计流程 13139324.4LCD显示模块程序设计流程 14323264.5指纹模块程序设计流程 14177075.安装与调试 15105105.1安装 15224925.2调试与结果 16285436.结束语 16摘要:为了解决传统锁具安全性和便捷性差的问题,设计了一款基于单片机的电子密码锁。STC89C52RC单片机是本系统的模块核心,将4*4矩阵键盘和指纹模块检测到的密码和指纹信息与AT24C02芯片存储的密码和指纹信息比对,经单片机判断密码和指纹是否正确再决定是否控制继电器开锁。同时配有液晶屏显示系统提示信息用于人机交互。经试验本系统功能良好,结构简单,经济实用,易于推广。关键词:单片机;指纹识别;密码锁DesignandImplementationofElectronicCodeLockBasedonMCUAbstract:Inordertosolvetheproblemofpoorsecurityandconvenienceoftraditionallocks,anelectronicpasswordlockbasedonMCUisdesigned.STC89C52RCmicrocontrolleristhecoremoduleofthesystem.Thepasswordandfingerprintinformationdetectedby4*4matrixkeyboardandfingerprintmodulearecomparedwiththepasswordandfingerprintinformationstoredinAT24C02chip.Themicrocontrollerjudgeswhetherthepasswordandfingerprintarecorrect,andthendecideswhethertocontroltherelaytounlock.Atthesametime,itisequippedwithLCDdisplaysystempromptinformationforhuman-computerinteraction.Throughthetest,thesystemhasgoodfunction,simplestructure,economicandpractical,easytopromote.KeyWords:Singlechipmicrocomputer;Fingerprintidentification;Passwordlock引言在当今社会,如何有效安全防盗已经是一个重要的社会性问题[1]。当人们的需求和科技碰撞之后,电子密码锁才开始慢慢开始进入人们的视野。电子锁的研究从上世纪开始逐渐在一些场合有所应用,电子密码锁在刚研制出来的时候只有密码开锁的功能,在不断的发展之下,又多出了很多功能,比如指纹开锁、IC卡开锁、声控开锁等新奇的功能。不过功能越多,反倒是越不安全,功能越多,有心之人可以选择的方向就越多,漏洞自然也就越多,应用最多最广泛的还是密码锁和指纹锁,相对于传统锁具来说,极大的增加了安全性。电子密码锁十分容易操作,成本低且安全性高等优点,其应用价值与发展前景都十分良好[2]。本设计中的电子密码锁具有指纹模块读取指纹信息开锁和矩阵键盘输入密码进入管理员模式开锁两种开锁方式,LCD12864液晶显示系统信息,LED指示灯显示当前门的开关状态,密码输入正确或者指纹正确则驱动继电器打开门锁,密码错误达到一定次数则断电退出。1.研究的意义及现状1.1选题的目的及意义21世纪是我们现在所生活的时代,是世界经济快速发展的时代,是科学力量加强的时代。在21世纪,人们对安全性和便利性越来越看重,科技的发展无时无刻不在改变着人们的生活,在越来越智能化的21世纪,传统的门锁已经不适应快捷方便的现代生活,人们每次开门都要带一大串钥匙,走路叮叮当当的,稍微一个不注意弄丢了钥匙,站在门外进不去家门,只能花钱请开锁工人来开锁,开完锁之后还要花钱把家里所有的门锁全部更换。此时,电子密码锁便应运而生,它满足了人们的需求,解决了钥匙丢失可能引起的不便。电子密码锁的出现将会给锁具行业带来变革,虽然在短期还是会以传统机械锁作为主流,但是随着科技的发展,未来的电子锁造价将会越来越低,人们都会用得起电子密码锁。1.2研究现状在上世纪八十年代左右,在东方的一个岛国日本,诞生了第一个电子密码锁,在1966年之后,电子行业迎来了飞一般的发展,但此时由门电路搭建起来的密码锁安全性比较差,很容易被打开。时间来到了1990年,在我国的台湾、香港等地还有一些西方国家的电子技术和通信技术发展迅猛,加快了密码锁的进程。之后采用虽然成本低廉但是稳定性很高的AT24C02掉电存储芯片,又可以扩展出更多新的功能。比如和红外探测技术结合做成的红外遥控密码锁、和指纹识别技术结合做成的指纹锁、和语音识别技术结合做成的语音锁、和人脸识别技术结合做成的人脸识别门锁等。这些扩展的技术在国外发展的比较好,有的已经可以量产使用。目前,西方各国的的技术已经相对成熟,种类很多,已经广泛应用于各处。我国在上世纪九十年代初才开始研发电子密码锁,至此虽然只有几十年,但是却取得了很大的发展,技术也比较先进,我国在电子密码锁方面的技术虽然成熟了不少。但是和西方发达国家尚有一定的差距,电子密码锁的成本还很高,这也是目前未在我国全面普及的原因。目前市场上的电子锁种类繁多,功能也是应有尽有。电子锁相比传统机械锁的突出优点就是安全性能高,同时不用再带一大串钥匙了。相比之下按键式的电子密码锁更为实用,大众更易接受;卡片式电子锁需要携带IC卡,容易丢失、损坏[3]。目前在一些大城市普及率较高。未来随着科技的不断发展,每家每户一定都可以用到物美价廉的电子密码锁的。2.系统总体结构设计2.1系统设计分析本文设计了一款电子密码锁,由主控模块、指纹模块、显示模块、复位电路、键盘模块、以及继电器和指示灯等器件构成。本设计有密码开锁和指纹开锁两种开锁方式,密码开锁是通过键盘手动输入开锁密码,单片机接受到密码后判断密码是否正确继而控制继电器是否吸合,并且显示器显示相应的提示信息。指纹开锁是通过指纹传感器将读取指纹的图像进行处理,经过处理后会生成特征文件,然后将生成的特征文件与模块库中保存的特征文件比对,指纹模块将匹配结果通过串口传输给单片机,单片机再判断是否开锁。系统设计的总体框图如图1所示。图1系统框图2.2工作原理及思路在本文中的电子密码锁是利用C语言来编写程序的。在本文设计的系统将单片机作为主控芯片控制系统中的别的模块一起来完成工作。一开始,首先对各种硬件功能模块进行初始化操作,主要是对串口、AT24C02存储芯片、LCD12864进行初始化,按键扫描是时刻在进行的,按键按下后,首先进行消抖,在消抖后再判断是否有按键按下,确实有按键按下的话,则判断是哪个键按下,从而去执行对应的功能。按下A键确认身份后可以进入管理员界面,在管理员界面可以对密码和指纹进行操作。如果指纹已经录入了,就可以直接开门,在按下指纹后系统会提示开门成功,同时继电器吸合,开门指示灯亮起,如果指纹库没有该指纹,系统会提示,搜索不到该指纹,请重新按手指。提示信息都是由显示模块根据接受到指令显示相关的内容在屏幕上。本文采用模块化设计,就是将一个复杂的程序转化成多个具有特定功能的小程序,每个模块像一个黑盒子一样,只保留使用接口,经过声明之后可以直接进行调用。各个子程序里面也可以嵌套一些小的子程序,经过模块化之后,也极大地增加了程序的可阅读性。3.主要模块及硬件设计3.1主控模块单片机作为控制核心的优点为高速、低耗能、超强抗干扰。并且有多个I/O口、512字节SRAM、8K字节闪存、3个定时器,E2PROM、A/D转换等功能部件。并且使用52单片机还有一个优点,那就是其与51单片机兼容,具有很强的可移植性。单片机最小系统电路是由单片机、晶振电路和复位电路组成。给最小系统上电后就可以保证其正常运行[4]。电源负责供电,CPU主要负责收集和处理传感器传送的数据,然后发送相应的指令,控制、协调所有模块正常工作。晶体振荡电路则主要是负责给系统提供高低电平的时钟信号,复位电路可以使系统回到初始的状态,这些电路就构成了本系统的控制核心。控制模块主要是处理各类信息,经过CPU处理后发出执行命令,再以电信号的形式进行传输,使得各个部门协调工作。其中信号的输入包括按键扫描模块和指纹模块,按键扫描模块通过按键的电平变化,把按键产生的电信号传送到CPU,然后CPU进行数据分析和处理,判断是哪个键按下了,要执行什么样的功能,同时协调显示模块显示相应的系统提示信息。单片机各引脚如图2所示。图2单片机引脚图3.2复位电路复位电路在任何一个系统中都是必不可少的,因为任何系统都免不了出错,出错会造成系统卡顿、跑飞等情况,所以为了保证系统运行的正确性和稳定性,给各个部件一个起始状态,从初态开始运行,遇到错误时,再回到初态继续运行,保证系统运行的正确性。所以对单片机来说,复位电路有很重要的作用。但是自身并没有这个功能,必须配合相应的外部电路才能实现。在本系统中采用阻容复位电路时,电容选用的是10uF的,电阻选用的是10K的。电路如图3所示。图3复位电路电路图3.3晶体振荡电路单片机执行指令是在时钟脉冲下完成的,就如同心跳一般,一刻不停地产生着脉冲,产生脉冲的电路我们称之为晶体振荡电路或者时钟电路。执行不同操作的指令可能需要的脉冲也不一样,所以对于同样字节数的指令,操作过程可能不一样,需要的时间也自然不一样,所以需要的时钟信号也不一样。为了有一个统一的标准,也可以说是共识,就设置了几种周期,比如我们现在常听到时钟周期、机器周期和指令周期等概念。为了让各个器件都保持同步,所以大部分系统都是使用同一个晶振。外部晶振电路下图所示。图4外部晶振电路3.4掉电储存模块AT24C02本质上是一个E2PROM,大小为256个Byte,具有低功耗的特点,并且AT24C02还有一个写缓冲器。AT24C2芯片在本设计中主要用来存储密码及一些系统设置,由于其芯片可以实现掉电不丢失,可以确保每次的操作在下次开机后仍有效。下图为单片机与掉电存储芯片的连接电路图。单片机P3.3口与AT24C02芯片的WP(写保护)连接,P3.4口和P3.5口分别和AT24C02芯片的SCL(串行时钟)和SDA(数据)连接。VCC引脚接电源,A0、A1、A2、GND均接地。图5AT24C02电路图3.5显示模块显示模块主要的器件是LCD12864液晶显示器。LCD12864支持4位串行接口和8位串行接口方式,LCD12864内部具有字符库,可以显示字符,还可以显示中文,不再需要自己去编码,直接调用就可以了,减少了很大的工作量。并且功耗还比较低,从成本方面来说,和其他的显示模块相比性价比也更高。LCD12864电路如图6所示。图6LCD12864电路图LCD12864主要用来显示一些系统提示信息,比如请输入密码之类的。任何程序开始前必须进行初始化,不然的话,模块可能会出现错误,模块在显示东西之前,单片机要先查询LCD12864处于什么状态,只有处于非忙碌状态的时候,单片机才继续发送要显示的信息给显示模块。步骤如下:1.先对LCD12864进行初始化和清屏操作。2.将初始界面要显示的信息发送给显示模块。3.将命令写入LCD12864。4.将数据写入LCD12864。3.6键盘模块键盘是单片机的输入设备,是使用者向单片机发送指令的主要途径。键盘其实就是一个按钮。按键电路如图7所示。图7按键电路从图中可以看出,行线为P1.0-P1.3口,列线P1.4-P1.7口,键盘的一端接在行线上另一端接在列线上。在本文中我们使用逐行扫描法来扫描有没有按键按下。识别过程如下:1.让P1.0到P1.3口输出低电平,然后判断P1.4到P1.7口是高电平还是低电平,如果在P1.4到P1.7口所在的某一列检测到低电平,就说明P1.4到P1.7口所在的某一列有按键被按下了,但是我们只能确定是哪一列的按键被按下,并不能确定具体是哪一列所在的哪个按键按下了。如果在P1.4到P1.7口上没有检测到低电平的话,就说明没有按键按下。2、知道P1.4到P1.7口所在的哪一列按键被按下后,我们就要开始检测到底是哪一行与P1.4到P1.7口所在的列相交的哪个按键被按下了。将P1.4到P1.7口中的一列变为低电平,其余的仍为高电平,检测P1.0到P1.3口此时的电平状态,若在P1.0到P1.3口的某一行检测到低电平,说明本行与上一列交叉处的按键被按下了,反之,则说明键盘未有动作。3、知道哪个键按下后就可以执行对应键的功能。由于键盘的机械特性,键盘都会有一段抖动期,这是无法避免的,处于抖动期电压波形不是很稳定,不能参考此时的电平高低来判断按键是否闭合,需要先进行消抖然后判断点评的高低,确认按键是断开还是闭合。从下图可以看出,t1、t3波形不稳定,为抖动期,to、t2、t4波形稳定,可以在这个时候判断。按键电压输出波形如图8所示。图8按键闭合时行线输出电压波形为了保证系统判断的准确性,就需要消除抖动期。消抖方法有很多种,本文采用的消抖方法是延时消抖,检测低电平之后,延迟几毫秒,然后再次判断电平状态,如果还是低电平,则判断为按键按下。当判断按键已经松开的时候也需要消抖。3.7指纹模块指纹模块电路如图9所示图9指纹模块电路图ZFM-60为光学指纹传感器,自带指纹录入、对比等功能。只需要对指纹模块发送指令就可以使用,极大的方便了开发者。当指纹传感器检测到有指纹按下时,先将指纹读取后生成特征文件,再将特征文件与模板库中储存的特征文件对比,匹配的话则开锁,不匹配的话则提示没有该指纹。4.系统的软件设计4.1程序设计程序是单片机的灵魂,如果单片机没有程序,那么单片机就是一堆破烂。程序设计的好坏可以决定一个设计的成败。本程序全部采用C语言程序设计,在C语言程序设计中,要遵循几个原则,分别是从上而下的设计方法、模块化的设计思路、逐步求精的完善理念、限用goto。自顶向下说的是程序在主函数中是从上到下顺序运行的,按照从上到下的顺序运行可以知道系统的运行顺序;模块化是一个复杂的额程序可以分为很多具有特定功能的模块,要实现该功能时直接调用该模块就可以了;逐步求精说的是将具体的问题抽象为简单的问题,方便求解;限用goto是评判一个系统好坏的标准,goto写的越多代表程序编写的越不好。在本程序中,先对各个模块进行初始化,按键扫描和指纹扫描时刻判断是否有按键或者指纹按下,输入密码后,并且按下确认键,如若输入密码与原始保持一致,继电器便能够吸合、电路开锁,开锁成功指示灯亮起[5]。如果读取到指纹信息,则与指纹模板库对比,如果结果匹配,则继电器吸合,电路开锁。进入管理员界面可以对指纹和密码进行修改和删除,比如在矩阵键盘上实现密码输入、密码清除、密码变更等功能[6]。4.2系统程序流程图主程序流程图如下:图9系统流程图4.3键盘管理程序设计流程在本系统中所需按键比较多,为了减少单片机I/O口的占用,因此采用矩阵形式的键盘[7]。流程图如下:图10键盘程序流程图4.4LCD显示模块程序设计流程显示模块接收到单片机发送的指令后,然后根据接收到的指令在液晶屏上显示相应的提示信息。但是为了防止密码被人偷窥,所以在设计过程中是需要在LCD屏上显示“*”号。显示模块子程序流程图如图11所示:图11显示模块子程序流程图4.5指纹模块程序设计流程指纹识别实际上就是在已经建立的指纹数据库中寻找符合特定指纹需求的指纹相关数据信息,以便于能够及时识别指纹拥有者的身份[8]。要实现指纹开锁功能,最重要的就是指纹传感器,指纹传感器主要用来采集指纹信息,对指纹信息进行录入[9]。当单片机发现存储系统中含有该指纹信息的时候,可以执行开锁操作[10]。

温馨提示

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

评论

0/150

提交评论