void She_zhi(void)
{
uchar New,Wei,Zhi,bb[6],cc[6],i,k,j;
uchar code table8[]=”input new again”;
uchar code table9[]=”Successfully!”;
uchar code table10[]=”Input is error!”;
uchar code table11[]=”put enter again”;
New=0;
Wei=0;
Fu_hao=0;
for(k=0;k<6;k++)
{
bb[k]=0;
cc[k]=0;
}
write_com(1);
for(j=0;j<14;j++)
write_data(table7[j]); //清屏显示输入新密码
while(1)
{
Zhi=keyscan();
if(Zhi>0&&Zhi<=9) //0-9密码按键
{
Xian_shi(0);
if(New==0)
bb[Wei++]=Zhi; //存输入数值
if(New==1)
cc[Wei++]=Zhi;
continue;
}
if(Zhi==15) //删除键按下
{
Xian_shi(1); //清除*号
Wei=0; //重新存输入数值
Fu_hao=0;
continue;
}
if(Zhi==10||Zhi==11||Zhi==12) continue;
if(Zhi==14) //直接按下退出键退出
{
Txet=0;
TR1=0;
write_com(1);
for(j=0;j<12;j++)
write_data(table4[j]); //显示退出
Delay(2000); //延迟2秒后清屏
write_com(1);
Wei=0; //下次重新存数值
Fu_hao=0; //符号位归零,以便下次输入显示
}
if(Zhi==13) //确定键按下
{
New++;
if(New==1) //第一次输入完新密码后,再输入一次
{
write_com(1);
for(j=0;j<15;j++)
write_data(table8[j]);//清屏显示输入新密码
Fu_hao=0 ;
continue;
}
if(New==2) //第二次输入完成,比较前后是否一样
{
for(k=0;k<6;k++)
if(bb[k]!=cc[k]) break;
if(k>6) //两次一样
{
write_com(1);
for(j=0;j<13;j++)
write_data(table9[j]);//清屏显示成功
Users[j]=bb[j]; //更改用户密码
Delay(2000);
Txet=0; //更改密码成功,暂停中断,重新计时
TR1=0;
write_com(1);
for(j=0;j<12;j++)
write_data(table4[j]);
Wei=0;
Fu_hao=0;
write_com(1);
return; //跳出循环
}
if(k<6) //两次输入新密码不一样
{
write_com(1);
for(j=0;j<15;j++)
write_data(table10[j]); //第一行显示输入错误
write_com(0x80+0x40);
for(j=0;j<15;j++) //第二行显示重新输入
write_data(table11[j]);
i=keyscan();
if(i==14) //退出键按下,跳出循环
{
Txet=0;
TR1=0;
write_com(1);
for(j=0;j<12;j++)
write_data(table4[j]);
Delay(2000);
write_com(1);
Wei=0;
Fu_hao=0;
return;
}
if(i==13) //确定键按下,继续输入密码
{
write_com(1);
for(j=0;j<14;j++)
write_data(table7[j]);//清屏显示重新输入
Wei=0; //重新存键值
Fu_hao=0; //重新输出符号
New=0;
continue;
}
}
}
}
}
}
这个红色部分的修改密码的程序为什么在电路板上总是修改不成功,总是显示错误。