找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1835|回復(fù): 9
收起左側(cè)

程序這樣寫是單片機(jī)定時(shí)器不工作還是寫得有問題?

[復(fù)制鏈接]
ID:706724 發(fā)表于 2024-4-24 22:02 | 顯示全部樓層 |閱讀模式
用STC8G1K08A單片機(jī)的定時(shí)器0 寫了定時(shí)亮燈的程序,但發(fā)覺不產(chǎn)生定時(shí)作用。以下是定時(shí)器0的程序。請(qǐng)各位大佬指導(dǎo)一下。
  1. bit FLAG = 0;       //計(jì)數(shù)完成標(biāo)志位
  2. sbit led=P5^4;
  3. uint count;     //計(jì)數(shù)變量1
  4. uint count2;    //計(jì)數(shù)變量2
  5. uint count3;    //計(jì)數(shù)變量3


  6. /*****************定時(shí)器0函數(shù)*******************/
  7. void Timer0_Init(void)                //50毫秒@12.000MHz
  8. {
  9.         AUXR &= 0x7F;                        //定時(shí)器時(shí)鐘12T模式
  10.         TMOD &= 0xF0;                        //設(shè)置定時(shí)器模式
  11.         TL0 = 0xB0;                                //設(shè)置定時(shí)初始值  
  12.         TH0 = 0x3C;                                //設(shè)置定時(shí)初始值
  13.         TF0 = 0;                                //清除TF0標(biāo)志
  14.         ET0 = 1;
  15.         TR0 = 1;                                //定時(shí)器0開始計(jì)時(shí)
  16.         
  17. }


  18. void led0()
  19. {
  20.         led=0;        //燈亮
  21.          count  = 0;
  22.    count2 = 1;
  23.    count3 = 11;      //定時(shí)1分鐘
  24.    TR0 = 1;  //啟動(dòng)定時(shí)器0
  25.         
  26. }


  27. void led1()
  28. {
  29.         led=0;//燈亮
  30.          count  = 0;
  31.    count2 = 30;        //
  32.    count3 = 11;      //定時(shí)0.5小時(shí)
  33.     TR0 = 1;  //啟動(dòng)定時(shí)器0
  34.         
  35. }


  36. void led2()
  37. {
  38.         led=0;//燈亮
  39.          count  = 0;
  40.    count2 = 0;        //
  41.    count3 = 11;      //定時(shí)1小時(shí)
  42.     TR0 = 1;  //啟動(dòng)定時(shí)器0
  43.         
  44.                
  45. }


  46. void led3()
  47. {
  48.           led=0;//燈亮
  49.                 EA=0;//關(guān)閉外部中斷,
  50.          count  = 0;
  51.    count2 = 0;        //
  52.    count3 = 8;      //定時(shí)4小時(shí)
  53.     TR0 = 1;  //啟動(dòng)定時(shí)器
  54.         
  55. }




  56. /********************** Timer0中斷函數(shù)************************/
  57. void Timer0_Isr()interrupt 1 using 1
  58. {
  59.         TL0   =        0xB0;
  60.         TH0  =        0x3C;            //50MS
  61.         count++;
  62.         if(count==1200)            //60S 1200
  63.         {
  64.                 count=0;
  65.                 count2++;
  66.                 if(count2==60)        //60分鐘  60
  67.                 {
  68.                         count2=0;
  69.                         count3++;
  70.                         if(count3==12)// 12小時(shí)
  71.                         {
  72.                             count3=0;
  73.                                                                                                           led=1;
  74.                                                                                                            EA=1;
  75.                              FLAG = 1;          //計(jì)數(shù)時(shí)間到標(biāo)志  可重新檢測(cè)外圍的是否有中斷
  76.                         }
  77.                 }
  78.         }               
  79. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:619259 發(fā)表于 2024-4-25 00:25 | 顯示全部樓層
"EA=1"放進(jìn)中斷函數(shù)里不對(duì)呵
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-4-25 07:23 | 顯示全部樓層
EA要先打開,否則任何中斷都進(jìn)不去吧
回復(fù)

使用道具 舉報(bào)

ID:11804 發(fā)表于 2024-4-25 09:20 | 顯示全部樓層
單片機(jī)一開機(jī)上電要打開中斷,后面的中斷才能響應(yīng),
void Timer0_Isr()interrupt 1 using 1
{EA=0;
.....
.....
EA=1;

}
.....
EA=1;
void main()
{
while(1){};
}
或者
void main()
{EA=1;
while(1){};
}
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-4-25 10:21 | 顯示全部樓層
main()函數(shù)呢?被吞了?
回復(fù)

使用道具 舉報(bào)

ID:624075 發(fā)表于 2024-7-2 14:17 | 顯示全部樓層
EA ET0沒開怎么進(jìn)中斷
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-7-2 14:37 | 顯示全部樓層
heyanrog 發(fā)表于 2024-4-25 09:20
單片機(jī)一開機(jī)上電要打開中斷,后面的中斷才能響應(yīng),
void Timer0_Isr()interrupt 1 using 1
{EA=0;

EA=1;
void main()
{
while(1){};
}
這樣也行?
回復(fù)

使用道具 舉報(bào)

ID:675287 發(fā)表于 2024-7-2 15:16 | 顯示全部樓層
在主程序里面打開中斷總開關(guān),不然是不會(huì)產(chǎn)生中斷的
回復(fù)

使用道具 舉報(bào)

ID:1127908 發(fā)表于 2024-7-2 15:36 | 顯示全部樓層
EA要先打開,否則任何中斷都進(jìn)不去吧
回復(fù)

使用道具 舉報(bào)

ID:23640 發(fā)表于 2024-7-2 16:07 | 顯示全部樓層
主函數(shù)都不寫?編譯能通過嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表