这段为定时器T0的中断函数
voidtimer()interrupt 1 //interrupt 1代表定时器T0的向量号
{
TH0=(65536-50411)/256;//TMOD应该是为0x01,为16为重装模式,所以这里是重装值
TL0=(65536-50411)%256; //重装值,TL0为低位,TH0为高位,各是8位,组成16位
num++; //中断触发一次num值+1
if(num==2) //值满足为2的时候,也就是触发2次的时候,执行以下内容
{
num=0; //先清空num重新计数
miao++; //miao加1
if(miao>599) //如果miao超过599时
{miao=0; //miao清0
fen++; //fen+1
if(fen==shijian) //如果fen的值与shijian的值相同时,执行下列语句
{
TR0=0; //关闭定时器T0的允许位,也就是定时器会暂停工作
fm=1;
}
if(fen>9) //如果fen的值大于9
{
fen=0; //清零
TR0=0; //关闭允许位
fm=1; //fm赋值为1
}
}
}
}
希望对你有帮助。
计时,当“shijian”分钟时或10分钟时,关闭定时器,置位fm标志位