⑴ 如何將基於51單片機的電子密碼鎖6位密碼程序改為多位密碼
先檢測那個按鍵按下,每檢測到一個按鍵就按順序放到一個buf里,再讀出24c02裡面的數據放到buf2,兩個對比一下就可以了
⑵ 基於單片機的電子密碼鎖需要哪些原件
簡單點的有帶EEPROM的單片機就行了
當然了如果要顯示界面的話用液晶屏了,按鍵,外圍器件
電控鎖。。。主要的在程序上了。
⑶ 基於51單片機的鍵盤式電子密碼鎖
這個問題很簡單!你主要檢查一下電路連接是否正確,重點檢查一下按鍵電路及AT24C02的這塊的電路。還有就是晶振用對沒有。
⑷ 基於51單片機的電子密碼鎖設計
java">#include<reg51.h>
#defineuintunsignedint
charleab[]={0x7f,0x7f,0x7f,0x7f,0x7f,0x7f};
delay(uintz)
{
uintx;
for(;z<0;z--)
for(x=0;x<10;x++);//1ms
}
disp()
{
charx,y;
for(x=5;x>=0;x--)
{for(y=0;y<10;y++)
{P0=0;
P2=x;
P0=leab[x];
delay(10);
P0=0;}
}
}
charsao(charg)
{chard;
switch(g)
{
case1:d=1;break;
case2:d=2;break;
case4:d=3;break;
case8:d=4;break;
default:d=0;break;
}
returnd;
}
charkey()
{
charH=0,L=0,d,d1,d2;
while(1)
{d=0;
P1=0xf0;
if(P1!=0xf0)
{
delay(10);
if(P1!=0xf0)
{
H=(~(P1^0x0f))>>4;
P1=0xff;
P1=0x0f;
L=~(P1^0xf0);
d2=sao(L);
d1=sao(H);
d=(d1-1)*4+d2;
P2=d;
}}
if(d!=0)break;
disp();
}
returnd;
}
main()
{
charleab1[]={0x00,0x00,0x00,0x00,0x00,0x00};
charleab2[]={0x09,0x08,0x00,0x06,0x01,0x01};
chara,b,d,e=0;
intf;
while(1)
{
P3=0xff;
for(a=0;a<6;a++)
{
leab[a]=0x7f;
leab1[a]=0x00;
}
for(b=0;b<100;b++)
{
disp();
}
//for(c=0;c<6;c++)
//{
//leab[c]=0x00;
//}
while(1)
{
for(d=0;d<6;d++)
{
e=key();
if((e>=1)&(e<=10))
{
leab[d]=0x71;
disp();
leab1[d]=e-1;
}
else
{d=d-1;disp();}
if(e==15)break;
}
if(e==15)break;
while(e!=16)
{disp();
e=key();
if(e==16)break;
if(e==15)break;
}
if(e==15)break;
if((leab1[0]==leab2[0])&(leab1[0]==leab2[0])&
(leab1[0]==leab2[0])&(leab1[0]==leab2[0])&
(leab1[0]==leab2[0])&(leab1[0]==leab2[0]))
{
for(f=0;f<800;f++)
{P3=0x02;
delay(100);
disp();
}
}
else
{for(f=0;f<800;f++)
{P3=0x01;
delay(100);
disp();
}}
break;
}
}}
⑸ 基於51單片機的4*4鍵盤電子密碼鎖
有是有,就是還要等幾天,我的電腦被別人借走了,我的設計師用4*4矩陣鍵盤,加2c02(記憶密碼),六位數碼管顯示加stc89c52單片機,如果可以幫你的話,等幾天後可以吧我的密碼鎖的程序給你,可以修改密碼的
⑹ 基於C51單片機的電子密碼鎖簡單代碼,最簡單的就好
C51單片機的電子密碼鎖簡單代碼我有幾篇。。。。可以給你參考.基於C51單片機的電子密碼鎖簡單代碼,最簡單的就好
⑺ 求基於51單片機的電子密碼鎖設計+源程序代碼
推薦你看《單片機c語言程序設計實訓100例——基於8051+proteus模擬》第
03
篇
綜合設計
第34例
「用24c04與1602lcd設計電子密碼鎖」
我這里有這本書,但沒有電子的文檔。
⑻ 51單片機的電子密碼鎖程序,用KEIL C寫的
以前幫別人做過一個類似的
#include<reg52.h>
#include <def.h>
#include"lcd.c"
uchar key;
uchar num;
sbit alarm=P2^4;
sbit open=P2^1;
uchar code table[]={' ','1','2','3',
'4','5','6','7',
'8','9','0'};
void keyscan();
uchar hptable[10];
uchar password[6];
uchar wordbuf[6];
uchar fom[]="input password:";
uchar change[]="set mask:";
uchar state1[]="right";
uchar state2[]="error";
uchar sflag;
uchar dflag,cnt;
uchar setf,fset;
uchar flag;
void main ()
{
uchar hp;
alarm=0;
flag=0;
setf=0;
fset=0;
dflag=0;
lcden=0;
lcdrw=1;
lcdrs=1;
P3=0x0f;
for(hp=0;hp<6;hp++)
{
password[hp]='8';
}
write(0x38,0); //0為寫命令
delay(9);
write(0x08,0);
write(0x01,0);
write(0x06,0);
write(0x0c,0);
write(0x80,0);
for(hp=0;hp<15;hp++)
{
write(fom[hp],1);
}
while(1)
{
// alarm=!alarm;
keyscan();
if(setf==0)
{
if(num>=1&&num<=10)
{
write(0x80+0x40+cnt,0);
write('*',1);
wordbuf[cnt]=table[num];
cnt++;
num=0;
}
}
else
{
write(0x01,0);
write(0x80,0);
for(hp=0;hp<9;hp++)
{
write(change[hp],1);
}
fset=1;
cnt=0;
while(fset)
{
keyscan();
if(num>=1&&num<=10)
{
write(0x80+0x40+cnt,0);
write('*',1);
password[cnt]=table[num];
cnt++;
num=0;
}
if(num==11)
{
write(0x80+0x40+cnt-1,0);
write('