加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

【普中開(kāi)發(fā)板】基于51單片機(jī)的簡(jiǎn)易密碼鎖設(shè)計(jì)( proteus仿真+程序+設(shè)計(jì)報(bào)告+講解視頻)

11/06 08:38
2349
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 1.主要功能:
    • 實(shí)物圖:
    • 2.仿真
    • 3. 程序代碼
    • 4. 設(shè)計(jì)報(bào)告
    • 5. 設(shè)計(jì)資料內(nèi)容清單
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

程序編譯器:keil 4/keil 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):P10

1.主要功能:

基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89C51/52等51內(nèi)核單片機(jī)通用)

基于51單片機(jī)的簡(jiǎn)易密碼鎖設(shè)計(jì)數(shù)碼管顯示

以單片機(jī)為核心,設(shè)計(jì)一個(gè)六位電子密碼鎖。利用矩陣鍵盤輸入密碼,8位數(shù)碼管顯示輸入的內(nèi)容,要求如下:

1、初始狀態(tài)數(shù)碼管為熄滅狀態(tài),不顯示內(nèi)容,系統(tǒng)等待按鍵按下。

2、矩陣鍵盤按下,數(shù)碼管按順序顯示被按下的按鍵數(shù)字,共六位。

3、每按下六次按鍵,系統(tǒng)判斷一次密碼。密碼正確,數(shù)碼管顯示open,然后回到初始狀態(tài);密碼錯(cuò)誤,數(shù)碼顯示------,持續(xù)2秒,然后回到初始狀態(tài)。

4、密碼錯(cuò)誤3次以上,禁止輸入,如需再輸入,需按下復(fù)位按鍵。

4、密碼為六位,初始密碼為000 000。

5、使用keil編程,proteus仿真調(diào)試,普中開(kāi)發(fā)板完成實(shí)物演示。

(目前僅完全適配普中開(kāi)發(fā)板A234,其他普中開(kāi)發(fā)板型號(hào)可能需要做代碼修改或接線)

需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。

資料下載鏈接:

P系列單片機(jī)設(shè)計(jì)下載鏈接(復(fù)制到瀏覽器打開(kāi))

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

以下為本設(shè)計(jì)資料展示圖:

實(shí)物圖:

img

2.仿真

開(kāi)始仿真

打開(kāi)仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開(kāi)始仿真。

imgimg

3. 程序代碼

使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。

img

#include<reg52.h>
完整代碼在文章開(kāi)頭下載鏈接
#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; //送入數(shù)碼管顯示的變量
uchar wei,key,temp,num1;
uint tt=100;
uchar allow,wanbi,cwflag;	 //各個(gè)狀態(tài)位

sbit beep=P1^7;
sbit jdq=P1^0;

uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,	//數(shù)碼管段碼
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};  //數(shù)碼管位選
void delay(unsigned int i)			   //延時(shí)
{
	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)  //數(shù)碼管顯示
{
   P0=0x00;				   //數(shù)碼管關(guān)閉
   P0=led[a];			   //段選
   P2=table[7];				   //位選
   delay(5);			   //延時(shí)
   
   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)//延時(shí)
{
   while(i--);
}
uchar scan_key=0;
uchar Matrix_buttons_scan(){

	uchar i,j;
	i=0;
	j=0;
	P1=0x0f;
	if(P1!=0x0f) //檢測(cè)有無(wú)按下
	{
	 	delay_uint(10000);
		if(P1!=0x0f) //檢測(cè)有無(wú)按下
		{
		 switch(P1)//檢測(cè)行
		 {
		  case 0x0e:i=3;break;
		  case 0x0d:i=2;break;
		  case 0x0b:i=1;break;
		  case 0x07:i=0;
		 }
		 P1=0xf0;
		 switch(P1)//檢測(cè)列
		 {
		  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;
	}

}
//按鍵掃描子函數(shù)
void keyscan()
{
	uchar i=0;
	i=Matrix_buttons_scan();//按鍵檢測(cè)

	if(i==1) 
	{
       key=0;		   //按鍵0定義
	   wei++;		   //輸入位數(shù)+1	
	}else if(i==2)    
	{
		key=1;		  //按鍵1定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==3)    
	{
		key=2;		  //按鍵2定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==4)    
	{
		key=3;		  //按鍵3定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==5)    
	{
		key=4;		  //按鍵4定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==6)    
	{
		key=5;		  //按鍵5定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==7)    
	{
		key=6;		  //按鍵6定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==8)    
	{
		key=7;		  //按鍵7定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==9)    
	{
		key=8;		  //按鍵8定義
		wei++;		  //輸入位數(shù)+1    
	}else if(i==10)    
	{
		key=9;		  //按鍵9定義
		wei++;		  //輸入位數(shù)+1    
	}
}

4. 設(shè)計(jì)報(bào)告

6198字設(shè)計(jì)報(bào)告,內(nèi)容包括目錄,硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等

img

5. 設(shè)計(jì)資料內(nèi)容清單

資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。

0、常見(jiàn)使用問(wèn)題及解決方法–必讀!?。?!

1、仿真圖

2、程序源碼注釋

3、功能要求

4、開(kāi)題報(bào)告

5、設(shè)計(jì)報(bào)告

6、軟硬件流程框圖

7、燒錄工具

8、講解視頻

Altium Designer 安裝破解

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡(jiǎn)易使用教程

單片機(jī)學(xué)習(xí)資料

普中-2&普中-3&普中-4開(kāi)發(fā)板原理圖.pdf

相關(guān)數(shù)據(jù)手冊(cè)

答辯技巧

設(shè)計(jì)報(bào)告常用描述

鼠標(biāo)雙擊打開(kāi)查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url

img

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

相關(guān)推薦

電子產(chǎn)業(yè)圖譜