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

標題: 單片機定時中斷,不能正常運行,請大師幫助看看,問題出在哪兒? [打印本頁]

作者: jmkl128    時間: 2018-6-3 10:11
標題: 單片機定時中斷,不能正常運行,請大師幫助看看,問題出在哪兒?
做了一個定時中斷,不能正常運行,請高人幫助指點!
  1. #include <STC15F104E.H>                                        //12MHz
  2. #define uchar unsigned char //宏定義字符型變量
  3. #define uint  unsigned int        //宏定義整型變量
  4. #define  MAIN_Fosc 12000000L
  5. sbit jiance=P3^0;  
  6. sbit in=P3^1;
  7. sbit out=P3^3;
  8. uchar oldjiance=0;
  9. uchar flag=0;
  10. long        jishu=0;
  11. /************************************/
  12. /**********延時函數******************/
  13. /************************************/
  14. void  delay(unsigned char ms)
  15. {
  16.      unsigned int i;
  17.          do{
  18.               i = MAIN_Fosc/13000;
  19.                   while(--i)        ;   //14T per loop
  20.      }while(--ms);
  21. }
  22. /************************************/
  23. /**********定時器初始化******************/
  24. /************************************/
  25. void InitTimer(void)
  26. {   EA = 1;
  27.            AUXR |= 0x40;                //定時器1時鐘1T模式,30us進行一次休眠檢測
  28.         TMOD &= 0x0F;                //設置定時器模式
  29.         TL1 = 0x98;                //設置定時初值
  30.         TH1 = 0xFE;                //設置定時初值
  31.         TF1 = 0;                //清除TF1標志
  32.         TR1 = 1;                //定時器1開始計時

  33. }
  34. /************************************/
  35. /**********定時器1,休眠檢測*********/
  36. /************************************/
  37. void tm1_isr() interrupt 3 using 1
  38. {
  39.     TR1=0;                 //關閉定時器T1
  40.          jishu++;
  41.    if(jiance==~oldjiance)         {jishu=0;}
  42.          
  43.    if(jishu>=5000000){flag=1;}        //2.5分鐘,降溫
  44.    if(jishu>=10000000){flag=2;} //5分鐘,更低降溫
  45.    if(jishu>=20000000){flag=3;jishu=20000000;}        //10分鐘,停止加熱         
  46.          oldjiance=jiance;
  47.     TR1=1;                  //啟動定時器T1
  48. }
  49. /************************************/
  50. /************主函數******************/
  51. /************************************/
  52. main()
  53. {
  54. InitTimer();
  55. while(1)
  56. {
  57. switch (flag)
  58.             {
  59.                 case 0:  out=in;break;
  60.                 case 1: out=0;delay(100);out=in; break;
  61.                 case 2: out=0;delay(500);out=in; break;
  62.                 case 3: out=0; break;
  63.                 default: break;
  64.             }

  65.         
  66. }
  67. }
復制代碼


作者: jmkl128    時間: 2018-6-3 11:06
找到了原因了,還是基礎不牢,低級錯誤
作者: wulin    時間: 2018-6-3 11:21
貌似定時器1中斷ET1沒有開.
作者: angmall    時間: 2018-6-3 22:06
STC15F100系列單片機只有定時器0和定時器2,無定時器1
作者: wulin    時間: 2018-6-4 08:11
angmall 發表于 2018-6-3 22:06
STC15F100系列單片機只有定時器0和定時器2,無定時器1



作者: jmkl128    時間: 2018-6-4 21:42
謝謝各位!是的,同時錯了兩個地方。沒有定時器1和缺少ET1=1;




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