第5章中斷系統(tǒng)_第1頁
第5章中斷系統(tǒng)_第2頁
第5章中斷系統(tǒng)_第3頁
第5章中斷系統(tǒng)_第4頁
第5章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、4:34第五章 中斷系統(tǒng) 5.1 5.1 微機(jī)的輸入微機(jī)的輸入/ /輸出方式輸出方式 5.2 5.2 中斷的概念中斷的概念 5.3 89C515.3 89C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制中斷系統(tǒng)結(jié)構(gòu)及中斷控制 5.4 5.4 中斷處理過程中斷處理過程 5.5 5.5 外部中斷擴(kuò)展方法外部中斷擴(kuò)展方法 5.6 5.6 中斷程序舉例中斷程序舉例 5.7 5.7 思考題與習(xí)題思考題與習(xí)題返 回4:345.1 微機(jī)的輸入/輸出方式5.1.1 無條件傳送方式無條件傳送方式一方永遠(yuǎn)一方永遠(yuǎn)“準(zhǔn)備好準(zhǔn)備好” ,另一方隨時(shí),另一方隨時(shí)傳送傳送。 外部電子硬盤、外部電子硬盤、GPRS模塊等。模塊等。5.1.2 查詢

2、傳送方式查詢傳送方式通過查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于通過查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于“準(zhǔn)備好準(zhǔn)備好”,計(jì)算機(jī),計(jì)算機(jī)才發(fā)出訪問外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)的傳送。才發(fā)出訪問外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)的傳送。 通用性好,可靠,速度慢。通用性好,可靠,速度慢。 儀表用打印機(jī)。儀表用打印機(jī)。5.1.3 直接存儲(chǔ)器存?。ㄖ苯哟鎯?chǔ)器存?。―MA)方式)方式CPU讓出數(shù)據(jù)總線(懸浮狀態(tài))讓出數(shù)據(jù)總線(懸浮狀態(tài)) ,使外設(shè)和存儲(chǔ)器之間直接傳送,使外設(shè)和存儲(chǔ)器之間直接傳送(不通過(不通過CPU)數(shù)據(jù)的方式。)數(shù)據(jù)的方式。 適用于外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送及外設(shè)工作速度適用于外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)

3、需要傳送及外設(shè)工作速度很快的情況。很快的情況。 硬盤。硬盤。返 回4:34外設(shè)有緊急事件要求被服務(wù)。外設(shè)有緊急事件要求被服務(wù)。CPU決定是否為其服務(wù)。決定是否為其服務(wù)。如為其服務(wù),服務(wù)結(jié)束后返回到被中止的地方繼續(xù)如為其服務(wù),服務(wù)結(jié)束后返回到被中止的地方繼續(xù)原來的工作。原來的工作。5.1.4 中斷傳送方式返 回主程序主程序響應(yīng)中斷請(qǐng)求響應(yīng)中斷請(qǐng)求中斷服務(wù)程序中斷服務(wù)程序返回主程序返回主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求4:345.2 中斷的概念一、中斷系統(tǒng):一、中斷系統(tǒng):實(shí)現(xiàn)中斷功能的部件稱為中斷系統(tǒng),又稱中斷機(jī)構(gòu)。實(shí)現(xiàn)中斷功能的部件稱為中斷系統(tǒng),又稱中斷機(jī)構(gòu)。二、中斷源:二、中斷源:

4、產(chǎn)生中斷的請(qǐng)求源稱為中斷源。產(chǎn)生中斷的請(qǐng)求源稱為中斷源。三、中斷請(qǐng)求:三、中斷請(qǐng)求:中斷源向中斷源向CPU提出的處理請(qǐng)求,稱為中斷請(qǐng)求或中斷申請(qǐng)。提出的處理請(qǐng)求,稱為中斷請(qǐng)求或中斷申請(qǐng)。四、中斷響應(yīng)過程:四、中斷響應(yīng)過程: CPU暫時(shí)中止自身的事物,轉(zhuǎn)去處理事件的過程,稱為暫時(shí)中止自身的事物,轉(zhuǎn)去處理事件的過程,稱為CPU的中斷響應(yīng)過程。的中斷響應(yīng)過程。五、中斷服務(wù):五、中斷服務(wù):對(duì)事件的整個(gè)處理過程,稱為中斷服務(wù)(或中斷處理)。對(duì)事件的整個(gè)處理過程,稱為中斷服務(wù)(或中斷處理)。六、中斷返回:六、中斷返回:中斷處理完畢,返回到原來被中止的地方,稱為中斷返回。中斷處理完畢,返回到原來被中止的地方

