欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 程序這樣寫是單片機(jī)定時(shí)器不工作還是寫得有問題? [打印本頁]

作者: 木示    時(shí)間: 2024-4-24 22:02
標(biāo)題: 程序這樣寫是單片機(jī)定時(shí)器不工作還是寫得有問題?
用STC8G1K08A單片機(jī)的定時(shí)器0 寫了定時(shí)亮燈的程序,但發(fā)覺不產(chǎn)生定時(shí)作用。以下是定時(shí)器0的程序。請各位大佬指導(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;  //啟動定時(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;  //啟動定時(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;  //啟動定時(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;  //啟動定時(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)志  可重新檢測外圍的是否有中斷
  76.                         }
  77.                 }
  78.         }               
  79. }
復(fù)制代碼




作者: cy009    時(shí)間: 2024-4-25 00:25
"EA=1"放進(jìn)中斷函數(shù)里不對呵
作者: xiaobendan001    時(shí)間: 2024-4-25 07:23
EA要先打開,否則任何中斷都進(jìn)不去吧
作者: heyanrog    時(shí)間: 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){};
}

作者: lkc8210    時(shí)間: 2024-4-25 10:21
main()函數(shù)呢?被吞了?
作者: 十夢九你    時(shí)間: 2024-7-2 14:17
EA ET0沒開怎么進(jìn)中斷

作者: xiaobendan001    時(shí)間: 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){};
}
這樣也行?
作者: zh_junwei    時(shí)間: 2024-7-2 15:16
在主程序里面打開中斷總開關(guān),不然是不會產(chǎn)生中斷的
作者: xiangran    時(shí)間: 2024-7-2 15:36
EA要先打開,否則任何中斷都進(jìn)不去吧
作者: yaosongjin    時(shí)間: 2024-7-2 16:07
主函數(shù)都不寫?編譯能通過嗎?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1