电子密码锁双按键51程序.docx

上传人:b****6 文档编号:4960299 上传时间:2022-12-12 格式:DOCX 页数:14 大小:15.77KB
下载 相关 举报
电子密码锁双按键51程序.docx_第1页
第1页 / 共14页
电子密码锁双按键51程序.docx_第2页
第2页 / 共14页
电子密码锁双按键51程序.docx_第3页
第3页 / 共14页
电子密码锁双按键51程序.docx_第4页
第4页 / 共14页
电子密码锁双按键51程序.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

电子密码锁双按键51程序.docx

《电子密码锁双按键51程序.docx》由会员分享,可在线阅读,更多相关《电子密码锁双按键51程序.docx(14页珍藏版)》请在冰豆网上搜索。

电子密码锁双按键51程序.docx

电子密码锁双按键51程序

#include

#defineucharunsignedchar

#defineuintunsignedint

uchari,j,k,num,cnt,flag,flag1,flag2,a,b,c,d,e,f,aa,bb,cc,dd,ee,ff;

uintshu;

ucharcodetable[]="inputchange";

ucharcodetableshu[]="0123456789";

ucharcodetableright[]="right";

ucharcodetablewrong[]="wrong";

ucharcodetableold[]="old";//11

ucharcodetablenew[]="new";//11

ucharcodetablena[]="newagain";//16

ucharcodetables[]="changesuccess";

ucharcodexing[]="*";

sbitk0=P3^0;

sbitk1=P3^1;

sbitlcden=P2^6;

sbitlcdrs=P2^4;

sbitlcdrw=P2^5;

sbitdeng=P1^0;

sbitjin=P2^0;

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidwrite_com(ucharcom)

{

lcdrs=0;

lcdrw=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidwrite_date(uchardate)

{

lcdrs=1;

lcdrw=0;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

ucharkeyscan()

{

if(k0==0)

{

delay(5);

if(k0==0)

num=1;

while(!

k0);

}

if(k1==0)

{

delay(5);

if(k1==0)

num=2;

while(!

k1);

}

returnnum;

}

voidinit()

{

TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

lcden=0;

write_com(0x38);

write_com(0x0f);

write_com(0x06);

write_com(0x01);

a=1;

b=2;

c=3;

d=4;

e=5;

f=6;

}

voidinput()

{

write_com(0x01);

write_com(0x80);

for(i=0;i<10;i++)

{

write_date(tableshu[i]);

delay

(1);

}

write_com(0x80);

while

(1)

{

while(!

keyscan());

if(num==1)

{

num=0;

j++;

if(j==10)

j=0;

write_com(0x80+j);

}

else

{

num=0;

write_com(0x80+0x40+k);

write_date(xing[0]);

write_com(0x80);

k++;

if(k==1&&j==a)

flag++;

if(k==2&&j==b)

flag++;

if(k==3&&j==c)

flag++;

if(k==4&&j==d)

flag++;

if(k==5&&j==e)

flag++;

if(k==6&&j==f)

flag++;

j=0;

}

if(k==6)

{

k=0;

break;

}

}

if(flag==6)

{

flag=0;

write_com(0x01);

write_com(0x0c);

for(i=0;i<5;i++)

{

write_date(tableright[i]);

delay

(1);

}

deng=0;

}

else

{

flag=0;

write_com(0x01);

write_com(0x0c);

for(i=0;i<5;i++)

{

write_date(tablewrong[i]);

delay

(1);

}

cnt++;

if(cnt==3)

{

cnt=0;

TR0=1;

while

(1)

{

if(shu==10000)

{

shu=0;

break;

}

}

}

}

}

voidchange()

{

write_com(0x01);

write_com(0x80);

for(i=0;i<10;i++)

{

write_date(tableshu[i]);

delay

(1);

}

write_com(0x80+0x40);

for(i=0;i<11;i++)

{

write_date(tableold[i]);

delay

(1);

}

write_com(0x80);

while

(1)

{

while(!

keyscan());

if(num==1)

{

num=0;

j++;

if(j==10)

j=0;

write_com(0x80+j);

}

else

{

num=0;

write_com(0x80+0x40+k);

write_date(xing[0]);

write_com(0x80);

k++;

if(k==1&&j==a)

flag++;

if(k==2&&j==b)

flag++;

if(k==3&&j==c)

flag++;

if(k==4&&j==d)

flag++;

if(k==5&&j==e)

flag++;

if(k==6&&j==f)

flag++;

j=0;

}

if(k==6)

{

k=0;

break;

}

}

if(flag!

=6)

{

flag=0;

flag1=1;

}

else

{

flag=0;

write_com(0x80+0x40);

for(i=0;i<11;i++)

{

write_date(tablenew[i]);

delay

(1);

}

write_com(0x80);

while

(1)

{

while(!

keyscan());

if(num==1)

{

num=0;

j++;

if(j==10)

j=0;

write_com(0x80+j);

}

else

{

num=0;

write_com(0x80+0x40+k);

write_date(xing[0]);

write_com(0x80);

k++;

if(k==1)

aa=j;

if(k==2)

bb=j;

if(k==3)

cc=j;

if(k==4)

dd=j;

if(k==5)

ee=j;

if(k==6)

ff=j;

j=0;

}

if(k==6)

{

k=0;

break;

}

}

write_com(0x80+0x40);

for(i=0;i<16;i++)

{

write_date(tablena[i]);

delay

(1);

}

write_com(0x80);

while

(1)

{

while(!

keyscan());

if(num==1)

{

write_com(0x81+j);

num=0;

j++;

if(j==9)

j=0;

}

else

{

num=0;

write_com(0x80+0x40+k);

write_date(xing[0]);

write_com(0x80);

k++;

if(k==1&&j==aa)

flag2++;

if(k==2&&j==bb)

flag2++;

if(k==3&&j==cc)

flag2++;

if(k==4&&j==dd)

flag2++;

if(k==5&&j==ee)

flag2++;

if(k==6&&j==ff)

flag2++;

j=0;

}

if(k==6)

{

k=0;

break;

}

}

if(flag2==6)

{

flag2=0;

a=aa;

b=bb;

c=cc;

d=dd;

e=ee;

f=ff;

write_com(0x01);

write_com(0x0c);

write_com(0x80);

for(i=0;i<14;i++)

{

write_date(tables[i]);

delay

(1);

}

flag1=2;

}

else

{

flag2=0;

flag1=1;

}

}

}

voidmain()

{

init();

while

(1)

{

write_com(0x01);

write_com(0x0f);

write_com(0x80);

for(i=0;i<12;i++)

{

write_date(table[i]);

delay

(1);

}

write_com(0x80+5);

while(!

keyscan());

if(num==1)

{

num=0;

input();

delay(1000);

if(deng==0)

break;

}

else

{

num=0;

change();

if(flag1==1)

{

flag1=0;

write_com(0x01);

for(i=0;i<5;i++)

{

write_date(tablewrong[i]);

delay

(1);

}

}

delay(1000);

}

}

}

voidtimer0()interrupt1

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

shu++;

if(shu==10000)

{

TR0=0;

}

jin=~jin;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1