基於微控制器的智慧型密碼鎖

2021-12-29 20:12:23 字數 1938 閱讀 6138

基於微控制器的智慧型密碼鎖

該密碼鎖控制器 ,鍵盤上有0-9個數字按鍵,功能鍵:確認和取消等,可設定復合鍵。密碼的位數及密碼可以任意設定,,當輸入數字和設定的密碼相同的時候,鎖開啟,否則無法開啟。採用iic通訊方式,密碼鎖的密碼掉電不丟失。#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar old1,old2,old3,old4,old5,old6; //原始密碼000000

uchar new1,new2,new3,new4,new5,new6; //每次mcu採集到的密碼輸入

uchar a=10,b=10,c=10,d=10,e=10,f=10; //送入數碼管顯示的變數

uchar wei,key,temp;

bit allow,genggai,ok,wanbi,retry,close; //各個狀態位,預設初始值為0

sbit dula=p2^6;

sbit wela=p2^7;

sbit beep=p2^3;

sbit led=p1^0; //加乙個流水燈,把蜂鳴器換掉

sbit sda=p2^0; //io口定義

sbit scl=p2^1;

unsigned char code table=

; //數碼管顯示0-9的段碼

/*****************i2c晶元24c02儲存器驅動程式************************************/

/*驅動延時程式*/

void nop() //10us延時,保證書寫i2c驅動時滿足大於4us

/*24c02讀寫驅動程式*/

void delay1(unsigned int m)

/*數碼管驅動顯示函式*/

void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)

void keyscan()

while(temp!=0xf0)

led=1;}}

p3=0xfd; //第二行

temp=p3;

temp=temp&0xf0;

if(temp!=0xf0)

while(temp!=0xf0)

led=1;}}

p3=0xfb;

temp=p3;

temp=temp&0xf0;

if(temp!=0xf0)

while(temp!=0xf0)

led=1;}}

p3=0xf7;

temp=p3;

temp=temp&0xf0;

if(temp!=0xf0)

while(temp!=0xf0)

led=1;

}}}}

void shumima() //對按鍵採集來的資料進行分配

}}void yanzheng() //驗證密碼是否正確

}void main()

if(genggai) //當更改密碼鍵被按下會被置一

display(a,b,c,d,e,f);}}

}if(ok) //更改密碼時,當所有六位新密碼均被按下時,可以按下此鍵,結束密碼更改, 其他時間按下此鍵無效

if(retry) //當重試按鍵被按下,retry會被置位

if(close) //當關閉密碼鎖按鍵被按下,close會被置位

display(a,b,c,d,e,f); //實時顯示}}

基於微控制器的指紋識別電子密碼鎖設計

1.1 指紋識別簡介 1.1.1 指紋識別原理 指紋識別技術的原理和其它生物識別技術的原理相似。它是利用人體的指紋特徵對個體身份進行區分和鑑定。在所有的生物識別技術中指紋識別技術是目前最為成熟,也被應用最廣的生物識別技術。這主要因為指紋採用的過程對人們來講非常簡單,指紋識別的準確率高的原因。嚴格來講...

微控制器實用密碼鎖

unsigned char num,i,j unsigned char passwordtemp 16 最大輸入16個 unsigned char inputtimes 密碼輸入錯誤次數 unsigned char passwordlength,plen 輸入密碼長度,實際密碼長度 bit flag...

基於微控制器智慧型電子密碼鎖設計(畢業設計資料)

摘要 隨著資訊科技的不斷發展,資訊化時代也逐步進入普通家庭,人們對個人的資訊保安以及隱私等私密資訊的安全要求不斷提高,傳統的機械鎖已經不能滿足要求。針對此現狀設計一款安全可靠廉價的電子密碼鎖有著十分重要的意義。本設計以at89c51為主控晶元,帶有乙個密碼輸入鍵盤 外圍時鐘復位電路 儲存單元24c0...