c语言数字时钟调时按键出错

我编写了一个数字时钟的代码,通过按键来调节时分秒的加减,加键正常使用,减键出现乱码

void Keyscan1()
{
static uChar i=0,j=0; 
if(Key1==0) 
{
Delay(10);
if(Key1==0)
{
while(!Key1);
i++;
}
}
if(i%2==0)
{
TR0=1;
}
if(i%2==1)
{
    TR0=0;
if(Key2==0) 
{
Delay(10); 
if(Key2==0)
while(!Key2);
j++; 
}
if(j%4==1)
{
if(Key3==0)
{
Delay(10); 
if(Key3==0)
while(!Key3);
second++;
if(second==60)
second=0;
}
else if(Key4==0)
{
Delay(10);
if(Key4==0)
while (!Key4)
second--;
if(second==0)
second=59;
}
}
if(j%4==2)
{
if(Key3==0)
{
Delay(10); 
if(Key3==0)
while(!Key3);
minute++;
if(minute==60)
minute=0; 
}
else if(Key4==0)
{
Delay(10);
if(Key4==0)
while (!Key4)
minute--;
if(minute==0)
minute=59;
}
}
if(j%4==3)
{
if(Key3==0)
{ 
Delay(10); 
if(Key3==0)
while(!Key3);
hour++;
if(hour==24)
hour=0; 
}
else if(Key4==0)
{
Delay(10);
if(Key4==0)
while (!Key4)
hour--;
if(hour==0)
hour=23;
}
}
}
}

img

img

img

41 64 84行while后少分号,不能跳出,持续--了