《中斷系統(tǒng)》PPT課件_第1頁(yè)
《中斷系統(tǒng)》PPT課件_第2頁(yè)
《中斷系統(tǒng)》PPT課件_第3頁(yè)
《中斷系統(tǒng)》PPT課件_第4頁(yè)
《中斷系統(tǒng)》PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編輯課件ppt1第第5 5章章: :中斷系統(tǒng)中斷系統(tǒng)編輯課件ppt2第第5 5章章 目錄目錄n5.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 5.1.1 什么是中斷 5.1.2 80C51的中斷源 5.1.3 80C51的中斷控制 n5.2 5.2 中斷處理過(guò)程中斷處理過(guò)程 5.2.1 中斷響應(yīng) 5.2.2 中斷處理 5.2.3 中斷返回 5.2.4 中斷請(qǐng)求的撤除 n5.3 5.3 中斷服務(wù)子程序的設(shè)計(jì)中斷服務(wù)子程序的設(shè)計(jì) 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例 5.3.2 多個(gè)中斷源設(shè)計(jì)舉例編輯課件ppt35.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n

2、5.1.15.1.1什么是中斷什么是中斷1、中斷的概念是指CPU正在處理某件事情的時(shí)候,外部發(fā)生了另一事件,請(qǐng)求CPU迅速去處理。CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完以后,再回來(lái)繼續(xù)執(zhí)行被中止了的工作,這個(gè)過(guò)程稱(chēng)為中斷。計(jì)算機(jī)采用中斷技術(shù),具有以下優(yōu)點(diǎn):1)實(shí)性增強(qiáng)。CPU可以及時(shí)處理系統(tǒng)的隨機(jī)事件;2)可靠性提高。CPU能夠處理故障及掉電等突發(fā)事件;3)利用率提高。CPU可以分時(shí)地為多個(gè)I/O設(shè)備服務(wù)。編輯課件ppt45.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.15.1.1什么是中斷什么是中斷編輯課件ppt55.1 80C515.1 80C

3、51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中斷源1、中斷源80C51有五個(gè)中斷源如下:(1)/INT0:外部中斷0。采樣P3.2引腳的外部中斷請(qǐng)求。(2)/INT1:外部中斷1。采樣P3.3引腳的外部中斷請(qǐng)求。(3) 定時(shí)/計(jì)數(shù)器T0:計(jì)數(shù)溢出發(fā)生的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為T(mén)F0。(4)定時(shí)/計(jì)數(shù)器T1:計(jì)數(shù)溢出發(fā)生的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為T(mén)F1。(5)串行口中斷請(qǐng)求:串行口完成一幀數(shù)據(jù)的發(fā)送或接收時(shí)所發(fā)出的中斷請(qǐng)求,標(biāo)志位為T(mén)I或RI。每個(gè)中斷源對(duì)應(yīng)一個(gè)中斷標(biāo)志位,它們包含在特殊功能寄存器TCON和SCON中。編輯課件ppt65.1 80C

4、515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中斷源2、中斷請(qǐng)求標(biāo)志TCON寄存器TCON寄存器是定時(shí)計(jì)數(shù)器T0和T1和的控制寄存器,它同時(shí)也用來(lái)鎖存T0和T1的溢出中斷申請(qǐng)信號(hào)TF0、TF1和外部中斷申請(qǐng)信號(hào)IE0、IE1,其字節(jié)地址為88H,可位尋址。TCON寄存器中與中斷有關(guān)的位如下所示:I IT T0 0I IE E0 0I IT T1 1I IE E1 1/T TF FO O/T TF F1 1位位符符號(hào)號(hào)8 88 8H H8 89 9H H8 8A AH H8 8B BH H8 8C CH H8 8D DH H8 8E

5、 EH H8 8F FH H位位地地址址I IT T0 0I IE E0 0I IT T1 1I IE E1 1/T TF FO O/T TF F1 1位位符符號(hào)號(hào)8 88 8H H8 89 9H H8 8A AH H8 8B BH H8 8C CH H8 8D DH H8 8E EH H8 8F FH H位位地地址址編輯課件ppt75.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中斷源TCON中各位的功能如下:(1)TF1:定時(shí)計(jì)數(shù)器1(T1) 的溢出中斷標(biāo)志位。當(dāng)T1從初值開(kāi)始加1計(jì)數(shù)到產(chǎn)生溢出時(shí),由硬件使TF1置

