logo资料库

基于C语言STC89C52单片机电子密码锁的设计与总结报告.doc

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