多用户密码锁的设计

分享到:

安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
    文中设计的电子密码锁和市面销售的AB锁有类似之处,但主要区别在于设计的这个密码锁由主人决定客人进入的密码,不需要通过换锁来防止用过该锁的人再次进入,而且只有主人才有对密码的修改权。

1 方案设计思想
   
文中的多用户密码锁设有一个管理员用户,管理员对密码有修改权。另设有两个来宾用户,可以根据管理员提供的密码开锁,自己则不可以任意修改密码。更换住户时,只需要管理员更换密码即可,这样就避免了换锁带来的麻烦,节约了成本。
    密码锁的设计采用通用板制作,所以涉及到元器件的排布和走线问题。由于带有一个管理员用户(主人用户),可以对自己和两个来宾用户的密码进行修改,而且还要限制两个来宾用户的对密码的修改权。所以,在密码修改程序上需要精心处理,在进入密码修改程序时有两个条件。首先,是主用户进入的系统;其次是密码修改按键被按下。在密码输入程序上也要特别的注意,区分并确认是哪个用户进入当前系统,即用户名和密码需对号入座,这也是设计的关键所在。

2 系统结构与原理
2.1 系统结构

    多用户密码锁电路设计共分为6部分:电源、用户显示单元、晶振电路、键盘电路、编程控制部分、功能显示单元。通过排版、布局,把这6个部分组合起来,构成一个完整的多用户密码锁控制电路,如图1所示。


2.2 系统原理
    首先,要有晶振电路产生工作时钟送至单片机内部的各个部件使其正常工作。其次,用AT89C5l的并行口P1接4×4矩阵键盘,以P1.0~P1.3作输出线,以P1.4~P1.7作输入线。矩阵的行线和列线分别通过两并行接口和CPU通信。通过扫描得出的行值和列值的组合来识别被按下的按键的编码以完成密码的输入、用户名的输入和切换,以及确定、取消命令、密码修改命令、用户切换命令和关锁命令的输入。再者,单片机通过P2口将要显示的数据信号传送到数码管,直接控制数码管的显示,从而点亮数码管,显示当前用户。整个系统实现了各种信号提示功能的实现。

3 各功能模块电路设计
3.1 键盘电路

    密码锁要输入密码就肯定要使用键盘。设计的是4×4的键盘,除了0~9这10个数字键之外,还有“确定”、“取消”、“密码修改”、“关锁”、“用户切换”、和“显示开关”。4×4矩阵排列能有效的节约端口资源,避免使用端口扩展模块。键盘安装时,按键按照4×4格式进行矩阵排列。在P1.4~P1.7输出线上接拉高电阻,让端口能准确的置高、置低。拉高电阻的另一端则连接在一起接5 V电源。电路如图2所示。


3.2 显示电路
    电路主要使用七段数码管。单片机通过P2口将要显示的数据信号传送到数码管,直接控制数码管的显示,从而点亮数码管。由于单片机的时钟频率达到12 MHz,所以,看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。由单片机控制数码管显示1~3,分别表示3个用户。硬件电路主要是7段显示译码器的a~g对应接到单片机的P2.0~P2.6,通过查表得到要显示的数值。电路如图3所示。

4 软件设计
4.1 软件设计思想

    整个系统的设计重点在于区分3个用户的进入。只有主用户进入之后才可以对自己及客人用户的密码进行修改。其他用户进入是不可以对自己的密码进行修改的。
    程序设计主要包括了密码修改程序、密码输入程序、报警程序、控键扫描程序、数字键转换程序和功能键转换程序。在整个程序的运行过程中,控键扫描程序放在中断服务子程序中,每隔150ms进行一次扫描。密码修改程序,在设计中每个用户进入系统时都已加了标注,以确保密码被修改时可以准确的分辨出修改密码的用户是哪个,用户对密码是否有修改权。

4.2 主程序的设计
    先判断密码是否输入,如密码输入,则将密码输入到密码输入缓冲区,密码输入完成,确认后进行密码比对,区别出哪个用户进入密码锁系统,比对成功之后用标志位区别主人用户和来宾用户。在密码修改程序中。首先,判断是否是主人用户。其次,判断是否有密码修改要求,在满足上述两个条件的情况下再进入密码修改程序。两次新密码的输入相同话则表示密码修改成功。接下来是报警子程序,用寄存器累加连续输入的错误密码的次数,达到3次则产生报警信号。最后是显示子程序,用来显示当前进入系统的用户。主程序流程图如图4所示。

 



5 结束语
    文中设计的密码锁既能确保密码可以被有权用户进行修改,还有限制用户对自己或别人密码进行修改等功能。以AT89C52单片机芯片为核心,同时给出系统总体设计方案,硬件模块电路及软件设计。