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

下載本文檔

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

文檔簡介

1、第第4章章 MCS-51的中斷系統(tǒng)的中斷系統(tǒng) 4.1 中斷的概念中斷的概念 CPU正在執(zhí)行主程序時,單片機(jī)外部或內(nèi)部發(fā)生正在執(zhí)行主程序時,單片機(jī)外部或內(nèi)部發(fā)生的某一事件(如外部設(shè)備產(chǎn)生的一個電平的變化,一的某一事件(如外部設(shè)備產(chǎn)生的一個電平的變化,一個脈沖沿的發(fā)生或內(nèi)部計(jì)數(shù)器的計(jì)數(shù)溢出等)請求個脈沖沿的發(fā)生或內(nèi)部計(jì)數(shù)器的計(jì)數(shù)溢出等)請求CPU迅速去處理,于是,迅速去處理,于是,CPU暫時中止當(dāng)前的工作,暫時中止當(dāng)前的工作,轉(zhuǎn)到中斷服務(wù)處理程序處理所發(fā)生的事件。中斷服務(wù)轉(zhuǎn)到中斷服務(wù)處理程序處理所發(fā)生的事件。中斷服務(wù)處理程序處理完該事件后,再回到原來被中止的地方,處理程序處理完該事件后,再回到原來

2、被中止的地方,繼續(xù)原來的工作(例如,繼續(xù)執(zhí)行被中斷的主程序),繼續(xù)原來的工作(例如,繼續(xù)執(zhí)行被中斷的主程序),這稱為這稱為中斷。中斷。 CPU處理事件的過程,稱為處理事件的過程,稱為CPU的的中斷響應(yīng)過中斷響應(yīng)過程程 。對事件的整個處理過程,稱為對事件的整個處理過程,稱為中斷處理(或中中斷處理(或中斷服務(wù))。斷服務(wù))。 能夠?qū)崿F(xiàn)中斷處理功能的部件稱為能夠?qū)崿F(xiàn)中斷處理功能的部件稱為中斷系統(tǒng)中斷系統(tǒng);產(chǎn)生中斷的請求源稱為產(chǎn)生中斷的請求源稱為中斷請求源。中斷請求源。 中斷源向中斷源向CPU提出的處理請求,稱為提出的處理請求,稱為中斷請求中斷請求(或中斷申請或中斷申請)。保護(hù)現(xiàn)場保護(hù)現(xiàn)場恢復(fù)現(xiàn)場恢復(fù)現(xiàn)

3、場 中斷返回中斷返回 中斷方式的優(yōu)點(diǎn):可大幅度提高中斷方式的優(yōu)點(diǎn):可大幅度提高CPU的工作效率。的工作效率。 4.2 MCS-51中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) 5個中斷請求源,兩個中斷優(yōu)先級,可兩級嵌套。個中斷請求源,兩個中斷優(yōu)先級,可兩級嵌套。4.3 中斷請求源中斷請求源五個中斷請求源五個中斷請求源 :(1)/INT0外部中斷請求外部中斷請求0,由引腳,由引腳/INT0輸入,中輸入,中斷請求標(biāo)志為斷請求標(biāo)志為IE0。(2)/INT1外部中斷請求外部中斷請求1,由引腳,由引腳/INT1輸入,中輸入,中斷請求標(biāo)志為斷請求標(biāo)志為IE1(3)定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T0溢出中斷請求,中斷請求標(biāo)志溢

4、出中斷請求,中斷請求標(biāo)志為為TF0。(4)定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T1溢出中斷請求,中斷請求標(biāo)志溢出中斷請求,中斷請求標(biāo)志為為TF1。(5)串行口中斷請求,中斷請求標(biāo)志為串行口中斷請求,中斷請求標(biāo)志為TI或或RI。 標(biāo)志位分別由特殊功能寄存器標(biāo)志位分別由特殊功能寄存器TCON和和SCON的的相應(yīng)位鎖存。相應(yīng)位鎖存。 TCON為定時器為定時器/計(jì)數(shù)器的控制寄存器,計(jì)數(shù)器的控制寄存器,字節(jié)地址為字節(jié)地址為88H,可位尋址??晌粚ぶ贰?該寄存器中既有定時器該寄存器中既有定時器/計(jì)數(shù)器計(jì)數(shù)器T0和和T1的的溢出中斷請求標(biāo)志位溢出中斷請求標(biāo)志位TF1和和TF0,也包括了有也包括了有關(guān)外部中斷請求標(biāo)志位

