40电子密码锁课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录摘要..........................................(03)关键字........................................(03)1前言..........................................(04)2系统设计......................................(04)2.1电子密码锁的工作原理......................(04)2.2系统硬件组成..............................(04)2.3矩阵键盘扫面工作原理......................(05)2.4LED数码管动态显示原理.....................(05)2.5电子密码锁系统硬件设计...................(06)2.6电子密码锁系统软件设计...................(07)3设计体会与结论................................(07)4附录...........................................(08)5参考文献.......................................(13)摘要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下:1.保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2.密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3.误码输入保护。当输入密码多次错误时,报警系统自动启动。4.电子密码锁操作简单易行,一学即会。关键字;单片机LED数码管矩阵键盘密码锁AbstractElectronicCodeLockisapasswordinputthroughthecontrolcircuit,orchip,thuscontrollingtheclosedmechanicalswitchtocompletethelock,closedthetaskofelectronicproducts.Itisofmanytypes,haveasimplecircuitproducts,butalsothehighercostchip-basedproducts.Nowthewidelyusedelectroniccodelockisachipatthecore,achievedthroughprogramming.Performanceandsafetyhavegreatlyexceededthemechanicallock,thefollowingfeatures:1.Privacyisgood,codingquantityisfargreaterthanthespringlock.Randomunlockingsuccessrateisalmostzero.2.Passwordvariable.Userscanalwayschangethepassword,topreventpasswordtheft,butalsoavoidsthelockbecauseofstaffturnoverErShianddrawingdown.3.Errorinputprotection.Whenyouenteryourpasswordwrongseveraltimes,thealarmsystemstartedautomatically.4.E-lockoperationissimple,aschoolthatwill.Keywords;MCULEDdigitaltubematrixkeypadlock1前言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。2系统设计2.1电子密码锁的工作原理电子密码锁是以51系列单片机(AT89C51)为核心,配以相应硬件电路,完成密码的识别和显示、驱动电磁执行器并检测其驱动电流值。单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。2.2系统硬件组成如图(1)所示,系统采用单片机ATC89C51作为控制的核心,完成系统的控制操作。单片机核心接受来自键盘扫面电路的道德键值,判断是数字键还是操作键,并送相应的处理程序。单片机提供动态扫描电路的显示码和位选信号,使动态显示电路正常工作。键盘扫面电路采用4*4键盘,编号0~9做为数字键“0~9”,编号14做为关锁操作功能键,编号15做为确定功能键。编号13为修改密码键,编号12作为电子锁报警后的解锁键,编号11为清除显示屏键。动态扫描电路采用4块LED数码管,利用人眼的延迟效应通过合理的软件设计使显示电路显示数字。供电采用5V直流电压电源2.3矩阵键盘扫描工作原理矩阵式键盘又成为行列式键盘,是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,如图()所示。这种设计减少键盘与单片机I/O接线的数目。只需要N个行线和M个列线就可以实现N*M个键的操作。行扫描法识别键值的原理(1)将第0行变为低电平,其余行为高电平,输出编码为1110.然后读取列的电平,判别第0行是否有键按下。在第0行上若有键按下,则相应的列被拉低为低电平,则表示第0行和此列相交的位置上有键按下,进而判别哪一列有键按下。若没有任一条列线为低电平,则说明0行上无键按下。(2)用此方法扫描第1行,第2行,第3行,判断是哪个键按下。由此指出,按键的位置码比不等于按键的实际定义键值,因此还需要进行转换。2.4LED数码管动态显示原理将所有的位选线并联在一起,由一个8位I/O口控制,实现各位的分时选通。如图()所示。2.5电子密码锁系统硬件设计键盘部分如图()所示,采用行列式键盘,P1口作为与行列式键盘的接口。低四位做为行选线,高四位作为列选线。采用逐行扫描的方法完成。LED动态显示部分采用7SEG-MPX4-CC八段数码管,总共有四个八段数码管,共阴极的方法,未选信号为低电平有效。数据接口与P2相连,P2.0~P2.7对应a~dp。未选信号与P3相连,P3.0~P3.3对应4~1.仿真电灯一端与P0.0相连,另一端与5V的直流电源相连。2.6电子密码锁系统软件设计软件是系统的核心,控制硬件的工作。对于单片机的开发,可以采用C语言,也可以采用汇编语言。本次设计中,开发了两套软件分别使用C语言和汇编语言。从可读性来讲C语言相对要好一点。从简洁性来说汇编要好一点。详细代码参见附录。流程图参见附录图(9)软件分析:以C语言为例。系统的参数传递采用全局变量的形式全局变量有:ucharoutput[4];ucharinput[4];ucharled[16]={0x3f,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};ucharf0=1;ucharpass[4]={4,3,2,1};sbitp0_0=P0^0;数组output用于存储用于数码管输出的码值,input用于存储按键的键值led用于查表,存储数码管的对应编码,f0为密码配对标志,为1表示密码正确,否责密码不正确,pass用于存放密码,p0_0为P0.0口。采用C语言与汇编混合编程,C作为主函数调用汇编子程序scan(),通过寄存器传递参数。主要函数为scan(),完成对键盘的扫描并返回扫描的键值。Sodesw(),完成从键值到显示数码管码值的转换。display(),完成动态显示数码管。cmp(),完成输入密码与系统密码的比较,正确则开锁,错误不开。clean(),完成对输入的密码的清除。各部分的工作,如流程图所示,图()3.体会与结论4.附录方案一:C程序中有一个小错误,但是是致命的。作为学习只用,请你找出来。若是找不到,请联系红狐狸,zhaowei153@126.com。但是方案二的汇编实现是可以用的。c语言代码://mimasuo.c#includereg51.h#defineucharunsignedchar#defineuintunsignedintexternucharscan(void);ucharoutput[4];ucharinput[4];ucharled[16]={0x3f,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};ucharf0=0;ucharpass[4]={4,3,2,1};uchartoppass[4]={8,8,6,6};sbitp0_0=P0^0;sbitp0_1=P0^1;sbitp0_2=P0^2;sbitp0_3=P0^3;voidcodesw(void){inti;for(i=0;i4;i++){output[i]=led[input[i]];}}voiddisplay(void){chari;chark,j;ucharselect;codesw();select=0xfe;for(i=0;i4;i++){P3=select;P2=output[i];for(k=0;k=70;k++){for(j=0;j=10;j++);}select=~select;select=1;select=~select;}}voidcmp(void){chari;if(p0_3==0){for(i=0;i4;i++){if(input[i]!=toppass[i])break;}if(i=4){f0=1;}elsef0=0;}else{for(i=0;i4;i++){if(input[i]!=pass[i])break;}if(i=4){f0=1;}elsef0=0;}}voidclean(void){inti;for(i=0;i4;i++)input[i]=10;}voidmain(void){ucharkeyno;ucharkeyno1;ucharcounter=0;ucharexpass=0;ucharextoppass=0;p0_0=1;p0_1=1;p0_2=1;clean();while(1){while(1){display();keyno=scan();if((keyno=0x0)&&(keyno=0xf))break;else;}while(1){keyno1=scan();if((keyno=0x0)&&(keyno1=0xf));elsebreak;}if(keyno==0xe){p0_0=1;f0=0;clean();}if(keyno==0xf){if(expass==2){pass[3]=input[3];pass[2]=input[2];pass[1]=input[1];pass[0]=input[0];p0_1=1;expass=0;}elseif((p0_3==0x0)&&(f0==0)){cmp();if(f0!=1){clean();}if(f0==1){counter=0;p0_3=1;p0

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功