课程设计密码锁
- 格式:doc
- 大小:812.50 KB
- 文档页数:19
《单片机原理及应用》课程设计题目基于89S52单片机的密码锁设计学生姓名董亚学号20091341044学院信息与控制学院专业测控技术与仪器指导教师孙伟二O一二年六月八日基于AT89S52单片机的密码锁设计前言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
本系统由AT89C52单片机系统(主要是AT89C52单片机最小系统)、8位数键盘,蜂鸣器报警,继电器控制等组成,具有设置、修改8位用户密码、超过3次次报警、密码错误报警等功能。
除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用。
这种能防止多次试探密码的单片机应用前景广泛。
电子密码锁发展趋势电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:1、授予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款。
目前,金融行业电子密码锁的应用主要集中在前两个层面上。
下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子密码锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。
提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。
报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
一、项目要求基于AT89S52单片机的密码锁设计,具体功能如下:(1)总共可以设置8位密码,每位密码值范围1—8。
(2)用户可以自行设定和修改密码。
(3)按每个密码键是都有声音提示。
(4)若键入的8位开锁密码不完全正确,则报警5s,以提醒他人注意。
(5)开锁密码连续错3次要报警1分钟,报警期间输入密码无效,以防止窃贼多次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1s的提示音。
(7)电磁锁的电磁线每次通电5s,然后恢复初态。
(8)密码键盘上只允许有8个密码锁按键。
锁内有备用电池,只有内部上点恢复时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。
(9)密码设定完毕后要有2s提示音。
二、系统设计按照系统设计要求和功能,将系统分为主控模块,按键扫描模块,蜂鸣器,电源电路,复位电路,晶振电路,驱动电路几个模块,系统框图如图所示。
主控模块采用AT89S52单片机。
基于AT89S52单片机的密码锁组成框图三、硬件设计1.电路原理图:系统硬件电路图如图10-2所示,PI口接密码按键,开锁脉冲由P3.2输出,报警和提示音由P3.7输出,按键a~h分别代表数字0~7.若没有按键按下,则P1.0~P1.7全是高电平;若某按键被按下,则相应的口线为低电平。
2、proteus仿真图:3、外部晶振电路:外接石英晶体(或陶瓷谐振器)及电容Cl、C2 接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
此次实验采用使用石英晶体,电容使用30pF±10pF4、复位电路:RST引脚与电源之间接10UF左右的极性电容和在RST与VSS之间接一个电阻(约8.2千欧姆)就可实现加电复位功能。
复位后的状态:a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。
b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。
c、P0~P3口值为FFH。
P0~P3口用作输入口时,必须先写入“1”。
单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。
3、数字按键电路:通过BUTTON 按键接P1口对应端口,通过手动按键给对应的P1口拉致低电平从而改变端口值,从而给出密码值。
4、蜂鸣器:通过8550以及按键控制和软件延时控制蜂鸣器持续工作时间。
5、继电器控制电路:密码正确则8550三极管导通,加以继电器电磁线圈两端5V电压,线圈产生磁场吸引开关打到常开引脚,从而接通发光二极管,从而点亮发光二极管。
6、功能拓展:在P2口接一一位数码管,这样在没按下每一个键则显示对应的数字,这样就可以方便记录密码,以能够一个人设置密码而另外一个人通过被告知的密码而打开相信的电子设备。
7、数码管LG5011AG显示:通过P2输出信号从而控制数码管显示对应的按键编号。
四、元器件清单基于AT89S52单片机的密码锁元件清单如表所示。
五、程序调试:在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的S51文件,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改,由图4.4~图4.8可看出最终调试成功。
图4.4 keil编译程序成功图4.5 keil生成hex文件图4.6 proteus调用keil的hex文件进行仿真六、程序流程图:如图10-3所示给出了该单片机密码锁电路的软件流程图。
图中AA1~AA8以及START、SET、SA VE是程序中的标号,是为了理解程序而专门标在流程图的对应位置的,分析程序时可以仔细对照参考。
该密码锁中RAM存储单元的分配方案如下所示。
*/31H~38H:依次存放8位设定的密码,首位密码存放在31H单元中。
*R0:指向密码地址。
*R2:已经输入密码的位数。
*R3:存放允许的错码次数3与实际错码次数的差值。
*R4~R7:延时用。
*00H:错码标志位。
对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从0030H单元(其他地址也可以)开始存放主程序。
基于AT89S52单片机的密码锁程序流程图①程序清单ORG 0000HAJMP STARTORG 0030HSTART:ACALL BPMOV R0,#31HMOV R2,#8SET: MOV P1,#0FFHMOV A,P1CJNE A,#0FFH,L8AJMP SETL8: ACALL DELAYCJNE A,#0FFH,SAVEAJMP SETSA VE: ACALL BPMOV @R0,AINC R0DJNZ R2,SETMOV R5,#16D2S: ACALL BPDJNZ R5,D2SMOV R0,#31HMOV R3,#3AA1: MOV R2,#8AA2: MOV P1,#0FFHMOV A,P1CJNE A,#0FFH, L9AJMP AA2L9:ACALL DELAYCJNE A,#0FFH,AA3AJMP AA2AA3: ACALL BPCLR CSUBB A, @R0INC R0CJNE A,#00H,AA4AJMP AA5AA4: SETB 00HAA5: DJNZ R2,AA2JB 00H,AA6CLR P3.5L3:MOV R5,#8ACALL BPDJNZ R4,L3MOV R3,#3SETB P3.5AJMP AA1AA6: DJNZ R3,AA7MOV R5,#24L5: MOV R4,#200L4: ACALL BPDJNZ R4,L4DJNZ R5,L5MOV R3,#3AA7: MOV R5,#40ACALL BPDJNZ R5,AA7AA8: CLR 00HAJMP AA1BP: CLR P3.7MOV R7,#250L2: MOV R6,#124L1: DJNZ R6,L1CPL P3.7DJNZ R7,L2SETB P3.7RETDELAY:MOV R7,#250L7: MOV R6,#250L6: DJNZ R6,L6DJNZ R7,L7RETEND②加数码管的程序清单ORG 0000HAJMP STARTORG 0030HTABLE:DB 3FH,06H,5BH,4FH,66H ; 01234 DB 6DH,7DH,07H,7FH ; 46789 START:ACALL BPMOV R0,#31HMOV R2,#8MOV DPTR,#TABLESET1: MOV P1,#0FFHMOV A,P1CJNE A,#0FFH,L8AJMP SET1L8: ACALL DELAYACALL DELAYCJNE A,#0FFH,SA VEAJMP SET1SA VE: ACALL BPACALL LOOP1MOV @R0,AINC R0DJNZ R2,SET1MOV R5,#16D2S: ACALL BPDJNZ R5,D2SMOV R0,#31HMOV R3,#3AA1: MOV R2,#8AA2: MOV P1,#0FFHMOV A,P1CJNE A,#0FFH, L9AJMP AA2L9:ACALL DELAYACALL DELAYCJNE A,#0FFH,AA3AJMP AA2AA3: ACALL BPACALL LOOP1CLR CSUBB A, @R0INC R0CJNE A,#00H,AA4AJMP AA5AA4: SETB 00HAA5: DJNZ R2,AA2JB 00H,AA6CLR P3.2MOV R5,#8L3:ACALL BPDJNZ R5,L3MOV R3,#3SETB P3.2AJMP AA1AA6: DJNZ R3,AA7MOV R5,#24 L5: MOV R4,#200L4: ACALL BPDJNZ R4,L4DJNZ R5,L5MOV R3,#3 AA7: MOV R5,#40ACALL BPDJNZ R5,AA7AA8: CLR 00HAJMP AA1 BP: CLR P3.7MOV R7,#250 L2: MOV R6,#124 L1: DJNZ R6,L1CPL P3.7DJNZ R7,L2SETB P3.7RETLOOP1:MOV R4,#00HMOV 20H,ACPL ACLR CLOOP2:RRC AINC R4JNC LOOP2MOV A,R4MOVC A,@A+DPTRMOV P2,AMOV A,20HRETDELAY:MOV R7,#250L7: MOV R6,#125L6: DJNZ R6,L6DJNZ R7,L7RETEND七、仿真与调试:按键AN1-AN7分别代表数码1-7,按键AN0代表数码8.在没有按键按下时,P1.0-P1.7全是高电平1;若某个按键被按下,相应的口线就变为低电平0,假如设定的密码是612345678,当按键AN6被按下时,P1.6变为低电平,P1端口其余口线为高电平,此时从P1端口读入的数值为10111111,存到31H单元的密码值就是10111111,也就是0BFH。