5、關(guān)外部中斷請求標(biāo)志位IE1與與IE0。各標(biāo)志位的功能如下:各標(biāo)志位的功能如下: (1)IT0選擇外部中斷請求選擇外部中斷請求0為跳沿觸發(fā)方式為跳沿觸發(fā)方式還是電平觸發(fā)方式:還是電平觸發(fā)方式: IT0=0,電平觸發(fā)方式電平觸發(fā)方式,加到引腳,加到引腳/INT0上的上的外部中斷請求輸入信號為低電平有效。外部中斷請求輸入信號為低電平有效。 IT0=1,邊沿觸發(fā)方式邊沿觸發(fā)方式,加到引腳,加到引腳/INT0上的上的外部中斷請求輸入信號由高電平到低電平的負(fù)外部中斷請求輸入信號由高電平到低電平的負(fù)跳變有效。跳變有效。 可由軟件置可由軟件置“1”或清或清“0”。(2)IE0外部中斷請求外部中斷請求0的中斷請

6、求標(biāo)志位。的中斷請求標(biāo)志位。 當(dāng)當(dāng)IT0=0,電平觸發(fā)方式,電平觸發(fā)方式,CPU在每個機(jī)器在每個機(jī)器周期的周期的S5P2采樣采樣/INT0引腳,若為低,則置引腳,若為低,則置“1”IE0,說明有中斷請求,否則清說明有中斷請求,否則清“0”IE0。 當(dāng)當(dāng)IT0=1,即外部中斷請求即外部中斷請求0設(shè)置為邊沿觸發(fā)設(shè)置為邊沿觸發(fā)方式時,當(dāng)?shù)谝粋€機(jī)器周期采樣到方式時,當(dāng)?shù)谝粋€機(jī)器周期采樣到/INT0引腳引腳為高電平,而第二個機(jī)器周期采樣到為高電平,而第二個機(jī)器周期采樣到/INT0引引腳為低電平時,則置腳為低電平時,則置“1”IE0。IE0=1,表示表示外部中斷外部中斷0正在向正在向CPU請求中斷。當(dāng)請求

7、中斷。當(dāng)CPU響應(yīng)響應(yīng)該中斷,轉(zhuǎn)向中斷服務(wù)程序時,由硬件清該中斷,轉(zhuǎn)向中斷服務(wù)程序時,由硬件清“0”IE0。(3)IT1選擇外部中斷請求選擇外部中斷請求1為跳沿觸發(fā)方為跳沿觸發(fā)方式還是電平觸發(fā)方式,其意義與式還是電平觸發(fā)方式,其意義與IT0類似。類似。(4)IE1外部中斷請求外部中斷請求1的中斷請求標(biāo)志位,的中斷請求標(biāo)志位,其意義與其意義與IE0類似。類似。(5)TF0MCS-51片內(nèi)定時器片內(nèi)定時器/計(jì)數(shù)器計(jì)數(shù)器T0溢出溢出中斷請求標(biāo)志位。中斷請求標(biāo)志位。 當(dāng)啟動當(dāng)啟動T0計(jì)數(shù)后,定時器計(jì)數(shù)后,定時器/計(jì)數(shù)器計(jì)數(shù)器T0從初從初值開始加值開始加1計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時,由硬計(jì)數(shù),當(dāng)最高位產(chǎn)生