6、“1”, 直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。(2)TF0:定時(shí)計(jì)數(shù)器0(T0)的溢出中斷標(biāo)志位,與TF1類(lèi)似。(3)IT1:觸發(fā)方式控制位。當(dāng)IT1=0時(shí),中斷系統(tǒng)為電平觸發(fā)方式,即加到引腳的外部中斷請(qǐng)求信號(hào)為低電平有效;當(dāng)IT1=1時(shí)中斷系統(tǒng)為邊沿觸發(fā)方式,即加到引腳的外部中斷請(qǐng)求信號(hào)由高電平跳到低電平的負(fù)跳變有效。(4)IE1:外部中斷1 的中斷請(qǐng)求標(biāo)志。當(dāng)IT1=0(即電平觸發(fā)方式)時(shí),在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣,若為低電平,則由硬件使IE1 置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位;當(dāng)IT1=1(即邊沿觸發(fā)方式)時(shí),若前一個(gè)機(jī)器周期采樣到為高電平,而后一個(gè)機(jī)器周期采樣到 為低電平,

7、則由硬件使IE1置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。(5)IT0:觸發(fā)方式控制位,與IT1類(lèi)似。(6)IE0:外部中斷0的中斷請(qǐng)求標(biāo)志位,與IE1類(lèi)似。編輯課件ppt85.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中斷源2、中斷請(qǐng)求標(biāo)志SCON寄存器 SCON為串行口控制寄存器,字節(jié)地址為98H,可位尋址。SCON中的低2位用做串行口中斷標(biāo)志,其各位定義如下表所示:SCON中各位的功能如下:(1)RI:串行口接收中斷請(qǐng)求標(biāo)志位。在串行口工作方式0中,每當(dāng)接收到第8位數(shù)據(jù)時(shí)由硬件置位RI;在其他方式中,當(dāng)接收到停

8、止位時(shí)由硬件置位RI。注意,當(dāng)CPU轉(zhuǎn)入串行口中斷服務(wù)程序的入口時(shí)沒(méi)有硬件復(fù)位RI,因此必須由編程人員用軟件復(fù)位(清零)RI。 (2)TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志位。在串行口工作方式0中,每當(dāng)發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位TI;在其他方式中,當(dāng)發(fā)送到停止位時(shí)置位TI。注意:TI也必須由軟件來(lái)復(fù)位。R RI IT TI I/位位符符號(hào)號(hào)9 98 8H H9 99 9H H9 9A AH H9 9B BH H9 9C CH H9 9D DH H9 9E EH H9 9F FH H位位地地址址R RI IT TI I/位位符符號(hào)號(hào)9 98 8H H9 99 9H H9 9A AH H9 9B BH

9、H9 9C CH H9 9D DH H9 9E EH H9 9F FH H位位地地址址編輯課件ppt95.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制1、中斷允許控制寄存器IE SCON寄存器 在80C51中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)的中斷允許寄存器IE控制的。IE 寄存器的地址是A8H,可位尋址,位地址為A8HAFH。寄存器的內(nèi)容及位地址如下:E EX X0 0E ET T0 0EX1ET1ES/EA位位符符號(hào)號(hào)A A8 8H HA A9 9H HA AA AH HA AB BH HA AC CH

10、HA AD DH HA AE EH HA AF FH H位位地地址址E EX X0 0E ET T0 0EX1ET1ES/EA位位符符號(hào)號(hào)A A8 8H HA A9 9H HA AA AH HA AB BH HA AC CH HA AD DH HA AE EH HA AF FH H位位地地址址編輯課件ppt105.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制SCON寄存器(1)EA:中斷允許總控制位。EA=O時(shí),表示CPU禁止所有中斷,即所有的中斷請(qǐng)求被屏蔽;EA=1時(shí),表示CPU開(kāi)放中斷,但每個(gè)中斷源的中斷

