铁汁们,这个代码怎么改才能重设密码啊,刚学,有点不会,请兄弟萌告知
#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"
#include "Timer0.h"
sbit beep = P2^3;
sbit D3=P1^3;
//
unsigned char KeyNum,CNT,SEC;
unsigned long Password;
unsigned int Count;
unsigned char setime = 10;
//
void main()
{
LCD_Init();
Timer0_Init();
LCD_ShowString(1,1,"Password:");
while(1)
{
KeyNum=MatrixKey();
if((CNT==0)||(CNT==1)||(CNT==2))//错误次数
{
if(KeyNum)
{
if(KeyNum<=10) //如果S1~S10按键按下,输入密码
{
if(Count<6) //如果输入次数小于6
{
Password*=10; //密码左移一位
Password+=KeyNum%10; //获取一位密码
Count++; //计次加一
}
LCD_ShowNum(2,1,Password,6); //更新显示
}
if(KeyNum==11) //如果S11按键按下,确认
{
if(Password==123456) //如果密码等于正确密码
{
LCD_ShowString(2,7,"correct!");
Password=0; //密码清零
Count=0; //计次清零
D3=0;
Delay(1000);
D3=1;
LCD_ShowNum(2,1,Password,6); //更新显示
// if(KeyNum==13)
// {
//
//
//
// }
//
}
else //否则
{
beep = 0;
LCD_ShowString(2,7,"error! ");
Password=0; //密码清零
Count=0; //计次清零
LCD_ShowNum(2,1,Password,6); //更新显示
CNT++;
LCD_ShowNum(2,12,CNT%10,1);
LCD_ShowChar(2,16,' ');
Delay(200);
beep = 1;
}
}
if(KeyNum==12) //如果S12按键按下,取消
{
Password=0; //密码清零
Count=0; //计次清零
LCD_ShowNum(2,1,Password,6); //更新显示
}
}
}
else
{
TR0=1;
}
}
}
//
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count;
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值
T0Count++;
if(T0Count>=1000)
{
T0Count=0;
SEC++;
if(CNT==3){LCD_ShowNum(2,16,(setime-SEC)%10,1);}
if(SEC==10){LCD_ShowNum(2,16,0,1);TR0=0;CNT=0;SEC=0;LCD_ShowChar(2,12,' ');LCD_ShowString(2,7," ");}
}
}