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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于單片機中斷多優(yōu)先級的軟件擴展方法

          關于單片機中斷多優(yōu)先級的軟件擴展方法

          作者: 時間:2013-03-14 來源:網(wǎng)絡 收藏
            1 引言

            所謂中斷是指當CPU正在處理某件事情的時候,外部發(fā)生的某一事件(如一個電平的變化,一個脈沖沿的發(fā)生或定時器計數(shù)溢出等)請求CPU迅速去處理,于是CPU暫時中止當前的工作,轉去處理所發(fā)生的事件。中斷服務處理完該事件以后,再回到原來被中止的地方繼續(xù)原來的工作,這樣的一個過程稱之為中斷。以8051為例,中斷系統(tǒng)含有5個中斷源,分別是外部中斷0請求(INT0),外部中斷1請求(INT1),定時/計數(shù)器0溢出中斷請求(T0),定時/計數(shù)器1溢出中斷請求(T1)以及串行口中斷請求(Tx/Rx)。既然系統(tǒng)含有5個中斷源,就有可能出現(xiàn)數(shù)個中斷源同時提出中斷請求的情況,這樣,設計人員必須事先根據(jù)它們的輕重緩急來為每個中斷源確定CPU對其的響應順序。然而,對于中斷優(yōu)先級寄存器IP來說,只可能設定兩級優(yōu)先,即控制位為1時對應的中斷源為高級中斷,反之,控制位為0時對應的為低級中斷。這樣就出現(xiàn)一個問題:如果一個中斷正在執(zhí)行,如何才能讓它響應同級甚至是低級中斷請求呢?

            2 的擴展

            根據(jù)8051的結構特點,其中斷系統(tǒng)中含有兩個不可尋址的“優(yōu)先級生效”觸發(fā)器。一個用于指出CPU是否正在執(zhí)行高優(yōu)先級的中斷服務程序,這個觸發(fā)器為1時,系統(tǒng)將屏蔽所有的中斷請求;另一個則指出CPU是否正在執(zhí)行低優(yōu)先級中斷服務程序,該觸發(fā)器為1時,將阻止除高優(yōu)先級以外的一切中斷請求。由此可見,若要響應同級甚至是低級中斷請求,必須使得該“優(yōu)先級生效”觸發(fā)器清零。但該觸發(fā)器又是不可尋址的,所以無法用軟件直接清零。遍歷系統(tǒng)所提供的111條指令,只有RETI可以達到此目的。該指令可在CPU執(zhí)行該指令時,一方面清除中斷響應時所置位的“優(yōu)先級生效”觸發(fā)器,另一方面可從當前棧頂彈出斷點地址送入程序計數(shù)PC,從而返回主程序。

           ?。场?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/軟件擴展">軟件擴展方法

            3.1 高級中斷源響應低級中斷源的軟件設計

            現(xiàn)以當前IE=84H(開放外部中斷1及總控制位),IP=04H設定INT1為高優(yōu)先級 正在執(zhí)行外部中斷1服務子程序為例來進行說明。如欲響應串行口中斷,也就是要實現(xiàn)高級中斷源響應低級中斷源,設計時可加入如下代碼而無須改變IP寄存器的內(nèi)容:

           ?。校眨樱?IE ;IE內(nèi)容入棧保護

           ?。停希?IE , #10010000B ;開放串行口中斷

           ?。茫粒蹋?PP ;繼續(xù)執(zhí)行原中斷子程序,但可

            隨時響應串行口中斷請求

           ?。?/P>

           ?。校希?IE ;恢復原IE內(nèi)容

           ?。遥牛裕?/P>

           ?。校校?RETI

            3.2 同級中斷源之間的響應

            上述代碼體現(xiàn)了高級中斷源(INT1)響應低級中斷源(串行口)的軟件實現(xiàn)方法。但是, 8051系統(tǒng)共含有5個中斷源,因此必須解決同優(yōu)先級中斷之間的嵌套問題,具體源程序如下:

            ORG 0000H

           ?。蹋剩停?MAIN

           ?。希遥?0003H

            LJMP X0 ;INT0入口地址

           ?。希遥?000BH

           ?。蹋剩停?T0 ;T0入口地址

           ?。希遥?0013H

           ?。蹋剩停?X1 ;INT1入口地址

           ?。希遥?001BH

           ?。蹋剩停?T1 ;T1入口地址

           ?。希遥?0023H


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();