8、溢出時,由硬件置件置“1”TF0,向向CPU申請中斷,申請中斷,CPU響應(yīng)響應(yīng)TF0中斷時,清中斷時,清“0”TF0,TF0也可由軟件也可由軟件清清0。(6)TF1MCS-51片內(nèi)的定時器片內(nèi)的定時器/計(jì)數(shù)器計(jì)數(shù)器T1的的 溢出中斷請求標(biāo)志位,功能和溢出中斷請求標(biāo)志位,功能和TF0類似。類似。 TR1(D6位)、位)、TR0(D4位)這位)這2個位與中個位與中斷無關(guān)。斷無關(guān)。 當(dāng)當(dāng)MCS-51復(fù)位后,復(fù)位后,TCON被清被清0。 SCON為串行口控制寄存器,字節(jié)地址為串行口控制寄存器,字節(jié)地址為為98H,可位尋址??晌粚ぶ?。SCON的低二位鎖存串行的低二位鎖存串行口的發(fā)送中斷和接收中斷的中斷請

9、求標(biāo)志口的發(fā)送中斷和接收中斷的中斷請求標(biāo)志TI和和RI (1)TI發(fā)送中斷請求標(biāo)志位。發(fā)送中斷請求標(biāo)志位。CPU將一個字將一個字節(jié)的數(shù)據(jù)寫入發(fā)送緩沖器節(jié)的數(shù)據(jù)寫入發(fā)送緩沖器SBUF時,就啟動一幀時,就啟動一幀串行數(shù)據(jù)的發(fā)送,每發(fā)送完一幀串行數(shù)據(jù)后,串行數(shù)據(jù)的發(fā)送,每發(fā)送完一幀串行數(shù)據(jù)后,硬件自動置硬件自動置“1”TI。必須在中斷服務(wù)程序中用必須在中斷服務(wù)程序中用軟件對軟件對TI標(biāo)志清標(biāo)志清“0”。 (2)RI接收中斷請求標(biāo)志位。在串行口接收接收中斷請求標(biāo)志位。在串行口接收完一個串行數(shù)據(jù)幀,硬件自動置完一個串行數(shù)據(jù)幀,硬件自動置“1”RI標(biāo)志。標(biāo)志。RI標(biāo)志,必須在中斷服務(wù)程序中用軟件清標(biāo)志,必

10、須在中斷服務(wù)程序中用軟件清“0”。4.4 中斷控制中斷控制 4.4.1 中斷允許寄存器中斷允許寄存器IE CPU對中斷源的開放或屏蔽,由片內(nèi)的對中斷源的開放或屏蔽,由片內(nèi)的中斷允許寄存器中斷允許寄存器IE控制??刂?。IE的字節(jié)地址為的字節(jié)地址為A8H,可進(jìn)行位尋址??蛇M(jìn)行位尋址。 IE對中斷的開放和關(guān)閉實(shí)現(xiàn)對中斷的開放和關(guān)閉實(shí)現(xiàn)兩級控制。兩級控制。 總的開關(guān)中斷控制位總的開關(guān)中斷控制位EA(IE.7位),當(dāng)位),當(dāng)EA=0時,時,所有的中斷請求被屏蔽。所有的中斷請求被屏蔽。 當(dāng)當(dāng)EA=1時,時,CPU開放中斷,但五個中斷源的中斷開放中斷,但五個中斷源的中斷請求是否允許,還要由請求是否允許,還要

11、由IE中的低中的低5位所對應(yīng)的位所對應(yīng)的5個中斷個中斷請求允許控制位的狀態(tài)來決定。請求允許控制位的狀態(tài)來決定。 IE中各位的功能:中各位的功能: (1)EA:中斷允許總控制位中斷允許總控制位0:CPU屏蔽所有的中斷請求屏蔽所有的中斷請求(CPU關(guān)中斷關(guān)中斷);1:CPU開放所有中斷開放所有中斷(CPU開中斷開中斷)。(2)ES:串行口中斷允許位串行口中斷允許位0:禁止串行口中斷;禁止串行口中斷;1:允許串行口中斷。允許串行口中斷。(3)ET1:定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T1的溢出中斷允許位的溢出中斷允許位0:禁止禁止T1溢出中斷;溢出中斷;1:允許允許T1溢出中斷。溢出中斷。(4)EX1:外部