5、,稱為中斷返回。七、中斷方式的特點(diǎn)七、中斷方式的特點(diǎn)1、消除了、消除了CPU在查詢方式中的等待現(xiàn)象,大大提高了在查詢方式中的等待現(xiàn)象,大大提高了CPU的工作效率。的工作效率。2、將從現(xiàn)場采集的數(shù)據(jù)通過中斷方式及時(shí)傳送給、將從現(xiàn)場采集的數(shù)據(jù)通過中斷方式及時(shí)傳送給CPU,經(jīng)過處理后可立即作出,經(jīng)過處理后可立即作出反應(yīng),實(shí)現(xiàn)現(xiàn)場控制。采用查詢方式很難做到及時(shí)采集,實(shí)時(shí)控制。反應(yīng),實(shí)現(xiàn)現(xiàn)場控制。采用查詢方式很難做到及時(shí)采集,實(shí)時(shí)控制。返 回4:345.3 89C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制中斷系統(tǒng)結(jié)構(gòu)及中斷控制5.3.1 89C51中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)一、中斷系統(tǒng)結(jié)構(gòu)一、中斷系統(tǒng)結(jié)構(gòu)返 回P.115

6、4:34二、中斷技術(shù)實(shí)現(xiàn)的功能1、分時(shí)操作、分時(shí)操作 CPU可以使多個(gè)外設(shè)同時(shí)工作,并分時(shí)為各外設(shè)提供可以使多個(gè)外設(shè)同時(shí)工作,并分時(shí)為各外設(shè)提供服務(wù),從而提高了服務(wù),從而提高了CPU的利用率和輸入和輸出的速度。的利用率和輸入和輸出的速度。2、實(shí)時(shí)處理、實(shí)時(shí)處理 當(dāng)計(jì)算機(jī)用于實(shí)時(shí)控制時(shí),請(qǐng)求當(dāng)計(jì)算機(jī)用于實(shí)時(shí)控制時(shí),請(qǐng)求CPU提供服務(wù)是隨機(jī)提供服務(wù)是隨機(jī)發(fā)生的。有了中斷系統(tǒng),發(fā)生的。有了中斷系統(tǒng),CPU就可以立即響應(yīng)并加以就可以立即響應(yīng)并加以處理。處理。3、故障處理、故障處理 計(jì)算機(jī)在運(yùn)行時(shí)往往會(huì)出現(xiàn)一些故障,如斷電、存儲(chǔ)計(jì)算機(jī)在運(yùn)行時(shí)往往會(huì)出現(xiàn)一些故障,如斷電、存儲(chǔ)器奇偶校驗(yàn)出錯(cuò)、運(yùn)算溢出等。器

7、奇偶校驗(yàn)出錯(cuò)、運(yùn)算溢出等。返 回4:345.3.2 89C51中斷源返 回1、INT0:外部中斷外部中斷0請(qǐng)求,低電平有效。請(qǐng)求,低電平有效。通過通過P3.2引腳輸入。引腳輸入。2、INT1:外部中斷外部中斷1請(qǐng)求,低電平有效。請(qǐng)求,低電平有效。通過通過P3.3引腳輸入。引腳輸入。3、T0:定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0溢出中斷請(qǐng)求。溢出中斷請(qǐng)求。計(jì)數(shù)計(jì)數(shù)功能功能通過通過P3.4引腳輸入。引腳輸入。4、T1:定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1溢出中斷請(qǐng)求。溢出中斷請(qǐng)求。計(jì)數(shù)計(jì)數(shù)功能功能通過通過P3.5引腳輸入。引腳輸入。5、TX/RX:串行口中斷請(qǐng)求。當(dāng)串行口完成一幀數(shù)據(jù)的串行口中斷請(qǐng)求。當(dāng)串行口完成一幀數(shù)據(jù)

8、的發(fā)送發(fā)送完完或或接接收收到到時(shí),請(qǐng)求中斷。時(shí),請(qǐng)求中斷。串行串行接收接收通過通過P3.0引腳輸入引腳輸入,串行串行發(fā)送發(fā)送通過通過P3.1引腳輸引腳輸出出。89C51中斷系統(tǒng)的五個(gè)中斷源4:345.3.3 中斷控制中斷控制 一、中斷請(qǐng)求標(biāo)志一、中斷請(qǐng)求標(biāo)志1、定時(shí)器控制寄存器、定時(shí)器控制寄存器TCON中的中斷標(biāo)志位中的中斷標(biāo)志位返 回1、TF1:定時(shí)器:定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。溢出中斷請(qǐng)求標(biāo)志位。 89C51單片機(jī)定時(shí)器采用單片機(jī)定時(shí)器采用加計(jì)數(shù)加計(jì)數(shù),當(dāng),當(dāng)T1計(jì)到計(jì)到0時(shí),計(jì)數(shù)器最高位產(chǎn)時(shí),計(jì)數(shù)器最高位產(chǎn)生溢出,由生溢出,由硬件硬件使使TF1置置1,并向,并向CPU發(fā)

