{
while(P25==0);
cc=cc+3;
point_lcd(0x08,cc);
if(P25==0)
{
while(P25==0);
delay(20);
}
}
else if(P26==0) //P26按下交换比分
{
while(P26==0);
dd=bb;
bb=cc;
cc=dd;
point_lcd(0x08,cc);
point_lcd(0x04,bb);
if(P26==0)
{
while(P26==0);
delay(20);
}
}
}
//比赛倒计时/24s倒计时
void counter_down()
{
uchar i;
if(time>=20) //每1s倒计时做减一操作
{
second--;
aa--;
write_com(0x80+0x4e); //24s倒计时显示
write_date(0x30+aa/10);
write_date(0x30+aa%10);
write_com(0x80+0x4e);
beep=1;
if(aa==0) //24s结束发出连续报警
{
beep=0;
delay(3000);
beep=1;
aa=24;
}
if((second==0)&&(minute==0)) //检测一节比赛是否结束
{
TR1=0; //定时器1暂停
write_com(0x80+0x44);
write_date(0x30);
num++;
aa=24; //24s计时复位
write_com(0x80+0x4e); //24s倒计时显示
write_date(0x30+aa/10);
write_date(0x30+aa%10);
write_com(0x80+0x4e);
if(num<5) //每节结束蜂鸣器发出间断报警
{
for(i=80;i>0;i--)
{
beep=0;
delay(500);
beep=1;
delay(500);
}
}
if(num==5) //终场结束,蜂鸣器发出连续警报声
{
beep=0;
delay(10000);
num=0;
}
beep=1; //蜂鸣器关闭
write_com(0x80+0x4b); //更新"SEC-?"
write_date(0x30+num);
write_com(0x80+0x4b);
second=0; //倒计时复位
minute=12;
}
if(second==-1)
{
second=59;
minute--;
}
write_com(0x80+0x40); //更新倒计时显示
write_date(0x30+minute/10);
write_date(0x30+minute%10);
write_com(0x80+0x43);
write_date(0x30+second/10);
write_date(0x30+second%10);
write_com(0x80+0x43);
time=0;
}
}
[1] [2]