11、請(qǐng)求是允許還是禁止,要由各自的允許位控制。(2)EXO(EX1):外部中斷允許控制位。EX0(EX1)=0,禁止外中斷;EXO(EX1)=1,允許外中斷。(3)ETO(ET1):定時(shí)計(jì)數(shù)器的中斷允許控制位。ETO(ET1)=0,禁止定時(shí)計(jì)數(shù)器中斷;ET0(ET1)=1,允許定時(shí)計(jì)數(shù)器中斷。(4)ES:串行中斷允許控制位。ES=O,禁止串行中斷;ES=1,允許串行中斷。 中斷允許寄存器中各相應(yīng)位的狀態(tài),可根據(jù)要求用指令置位或清零。E EX X0 0E ET T0 0EX1ET1ES/EA位位符符號(hào)號(hào)A A8 8H HA A9 9H HA AA AH HA AB BH HA AC CH HA AD

12、 DH HA AE EH HA AF FH H位位地地址址E EX X0 0E ET T0 0EX1ET1ES/EA位位符符號(hào)號(hào)A A8 8H HA A9 9H HA AA AH HA AB BH HA AC CH HA AD DH HA AE EH HA AF FH H位位地地址址編輯課件ppt115.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制2、中斷優(yōu)先級(jí)控制寄存器IPIP寄存器地址B8H,可位尋址。位地址為B8HBFH。寄存器的內(nèi)容及位地址表示如下:PX0:外部中斷O優(yōu)先級(jí)設(shè)定位;PT0:定時(shí)器T0中

13、斷優(yōu)先級(jí)設(shè)定位;PX1:外部中斷1優(yōu)先級(jí)設(shè)定位; PT1:定時(shí)器T1中斷優(yōu)先級(jí)設(shè)定位;PS:串行中斷優(yōu)先級(jí)設(shè)定位。 以上某一控制位若被置零,則該中斷源被定義為低優(yōu)先級(jí);若被置1,則該中斷源被定義為高優(yōu)先級(jí)。中斷優(yōu)先級(jí)控制寄存器IP的各個(gè)控制位,都可以通過(guò)編程來(lái)置位或清零。單片機(jī)復(fù)位后,IP中各位均被清零。P PX X0 0P PT T0 0PX1PT1PS/位位符符號(hào)號(hào)B B8 8H HB B9 9H HB BA AH HB BB BH HB BC CH HB BD DH HB BE EH HB BF FH H位位地地址址P PX X0 0P PT T0 0PX1PT1PS/位位符符號(hào)號(hào)B B

14、8 8H HB B9 9H HB BA AH HB BB BH HB BC CH HB BD DH HB BE EH HB BF FH H位位地地址址編輯課件ppt125.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制2、中斷優(yōu)先級(jí)控制寄存器IP中斷優(yōu)先級(jí)是為中斷嵌套服務(wù)的,80C51單片機(jī)中斷優(yōu)先級(jí)的控制原則是以下幾點(diǎn):(1)低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù)程序,但高優(yōu)先級(jí)中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷服務(wù)程序,從而實(shí)現(xiàn)中斷嵌套。 (2)一個(gè)中斷一旦得到響應(yīng),與它同級(jí)的中斷請(qǐng)求不能中斷它。(3)如果

15、同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),則按CPU的查詢(xún)次序確定哪個(gè)中斷請(qǐng)求被響應(yīng)。 其查詢(xún)次序?yàn)椋和獠恐袛郞定時(shí)計(jì)數(shù)器中斷0外部中斷1定時(shí)計(jì)數(shù)器中斷1串行中斷。編輯課件ppt135.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制【例5-1】若PS=1,PX0=0,串口的中斷服務(wù)程序正在被執(zhí)行,外有中斷請(qǐng)求出現(xiàn),則CPU會(huì)響應(yīng)外中斷0嗎,試說(shuō)明原因?如果外部中斷0的服務(wù)程序正在被執(zhí)行,串口中斷請(qǐng)求出現(xiàn),CPU會(huì)響應(yīng)串口中斷嗎?如果兩者同時(shí)出現(xiàn)則先響應(yīng)哪個(gè)?解:不會(huì)。因?yàn)檎趫?zhí)行的串口中斷服務(wù)是高優(yōu)先級(jí)中斷服務(wù)程序,低級(jí)的外

