51單片機的中斷系統(tǒng)ppt課件_第1頁
51單片機的中斷系統(tǒng)ppt課件_第2頁
51單片機的中斷系統(tǒng)ppt課件_第3頁
51單片機的中斷系統(tǒng)ppt課件_第4頁
51單片機的中斷系統(tǒng)ppt課件_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、項目4 單片機的中斷系統(tǒng),嵌入式單片機方向單片機C語言程序項目設計,4.1 任務說明,本節(jié)為理論內(nèi)容,重點掌握單片機的中斷類型、控制方 式以及應用,單片機共有5個中斷源,兩級優(yōu)先級控制,在 以后的項目實踐中,我們要用到定時器中斷、外部中斷和串 行中斷。,4.2 中斷系統(tǒng)的結構 51單片機中斷系統(tǒng)的結構如圖4-1所示,5個中斷分別有5個中斷源,并提供兩個中斷優(yōu)先級控制,能夠實現(xiàn)兩級中斷服務程序的嵌套。單片機的中斷系統(tǒng)是通過4個相關的特殊功能寄存器TCON、SCON、IE和IP來進行管理的。因此用戶可以用軟件對每個中斷的開和關以及優(yōu)先級的控制。定時器控制寄存器TCON用于設定外部中斷的中斷。,串口

2、控制寄存器SCON用于保存串行口(SIO)的發(fā)送 中斷標志和接收中斷標志。中斷控制寄存器IE用于設定各 個中斷源的開放或關閉。各個中斷源的優(yōu)先級可以由中斷 優(yōu)先級寄存器IP中的相應位來確定,同一優(yōu)先級中的各中 斷源同時請求中斷時,由中斷系統(tǒng)的內(nèi)部查詢邏輯來確定 響應的順序。,圖4-1 8051單片機中斷系統(tǒng)的結構,一、中斷源 單片機5個中斷源都有自己的標志位,包括外部中斷(P3.1)引腳接受的外部中斷請求;外部中斷(P3.2)引腳接受的外部中斷請求;定時器/計數(shù)器0(T0)溢出中斷請求;定時器/計數(shù)器1(T0)溢出中斷請求;串行口完成一幀數(shù)據(jù)發(fā)送或接收中斷請求源TI或RI。,其中INT0和IN

3、T1一般稱為外部中斷,T0、T1和串行口(SIO 的TI和RI)則稱為內(nèi)部中斷。在有中斷請求時, 由相應的中斷標志位。保存其中斷請求信號,分別存放在 特殊功能寄存器TCON和SCON中增強型的51單片機,則比51 單片機多一個中斷源T2。 二、中斷優(yōu)先級 51單片機的中斷系統(tǒng)具有兩級優(yōu)先級控制,系統(tǒng)在處 理時遵循下列基本原則:,1)低優(yōu)先級的中斷源可被高優(yōu)先級的中斷源中斷,號的有效形式及保存定時/計數(shù)器T0和T1的中斷請求標志位。而高優(yōu)先級中斷源不能被低級的中斷源所中斷; 2)一種中斷源(無論是高優(yōu)先級或低優(yōu)先級)一旦得到響應,就不會被同級的中斷源所中斷; 3)低優(yōu)先級的中斷源和高優(yōu)先級的中斷

4、源同時產(chǎn)生中斷請求時,系統(tǒng)先響應高優(yōu)先級的中斷請求,后響應低優(yōu)先級的中斷請求;,表4-1 中斷入口地址及優(yōu)先級排列表,4)多個同級的中斷源同時產(chǎn)生中斷請求時,系統(tǒng)按照默 認的順序先后予以響應,5個中斷默認優(yōu)先級見表4-1。,三、中斷系統(tǒng)使用的多功能寄存器 要使用8051單片機的中斷功能,必須掌握4個相關的特殊功能寄存器中特定位的意義及其使用方法。下面分別介紹4個特殊功能寄存器對中斷的具體管理方法。 (1)TCON 定時器控制寄存器TCON是定時器/計數(shù)器T0和T1的控制寄存器,也用來鎖存T0和T1的溢出中斷請求,TF0、TF1標志及外部中斷請求源標志IE0、IE1。TCON的 字節(jié)地址88H,

