基于C语言STC89C52单片机电子密码锁的设计与总结报告张博,于娇,陈瑶,张舒摘要本设计中,电子密码锁使用STC89C52单片机控制,采用C语言编写,通过Proteus软件仿真并进行了实物焊接。电子密码锁通过矩阵键盘进行密码输入,1602A液晶显示模块进行显示。其可实现的功能有:(1)通过切换,对输入的4位密码进行显示或隐藏;(2)通过发光二极管和蜂鸣器,对解密正确或者错误进行声光报警;(3)4位密码修改;(4)在密码遗失情况下,通过初始密码进行密码再设置;(5)采用AT24C02外部存储器,完成断电密码保护功能;(6)具有1-9次的解锁次数任意设定功能;(7)模拟密码箱随机产生密码,并进行解码。本设计特色为采用1602A液晶显示模块,这使得显示更加直观、使用更加方便。密码可实现显示和隐藏切换,通过隐藏密码实现密码保护。一、方案设计与论证方案一:以STC89C52单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动1602A显示器提示程序运行过程和开锁的步骤,利用AT24C02芯片实现掉电存储。图1为单片机控制密码锁的系统原理框图。图1单片机控制密码锁的系统原理框图方案二:以74LS112双JK触发器构成的数字逻辑电路控制方案,如图2。图2数字逻辑控制方案电子密码锁原理框图STC89C52单片机AT24C02存储芯片矩阵键盘控制LCD1602A蜂鸣器提示电路电源模块LED密码校验提示输入按扭开关5秒定时电路20秒定时电路声光指示电路输入锁存电路密码存储电路开锁控制电路机械动作构件1方案论证:方案一中,利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能。方案二中,虽然数字逻辑控制系统中常用的开关电器能够实现本设计中密码锁的逻辑控制,但存在接线复杂、寿命短、可靠性差、维护困难的缺点,给诸多应用带来了极大的不便。方案选定:综上论证,本设计选择方案一。二、电路设计使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602A、4×4矩阵键盘、报警蜂鸣器、发光二极管和三极管等。1、开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的如图3所示,为密码锁开锁电路原理图。当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。本次设计中,基于节省成本考虑,用发光二极管代替电磁锁,信息通过LCD显示,并利用蜂鸣器和二极管声光指示。图3密码锁开锁电路原理图2、矩阵键盘设计电路由于本设计中要求使用16个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘。本设计中,矩阵键盘行线和单片机P1.0-P1.3相连,列线与单片机P1.4-P1.7相连。矩阵键盘设计电路图,如图4所示。键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。开锁驱动电路STC89C52单片机密码正确超次锁定电磁锁是否2图4矩阵键盘设计电路图3、声光提示电路设计声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种不同的声音,这样可以根据系统要求在密码输入正确和错误时发出不同的声音提示,已达到报警的要求。光提示是在密码输入正确时,绿色LED亮。蜂鸣器电路,如图5(a)所示;发光二极管电路,如图5(b)所示。4、显示模块设计本设计中,显示模块采用1602A液晶显示器显示。如下所示,图6为1602A液晶显示器的接口示意图。图61602A液晶显示器的接口示意图本设计中液晶串口一共用到11根导线与单片机相连,具体连接情况如表1显示模块与MCU连接说明所示。123456解码次数*789输入密码0确认更改密码随机密码图5(a)蜂鸣器电路图5(b)发光二极管电路3表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(AD2)5、AT24C02掉电存储单元的设计本设计中掉电存储单元采用A...