【51单片机】【protues仿真】基于51单片机密码锁系统 - 详解

news/2025/9/23 20:07:36/文章来源:https://www.cnblogs.com/tlnshuju/p/19107964

【51单片机】【protues仿真】基于51单片机密码锁系统 - 详解

2025-09-23 20:07  tlnshuju  阅读(0)  评论(0)    收藏  举报

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

初始普通用户密码 123123 功能:解锁 修改密码
管理员密码 520025 功能:恢复初始密码
信码 520520 功能:恢复管理员和密码使用

1、LCD1602液晶显示
2、矩阵按键​输入
3、密码输入错误3次,关闭管理员和用户密码功能
4、信码启用管理员和用户密码功能
5、修改密码,开锁后输入正确密码按修改密码按键进行修改
6、管理员密码输入后初始化普通用户密码
7、密码输出错蜂鸣器警报提示

二、使用步骤

51单片机密码锁平台采用AT89C51/52或STC89C51/52等51系列单片机作为控制核心,负责密码验证逻辑、外设协调和数据处理。

三、硬件资源

1、51单片机核心模块
2、矩阵按键模块
3、LED灯模块
4、蜂鸣器模块
5、继电器模块
6、LCD1602显示模块

四、软件设计

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar i;

sbit relay = P2^2;
sbit beep = P3^3;

sbit beiguan = P2^3;

uint flag_time;

uint flag_guan;

uchar dis_smg[7]={0};

uchar password[7]={0};
uchar password_bj[7]={0};
uchar code password_r[6] = {1,2,3,1,2,3} ;
uchar code password_gl[6] = {5,2,0,0,2,5} ;
uchar code password_xm[6] = {5,2,0,5,2,0} ;
uchar password_xg[6]; //密码修改
uchar flag_password; //密码正确否
uchar flag_password_cichu1;//密码错误次数

uchar flag_200ms=1; //200毫秒的变量

uchar menu_1,menu_i;

sbit scl = P2^1; //24c02信号引脚
sbit sda = P2^0; //24c02数据引脚


void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}

sbit rs=P2^5; //寄存器选择信号 H:素材寄存器 L:指令寄存器
sbit rw=P2^6; //寄存器选择信号 H:内容寄存器 L:指令寄存器
sbit e =P2^7; //片选信号 下降沿触发
void delay_uint(uint q)
{
while(q--);
}



void write_com(uchar com)
{
rs=0; //写指令
rw=0; //对1602写操作
P0=com; //P0口对1602写指令资料
delay_uint(25);
e=1; //e=1使能信号
delay_uint(100); //延时一下等1602完成操作
e=0;
}