12、中斷外部中斷1中斷允許位中斷允許位0:禁止外部中斷禁止外部中斷1中斷;中斷;1:允許外部中斷允許外部中斷1中斷。中斷。(5)ET0:定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T0的溢出中斷允許位的溢出中斷允許位0:禁止禁止T0溢出中斷;溢出中斷;1:允許允許T0溢出中斷。溢出中斷。(6)EX0:外部中斷外部中斷0中斷允許位。中斷允許位。0:禁止外部中斷禁止外部中斷0中斷;中斷;1:允許外部中斷允許外部中斷0中斷。中斷。 MCS-51復(fù)位以后,復(fù)位以后,IE被清被清0,所有的中斷請求被禁,所有的中斷請求被禁止。止。 若允許某一個中斷源中斷,除了若允許某一個中斷源中斷,除了IE相應(yīng)的位被置相應(yīng)的位被置“1”外,還

13、必須使外,還必須使EA=1,即,即CPU開放中斷。改變開放中斷。改變IE的內(nèi)容,可由位操作指令來實(shí)現(xiàn),即的內(nèi)容,可由位操作指令來實(shí)現(xiàn),即SETB bit; CLR bit。 例例4-1 若允許片內(nèi)若允許片內(nèi)2個定時器個定時器/計(jì)數(shù)器中斷,禁止其它計(jì)數(shù)器中斷,禁止其它中斷源的中斷請求。中斷源的中斷請求。 (1)用位操作指令來編寫如下程序段:)用位操作指令來編寫如下程序段:CLR ES ;禁止串行口中斷;禁止串行口中斷 CLR EX1 ;禁止外部中斷禁止外部中斷1中斷中斷CLR EX0 ;禁止外部中斷禁止外部中斷0中斷中斷 SETB ET0 ;允許定時器允許定時器/計(jì)數(shù)器計(jì)數(shù)器T0中斷中斷 SET

14、B ET1 ;允許定時器允許定時器/計(jì)數(shù)器計(jì)數(shù)器T1中斷中斷 SETB EA ;CPU開中斷開中斷(2)用字節(jié)操作指令來編寫:)用字節(jié)操作指令來編寫: MOV IE,#8AH 或者用:或者用: MOV 0A8H,#8AH ;A8H為為IE寄存器字節(jié)地址寄存器字節(jié)地址 4.4.2 中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP MCS-51有兩個中斷優(yōu)先級有兩個中斷優(yōu)先級 ,可實(shí)現(xiàn)兩級中可實(shí)現(xiàn)兩級中斷嵌套。就是斷嵌套。就是CPU正在執(zhí)行低優(yōu)先級中斷的正在執(zhí)行低優(yōu)先級中斷的服務(wù)程序時,可被高優(yōu)先級中斷請求所中斷,服務(wù)程序時,可被高優(yōu)先級中斷請求所中斷,去執(zhí)行高優(yōu)先級中斷服務(wù)程序,待高優(yōu)先級去執(zhí)行高優(yōu)先級中斷

