首页 接线图文章正文

89C2051密码锁

接线图 2023年11月07日 18:33 172 admin

89C2051密码锁,89C2051 coded lock

一种能防止多次试探密码的基于单片机的密码锁设计方案,根据用户的10条总体要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。很多行业的许多地方都需要密码锁,但普通密码锁的密码容易被多次试探而破译。本文给出了一种能防止多次试探密码的密码锁设计方法,从而有效地克服了上述缺点。

 硬件电路 图1所示是笔者设计的一种密码锁电路。该密码锁主要 是以下10条特点: (1)总共可以设置8位密码,每位的取值范围为1~8。 (2)用户可以自行设定和修改密码。 (3)按每个密码键时都有声音提示。 (4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。 (5)开锁密码连续错3次要报警1分钟,报警期间输入密码无效,以防窃贼多次试探密码。 (6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。 (7)电磁锁的电磁线圈每次通电5秒,然后恢复初态。 (8)密码键盘上只允许有8个密码按键。锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。

   (9)密码设定完毕后要有2秒的提示音。 (10)成本低,硬件和软件都很简洁可靠,易于批量生产。 根据总体要求分析,该密码锁电路所需要的I/O口线少于15个,若设计得当,程序不会超过200条指令,所以可选择质优价廉的AT89C1051/2051或者GMS1051/2051,而且不需要外接程序存储器和数据存储器及其它扩展部件,所以成本很经济。 89C2051密码锁  第1张 图1 电磁锁原理图 在图1所示电路中,P1口连接8个密码按键AN1~AN8,开锁 信号由P3.2输出,报警和提示音由P3.7输出。BL是用于报警与声音提示的喇叭,K是继电器控制电磁线圈。

 软件设计 图2给出了该单片机密码锁电路的软件流程图。图中AA1~AA8以及START、SET、SAVE是程序中的标号,是为了理解程序而专门标在流程图的对应位置的,分析程序时可以仔细对照参考。 3.1 存储单元的分配 该密码锁中RAM存储单元的分配方案如下: 31H~38H:依次存放8位设定的密码,首位密码存放在31H单元; R0:指向密码地址; R2:已经键入密码的位数; R3:存放允许的错码次数3与实际错码次数的差值; R4至R7:延时用; 00H:错码标志位。 对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从0030H单元(其它地址也可以)开始存放主程序。
89C2051密码锁  第2张 图2  电磁锁程序流程图
     源程序 下面是该电子密码锁的软件源程序代码: ORG 0000H AJMP START ORG 0030H START:ACALL BP MOV R0,#31H MOV R2,#8 SET: MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH,L8 AJMP SET L8: ACALL DELAY CJNE A,#0FFH,SAVE AJMP SET SAVE: ACALL BP MOV @R0A INC R0 DJNZ R2,SET MOV R5,#16 D2S: ACALL BP DJNZ R5,D2S MOV R0,#31H MOV R3,#3 AA1: MOV R2,#8 AA2: MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH, L9 AJMP AA2 L9 ACALL DELAY CJNE A,#0FFH,AA3 AJMP AA2 AA3: ACALL BP CLR C SUBB A, @R0 INC R0 CJNE A,#00H,AA4 AJMP AA5 AA4: SETB 00H AA5: DJNZ R2,AA2 JB 00HAA6 CLR P3.5 L3 MOV R5,#8 ACALL BP DJNZ R4,L3 MOV R3,#3 SETB P3.5 AJMP AA1 AA6: DJNZ R3,AA7 MOV R5,#24 L5: MOV R4,#200 L4: ACALL BP DJNZ R4,L4 DJNZ R5,L5 MOV R3,#3 AA7: MOV R5,#40 ACALL BP DJNZ R5,AA7 AA8: CLR 00H AJMP AA1 BP: CLR P3.7 MOV R7,#250 L2: MOV R6,#124 L1: DJNZ R6,L1 CPL P3.7 DJNZ R7,L2 SETB P3.7 RET DELAYMOV R7,#20 L7: MOV R6,#125 L6: DJNZ R6,L6 DJNZ R7,L7 RET END 

 应用说明 若按键AN1~AN7分别代表数码1~7,按键AN0代表数码8。在没有键按下时,P1.0~P1.7全是高电平1,若某个键被按下,相应的口线就变为低电平0。假如设定的密码是61234578,当按键AN6被按下时,P1.6变为低电平,P1端口其余口线为高电平,此时从P1端口读入的数值为10111111,存到31H单元的密码值就是10111111,也就是BFH。依此类推,存到32H至38H单元的密码值分别是FDH、FBH、F7H、EFH、DFH、7FH、FEH。开锁时必须先按AN6,使从P1口读入的第一个密码值与31H单元存储的设定值相同,再顺序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能开锁。否则不能开锁,同时开始报警。

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: 89C2051 密码锁电路

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349