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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)外中斷軟件編程

          MCS-51單片機(jī)外中斷軟件編程

          作者: 時(shí)間:2010-03-11 來源:網(wǎng)絡(luò) 收藏

          有多個(gè)源,以8051為例,有5個(gè)源,兩個(gè)外、兩個(gè)定時(shí)中斷和一個(gè)串行中斷,這一節(jié)我們討論外中斷。
          外中斷是由外部原因引起的中斷,有兩個(gè)中斷源。即外中斷0(INT0)和外中斷1(INT1),中斷請求信號由引腳P3.2(INT0)和P3.3(INT1)輸入。

          外中斷請求信號有兩種方式,一是電平方式,二是脈沖方式??赏ㄟ^有關(guān)控制位的定義進(jìn)行規(guī)定。

          電平方式為低電平有效,只需在的(INT0)和(INT1)中斷請求輸入端采樣到有效的低電平時(shí),就會激活外部中斷。

          脈沖方式則在脈沖的后負(fù)跳沿有效,即在相鄰兩個(gè)機(jī)器周期對中斷請求引入端進(jìn)行采樣中,如前一次為高,后一次為低即為有效中斷請求。這就要求在這種中斷方式,中斷請求信號的脈沖寬度必須大于一個(gè)機(jī)器周期,以保證電平變化能被采樣到。

          定時(shí)器控制寄存器 (TCON)

          外中斷請求方式的控制位在定時(shí)控制寄存器TCON(地址為88H)中的位88(IT0)和位8A(IT1)兩個(gè)位,當(dāng)IT0(IT1)=0為電平方式,IT0(IT1)=1為脈沖方式。同時(shí)在此寄存器中的位89(IE0)和位8B(IE1)為外中斷請求標(biāo)志位,當(dāng)CPU采樣到INT0(INT1)端出現(xiàn)有效中斷請求時(shí),此位由硬件置1。在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動清0。

          定時(shí)器控制寄存器 (TCON)
          位地址8F8E8D8C8B8A8988
          位符號TF1TR1TF0TR0IE1IT1IE0IT0
          <>
          中斷允許控制寄存器 (IE)

          中斷允許控制寄存器 (IE)
          位地址AFAEADACABAAA9A8
          位符號EA//ESET1EX1ET0EX0

          下面我們對有關(guān)控制位作說明:

          ?EA――中斷允許總控制位,EA=0,中斷總禁止,禁止所有中斷。EA=1,中斷總允許,總允許位打開后,各中斷的允許或禁止由各中斷允許控制位設(shè)置決定。

          ?EX0(EX1)――外部中斷允許控制位,EX0(EX1)=0,禁止外部中斷。EX0(EX1)=1,允許外部中斷。

          ?ET0(ET1)――定時(shí)/計(jì)數(shù)中斷允許控制位,ET0(ET1)=0,禁止定時(shí)/計(jì)數(shù)中斷。ET0(ET1)=1,允許定時(shí)/計(jì)數(shù)中斷。

          ?ES――串行中斷允許控制位,ES=0,禁止串行中斷。ES=1,允許串行中斷。

          中斷的允許和禁止就是中斷的開放和關(guān)閉,中斷允許就是開放中斷,中斷的禁止就是關(guān)閉中斷。從以上說明我們可看出,的中斷允許是通過兩級控制的,以EA位作為總中斷控制位,以各中斷控制位為分控制位。當(dāng)總中斷位為禁止?fàn)顟B(tài)時(shí),不管分控制位是允許或禁止整個(gè)中斷都是禁止的。只有當(dāng)EA=1(允許)時(shí),才能由各分控制位設(shè)置各自的中斷允許與禁止。單片機(jī)復(fù)位后,IE=00H,因此中斷處于禁止?fàn)顟B(tài)。

          值得一提的是:單片機(jī)中斷響應(yīng)后不會自動關(guān)閉中斷,因此在轉(zhuǎn)入中斷服務(wù)程序后,應(yīng)由軟件指令禁止中斷。

          中斷優(yōu)先級控制寄存器 (IP)

          MCS-51的中斷優(yōu)先級控制比較簡單,只設(shè)置了高、低兩個(gè)級別的有限級,各中斷源的優(yōu)先級別由優(yōu)先寄存器(IP)進(jìn)行控制。

          中斷優(yōu)先級控制寄存器 (IP)
          位地址BFBEBDBCBBBAB9B8
          位符號///PSPT1PX1PT0PX0

          ?PX0――外中斷0(INT0)優(yōu)先級控制位。
          ?PT0――定時(shí)中斷0(T0)優(yōu)先級控制位。
          ?PX1――外中斷1(INT1)優(yōu)先級控制位。
          ?PT1――定時(shí)中斷1(T1)優(yōu)先級控制位。
          ?PS ――串行中斷(ES)優(yōu)先級控制位。

          控制位=0,優(yōu)先級為低??刂莆?1,優(yōu)先級為高。

          中斷優(yōu)先級是為了中斷嵌套服務(wù)的,控制原則為:
          (1)低優(yōu)先級中斷不能打斷高優(yōu)先級的中斷服務(wù),而高優(yōu)先級的中斷服務(wù)可以打斷低優(yōu)先級的中斷服務(wù)。
          (2)同級的中斷已經(jīng)響應(yīng),其他中斷將被禁止。
          (3)如果同級的多個(gè)中斷源同時(shí)出現(xiàn),CPU將按查詢次序確定哪個(gè)中斷被響應(yīng),次序?yàn)椋和庵袛?→定時(shí)中斷0→外中斷1→定時(shí)中斷1→串行中斷。

          中斷控制寄存器的狀態(tài)設(shè)置

          在應(yīng)用中,我們可以通過相應(yīng)的控制寄存器來使用中斷系統(tǒng),因此從使用的角度上看,這些控制寄存器是面向用戶的。這些控制寄存器既可以進(jìn)行字節(jié)尋址,也可以進(jìn)行位尋址,也就是對位狀態(tài)的尋址既可以使用字節(jié)操作指令也可以使用位操作指令,例如:

          MOVIE,#81H

          如使用位操作指令,也可寫為:
          SETBEA
          SETBEX0

          對于一般的外中斷程序,我們可以這樣安排:

          ORG0000H;主程序入口
          START:AJMPMAIN

          ORG0003H;外中斷程序入口
          AJMPINT00

          MAIN:MOVIE,#81H;允許總中斷和外中斷
          ……;主程序
          ……
          ……

          INT00:……;外中斷服務(wù)程序
          ……
          RETI;中斷返回

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


          評論


          相關(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); })();