16、中斷0不能打斷高級(jí)的中斷服務(wù)程序。CPU會(huì)響應(yīng)串口的中斷服務(wù)程序。因?yàn)榇诘闹袛喾?wù)程序是高優(yōu)先級(jí),高級(jí)的中斷可以打斷正在被響應(yīng)的低級(jí)中斷服務(wù)程序。如果兩者同時(shí)出現(xiàn),CPU會(huì)響應(yīng)串口的中斷服務(wù)程序。因?yàn)閮蓚€(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求同時(shí)出現(xiàn),一定是高優(yōu)先級(jí)的中斷服務(wù)程序先被響應(yīng)。編輯課件ppt145.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制【例5-2】若PS=0,PX0=0,串口的中斷被響應(yīng)后,外中斷請(qǐng)求出現(xiàn),則CPU會(huì)響應(yīng)外中斷0嗎?反之呢?若兩者同時(shí)出現(xiàn)呢?解:不會(huì)。因?yàn)橥?jí)的中斷不能夠相互打斷。反之也不會(huì)

17、,理由同前。兩者同時(shí)出現(xiàn)則會(huì)先響應(yīng)外部中斷0,因?yàn)橥庵袛?的查詢(xún)次序在串口之前。編輯課件ppt155.2 5.2 中斷處理過(guò)程中斷處理過(guò)程中斷處理過(guò)程可分為中斷處理過(guò)程可分為3 3個(gè)階段個(gè)階段, ,即中斷響應(yīng)、中斷處理和中斷返回。即中斷響應(yīng)、中斷處理和中斷返回。n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)中斷響應(yīng)是在滿(mǎn)足CPU的中斷響應(yīng)條件之后,CPU對(duì)中斷源中斷請(qǐng)求的回答。在這個(gè)階段,CPU要完成中斷服務(wù)程序以前的所有準(zhǔn)備工作,這些準(zhǔn)備工作是:保護(hù)斷點(diǎn)和把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。 計(jì)算機(jī)在運(yùn)行時(shí),并不是任何時(shí)刻都會(huì)去響應(yīng)中斷請(qǐng)求,而是在中斷響應(yīng)條件滿(mǎn)足之后才會(huì)響應(yīng)。1、CPU的中斷響應(yīng)條件

18、 1)首先要由中斷源發(fā)出中斷申請(qǐng);2)中斷總允許位EA=1,即CPU允許所有中斷源申請(qǐng)中斷; 3)申請(qǐng)中斷的中斷源的中斷允許位為1,即此中斷源可以向CPU申請(qǐng)中斷。以上是CPU響應(yīng)中斷的基本條件,若滿(mǎn)足上述條件,CPU一般會(huì)響應(yīng)中斷。編輯課件ppt165.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)1、CPU的中斷響應(yīng)條件 如果有下列任何一種情況存在,則中斷響應(yīng)會(huì)受到阻斷。 CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序;當(dāng)前的機(jī)器周期不是正在執(zhí)行指令的最后一個(gè)周期,即正在執(zhí)行的指令還未完成前,任何中斷請(qǐng)求都得不到響應(yīng);正在執(zhí)行的指令是返回指令或者對(duì)專(zhuān)用寄存器IE、

19、IP進(jìn)行讀寫(xiě)的指令,此時(shí),在執(zhí)行RETI或者讀寫(xiě)IE或IP之后,不會(huì)馬上響應(yīng)中斷請(qǐng)求,至少再執(zhí)行一條其他指令之后才會(huì)響應(yīng)。若存在上述任何一種情況,中斷查詢(xún)結(jié)果就被丟棄,否則,在緊接著的下一個(gè)機(jī)器周期,就會(huì)響應(yīng)中斷。在每個(gè)機(jī)器周期的S5P2期間,CPU對(duì)各中斷源采樣,并設(shè)置相應(yīng)的中斷標(biāo)志位。CPU在下一個(gè)機(jī)器周期S6期間按優(yōu)先級(jí)順序查詢(xún)各中斷標(biāo)志,如查詢(xún)到某個(gè)中斷標(biāo)志為1,將在再下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。中斷查詢(xún)?cè)诿總€(gè)機(jī)器周期中反復(fù)執(zhí)行,如果中斷響應(yīng)的基本條件已滿(mǎn)足,但由于上述三條之一而未被及時(shí)響應(yīng),待上述封鎖條件被撤銷(xiāo)之后,中斷標(biāo)志卻也已消失了,則這次中斷申請(qǐng)就不會(huì)再被響應(yīng)。

