`铁汁们,为什么我的按键按下不清零,哪里出错了?请告知
#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "Timer0.h"
#include "MatrixKey.h"
#include "DS1302.h"
#include <intrins.h>
#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;
}
}
}
}
}