5、既支持字節(jié)操作,又支持位操作。位地址 的范圍是,IT0,外部中斷0(INT0)觸發(fā)方式控制位,用于設定INT0中斷請求信號的有效方式。如果將IT0設定為1,則外部中斷0為邊沿(脈沖)觸發(fā)方式,CPU在每個機器周期的S5P2采樣INT0的輸入信號(即單片機的P3.2腳)。如果在一個機器周期中采樣到高電平,在下一個機器周期中采樣到低電平,則硬件自動將IE0置為“1”,向CPU請求中斷;如果IT0為0,則外部中斷0為電平觸發(fā)方式。此時系統(tǒng)如果檢測到INT0,直至該中斷信號被檢測到。同時在中斷返回前必須變?yōu)殡?平,否則會再次產(chǎn)生中斷。概括地說,IT01時INT0的中 斷請求信號是脈沖后沿(負脈沖)有效

6、,P3.2從1變?yōu)?時 系統(tǒng)認為INT0有中斷請求;IT00時,INT0的中斷請求信 號是低電平有效,即P3.2保持為0時系統(tǒng)認為INT0有中斷 請求。 IE0,外部中斷0的中斷請求標志位。如果IT0置1,則 當P3.2上的電平由1變?yōu)?時,由硬件置位IE0,向CPU申,請中斷。如果CPU響應該中斷,在轉向中斷服務時,由硬 件將IE0復位??梢?,IT0用于設定INT0中斷請求的信號形 式。設定了IT0后,如果INT0產(chǎn)生了有效的中斷請求信號 (P3.2出現(xiàn)脈沖后沿或低電平),則由中斷系統(tǒng)的硬件電 路自動將IE0置位。單片機系統(tǒng)在工作過程的每一個機器 周期的特定時刻(即S5P2),通過檢測INT

7、0的中斷請求標 志位IE0是1還是0來確定INT0是否有中斷請求,而不是通 過檢測P3.2上的中斷請求信號來確定INT0的中斷請求。,端輸入低電平,則置位IE0。采用電平觸發(fā)時,輸入到 INT0端的外部中斷信號必須保持低電平, IT01時表示 有中斷請求,IT00時則沒有中斷請求。下面INT1的情況 類似,不再重復說明。,IT1,外部中斷1(INT1)的觸發(fā)方式控制位。其意義和IT0相同。 IE1,外部中斷1的中斷請求標志位。其意義和IE0相同。 TF0,定時器/計數(shù)器T0的溢出中斷請求標志位。當T0開始計數(shù)后,從初值開始加1計數(shù),在計滿產(chǎn)生溢出時,由硬件使置位TF0,向CPU請求中斷,CPU

8、響應中斷時,硬件自動將TF0清零。如果采用軟件查詢方式,則需要由軟,件將TF0清零。因此,系統(tǒng)是通過檢查TF0的狀態(tài)來確定T0 是否有中斷請求。TF01表示T0有中斷請求,TF00時則 沒有。 TF1,定時器/計數(shù)器T1的溢出中斷請求標志位,其作 用同TF0。 TR0和TR1分別是T0和T1的控制位,與中斷無關。將 在定時器/計數(shù)器應用內(nèi)容中介紹。,(2)SCON SCON為串行口控制寄存器,主要用于設置串行口的工作方式,同時也用于保存串行口的接收中斷和發(fā)送中斷標志。字節(jié)地址是98H,既支持字節(jié)操作,又支持位操作。位地址的范圍是98H9FH。8位中只有最低的兩位與中斷有關,其格式如下:,RI,

9、串行口的接收中斷標志位。8051單片機的串行口共有4中工作方式。在串行口的方式0中,每當接收到第8位數(shù)據(jù)時,由硬件置位RI;在其他工作方式中,若SM20,在接收到停止位的中間時置位RI;若SM21,僅當接收到的第9位數(shù)據(jù)RB8為1時,并且在接收到停止位的中間時置位RI,表示串行口已經(jīng)完成一幀數(shù)據(jù)的接收,向CPU申請中斷,準備,接收下一幀數(shù)據(jù)。但當CPU轉到串行口的中斷服務程序 時,不復位RI,必須由設計者在程序中用指令來清零RI。 簡單地說,串行口在接收完一幀數(shù)據(jù)時,自動將RI置位,向CPU申請中斷。 TI,串行口的發(fā)送中斷標志位。在方式0中,每當發(fā) 送完8位數(shù)據(jù)時由硬件置位。在其他方式中,在

