您的位置:首页 > 房产 > 家装 > 【TB作品】密码锁,ATMEGA128单片机,Proteus仿真

【TB作品】密码锁,ATMEGA128单片机,Proteus仿真

2024/10/6 22:22:15 来源:https://blog.csdn.net/x1131230123/article/details/140086948  浏览:    关键词:【TB作品】密码锁,ATMEGA128单片机,Proteus仿真

题目 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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com