⑴ 如何将基于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('