9、出中斷請(qǐng)求。當(dāng)發(fā)出中斷請(qǐng)求。當(dāng)CPU響應(yīng)中斷響應(yīng)中斷時(shí),硬件自動(dòng)對(duì)時(shí),硬件自動(dòng)對(duì)TF1清清0。2、TF0:定時(shí)器:定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。溢出中斷請(qǐng)求標(biāo)志位。 含義與含義與TF1類同。類同。3、IE1:外部中斷:外部中斷INT1的中斷請(qǐng)求標(biāo)志。當(dāng)檢測到的中斷請(qǐng)求標(biāo)志。當(dāng)檢測到INT1引腳引腳 上存在上存在有效的有效的中斷請(qǐng)求信號(hào)時(shí),由中斷請(qǐng)求信號(hào)時(shí),由硬件硬件使使IE1置置1,并向,并向CPU發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。當(dāng)當(dāng)CPU響應(yīng)中斷響應(yīng)中斷時(shí),硬件自動(dòng)對(duì)時(shí),硬件自動(dòng)對(duì)IE1清清0。4、IE0:外部中斷:外部中斷INT0的中斷請(qǐng)求標(biāo)志。其含義與的中斷請(qǐng)求標(biāo)志。其含義與I

10、E1類同。類同。TF1TF0IE1IT1IE0IT0 TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H 88HTR1TR04:342、串行口控制寄存器、串行口控制寄存器SCON中的中斷標(biāo)志位中的中斷標(biāo)志位TIRI SCON(98H)9FH 9EH 9DH 9CH 9BH 9AH 99H 98H1、TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志。:串行口發(fā)送中斷請(qǐng)求標(biāo)志。 CPU將一個(gè)數(shù)據(jù)寫入發(fā)送緩沖器將一個(gè)數(shù)據(jù)寫入發(fā)送緩沖器SBUF時(shí),就啟動(dòng)發(fā)送。每發(fā)時(shí),就啟動(dòng)發(fā)送。每發(fā)送送完完一幀串行數(shù)據(jù)后,硬件置位一幀串行數(shù)據(jù)后,硬件置位TI。但。但CPU響應(yīng)中斷時(shí),響應(yīng)中斷時(shí),并不清并不清除除TI

11、,必須在中斷服務(wù)程序中由軟件對(duì),必須在中斷服務(wù)程序中由軟件對(duì)TI清清0。2、RI:串行口接收中斷請(qǐng)求標(biāo)志。:串行口接收中斷請(qǐng)求標(biāo)志。 在串行口允許接收時(shí),每接收在串行口允許接收時(shí),每接收到到一個(gè)串行幀,硬件置位一個(gè)串行幀,硬件置位RI。同。同樣,樣,CPU響應(yīng)中斷時(shí)不會(huì)清除響應(yīng)中斷時(shí)不會(huì)清除RI,必須在中斷服務(wù)程序中由軟件,必須在中斷服務(wù)程序中由軟件對(duì)對(duì)RI清清0。4:34二、中斷允許控制二、中斷允許控制 1、中斷允許寄存器、中斷允許寄存器IE的格式。的格式。返 回EAESET1EX1ET0EX0 IE(A8H)AFH AEH ADH ACH ABH AAH A9H A8HEA中斷允許總控制位

12、。中斷允許總控制位。 EA=0,屏蔽屏蔽所有的中斷請(qǐng)求;所有的中斷請(qǐng)求; EA=1,CPU開放開放中斷。對(duì)各中斷源的中斷請(qǐng)求是否允許,還要取決于各中斷源的中斷。對(duì)各中斷源的中斷請(qǐng)求是否允許,還要取決于各中斷源的中斷允許控制位的狀態(tài)。這就是所謂的兩級(jí)控制。中斷允許控制位的狀態(tài)。這就是所謂的兩級(jí)控制。ES串行口中斷允許位。串行口中斷允許位。 ES=0,禁止串行口禁止串行口中斷;中斷; ES=1,允許串行口允許串行口中斷。中斷。ET1定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1的溢出中斷允許位。的溢出中斷允許位。 ET1=0,禁止禁止T1中斷;中斷; ET1=1,允許允許T1中斷。中斷。EX1外部中斷外部中斷1的

13、溢出中斷允許位。的溢出中斷允許位。 EX1=0,禁止外部中斷禁止外部中斷1中斷;中斷; EX1=1,允許外部中斷允許外部中斷1中斷。中斷。ET0定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0的溢出中斷允許位。的溢出中斷允許位。 ET0=0,禁止禁止T0中斷;中斷; ET0=1,允許允許T0中斷。中斷。EX0外部中斷外部中斷0的溢出中斷允許位。的溢出中斷允許位。 EX0=0,禁止外部中斷禁止外部中斷0中斷;中斷; EX0=1,允許外部中斷允許外部中斷0中斷。中斷。4:34例5-1:假設(shè)允許片內(nèi)定時(shí)器假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)條件設(shè)置中斷。試根據(jù)假設(shè)條件設(shè)置IE的

