《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)終端介紹及外中斷軟件編程
MCS-51單片機(jī)終端介紹及外中斷軟件編程
摘要: MCS-51單片機(jī)有多個(gè)中斷源,以8051為例,有5個(gè)中斷源,兩個(gè)外中斷、兩個(gè)定時(shí)中斷和一個(gè)串行中斷,這一節(jié)我們討論外中斷軟件編程。外中斷是由外部原因引起的中斷,有兩個(gè)中斷源。即外中斷0(INT0)和外中斷1(I
Abstract:
Key words :

MCS-51單片機(jī)有多個(gè)中斷源,以8051為例,有5個(gè)中斷源,兩個(gè)外中斷、兩個(gè)定時(shí)中斷和一個(gè)串行中斷,這一節(jié)我們討論外中斷軟件編程。
    外中斷是由外部原因引起的中斷,有兩個(gè)中斷源。即外中斷0(INT0)和外中斷1(INT1),中斷請(qǐng)求信號(hào)由引腳P3.2(INT0)和P3.3(INT1)輸入。

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

    電平方式為低電平有效,只需在單片機(jī)的(INT0)和(INT1)中斷請(qǐng)求輸入端采樣到有效的低電平時(shí),就會(huì)激活外部中斷。

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

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

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

定時(shí)器控制寄存器 (TCON)
位地址 8F 8E 8D 8C 8B 8A 89 88
位符號(hào) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
      中斷允許控制寄存器 (IE)

 
中斷允許控制寄存器 (IE)
位地址 AF AE AD AC AB AA A9 A8
位符號(hào) EA   /   /  ES  ET1 EX1 ET0 EX0

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

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

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

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

 
中斷優(yōu)先級(jí)控制寄存器 (IP)
位地址 BF BE BD BC BB BA B9 B8
位符號(hào)  /   /   /  PS  PT1 PX1 PT0 PX0

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

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

    中斷優(yōu)先級(jí)是為了中斷嵌套服務(wù)的,控制原則為:
    (1) 低優(yōu)先級(jí)中斷不能打斷高優(yōu)先級(jí)的中斷服務(wù),而高優(yōu)先級(jí)的中斷服務(wù)可以打斷低優(yōu)先級(jí)的中斷服務(wù)。
    (2) 同級(jí)的中斷已經(jīng)響應(yīng),其他中斷將被禁止。
    (3) 如果同級(jí)的多個(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)行位尋址,也就是對(duì)位狀態(tài)的尋址既可以使用字節(jié)操作指令也可以使用位操作指令,例如:

        MOV    IE,#81H

    如使用位操作指令,也可寫為:
        SETB    EA
        SETB    EX0

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

        ORG    0000H    ;主程序入口
START:  AJMP   MAIN

        ORG    0003H    ;外中斷程序入口
        AJMP   INT00

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

INT00:  ……            ;外中斷服務(wù)程序
        ……
        RETI            ;中斷返回
 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。