15、服務(wù)程序,待高優(yōu)先級中斷處理完畢后,再返回低優(yōu)先級中斷服務(wù)中斷處理完畢后,再返回低優(yōu)先級中斷服務(wù)程序。程序。 一個正在執(zhí)行的低優(yōu)先級中斷程序能被高優(yōu)先級一個正在執(zhí)行的低優(yōu)先級中斷程序能被高優(yōu)先級的中斷源所中斷,但不能被另一個低優(yōu)先級的中斷源的中斷源所中斷,但不能被另一個低優(yōu)先級的中斷源所中斷。若所中斷。若CPU正在執(zhí)行高優(yōu)先級的中斷,則不能被正在執(zhí)行高優(yōu)先級的中斷,則不能被任何中斷源所中斷。任何中斷源所中斷。 中斷響應(yīng)基本規(guī)則:中斷響應(yīng)基本規(guī)則: (1)低優(yōu)先級可被高優(yōu)先級中斷,反之則不能。)低優(yōu)先級可被高優(yōu)先級中斷,反之則不能。(2)任何一種中斷(不管是高級還是低級),一旦得)任何一種中斷(

16、不管是高級還是低級),一旦得到響應(yīng),不會再被它的同級中斷源所中斷。到響應(yīng),不會再被它的同級中斷源所中斷。 某一中斷源被設(shè)置為高優(yōu)先級中斷,則不能被任何某一中斷源被設(shè)置為高優(yōu)先級中斷,則不能被任何其它的中斷源的中斷請求所中斷。其它的中斷源的中斷請求所中斷。中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP,其字節(jié)地址為其字節(jié)地址為B8H,可位尋址。可位尋址。IP各個位的含義:各個位的含義:(1)PS串行口中斷優(yōu)先級控制位串行口中斷優(yōu)先級控制位1:高優(yōu)先級中斷;高優(yōu)先級中斷;0:低優(yōu)先級中斷。低優(yōu)先級中斷。(2)PT1定時器定時器T1中斷優(yōu)先級控制位中斷優(yōu)先級控制位1:高優(yōu)先級中斷;高優(yōu)先級中斷;0:低優(yōu)先級中

17、斷。低優(yōu)先級中斷。(3)PX1外部中斷外部中斷1中斷優(yōu)先級控制位中斷優(yōu)先級控制位1:高優(yōu)先級中斷;高優(yōu)先級中斷;0:低優(yōu)先級中斷。低優(yōu)先級中斷。(4)PT0定時器定時器T0中斷優(yōu)先級控制位中斷優(yōu)先級控制位1:高優(yōu)先級中斷;高優(yōu)先級中斷;0:低優(yōu)先級中斷。低優(yōu)先級中斷。(5)PX0外部中斷外部中斷0中斷優(yōu)先級控制位中斷優(yōu)先級控制位1:高優(yōu)先級中斷;高優(yōu)先級中斷;0:低優(yōu)先級中斷。低優(yōu)先級中斷。 IP中的各位可由用戶程序置中的各位可由用戶程序置“1”和清和清“0”,以改變各中斷源的中斷優(yōu)先級。以改變各中斷源的中斷優(yōu)先級。 MCS-51的中斷優(yōu)先級結(jié)構(gòu)。中斷系統(tǒng)有兩個的中斷優(yōu)先級結(jié)構(gòu)。中斷系統(tǒng)有兩個

18、不可尋址的不可尋址的“優(yōu)先級激活觸發(fā)器優(yōu)先級激活觸發(fā)器”。其中一個指示。其中一個指示某高優(yōu)先級的中斷正在執(zhí)行,所有后來的中斷均被某高優(yōu)先級的中斷正在執(zhí)行,所有后來的中斷均被阻止。另一個觸發(fā)器指示某低優(yōu)先級的中斷正在執(zhí)阻止。另一個觸發(fā)器指示某低優(yōu)先級的中斷正在執(zhí)行,所有同級的中斷都被阻止,但不阻斷高優(yōu)先級行,所有同級的中斷都被阻止,但不阻斷高優(yōu)先級的中斷請求。的中斷請求。 在同時收到幾個同一優(yōu)先級的中斷請求時,哪在同時收到幾個同一優(yōu)先級的中斷請求時,哪一個中斷請求能優(yōu)先得到響應(yīng),取決于內(nèi)部的查詢一個中斷請求能優(yōu)先得到響應(yīng),取決于內(nèi)部的查詢順序。這相當(dāng)于在同一個優(yōu)先級內(nèi),還同時存在另順序。這相當(dāng)于

