基于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为单片机控制密码锁的系统原理框图。
单片机控制密码锁的系统原理框图
方案二:以74LS112JK触发器构成的数字逻辑电路控制方案,如图2
图2  数字逻辑控制方案电子密码锁原理框图
方案论证:
方案一中,利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能。
方案二中,虽然数字逻辑控制系统中常用的开关电器能够实现本设计中密码锁的逻辑控制,但存在接线复杂、寿命短、可靠性差、维护困难的缺点,给诸多应用带来了极大的不便。
方案选定:综上论证,本设计选择方案一。
二、电路设计
使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602A4×4矩阵键盘、报警蜂鸣器、发光二极管和三极管等。
1、开锁机构
通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。如图3所示,为密码锁开锁电路原理图。
当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。本次设计中,基于节省成本考虑,用发光二极管代替电磁锁,信息通过LCD显示,并利用蜂鸣器和二极管声光指示。
密码锁开锁电路原理图
2、矩阵键盘设计电路
由于本设计中要求使用16个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘。本设计中,矩阵键盘行线和单片机P1.0-P1.3相连,列线与单片机P1.4-P1.7相连。矩阵键盘设计电路图,如图4所示。
键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。
矩阵键盘设计电路图
3、声光提示电路设计
声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种不同的声音,这样可以根据系统要求在密码输入正确和错误时发出不同的声音提示,已达到报警的要求。光提示是在密码输入正确时,绿LED亮。蜂鸣器电路,如图5a)所示;发光二极管电路,如图5b)所示。
4、显示模块设计
本设计中,显示模块采用1602A液晶显示器显示。如下所示,图61602A液晶显示器的接口示意图。
6  1602A液晶显示器的接口示意图
本设计中液晶串口一共用到11根导线与单片机相连, 具体连接情况如表1显示模块与编写c语言的软件MCU连接说明所示。
显示模块与MCU连接说明
序号
1602A液晶显示器引脚
STC89C52单片机引脚
序号
1602A液晶显示器引脚
STC89C52单片机引脚
1
RS引脚
P2.5(A13)
7
D3引脚
P0.3(AD3)
2
R/W引脚
P2.6(A14)
8
D4引脚
P0.4(AD4)
3
E引脚
P2.7(A15)
9
D5引脚
P0.5(AD5)
4
D0引脚
P0.0(AD0)
10
D6引脚
P0.6(AD6)
5
D1引脚
P0.1(AD1)
11
D7引脚
P0.7(AD7)
6
D2引脚
P0.2(AD2)
5AT24C02掉电存储单元的设计
本设计中掉电存储单元采用AT24C02外部存储器,其作用是在系统电源断开的时候,存储当前设定的密码数据。如下所示,图7AT24C02管脚示意图,表2AT24C02管脚说明。
7  AT24C02管脚示意图
2  AT24C02管脚说明
管脚名称
功能
管脚名称
功能
A0 A1 A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟信号
WP
写保护
VCC
1.8V-6.0V工作电压
VSS
接地
本设计中,AT24C02SCLSDA引脚接上拉电阻后与单片机的P3.4T0)和P3.5T1)脚相连,其电路图如图8所示。
8  AT24C02掉电存储单元设计图
三、程序流程
图9  主程序流程图
四、测试方法与测试结果
1、测试仪器:
电子密码锁
2、测试方法:
(1)开机,输入初始化密码“0806”,屏幕显示“chushihua”。输入“0000”确认,再输入“0000”,屏幕显示“Set New Word”。输入新密码,按“更改密码”,再次输入新密码,按“更改密码”,屏幕显示“Reset OK”。(设置新密码为“1111”)
(2)输入“1111”,观察屏幕显示;输入其他数字组合,观察屏幕显示。
(3)关机,再次开启,输入“1111”,观察屏幕显示。
(4)输入“1111”,当屏幕显示“open”后,按“解码次数”,输入“2”,确认。然后输入密码“1111
”,屏幕显示“Set New Word”。输入“1234”,按“更改密码”,重复一次,新密码设定成功。连续输入2次错误密码,观察。
(5)由于键盘锁定时间长,按2号开关按钮复位。输入“1234”解锁,按“随机密码”,得“3131”,确认。按“输入”,输入“3131”,观察屏幕显示。
(6)按1号开关按钮,输入数字“1”,;再次按1号开关按钮,输入数字“1”,观察2次屏幕变化。
(7)根据步骤(1)——步骤(6),重复设置不同数据,观察结果。
3、测试结果:
(1)按步骤(2)操作,当输入密码为“1111”时,显示“open”,绿LED亮起。输入其他不超过四位的数字组合,显示“wrong”;输入超过四位,则键盘锁定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。