20、編輯課件ppt175.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)2、中斷響應(yīng)過(guò)程 如果中斷響應(yīng)條件滿(mǎn)足,且不存在中斷受阻的情況,則CPU將響應(yīng)中斷。此時(shí),中斷系統(tǒng)通過(guò)硬件生成長(zhǎng)調(diào)用指令(LCALL),此指令將自動(dòng)把斷點(diǎn)地址壓入堆棧保護(hù)起來(lái)(但不保護(hù)狀態(tài)字寄存器PSW及其他寄存器內(nèi)容),然后將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址,執(zhí)行中斷服務(wù)程序。 在80C51單片機(jī)中各中斷源及與之對(duì)應(yīng)的入口地址分配如下:表5-2 各中斷源及與之對(duì)應(yīng)的入口地址0023H串行口中斷001BH定時(shí)器T1中斷0013H外部中斷1000BH定時(shí)器T0中斷0003

21、H外部中斷0入口地址入口地址中斷源中斷源0023H串行口中斷001BH定時(shí)器T1中斷0013H外部中斷1000BH定時(shí)器T0中斷0003H外部中斷0入口地址入口地址中斷源中斷源編輯課件ppt185.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)3、中斷響應(yīng)的時(shí)間所謂中斷響應(yīng)時(shí)間,是從查詢(xún)到中斷請(qǐng)求標(biāo)志位開(kāi)始到轉(zhuǎn)向中斷入口地址所需的機(jī)器周期數(shù)。80C51單片機(jī)的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期。其中中斷請(qǐng)求標(biāo)志位查詢(xún)占一個(gè)機(jī)器周期,而這個(gè)機(jī)器周期又恰好是執(zhí)行指令的最后一個(gè)機(jī)器周期,在這個(gè)機(jī)器周期結(jié)束后,中斷即被響應(yīng),產(chǎn)生LCALL指令。而執(zhí)行這條長(zhǎng)調(diào)用指令需要兩個(gè)機(jī)器周期,

22、這樣中斷響應(yīng)共經(jīng)歷了3個(gè)機(jī)器周期。 若中斷響應(yīng)被前面所述的3個(gè)情況所封鎖,將需要更長(zhǎng)的響應(yīng)時(shí)間。若中斷標(biāo)志查詢(xún)時(shí),剛好開(kāi)始執(zhí)行RET、RETI或訪問(wèn)IE、IP的指令,則需要把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能進(jìn)行中斷響應(yīng)。執(zhí)行RET、RETI或訪問(wèn)IE、IP指令最長(zhǎng)需要兩個(gè)機(jī)器周期。而如果繼續(xù)執(zhí)行的那條指令恰好是MUL(乘)或DIV(除)指令,則又需要4個(gè)機(jī)器周期,再加上執(zhí)行長(zhǎng)調(diào)用LCALL所需要的兩個(gè)機(jī)器周期,從而形成了8個(gè)機(jī)器周期的最長(zhǎng)響應(yīng)時(shí)間。一般情況下,外中斷響應(yīng)時(shí)間都是大于3個(gè)機(jī)器周期而小于8個(gè)機(jī)器周期。當(dāng)然,如果出現(xiàn)同級(jí)或高級(jí)中斷正在響應(yīng)或服務(wù)中需等待的時(shí)候,那么響應(yīng)時(shí)間就無(wú)

