<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 個人對單片機中斷程序的理解

          個人對單片機中斷程序的理解

          作者: 時間:2016-12-01 來源:網絡 收藏
          開題首先貼上一段練習中遇到的代碼:

          /*1:利用定時/計數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設晶振頻率為12MHz。*/
          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit P1_1=P1^0;
          uchar time;
          void main()
          {
          time=0;
          TMOD=0x01;////設置定時器0為工作方式1
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%256;
          EA=1;//開總中斷
          ET0=1;//開定時器0中斷
          TR0=1;//啟動定時器0
          while(1);//等待中斷產生
          }
          void T1_time() interrupt 1
          {
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%256;
          time++;
          if(time==20)
          {
          time=0;
          P1_1=~P1_1;
          }
          }

          本文引用地址:http://www.ex-cimer.com/article/201612/324158.htm

          hit:
          在學習單片機的時候很容易按照C語言編程的格式來理解,程序在打開中斷之后會一直停留在while(1);當中,但在實際上,程序的確會停留在while(1);里,由于開啟了中斷開關而并未關閉,所以T0繼續(xù)計數(shù),所以后面一直會有中斷。

          過程可以理解為這樣,程序一直在while(1);當中,直到定時器計滿產生中斷;
          產生中斷后,執(zhí)行中斷程序,定時器重新賦值,time自加1;
          回到while(1)中,等待下一次中斷,定時器繼續(xù)計數(shù)。

          單片機怎么從主函數(shù)跳到中斷函數(shù)中:
          對于單片機的硬件,你熟悉嗎?時鐘和CPU是獨立的,時鐘中斷程序時這樣的:在CPU執(zhí)行指令時,計數(shù)器(計時器)同時在計時,當計時器溢出時,就向CPU申請中斷,如果允許響應中斷,CPU就轉到中斷服務程序執(zhí)行相關的程序。
          單片機的時鐘中斷相應要滿足兩個條件:第一,允許中斷源申請中斷。第二,允許cpu響應中斷。二者缺一不可。 EA=1;//開總中斷
          ET0=1;//開定時器0中斷
          ET1=1;
          TR0=1;//啟動定時器0
          TR1=1;
          你這些語句,就允許了中斷響應,所以,當你的程序跑起來時,時鐘時間到了,CPU就轉入中斷服務程序了,執(zhí)行完了再返回主程序。你可以在編譯器中用DEBUG查看執(zhí)行過程的。如果你用匯編語言寫,就更清楚了,可以看清每一步的操作的。
          硬件部分是這樣:在每個機器周期的S5P2,單片機會來采樣,判斷是否有中斷申請。所以一旦時鐘計數(shù)溢出,就會轉入中斷服務程序。


          這個打個比方吧,你在上課,相當于主程序,這時時間到了,打鈴下課了,你就不讀書了,跑出去玩了。這其實是一樣的道理。你在上課,這和打鈴不相關,并不是你讓打鈴的,學校的時鐘在不停地走,到了時間自動打鈴,這不受你上課的影響的。但是如果你把耳朵堵上了(不允許響應中斷),就是把鈴打碎了你也不知道下課了,所以你就一直讀書。



          關鍵詞: 單片機中斷程

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();