19、在同一個優(yōu)先級內(nèi),還同時存在另一個輔助優(yōu)先級結(jié)構(gòu)一個輔助優(yōu)先級結(jié)構(gòu)。 中斷源中斷源 中斷級別中斷級別外部中斷外部中斷0 最高最高T0溢出中斷溢出中斷外部中斷外部中斷1T1溢出中斷溢出中斷串行口中斷串行口中斷最低最低 例例4-2 設(shè)置設(shè)置IP寄存器的初始值,使得寄存器的初始值,使得MCS-51的的2個外中斷請求為高優(yōu)先級,其它中斷請求個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。為低優(yōu)先級。(1)用位操作指令)用位操作指令 SETB PX0 ;2個外中斷為高優(yōu)先級個外中斷為高優(yōu)先級 SETB PX1 CLR PS ; 串行口、串行口、 CLR PT0 ; 2個定時器個定時器/計(jì)數(shù)器計(jì)數(shù)器 CL

20、R PT1 ;為低優(yōu)先級中斷;為低優(yōu)先級中斷(2)用字節(jié)操作指令用字節(jié)操作指令 MOV IP,#05H4.5 響應(yīng)中斷請求的條件及中斷的響應(yīng)過程響應(yīng)中斷請求的條件及中斷的響應(yīng)過程 一個中斷請求被響應(yīng)需滿足以下必要條件:一個中斷請求被響應(yīng)需滿足以下必要條件:(1)CPU開中斷,即開中斷,即IE寄存器中的中斷總允許寄存器中的中斷總允許位位EA=1。(2)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中斷請求標(biāo)志為的中斷請求標(biāo)志為“1”。 (3)該中斷源的中斷允許位)該中斷源的中斷允許位=1,即該中斷沒有,即該中斷沒有被屏蔽。被屏蔽。 中斷響應(yīng)就是中斷響應(yīng)就是CPU對中斷

21、源提出的中斷請求對中斷源提出的中斷請求的接受。當(dāng)?shù)慕邮?。?dāng)CPU查詢到有效的中斷請求時,在查詢到有效的中斷請求時,在滿足上述條件時,緊接著就進(jìn)行中斷響應(yīng)。滿足上述條件時,緊接著就進(jìn)行中斷響應(yīng)。 如果遇到下列三種情況之一時,中斷響應(yīng)被封鎖:如果遇到下列三種情況之一時,中斷響應(yīng)被封鎖: (1)CPU正在處理同級的或更高優(yōu)先級的中斷。正在處理同級的或更高優(yōu)先級的中斷。 (2)所查詢的機(jī)器周期不是所當(dāng)前正在執(zhí)行指令的)所查詢的機(jī)器周期不是所當(dāng)前正在執(zhí)行指令的最后一個機(jī)器周期。只有在當(dāng)前指令執(zhí)行完畢后,最后一個機(jī)器周期。只有在當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng)。才能進(jìn)行中斷響應(yīng)。 (3)正在執(zhí)行的指令

22、是)正在執(zhí)行的指令是RETI或是訪問或是訪問IE或或IP的指令。的指令。按按MCS-51中斷系統(tǒng)特性的規(guī)定,在執(zhí)行完這些指令中斷系統(tǒng)特性的規(guī)定,在執(zhí)行完這些指令后,需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷后,需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。請求。 如果存在上述三種情況之一,如果存在上述三種情況之一,CPU將丟棄中斷查將丟棄中斷查詢結(jié)果,不能對中斷進(jìn)行響應(yīng)。詢結(jié)果,不能對中斷進(jìn)行響應(yīng)。 中斷響應(yīng)的主要過程中斷響應(yīng)的主要過程 : 置相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器(指示優(yōu)先級別)置相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器(指示優(yōu)先級別) 執(zhí)行硬件子程序調(diào)用指令,中斷源申請標(biāo)志清零(執(zhí)行硬件子程序調(diào)用指令,中斷源

23、申請標(biāo)志清零(TI和和RI除除外)。外)。 首先將首先將PC的內(nèi)容壓入堆棧以保護(hù)斷點(diǎn),再將中斷入口地址的內(nèi)容壓入堆棧以保護(hù)斷點(diǎn),再將中斷入口地址裝入裝入PC。各中斷源服務(wù)程序的入口地址是固定的。各中斷源服務(wù)程序的入口地址是固定的。 中斷源中斷源 入口地址入口地址 外部中斷外部中斷0 0003H 定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T0 000BH外部中斷外部中斷1 0013H 定時器定時器/計(jì)數(shù)器計(jì)數(shù)器T1 001BH串行口中斷串行口中斷 0023H執(zhí)行中斷服務(wù)程序直到執(zhí)行中斷服務(wù)程序直到RETI指令為止。指令為止。執(zhí)行執(zhí)行RETI指令,把響應(yīng)中斷時所置位的優(yōu)先級狀態(tài)指令,把響應(yīng)中斷時所置位的優(yōu)先級狀態(tài)

