基于51单片机的8位电子密码锁Word格式.docx
- 文档编号:7668411
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:21
- 大小:47.44KB
基于51单片机的8位电子密码锁Word格式.docx
《基于51单片机的8位电子密码锁Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的8位电子密码锁Word格式.docx(21页珍藏版)》请在冰点文库上搜索。
//存储开锁密码
ucharatdata1[8]={12,12,12,12,12,12,12,12};
//存储HHHHHHHH
ucharatdata2[8]={11,11,11,11,11,11,11,11};
//存储修改密码
ucharatdata3[8]={14,14,14,14,14,14,14,14};
//存储换密码时输入的密码
voidat24c02_init();
voidstart();
voidstop();
voidrespons0();
//应答
voidrespons1();
voidwrite_add(ucharaddress,uchardate);
ucharread_add(ucharaddress);
voidread_data(void);
voidwrite_data(void);
ucharkeyscan();
voiddisplay();
voidkeyprocess();
voiddelay()
{;
;
}
voiddelayms(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voidmain()
//at24c02_init();
play=atdata2;
read_data();
//write_data();
while
(1)
{
display();
keyprocess();
}
voiddisplay()
{
ucharj;
for(j=0;
j<
=7;
j++)
{
P1=0Xff;
P0=dula[play[j]];
P1=wela[j];
}
ucharkeyscan()
ucharnum=0xff;
P2=0xfe;
temp=P2;
temp=temp&
0xf0;
while(temp!
=0xf0)
{
delayms(5);
temp=P2;
temp=temp&
while(temp!
{
temp=P2;
switch(temp)
{
case0xee:
num=1;
break;
case0xde:
num=2;
case0xbe:
num=3;
case0x7e:
num=4;
}
temp=P2;
temp=temp&
}
}
P2=0xfd;
case0xed:
num=5;
case0xdd:
num=6;
case0xbd:
num=7;
case0x7d:
num=8;
P2=0xfb;
case0xeb:
num=9;
case0xdb:
num=0;
case0xbb:
num=11;
case0x7b:
num=12;
P2=0xf7;
case0xe7:
num=13;
case0xd7:
num=14;
case0xb7:
num=15;
case0x77:
num=16;
returnnum;
voidkeyprocess()
ucharkeydata=0;
uchari,error=0;
staticunsignedcharflag=0;
staticunsignedcharnum=0;
keydata=keyscan();
if(keydata==0xff)
return;
switch(keydata)
{
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
case0:
if(flag==1)
{
if(num<
8)
atdata3[num]=13;
atdata[num]=keydata;
num++;
else
if(flag==2)
atdata1[num]=keydata;
if(num<
atdata2[num]=13;
break;
case11:
if(flag==0&
&
num==8)
{
num=0;
for(i=0;
i<
8;
i++)
if(atdata[i]==at24c02[i])
;
}
else
error=1;
if(error==0)
led1=0;
delayms(1000);
led1=1;
else
led2=0;
fmq=0;
delayms(500);
led2=1;
fmq=1;
error=0;
atdata[i]=11;
atdata2[i]=11;
if(flag==1&
{num=0;
for(i=0;
if(atdata[i]==at24c02[i]);
flag=2;
play=atdata1;
led2=0;
fmq=0;
delayms(500);
led2=1;
fmq=1;
error=0;
atdata3[i]=14;
}
}
break;
case12:
if(num>
0)
{
num--;
if(flag==1)
atdata3[num]=14;
if(flag==2)
atdata1[num]=12;
{atdata[num]=11;
atdata2[num]=11;
case13:
if(flag==0)
play=atdata3;
flag=1;
case14:
if(flag==2&
write_data();
at24c02[i]=atdata1[i];
led1=0;
delayms(300);
play=atdata2;
atdata1[i]=12;
flag=0;
num=0;
case15:
flag=0;
play=atdata2;
case16:
/*on=0;
atdata2[i]=11;
}*/
voidstart()//开始信号
sda=1;
delay();
scl=1;
sda=0;
voidstop()//停止
voidrespons0()//应答
scl=0;
voidrespons1()//应答
voidinit()
voidwrite_byte(uchardate)
uchari,temp;
temp=date;
for(i=0;
temp=temp<
<
1;
scl=0;
sda=CY;
delay();
scl=1;
//scl=0;
//delay();
ucharread_byte()
uchari,k;
k=(k<
1)|sda;
returnk;
voidwrite_add(ucharaddress,uchardate)
start();
write_byte(0xa0);
respons0();
write_byte(address);
write_byte(date);
stop();
ucharread_add(ucharaddress)
uchardate;
write_byte(0xa1);
date=read_byte();
respons1();
returndate;
voidread_data()
uchari;
delayms(5);
at24c02[i]=read_add(i);
voidwrite_data()
write_add(i,atdata1[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 电子 密码锁