void write_data(uchar dat)
{
rs=1; //写数据
rw=0; //对1602写操控
P0=dat; //P0口对1602写数据
delay_uint(25);
e=1; //e=1使能信号
delay_uint(100); //延时一下等1602结束操作
e=0;
}
void main()
{
uint value;
beep = 0; //蜂鸣器响一声
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平
scl = 0;
read_24c02_6(password); //读出保存的密码
init_1602(); //lcd1602初始化
beiguan = 0; //打开背光
while(1)
{
if(flag_password_cichu1 < 3) //错误三次 密码不能用了
{
key(); //按键函数
if(key_can < 20)
{
if(beiguan == 0)
{
if(menu_1 == 0)
key_with(); //按键处理函数
xiugai_password(); //修改密码
}
else
beiguan = 0;
flag_time = 0;
if(key_can == 12) //退出键
{
clear_shuzu(password_xg);
clear_shuzu(dis_smg);
write_string(1,0," Password Lock ");
write_string(2,0," Input: ");
lcd1602_guanbiao(1,7+0x40); //开光标
menu_1 = 0;
menu_i = 0;
}

}
}
if(flag_password_cichu1 >= 3) //错误三次密码启动信码按键 输入正确解锁
{
key(); //按键函数
if(key_can < 20)
{
if(beiguan == 0)
{
if(menu_1 == 0)
key_with_xinma(); //信码按键处理函数
xiugai_password(); //修改密码
}
else
beiguan = 0;
flag_time = 0;
if(key_can == 12) //退出键
{
clear_shuzu(password_xg);
clear_shuzu(dis_smg);
write_string(1,0," Password Code ");
write_string(2,0," Input: ");
lcd1602_guanbiao(1,7+0x40); //开光标
menu_1 = 0;
menu_i = 0;
}
}
}
flag_200ms ++;
if(flag_200ms >= 200)
{
flag_200ms = 0;
if(beiguan == 0) //延时关闭锁30秒关闭背光
{
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;
}
delay_1ms(1);
}
}

五、实验现象

演示视频:

【51单片机-B048】【protues仿真】基于51单片机密码锁仿真

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

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

相关文章

网站设计案例方案广告网页

centos7 mysql 基本测试&#xff08;7&#xff09;主从并行简单测试 重启MySQL服务使配置生效。 注意&#xff1a;并行复制需要slave的硬件资源充足&#xff0c;并且确保网络通信和IO性能不是瓶颈。不是所有的应用场景都适合并行复制&#xff0c;比如写密集型应用或者slave负…

网站配色金华网站建设建设设计网站

function _reverse(number) { // 补全代码 return (number ).split().reverse().join(); } number &#xff1a;首先&#xff0c;将数字 number 转换为字符串。在 JavaScript 中&#xff0c;当你将一个数字与一个字符串相加时&#xff0c;JavaScript 会自动将数字转换为字符串…

竹子建站加盟咨询wex5可以做网站吗

python中对文件、文件夹&#xff08;文件操作函数&#xff09;的操作需要涉及到os模块和shutil模块。 得到当前工作目录&#xff0c;即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目…

建分类网站得花多少钱阿里建站系统

一、21根火柴棍问题&#xff08;21 Matchticks Problem&#xff09; 21根火柴棍问题是西方经典游戏之一。 给定21根火柴&#xff0c;2个人A和B&#xff08;比如&#xff1a;分别是计算机和用户&#xff09;。 每个人一次可以挑选 1-- 4 根火柴。 被迫挑最后一根火柴的人输了…

济南自助建站系统导航网站开发

复制模式和扩展模式扩展器模式在最近几年变得很流行&#xff0c;甚至已经在OSGi标准&#xff08;例如&#xff0c;蓝图服务和Web应用程序规范&#xff09;中使用。 在处女座&#xff0c;我们从一开始就与扩展程序一起工作&#xff0c;但是尽管它们具有优势&#xff0c;但它们仍…

滨州五学一做考试网站网站制作介绍

组网需求 如图1所示&#xff0c;SwitchA、SwitchB和SwitchC之间运行OSPF&#xff0c;SwitchA和SwitchB之间的交换机仅作透传功能。现在需要SwitchA和SwitchB能快速感应它们之间的链路状态&#xff0c;当链路SwitchA-SwitchB发生故障时&#xff0c;业务能快速切换到备份链路Swi…

最好的免费logo设计网站亚马逊aws在线观看

Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模。团队中的架构师会通过建模确定应用程序是否满足客户的需求。 你可以创建不同级别的详细模型&#xff0c;并将它们彼此结合、测试然后发布到你的开发计划里。 在这个实验中…

告别材料乱堆、用电违规!AI 施工监测系统覆盖重点施工场景隐患

在建筑施工的复杂环境中,各类安全隐患犹如潜藏的暗礁,时刻威胁着项目的顺利推进。施工现场材料堆放杂乱无章,重物滚落、易燃物混放;安全通道被随意占用;施工用电违规现象,私拉乱接电线、设备未接地等;大型设备若…

Computer Architecture

System Evaluation Metrics Cost Metrics The cost of a chip includes:Design cost: non-recurring engineering (NRE), can be amortized well if there is high volume; Manufacturing cost: depends on area;Manuf…

cv-css 快捷方式,将指定节点的计算样式获取下拉 获取tailwind网页样式成原生样式

cv-css 快捷方式,将指定节点的计算样式获取下拉 获取tailwind网页样式成原生样式 使用方法先选择节点 点击cv-css 复制函数 控制台粘贴函数回车javascript:(function(){ const code = `(() => { const el = wi…

可以看国外网站的浏览app软考

函数 devm_kzalloc() 和kzalloc()一样都是内核内存分配函数&#xff0c;但是devm_kzalloc()是跟设备(device)有关的&#xff0c;当设备(device)被detached或者驱动(driver)卸载(unloaded)时&#xff0c;内存会被自动释放。另外&#xff0c;当内存不在使用时&#xff0c;可以使用…

温州哪里有网站建设百度广告电话号码

题干 有一个自行车手打算进行一场公路骑行&#xff0c;这条路线总共由 n 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。 给你一个长度为 n 的整数数组 gain &#xff0c;其中 gain[i] 是点 i 和点 i 1 的 净海拔高度差&#xff08;0 < i < n&#xff…

沧县住房和城乡建设局网站1000元做网站

目录 基本分类 C风格输出 C风格 可以抑制输出 方法一 方法二 在Qt中进行log输出, 一般不使用c中的printf, 也不是使用C中的cout, Qt框架提供了专门用于日志输出的类, 头文件名为 QDebug。 基本分类 qDebug&#xff1a;调试信息提示 qInfo &#xff1a;输出信息 qWarnin…

福田区网站建网页设计基础课件

题目 213. 打家劫舍 II 198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈&#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&…

网站备案帐号找回邢台移动网站建设公司

可以使用array()类java.nio.ByteBuffer中的方法获得缓冲区的字节数组。如果返回的数组被修改&#xff0c;则缓冲区的内容也会被类似地修改&#xff0c;反之亦然。如果缓冲区是只读的&#xff0c;则抛出ReadOnlyBufferException。演示此的程序如下所示-示例import java.nio.*;im…

桂城网站设计seow

给定一个二叉树&#xff0c;确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下&#xff1a; 若设二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层 (1&#xff5e;h-1) 的结点数都达到最大个数&#xff0c;第 h 层所有的结点都连续集中在最左边&a…

遂昌赶街网站天津建设银行公积金缴费网站

因工作中的某些奇葩要求&#xff0c;需要将PDF文件的每页内容转存成按顺序编号的图片。用第三方软件或者在线转换也可以&#xff0c;但批量操作还是Python方便&#xff0c;所谓搞定办公自动化&#xff0c;Python出山&#xff0c;一统天下&#xff1b;Python出征&#xff0c;寸草…

用个人免费空间快速建立个人网站后方平台网站和新媒体建设方案

Java集合框架&#xff08;Java Collections Framework&#xff09;是一组用来表示和操作集合的类的集合&#xff0c;它提供了用于存储不同类型对象的标准化接口和类。Java集合框架的主要组成部分包括以下几个部分&#xff1a; 集合接口&#xff08;Collection Interface&#…

做php网站教程wordpress首页摘要

1. 计算公式 https://baijiahao.baidu.com/s?id1750340479004609055&wfrspider&forpc Z087/SQRT(εr1.41)ln[(5.98h)/(0.8wt)] 常规来说阻抗与介电常数成反比,与介质层厚度成正比,与线宽成反比,与铜厚成反比。 Z0&#xff1a;印刷导线的特性阻抗 εr&#xff1a;绝缘…

软件工程:构建数字世界的基石

在当今数字化时代,软件无处不在,从智能手机上的应用程序到大型企业的复杂信息系统,软件已经成为我们生活中不可或缺的一部分。而软件工程,作为一门专注于软件开发的学科,其重要性也日益凸显。它不仅仅是编写代码,…