📄 mima.c
字号:
temp&=0xf0;
if(temp!=0xf0)
{
delay(5);
temp=P3;
temp&=0xf0;
if(temp!=0xf0)
{
temp=P3;
count++;
switch(temp)
{
case 0xed:
{
num=4;
if(count<6)
{
if(set==1)
pws[count]=4;
else
pwx[count]=4;
Displayhf(1,2,8*count,0);
}
} break;
case 0xdd:
{
num=5;
if(count<6)
{
if(set==1)
pws[count]=5;
else
pwx[count]=5;
Displayhf(1,2,8*count,0);
}
} break;
case 0xbd:
{
num=6;
if(count<6)
{
if(set==1)
pws[count]=6;
else
pwx[count]=6;
Displayhf(1,2,8*count,0);
}
} break;
}
while(temp!=0xf0)
{
temp=P3;
temp&=0xf0;
}
}
}
P3=0xfb;
temp=P3;
temp&=0xf0;
if(temp!=0xf0)
{
delay(5);
temp=P3;
temp&=0xf0;
if(temp!=0xf0)
{
temp=P3;
count++;
switch(temp)
{
case 0xeb:
{
num=1;
if(count<6)
{
if(set==1)
pws[count]=1;
else
pwx[count]=1;
Displayhf(1,2,8*count,0);
}
} break;
case 0xdb:
{
num=2;
if(count<6)
{
if(set==1)
pws[count]=2;
else
pwx[count]=2;
Displayhf(1,2,8*count,0);
}
} break;
case 0xbb:
{
num=3;
if(count<6)
{
if(set==1)
pws[count]=3;
else
pwx[count]=3;
Displayhf(1,2,8*count,0);
}
} break;
}
while(temp!=0xf0)
{
temp=P3;
temp&=0xf0;
}
}
}
P3=0xf7;
temp=P3;
temp&=0xf0;
if(temp!=0xf0)
{
delay(5);
temp=P3;
temp&=0xf0;
if(temp!=0xf0)
{
temp=P3;
count++;
switch(temp)
{
case 0xe7: //确定键
{
num=20;
} break;
case 0xd7:
num=0;
if(count<6)
{
if(set==1)
pws[count]=0;
else
pwx[count]=0;
Displayhf(1,2,8*count,0);
}
break;
case 0x77: //复位键
{
ClearScreen(0);
shulu();
count=-1;
set=0;
}
break;
}
while(temp!=0xf0)
{
temp=P3;
temp&=0xf0;
}
}
}
return(num);
}
bit compare() //密码比较
{
if((pws[0]==pwx[0])&(pws[1]==pwx[1])&(pws[2]==pwx[2])&(pws[3]==pwx[3])&(pws[4]==pwx[4])&(pws[5]==pwx[5]))
rightflag=1;
else
rightflag=0;
return(rightflag);
}
void shulu() //开始液晶显示的字
{
Display(1,0,0,0);
Display(1,0,16,1);
Display(1,0,32,2);
Display(1,0,48,3);
Display(2,0,64,4);
Displayhf(2,0,80,1);
}
void main()
{
Init();
shulu();
while(1)
{
keyscan();
if(num==20) //当确定键按下
{
if(count==6)
{
if(set==1) //当设置键按下
{
compare(); //比较输入的密码和原始的密码是否一致
if(rightflag==1) //若一致
{
ClearScreen(0); //清屏
Display(1,0,0,0); //请
Display(1,0,16,1); //输
Display(1,0,32,2); //入
Display(1,0,48,25); //六
Display(2,0,64,26); //位
Display(2,0,80,13); //新
Display(2,0,96,3); //密
Display(2,0,112,4); //码
count=-1;
while(count!=6) //等待输入六位新密码
{
keyscan();
}
ClearScreen(0); //输入完后清屏
Display(1,0,0,3); //显示"密码设置完成!"
Display(1,0,16,4);
Display(1,0,32,16);
Display(1,0,48,17);
Display(2,0,64,18);
Display(2,0,80,19);
Displayhf(2,0,96,3);
delay(1000); //延时1S
ClearScreen(0);
shulu(); //显示"请输入密码:"
count=-1;
num=12; //退出IF语句,从新按键检测
set=0; //设置状态清0
}
else //若不一致
{
ClearScreen(0);
Display(1,0,0,20); //显示"您输入的密码有误"
Display(1,0,16,1);
Display(1,0,32,2);
Display(1,0,48,21);
Display(2,0,64,3);
Display(2,0,80,4);
Display(2,0,64,22);
Display(2,0,80,11);
delay(1000);
Display(1,0,0,0); //显示"请按设置键重新输入"
Display(1,0,16,23);
Display(1,0,32,16);
Display(1,0,48,17);
Display(2,0,64,24);
Display(2,0,80,12);
Display(2,0,96,13);
Display(2,0,112,1);
Display(1,2,0,2);
count=-1;
while(count!=-1) //等待按设置键
{
keyscan();
}
num=12;
count=-1;
}
}
else //按下确定密码输入比较时
{
compare(); //密码比较
if(rightflag==1) //若相同
{
ClearScreen(0);
Display(1,0,0,3); //显示"密码正确谢谢合作"
Display(1,0,16,4);
Display(1,0,32,5);
Display(1,0,48,6);
Display(2,0,64,7);
Display(2,0,80,7);
Display(2,0,96,8);
Display(2,0,112,9);
num=12;
}
else //若不一致
{
ClearScreen(0);
Display(1,0,0,3); //显示"密码错误请重新输入"
Display(1,0,16,4);
Display(1,0,32,10);
Display(1,0,48,11);
Display(2,0,64,0);
Display(2,0,80,12);
Display(2,0,96,13);
Display(2,0,112,1);
Display(1,2,0,2);
delay(1000);
num=12;
ClearScreen(0);
shulu();
count=-1;
}
}
}
else //当输入的密码位数不为6时
{
if(set==1)
{
ClearScreen(0);
Display(1,0,0,20);
Display(1,0,16,1);
Display(1,0,32,2);
Display(1,0,48,21);
Display(2,0,64,3);
Display(2,0,80,4);
Display(2,0,64,22);
Display(2,0,80,11);
delay(1000);
Display(1,0,0,0);
Display(1,0,16,23);
Display(1,0,32,16);
Display(1,0,48,17);
Display(2,0,64,24);
Display(2,0,80,12);
Display(2,0,96,13);
Display(2,0,112,1);
Display(1,2,0,2);
count=-1;
while(count!=-1)
{
keyscan();
}
num=12;
count=-1;
}
else
{
ClearScreen(0);
Display(1,0,0,3);
Display(1,0,16,4);
Display(1,0,32,10);
Display(1,0,48,11);
Display(2,0,64,0);
Display(2,0,80,12);
Display(2,0,96,13);
Display(2,0,112,1);
Display(1,2,0,2);
delay(1000);
num=12;
ClearScreen(0);
shulu();
count=-1;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -