• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的1602電子密碼鎖設(shè)計

04/17 10:00
430
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機(jī)仿真設(shè)計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【N03】

1.? 簡介

? 本文提出了一種基于51單片機(jī)的簡易密碼鎖設(shè)計。該設(shè)計在硬件方面主要采用AT89C51單片機(jī)作為主控核心,結(jié)合矩陣鍵盤、LCD1602、LED燈、蜂鳴器,實現(xiàn)修改用戶密碼、關(guān)鎖、退格、密碼錯誤報警等功能。

2.? 主要功能

a.本設(shè)計為了防止密碼被竊取要求在輸入密碼時在數(shù)碼管上顯示*號。

b.設(shè)計開鎖密碼位6位密碼的電子密碼鎖。

c.能夠在密碼正確時紅燈亮,LCD1602顯示OPEN。

d.4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵

e.本產(chǎn)品具備報警功能,當(dāng)輸入密碼錯誤時蜂鳴器響,連續(xù)三次輸錯密碼鎖定鍵盤。

f.密碼可以由用戶自己修改設(shè)定。

3.? 源程序(Keil5)

本設(shè)計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設(shè)計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

//包含頭文件
#include <REG51.h>
#include<intrins.h>
//宏定義
#define LCM_Data  P0		  //將P0口定義為LCM_Data
#define uchar unsigned char 
#define uint  unsigned int
//1602的控制腳
sbit lcd1602_rs=P2^5;
sbit lcd1602_rw=P2^6;
sbit lcd1602_en=P2^7;

sbit Scl=P3^4;			//24C02串行時鐘
sbit Sda=P3^5;			//24C02串行數(shù)據(jù)

sbit ALAM = P2^1;		//報警	
sbit KEY = P3^6;		//開鎖

bit  pass=0;			//密碼正確標(biāo)志
bit  ReInputEn=0;		//重置輸入允許標(biāo)志	
bit  s3_keydown=0;		//3秒按鍵標(biāo)志位
bit  key_disable=0;		//鎖定鍵盤標(biāo)志

unsigned char countt0,second;	//t0中斷計數(shù)器,秒計數(shù)器

void Delay5Ms(void);		//聲明延時函數(shù)

unsigned char code a[]={0xFE,0xFD,0xFB,0xF7}; 				//控盤掃描控制表
//液晶顯示數(shù)據(jù)數(shù)組
unsigned char code start_line[]	= {"password:       "};
unsigned char code name[] 	 	= {"===Coded Lock==="};	//顯示名稱
unsigned char code Correct[] 	= {"     correct    "};		//輸入正確
unsigned char code Error[]   	= {"      error     "};  	//輸入錯誤
unsigned char code codepass[]	= {"      pass      "}; 
unsigned char code LockOpen[]	= {"      open      "};		//OPEN
unsigned char code SetNew[] 	= {"SetNewWordEnable"};
unsigned char code Input[]   	= {"input:          "};		//INPUT
unsigned char code ResetOK[] 	= {"ResetPasswordOK "};
unsigned char code initword[]	= {"Init password..."};
unsigned char code Er_try[]		= {"error,try again!"};
unsigned char code again[]		= {"input again     "};

unsigned char InputData[6];									//輸入密碼暫存區(qū)
unsigned char CurrentPassword[6]={0,0,0,0,0,0}; 			//讀取EEPROM密碼暫存數(shù)組
unsigned char TempPassword[6];
unsigned char N=0;				//密碼輸入位數(shù)記數(shù)
unsigned char ErrorCont;			//錯誤次數(shù)計數(shù)
unsigned char CorrectCont;			//正確輸入計數(shù)
unsigned char ReInputCont; 			//重新輸入計數(shù)
unsigned char code initpassword[6]={0,0,0,0,0,0};			//輸入管理員密碼后將密碼初始為000000
unsigned char code adminpassword[6]={1,3,1,4,2,0};			//輸入管理員密碼后將密碼初始為000000


//=====================5ms延時==============================
void Delay5Ms(void)
{
	unsigned int TempCyc = 5552;
	while(TempCyc--);
}

//===================400ms延時==============================
void Delay400Ms(void)
{
 unsigned char TempCycA = 5;
 unsigned int TempCycB;
 while(TempCycA--)
 {
  TempCycB=7269;
  while(TempCycB--);
 }
}

//=============================================================================================
//================================24C02========================================================
//=============================================================================================

void mDelay(uint t) //延時
{ 
	uchar i;
   	while(t--)
   	{
   		for(i=0;i<125;i++)
   		{;}
   	}
}
   

void Nop(void)		  //空操作
{
 	_nop_();		  //僅作延時用一條語句大約1us
 	_nop_();
 	_nop_();
 	_nop_();
}

/*****24c02程序參照24c02時序圖*****/
/*起始條件*/

void Start(void)
{
 	Sda=1;
 	Scl=1;
 	Nop();
 	Sda=0;
 	Nop();
}


 /*停止條件*/
void Stop(void)
{
 	Sda=0;
 	Scl=1;
 	Nop();
 	Sda=1;
 	Nop();
}

/*應(yīng)答位*/
void Ack(void)
{
	Sda=0;
	Nop();
	Scl=1;
	Nop();
	Scl=0;
}

/*反向應(yīng)答位*/
void NoAck(void)
{
 	Sda=1;
 	Nop();
 	Scl=1;
 	Nop();
 	Scl=0;
}

4.? 仿真proteus8.6

? 本設(shè)計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設(shè)計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

初始界面:

開鎖:

5.? 設(shè)計報告

設(shè)計報告主要包括硬件電路、軟件設(shè)計、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計資料主要包括C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【N03】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計合集:單片機(jī)仿真設(shè)計合集

  • 單片機(jī)仿真設(shè)計合集資料獲取.pdf
    下載

相關(guān)推薦