14、相應(yīng)值。的相應(yīng)值。解解:(:(IE)=10001010B=8AH(a)用字節(jié)操作指令)用字節(jié)操作指令MOV IE,#8AH;或;或 MOV A8H,#8AH;(b)用位操作指令)用位操作指令SETB ET0;定時(shí)器;定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0允許中斷允許中斷SETB ET1;定時(shí)器;定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1允許中斷允許中斷SETB EA ;CPU開中斷開中斷此時(shí),此時(shí),沒有禁止其他中斷!沒有禁止其他中斷!返 回4:34三、中斷優(yōu)先級(jí)控制三、中斷優(yōu)先級(jí)控制1、89C51的中斷優(yōu)先級(jí)的中斷優(yōu)先級(jí) 89C51有高、低兩個(gè)中斷優(yōu)先級(jí)。有高、低兩個(gè)中斷優(yōu)先級(jí)。 每個(gè)中斷請(qǐng)求源均可編程為優(yōu)先級(jí)中斷。每個(gè)中斷請(qǐng)求

15、源均可編程為優(yōu)先級(jí)中斷。 中斷系統(tǒng)中有兩個(gè)不可尋址的中斷系統(tǒng)中有兩個(gè)不可尋址的“優(yōu)先級(jí)生效優(yōu)先級(jí)生效”觸發(fā)器,分別指出觸發(fā)器,分別指出CPU正在執(zhí)行的高、低優(yōu)先級(jí)的中斷服務(wù)程序。當(dāng)其為正在執(zhí)行的高、低優(yōu)先級(jí)的中斷服務(wù)程序。當(dāng)其為1時(shí)則分別屏蔽所時(shí)則分別屏蔽所有的同級(jí)和低級(jí)中斷請(qǐng)求。有的同級(jí)和低級(jí)中斷請(qǐng)求。返 回PSPT1PX1PT0PX0 IP(B8H) BCH BBH BAH B9H B8HPS串行口中斷優(yōu)先級(jí)控制位。串行口中斷優(yōu)先級(jí)控制位。PT1T1中斷優(yōu)先級(jí)控制位。中斷優(yōu)先級(jí)控制位。PT0T0中斷優(yōu)先級(jí)控制位。中斷優(yōu)先級(jí)控制位。PX1INT1中斷優(yōu)先級(jí)控制位。中斷優(yōu)先級(jí)控制位。PX0IN

16、T0中斷優(yōu)先級(jí)控制位。中斷優(yōu)先級(jí)控制位。 若某控制位為若某控制位為1,則相應(yīng)的中斷源規(guī)定為高級(jí)中斷;反之,為,則相應(yīng)的中斷源規(guī)定為高級(jí)中斷;反之,為0,則相應(yīng)的中斷源規(guī)定為低級(jí)中斷。則相應(yīng)的中斷源規(guī)定為低級(jí)中斷。4:342、中斷優(yōu)先級(jí)排列順序當(dāng)同時(shí)接收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),響應(yīng)哪個(gè)中斷源則取決于當(dāng)同時(shí)接收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),響應(yīng)哪個(gè)中斷源則取決于內(nèi)部硬件查詢順序。內(nèi)部硬件查詢順序。其優(yōu)先級(jí)順序排列如其優(yōu)先級(jí)順序排列如 圖圖所示。所示。就是就是IP從右到左的順序。從右到左的順序。返 回中斷源中斷源 同級(jí)內(nèi)的中斷優(yōu)先級(jí)同級(jí)內(nèi)的中斷優(yōu)先級(jí)外部中斷外部中斷0中斷中斷 高級(jí)高級(jí)定時(shí)器定

17、時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0溢出中斷溢出中斷外部中斷外部中斷1定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1溢出中斷溢出中斷串行口中斷串行口中斷 低級(jí)低級(jí)4:343、中斷優(yōu)先級(jí)控制實(shí)現(xiàn)的功能、中斷優(yōu)先級(jí)控制實(shí)現(xiàn)的功能(1)按內(nèi)部查詢順序排隊(duì))按內(nèi)部查詢順序排隊(duì) 當(dāng)數(shù)個(gè)中斷源同時(shí)向當(dāng)數(shù)個(gè)中斷源同時(shí)向CPU發(fā)出中斷請(qǐng)發(fā)出中斷請(qǐng)求時(shí),求時(shí),CPU根據(jù)設(shè)計(jì)者事先確定的中根據(jù)設(shè)計(jì)者事先確定的中斷源順序號(hào)的次序,依次響應(yīng)其中斷斷源順序號(hào)的次序,依次響應(yīng)其中斷請(qǐng)求。請(qǐng)求。(2)實(shí)現(xiàn)中斷嵌套)實(shí)現(xiàn)中斷嵌套當(dāng)當(dāng)CPU正在處理一個(gè)中斷請(qǐng)求時(shí),又正在處理一個(gè)中斷請(qǐng)求時(shí),又出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)求