23、法計(jì)算了。編輯課件ppt195.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.2 5.2.2 中斷處理中斷處理 3、中斷響應(yīng)的時(shí)間中斷服務(wù)程序從入口地址開(kāi)始執(zhí)行,直至遇到指令“RETI”為止,這個(gè)過(guò)程稱(chēng)為中斷處理(又稱(chēng)中斷服務(wù))。中斷處理過(guò)程一般包括兩部分內(nèi)容,一是保護(hù)現(xiàn)場(chǎng),二是處理中斷源的請(qǐng)求。 在編寫(xiě)中斷服務(wù)程序時(shí)還需注意以下幾點(diǎn):(1)因?yàn)楦髦袛嗳肟诘刂分g,只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是容納不下的,因而最常用的方法是在中斷入口地址單元處存放一條無(wú)條件轉(zhuǎn)移指令,這樣可使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。(2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷源中斷,要先

24、用軟件關(guān)閉CPU中斷,或禁止更高級(jí)中斷源的中斷,而在中斷返回前再開(kāi)放中斷。(3)在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí),為了不使現(xiàn)場(chǎng)數(shù)據(jù)受到破壞或者造成混亂,一般規(guī)定在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí),CPU不響應(yīng)新的中斷請(qǐng)求。這就要求在編寫(xiě)中斷服務(wù)程序時(shí),注意在保護(hù)現(xiàn)場(chǎng)之前要關(guān)中斷,在恢復(fù)現(xiàn)場(chǎng)之后開(kāi)中斷。編輯課件ppt205.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.3 5.2.3 中斷返回中斷返回 中斷返回是指中斷處理完成后,計(jì)算機(jī)返回到斷點(diǎn),繼續(xù)執(zhí)行被中斷的主程序。中斷返回由專(zhuān)門(mén)的中斷返回指令RETI來(lái)實(shí)現(xiàn),該指令的功能是把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先

25、級(jí)狀態(tài)觸發(fā)器。特別要注意不能用“RET”指令代替“RETI”指令。編輯課件ppt215.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.2.4 5.2.4 中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 CPU響應(yīng)某中斷請(qǐng)求后,TCON或SCON中的中斷請(qǐng)求標(biāo)志應(yīng)及時(shí)清除,否則會(huì)引起另一次中斷。1.對(duì)于定時(shí)器溢出中斷,CPU在響應(yīng)中斷后,就用硬件清除了有關(guān)的中斷請(qǐng)求標(biāo)志TF0或TF1,即中斷請(qǐng)求是自動(dòng)撤除的,無(wú)需編程人員處理。 2.對(duì)于外部中斷請(qǐng)求的撤除分兩種方式:邊沿觸發(fā)的外部中斷,CPU在響應(yīng)中斷后,也是用硬件自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)志IE0或IE1,即中斷請(qǐng)求也是自動(dòng)撤除的,無(wú)需編程人員處理。 對(duì)于電平觸發(fā)的外

26、部中斷,CPU響應(yīng)中斷后,雖然也是由硬件自動(dòng)清除中斷申請(qǐng)標(biāo)志IE0或IE1,但并不能徹底解決中斷請(qǐng)求的撤除問(wèn)題。因?yàn)楸M管中斷標(biāo)志清除了,但是 或 引腳上的低電平信號(hào)可能會(huì)保持較長(zhǎng)的時(shí)間,在下一個(gè)機(jī)器周期又會(huì)使IE0或IE1重新置1。為此應(yīng)該在外部中斷請(qǐng)求信號(hào)接到 或 引腳的連接電路上采取措施,才能及時(shí)撤除中斷請(qǐng)求信號(hào)(見(jiàn)例5-3)。3.對(duì)于串行口中斷,CPU響應(yīng)中斷后,沒(méi)有用硬件清除TI、RI,故這些中斷不能自動(dòng)撤除,編程人員必須在中斷服務(wù)程序中用軟件來(lái)清除。編輯課件ppt225.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 【例5-3】單

