智能电子锁

本文介绍了一种基于51单片机的电子密码锁设计,该锁能存储用户自定义密码,支持密码错误报警、复位功能,并采用EEPROM存储器24C02保存密码。用户输入正确8位数字密码可开锁,输入错误4次会触发报警。此外,还提供设置新密码和恢复出厂设置的功能,具有60秒输入超时报警。设计中重点解决了24C02的读取操作问题,并通过LCD显示和指示灯反馈状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电子锁设计

摘要

 本次实验主要做了一个智能锁,实现用户输入正确密码开锁,输入错误密码报警的功能,同时用户也可以自己设定密码,忘记密码可进行复位初始化密码。即使掉电之前修改的密码仍然保存。本次设计主要是通过软件操作来实现密码锁的开锁、复位、设置、关闭的功能。利用 EEPROM存储器 24c02掉电不丢失的性质实现密码的存储。同时通过红、黄、绿三种指示灯来指示等待、开锁、报警三种状态。本次设计利用了51单片机的定时器0,1中断,外部中断等内部资源,矩阵按键、LCD1602、24C02等外设。设计中遇到的主要难点是24c02的读取操作。通过参考网上代码并自己修改了一部分最终实现了密码的读取功能。
关键词:EEPROM,外部中断,LCD1602,密码锁

设计需求分析

电子密码锁需要实现以下功能:

  1. 能够用数字键盘输入正确的密码开锁,并相应的在显示器上
    显示为 *,输入错当输入密码有误时可以向前逐位清除并重新输入;
  2. 能够重置密码,用户不想使用当前的密码,可以通过这个功能重新设置密码;
  3. 能够在忘记密码的时候,如果用户忘记了密码,可以通过输入特定的暗号(作为备用密码)来初始化密码。
  4. 能够在关闭电子密码锁时保存已修改的密码;
  5. 能够在输入密码错误次数达到上限、输入暗号错误次数达到上限、或输入密码超过规定的时间时输出相应的警告信息并引发声光报警功能。根据以上需求分析,电子密码锁的设计主要包括以下几个部分:4×4矩阵键盘、LCD信息显示、EPROM存储开锁密码和声光报警功能。
    **在这里插入图片描述**

功能与规划

开机

在开机操作后,VD0亮,表示当前电子密码锁处于闭锁状态。
开机操作后的闭锁状态

开锁

以10以内的数字组成的8位数密码,在具备一定的复杂性的同时又不会难以记忆。本次实验中的密码锁只有在正确地输入8位数密码才能成功开锁。
按下OPEN键后,电子密码锁处于待输入密码状态,LCD第一行显示:input password。初始密码为12345678,每输入一位,蜂鸣器会嘟一声。为了安全起见,输入的密码不会直接显示数字,而是以*代替。
输入8位数字密码
成功输入密码
 如果在输入密码时输入错误可以使用CLEAR实现退位清除。
 当8位数字密码输入正确,LCD第一行会显示password ok!,此时闭锁灯会VD0熄灭,同时开锁灯VD1亮。如果密码错误,则LCD第一行会显示:error,try again。
 如果连续输入错误(包括其他误操作在内)四次,则LCD第一行会显示input fail!并且会触发蜂鸣器报警,报警灯VD2持续闪烁。

 按下开锁键后会进行60s倒计时,如果达到时限还未输入正确的密码,则也会触发报警(蜂鸣器报警、报警灯闪烁)。 ### 设置新密码  初始密码往往不够安全,在开锁后的状态下,用户可以通过设置密码的功能更换密码,提高密码的安全性和易记性。  在打开密码锁的状态下,可以通过SET键进行修改密码,按下SET后,LCD第1行显示:input password,此时应输入原来的密码确认身份进入修改密码的状态。  如果输入原密码失败连续四次,则会触发报警(蜂鸣器报警、报警灯闪烁)。  输入原密码成功后,需要设置新密码需要连续输入两次相同的8位数字密码。若两次密码相同,则会显示:new password ok!,若不同则会显示:error1,try again,如果连续三次输入失败则会显示:input fail!。

 和开锁过程同样的是,重设密码的操作有时间限制,在60s内没有完成重设密码的操作则会出发报警(蜂鸣器报警、报警灯闪烁)。

恢复出厂化设置

 考虑到存在用户在修改了密码但忘记的这种可能情况,用户可以联系生产厂商的维修人员通过RESET键将密码锁初始化,密码重置为12345678。所以厂商需要对复位密码做好保护工作,以防被不法分子利用,为公司和用户带来损失。
 在按下复位键RESET后,LCD没有显示,LED灯也没有显示。在按下复位键10s以内要紧接着按下CLEAR键,否则会触发报警。
按下RESET后的无反馈状态
按下RESET后没有及时按下CLEAR的报警灯闪烁
之后再输入8位复位密码(81815151)进行复位操作,如果有任何一位输入错误或者在30s内没有完成复位操作也会触发报警,出错后可以通过再次按下RESET键或掉电重新进行复位操作。
输入复位密码错误
在复位密码输入正确后,LCD会显示:reset ok!和12345678,表示初始化成功,初始密码为12345678。
重置密码成功

关闭

关闭状态既可以节约能源,也可以被迅速唤醒,相当于计算机的睡眠模式。在未触发报警的情况下,按CLOSE后LCD停止显示,蜂鸣器停止发声,LED灯都熄灭。

整体电路

用Proteus软件绘制整体电路如下:
(1)按下OPEN键D0红灯亮起,处于未开锁状态,LCD屏显示input password。
未开锁时系统电路及显示图
图:未开锁时系统电路及显示图

(2)输入密码正确后D1绿灯亮起,LCD屏显示password ok
密码正确时系统电路及显示图
图:密码正确时系统电路及显示图

(3)输入密码错误上限3次,当再次输入密码错误后LCD显示input fail、D2黄灯闪烁并且蜂鸣器发出报警声。输入密码超时(本设计为60s)也会触发报警装置。
密码输入超时后系统电路及显示图
图:密码输入超时后系统电路及显示图
密码输入错误超过三次后系统电路及显示
图:密码输入错误超过三次后系统电路及显示

软件架构

主程序
在这里插入图片描述
proteus仿真及代码下载链接:链接:https://download.csdn.net/download/zbl12345678910/15452087

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值