基于51单片机的智能密码锁.doc
《基于51单片机的智能密码锁.doc》由会员分享,可在线阅读,更多相关《基于51单片机的智能密码锁.doc(23页珍藏版)》请在咨信网上搜索。
(完整word版)基于51单片机的智能密码锁 单片机的电子密码锁 目录 第一章 绪论..............................................................................................2 1.1电子密码锁简介................................................................................2 1.2电子密码锁设计的背景及意义.............................................................................................3 第2章 总体设计........................................................................................................................3 2.1设计分析................................................................................................................................3 2.2系统结构................................................................................................................................4 第3章 硬件电路设计....................................................................................................................5 3.1单片机最小系统设计............................................................................................................5 3.1.1时钟电路.............................................................................................................................5 3.1.2 复位电路 ..........................................................................................................................6 3.1.3 最小系统 ..........................................................................................................................6 3.2 矩阵键盘设计 .................................................................................................................... 7 3.3 LCD显示模块设计 .............................................................................................................8 3.4 开锁机构 ........................................................................................................................... .9 3.5 报警机构 ........................................................................................................................... .10 3.6 硬件综合设计 ................................................................................................................... .10 第4章 软件设计 .................................................................................................................... ...11 4.1 软件总体设计 .....................................................................................................................11 4.2 键盘扫描子程序 ............................................................................................................... .12 4.3 定时器中断子程序 ..................................................................................................... .......14 4.4 密码输入子程序 .................................................................................................................15 4.5 报警子程序 .........................................................................................................................16 总结 ............................................................................................................................................ .17 参考文献 .................................................................................................................................. ...18 附录 程序源代码 ................................................................................................................... ....19 摘要:本文中将要介绍的单片机电子密码锁是一种通过判断密码输入是否正确来控制电路或是芯片的工作状态,进而控制锁的打开和闭合。本设计是基于STC89C52单片机为控制核心的密码锁设计方案。在本次基于单片机的电子密码锁设计中,将采用STC89C52单片机作为控制核心,配合相应的电路和软件程序,实现密码的输入和修改、信息的显示、键盘的锁定、系统报警、开锁和闭锁等功能。在设计中利用识别密码是否正确来开锁或报警,通过串行存储器AT24C02来实现密码的修改和存储。本文设计的密码锁具有安全性高、功耗低、操作简单等优点。 关键词:单片机;密码锁;矩阵键盘;掉电存储 第1章 绪论 1.1 电子密码锁简介 什么是电子密码锁?“一种通过密码输入来控制电路或者是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。”——百度百科上是这样解释的。简单来说,电子密码锁就是能够实现密码等信息的设置、存贮、识别和显示,以及报警信号的接收和发送等功能的电子器件。 电子密码锁相对传统机械锁有以下几个优势: (1)密码可更改。用户可以随时更改密码,以确保密码锁的安全性和可靠性。可以更改密码这一功能同时也避免了人员的更替而使锁的安全性降低,这是传统钥匙锁所不具备的功能。 (2)操作简单。无论是开锁还是更改密码,只要识字的人都能够直接使用,使用方法简单而不繁琐。 (3) 能够报警。报警功能无疑更增加了锁的安全性。 (4) 无法“技术”破解。不知道密码就无法打开锁,即使是惯偷也只能望“锁”兴叹。 1.2 电子密码锁设计的背景及意义 在现代文明社会中,随着人们生活水平和自身防范意识的提高,个人财产安全和人身安全的问题也越来越受到人们的重视,拥有一把能够有效保证居民财产安全和人身安全的锁具也越发的重要起来。在这样的大环境下,基于单片机的电子密码锁也应运而生。这种电子密码锁是以单片机为核心,配以相应的硬件电路和软件程序,实现密码的设置、存贮、识别和显示,以及报警信号的接收和发送等功能,具有操作快、修改密码简单、安全性高、功耗低等优点。基于单片机的电子密码锁的出现使人们的自身财产安全有了更多的保障,也使人们出行更为方便。 第2章 总体设计 2.1 设计分析 一个电子密码锁,应该能实现以下功能: (1)能够从键盘中输入密码,并相应地在显示器上显示*; (2)能够判断密码是否正确,正确则开锁 ,错误则输出相应信息; (3)能够实现密码的修改; (4)断电或者单片机复位后能够保存之前的操作,比如密码的修改; (5)在操作错误达到一定次数后能够报警; (6)在一定时间内没有任何按键操作则关闭显示器,并锁定键盘,禁止键盘输入(单片机复位后锁定取消); (7)设置一个备用密码。为了防止用户忘记密码而开不了锁,应该在经常使用的密码外再设置一个备用密码以防万一。此备用密码应该只有少数人知道,比如小区管理员。 根据以上分析,本次电子密码锁设计的主要重点是以下几个部分4x4矩阵键盘设计、LCD信息显示、密码的掉电存储和密码的比较和处理。当然,除了这几个部分外还有定时器/计数器计时中断和报警等功能模块。基于实际情况,在设计中,用发光二极管代替电磁锁,二极管亮则代表锁开,二极管不亮则代表锁关。 2.2 系统结构 本设计系统主要由单片机芯片、矩阵键盘、LCD显示模块、掉电存储模块、报警机构和开锁机构组成。如图2-1所示。 图2-1 系统总体设计结构图 时钟电路给单片机提供晶振频率,复位电路不但使单片机上电复位,还能在使用过程中通过需要通过按键再次手动复位,矩阵键盘提供按键的输入,LCD模块显示信息,掉电存储负责密码的存储,开锁机构和报警机构分别负责开锁和报警功能。 设计中,单片机选用STC89C52,LCD显示模块选用LCD1602液晶显示器,串行存储器选用电可擦除存储器AT24C02,开锁机构用发光二极管代替,报警机构选用蜂鸣器。 第3章 硬件电路设计 3.1 单片机最小系统设计 单片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。 3.1.1 时钟电路 单片机工作需要晶振给CPU提供频率,时钟电路就是给单片机提供晶振频率的电路。图3-1是时钟电路的PROTEUS仿真图。 图3-1 时钟电路 单片机允许的振荡晶体可在1.2~24MHz之间选择,一般为11.0592MHz,电容C2,C3的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20~100pF之间选择,典型值位30pF。 3.1.2 复位电路 计算机每次开始工作,CPU和系统中的其他部件都必须要有一个确定的初值,即复位状态。图3-2是单片机复位电路仿真图。 图3-2 复位电路 单片机RST引脚是高电平有效。单片机在上电瞬间C1充电,RST引脚端出现正脉冲,只要RST断保持两个机械周期(大约10ms)以上的高电平,单片机就能复位。在单片机工作后,如果还想再次复位,只需按下开关,单片机就能重新变成复位状态。 3.1.3 最小系统 单片机加上时钟电路和复位电路就构成了能使其正常工作的最小系统。 图3-3是单片机最小系统的完整仿真图。 图3-3 单片机最小系统 3.2 矩阵键盘设计 一组键或者一个键盘,需要通过接口电路和CPU相连接,CPU可以采用查询接口或者中断的方式了解有没有键被按下,并检查是哪个键被按下。无论是查询方式还是中断方式都要用到单片机的I/O口。由于单片机I/O口较少的原因,当系统中需要用到较多按键时,为了能够更合理更有效地利用单片机的I/O口,一般采用矩阵键盘的方式来实现多按键的功能。 图3-4是4x4矩阵键盘在PROTEUS中的电路原理仿真图。 图3-4 4x4矩阵键盘 矩阵键盘又叫做行列式键盘。行列式键盘的硬件结构比较简单,由行输出口和列输出口构成行列式键盘,按键设置在行、列交点上。图3-4中,P1.0-P1.3是行输出口,P1.4-P1.7是列输出口。行输出口和列输出口不相交,只有当键被按下时相应的行和列才能相连。如此,只要检测行和列是否相连就可以知道是否有键按下。 3.3 LCD显示模块设计 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。图3-5是PROTEUS中显示模块的仿真图,由于LCD要正常工作必须提供足够的电流,因此在实际应用为了保证显示器能够正常工作,应在数据端口接一上拉电阻。图3-5中RP1同时还是P0口的上拉电阻。 图3-5 LCD模块仿真图 3.4 开锁机构 在基于单片机的电子密码锁设计中,用户需要输入密码,密码正确则发出开锁信号开锁。 因为在设计中是以发光二极管代替电磁锁,二极管亮代表锁开,因此可以设计一个简单的可以点亮二极管的电路系统代替电磁锁开锁机构。如图3-9所示。 图3-6,二极管电路 由于单片机I/O口默认为高电平,故初始时二极管不亮,代表锁是闭着的。当用户输入密码并验证正确时,发出开锁信号,(使P3.6=0)。 3.5报警机构 在这次基于单片机的电子密码锁设计中,通过控制蜂鸣器的发音来实现系统的报警功能。 蜂鸣器是一种采用直流电压供电的电子讯响器。图3-10是用蜂鸣器模拟的报警机构仿真图。 图3-7,报警机构模拟仿真图 当P3.7口有脉冲信号输入时,蜂鸣器SPEAKER即会发音。通过控制输入脉冲的频率还能控制蜂鸣器的发音频率。 当用户输入密码错误次数达到预设警告次数时系统调用报警子程序,使蜂鸣器发出报警音,同时禁止键盘输入。 3.6 硬件综合设计 根据电路原理,在PROTEUS中画出各功能模块的仿真图,各个功能模块验证正确后,将所有模块集合到一个电路设计图中,画出具有所有功能的总体硬件仿真图。 图3-11即为本设计的硬件综合设计图。 图3-8基于单片机的电子密码锁设计仿真图 待程序编写好后,将KEIL和PROTEUS联调,观察此电路设计图可以知道各个功能模块和器件的工作情况。届时,根据实际情况可以适当修改电路图或者程序,以达到设计的目的。 第4章 软件设计 4.1 软件总体设计 根据电子密码锁的实际应用要求和其应该具有的功能,本次设计的主程序流程图如图4-1所示。 图4-1 主程序流程图 此次基于单片机的电子密码锁设计的软件设计方面的主要问题是如何实现键盘输入、信息显示、密码的掉电存储以及密码的比较和处理,以下附有部分问题的软件处理。 4.2 键盘扫描子程序 矩阵键盘扫描子程序应该具有以下2个基本的功能:(1)能判断是否有键按下;(2)能确定是哪个键被按下。其软件管理主要分为以下三步来完成: (1) 判断整个键盘是否有键按下。 让所有的行为0然后读列的数值。如果列的数值全部为1,说明没有键被按下,否则说明有键被按下。 (2) 识别被按下的键的位置。 采用一行一行的扫描方法,逐行输出0,然后读列的值。如果列的数值全部为1,说明不是这一行的按键被按下,扫描下一行,如果列的数值不全为1,则说明被按下的按键时在这一行。 (3) 查键值表,返回键值对应信息,以便确定各按键应该完成的功能。 本设计中各按键对应键值如表3所示。 表4-1 按键键值表 键盘扫描子程序的流程图如图4-2所示 图4-2 键盘扫描程序流程图 从流程图可以看出,此键盘识别程序是通过逐行扫描来确定是否有键按下,当确定某一行有键按下时,再在该行中确定被按下的是哪一个按键。在本设计中,数字键0~9对应输入数字0~9,功能键A键是确定键B键是取消键,C键是改密码键,D键位闭锁键,E键和F键闲置不用。 4.3 定时器中断子程序 为了防止户主以外的“借用”户主的密码 当没有任何按键被按下的状态持续一段时间后(比如20S内),应该马上关闭显示器屏幕, 同时禁止按键的输入。这样做可以避免因为户主忘记退出系统而使他人有机可乘。图4-7为实现此功能的程序流程图。 图4-7 定时关闭屏幕和锁定键盘输入程序流程图 4.4密码输入子程序 当从键盘输入密码时,应当将输入的密码存放,以便用做密码的相关操作、判断、修改和保存等。同时每输入一位密码应相应地在显示器上显示一个“*”号。图4-8是密码输入子程序的流程图。 图4-8 密码输入程序流程图 输入密码时,当输入的密码位数小于6位的时候,每按下一次数字键就将此数字存入数组。当输入的密码位数不小于6位时,再次按下数字键,程序就不进行任何处理,继续扫描键盘,此时只有按下确定键或者取消键程序才做出相应反应。取消键的功能是退格。当不小心输错密码时,可以退格将输错的位清除,退格一次密码的位数减一位 同时显示器上的“*”个数也减1。当输入的密码位数变为0时,取消键不再起作用。提示:初始密码为:111111 4.5报警子程序 报警子程序的原理很简单,即当输入密码错误次数超过规定的最高允许次数时,不断给蜂鸣器脉冲使其不断发音。同时由于CPU一直在给蜂鸣器提供脉冲 故无暇处理诸如密码扫描等事件,也就是说,在蜂鸣器报警的同时也屏蔽了键盘的输入。 本次设计中,密码输入错误次数不得高于3次。图4-9为报警子程序流程图。 图4-9 报警子程序流程图 总结 本次制作终于完成了,所有设计要求具备的功能都得到了实现具体如下: (1)加电后,单片机自动复位,LCD显示提示输入密码的信息。(2)输入密码时,只逐位显示“*”以防止密码泄漏。 (3)在按键输入的过程中,如果不小心输错,可以清除所输入的错误内容,然后继续输入。 (4)当密码输入完毕并按下确认键后,单片机将输入的密码与设定的密码比较,若密码正确,则打开密码锁,若密码不正确,则无法打开密码锁。 (5)在密码输入错误次数达到预设值时,启动报警程序报警。 (6)可以在开锁后进行密码的修改,但需要两次输入确认。 (7)修改的密码存入AT24C02,不会因为掉电的原因而丢失。 (8)在长时间没有按键输入时,系统锁定显示器,并禁止按键的输入。 由于设计水平有限,此次设计还是存在一些缺陷,比如:(1)报警系统的报警音量不够大,虽然加了一个三极管作为驱动,使得问题得到了改善,但是问题还是没有得到完美的解决。(2)本次设计的实物不够美观,器件布局不够紧凑,造成浪费。 参考文献 [1] 康华光陈大钦.电子技术基础模拟部分[M].北京 高等教育出版社2005. [2] 彭容修.数字电子技术基础.武汉 武汉理工大学出版社2007 [3] 谭浩强.C程序设计[M].北京 清华大学出版社2005 [4] 姜志海黄玉清刘连鑫 .单片机原理及应用.北京 电子工业出版社 2009 [5] 李华.MCS-51系列单片机使用接口技术.北京航空航天大学出版社,1993 [6] 杨欣.王玉凤.51单片机应用实例详解.清华大学出版社 ,2010 [7] 侯宝玉.基于Proteus的51系列单片机设计与仿真[M].北京电子工业出版社2001 附录 部分程序源代码 密码初始化:(初始密码:111111) uchar data kong[7]={'\0','\0','\0','\0','\0','\0',0}; uchar data mima[7]={'1','2','3','4','5','6',0}; uchar data mima0[7]={'\0','\0','\0','\0','\0','\0',0}; uchar data mima1[7]={'\0','\0','\0','\0','\0','\0',0}; uchar data mima2[7]={'\0','\0','\0','\0','\0','\0',0}; uchar data mima3[7]={'\0','\0','\0','\0','\0','\0',0}; uchar data table1[7]={'1','1','1','1','1','1',0}; 报警子程序: void warn() { P37=1;NOP3();NOP3();NOP3(); P37=0;NOP3();NOP3();NOP3();} 定时器子函数: void time( ) { TMOD = 0x01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; EA = 1;ET0 = 1;TR0 = 1; } 定时函数,在一定时间没有键按下,关闭显示器: void time_1( )interrupt 1 // { TH0 = (65536-65536)/256; TL0 = (65536-65536)%256; time_50ms++; if(time_50ms==20) { time_1s++;time_50ms=0; } if(time_1s==20) { write_1602com(0x01); write_1602com(0x0c); time_1s=0; while(1); } } 将输入密码放进数组: uchar enter(uchar password[]) { uchar m=0,j,back=0; for(m=0;;) { j=key_num(); time_50ms=0; time_1s=0; if(j>='0'&&j<='9'&&m<6) { write_1602com(0x06); password[m]=j; m++; write_1602dat('*'); } if(j=='a') { password[m+1]='\0'; return 1; } if(j=='b') { if(m>0) { write_1602com(0x11); write_1602dat(0x20); write_1602com(0x11); password[m]='\0';m--; } } } } 主函数: void main() { uchar k=0,j=0; // Write_nums(mima); mima[0]=Read_add(0x00); mima[1]=Read_add(0x10); mima[2]=Read_add(0x20); mima[3]=Read_add(0x30); mima[4]=Read_add(0x40); mima[5]=Read_add(0x50); time(); initinal(); for(k=0;k<6;k++) { mima0[k]=kong[k]; } for(;strcmp(mima,mima0)!=0;) { enter_password();enter(mima0); if(strcmp(mima,mima0)==0||strcmp(table1,mima0)==0) { welcome(); P36=0; delay1(20); if(strcmp(table1,mima0)==0) break; } else { password_error(); for(k=0;k<6;k++) { mima0[k]=kong[k]; } i++; delay1(20); if(i>=5) { write_1602com(0x01); write_1602com(0x0c); while(1)warn(); } } } 精心整理 学习帮手- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 智能 密码锁
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文