基于51单片机的电子密码锁设计

news2024/9/22 5:40:32

功能:本实例是基于51单片机的电子密码锁,主要硬件由51单片机最小系统,LCD1602液晶屏电路,继电器控制电路,AT24C02存储电路,LED指示灯电路,矩阵按键电路构成。
1.系统采用LCD1602液晶屏作为显示屏,第一行电子锁的状态,第二行显示输入密码的状态。
2.系统采用AT24C02芯片用于存储设置的密码,具有掉电保存功能。密码为6个数字,初始密码为123123;
3.当输入密码成功后,单片机开启继电器,电子锁打开;如果输入密码错误,系统记录一次错误的次数;当输入密码累计错误三次后,蜂鸣器报警,电子锁进入锁死的状态,用户无法再输入密码。
原理图:
在这里插入图片描述
Protues仿真:
在这里插入图片描述
程序:

/******************主程序**********************/	   
void main()
{
	static uint value ;
	password_chushifa();
	init_1602(); 
	UartInit();
	time_init();   //定时器初始化
	read_24c02_8(6,0,password);
	beiguan = 0;
	while(1)
	{	
		if(flag_password_cichu1 < 3)     //错误三次按键不能用了
		{
			
			key();					 //按键函数
			
			if(key_can < 20)
			{
				beep =0;
				if(beiguan == 0)
				{
					if(menu_1 == 0)
						key_with();			 //按键处理函数
					xiugai_password();       //修改密码
				}
				else 
					beiguan = 0;
				flag_time = 0;	
				delay_1ms(300);
				beep =1;				
			}
		}

		if(flag_200ms == 1)
		{
			flag_200ms = 0;	 
			if(beiguan == 0)	 //延时关闭锁20秒关闭背光
			{
				flag_time ++;
				if(flag_time >= 5 * 30)	//30秒  
				{
					flag_time = 0;
					beiguan = 1;	//关闭背光
				}
			}
			if(relay == 0)  //延时关闭锁
			{
				flag_guan++;
				if(flag_guan >= 5 * 10)	//10秒  
				{
					flag_guan = 0;
				    relay = 1;   //关闭密码锁
				}
			}else 
				flag_guan = 0;	
			if(flag_password_cichu1 >= 3)
			{
				value ++;	   //200ms
				beep = ~beep;  //蜂鸣器报警
				if(value >= 5 * 60)	//1分钟  
				{
					value = 0;
					beep = 1;
					flag_password_cichu1 = 0;
				}
			}
		}
		delay_1ms(1);  
	}
}

关注公众号-电子应用学习馆,首页回复密码锁获取。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件设计原则】系统设计面试基础:CAP 与 PACELC

什么是 CAP 定理以及 PACELC 如何扩展它&#xff1f; 在分布式系统中&#xff0c;可能会发生不同类型的故障&#xff0c;例如&#xff0c;服务器可能会崩溃或永久故障&#xff0c;磁盘可能会损坏导致数据丢失&#xff0c;或者网络连接可能会丢失&#xff0c;导致系统的一部分无…

在openFoam中创建cellZone

简介 openFoam的cellZone概念十分重要&#xff0c;可以给一个区域的单元命名&#xff0c;广泛应用于设置初始场&#xff08;如气、液两相流的初始VOF分布&#xff09; 而cellZone通常由cellSet转化而来&#xff0c;本文将介绍使用cellSet定义cellZone的方法 方法 在项目的sy…

【JavaWeb】博客系统的前端页面设计

目录 前言 1、页面组成 2、实现博客列表页 &#x1f342;设置背景图片 &#x1f342;设置导航栏 &#x1f342;实现版心 &#x1f343;实现个人信息 &#x1f343;实现博客列表 3、实现博客详情页 4、编写博客的登录页 5、博客编辑页面 &#x1f342;实现标题的编辑区 …

Python学习笔记-基于socket基础的http服务端程序

通过HTTP协议可以进行通信可以规范化的进行网络间通信。下面技术第一个http服务器小程序。简单的记录第一个试手程序。 1.http通信的基本流程 整个流程对应四层网络架构&#xff1a;应用层、传输层、网络层、链路层。有的部分已经封装&#xff0c;不需要我们再行处理。 2.服务…

哈夫曼树-算法

一、霍夫曼树基本概念&#xff1a; 路径&#xff1a;从树的一个结点到另外一个结点的分支构成这两个结点的路径 结点的长度&#xff1a;两节点之间路径的分支数 树的路径长度&#xff1a;从树根到每一个结点的长度之和&#xff0c;记做TL: 结点数目相同的二叉树中&#xff0…

LwIP系列(5):TCP 3次握手+4次挥手+状态机转换

前言 TCP的3次握手、4次挥手以及TCP状态机&#xff0c;是TCP的核心概念&#xff0c;我们在分析LwIp中TCP相关代码流程&#xff0c;也需要熟悉这些流程&#xff0c;本文就详细介绍这些概念。 TCP 3次握手、应用数据交互、4次挥手完整流程 TCP 为什么是3次握手&#xff0c;而不…

