|
用STC8G1K08A單片機的定時器0 寫了定時亮燈的程序,但發(fā)覺不產(chǎn)生定時作用。以下是定時器0的程序。請各位大佬指導(dǎo)一下。- bit FLAG = 0; //計數(shù)完成標(biāo)志位
- sbit led=P5^4;
- uint count; //計數(shù)變量1
- uint count2; //計數(shù)變量2
- uint count3; //計數(shù)變量3
- /*****************定時器0函數(shù)*******************/
- void Timer0_Init(void) //50毫秒@12.000MHz
- {
- AUXR &= 0x7F; //定時器時鐘12T模式
- TMOD &= 0xF0; //設(shè)置定時器模式
- TL0 = 0xB0; //設(shè)置定時初始值
- TH0 = 0x3C; //設(shè)置定時初始值
- TF0 = 0; //清除TF0標(biāo)志
- ET0 = 1;
- TR0 = 1; //定時器0開始計時
-
- }
- void led0()
- {
- led=0; //燈亮
- count = 0;
- count2 = 1;
- count3 = 11; //定時1分鐘
- TR0 = 1; //啟動定時器0
-
- }
- void led1()
- {
- led=0;//燈亮
- count = 0;
- count2 = 30; //
- count3 = 11; //定時0.5小時
- TR0 = 1; //啟動定時器0
-
- }
- void led2()
- {
- led=0;//燈亮
- count = 0;
- count2 = 0; //
- count3 = 11; //定時1小時
- TR0 = 1; //啟動定時器0
-
-
- }
- void led3()
- {
- led=0;//燈亮
- EA=0;//關(guān)閉外部中斷,
- count = 0;
- count2 = 0; //
- count3 = 8; //定時4小時
- TR0 = 1; //啟動定時器
-
- }
- /********************** Timer0中斷函數(shù)************************/
- void Timer0_Isr()interrupt 1 using 1
- {
- TL0 = 0xB0;
- TH0 = 0x3C; //50MS
- count++;
- if(count==1200) //60S 1200
- {
- count=0;
- count2++;
- if(count2==60) //60分鐘 60
- {
- count2=0;
- count3++;
- if(count3==12)// 12小時
- {
- count3=0;
- led=1;
- EA=1;
- FLAG = 1; //計數(shù)時間到標(biāo)志 可重新檢測外圍的是否有中斷
- }
- }
- }
- }
復(fù)制代碼
|
|