18、,這時(shí),求,這時(shí),CPU就暫時(shí)中止執(zhí)行對(duì)原就暫時(shí)中止執(zhí)行對(duì)原來優(yōu)先級(jí)較低的中斷源的服務(wù)程序,來優(yōu)先級(jí)較低的中斷源的服務(wù)程序,保護(hù)當(dāng)前斷點(diǎn),保護(hù)當(dāng)前斷點(diǎn),轉(zhuǎn)去響應(yīng)優(yōu)先級(jí)更高轉(zhuǎn)去響應(yīng)優(yōu)先級(jí)更高的中斷請(qǐng)求。待服務(wù)結(jié)束,再繼續(xù)執(zhí)的中斷請(qǐng)求。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級(jí)的中斷服務(wù)程序。該過行原來較低級(jí)的中斷服務(wù)程序。該過程稱為中斷嵌套。該中斷系統(tǒng)稱為多程稱為中斷嵌套。該中斷系統(tǒng)稱為多級(jí)中斷系統(tǒng)。級(jí)中斷系統(tǒng)。返 回執(zhí)行主程序執(zhí)行主程序低級(jí)中低級(jí)中斷請(qǐng)求斷請(qǐng)求響應(yīng)低級(jí)中斷請(qǐng)求響應(yīng)低級(jí)中斷請(qǐng)求執(zhí)行執(zhí)行低級(jí)低級(jí)中斷中斷服務(wù)服務(wù)程序程序高級(jí)中高級(jí)中斷請(qǐng)求斷請(qǐng)求響應(yīng)高級(jí)中斷請(qǐng)求響應(yīng)高級(jí)中斷請(qǐng)求執(zhí)行執(zhí)行高級(jí)高級(jí)中