10、發(fā)送到停 止位開始時置位TI,表示串行口已經(jīng)完成一幀數(shù)據(jù)的發(fā) 送,向CPU申請中斷,準備發(fā)送下一幀數(shù)據(jù)。要發(fā)送的數(shù) 據(jù)一旦寫入串行口的數(shù)據(jù)緩沖器SBUF,單片機的硬件電 路就立即啟動發(fā)送器進行發(fā)送。CPU響應中斷時并不清零 TI,同樣要在程序中用指令來清零。,(3)中斷屏蔽寄存器IE 8051單片機的CPU對中斷源的開放或屏蔽(即閉),是由片內(nèi)的中斷允許寄存器IE(也稱為中斷控制寄存器或中斷屏蔽寄存器)控制的。IE的字節(jié)地址是A8H,既支持字節(jié)操作,又支持位操作。位地址的范圍是A8HAFH。8位中有6位與中斷有關,剩下的兩位沒有定義。其格式如下:,EA,CPU的中斷開放標志。EA0時,CPU屏

11、蔽所 有的中斷請求,此時即使有中斷請求,系統(tǒng)也不會去響 應; EA 1時,CPU開放中斷,但每個中斷源的中斷請 求是允許還是被禁止,還需由各自的控制位確定。 ES,串行口的中斷控制位。ES1,允許串行口中 斷;ES0,禁止串行口中斷。 ET1:定時器/計數(shù)器1的溢出中斷控制位。ET11, T1的中斷開放,ET10,T1的中斷被關閉。,EX1,外部中斷1的中斷控制位。EX11,允許外部中斷1中斷;EX10,禁止外部中斷1的中斷。 ET0,定時器/計數(shù)器T0的溢出中斷控制位。ET01時允許T0中斷;ET00,禁止T0中斷。 EX0,外部中斷0的中斷控制位。EX01,允許外部中斷0的中斷;EX00,

12、禁止外部0的中斷。 可見,EA0時,所有的中斷都被屏蔽,此時IE低5位的狀態(tài)沒有任何作用。EA1時,可以通過對IE,設置來開放或關閉相應的中斷,在圖5-1中可以很直觀地 看出來。單片機復位后,IE寄存器被清零,所有的中斷都 被屏蔽。IE寄存器中各個位的狀態(tài)支持位尋址,用戶根據(jù) 要求用指令SETB置位或CLR清零,而實現(xiàn)相應的中斷源 允許中斷或禁止中斷,當然也可以采用字節(jié)操作來實現(xiàn)。 例如,若要求開放外部中斷,關閉內(nèi)部中斷,則可以用兩 條置位指令將EA、EX0和EX1置位,ES、ET1和ET0保持 為系統(tǒng)復位后的默認值0。如果使用字節(jié)操作方式,則一,條MOV指令即能實現(xiàn),即MOV IE,#1xx

13、00101B。其中的兩個x對應的是無關位,可以任意為1或0。 (4)中斷優(yōu)先級控制寄存器 8051單片機的中斷系統(tǒng)有兩個中斷優(yōu)先級。對于每一個中斷請求源都可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,實現(xiàn)兩級中斷嵌套。中斷優(yōu)先級是由片內(nèi)的中斷優(yōu)先級寄存器IP控制的。IP的字節(jié)地址是,B8H,既支持字節(jié)操作,又支持位操作。位地址的范圍是 B8HBFH。8位中有5位與中斷有關,剩下的3位沒有定 義。其格式如下 :,PS,串行口的中斷優(yōu)先級控制位。PS1時,串行口被定義為高優(yōu)先級中斷源;PS0時,串行口被定義為低優(yōu)先級中斷源。 PT1,定時器/計數(shù)器T1的中斷優(yōu)先級控制位。PT11,T1被定義為高優(yōu)先級中斷源

14、;PT10,T1被定義為低優(yōu)先級中斷源。 PX1,外部中斷1(INT1)的優(yōu)先級控制位。PX1,外部中斷1被定義為高優(yōu)先級中斷源;PX00,外部中斷1被定義為低優(yōu)先級中斷源。,PT0,定時器/計數(shù)器T0的中斷優(yōu)先級控制位。其功能 同PT1。 PX0,外部中斷0(INT0)的優(yōu)先級控制位。其功能 同PX1。 中斷優(yōu)先級控制寄存器IP的各位都由用戶置位或復 位,可用位操作指令或字節(jié)操作指令更新IP的內(nèi)容,以改 變各中斷源的中斷優(yōu)先級,單片機復位后IP全為0,各個 中斷源均為低優(yōu)先級中斷。,4.3 中斷響應過程,單片機的中斷的處理過程可分為中斷響應、中斷處理和中斷返回3個階段。下面介紹8051單片機