24、觸發(fā)器清觸發(fā)器清0,然后從堆棧中彈出頂上的兩個字節(jié)送到,然后從堆棧中彈出頂上的兩個字節(jié)送到程序計(jì)數(shù)器程序計(jì)數(shù)器PC,CPU從原來中斷處重新執(zhí)行被中斷從原來中斷處重新執(zhí)行被中斷的程序。的程序。 中斷服務(wù)程序的最后一條指令一定要是中斷服務(wù)程序的最后一條指令一定要是RETI指令。指令。4.6 外部中斷的響應(yīng)時間外部中斷的響應(yīng)時間 外部中斷的最短的響應(yīng)時間為外部中斷的最短的響應(yīng)時間為3個機(jī)器周個機(jī)器周期,最長時間為期,最長時間為8個機(jī)器周期。個機(jī)器周期。 (1)中斷請求標(biāo)志位查詢占)中斷請求標(biāo)志位查詢占1個機(jī)器周期個機(jī)器周期 (2)執(zhí)行硬件子程序調(diào)用指令以轉(zhuǎn)移到相應(yīng))執(zhí)行硬件子程序調(diào)用指令以轉(zhuǎn)移到相應(yīng)

25、的中斷服務(wù)程序入口,則需要的中斷服務(wù)程序入口,則需要2個機(jī)器周期。個機(jī)器周期。 外部中斷響應(yīng)的最長時間為外部中斷響應(yīng)的最長時間為8個機(jī)器周期。這個機(jī)器周期。這種情況發(fā)生在種情況發(fā)生在CPU進(jìn)行中斷標(biāo)志查詢時,剛好是開進(jìn)行中斷標(biāo)志查詢時,剛好是開始執(zhí)行始執(zhí)行RETI或是訪問或是訪問IE或或IP的指令,則需把當(dāng)前指的指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷,令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷,最長需最長需2個機(jī)器周期。接著再執(zhí)行一條指令,按最長個機(jī)器周期。接著再執(zhí)行一條指令,按最長指令(乘法指令指令(乘法指令MUL和除法指令和除法指令DIV)來算,也只來算,也只有有4個

26、機(jī)器周期。加上硬件子程序調(diào)用指令個機(jī)器周期。加上硬件子程序調(diào)用指令LCALL的執(zhí)行,需要的執(zhí)行,需要2個機(jī)器周期。所以,外部中斷響應(yīng)最個機(jī)器周期。所以,外部中斷響應(yīng)最長時間為長時間為8個機(jī)器周期。個機(jī)器周期。 如果已在處理同級或更高級中斷,外部如果已在處理同級或更高級中斷,外部中斷請求的響應(yīng)時間取決于正在執(zhí)行的中斷中斷請求的響應(yīng)時間取決于正在執(zhí)行的中斷服務(wù)程序的處理時間,這種情況下,響應(yīng)時服務(wù)程序的處理時間,這種情況下,響應(yīng)時間就無法計(jì)算了。間就無法計(jì)算了。 在一個單一中斷的系統(tǒng)里,在一個單一中斷的系統(tǒng)里,MCS-51單片單片機(jī)對外部中斷請求的響應(yīng)的時間總是在機(jī)對外部中斷請求的響應(yīng)的時間總是在

27、38個機(jī)器周期之間。個機(jī)器周期之間。 4.7 外部中斷的觸發(fā)方式選擇外部中斷的觸發(fā)方式選擇 兩種觸發(fā)方式兩種觸發(fā)方式:電平觸發(fā)方式電平觸發(fā)方式和和邊沿觸發(fā)方式邊沿觸發(fā)方式。4.7.1 電平觸發(fā)方式電平觸發(fā)方式 若外中斷定義為電平觸發(fā)方式,外中斷申請觸發(fā)器若外中斷定義為電平觸發(fā)方式,外中斷申請觸發(fā)器的狀態(tài)隨著的狀態(tài)隨著CPU在每個機(jī)器周期采樣到的外部中斷輸在每個機(jī)器周期采樣到的外部中斷輸入線的電平變化而變化,這能提高響應(yīng)速度。在中斷入線的電平變化而變化,這能提高響應(yīng)速度。在中斷服務(wù)程序返回之前,外部中斷請求輸入必須無效(即服務(wù)程序返回之前,外部中斷請求輸入必須無效(即變?yōu)楦唠娖剑?,否則變?yōu)楦唠娖?/p>

28、),否則CPU返回主程序后會再次響應(yīng)中返回主程序后會再次響應(yīng)中斷。斷。 本方式適合于外中斷以低電平輸入且中斷服務(wù)程序本方式適合于外中斷以低電平輸入且中斷服務(wù)程序能清除外部中斷請求源(即外部中斷輸入電平又變?yōu)槟芮宄獠恐袛嗾埱笤矗赐獠恐袛噍斎腚娖接肿優(yōu)楦唠娖剑┑那闆r。高電平)的情況。 4.7.2 邊沿觸發(fā)方式邊沿觸發(fā)方式 相繼連續(xù)兩次采樣,一個機(jī)器周期采樣到外部相繼連續(xù)兩次采樣,一個機(jī)器周期采樣到外部中斷輸入為高,下一個機(jī)器周期采樣為低,則置中斷輸入為高,下一個機(jī)器周期采樣為低,則置“1”中斷申請觸發(fā)器,直到中斷申請觸發(fā)器,直到CPU響應(yīng)此中斷時,該標(biāo)志響應(yīng)此中斷時,該標(biāo)志才清才清0。這樣不會

