孙万麟
(昌吉学院 物理系, 新疆 昌吉 831100)
因单片机具有结构简单、运行速度快、控制系统稳定以及使用寿命长等优点,故许多学者采用单片机作为主控器,对电子密码锁控制系统进行设计及仿真,如,田晓翠等采用AT89C51单片机对最基本的键盘式电子密码锁进行了详细设计及功能分析[1];陈丹萍采用AT89S51单片机对一类商场使用的电子数字密码锁进行了一些简单功能设计及仿真[2];程院莲等也采用AT89S51单片机作为主控制器,对具有密码修改、成功开锁等多功能键盘式电子密码锁进行了一系列设计及仿真[3]。鉴于此,本文也选用AT89S51单片机作为主控器,在对已有密码锁控制系统[4-7]部分功能进一步完善的基础上,设计及仿真了一款键盘式多功能电子密码锁控制系统。
本文选择具有低功耗、高性能、非易失性及闪存等特性的AT89S51单片机作为密码锁系统主控器,主要是利用AT89S51单片机的控制准确性、设计灵活性和丰富I/O接口等优点,在减少错误产生的同时还可以实现密码锁的多种功能。一般密码锁系统都是采用LCD液晶模块来显示密码位数以及各项操作的信息提示,利用矩阵式键盘进行密码输入、删除、修改以及用户自定义功能等操作,并配置存储模块对密码记忆保存以及密码输入错误的蜂鸣器报警提示等。另外,有些密码锁还设计管理员万能密码,在用户忘记密码时可以通过输入万能密码进行密码重新设置。但是要有效保护管理员密码,以防被盗。
本文所设计的密码锁控制系统,其核心是AT89S51单片机主控器,外围电路主要有显示模块、键盘输入模块、密码存储模块以及报警电路等,其中显示模块采用LCD作为密码锁输出显示,键盘输入模块采用4×4矩阵式键盘,多键位按键可以实现密码锁多功能操作及控制。密码存储模块采用AT24C02芯片,该系统构成框图如图1所示。
图1 密码锁控制系统框图
根据图1密码锁系统构成,本文采用Protues软件搭建的电子密码锁仿真电路如图2所示。
图2 密码锁控制系统电路图
图2所示的密码锁控制系统电路,可实现以下6大功能:
1)当密码输入正确时,蜂鸣器会发出“滴答”开锁声提示,且LED灯会闪亮一次,同时液晶屏会显示开锁信息“open”;
2)以防密码被盗,液晶屏上输入8位密码显示为“********”;
3)当密码输入错误时,蜂鸣器就会发出连续报警声提示,同时液晶屏会显示错误信息提示“error”;
4)用户自主修改密码,并增加确认次数为3次,且当两次输入新密码一致时,新密码才算修改成功,同时液晶屏会显示“Reset Password OK”提示信息,防止用户错误操作;
5)利用4×4矩阵键盘,设置0-9数字输入以及复位、清除、确认、修改密码、关锁、取消以及开启万能密码等功能键;
6)设置管理员万能密码,在忘记密码时可以通过输入万能密码进行密码重置。
本文采用C语言编写密码锁控制系统源程序代码,主要包括系统初始化程序、LCD 液晶显示子程序、键盘扫描子程序、键入功能子程序、设置密码子程序、修改密码子程序、报警子程序、EEPROM 读写子程序和延时子程序等,其中主程序设计流程如图3所示,修改密码设计流程如图4所示[8-12]。
图3 主程序设计流程图
图4 修改密码设计流程图
本文采用4×4矩阵式键盘实现密码锁多功能操作及控制,16个按键定义功能为:数字键“ 0 - 9”、确认键“#”、关锁键“*”、复位键“A”、修改密码键“B”、取消键“C”以及开启万能密码键“D”。图5为16个按键在图2键盘模块电路中所对应排列方式。
图5 按键排列
采用Keil软件对系统源程序进行调试、编译,并将编译生成的HEX文件添加至单片机芯片AT89S51中进行仿真。
当密码输入正确时,蜂鸣器会发出“滴答”开锁声提示,且LED灯会闪亮一次,同时液晶屏会显示开锁信息,即第二行显示为“open”。
在系统运行仿真正确下,就可以制作实物。首先使用Protel软件将图2布线封装成PCB板图,如图6所示。
图6 PCB板图
接着对PCB板进行元器件测试及焊接,然后调试运行,其中密码输入正确运行结果如图7所示。
图7 密码正确开锁图
经测试,实物运行和仿真结果一致,即各个器件均正常工作,证实本系统设计正确、可行。
本文利用Proteus软件设计及仿真了一个以8位数字为密码,具有密码保护、密码修改、成功开锁、输入错误报警及配设管理员万能密码等多功能电子密码锁控制系统。该系统从软件设计、仿真到实物成功运行,可为类似其他控制系统设计及制作提供一些参考。