新聞中心

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

        MCS-51單片機(jī)的中斷系統(tǒng)(1)

        作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
        在CPU 與外設(shè)交換信息時(shí),存在著一個(gè)快速的 CPU 與慢速的外設(shè)之間的矛盾。為解決這個(gè)問題,發(fā)展了中斷的概念。
        單片機(jī)在某一時(shí)刻只能處理一個(gè)任務(wù),當(dāng)多個(gè)任務(wù)同時(shí)要求單片機(jī)處理時(shí),這一要求應(yīng)該怎么實(shí)現(xiàn)呢?通過中斷可以實(shí)現(xiàn)多個(gè)任務(wù)的資源共享。
        中斷現(xiàn)象在現(xiàn)實(shí)生活中也會(huì)經(jīng)常遇到,例如,你在看書——手機(jī)響了——你在書上作個(gè)記號(hào)——你接通電話和對(duì)方聊天——談話結(jié)束——從書上的記號(hào)處繼續(xù)看書。這就是一個(gè)中斷過程。通過中斷,你一個(gè)人在一特定的時(shí)刻,同時(shí)完成了看書和打電話兩件事情。用計(jì)算機(jī)語言來描述,所謂的中斷就是,當(dāng) CPU 正在處理某項(xiàng)事務(wù)的時(shí)候,如果外界或者內(nèi)部發(fā)生了緊急事件,要求 CPU 暫停正在處理工作而去處理這個(gè)緊急事件,待處理完后,再回到原來中斷的地方,繼續(xù)執(zhí)行原來被中斷的程序,這個(gè)過程稱作中斷。
        從中斷的定義我們可以看到中斷應(yīng)具備中斷源、中斷響應(yīng)、中斷返回這樣三個(gè)要素。中斷源發(fā)出中斷請(qǐng)求,單片機(jī)對(duì)中斷請(qǐng)求進(jìn)行響應(yīng),當(dāng)中斷響應(yīng)完成后應(yīng)進(jìn)行中斷返回,返回被中斷的地方繼續(xù)執(zhí)行原來被中斷的程序。

        MCS-51單片機(jī)中斷系統(tǒng)

        MCS-51單片機(jī)的中斷源

        MCS-51單片機(jī)的中斷源共有兩類,它們分別是:外部中斷和內(nèi)部中斷
        1. 外部中斷源
        ? 外部中斷0(#INT0):來自P3.2引腳,采集到低電平或者下降沿時(shí),產(chǎn)生中斷請(qǐng)求。
        ? 外部中斷1(#INT1):來自#P3.3引腳,采集到低電平或者下降沿時(shí),產(chǎn)生中斷請(qǐng)求。
        2. 內(nèi)部中斷源
        ? 定時(shí)器∕計(jì)數(shù)器0(T0):定時(shí)功能時(shí),計(jì)數(shù)脈沖來自片內(nèi);計(jì)數(shù)功能時(shí),計(jì)數(shù)脈沖來自片外P3.4引腳。發(fā)生溢出時(shí),產(chǎn)生中斷請(qǐng)求。
        ? 定時(shí)器∕計(jì)數(shù)器1(T1):定時(shí)功能時(shí),計(jì)數(shù)脈沖來自片內(nèi);計(jì)數(shù)功能時(shí),計(jì)數(shù)脈沖來自片外P3.5引腳。發(fā)生溢出時(shí),產(chǎn)生中斷請(qǐng)求。
        ? 串行口:為完成串行數(shù)據(jù)傳送而設(shè)置。單片機(jī)完成接受或發(fā)送一組數(shù)據(jù)時(shí),產(chǎn)生中斷請(qǐng)求。

        中斷控制的專用寄存器

        MCS-51單片機(jī)為用戶提供了四個(gè)專用寄存器,來控制單片機(jī)的中斷系統(tǒng)。

        1. 定時(shí)器控制寄存器(TCON)
        該寄存器用于保存外部中斷請(qǐng)求以及定時(shí)器的計(jì)數(shù)溢出。進(jìn)行字節(jié)操作時(shí),寄存器地址為88H。按位操作時(shí),各位的地址為88H~8FH。寄存器的內(nèi)容及位地址表示如下:

        位地址8FH8EH8DH8CH8BH8AH89H88H
        位符號(hào)TF1TR1TF0TR0IE1IT1IE0IT0

        ? IT0 和IT1——外部中斷請(qǐng)求觸發(fā)方式控制位
        IT0 (IT1)=1 脈沖觸發(fā)方式,下降沿有效
        IT0 (IT1)=0 電平觸發(fā)方式,低電平有效
        ?IE0和IE1——外中斷請(qǐng)求標(biāo)志位
        當(dāng)CPU采樣到#INT0(或#INT1)端出現(xiàn)有效中斷請(qǐng)求時(shí),IE0(IE1)位由硬件置“ 1”。當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件把IE (或IE )清零。
        ?TR0 和TR1——定時(shí)器運(yùn)行控制位
        TR0 (TR1 )=0 定時(shí)器/計(jì)數(shù)器不工作
        TR0 (TR1 )=1 定時(shí)器/計(jì)數(shù)器開始工作
        ? TF0和TF1——計(jì)數(shù)溢出標(biāo)志位
        當(dāng)計(jì)數(shù)器產(chǎn)生計(jì)數(shù)溢出時(shí),相應(yīng)的溢出標(biāo)志位由硬件置“1”。當(dāng)轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng)清“0”。計(jì)數(shù)溢出標(biāo)志位的使用有兩種情況:采用中斷方式時(shí),作中斷請(qǐng)求標(biāo)志位來使用;采用查詢方式時(shí),作查詢狀態(tài)位來使用。

        2. 串行口控制寄存器(SCON)
        進(jìn)行字節(jié)操作時(shí),寄存器地址為98H。按位操作時(shí),各位的地址為98H~9FH。寄存器的內(nèi)容及位地址表示如下:

        位地址9FH9EH9DH9CH9BH9AH99H98H
        位符號(hào)SM0SM1SM2RENTB8RB8TIRI


        其中與中斷有關(guān)的控制位共2位:
        ? TI——串行口發(fā)送中斷請(qǐng)求標(biāo)志位
        當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置“1”;在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清“0”。
        ? RI——串行口接收中斷請(qǐng)求標(biāo)志位
        當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置“1”;在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清“0”。串行中斷請(qǐng)求由TI和RI的邏輯或得到。就是說,無論是發(fā)送標(biāo)志還是接收標(biāo)志,都會(huì)產(chǎn)生串行中斷請(qǐng)求。

        3. 中斷允許控制寄存器(IE)
        進(jìn)行字節(jié)操作時(shí),寄存器地址為0A8H。按位操作時(shí),各位的地址為0A8H~0AFH。寄存器的內(nèi)容及位地址表示如下:
        位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H
        位符號(hào)EA//ESET1EX1ET0EX0
        其中與中斷有關(guān)的控制位共6位:
        ? EA——中斷允許總控制位
        EA=0 中斷總禁止,禁止所有中斷
        EA=1 中斷總允許,總允許后中斷的禁止或允許由各中斷源的中斷允許控制位進(jìn)行設(shè)置。
        ?EX0和EX1——外部中斷允許控制位
        EX0(EX1)=0 禁止外部中斷
        EX0(EX1)=1 允許外部中斷
        ?ET0和ET1——定時(shí)器/計(jì)數(shù)器中斷允許控制位
        ET0(ET1)=0 禁止定時(shí)器/計(jì)數(shù)器中斷
        ET0(ET1)=0 允許定時(shí)器/計(jì)數(shù)器中斷
        ?ES——串行中斷允許控制位
        ES=0 禁止串行中斷
        ES=1 允許串行中斷
        可見,MCS-51單片機(jī)通過中斷允許控制寄存器對(duì)中斷的允許(開放)實(shí)行兩級(jí)控制。即以EA位作為總控制位,以各中斷源的中斷允許位作為分控制位。當(dāng)總控制位為禁止時(shí),關(guān)閉整個(gè)中斷系統(tǒng),不管分控制為狀態(tài)如何,整個(gè)中斷系統(tǒng)為禁止?fàn)顟B(tài);當(dāng)總控制位為允許時(shí),開放中斷系統(tǒng),這時(shí)才能由各分控制位設(shè)置各自中斷的允許與禁止。
        MCS-51單片機(jī)復(fù)位后(IE)=00H,因此中斷系統(tǒng)處于禁止?fàn)顟B(tài)。單片機(jī)在中斷響應(yīng)后不會(huì)自動(dòng)關(guān)閉中斷。因此在轉(zhuǎn)中斷服務(wù)程序后,應(yīng)根據(jù)需要使用有關(guān)指令禁止中斷,即以軟件方式關(guān)閉中斷。

        4. 中斷優(yōu)先級(jí)控制寄存器(IP)
        MCS-51單片機(jī)的中斷優(yōu)先級(jí)控制比較簡(jiǎn)單,因?yàn)橄到y(tǒng)只定義了高、低2個(gè)優(yōu)先級(jí)。高優(yōu)先級(jí)用“1”表示,低優(yōu)先級(jí)用“0”表示。各中斷源的優(yōu)先級(jí)由中斷優(yōu)先級(jí)寄存器(IP)進(jìn)行設(shè)定。IP寄存器地址0B8H,位地址為0BFH~0B8H。寄存器的內(nèi)容及位地址表示如下:
        位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H
        位符號(hào)///PSPT1PX1PT0PX0
        其中:
        PX0——外部中斷0優(yōu)先級(jí)設(shè)定位;
        PT0——定時(shí)中斷0優(yōu)先級(jí)設(shè)定位;
        PX1——外部中斷1優(yōu)先級(jí)設(shè)定位;
        PT1——定時(shí)中斷1優(yōu)先級(jí)設(shè)定位;
        PS——串行中斷優(yōu)先級(jí)設(shè)定位。
        以上各位設(shè)置為“0”時(shí),則相應(yīng)的中斷源為低優(yōu)先級(jí);設(shè)置為“1”時(shí),則相應(yīng)的中斷源為高優(yōu)先級(jí)。
        優(yōu)先級(jí)的控制原則是:
        ? 低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù);但高優(yōu)先級(jí)中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷服務(wù),從而實(shí)現(xiàn)中斷嵌套。
        ? 如果一個(gè)中斷請(qǐng)求已被響應(yīng),則同級(jí)的其它中斷服務(wù)將被禁止。即同級(jí)不能嵌套。
        ? 如果同級(jí)的多個(gè)中斷同時(shí)出現(xiàn),則按CPU查詢次序確定哪個(gè)中斷請(qǐng)求被響應(yīng)。其查詢次序?yàn)椋和獠恐袛?→定時(shí)中斷→外部中斷→定時(shí)中斷→串行中斷。
        中斷優(yōu)先級(jí)控制,除了中斷優(yōu)先級(jí)控制寄存器之外,還有兩個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。其中一個(gè)用于指示某一高優(yōu)先級(jí)中斷正在進(jìn)行服務(wù),從而屏蔽其它高優(yōu)先級(jí)中斷;另一個(gè)用于指示某一低優(yōu)先級(jí)中斷正在進(jìn)行服務(wù),從而屏蔽其它低優(yōu)先級(jí)中斷,但不能屏蔽高優(yōu)先級(jí)的中斷。此外,對(duì)于同級(jí)的多個(gè)中斷請(qǐng)求查詢的次序安排,也是通過專門的內(nèi)部邏輯實(shí)現(xiàn)的。



        關(guān)鍵詞: MCS-51單片機(jī)中斷系

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 奇台县| 福清市| 永宁县| 新闻| 安塞县| 克什克腾旗| 昔阳县| 登封市| 阳新县| 仪陇县| 楚雄市| 佛山市| 寿宁县| 广平县| 庆城县| 桐梓县| 宝兴县| 长泰县| 通化县| 武威市| 铜山县| 左云县| 合川市| 黄浦区| 安多县| 和龙市| 金阳县| 屯留县| 浦江县| 扎赉特旗| 泽州县| 宜阳县| 罗定市| 且末县| 深州市| 邮箱| 塔城市| 耿马| 元朗区| 铜川市| 长宁县|