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

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

【普中】基于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系列单片机设计下载链接(复制到浏览器打开)

c 复制代码
https://docs.qq.com/doc/DS2pPenNRaHB6SlR1

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

实物图:

2.仿真

开始仿真

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

3. 程序代码

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

c 复制代码
#include<reg52.h>
完整代码在文章开头下载链接
#define uchar unsigned char
#define uint unsigned int

uchar 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字设计报告,内容包括目录,硬件设计、软件设计、软硬件框图、调试、结论等

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

相关推荐
沐欣工作室_lvyiyi1 小时前
基于单片机的汽车智能座舱控制系统的设计与实现(论文+源码)
单片机·嵌入式硬件·汽车·智能座舱
Alinket2 小时前
资源受限 MCU 的 OTA 升级怎么做:差分、签名校验与断点续传
单片机·嵌入式硬件
dtq04242 小时前
嵌入式3 - 外设和GPIO基本概念
单片机·嵌入式硬件
cu1433 小时前
细谈IT65631的具体功能与其应用
c++·单片机·嵌入式硬件
小莞尔4 小时前
【51单片机】【protues仿真】基于51单片机超声波测距仪系统
c语言·单片机·嵌入式硬件·物联网·51单片机
Chery11404 小时前
充电桩控制板如何增加以太网通信?MCU联网方案选型思路
单片机·嵌入式硬件
新晨单片机设计4 小时前
S027D-STM32智能电梯控制系统(超重、防夹、语音)【Proteus仿真+Keil程序+原理图】
stm32·嵌入式硬件·语音识别·智能电梯控制系统
恶魔泡泡糖4 小时前
stm32F103C8T6标准库串口型雷达模块协议基础(RD03)
stm32·单片机·嵌入式硬件
集芯微电科技有限公司4 小时前
集芯微电科技推出5.5V/10A集成功率MOSFET降压DC/DC转换器
人工智能·科技·单片机·嵌入式硬件·神经网络·生成对抗网络
送外卖的工程师4 小时前
STM32智能家居语音系统(ASRPRO版)
stm32·单片机·嵌入式硬件