经济/安全的电子密码锁电路设计与分析

图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,而且不需要外接程序存储器和数据存储器及其它扩展部件,所以成本很经济。
图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单元(其它地址也可以)开始存放主程序。
图2 电磁锁程序流程图
评论