1、摘要本设计中,电子密码锁使用STC89C52单片机控制,采用 C语言编写,通过Proteus软件仿真并进行了实物焊接。电子密码锁通过矩阵键盘进行密码输入,1602A液晶显示模块进行显示。其可实现的功能有:(1)通过切换,对输入的4位密码进行显示或隐藏;(2)通过发光二极管和蜂鸣器,对解密正确或者错误进行声光报警;(3)4位密码修改;(4)在密码遗失情况下,通过初始密码进行密码再设置;(5)采用AT24C02外部存储器,完成断电密码保护功能;(6)具有1-9次的解锁次数任意设定功能;(7)模拟密码箱随机产生密码,并进行解码。本设计特色为采用1602A液晶显示模块,这使得显示更加直观、使用更加方便
2、。密码可实现显示和隐藏切换,通过隐藏密码实现密码保护。一、方案设计与论证方案一:以STC89C52单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动1602A显示器提示程序运行过程和开锁的步骤,利用AT24C02芯片实现掉电存储。图1为单片机控制密码锁的系统原理框图。STC89C52单片机AT24C02存储芯片矩阵键盘控制LCD1602A蜂鸣器提示电路电源模块LED密码校验提示图1 单片机控制密码锁的系统原理框图方案二:以74LS112双JK触发器构成的数字逻辑电路控制方案,如图2。输入按扭开关5秒定时电路20秒定时电路声光指示电路输入锁存电路密码存储电路开锁控制电路机械动作
3、构件图2 数字逻辑控制方案电子密码锁原理框图方案论证:方案一中,利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能。方案二中,虽然数字逻辑控制系统中常用的开关电器能够实现本设计中密码锁的逻辑控制,但存在接线复杂、寿命短、可靠性差、维护困难的缺点,给诸多应用带来了极大的不便。方案选定:综上论证,本设计选择方案一。二、电路设计使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602A、44矩阵键盘、报警蜂鸣器、发光二极管和三极管等。1、开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到
4、开锁的目的。如图3所示,为密码锁开锁电路原理图。当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。本次设计中,基于节省成本考虑,用发光二极管代替电磁锁,信息通过LCD显示,并利用蜂鸣器和二极管声光指示。开锁驱动电路STC89C52单片机密码正确超次锁定电磁锁是否图3 密码锁开锁电路原理图2、矩阵键盘设计电路由于本设计中要求使用16个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘。本设计中,矩阵键盘行线和单片机P1.0-P1.3相连,列线与单片机P1.4-P1.7相连。矩阵键盘设计电路图,如图4所示。键盘扫描采用行扫描法,即
5、依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。123456解码次数*789输入密码0确认更改密码随机密码图4 矩阵键盘设计电路图3、声光提示电路设计声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种不同的声音,这样可以根据系统要求在密码输入正确和错误时发出不同的声音提示,已达到报警的要求。光提示是在密码输入正确时,绿色LED亮。蜂鸣器电路,如图5(a)所示;发光二极管电路,如图5(b)所示。图5(a) 蜂鸣器电路图5(b) 发光二极管电路4、显示模块设计本设计中,显示模块采用1602A液晶显示器显示。如下所示,图6为1602A
6、液晶显示器的接口示意图。图6 1602A液晶显示器的接口示意图本设计中液晶串口一共用到11根导线与单片机相连, 具体连接情况如表1显示模块与MCU连接说明所示。表1 显示模块与MCU连接说明序号1602A液晶显示器引脚STC89C52单片机引脚序号1602A液晶显示器引脚STC89C52单片机引脚1RS引脚P2.5(A13)7D3引脚P0.3(AD3)2R/W引脚P2.6(A14)8D4引脚P0.4(AD4)3E引脚P2.7(A15)9D5引脚P0.5(AD5)4D0引脚P0.0(AD0)10D6引脚P0.6(AD6)5D1引脚P0.1(AD1)11D7引脚P0.7(AD7)6D2引脚P0.2
7、(AD2)5、AT24C02掉电存储单元的设计本设计中掉电存储单元采用AT24C02外部存储器,其作用是在系统电源断开的时候,存储当前设定的密码数据。如下所示,图7为AT24C02管脚示意图,表2为AT24C02管脚说明。A0A1A2GNDSDASCLWPVCC12348765C02图7 AT24C02管脚示意图表2 AT24C02管脚说明管脚名称功能管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟信号WP写保护VCC1.8V-6.0V工作电压VSS接地本设计中,AT24C02的SCL和SDA引脚接上拉电阻后与单片机的P3.4(T0)和P3.5(T1)脚相连,其电路图
8、如图8所示。图8 AT24C02掉电存储单元设计图三、程序流程开始系统初始化调用E2PROM密码显示主界面输入密码判断密码确定密码开锁模拟声光锁定键盘YN返回Y判断次数N超过N次未超过N次再次输入密码密码设置完毕N设置新密码Y按键N判断按键值返回主界面NY设置解码次数产生随机密码输入密码N=0x84N=0x82N=0x11图9 主程序流程图四、测试方法与测试结果1、测试仪器:电子密码锁2、测试方法:(1)开机,输入初始化密码“0806”,屏幕显示“chushihua”。输入“0000”确认,再输入“0000”,屏幕显示“Set New Word”。输入新密码,按“更改密码”,再次输入新密码,按
9、“更改密码”,屏幕显示“Reset OK”。(设置新密码为“1111”)(2)输入“1111”,观察屏幕显示;输入其他数字组合,观察屏幕显示。(3)关机,再次开启,输入“1111”,观察屏幕显示。(4)输入“1111”,当屏幕显示“open”后,按“解码次数”,输入“2”,确认。然后连续输入2次错误密码,观察。(5)由于键盘锁定时间长,按2号开关按钮复位。输入“1111”解锁,再次解锁,按“随机密码”,得“3131”,确认。按“输入”,输入“3131”,观察屏幕显示。(6)按1号开关按钮,输入数字“1”,;再次按1号开关按钮,输入数字“1”,观察2次屏幕变化。(7)根据步骤(1)步骤(6),重
10、复设置不同数据,观察结果。3、测试结果:(1)按步骤(2)操作,当输入密码为“1111”时,显示“open”,绿色LED亮起。输入其他不超过四位的数字组合,显示“wrong”;输入超过四位,则键盘锁定。(2)按步骤(3)操作,屏幕显示“open”,说明可实现断电密码保护。(3)按步骤(4)操作,若2次输入均为四位错误密码,则第二次输入错误后,屏幕显示“keypad locked”,键盘锁定;否则,累计输入2次错误四位密码,屏幕显示“keypad locked”, 键盘锁定。(4)按步骤(5)操作,屏幕显示“open”,说明随机密码设置成功。(5)按步骤(6)操作,可发现两次屏幕显示不同,分别为“1”和“*”。(6)重复实验步骤,得出解码次数任意设定功能成功实现。五、总结 本设计除完成比赛基本要求外,还实现了断电密码保护、解码次数任意设置、随机密码设置和解码等功能。但是,对于丰富电子密码锁的功能还有许多值得研究和探讨,如实现逐次清位,显示时间、日历等功能。 .8