19、斷中斷服務(wù)服務(wù)程序程序返回低級(jí)中斷程序返回低級(jí)中斷程序返回主程序返回主程序4:34 例5-2:設(shè)設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置置IP相應(yīng)值。相應(yīng)值。解:(解:(IP)=00000101B=05H(a)用字節(jié)操作指令用字節(jié)操作指令 MOV IP,#05H;或;或 MOV 0B8H,#05H;(b)用為操作指令用為操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT1返 回4:345.4 中斷處理過程中斷處理過程5.4.1 中斷處理過程的三個(gè)階段中斷處理過程的三個(gè)階段中斷處理過程分為:中斷處理

20、過程分為:中斷響應(yīng)中斷響應(yīng)中斷處理中斷處理 中斷返回中斷返回 保護(hù)現(xiàn)場保護(hù)現(xiàn)場為外設(shè)服務(wù)為外設(shè)服務(wù)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場主程序響應(yīng)中斷主程序響應(yīng)中斷NKN+mK+1中斷返回中斷返回中中 斷斷 處處 理理返 回4:345.4.2 中斷響應(yīng)中斷響應(yīng)一、一、中斷響應(yīng)條件(中斷響應(yīng)條件(同時(shí)滿足同時(shí)滿足)有中斷源發(fā)出中斷請(qǐng)求。有中斷源發(fā)出中斷請(qǐng)求。中斷總允許位中斷總允許位EA=1EA=1,即,即CPUCPU中斷。中斷。申請(qǐng)中斷的中斷源的中斷允許位為申請(qǐng)中斷的中斷源的中斷允許位為1 1,即中斷沒有被屏蔽。,即中斷沒有被屏蔽。無同級(jí)或更高級(jí)中斷正在被服務(wù)。無同級(jí)或更高級(jí)中斷正在被服務(wù)。當(dāng)前的指令周期已經(jīng)結(jié)束。當(dāng)

21、前的指令周期已經(jīng)結(jié)束。若現(xiàn)行指令為若現(xiàn)行指令為RETIRETI或是訪問或是訪問IEIE或或IPIP指令時(shí),該指令以及緊接著的另一條指令時(shí),該指令以及緊接著的另一條指令已執(zhí)行完。指令已執(zhí)行完。二、中斷響應(yīng)時(shí)間二、中斷響應(yīng)時(shí)間CPUCPU不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不同的情況下對(duì)中斷不是在任何情況下都對(duì)中斷請(qǐng)求予以響應(yīng),而不同的情況下對(duì)中斷響應(yīng)的時(shí)間是不同的。響應(yīng)的時(shí)間是不同的。最短的響應(yīng)時(shí)間為最短的響應(yīng)時(shí)間為3 3個(gè)機(jī)器周期。個(gè)機(jī)器周期。若中斷系統(tǒng)只有一個(gè)中斷源,則響應(yīng)時(shí)間為若中斷系統(tǒng)只有一個(gè)中斷源,則響應(yīng)時(shí)間為3 38 8個(gè)機(jī)器周期之間。個(gè)機(jī)器周期之間。如在如在乘除法指令之后進(jìn)入中

22、斷。乘除法指令之后進(jìn)入中斷。 RETIRETI(2T2T)+MUL AB+MUL AB(4T4T)+ +進(jìn)入中斷的進(jìn)入中斷的LJMPLJMP(2T2T)=8T=8T對(duì)于受阻的中斷響應(yīng),則響應(yīng)時(shí)間會(huì)更長一些,如正在執(zhí)行高級(jí)或同級(jí)對(duì)于受阻的中斷響應(yīng),則響應(yīng)時(shí)間會(huì)更長一些,如正在執(zhí)行高級(jí)或同級(jí)中斷。中斷。返 回4:34二、中斷響應(yīng)操作過程二、中斷響應(yīng)操作過程1、中斷響應(yīng)操作過程中斷響應(yīng)操作過程 把當(dāng)前把當(dāng)前PC值壓入堆棧,保護(hù)斷點(diǎn)。值壓入堆棧,保護(hù)斷點(diǎn)。 將相應(yīng)的中斷服務(wù)程序的入口地址送入將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。 對(duì)有些中斷源,對(duì)有些中斷源,CPU會(huì)自動(dòng)清除中斷標(biāo)志。會(huì)自動(dòng)清除中斷標(biāo)

23、志。 執(zhí)行中斷服務(wù)程序。執(zhí)行中斷服務(wù)程序。 執(zhí)行到返回指令執(zhí)行到返回指令RETI,中斷服務(wù)程序結(jié)束,將堆棧內(nèi)容彈出到,中斷服務(wù)程序結(jié)束,將堆棧內(nèi)容彈出到PC,返,返回到原來斷點(diǎn)繼續(xù)執(zhí)行。回到原來斷點(diǎn)繼續(xù)執(zhí)行。2 2、各中斷源及其對(duì)應(yīng)的矢量地址、各中斷源及其對(duì)應(yīng)的矢量地址中 斷 源 中 斷 矢 量 外 部 中 斷0 ( IN T 0 ) 0 0 0 3 H 定 時(shí) 器T 0 中 斷 0 0 0 B H 外 部 中 斷1 ( IN T 1 ) 0 0 1 3 H 定 時(shí) 器T 1 中 斷 0 0 1 B H 串 行 口 中 斷 0 0 2 3 H 返 回4:345.4.3 中斷處理中斷處理二、中斷

24、處理包括的內(nèi)容二、中斷處理包括的內(nèi)容 保護(hù)現(xiàn)場:保護(hù)現(xiàn)場:如在中斷服務(wù)程序中要用到如在中斷服務(wù)程序中要用到PSW、工作寄存器和、工作寄存器和SFR等等寄存器時(shí),則在進(jìn)入中斷服務(wù)之前應(yīng)將它們的內(nèi)容保護(hù)起來,在中寄存器時(shí),則在進(jìn)入中斷服務(wù)之前應(yīng)將它們的內(nèi)容保護(hù)起來,在中斷結(jié)束、執(zhí)行斷結(jié)束、執(zhí)行RETI指令前應(yīng)恢復(fù)現(xiàn)場。指令前應(yīng)恢復(fù)現(xiàn)場。 為中斷源服務(wù):為中斷源服務(wù):針對(duì)中斷源的具體要求進(jìn)行相應(yīng)的處理。針對(duì)中斷源的具體要求進(jìn)行相應(yīng)的處理。三、編寫中斷服務(wù)程序時(shí)的注意問題三、編寫中斷服務(wù)程序時(shí)的注意問題 在中斷矢量地址單元處放一條無條件轉(zhuǎn)移指令,使中斷服務(wù)程序可在中斷矢量地址單元處放一條無條件轉(zhuǎn)移指令

25、,使中斷服務(wù)程序可靈活地安排在靈活地安排在64KB ROM的任何空間。的任何空間。 在中斷服務(wù)程序中,應(yīng)注意用軟件保護(hù)現(xiàn)場,以免中斷返回后丟失在中斷服務(wù)程序中,應(yīng)注意用軟件保護(hù)現(xiàn)場,以免中斷返回后丟失原來寄存器、累加器中的信息。原來寄存器、累加器中的信息。 若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可以先用軟件關(guān)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可以先用軟件關(guān)閉閉CPU中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。返 回4:345.4.4 中斷返回中斷返回 在中斷服務(wù)程序中,最后一條指令必須為中斷返回在中斷服務(wù)程序中,最后一條指令必

26、須為中斷返回指令指令RETI。 CPU執(zhí)行該指令時(shí),一方面清除中斷響應(yīng)時(shí)所置位執(zhí)行該指令時(shí),一方面清除中斷響應(yīng)時(shí)所置位的的“優(yōu)先級(jí)生效優(yōu)先級(jí)生效”觸發(fā)器觸發(fā)器,另一方面從當(dāng)前棧頂彈,另一方面從當(dāng)前棧頂彈出斷點(diǎn)地址送入程序計(jì)數(shù)器出斷點(diǎn)地址送入程序計(jì)數(shù)器PC,從而返回主程序。,從而返回主程序。 注意在中斷服務(wù)程序中,注意在中斷服務(wù)程序中,PUSH和和POP指令必須成對(duì)指令必須成對(duì)使用,否則,不能正確返回?cái)帱c(diǎn)使用,否則,不能正確返回?cái)帱c(diǎn)。返 回4:345.5 外部中斷擴(kuò)展方法外部中斷擴(kuò)展方法5.5.1 利用定時(shí)器擴(kuò)展外部中斷源利用定時(shí)器擴(kuò)展外部中斷源 89C51單片機(jī)有兩個(gè)定時(shí)器,具有兩個(gè)內(nèi)部中斷標(biāo)