27、個(gè)外部中斷源示例。圖5-3為采用單個(gè)外部中斷源的數(shù)據(jù)采集系統(tǒng)示意圖。將P1口設(shè)置成數(shù)據(jù)輸入口,外圍設(shè)備每準(zhǔn)備好一個(gè)數(shù)據(jù)時(shí),發(fā)出一個(gè)選通信號(hào)(正脈沖)給CP,根據(jù)真值表5-3可知,Q端將置高電平1, 端將向 輸入一個(gè)低電平中斷請(qǐng)求信號(hào),并且D觸發(fā)器將鎖存該信號(hào)。如前所述,采用電平觸發(fā)方式時(shí),外部中斷請(qǐng)求標(biāo)志IE0(或IE1)在CPU響應(yīng)中斷時(shí)隨然能被硬件自動(dòng)清除,但為防止引起多次中斷,必須要用硬件撤除輸入到 引腳的低電平。撤除 引腳電平的方法是將P3.0線(xiàn)與D觸發(fā)器復(fù)位端 相連,只要在中斷服務(wù)程序中,自P3.0輸出一個(gè)負(fù)脈沖,就能使D觸發(fā)器Q端復(fù)位、 端置1,即 引腳將被接入高電平,從而徹底清除

28、IE0標(biāo)志。編輯課件ppt235.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 編輯課件ppt245.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例程序如下:程序如下: ORG 0000HSTART: LJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 0003H LJMP INT0 ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0200H ;主程序MAIN: CLR IT0 ;設(shè) 為電平觸發(fā)方式 SETB EA ;CPU開(kāi)放中斷 SETB EX0 ;允許 中斷 MOV DPTR,#1000H ;設(shè)置數(shù)據(jù)區(qū)地址指針

29、 ORG 0200H ; 中斷服務(wù)程序INT0: PUSH PSW ;保護(hù)現(xiàn)場(chǎng)編輯課件ppt255.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 PUSH ACC CLR P3.0 ;由P3.0輸出0 NOP NOP SETB P30 ;由P3.0輸出負(fù)脈沖,撤除 MOV P1,#0FFH ;將P1引腳作為數(shù)據(jù)輸入端的 準(zhǔn)備工作 MOV A,P1 ;輸入數(shù)據(jù) MOVX DPTR,A ;存入數(shù)據(jù)存儲(chǔ)器INC DPTR ;修改數(shù)據(jù)指針,指向下一個(gè)單元 POP ACC ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回編輯課件ppt265.2 5.

30、2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例【例5-4】出租車(chē)計(jì)價(jià)器計(jì)程方法是車(chē)輪每運(yùn)轉(zhuǎn)一圈產(chǎn)生一個(gè)負(fù)脈沖,從外中斷INT0引腳輸入,行駛里程為輪胎周長(zhǎng)運(yùn)轉(zhuǎn)圈數(shù),設(shè)輪胎周長(zhǎng)為2m,試編程實(shí)時(shí)計(jì)算出租車(chē)行駛里程,數(shù)據(jù)存入32H、31H、30H中。 解:編程如下: ORG 0000H ;復(fù)位地址 LJMP START ;轉(zhuǎn)初始化 ORG 0003H ;中斷入口地址 LJMP INT0 ;轉(zhuǎn)中斷服務(wù)程序 ORG 0100H ;初始化程序首地址START: MOV SP,#60H ;置堆棧指針 SETB IT0 ;置邊沿觸發(fā)方式 MOV IP,#01H ;

31、置高優(yōu)先級(jí) MOV IE,#81H ;開(kāi)中斷 MOV 30H,#0 ;里程計(jì)數(shù)器清0 MOV 31H,#0 MOV 32H,#0 編輯課件ppt275.2 5.2 中斷處理過(guò)程中斷處理過(guò)程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 LJMP MAIN ;轉(zhuǎn)主程序,并等待中斷 ORG 0200H ;中斷服務(wù)子程序首地址INT0: PUSH Acc ;保護(hù)現(xiàn)場(chǎng)PUSH PSWMOV A,30H ;讀低8位計(jì)數(shù)器ADD A,#2 ;低8位計(jì)數(shù)器加2mMOV 30H,A ;回存CLR A ADDC A,31H ;中8位計(jì)數(shù)器加進(jìn)位MOV 31H,A ;回存CLR A ADDC A,32H ;高8位計(jì)數(shù)器加進(jìn)位MOV 32H,A ;回存 PUSH PSW ;恢復(fù)現(xiàn)場(chǎng)PUSH Acc

溫馨提示

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

評(píng)論

0/150

提交評(píng)論