15、的中斷處理過程。 一、中斷的響應條件 在每個機器周期的S5P2時刻,單片機依次采樣每一個中斷標志位,而在下一個機器周期對采樣到的中斷進行查詢。如果在前一個機器周期的S5P2有,中斷標志,則在查詢周期內(nèi)便會查詢到并按優(yōu)先級高低進行 中斷處理,中斷系統(tǒng)將控制程序轉入相應的中斷服務程序。 CPU響應中斷應具備的條件是:首先有中斷源發(fā)出中斷請 求;然后CPU中斷允許位EA為“1”,即CPU開中斷,并且申 請中斷的中斷源,其相應的中斷允許位為“1”,即允許相 應的中斷源中斷。條件滿足時,一般CPU會響應中斷請求。,CPU響應中斷時,會根據(jù)中斷源的類別,在硬件的控制下,程序轉向相應的中斷服務程序入口單元,

16、執(zhí)行中斷服務程序。 二、中斷的響應過程 51單片機的中斷系統(tǒng)中分為兩個中斷優(yōu)先級。每一中斷請 求源均可通過對IP寄存器的編程為高優(yōu)先級中斷或低優(yōu)先 級中斷,并可實現(xiàn)多級中斷嵌套。一個正在執(zhí)行的低優(yōu)先,應新的中斷請求。為了實現(xiàn)上述功能, 51單片機的中斷 系統(tǒng)中有兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器。一個指出某 高優(yōu)先級的中斷正在得到服務,所有后來的中斷請求被阻 級中斷服務程序能被高優(yōu)先級的中斷請求所中斷,但不能 被另一個同級或低級的中斷源所中斷。因此,如果CPU正 在執(zhí)行高優(yōu)先級的中斷服務程序,則不能被任何中斷源所 中斷,必須等到當前的中斷服務程序執(zhí)行結束,遇到返回 指令(RETI)返回主程序后,至

17、少再執(zhí)行一條指令才能響,應新的中斷請求。為了實現(xiàn)上述功能, 51單片機的中斷 系統(tǒng)中有兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器。一個指出某 高優(yōu)先級的中斷正在得到服務,所有后來的中斷請求被阻 斷;另一個觸發(fā)器指出某低優(yōu)先級的中斷正在得到服務, 所有同級的中斷請求都被阻斷,但不能阻斷高優(yōu)先級的中 斷請求。 如果8051單片機滿足中斷響應的條件,并且不存在 中斷被屏蔽的情況,CPU就響應相應的中斷請求。在實際 的,響應過程中,CPU首先置位被響應中斷的優(yōu)先級狀態(tài)觸發(fā)器,以屏蔽(即關閉)同級和低級的中斷請求。然后,根據(jù)中斷源的類別,在硬件的控制下,內(nèi)部自動執(zhí)行一條子程序調(diào)用指令,將程序轉移至相應的中斷入口處,

18、開始執(zhí)行中斷服務程序。在轉入中斷服務程序時,子程序調(diào)用指令自動把斷點地址(即程序計數(shù)器PC的當前值)壓入堆棧,但不會自動保存狀態(tài)寄存器PSW等寄存器中的內(nèi)容。,當中斷的各項條件滿足要求時,CPU響應中斷,停止現(xiàn)行程 序,轉向中斷服務程序。整個響應過程中CPU應完成工作有: 1)關中斷。CPU響應中斷時便向外設發(fā)出中斷響應 信號,同時自動地關中斷,處理一個中斷過程中不致又接 收另一新的中斷,以防止誤響應。,2)保護斷點。為了保證CPU在執(zhí)行完中斷服務程序 后,準確地返回斷點,CPU將斷點處的PC值推入堆棧保 護。待中斷服務程序執(zhí)行完后,由返回指令RETI將其從堆 棧中彈回PC,從而實現(xiàn)程序的返回

19、。,3)執(zhí)行中斷服務程序。找出中斷服務程序入口地址,轉入執(zhí)行中斷服務程序。在中斷服務程序中一般應完成如下任務: (1)保護現(xiàn)場。由于CPU響應中斷是隨機的,而CPU中各寄存器的內(nèi)容和狀態(tài)標志會因轉至中斷服務程序而受到破壞,所以要在中斷服務程序的開始,把斷點處有關的各個寄存器的內(nèi)容和狀態(tài)標志,用堆棧操作指令PUSH推入堆棧保護。,(2)中斷服務。中斷源申請中斷時應完成的任務。 (3)恢復現(xiàn)場。在中斷服務程序完成后,把保護在堆 棧中的各寄存器內(nèi)容和狀態(tài)標志,用POP指令彈回CPU。 (4)開中斷。上面已談到CPU在響應中斷時自動關中 斷。為了使CPU能響應新的中斷請求,在中斷服務程序末 尾應按排開