51单片机--动态数码管显示

文章目录 LED数码管一位晶体管多位一体数码管单片机上的数码管原理 静态数码管显示动态数码管显示 LED数码管 简介&#xff1a;LED数码管是一种常用的数字显示设备。它由多个发光二极&#xff08;LED&#xff09;封装在一起&#xff0c;形成“8”字型的器件。数码管通常由7段LE…

【从0开始离线数仓项目】——新能源汽车数仓项目介绍

目录 1、数据仓库概念 2、项目需求及架构设计 3、集群资源规划设计 4、车辆日志字段说明 1、数据仓库概念 数据仓库&#xff08;Data Warehouse&#xff09;是为企业提供数据支持&#xff0c;用以协助企业制定决策、改进业务流程和提高产品质量等方面的工具。它可以接收多种…

时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测,单列数据输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warnin…

Dart - dill文件序列化为可读文本(续)

文章目录 前言开发环境app.dill文件DEPS文件最后 前言 对前文Dart - dill文件序列化为可读文本做一些补充。 开发环境 macOS: 13.4Dart: 3.0.5Flutter: 3.10.5 app.dill文件 因为Flutter项目编译后会自动生成app.dill文件&#xff08;位于项目根目录下的.dart_tool/flutte…

基于PyQt5的桌面图像调试仿真平台开发(9)去噪

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

Detect-SLAM论文翻译

Detect-SLAM:实现目标检测与SLAM的互利共赢 摘要 - 尽管近年来在SLAM和目标检测方面取得了重大进展&#xff0c;但这两项任务仍然存在一系列挑战&#xff0c;例如动态环境中的SLAM和复杂环境中的目标检测。为了解决这些挑战&#xff0c;我们提出了一种新的机器人视觉系统&…

UE使用UnLua(一)

一、概述 Unlua是个功能丰富的插件&#xff0c;可以在UE中进行蓝图绑定&#xff0c;在Lua中进行逻辑开发&#xff0c;使用Lua热更新的特性&#xff0c;可以快速开发迭代表层逻辑 二、UnLua环境 首先下载UnLua的插件包&#xff0c;点击下载&#xff0c;不会吧不会吧还有人打不…

基于simulink使用前景检测跟踪汽车(附源码)

一、前言 此示例基于simulink演示如何使用高斯混合模型 &#xff08;GMM&#xff09; 检测和计数视频序列中的汽车。 二、模型 下图显示了使用前景检测跟踪汽车模型&#xff1a; 三、检测和跟踪结果 检测和计数汽车可用于分析交通模式。检测也是执行更复杂的任务&#xff0…

【Linux】C++项目实战-实际应用

目录 典型IO的两个阶段(网络IO)Linux上的五种IO模型1.阻塞 blocking2、非阻塞3、IO复用4、信号驱动5、异步 Web ServerHTTP协议&#xff08;应用层的协议&#xff09;简介概述工作原理HTTP请求格式HTTP响应报文格式HTTP请求方法&#xff08;仅作了解&#xff09;HTTP状态码 服务…

【Java|多线程与高并发】死锁以及哲学家吃饭问题

文章目录 1. 什么是死锁2. 哲学家吃饭问题3.如何解决死锁 1. 什么是死锁 死锁&#xff08;Deadlock&#xff09;是多线程编程中的一个常见问题&#xff0c;指的是两个或多个线程相互等待对方释放资源&#xff0c;导致程序无法继续执行的状态。 在一种典型的死锁情况中&#x…

建立点到多点的IPSec隧道(IKE安全策略方式)

目录 1. 组网需求1.1 网络拓扑1.2 配置思路1.3 版本 2. 配置USG5500 A2.1 基本配置2.2 配置域间包过滤规则2.3 配置到达分支的静态路由2.4 定义被保护的数据流2.5 配置名称为tran1的IPSec安全提议2.6 配置序号为10的IKE安全提议2.7 配置IKE Peer2.8 配置IPSec安全策略组map12.9…

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议

哈工大计算机网络课程数据链路层协议详解之&#xff1a;多路访问控制&#xff08;MAC&#xff09;协议 在上一小节介绍完数据链路层功能和所提供的服务后&#xff0c;接下来我们介绍一个在数据链路层非常重要的一个协议&#xff1a;多路访问控制MAC协议。 多路访问控制主要是…

简易登录页面实现

导言 本文将介绍一个简单的登录页面的实现&#xff0c;使用HTML、CSS和JavaScript完成。该登录页面具有选项卡切换和表单提交功能。 HTML基础知识 首先&#xff0c;我们来了解一下HTML文档的基本结构&#xff1a; <!DOCTYPE html> <html> <head><titl…

python创建多个logging日志文件

为每一个计算过程创建一个单独的日志文件&#xff0c;并写入对应的结果&#xff0c;同时保留控制台输出的功能&#xff0c;控制台输出与日志文件记录可以分开单独控制。 import os import loggingdef creat_logger(log_path,logging_name,suf_name):if not os.path.exists(log…