29、丟失中斷,但輸入的負(fù)脈沖寬度至。這樣不會丟失中斷,但輸入的負(fù)脈沖寬度至少保持少保持12個時鐘周期(若晶振頻率為個時鐘周期(若晶振頻率為6MHz,則為則為2 S)。)。 適用于以負(fù)脈沖形式輸入的外部中斷請求。適用于以負(fù)脈沖形式輸入的外部中斷請求。4.8 多外部中斷源系統(tǒng)設(shè)計(jì)多外部中斷源系統(tǒng)設(shè)計(jì) 實(shí)際的應(yīng)用系統(tǒng)中,兩個外部中斷請求源往往不實(shí)際的應(yīng)用系統(tǒng)中,兩個外部中斷請求源往往不夠用,需對外部中斷源進(jìn)行擴(kuò)充。夠用,需對外部中斷源進(jìn)行擴(kuò)充。4.8.1 定時器定時器/計(jì)數(shù)器作為外部中斷源的使用方法計(jì)數(shù)器作為外部中斷源的使用方法 定時器定時器/計(jì)數(shù)器選擇為計(jì)數(shù)器工作模式,計(jì)數(shù)器選擇為計(jì)數(shù)器工作模式,T0 (或或T1)引腳上發(fā)生負(fù)跳變時,引腳上發(fā)生負(fù)跳變時,T0(或或T1)計(jì)數(shù)器加計(jì)數(shù)器加1,利用這個特性,可以把利用這個特性,可以把T0(或或T1)引腳作為外部中引腳作為外部中斷請求輸入引腳,而定時器斷請求輸入

溫馨提示

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

評論

0/150

提交評論