基于单片机控制的电子密码锁的设计.docx
《基于单片机控制的电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电子密码锁的设计.docx(23页珍藏版)》请在冰豆网上搜索。
![基于单片机控制的电子密码锁的设计.docx](https://file1.bdocx.com/fileroot1/2023-7/26/ec6897b0-0c79-4a25-8de4-272eea9d1e72/ec6897b0-0c79-4a25-8de4-272eea9d1e721.gif)
基于单片机控制的电子密码锁的设计
陕西航空职业技术学院
毕业设计(论文)
机电工程系机电一体化技术专业
毕业设计(论文)题目基于单片机控制的电子密码锁原理及设计
学生姓名学号3
指导教师职称
年月日
毕业设计(论文)任务书
机电工程系机电一体化专业
学生姓名学号1454523
一、毕业设计(论文)题目基于单片机控制的电子密码锁原理及设计
二、毕业设计(论文)时间年月日至年月日
三、毕业设计(论文)地点:
陕西航空职业技术学院
四、毕业设计(论文)的内容要求:
1、论文中包含工作原理、系统结构、控制过程、控制流程图及控制程序等,字数不少于6000字;
2、论文格式按要求完成。
指导教师年月日
批准年月日
目录
第1章绪论1
1.1课题背景和意义1
1.2电子密码锁发展趋势 1
第2章系统总体方案设计3
2.1电子密码锁设计的要求3
2.2各模块方案选择和论证3
第3章系统硬件设计7
3.1系统硬件概述7
3.2主要模块电路的设计7
3.2.1键盘扫描模块电路的设计7
3.2.2单片机控制模块电路的设计8
3.2.3声光报警模块电路的设计9
3.2.4数码管显示模块电路的设计10
3.3总体电路设计12
第4章系统软件设计13
4.1系统软件的概述13
4.2子程序的设计14
4.2.1键盘扫描子程序14
4.2.2开锁子程序14
4.2.3修改密码子程序15
结束语16
谢辞17
参考文献18
摘要
随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其的突出。
传统的机械锁由于其构造简单,安全性能低,无法满足人们的需求,所以具有防盗报警功能的电子密码锁系统逐渐代替传统的机械式控制系统,克服了机械式密码控制的密码量少,安全性能差的缺点。
本设计从经济实用的角度出发,系统以单片机AT89S51作为密码锁设计的核心元件,结合外围的键盘输入、LED显示等电路模块,通过单片机编写密码程序,用BCD-7段译码器74LS47和3-8译码器74LS138驱动的数码管来显示密码。
设计实现了一款可多次更改密码,具有显示功能、报警功能的电子密码锁系统。
数码管可以实时显示当前输入的六位数字,当输入密码正确时,对应的指示灯亮;当密码不正确时,另一个对应的指示灯亮并且发出声音报警。
关键词:
AT89S51;LED显示;电子密码锁;4×4矩阵键
第1章绪论
1.1课题背景和意义
随着人们生活水平的提高和防盗意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究开始于20世纪30年代代就开始了__________________________________________________________________________________________________________________________,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,是为了提高锁的安全性。
由于电子密码锁的密钥量非常大,可以与机械锁配合使用,并且可以避免因钥匙被仿制所留下的安全隐患。
电子锁只需要记住一组密码,不需要携带金属钥匙,因此免除了人们携带金属钥匙的烦恼,被越来越多的人所使用。
电子锁的种类繁多,例如,指纹锁,数码锁,磁卡锁,IC卡锁,生物锁等等,但较实用的还是按键式电子密码锁[]。
到了20世纪80年代,随着电子锁专用集成电路的出现,电子锁的体积被缩小,可靠性提高,成本也因此提高,适合使用在安全性要求较高的场合,而且需要有电源提供能量,使用范围有一定的局限性,难以普及,所以对它的研究一直没有很大的进展[]。
至今为止,在西方的发达国家,电子密码锁技术发展相对先进,种类齐全,已被广泛应用于智能门禁系统中,通过多种更加安全和可靠的技术实现对大门的管理。
在我国,电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内也已有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观[]。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
1.2电子密码锁发展趋势
电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:
1、授予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款[]。
目前,金融行业电子密码锁的应用主要集中在前两个层面上。
下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子密码锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。
提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用[]。
报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要[]。
由于数字、字符、人体生物特征和时间等要素均可成为钥匙的电子信息,所以组合使用这些信息可使电子密码锁获得较高的保密性,如防范森严的金库,需要使用的电子密码锁使用的是复合信息密码,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”[]。
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,可以提高对整体电路的设计能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。
。
第2章系统总体方案设计
2.1电子密码锁设计的要求
简易电子密码锁是由5个部分组成,其系统框图如图2-1所示:
图2-1电子密码锁控制系统
设计电子密码锁的具体要求是:
(1)设计开锁密码为六位数字的电子密码锁。
(2)初始密码设定为“123456”。
16个按键分别代表“0”—“9”数字、显示密码按钮、修改密码按钮、开锁按钮、关闭报警按钮、清除最高按钮、退格按钮。
(3)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入原来的密码,在输入新密码时候需要二次确认,以防止误操作。
(4)密码通过键盘输入,若密码正确,则绿灯亮;密码输入错误则红灯亮,若密码输入错误次数超过3次,红灯亮且蜂鸣器报警[]。
2.2各模块方案选择和论证
(1)单片机的选择
方案一:
采用AT89C51单片机,它可以与其它51系列的单片机兼容、内部ROM全部采用FLASHROM、最高时钟频率可达24MHz且能以3V超低压工作。
但不支持ISP在线编程技术、内部ROM仅为4KB不利于功能扩展。
方案二:
采用AT98S51单片机,它具同时被AT98C51的全部功能外,还支持ISP在线编程技术且内部ROM为8KB有利于功能扩展。
单片机AT89S51与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S51运行,结果仍一样。
AT89S51比AT89C51新增了一些功能,支持在线编程和看门狗是其中主要两个特点。
它们之间的区别主要在于以下几点:
1.引脚功能:
管脚几乎相同,在AT89S51中P1.5,P1.6,P1.7具有第二功能,即这3个引脚的第二功能组成了串行ISP编程的接口。
2.编程功能:
AT89C51仅支持并行编程,而AT89S51不但支持并行编程还支持ISP再线编程。
在编程电压方面,AT89C51的编程电压除正常工作的5V外,另Vpp需要12V,而AT89S51仅仅需要4-5V即可。
3.工作频率更高:
AT89C51的工作频率极限是24MHZ,而AT89S51最高工作频率是33MHZ,(AT89S51芯片有两中型号,支持最高工作频率分别为24MHZ和33MHZ)具有更快的计算速度。
5.电源范围更宽:
AT89S51工作电压范围,可达4-5.5V,而AT89C51在小于4.8V或大于5.3V的时侯则无法正常工作。
6.抗干扰性更强:
AT89S51内部集成看门狗计时器(WatchdogTimer),而AT89C51需外接看门狗计时器电路,或者用单片机内部定时器构成软件看门狗来实现软件抗干扰。
7.加密功能更强:
AT89S51系列提供了三层加密算法(LB1,LB2,LB3三个可编程的加密位),这使得AT89S51的解密变为几乎不可能,程序的保密性大大加强。
8.AT89S51内新增SFR,即双数据指针,AT89S51向下可以完全兼容51系列的所有产品,性价比相比C51系列更高,所以采用AT98S51单片机。
(2)键盘的选择
方案一:
使用独立式按键来控制
使用独立式按键来控制数码管的显示,这样需要很多的按键,每个按键实现一个功能,易于控制,程序编写简单,但是每个按键都要接上拉电阻,占用了单片机大量的I/O接口资源,要对单片机外扩I/O口,浪费大量的资源,提高了成本。
方案二:
采用矩阵式键盘来控制
把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键数量相对独立式按键较少,通过比对按键输出的高低电平做运算可以判定有无键被按下以及被按键的位置,这种称为键扫描法。
这样虽然提高了编程难度,但是节约了单片机大量的I/O口,提高了整块电路板的美观度[]。
(3)显示模块的选择
方案一:
数码管静态显示
采用LED数码管静态显示方法,电路容易理解,驱动程序简单,但需要每个数码管都要一块74LS47来驱动显示,增高了成本,浪费系统硬件资源,而且需要占用单片机多个I/O口。
方案二:
数码管动态显示
采用LED数码管动态显示方法,只需一块数码管驱动器芯片和一块译码器芯片就可以驱动多个数码管,价格便宜,只需要7个I/O口就可以同时驱动8个数码管显示,而且硬件利用效率高,驱动程序容易理解和编程,所以选择此种显示方法。
方案三:
液晶显示
采用LCD液晶显示,显示的位数多,由单片机驱动。
此方案有美观、显示清晰多样的优点。
但同时液晶显示器的驱动程序复杂,编程困难,成本高,价格昂贵,浪费大量的资源,所以不选择。
(4)数码管驱动选择
采用74LS47驱动数码管和74LS138译码器来控制数码管的COM端,因为74LS47只能驱动共阳数码管,而74LS138的输出为低电平有效。
因此,在74LS138的输出端加入反向器才可以接到数码管的COM端。
方案一:
74LS04芯片的选择
采用74LS04芯片做反向器,74LS40是集成六反向器芯片,刚好可驱动六个数码管,但是它的输入输出引脚两边均分布,跳线较多影响了整块电路的美观度[]。
方案二:
三极管的选择
三极管也具有反向的功能,采用的是PNP管,电路的连接中又方便,减少了跳线,可提高美观度。
(5)报警模块的选择
方案一:
采用语音报警,虽然可以使整个系统更加完美,但是会使程序更加复杂而且提高了整个系统的造价。
方案二:
采用发光二极管和蜂鸣器来报警,可以发出声光报警且降低了成本。
结合整个系统的成本、功能、美观度等综合考虑,选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口特点,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘,用于密码的输入和一些功能的控制,用74LS47、74LS138和三极管来驱动六个数码管做显示模块、用发光二极管和蜂鸣器做为报警模块。
具体系统框图如图2-2所示,
图2-2系统框图
电源模块:
由+5V的直流稳压电源供电给整个系统工作。
键盘模块:
由16个轻触式开关组成。
单片机控制模块:
采用支持ISP在线编程技术的单片机AT89S51便于烧写程序。
显示模块:
采用六个数码管实时显示当前输入数据。
报警模块:
采用发光二极管和蜂鸣器做声光报警[]。
第3章系统硬件设计
3.1系统硬件概述
本系统是通过键盘扫描模块,既能够显示数据还能够修改开锁密码,密码通过键盘扫描模块输入到单片机控制系统AT89S51中,然后通过数码管显示模块来显示我们所输入的数据,还有一个就是报警模块,当输入的密码正确时,则显示模块的绿灯点亮;当输入的密码错误时,红灯点亮,报警模块立刻发出声音报警。
为了达到设定的功能,本装置由键盘扫描模块、单片机控制模块、数码管显示模块,声光报警模块4模块组成[]。
3.2主要模块电路的设计
3.2.1键盘扫描模块电路的设计
如图3-1所示,本模块的作用是进行键盘的扫描,在这里采用的是逐行扫描法,首先识别有无键按下,将全部行线均设置为0电平,即P1.0-P1.3均输出低电平,然后读取列线P1.4-1.7的值,若P1.4-1.7均为高电平,则表示无键按下。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
当检测到有键按下后,延时一段时间再做下一步的检测判断,这是为了防止是抖动干扰造成错误识别,继而进行确定具体闭合键的过程,依次将行线置为低电平,检查各列线的电平。
如首先置第一行为0,其余行为1,也就是让P1.0-P1.3输出0111,读取列线1.4-1.7的值,如果有一个为0,则根据读取的列值,判断按键是在第一行第几列上。
如果列线的值全为1,则表示第一行没有键按下,然后再置第二行为0,其余为1,以此类推,识别按键的位置。
图3-1键盘扫描模块
3.2.2单片机控制模块电路的设计
单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用,本装置采用的AT89S51是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。
第20引脚为接地端;第40引脚为电源端;第31引脚需要接高电位使单片机选用内部程序存储器;第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号,电容取值为30pF;第9脚为复位脚,当其接高电位时,单片机复位。
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
。
P0口接两个发光二极管和一个蜂鸣器以实现声光报警功能;P2口连接一片七段译码器和一片3-8译码器以动态扫描方式同时驱动六个数码管;P1口与16个阵列式按键相连实现对键盘的扫描。
通过编程既能识别由译码器来驱动数码管显示的数据,同时也通过运行指令来达到完成声光报警及动态显示数码管等功能[]。
单片机控制模块电路如图3-2所示
图3-2单片机控制模块
3.2.3声光报警模块电路的设计
如图3-3所示,本模块的作用是当开锁按钮被按下时,如果数码管当前显示值与密码相同,则绿灯点亮;当输入的数字与密码不同时,则红灯点亮并且蜂鸣器立刻发出声音报警[]。
当P0.0引脚接通时,LED1亮绿灯,当前数码管显示值与密码相同,当引脚P0.1和P0.2引脚接通时,LED2亮红灯,且蜂鸣器响,表示当前密码输入错误,完成密码锁的开锁与报警过程。
图3-3声光报警模块
3.2.4数码管显示模块电路的设计
如图3-4所示,该模块主要由74LS47译码器,74LS138译码器和6个8段数码显示管组成,从编码器输送过来的数据经过一块74LS47芯片和一块74LS138芯片译码后,传送到8段数码显示管,显示管根据接收到数据电平的高低来显示不同的数据。
图3-4数码管显示模块
从图中可以看到单片机P2.0口低4位连接一片74LS47七段译码器,由于74LS47是共阳极数码管的七段译码器,因此要选用共阳极的数码管。
单片机P2.0-P2.3口的输出信号经过74LS47译码后就可以驱动数码管的段码显示相应的数字,另外在74LS47的输出与数码管之间还要接上7个470欧姆的限流电阻,以防止有过大的电流流过时烧坏数码管。
P2.4-P2.6口接到3-8译码器74LS138的三个输入端,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,而74LS138的输出端通过三极管分别接于八个数码管的公共极COM端,通过P2.4-P2.6口的输出量来控制74LS138选择点亮某一个数码管。
由于74LS138是低电位有效,所以应该采用PNP型的三极管来驱动数码管,在此三极管相当于一个开关的作用,依靠这两块芯片就可以控制数码管实现动态扫描显示。
例如:
使六个数码管显示“123456”。
在第一时刻输出“0001”给74LS47,让数码管显示“1”,同时输出“000”给74LS138,选择第一个数码管工作,其余数码管不工作,这样第一时刻就只有第一个数码管显示“1”,其余数码管均不显示。
同理第二时刻也只有第二个数码管显示“2”,依次类推第N时刻就只有第N个数码管显示“N”。
人的肉眼只能分辨0.1秒内的变化,所以如果以每一时刻0.01秒的频率循环变化,在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,看起来就感觉每一个数码管都被点亮了,显示“123456”[]。
3.3总体电路设计
图3-5总体电路设计
第4章系统软件设计
4.1系统软件的概述
本系统的工作流程为:
通过键盘扫描来实现几种不同的功能,刚开始是设置的初始密码“123456”通过数码管来显示,用10个按键来输入0到9这从右到左依次输入,还用其余几个按键来显示密码,修改密码,开锁等。
当开锁按钮被按下时,如果数码管与当前显示值相同,则点亮LED1;当数码管值不同时,则点亮LED2,并且立刻发出报警声音[]。
主程序流程图如图4-1所示,
图4-1主程序流程图
主程序说明:
单片机复位后进入初始化把初始密码“123456”依次存放到40H到45H六个单元中,把30H到35H六个单元设置为六位数码管显示数据的存放地址,调用扫描子程序对键盘进行扫描。
如果有按键被按下则跳转到相应的子程序,再调用显示子程序把30H到35H六个单元的数据给六个数码管显示出来。
显示完毕就跳到扫描子程序继续对键盘进行扫描,如此循环。
4.2子程序的设计
4.2.1键盘扫描子程序
键盘扫描程序说明:
在这里采用的是逐行扫描法,首先识别有无键按下。
当检测到有键按下后,延时一段时间再做下一步的检测判断,这是为了防止是抖动干扰造成错误识别,继而进行确定具体闭合键的过程。
找到闭合键,根据键码表计算键值,每个按键都可通过程序赋予功能,从而完成密码识别,这样交替循环便可完成对4×4键盘的扫描[]。
图4-3键盘扫描子程序流程图
4.2.2开锁子程序
开锁程序说明:
初始密码“123456”存放在40H到45H六个单元中,六位数码管显示的从键盘输入的数据存放在30H到35H六个单元中,判断30H到35H单元里的数据与40H到45H单元里的数据是否相同,如果相同,开锁成功绿灯亮;如果不相同,则密码输入错误,红灯亮且蜂鸣器响[]。
程序流程图如图4-5所示
图4-5开锁子程序流程图图
4.2.3修改密码子程序
由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等。
每个功能模块都有它自己的子程序。
修改密码程序说明:
当输入密码后,判断绿灯是否已点亮,点亮则说明密码正确开锁成功可以修改密码,否则不修改[]。
图4-6修改密码子程序流程
结束语
在做毕业论文期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨大的收获,思想上,学会了用科学的精神去解决问题。
很多事情看起来是很简单的问题,但实际做起来去会发现有许多奥妙!
这是因为其中蕴含着许多科学的问题。
学习上,使自已所学的知识在这次得到实践,学到一些书本上无法学到的经验,对单片机有了进一步的认识。
不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,特别是功能按键的设定。
但因为我的水平有限,此电路中也存在一定的问题。
譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但由于过于复杂,本设计并未加入。
另外由于画线、电路问题,仿真结果并未有完成显示,相关功能也没有实现,所以很遗憾!
电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,
将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。
谢谢
本论文的完成是导师李瑞锋老师的细心指导下进行的。
在本次论文设计过程中,老师对该论文从选题、构思到最后定稿的各个环节给予细心指引与教导,在每次设计遇到问题时老师不辞辛苦的讲解才使得我的论文设计顺利的进行。
从设计的选题直至最后论文的修改的整个过程中,花费了高老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!
我们通过这次毕业论文设计,极大地提高了动手能力,磨练了意志,同时也培养了自主创新的意识。
再次感谢我的指导老师和在此设计过程中帮助我的一些同学,在你们的指导和帮助下,我才能顺利的完成这次毕业设计。
在此,谨向老师同学和朋友致以衷心的感谢和崇高的敬意!
参考文献
[1]沈德金,陈粤初.单片机接口电路与应用程序设计[M].北京:
航空航天大学出版社,1990.123-135.
[2]王宽仁.可靠安全的智能密码锁[J].电子技术应用,2001,27
(2):
14.
[3]张毅刚等.MCS-51单片机应用设计[M].黑龙江:
哈尔滨工业大学出版社,2004.105-109.
[4]郭海英.基于单片机的电子安全密码锁的设计[J].现代电技术,2005,28(13):
95-96.
[5]何立民.单片机应用技术选编[M].北京:
航空航天大学出版社,1999.66-80.
[6]刘焕平.单片机原理及应用[M].北京:
北京邮电出版社,2008.155-179.
[7]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001.90-95.
[8]何宏主编.单片机原理与接口技术[M].北京:
国防工业出版社,2006.59-63.
[9]邱燕,邓鹏戈.数字电子密码锁[J].现代电