2024-09-01
售卖作品
00

目录

功能要求
硬件连接
软件实现
程序逻辑框架

题目 5 :密码锁

使用单片机实现简易密码锁,通过输入密码,实现门锁的开启(控制继电器)。

具体要求如下:

(1)当输入正确密码后,继电器开启。

(2)当三次输入错误密码后,密码锁禁止输入 10 秒钟,并进行相应的提示。

(3)在输入正确的密码后,可修改密码和查询、清除门开启的次数。

(4)自制继电器电路模块。

(5)实现密码掉电不丢失。

可添加符合题目背景的其它合理功能。

显示屏LCD1602显示

矩阵键盘4*4按键

继电器

键盘按键有这些:

1 2 3 a

4 5 6 b

7 8 9 c

  • 0 # d

1 密码一共6位密码,全数字。最开始的系统密码是123456.

2 正常输入正确密码继电器开启,门开启次数变量加1。按下按键a代表关门,继电器关闭。

3 继电器我会做一个连着小灯的电路,继电器开启后小灯会亮。

4 输入密码错误一次就记录一次,错误三次后,禁止所有输入10秒钟,有显示提示。时间过后清空错误次数。

5 每次输入正确密码会自动清空错误次数。

6 按键b按下后进入修改密码过程:输入原始密码-->输入新密码--->退出回到主页面。

7 按键c查询门开启次数变量,此时可以按键d清空门开启次数变量。

8 上电后密码从单片机EEPROM读取,每次修改密码也会保存到EEPROM,所以掉电不会丢密码。

也就是说修改密码后关机,下次开机后密码就是之间修改后的密码。

在这里插入图片描述

要实现一个简易密码锁,我们可以使用单片机结合LCD1602显示屏、4x4矩阵键盘和继电器来完成。这个密码锁的功能包括密码输入、验证、修改以及门开启次数的记录和显示。此外,密码锁还需要在掉电后保持密码不丢失。下面是实现这个密码锁的具体思路和功能介绍:

功能要求

  1. 密码输入与验证

    • 使用4x4矩阵键盘输入6位数字密码。

    • 初始系统密码为123456。

    • 输入正确密码后,继电器开启,门开启次数增加1,LCD1602显示门已开启。

  2. 错误处理

    • 每次输入错误密码,记录错误次数。

    • 连续三次输入错误密码后,密码锁禁止输入10秒钟,并在LCD1602上显示提示信息。

    • 10秒后清空错误次数,并允许重新输入密码。

  3. 密码修改

    • 按键“b”进入修改密码模式:输入原始密码后再输入新密码。

    • 新密码输入完成后返回主界面,并在EEPROM中保存新密码,保证掉电不丢失。

  4. 门开启次数查询与清除

    • 按键“c”查询门开启次数,LCD1602显示当前门开启次数。

    • 按键“d”清除门开启次数,LCD1602显示门开启次数已清除。

  5. 继电器控制

    • 输入正确密码后,继电器开启,连接的指示灯亮起。

    • 按键“a”关闭继电器,指示灯熄灭。

硬件连接

  1. LCD1602显示屏

    • 数据口连接到单片机的一个I/O口,用于显示密码输入状态、错误提示、门开启次数等信息。
  2. 4x4矩阵键盘

    • 用于输入密码及操作命令,通过单片机扫描矩阵键盘得到按键值。
  3. 继电器

    • 继电器控制电路连接到单片机的一个输出端口,用于控制门锁的开关状态。
  4. EEPROM

    • 用于存储系统密码,保证掉电后密码不丢失。

软件实现

  1. 延时函数

    • 实现精确的延时函数,用于键盘扫描和LCD1602显示的时间控制。
  2. LCD1602显示函数

    • 初始化LCD1602显示屏,并实现清屏、写字符、写字符串等功能。
  3. 矩阵键盘扫描函数

    • 实现逐行扫描方式,检测键盘按键的状态,并返回按键值。
  4. EEPROM读写函数

    • 实现EEPROM的读写操作,用于存储和读取系统密码。
  5. 主程序逻辑

    • 初始化系统,读取EEPROM中的密码,设置初始显示状态。

    • 实时扫描键盘输入,根据输入值进行密码验证、错误处理、密码修改、门开启次数查询与清除、继电器控制等操作。

程序逻辑框架

  1. 初始化

    • 初始化LCD1602显示屏、矩阵键盘、继电器控制端口、EEPROM读取初始密码。
  2. 主循环

    • 循环检测键盘输入,判断当前输入状态(正常输入、修改密码、查询次数)。

    • 根据键盘输入值进行相应操作,包括密码验证、错误提示、密码修改、门开启次数显示与清除。

  3. 密码验证

    • 对比输入密码与系统密码,验证通过则开启继电器,记录门开启次数;验证失败则增加错误次数并提示错误信息。
  4. 错误处理

    • 三次连续输入错误密码后,锁定输入10秒钟,并在LCD1602上显示锁定提示。
  5. 密码修改

    • 按键“b”进入修改密码模式,输入原密码后输入新密码,保存新密码到EEPROM。
  6. 门开启次数查询与清除

    • 按键“c”查询门开启次数,按键“d”清除门开启次数,并在LCD1602上显示操作结果。

通过上述硬件和软件的结合,可以实现一个功能完整的密码锁系统,满足密码输入、验证、修改,错误处理和门开启次数管理等需求。

资源:

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?u=bdf8eeb84961492ba2b62f7bfee641ea&tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!