当前位置: 首页 > news >正文

【普中开发板】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机的简易密码锁设计

  • 1.主要功能:
    • 资料下载链接:
  • 实物图:
  • 2.仿真
  • 3. 程序代码
  • 4. 设计报告
  • 5. 设计资料内容清单

【普中】基于51单片机的简易密码锁设计

( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus8.16(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P10

1.主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

基于51单片机的简易密码锁设计数码管显示

以单片机为核心,设计一个六位电子密码锁。利用矩阵键盘输入密码,8位数码管显示输入的内容,要求如下:

1、初始状态数码管为熄灭状态,不显示内容,系统等待按键按下。

2、矩阵键盘按下,数码管按顺序显示被按下的按键数字,共六位。

3、每按下六次按键,系统判断一次密码。密码正确,数码管显示open,然后回到初始状态;密码错误,数码显示------,持续2秒,然后回到初始状态。

4、密码错误3次以上,禁止输入,如需再输入,需按下复位按键。

4、密码为六位,初始密码为000 000。

5、使用keil编程,proteus仿真调试,普中开发板完成实物演示。

(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

资料下载链接:

P系列单片机设计下载链接(复制到浏览器打开)

https://docs.qq.com/doc/DS2pPenNRaHB6SlR1

以下为本设计资料展示图:

实物图:

img

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

imgimg

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

#include<reg52.h>
完整代码在文章开头下载链接
#define uchar unsigned char
#define uint unsigned intuchar old1,old2,old3,old4,old5,old6; //原始密码000000
uchar new1,new2,new3,new4,new5=1,new6=1;  //每次MCU采集到的密码输入
uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量
uchar wei,key,temp,num1;
uint tt=100;
uchar allow,wanbi,cwflag;	 //各个状态位sbit beep=P1^7;
sbit jdq=P1^0;uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,	//数码管段码
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,
0x3f,0x73,0x79,0x37		 //open
};  //
uchar code table[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c};  //数码管位选
void delay(unsigned int i)			   //延时
{uint j,k;for(j=i;j>0;j--)for(k=125;k>0;k--);
}void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)  //数码管显示
{P0=0x00;				   //数码管关闭P0=led[a];			   //段选P2=table[7];				   //位选delay(5);			   //延时P0=0x00;P0=led[b];P2=table[6];delay(5);P0=0x00;P0=led[c];P2=table[5];delay(5);P0=0x00;P0=led[d];P2=table[4];delay(5);P0=0x00;P0=led[e];P2=table[3];delay(5);P0=0x00;P0=led[f];P2=table[2];delay(5);}void delay_uint(uint i)//延时
{while(i--);
}
uchar scan_key=0;
uchar Matrix_buttons_scan(){uchar i,j;i=0;j=0;P1=0x0f;if(P1!=0x0f) //检测有无按下{delay_uint(10000);if(P1!=0x0f) //检测有无按下{switch(P1)//检测行{case 0x0e:i=3;break;case 0x0d:i=2;break;case 0x0b:i=1;break;case 0x07:i=0;}P1=0xf0;switch(P1)//检测列{case 0xe0:j=13;break;case 0xd0:j=9;break;case 0xb0:j=5;break;case 0x70:j=1;}}}if(scan_key!=i+j){scan_key=i+j;return scan_key;}else{return 0;}}
//按键扫描子函数
void keyscan()
{uchar i=0;i=Matrix_buttons_scan();//按键检测if(i==1) {key=0;		   //按键0定义wei++;		   //输入位数+1	}else if(i==2)    {key=1;		  //按键1定义wei++;		  //输入位数+1    }else if(i==3)    {key=2;		  //按键2定义wei++;		  //输入位数+1    }else if(i==4)    {key=3;		  //按键3定义wei++;		  //输入位数+1    }else if(i==5)    {key=4;		  //按键4定义wei++;		  //输入位数+1    }else if(i==6)    {key=5;		  //按键5定义wei++;		  //输入位数+1    }else if(i==7)    {key=6;		  //按键6定义wei++;		  //输入位数+1    }else if(i==8)    {key=7;		  //按键7定义wei++;		  //输入位数+1    }else if(i==9)    {key=8;		  //按键8定义wei++;		  //输入位数+1    }else if(i==10)    {key=9;		  //按键9定义wei++;		  //输入位数+1    }
}

4. 设计报告

6198字设计报告,内容包括目录,硬件设计、软件设计、软硬件框图、调试、结论等

img

5. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码注释

3、功能要求

4、开题报告

5、设计报告

6、软硬件流程框图

7、烧录工具

8、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

普中-2&普中-3&普中-4开发板原理图.pdf

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

http://www.lryc.cn/news/278036.html

相关文章:

  • c语言之输出函数用法 putchar
  • 高精度原边控制电路D3820,CC/CV精度±5%以内,可作为10W以下小功率、低待机功耗的电源替代,可兼容OB2520
  • Python库学习(十四):ORM框架-SQLAlchemy
  • 信息学奥赛一本通1014:与圆相关的计算
  • Vscode——通过SSH连接服务器
  • UE5 通过接口实现角色描边效果
  • 电脑提示dll丢失怎么办,教你一招将dll修复
  • MATLAB mat 文件
  • Linux du和df命令
  • Adobe Photoshop 快捷键
  • 缓存代理服务器
  • 四道面试题
  • BRC20 技术分析
  • 【Unity】Timer计时器属性及使用
  • Salesforce lightning优势介绍
  • leaflet学习笔记-贝塞尔曲线绘制(八)
  • 42-单双多路分支,嵌套分支,switch分支,for循环,for in,while,do while,break,continue
  • CNCF之CoreDNS
  • MySQL一主一从读写分离
  • 【学术会议】第三届神经计算青年研讨会 学习笔记
  • [C#]使用winform部署PP-MattingV2人像分割onnx模型
  • 回顾2023,立2024flag
  • 【PostgreSQL创建索引的锁分析和使用注意】
  • 什么是云安全?如何保护云资源
  • Android可换行的RadioGroup
  • 【ASP.NET Core 基础知识】--环境设置
  • docker/华为云cce 部署nacos 2.3.0 集群模式
  • Doris 数据模型—Aggregate 模型
  • 数据库管理-第130期 JSON二元性(20240109)
  • k8s--动态pvc和pv