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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2479|回復: 0
打印 上一主題 下一主題
收起左側

請問這個單片機程序定時器中斷為什么沒有被執行?

[復制鏈接]
跳轉到指定樓層
樓主
ID:728079 發表于 2020-4-13 11:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是一個溫度報警的程序,想實現一個5s的計時器中斷,在中斷的時候將當前溫度temp的值賦給變量T。
T用作溫度報警的判斷。
在中斷里加了一個LED,仿真的時候LED沒有亮,LCD輸出的T值也一直是0,好像是因為沒有進入中斷。
請問大佬
單片機源程序如下:
  1. /*********************************************************/
  2. // 報警判斷
  3. /*********************************************************/
  4. void AlarmJudge(int dat2)
  5. {

  6.         if((dat2-T)>5)
  7.         {        
  8.                 Led2_P=0;

  9.         }
  10.         else
  11.         {
  12.         Led2_P=1;
  13.         }

  14.         /*蜂鳴器報警判斷*/
  15.         if(Led2_P==0)
  16.                 Buzzer_P=0;
  17.         else
  18.                 Buzzer_P=1;
  19. }


  20. void Timer0Init()                                                        //定時器0初始化
  21. {
  22.         TMOD=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
  23.         TH0=0X3C;        //給定時器賦初值,定時1ms
  24.         TL0=0XB0;        
  25.         ET0=1;//打開定時器0中斷允許
  26.         EA=1;//打開總中斷
  27.         TR0=1;//打開定時器
  28.                         
  29. }


  30. void main(void)
  31. {
  32.         
  33.         uchar i;                                                                // 循環變量
  34.         
  35.         Timer0Init() ;                                                        //定時器0初始化
  36.         LcdInit();                                                            // 液晶功能初始化
  37.         LcdShowInit();                                                        // 液晶顯示內容初始化               

  38.                                                                
  39.         

  40.         while(DS18B20_ReadTemp()==85)                                                // 等待傳感器初始化完成
  41.         {
  42.                 DelayMs(10);
  43.         }
  44.         
  45.         while(1)
  46.         {

  47.                 temp=DS18B20_ReadTemp();        // 讀取溫度值
  48.                 LcdGotoXY(1,5);                                                // 液晶光標定位到第1行第5列
  49.             LcdPrintNum2(temp);                                // 顯示溫度值
  50.                         LcdGotoXY(1,11);                                                // 光標定位
  51.                         LcdPrintNum2(T);                   //顯示中間變量T
  52.                 AlarmJudge(temp);                        // 報警判斷

  53.                                 for(i=0;i<15;i++)                                        // 執行15次循環(延時0.15秒,并在這個時間段進行按鍵掃描)
  54.                 {
  55.                         DelayMs(10);                                                // 延時
  56.                 }



  57.         }
  58. }

  59. void Timer0() interrupt 1
  60. {
  61.         static u16 j;
  62.         TH0=0X3C;        //給定時器賦初值,定時50ms
  63.         TL0=0XB0;
  64.         
  65.         j++;
  66.         
  67.         if(j>=500)
  68.         {
  69.                 j=0;
  70.                 T=temp;
  71.                 Led3_P=0;
  72.         }

  73. }
復制代碼

問題出在哪兒了?


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

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表