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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > MCS-51系統(tǒng)中斷優(yōu)先級的軟擴(kuò)展

          MCS-51系統(tǒng)中斷優(yōu)先級的軟擴(kuò)展

          ——
          作者:大慶石油學(xué)院 鐘建坡 司光宇 時(shí)間:2007-09-14 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

            摘要:鑒于MCS-51系統(tǒng)只提供“二級中斷嵌套”,提出擴(kuò)展51系統(tǒng)的純軟件方法。其利用51系統(tǒng)內(nèi)建的中斷允許寄存器IE和寄存器IP,通過屏蔽字機(jī)制來實(shí)現(xiàn);以的形式,給出這種擴(kuò)展方法的函數(shù)庫實(shí)現(xiàn),為該方法的使用賦予友好、簡潔的用戶接口。

              關(guān)鍵詞:

          引言

            眾所周知,MCS-51系統(tǒng)只提供“二級中斷嵌套”,而大多數(shù)嵌入式系統(tǒng)希望有多于兩級的優(yōu)先級別。因?yàn)橐话銇碚f,系統(tǒng)都有掉電中斷,且應(yīng)置為最高優(yōu)先級,這樣所有其它中斷只能共用一個(gè)最低優(yōu)先級,如此,往往不能滿足實(shí)際的邏輯需求。為了使系統(tǒng)具有多于兩級的中斷優(yōu)先級別,可以利用8259A之類的中斷控制芯片實(shí)現(xiàn)中斷優(yōu)先級的硬擴(kuò)展,但卻增加了系統(tǒng)的造價(jià)和復(fù)雜性。因復(fù)雜性的提高,系統(tǒng)的可靠性將受到影響。本文提出一種擴(kuò)展MCS-51系統(tǒng)中斷優(yōu)先級的純軟件方法,不需增加任何硬件,且所需的額外資源消耗也很小。實(shí)際應(yīng)用表明這種方法是可行的和有效的。

          1 MCS-51的中斷系統(tǒng)簡介

            MCS-51系列單片機(jī)允許有五個(gè)中斷源,提供兩個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)二級中斷嵌套。這兩級優(yōu)先級遵循下述規(guī)則:僅高優(yōu)先級中斷源可中斷嵌套低優(yōu)先級中斷源。為實(shí)現(xiàn)這一規(guī)則,中斷系統(tǒng)內(nèi)部包含兩個(gè)不可尋址的優(yōu)先級狀態(tài)觸發(fā)器。當(dāng)特定優(yōu)先級的某中斷源被響應(yīng)時(shí),相應(yīng)的觸發(fā)器即被置位,直到執(zhí)行了RETI指令后,這個(gè)觸發(fā)器才復(fù)位。在此期間,同級和低級中斷將被防止。中斷源的中斷請求能否得到響應(yīng),受中斷允許寄存器IE的控制。每個(gè)中斷源的優(yōu)先級可通過對中斷優(yōu)先級寄存器IP編程來設(shè)定:或最低,或最高。同一優(yōu)先級中的各中斷源同時(shí)請求中斷時(shí),由內(nèi)部查詢邏輯確定響應(yīng)次序。查詢次序依次為:外部中斷0(X0)、定時(shí)器中斷0(T0)、外部中斷1(X1)、定時(shí)器中斷1(T1)、串口中斷(S)。如果當(dāng)前指令是RETI或是對IE、IP操作的指令,將封裝CPU對中斷的響應(yīng),且必須再執(zhí)行完一條指令之后才會響應(yīng)中斷。

          2 中斷優(yōu)先級的方法

            首先,給出的第一種方法,并分析其特點(diǎn),指出其存在的缺陷。然后,基于對方法一的不足之處,給出不斷完善的方法二、方法三。其中方法二是對方法一的完善,方法三是對方法二的完善,并最終解決了方法一、二中的缺陷,實(shí)現(xiàn)了真正的中斷優(yōu)先級的軟擴(kuò)展。

          2.1 方法一

            此法僅使用和系統(tǒng)的中斷允許寄存器IE,通過中斷屏蔽字機(jī)制,以使不同的中斷源具有不同的邏輯中斷優(yōu)先級(下文中的“優(yōu)先級”如不加說明即指“邏輯中斷優(yōu)先級”)。

            不失一般性,不妨令8051系統(tǒng)的五個(gè)中斷源——外中斷0(X0)、定時(shí)器中斷0(T0)、外中斷1(X1)、定時(shí)器中斷1(T1)及串口中斷(S),有如表1所列的優(yōu)先級。(實(shí)際應(yīng)用中,視具體情況,賦予不同中斷源以適當(dāng)?shù)膬?yōu)先級。)

            其中,“0”代表最高優(yōu)先級,“4”代表最低優(yōu)先級。

            首先,給設(shè)定了優(yōu)先級的諸中斷源賦以二級“物理中斷優(yōu)先級”:將優(yōu)先級最高的中斷源(X1)在中斷優(yōu)先級寄存器IP中的相應(yīng)位(PX1)置1,而令I(lǐng)P中的其它相關(guān)位(PT1、PT0、PS、PX0)為0。

            其次,給設(shè)定了優(yōu)先級的各中斷源分配適當(dāng)?shù)摹爸袛嗥帘巫帧薄F浠舅枷胧瞧帘瓮壓偷图壷袛?。具體分配過程如下:優(yōu)先級為k(0≤k≤N-1,N為中斷源數(shù)量)的中斷源的“中斷屏蔽字”為:優(yōu)先級為x(x∈[k,N-1],即同級和低級)的中斷源在IE中的對應(yīng)位置0,優(yōu)先級為y(y∈[0,k-1],即高級)的中斷源在IE中的相應(yīng)位置1而得的位組字節(jié)。當(dāng)然,IE的EA位(CPU中斷允許標(biāo)志位)始終為1.

            對于表1所列的中斷優(yōu)先級分配情況,各中斷源的“中斷屏蔽字”配置如表2所列。

            表1 中斷源的優(yōu)先級分配表

          中斷源 X1 T1 T0 S X0
          優(yōu)先級 0 1 2 3 4

            最后,給各中斷源的ISR(Interrupt Routine,中斷服務(wù)例程)加以如下所示的外殼(Assembly形式的)。不妨以定時(shí)器0(T0)為例:

            CSEG AT 8



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();