uchar TC_20ms;20毫秒計數
uchar TC_100ms;100毫秒計數
uchar TC_1s;1秒計數
uchar TC_60s;60秒計數
uchar TC_3600s;1小時計數
uchar TF_200ms;20毫秒到時標記
uchar TF_100ms;100毫秒到時標記
uchar TF_1s;1秒到時標記
uchar TF_60s;60秒到時標記
uchar TF_3600s;1小時到時標記
用定時器定時產生20ms定時
void init() interrupt 1
//定時常數=65535-(晶體頻率/分頻數*定時周期)-20
{
//重裝定時器;
TF_20MS=1;
TC_20MS++;
if(TC_20MS==5){TC_20MS=0;
TF_100MS=1;
TC_100MS++;
if(GC_100MS==10)
{TC_100MS=0;
TF_1S=1;
TC_1S++;
if(TC_1S==60){
TC_1S=0;
…………
}
}
}
}
main()
{
unsigned long waiting_time_s=10000;
unsigned long beep_time_100ms=100;
unsigned long sys_time_s;
unsigned long beep_100ms;
//初始化定時器;
while(1)
{
if(TF_1S==1){sys_time_s++;TF_1S=0;}
if(sys_time_s>=waiting_time_s)
{
if(TF_100MS==1){beep_100ms++;TF_100MS=0;}
if(beep_time_100ms>beep_100ms)
beep();//響鈴函數
}
}
}
///僅僅是思路,希望有幫助。