27、志和單片機(jī)有兩個(gè)定時(shí)器,具有兩個(gè)內(nèi)部中斷標(biāo)志和外部計(jì)數(shù)輸入引腳。外部計(jì)數(shù)輸入引腳。 當(dāng)定時(shí)器設(shè)置為計(jì)數(shù)方式,計(jì)數(shù)初值設(shè)置為滿量程當(dāng)定時(shí)器設(shè)置為計(jì)數(shù)方式,計(jì)數(shù)初值設(shè)置為滿量程FFH時(shí),一旦外部信號(hào)從計(jì)數(shù)器引腳輸入一個(gè)負(fù)跳變信號(hào),時(shí),一旦外部信號(hào)從計(jì)數(shù)器引腳輸入一個(gè)負(fù)跳變信號(hào),計(jì)數(shù)器加計(jì)數(shù)器加1產(chǎn)生溢出中斷,從而轉(zhuǎn)去處理該外部中斷源的產(chǎn)生溢出中斷,從而轉(zhuǎn)去處理該外部中斷源的請(qǐng)求。請(qǐng)求。 將外部中斷源信號(hào)接至將外部中斷源信號(hào)接至T0或或T1引腳;該定時(shí)器的溢出中引腳;該定時(shí)器的溢出中斷標(biāo)志及中斷服務(wù)程序作為擴(kuò)充外部中斷源的標(biāo)志和中斷標(biāo)志及中斷服務(wù)程序作為擴(kuò)充外部中斷源的標(biāo)志和中斷服務(wù)程序。斷服務(wù)程序

28、。返 回4:345.5.2 中斷加查詢擴(kuò)展外部中斷源中斷加查詢擴(kuò)展外部中斷源返 回INT1INT0P1.3P1.2P1.1P1.089C51裝置裝置1裝置裝置2裝置裝置3裝置裝置4+5V ORG 0003H LJMP INTRP ORG 1000H INTRP:PUSH PSW PUSHA JBP1.0, DV1 JBP1.1, DV2 JBP1.2, DV3 JBP1.3, DV4 EXIT: POPA POP PSW RETIDV1: 裝置1的中斷服務(wù)程序 AJMP EXITDV2: 裝置2的中斷服務(wù)程序 AJMP EXITDV3: 裝置3的中斷服務(wù)程序 AJMP EXITDV4: 裝置4

29、的中斷服務(wù)程序 AJMP EXIT4:345.6 中斷程序舉例中斷程序舉例5.6.1 5.6.1 主程序主程序ORG 0000HLJMP MAINORG 0003HLJMP INT0ORG 000BHLJMP INT0ORG 0013HLJMP T0ORG 001BHLJMP INT1ORG 0023HLJMP TXRXORG 0030HMAIN: MOV SP,#60HLCALL INIT :返 回;中斷初始化,中斷初始化, 初始初始IE、IP =0。設(shè)設(shè)8031的片外中斷為高優(yōu)先級(jí),片內(nèi)中的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。設(shè)置斷為低優(yōu)先級(jí)。設(shè)置IP相應(yīng)值。相應(yīng)值。SETB PX0;

30、INT0為高優(yōu)先級(jí)為高優(yōu)先級(jí)SETB PX1;INT1為高優(yōu)先級(jí)為高優(yōu)先級(jí)SETB EX0;允許允許INT0中斷中斷SETB EX1;允許允許INT1中斷中斷SETB ET0;允許允許T0中斷中斷SETB ET1;允許允許T0中斷中斷SETB EA;允許總中斷允許總中斷中斷初始化中斷初始化完整的完整的主程序主程序開頭開頭中斷服務(wù)程序起始地址中斷服務(wù)程序起始地址4:34中斷服務(wù)程序編制中的注意事項(xiàng)中斷服務(wù)程序編制中的注意事項(xiàng)視需要確定是否保護(hù)現(xiàn)場,視需要確定是否保護(hù)現(xiàn)場,一般必須一般必須。PSW、ACC一般必須保護(hù)。一般必須保護(hù)。用用SET RS0換寄存器工作組的方法保護(hù)換寄存器工作組的方法保護(hù)

