【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/759815.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一元线性回归-R语言

# # 安装包 # install.packages(ggplot2) # library(ggplot2) Sys.setlocale(category LC_ALL, locale English_United States.1252) # Sys.setlocale("LC_ALL","Chinese") x <- c(18, 20, 22, 24, 26, 28, 30) y <- c(26.86, 28.35, 28.87,28.75,…

python格式文件

python小白考后复习 CSV格式文件ini格式文件我们可以读取所有节点还可以输出一个节点下所有键值对组成的元组获取节点下的键对应的值判断节点是否存在添加节点还可以添加键值还可以删除节点 XML格式文件读取若是文件格式存在的xml若是以字符串形式存在的xml获取子标签还有获取子…

Arduino IDE 的安装与esp32项目的创建

1打开官网下载 官网 1-1下载完成后安装即可&#xff0c;会弹出一些按安装提示点击安装 2切换为中文模式 2-1点击Flie&#xff0c;在点击图中高亮的位置&#xff0c;进入 2-2选择语言 3创建esp32项目 3-1在线安装&#xff08;不一定成功&#xff0c;可以一直试&#xff09; …

各维度卷积神经网络内容收录

各维度卷积神经网络内容收录 卷积神经网络&#xff08;CNN&#xff09;&#xff0c;通常是指用于图像分类的2D CNN。但是&#xff0c;现实世界中还使用了其他两种类型的卷积神经网络&#xff0c;即1D CNN和3D CNN。 在1D CNN中&#xff0c;内核沿1个方向移动。1D CNN的输入和…

100张linux C/C++工程师面试高质量图

文章目录 杂项BIOSlinux开机启动流程内核启动流程网络编程网络编程流程tcp状态机三次握手四次断开reactor模型proactor模型select原理poll原理epoll原理文件系统虚拟文件系统文件系统调用阻塞IO非阻塞IO异步IO同步阻塞同步非阻塞IO多路复用进程管理进程状态程序加载内存管理MMU…

ArtTS系统能力-通知的学习(3.1)

上篇回顾&#xff1a; ArtTS语言基础类库-容器类库内容的学习(2.10.2&#xff09; 本篇内容&#xff1a; ArtTS系统能力-通知的学习&#xff08;3.1&#xff09; 一、 知识储备 1. 基础类型通知 按内容分成四类&#xff1a; 类型描述NOTIFICATION_CONTENT_BASIC_TEXT普通文…

基于STM32的智能农业环境监控系统

目录 引言环境准备智能农业环境监控系统基础代码实现&#xff1a;实现智能农业环境监控系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;农业环境管理与优化问题解决方案与优化收尾与总结 1. 引言 智能农业环境监控系…

Linux rpm与yum

一、rpm包管理 rpm用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具&#xff09;的缩写&#xff0c;类似windows的setup.exe&#xff0c;这一文件格式名称虽然打上了R…

技术打包 催化剂浸渍制作方法设备

网盘 https://pan.baidu.com/s/1Bybbyy5qEA2uTUlaELmWwg?pwdepdk 改性加氢处理催化剂载体、催化剂及其制备方法和应用.pdf 水滑石基催化剂在高浓度糖转化到1,2-丙二醇中的应用.pdf 海泡石负载铁锰双金属催化剂及其制备方法和应用.pdf 甘油氢解催化剂及其制备方法和应用.pdf 用…

LeetCode-Leetcode 1120:子树的最大平均值

LeetCode-Leetcode 1120&#xff1a;子树的最大平均值 题目描述&#xff1a;解题思路一&#xff1a;递归解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给你一棵二叉树的根节点 root&#xff0c;找出这棵树的 每一棵 子树的 平均值 中的 最大 值。 子…

Redis 7.x 系列【10】数据类型之有序集合(ZSet)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 ZADD2.2 ZCARD2.3 ZSCORE2.4 ZRANGE2.5 ZREVRANGE2.6 ZRANK2.7…

ssm网上旅游信息管理系统-计算机毕业设计源码06975

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 2.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…

【课程总结】Day13(上):使用YOLO进行目标检测

前言 在上一章《【课程总结】Day11&#xff08;下&#xff09;&#xff1a;YOLO的入门使用》的学习中&#xff0c;我们通过YOLO实现了对图片的分类任务。本章的学习内容&#xff0c;将以目标检测为切入口&#xff0c;了解目标检测流程&#xff0c;包括&#xff1a;数据标准、模…

Spring Boot集成jasypt快速入门Demo

1.什么是Jasypt&#xff1f; Jasypt&#xff08;Java Simplified Encryption&#xff09;是一个专注于简化Java加密操作的工具。 它提供了一种简单而强大的方式来处理数据的加密和解密&#xff0c;使开发者能够轻松地保护应用程序中的敏感信息&#xff0c;如数据库密码、API密…

使用NFS网关功能将HDFS挂载到本地系统

HDFS安装教程 HDFS安装教程http://t.csdnimg.cn/2ziFd 使用NFS网关功能将HDFS挂载到本地系统 简介 HDFS提供了基于NFS&#xff08;Network File System&#xff09;的插件&#xff0c;可以对外提供NFS网关&#xff0c;供其它系统挂载使用。 NFS 网关支持 NFSv3&#xff0c;并…

DDD学习笔记四

领域模型的构建 基础领域模型的基本组成有名称、属性、关联、职责、事件和异常 发掘领域概念3种策略&#xff1a; 1&#xff09;学习已有系统&#xff0c;重用已有模型 2&#xff09;使用分类标签。分类标签来源于领域&#xff0c;需要我们研究一些资料并做一些提炼。从采用5W…

聚焦 HW 行动,构筑重保邮件安全防线

随着信息技术的飞速发展&#xff0c;网络安全已成为国家安全的重要组成部分。HW行动作为国家级网络安全演练&#xff0c;通过模拟实战攻防&#xff0c;检验和提升国家关键信息基础设施的防护能力。 CACTER凭借多年HW防护经验&#xff0c;提供全面的邮件安全防护体系&#xff0…

汽车电子行业知识:什么是车载智能座舱

1.什么是车载智能座舱 车载智能座舱是指搭载在汽车内部的一种智能系统&#xff0c;它集成了各种功能和技术&#xff0c;旨在提升驾驶体验、增加安全性和提供更多的便利。这种系统可以包括诸如智能驾驶辅助、信息娱乐、智能语音控制、车内环境控制、车辆健康监测等功能。通过车…

13_旷视轻量化网络--ShuffleNet V2

回顾一下ShuffleNetV1:08_旷视轻量化网络--ShuffleNet V1-CSDN博客 1.1 简介 ShuffleNet V2是在2018年由旷视科技的研究团队提出的一种深度学习模型&#xff0c;主要用于图像分类和目标检测等计算机视觉任务。它是ShuffleNet V1的后续版本&#xff0c;重点在于提供更高效的模…

Java知识点整理 12 — 前端 Ant Design Pro 初始化模板使用

一. 项目初始化 Ant Design Pro 是基于 Ant Design 和 umi 封装的一整套企业级中后台前端设计框架&#xff0c;致力于在设计规范和基本组件的基础上&#xff0c;继续向上构建&#xff0c;提炼出典型模板或配套设计资源&#xff0c;进一步提升企业级中后台产品设计研发过程中的…