安防电子责任编辑:万翀采用AT89C51的电子密码锁的设计The Design of Electronic Password Lock Based on AT89C51 戴文雯 南京航空航天大学(江苏 南京 210016)摘要:设计了一种以单片机AT89C51为核心的电子密码锁,从硬件和软件两方面详细介绍了电子密码锁的设计方法,Proteus软件仿真结果表明,该电子密码锁的设计达到了预期的目标,具有密码正确开锁、错误报警以及密码重置等功能。本文网络版地址:http://www.eepw.com.cn/article/170168.htm关键词:单片机;AT89C51;电子密码锁;仿真DOI: 10.3969/j.issn.1005-5517.2013.10.016入,若密码正确,则将锁打开,密码可由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时需要二次确认,以防止误操作。具有报警和键盘锁定功能。密码输入错误时数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。设计原理用户通过连接单片机的矩阵键盘输入密码,单片机将用户输入的密码与预先保存的密码进行对比,从而判断密码是否正确。单片机相关引脚产生高低电平传到开锁电路或者报警电路控制开锁或者报警。引言 在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要采用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具的缺陷,用密码代替钥匙的密码锁应运而生。电子密码锁的设计方案有多种,可以采用数字电路或单片机控制方案。前者是基于硬件平台,电路升级时需要更换元器件,麻烦且增加成本。以单片机为核心的设计方案,可以利用灵活的编程设计升级相关功能,扩大应用面,降低成本。文中以单片机AT89C51为核心设计了一种可多次更改设置密码,并在密码输入错误次数超过3次时能自动报警并锁定键盘的硬件设计根据设计需求,硬件设计主要包括以下几个模块:键盘输入模块、数码管显示模块、报警模块、密码存储模块、电源模块等。相应的硬件设计原理框图如图1所示。键盘输入模块本设计中共设置了16个按键,包括数字键0~9,以及功能键确认、清除等。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。本设计中采用了4*3的矩阵键盘,如图2所示。图2 矩阵式扫描键盘电子密码锁。总体设计设计需求图1 硬件设计原理框图设置6位密码,密码通过键盘输84612013.10www.eepw.com.cn责任编辑:万翀Electronic Security现发声提示。 软件设计单片机电子密码锁软件设计主要图4 蜂鸣器电路制电路如图3所示。 数码管有静态显示和动态显示两图3 数码管控制电路 在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,AT89C51一个端口(如P3口)就可以构成4*4=16个按键,与直接将P3端口接单个按键相比,键盘数目多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。数码管显示模块显示模块采用常见的七段数码管实现。数码管的八个段码输入端由AT89C51的P0口控制,八个位码输入端由AT89C51的P2口控制。数码管控种显示方式,相比于静态显示方式,动态显示在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示画面,不会有闪烁感,在显示效果上和静态显示是一致的,但动态显示能节省大量的I/O口,降低硬件电路的复杂性,而且功耗更低。在本设计中采用的是动态显示方式。蜂鸣器报警模块密码输入错误次数超过3次时可通过蜂鸣器鸣叫报警。蜂鸣器报警电路如图4所示。本设计中采用压电式蜂鸣器,利用单片机 P1.7端口外接的三极管的电流放大作用驱动蜂鸣器实包括以下几个模块:主程序模块,数码管显示模块,矩阵键盘扫描模块,键功能程序模块,密码重设模块,延时模块,蜂鸣器报警模块。主程序流程图如图5所示。包括键盘扫描和键功能程序两部分。 系统启动后不断进行键盘扫描,判断是否有键按下。若无键按下则继续扫描,有键按下则转入键功能模块判别按下的是什么功能键,然后转入相应的功能程序,功能程序执行完毕后转到键盘扫描程序循环操作。矩阵键盘扫描模块本设计中采用行扫描法进行按键识别。由于采用机械式的按键,在按键过程中会产生抖动现象,为避免单图5 主程序流程图图6 键功能程序流程图图7 密码设置模块流程图www.eepw.com.cn2013.1085625830安防电子责任编辑:万翀 MOV VAL,A ;键值存入VAL中键功能程序模块电子密码锁按键共分4大部分:图8 显示模块仿真0~9数字按键部分、开锁按键部分、密码设置按键部分、确认按键部分。图11 等待输入新密码仿真键功能程序模块流程图如图6所示。密码设置模块本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘图9 开锁仿真输入正确的密码才能将锁打开。若提示密码输入错误,为提高安全性,当密码输入错误三次将报警。密码可图12 新密码设置成功仿真L3: JNB LCALL JNB MOV LJMP 图10 密码设置仿真片机误判为多次输入同一按键,必须进行消抖处理。设计中采用软件延时的方法进行消抖。在检测出有键按下后执行延时程序,前沿抖动消失后,再次检测按键状态。相关程序段如下:LSCAN: MOV P3,#0F0H;扫描行码L1: JNB LCALL JNB MOV LJMP L2: JNB LCALL JNB MOV LJMP P3.0,L2 DLY_SP3.0,L2LINE,#00HRSCANP3.1,L3DLY_SP3.1,L3 RSCAN LINE,#01HL4: JNB LCALL JNB MOV RSCAN:MOV C1: JNB MOV LJMP C2: JNB MOV LJMP C3: JNB MOV CALCU: A,LINE MOV MUL ADD P3.2,L4 DLY_SP3.2,L4LINE,#02HRSCANP3.3,A0DLY_SP3.3,A0LINE,#03HP3,#0FH;扫描列码P3.4,C2ROW,#00HCALCUP3.5,C3ROW,#01HCALCU P3.6,C1 ROW,#02HMOV B,#03H AB A,ROW ;计算键值 由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时需要二次确认,以防止误操作。密码设置模块的流程图如图7所示。 基于Proteus的系统仿真Proteus软件不仅能仿真单片机的工作情况,还能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。本设计经仿真后,实现了预期的电子密码锁的功能。显示模块仿真出于对用户隐私的保护,密码锁输入密码时数码管用字符“-”取代输入的数字,每输入一位密码显示一位“-”,如图8所示。开锁模块仿真密码锁在输入六位正确密码后实现开锁功能。仿真中单片机P1.0接发光二极管D1,输入六位密码,按下确定按键则P1.0被置零,D1点亮表示开锁成功,如图9所示。密码设置模块仿真86632013.10www.eepw.com.cn责任编辑:万翀Electronic Security接下来输入六位新密码,设置密码要输入两次新密码,而且两次输入的密码必须相同才能成功设置否则报错。第一次输入六位密码然后按下确定键,第二次再一次输入新密码,按下确认键,若两次密码相同则点亮发光二极管D5。D5亮起表示两次输入的密码相同,密码设置成功,如图12所示。 参考文献:[1] 邱娟.电子密码锁的设计[J].硅谷, 2012[2] 周立功.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2006[3] 韩军团.基于单片机的电子密码锁设计[J].研究与开发,2012,(07)[4] 曹建林,孙捷,孙雪颖等.电子密码锁设计[J].成都信息工程学院学报,2010(04)[5] 周润景,袁伟亭,景晓松. Proteus在MCS-51&ARM7系统中的应用百例[M].北京:电子工业出版社,2006[6] 郑棣,徐迎春.基于单片机的电子密码锁设计[J].福建电脑,2012(09)在开锁状态下按下密码设置键则进入密码设置状态。此时把P1.5置零,点亮发光二极管D2。D2点亮表示现在处于密码设置状态,如图10所示。进入密码设置后按照设计要求还要再次输入一次旧密码提高安全性以及防止误操作。再次输入六位密码,若密码错误则蜂鸣器报警。若输入的六位密码正确则点亮发光二极管D3表示旧密码输入正确可以输入新密码,如图11所示。文中设计的基于AT89C51的电子密码锁具有简单的软硬件设计电路、低廉的开发成本、简便的操作方法,并通过Proteus仿真实现了预期的功能,具有一定的推广价值。结语TE CONNECTIVITY调查发现无人驾驶汽车技术应用中安全问题最受消费者关注TE Connectivity于近日公布了其关于无人驾驶汽车的调查结果,该调查旨在考察消费者对“无人驾驶”汽车的态度。据对1000名美国成年人的调查显示,大多数消费者尚未接受无人驾驶汽车理念。 近70%的受访者表示,他们在无人驾驶汽车中会感到不适。近30%的消费者在调查中表示愿意乘坐采用无人驾驶技术的汽车。超过半数(55%)的受访者把安全视为无人驾驶汽车最重要的因素,他们认为在此类汽车被公众接受之前,安全因素必须得以加强提升。当被问及在无人驾驶汽车被广泛应用之前,希望哪一技术得到进一步改善时,绝大多数受访者认为安全性能(55%)的优先级远高于更多元化的“信息娱乐”系统(4%)。消费者指出,安全方面的创新,如车道控制、自动紧急刹车,以及探测车辆周围的人和物的传感功能等,比提升信息娱乐系统更为重要。在消费者最关心的无人驾驶汽车的功能方面,大多数受访者(76%)表示对车辆的零操控、更高的速度性能以及无需驾驶员控制便自动导航到达目的地是他们最为担忧的功能。而60%的消费者则表示不愿意完全放弃对汽车的控制,25%的男性受访者和13%的女性受访者表示对无人驾驶汽车的所有功能都不担忧,男性明显多于女性。 提高燃油效率被22%的受访者视为无人驾驶汽车最大的优势。减少交通拥堵(21%)、免除驾驶员对车辆的操控和导航职责(13%)、提高生产力(11%)以及增加速度上限(4%)等其他优势也被受访者所青睐。相较于65岁以上的被调查者,年龄介于18-54岁的受访者更倾向于将提高生产力(即:免除驾驶从而可以执行多项其他任务)视为无人驾驶汽车极为重要的优势。此外,与女性(24%)相比,更多男性(34%)表示他们会采用无人驾驶技术车辆。调查结果还显示出不同年龄之间的差异,18-34岁的受访者(38%)的接受程度超过55-64岁(20%)以及65岁以上(18%)的受访者。有趣的是,在子女达到驾龄(13-17岁)的受访者中,有70%的人表示他们对无人驾驶汽车有所顾虑。www.eepw.com.cn2013.1087645830