31、R0R7。 及時(shí)清除那些不能被硬件自動(dòng)清除的中斷請(qǐng)求標(biāo)志(及時(shí)清除那些不能被硬件自動(dòng)清除的中斷請(qǐng)求標(biāo)志(RI、TI),以免產(chǎn)生錯(cuò)誤的中斷。),以免產(chǎn)生錯(cuò)誤的中斷。 中斷服務(wù)程序中的壓棧與彈棧指令必須成對(duì)使用,以確中斷服務(wù)程序中的壓棧與彈棧指令必須成對(duì)使用,以確保中斷服務(wù)程序的正確返回。保中斷服務(wù)程序的正確返回。 應(yīng)盡可能短。應(yīng)盡可能短。返 回4:34如圖所示,將如圖所示,將P1口的口的P1.4P1.7作為作為輸入輸入位,位, P1.0P1.3作為作為輸出輸出位。位。撥動(dòng)撥動(dòng)開關(guān)開關(guān)將將P1.4P1.7所設(shè)的數(shù)據(jù)依次通過所設(shè)的數(shù)據(jù)依次通過P1.0P1.3輸出,驅(qū)動(dòng)發(fā)輸出,驅(qū)動(dòng)發(fā)光二極管(若輸入為

32、高電平則相應(yīng)的光二極管(若輸入為高電平則相應(yīng)的LED亮)。亮)?,F(xiàn)要求采用中斷邊沿現(xiàn)要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀觸發(fā)方式,每中斷一次,完成一次讀/寫操作。寫操作。返 回5.6.2 中斷服務(wù)程序舉例中斷服務(wù)程序舉例8031 +5V+5V+5V+5V+5V12S1P1.7INT0P1.6P1.5P1.4P1.3P1.2P1.1P1.04:34解:解:如圖所示,采用外部中斷如圖所示,采用外部中斷0,中斷申請(qǐng)從,中斷申請(qǐng)從INT0輸入,并輸入,并采用了去抖動(dòng)電路。采用了去抖動(dòng)電路。 當(dāng)當(dāng)P1.0P1.3的任何一位的任何一位輸出為輸出為1時(shí),相應(yīng)的發(fā)光二極時(shí),相應(yīng)的發(fā)光二極管就會(huì)發(fā)光

33、。當(dāng)開關(guān)管就會(huì)發(fā)光。當(dāng)開關(guān)S1閉合時(shí),閉合時(shí),發(fā)出中斷請(qǐng)求。中斷服務(wù)程序發(fā)出中斷請(qǐng)求。中斷服務(wù)程序的矢量地址為的矢量地址為0003H。源程序。源程序如下。如下。取消非門,如何修改程序?取消非門,如何修改程序?源程序如下:ORG 0000HLJMP MAIN;上電,轉(zhuǎn)向主程序ORG 0003H;外部中斷0入口地址LJMP INT0 ;轉(zhuǎn)向中斷服務(wù)程序ORG 0030H ;主程序MAIN:SETB EX0 ;允許外部中斷0中斷SETB IT0 ;選擇邊沿觸發(fā)方式SETB EA ;CPU開中斷HERE:SJMP HERE ;等待中斷 ORG 0200H ;中斷服務(wù)程序(刪)INT0: MOV A,#

34、0F0H MOV P1,A ;設(shè)P1.4P1.7為輸入MOV A,P1 ;取開關(guān)數(shù)SWAP A ;A的高、低四位互換MOV P1,A;輸出驅(qū)動(dòng)LED發(fā)光RETI ;中斷返回END 返 回4:345.7 思考題與習(xí)題思考題與習(xí)題1、什么是中斷和中斷系統(tǒng)?其主要功能是什么?、什么是中斷和中斷系統(tǒng)?其主要功能是什么?2、試編寫一段對(duì)中斷系統(tǒng)初始化的程序,使之允許、試編寫一段對(duì)中斷系統(tǒng)初始化的程序,使之允許INT0,INT1,TO,串行口中斷,且使,串行口中斷,且使T0中斷為高優(yōu)中斷為高優(yōu)先級(jí)中斷。先級(jí)中斷。3、在單片機(jī)中,中斷能實(shí)現(xiàn)哪些功能?、在單片機(jī)中,中斷能實(shí)現(xiàn)哪些功能?4、89C51共有哪些中斷源?對(duì)其中端請(qǐng)求如何進(jìn)行控制?共有哪些中斷源?對(duì)其中端請(qǐng)求如何進(jìn)行控制?5、什么是中斷優(yōu)先級(jí)?中斷優(yōu)先處理的原則是什么?、什么是中斷優(yōu)先級(jí)?中斷優(yōu)先處理的原則是什么?6、說明外部中斷請(qǐng)求的查詢和響應(yīng)過程。、說

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論