关于#c##的问题,如何解决?

`铁汁们,为什么我的按键按下不清零,哪里出错了?请告知


#include 
#include "Delay.h"
#include "LCD1602.h"
#include "Timer0.h"
#include "MatrixKey.h"
#include "DS1302.h"
#include 
#define uint unsigned int 
#define uchar unsigned char     

unsigned char Sec=00,Min=00,Hour=00;
unsigned char KeyNum,temp;

sbit beep=P2^3;

void main()
{

    LCD_Init();//³õʼ»¯
    Timer0_Init();
    LCD_ShowString(1,1,"Clock");
    LCD_ShowString(2,1,"  :  :");//ðºÅ
    TR0=1;
    while(1)
    {
        
        if(KeyNum==1)
        {
        unsigned char Sec=00,Min=00,Hour=00;
        }
        if(Sec==10 && Min==00 && Hour==00)
        {    
        beep=0;
        Delay(1000);
        LCD_ShowString(1,1,"    ");
        LCD_ShowString(2,1,"          ");        
        LCD_ShowString(1,5,"Time up");
        Delay(1000);
        LCD_ShowString(1,6,"            ");
        LCD_ShowString(1,1,"Clock");
        LCD_ShowString(2,1,"  :  :");//ðºÅ
        }
        else
        {
        beep=1;
        }    
        LCD_ShowNum(2,1,Hour,2);
        LCD_ShowNum(2,4,Min,2);
        LCD_ShowNum(2,7,Sec,2);
    }
    
}

void Timer0_Rountine() interrupt 1
//×Óº¯ÊýÖ´ÐÐÍêÔÙÌø»Øwhile(1)
{//ÿһ´ÎÖжÏÖ®ºó¶¼ÐèÒªÖØÐ¸³³õÖµ£¬ÒòΪµÚÒ»´ÎÖ´ÐÐÊÇ1ms£¬Ï´ÎÖ´ÐдÓ0¿ªÊ¼¾ÍÊÇ65msÁË
    static unsigned int T0Count1;//Èç¹ûunsigned int T0CountÔÚ×Óº¯ÊýµÄÍâÃæ¼´ÔÚvoid Timer0_Rountine() interrupt 1µÄÉÏÃæ£¬¾ÍÊÇÈ«¾Ö±äÁ¿£¬ÔÚÀïÃæ¾ÍÊǾֲ¿±äÁ¿
    //¼ÓÁËstatic¾Í´ú±íÕâ¸ö¾Ö²¿±äÁ¿ÔÚº¯Êý½áÊøÖ®ºó»áÏú»Ù£¬ÎªÁËÈÃËû³ÌÐò±£ÁôËùÒÔ¼ÓÁËstatic,²»ÇåÁ㣬ΪÁ˱£Ö¤Í˳öº¯ÊýµÄʱºò²»¶ªshiÊý¾Ý
    
    TL0 = 0x66;        //ÉèÖö¨Ê±³õʼֵ
    TH0 = 0xFC;        //ÉèÖö¨Ê±³õʼֵ
    T0Count1++;
    if(T0Count1>=1000)
    {
        T0Count1=0;
        Sec++;
        if(Sec>=60)
        {
            Sec=0;
            Min++;
            if(Min>=60)
            {
                Min=0;
                Hour++;
                if(Hour>=24)
                {
                    Hour=0;
                }
            }
        
        }
    }
}