附录A:C语言程序 delay(10);
if(n2==0&&n==0) //时间结束 {
if(k7==0||k8==0) //k7k8同时按下 {
soft_reset(); //执行复位操作 }
while(1) {
bee = 0; //开启蜂鸣器 P1=0x02;
if(n2!=0||n!=0) //当时间没结束时执行
{
if(num==20) //记一秒
{
if(n==0) { n--; num=0;
n2--; n=60; }
P1=t[fen2-fen2/10*10];
w9 = 1; w10=0; P0=0xff;
delay(10);
bee = 1; //蜂鸣器停止鸣叫
28
附录A:C语言程序
}
} }
if(k1==0)
{ }
else if(k2==0) { }
else if(k3==0) { }
else if(k4==0) { }
fen1=fen1+1; while(!k1) { }
if(k2==0) //k1按下时k2按下执行减分操作 { }
fen1=fen1-2; if(fen1<0)fen1=0; while(!k2);
fen1=fen1+2; while(!k2);
fen1=fen1+3; while(!k3);
fen2=fen2+1; while(!k4) {
29
附录A:C语言程序 if(k5==0)//k4按下时k5按下执行减分操作 { fen2=fen2-2; if(fen2<0)fen2=0; while(!k5);
}
}
}
else if(k5==0) { fen2=fen2+2; while(!k5);
}
else if(k6==0) { fen2=fen2+3; while(!k6); }
else if(k8==0) { n2++; while(!k8) { if(k7==0) { while(!k7); soft_reset();
}
}
}
}
30
附录A:C语言程序 } /**
* 定时器中断函数 * @param void * @return void */
void T0_time()interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%6;
if(k7==0) { pause = ~pause;while(!k7); }
if(pause) { num++; if(num>20) { num=0;
}
}
} /**
* 延时函数
* @param m 定时数量 * @return void */
void delay(uint m) {
31
附录A:C语言程序 uint i,j; for(i=m;i>0;i--) for(j=10;j>0;j--); } /**
* 复位函数 * @param void * @return void */
void soft_reset(void) {
((void (code *) (void)) 0x0000) (); }
32