找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2691|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)定時(shí)中斷,不能正常運(yùn)行,請(qǐng)大師幫助看看,問題出在哪兒?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
做了一個(gè)定時(shí)中斷,不能正常運(yùn)行,請(qǐng)高人幫助指點(diǎn)!
  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. /**********延時(shí)函數(shù)******************/
  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. /**********定時(shí)器初始化******************/
  24. /************************************/
  25. void InitTimer(void)
  26. {   EA = 1;
  27.            AUXR |= 0x40;                //定時(shí)器1時(shí)鐘1T模式,30us進(jìn)行一次休眠檢測
  28.         TMOD &= 0x0F;                //設(shè)置定時(shí)器模式
  29.         TL1 = 0x98;                //設(shè)置定時(shí)初值
  30.         TH1 = 0xFE;                //設(shè)置定時(shí)初值
  31.         TF1 = 0;                //清除TF1標(biāo)志
  32.         TR1 = 1;                //定時(shí)器1開始計(jì)時(shí)

  33. }
  34. /************************************/
  35. /**********定時(shí)器1,休眠檢測*********/
  36. /************************************/
  37. void tm1_isr() interrupt 3 using 1
  38. {
  39.     TR1=0;                 //關(guān)閉定時(shí)器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;                  //啟動(dòng)定時(shí)器T1
  48. }
  49. /************************************/
  50. /************主函數(shù)******************/
  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. }
復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:67356 發(fā)表于 2018-6-3 11:06 | 只看該作者
找到了原因了,還是基礎(chǔ)不牢,低級(jí)錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2018-6-3 11:21 | 只看該作者
貌似定時(shí)器1中斷ET1沒有開.

評(píng)分

參與人數(shù) 3黑幣 +41 收起 理由
angmall + 11 回帖助人的獎(jiǎng)勵(lì)!
jmkl128 + 10 是的。找了一天,沒找到。發(fā)完求助帖,靈光.
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:155507 發(fā)表于 2018-6-3 22:06 | 只看該作者
STC15F100系列單片機(jī)只有定時(shí)器0和定時(shí)器2,無定時(shí)器1
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2018-6-4 08:11 | 只看該作者
angmall 發(fā)表于 2018-6-3 22:06
STC15F100系列單片機(jī)只有定時(shí)器0和定時(shí)器2,無定時(shí)器1


回復(fù)

使用道具 舉報(bào)

6#
ID:67356 發(fā)表于 2018-6-4 21:42 | 只看該作者
謝謝各位!是的,同時(shí)錯(cuò)了兩個(gè)地方。沒有定時(shí)器1和缺少ET1=1;
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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