20、中斷指令。 (5)返回主程序。當中斷服務程序執(zhí)行完畢返回主程 序時,必須將斷點地址彈回PC,因此在中斷服務程序的最,后用一條RETI指令,使PC返回斷點。 因系統(tǒng)保留的各中斷入口地址間空間太小,所以,通常在中斷入口地址處安排一條相應的跳轉指令,跳轉至用戶設計的中斷服務程序入口。 三、中斷處理 CPU響應中斷請求后,即轉到中斷服務程序的入口,執(zhí)行中斷服務程序。從中斷服務程序的第一條指令開始,到中斷返回指令為止,這個過程稱為中斷處理或中斷服務。不同的中斷源所需服務的要求及內(nèi)容各不相同,其處理過程也就有所區(qū)別,但在一般情況下,中斷處理應包括兩部分內(nèi)容:一是保護現(xiàn)場,二是為中斷源服務。 現(xiàn)場通常有程序

21、狀態(tài)字PSW、工作寄存器、累加器或其他的特殊功能寄存器等。如果在中斷服務程序,中要用這些寄存器,則應在進入中斷服務之前用進棧指令將 它們的內(nèi)容壓入堆棧中保護起來,這就叫做保護現(xiàn)場。同 樣,在完成中斷服務,中斷程序返回之前(執(zhí)行返回指令 RETI之,前),應采用出棧指令恢復現(xiàn)場。 中斷服務是根據(jù)中斷源的具體要求所編寫的中斷服務 程序的運行和處理。用戶在編寫中斷服務程序時應,一般 應注意以下幾個方面: (1)8051單片機為各中斷源所保留的中斷入口地 址,只相隔8個單元,如此小的空間通常是容納不下中斷 服務程序的,因而常常在中斷入口地址單元處設置一條無 條件轉移指令,使中斷服務能轉至中斷服務程序所

22、存放的,存儲器的任何位置。 (2)在運行當前的中斷服務程序時,如果想禁止更高 優(yōu)先級的中斷源請求中斷,可以用指令復位IE中的相關控 制位來屏蔽更高優(yōu)先級中斷源的中斷請求。在中斷服務程 序執(zhí)行完返回之前,再用指令開放中斷。 (3)在中斷服務程序中保護、恢復現(xiàn)場時,為避免現(xiàn) 場信息受到破壞或造成混亂,一般情況下,應先關閉CPU 的中斷,使CPU暫不響應新的中斷請求,以避免保護或恢,復現(xiàn)場的過程受到干擾。這就要求在編寫中斷服務程序 時,應注意在保護現(xiàn)場之前要關中斷。在保護現(xiàn)場之后, 若允許高優(yōu)先級的中斷源申請中斷,則應開中斷。同樣在 恢現(xiàn)場之前應關中斷,恢復之后再開中斷。,四、中斷返回 中斷服務程序

23、的最后一條指令是中斷返回指令RETI。它的功能是將斷點地址從堆棧中彈出,送回程序計數(shù)PC中,使程序能返回到原來被中斷的地方繼續(xù)執(zhí)行。 8051單片機的RETI指令除了彈出斷點之外,還通知中斷系統(tǒng)已完成中斷處理,并將優(yōu)先級狀態(tài)觸發(fā)器清除(復位),使系統(tǒng)能響應新的中斷請求。,五、中斷請求的撤消 CPU完成中斷請求的處理以后,在中斷返回之前,應 將該中斷請求撤消,否則會引起第二次響應中斷。在51單 片機中,各個中斷源撤消中斷請求的方法各不相同。 (1)定時/計數(shù)器的溢出中斷:CPU響應其中斷請求 后,由硬件自動清除相應的中斷請求標志位,使中斷請求 自動撤消,因此不用采取其他措施。,(2)外部中斷請求:中斷請求的撤消與觸發(fā)方式控制位的設置有關。采用邊沿觸發(fā)的外部中斷,CPU在響應中斷后,由硬件自動清除相應的標志位,使中斷請求自動撤消;采用電平觸發(fā)的外部中斷源,應采用電路和程序相結合的方式,撤消外部中斷源的中斷請求信號。 (3)串行口的中斷請求:由于RI和TI都會引起串口的中斷,CPU響應后,

溫馨提示

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

評論

0/150

提交評論