void delay(u16 i)
{
while(i--);
}
void int_init()
{
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
}
void tim0_init()
{
ET0=1;
TMOD=0X01;
TH0=0XFC;
TL0=0X18;
TR0=0;
}
void display()
{
seg1=~smg[num/10%10];
delay(10);
seg2=~smg[num%10];
delay(10);
}
void main()
{
buzzer=0;
int_init();
tim0_init();
while(1)
{
display();
}
}
void int0() interrupt 0
{
if(key1==0)
{
delay(1000);
if(key1==0)
{
TR0=1;
}
}
}
void int1() interrupt 2
{
if(key2==0)
{
delay(1000);
if(key2==0)
{
TR0=0;
}
}
}
void tim0() interrupt 1
{
TH0=0XFC;
TL0=0X18;
if(i==1000)
{
i=0;
num++;
}
i++;
if(num==61)
{
buzzer=1;
delay(1000);
buzzer=0;
num=0;
}
}
是单片机复位,还是定时器复位?单片机复位的话,采用软件复位方式就行了,STC单片机手册上有说明。定时器复位,直接关闭它就行了,同时把计数值清零。
在对应的按键检测代码里加一句num = 0就行了啊。
单片机的复位可以分为:上电复位、掉电复位、软件复位、外部手动复位