资源描述:
《单片机电子密码锁论文63547》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中文摘要摘要:在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差
2、的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,
3、一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。基于以上思路,本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能:(1)密码通过键盘输入,若密码正确,则将锁打开。19(2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密
4、码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。第二步,使用DXP2004设计硬件电路原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万
5、能板焊接的方法)。第三步,使用KeiluVision3软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认19鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.4所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。第四章软件设计194.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入
6、密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为"123456"共6位密码。由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。4.2各子程序设计1键盘扫描子
7、程序键盘扫描流程图如图4.2.119图4.2.1键盘扫描流程图键盘扫描子程序如下:L2:MOVR3,#0F7HMOVR1,#00HL3:MOVA,R3MOVP1,AMOVA,P1MOVR4,ASETBC19MOVR5,#04HL4:RLCAJNCKEYININCR1DJNZR5,L4CALLDISPMOVA,R3SETBCRRCAMOVR3,AJCL3JMPL22LED显示子程序LED显示流程图如图4.2.2图4.2.2LED显示流程图19LED显示子程序如下:DISP:MOVR0,#45HDISP1:MOVA,@R0A
8、DDA,#50HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#40HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#30HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#20HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#10