❶ 單片機密碼鎖怎麼判斷密碼正確
假設你用的是最基礎的51單片機,
首先你要知道你的密碼是不是可以修改的,如果想設計成密碼能修改的,要加上非易失存儲器,就是掉電以後也能存儲數據的,類似於24系列的存儲器。如果只是4位密碼的話,24C02完全足夠了,也可以用一個18B20,用裡面的兩個非易失高低溫存儲位元組保存,不過四位密碼你要保存成BCD格式了。這個你自己斟酌了。
如果設計成不用修改密碼的,那就在程序初始化的時候,用一個數組保存密碼,然後依次判斷輸入的密碼和你保存的密碼就行了。給你寫個大概的框框,你參考吧
不能修改密碼的程序
code
uchar
password[4]={2,3,6,8};
//保存密碼的數組
密碼
2,3,6,8,
uchar
Getinput(void);//讀取一次有效輸入的值,按照你的實際硬體自己編寫
main()
{
uchar
i;
uchar
input[4]={0,0,0,0};
for(i=0;i<4;i++)
{
input[i]=Getinput();//讀取輸入的密碼
if(input[i]!=password[i])//如果密碼輸入錯誤
{
i=0;
break;//退出循環
}
}
if(3==i)
//判斷是否4為密碼都輸入正確
{
i=0;
open();//這里是你的開鎖函數
}
}
這只是簡單的實現,你還要考慮很多細節問題,比如輸入錯誤密碼的次數,還有開鎖與關鎖的相關提示等。
❷ 51單片機密碼鎖原理
你的密碼是通過按鍵和單片機直接連接來進行輸入的嗎?還是通過遙控之類的啊?如紅外。
❸ 單片機密碼程序
那密碼怎麼輸入呢。。。矩陣鍵盤?
unsigned int finish_flag=0,i=0;
unsigned long int secret=0;
while(!finish_flag){
if(P0==0x04){i++; secret=10*secret+0;}
if(P0==0x05){i++; secret=10*secret+1;}
if(P0==0x06){i++; secret=10*secret+2;}
if(P0==0x07){i++; secret=10*secret+3;}
if(P0==0x14){i++; secret=10*secret+4;}
if(P0==0x15){i++; secret=10*secret+5;}
if(P0==0x16){i++; secret=10*secret+6;}
if(P0==0x17){i++; secret=10*secret+7;}
if(P0==0x24){i++; secret=10*secret+8;}
if(P0==0x25){i++; secret=10*secret+9;}
if(i==6){finish_flag=1;}
}//假設為4*4矩陣鍵盤輸入,豎著的口為P0_0到P0_3,橫著的為P0_4到P0_7
if(secret==123456){ //假設密碼為123456
P1_0='1'";}//假設P1_0為LED