...倒计时程序,我想让这个程序在剩余30秒蜂鸣器报警,然后在关闭,请高手...
发布网友
发布时间:2024-08-16 22:09
我来回答
共1个回答
热心网友
时间:2024-08-22 11:25
unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0x86,0x8e,0x82,0xff};
//定时初值计算方法:以5ms为例,5ms=5000us,0xffff-5000/1.085即为TH和TL的值
void int1() interrupt 3 //T1中断,时间是5ms
{
unsigned char d1,d2,d3,d4;
TR1=0; //关中断
TH1=0xed; //装定时器初值实现5ms定时
TL1=0xff;
ET1=1; //开中断
TR1=1;
d4=(d%60)%10; //分秒分开显示
d3=(d%60)/10;
d2=(d/60)%10;
d1=(d/60)/10;
if(d==0)//倒计时到0
{
d4=16;//清除显示
d3=16;
d2=16;
d1=16;
}
display(d1,d2,d3,d4);//显示函数
n++;
if((d<30)&&(d>0))//小于30秒 大于0秒
{
if(n<100)//0.5秒
{
Beep=Beep_ON;
led=Led_ON;
}
else
{
Beep=Beep_OFF;
led=Led_OFF;
}
}
if(n>=200)//d每隔1秒减1,实现倒记时,到时即报警
{
n=0;
if(d)
d--;
}
}