




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 項目4 單片機的中斷系統嵌入式單片機方向單片機C語言程序項目設計4.1 任務說明 本節為理論內容,重點掌握單片機的中斷類型、控制方式以及應用,單片機共有5個中斷源,兩級優先級控制,在以后的項目實踐中,我們要用到定時器中斷、外部中斷和串行中斷。4.2 中斷系統的結構 51單片機中斷系統的結構如圖4-1所示,5個中斷分別有5個中斷源,并提供兩個中斷優先級控制,能夠實現兩級中斷服務程序的嵌套。單片機的中斷系統是通過4個相關的特殊功能寄存器TCON、SCON、IE和IP來進行管理的。因此用戶可以用軟件對每個中斷的開和關以及優先級的控制。定時器控制寄存器TCON用于設定外部中斷的中斷。 串口控制寄存器
2、SCON用于保存串行口(SIO)的發送中斷標志和接收中斷標志。中斷控制寄存器IE用于設定各個中斷源的開放或關閉。各個中斷源的優先級可以由中斷優先級寄存器IP中的相應位來確定,同一優先級中的各中斷源同時請求中斷時,由中斷系統的內部查詢邏輯來確定響應的順序。圖4-1 8051單片機中斷系統的結構一、中斷源 單片機5個中斷源都有自己的標志位,包括外部中斷(P3.1)引腳接受的外部中斷請求;外部中斷(P3.2)引腳接受的外部中斷請求;定時器/計數器0(T0)溢出中斷請求;定時器/計數器1(T0)溢出中斷請求;串行口完成一幀數據發送或接收中斷請求源TI或RI。 其中INT0和INT1一般稱為外部中斷,T
3、0、T1和串行口(SIO 的TI和RI)則稱為內部中斷。在有中斷請求時,由相應的中斷標志位。保存其中斷請求信號,分別存放在特殊功能寄存器TCON和SCON中增強型的51單片機,則比51單片機多一個中斷源T2。二、中斷優先級 51單片機的中斷系統具有兩級優先級控制,系統在處理時遵循下列基本原則: 1)低優先級的中斷源可被高優先級的中斷源中斷,號的有效形式及保存定時/計數器T0和T1的中斷請求標志位。而高優先級中斷源不能被低級的中斷源所中斷; 2)一種中斷源(無論是高優先級或低優先級)一旦得到響應,就不會被同級的中斷源所中斷; 3)低優先級的中斷源和高優先級的中斷源同時產生中斷請求時,系統先響應高
4、優先級的中斷請求,后響應低優先級的中斷請求; 表4-1 中斷入口地址及優先級排列表中斷源入口地址 中斷級別 外部中斷0 0003H最高最低 T0溢出中斷 000BH外部中斷1 0013H T1溢出中斷 001BH 串行口中斷 0023H 4)多個同級的中斷源同時產生中斷請求時,系統按照默認的順序先后予以響應,5個中斷默認優先級見表4-1。三、中斷系統使用的多功能寄存器 要使用8051單片機的中斷功能,必須掌握4個相關的特殊功能寄存器中特定位的意義及其使用方法。下面分別介紹4個特殊功能寄存器對中斷的具體管理方法。(1)TCON 定時器控制寄存器TCON是定時器/計數器T0和T1的控制寄存器,也用
5、來鎖存T0和T1的溢出中斷請求TCOND7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0TF0、TF1標志及外部中斷請求源標志IE0、IE1。TCON的字節地址88H,既支持字節操作,又支持位操作。位地址的范圍是 IT0,外部中斷0(INT0)觸發方式控制位,用于設定INT0中斷請求信號的有效方式。如果將IT0設定為1,則外部中斷0為邊沿(脈沖)觸發方式,CPU在每個機器周期的S5P2采樣INT0的輸入信號(即單片機的P3.2腳)。如果在一個機器周期中采樣到高電平,在下一個機器周期中采樣到低電平,則硬件自動將IE0置為“1”,向CPU請求中斷;如果IT0為0
6、,則外部中斷0為電平觸發方式。此時系統如果檢測到INT0直至該中斷信號被檢測到。同時在中斷返回前必須變為電平,否則會再次產生中斷。概括地說,IT01時INT0的中斷請求信號是脈沖后沿(負脈沖)有效,P3.2從1變為0時系統認為INT0有中斷請求;IT00時,INT0的中斷請求信號是低電平有效,即P3.2保持為0時系統認為INT0有中斷請求。 IE0,外部中斷0的中斷請求標志位。如果IT0置1,則當P3.2上的電平由1變為0時,由硬件置位IE0,向CPU申請中斷。如果CPU響應該中斷,在轉向中斷服務時,由硬件將IE0復位。可見,IT0用于設定INT0中斷請求的信號形式。設定了IT0后,如果INT
7、0產生了有效的中斷請求信號(P3.2出現脈沖后沿或低電平),則由中斷系統的硬件電路自動將IE0置位。單片機系統在工作過程的每一個機器周期的特定時刻(即S5P2),通過檢測INT0的中斷請求標志位IE0是1還是0來確定INT0是否有中斷請求,而不是通過檢測P3.2上的中斷請求信號來確定INT0的中斷請求。端輸入低電平,則置位IE0。采用電平觸發時,輸入到INT0端的外部中斷信號必須保持低電平, IT01時表示有中斷請求,IT00時則沒有中斷請求。下面INT1的情況類似,不再重復說明。 IT1,外部中斷1(INT1)的觸發方式控制位。其意義和IT0相同。 IE1,外部中斷1的中斷請求標志位。其意義
8、和IE0相同。 TF0,定時器/計數器T0的溢出中斷請求標志位。當T0開始計數后,從初值開始加1計數,在計滿產生溢出時,由硬件使置位TF0,向CPU請求中斷,CPU響應中斷時,硬件自動將TF0清零。如果采用軟件查詢方式,則需要由軟件將TF0清零。因此,系統是通過檢查TF0的狀態來確定T0是否有中斷請求。TF01表示T0有中斷請求,TF00時則沒有。 TF1,定時器/計數器T1的溢出中斷請求標志位,其作用同TF0。 TR0和TR1分別是T0和T1的控制位,與中斷無關。將在定時器/計數器應用內容中介紹。(2)SCON SCON為串行口控制寄存器,主要用于設置串行口的工作方式,同時也用于保存串行口的
9、接收中斷和發送中斷標志。字節地址是98H,既支持字節操作,又支持位操作。位地址的范圍是98H9FH。8位中只有最低的兩位與中斷有關,其格式如下:SCON D7D6D5D4D3D2D1D0位地址 9FH9EH9DH9CH9BH9AH99H98H位名稱 SM0SM1SM2RENTB8RB8TIRI RI,串行口的接收中斷標志位。8051單片機的串行口共有4中工作方式。在串行口的方式0中,每當接收到第8位數據時,由硬件置位RI;在其他工作方式中,若SM20,在接收到停止位的中間時置位RI;若SM21,僅當接收到的第9位數據RB8為1時,并且在接收到停止位的中間時置位RI,表示串行口已經完成一幀數據的
10、接收,向CPU申請中斷,準備接收下一幀數據。但當CPU轉到串行口的中斷服務程序時,不復位RI,必須由設計者在程序中用指令來清零RI。簡單地說,串行口在接收完一幀數據時自動將RI置位,向CPU申請中斷。 TI,串行口的發送中斷標志位。在方式0中,每當發送完8位數據時由硬件置位。在其他方式中,在發送到停止位開始時置位TI,表示串行口已經完成一幀數據的發送,向CPU申請中斷,準備發送下一幀數據。要發送的數據一旦寫入串行口的數據緩沖器SBUF,單片機的硬件電路就立即啟動發送器進行發送。CPU響應中斷時并不清零TI,同樣要在程序中用指令來清零。(3)中斷屏蔽寄存器IE 8051單片機的CPU對中斷源的開
11、放或屏蔽(即閉),是由片內的中斷允許寄存器IE(也稱為中斷控制寄存器或中斷屏蔽寄存器)控制的。IE的字節地址是A8H,既支持字節操作,又支持位操作。位地址的范圍是A8HAFH。8位中有6位與中斷有關,剩下的兩位沒有定義。其格式如下: IED7D6D5D4D3D2D1D0位地址AFHAEHADHACHABHAAHA9HA8H位名稱EAESET1EX1ET9EX0 EA,CPU的中斷開放標志。EA0時,CPU屏蔽所有的中斷請求,此時即使有中斷請求,系統也不會去響應; EA 1時,CPU開放中斷,但每個中斷源的中斷請求是允許還是被禁止,還需由各自的控制位確定。 ES,串行口的中斷控制位。ES1,允許
12、串行口中斷;ES0,禁止串行口中斷。 ET1:定時器/計數器1的溢出中斷控制位。ET11,T1的中斷開放,ET10,T1的中斷被關閉。EX1,外部中斷1的中斷控制位。EX11,允許外部中斷1中斷;EX10,禁止外部中斷1的中斷。 ET0,定時器/計數器T0的溢出中斷控制位。ET01時允許T0中斷;ET00,禁止T0中斷。 EX0,外部中斷0的中斷控制位。EX01,允許外部中斷0的中斷;EX00,禁止外部0的中斷。 可見,EA0時,所有的中斷都被屏蔽,此時IE低5位的狀態沒有任何作用。EA1時,可以通過對IE設置來開放或關閉相應的中斷,在圖5-1中可以很直觀地看出來。單片機復位后,IE寄存器被清
13、零,所有的中斷都被屏蔽。IE寄存器中各個位的狀態支持位尋址,用戶根據要求用指令SETB置位或CLR清零,而實現相應的中斷源允許中斷或禁止中斷,當然也可以采用字節操作來實現。例如,若要求開放外部中斷,關閉內部中斷,則可以用兩條置位指令將EA、EX0和EX1置位,ES、ET1和ET0保持為系統復位后的默認值0。如果使用字節操作方式,則一條MOV指令即能實現,即MOV IE,#1xx00101B。其中的兩個x對應的是無關位,可以任意為1或0。(4)中斷優先級控制寄存器 8051單片機的中斷系統有兩個中斷優先級。對于每一個中斷請求源都可編程為高優先級中斷或低優先級中斷,實現兩級中斷嵌套。中斷優先級是由
14、片內的中斷優先級寄存器IP控制的。IP的字節地址是IPD7D6D5D4D3D2D1D0位地址BFHBEHBDHBCHBBHBAHB9HB8H位名稱PSPT1PX1PT0PX0B8H,既支持字節操作,又支持位操作。位地址的范圍是B8HBFH。8位中有5位與中斷有關,剩下的3位沒有定義。其格式如下 : PS,串行口的中斷優先級控制位。PS1時,串行口被定義為高優先級中斷源;PS0時,串行口被定義為低優先級中斷源。 PT1,定時器/計數器T1的中斷優先級控制位。PT11,T1被定義為高優先級中斷源;PT10,T1被定義為低優先級中斷源。 PX1,外部中斷1(INT1)的優先級控制位。PX1,外部中斷
15、1被定義為高優先級中斷源;PX00,外部中斷1被定義為低優先級中斷源。 PT0,定時器/計數器T0的中斷優先級控制位。其功能同PT1。 PX0,外部中斷0(INT0)的優先級控制位。其功能同PX1。 中斷優先級控制寄存器IP的各位都由用戶置位或復位,可用位操作指令或字節操作指令更新IP的內容,以改變各中斷源的中斷優先級,單片機復位后IP全為0,各個中斷源均為低優先級中斷。4.3 中斷響應過程 單片機的中斷的處理過程可分為中斷響應、中斷處理和中斷返回3個階段。下面介紹8051單片機的中斷處理過程。一、中斷的響應條件 在每個機器周期的S5P2時刻,單片機依次采樣每一個中斷標志位,而在下一個機器周期
16、對采樣到的中斷進行查詢。如果在前一個機器周期的S5P2有中斷標志,則在查詢周期內便會查詢到并按優先級高低進行中斷處理,中斷系統將控制程序轉入相應的中斷服務程序。CPU響應中斷應具備的條件是:首先有中斷源發出中斷請求;然后CPU中斷允許位EA為“1”,即CPU開中斷,并且申請中斷的中斷源,其相應的中斷允許位為“1”,即允許相應的中斷源中斷。條件滿足時,一般CPU會響應中斷請求。 CPU響應中斷時,會根據中斷源的類別,在硬件的控制下,程序轉向相應的中斷服務程序入口單元,執行中斷服務程序。二、中斷的響應過程51單片機的中斷系統中分為兩個中斷優先級。每一中斷請求源均可通過對IP寄存器的編程為高優先級中
17、斷或低優先級中斷,并可實現多級中斷嵌套。一個正在執行的低優先 應新的中斷請求。為了實現上述功能, 51單片機的中斷系統中有兩個不可尋址的優先級狀態觸發器。一個指出某高優先級的中斷正在得到服務,所有后來的中斷請求被阻級中斷服務程序能被高優先級的中斷請求所中斷,但不能被另一個同級或低級的中斷源所中斷。因此,如果CPU正在執行高優先級的中斷服務程序,則不能被任何中斷源所中斷,必須等到當前的中斷服務程序執行結束,遇到返回指令(RETI)返回主程序后,至少再執行一條指令才能響應新的中斷請求。為了實現上述功能, 51單片機的中斷系統中有兩個不可尋址的優先級狀態觸發器。一個指出某高優先級的中斷正在得到服務,
18、所有后來的中斷請求被阻斷;另一個觸發器指出某低優先級的中斷正在得到服務,所有同級的中斷請求都被阻斷,但不能阻斷高優先級的中斷請求。 如果8051單片機滿足中斷響應的條件,并且不存在中斷被屏蔽的情況,CPU就響應相應的中斷請求。在實際的響應過程中,CPU首先置位被響應中斷的優先級狀態觸發器,以屏蔽(即關閉)同級和低級的中斷請求。然后,根據中斷源的類別,在硬件的控制下,內部自動執行一條子程序調用指令,將程序轉移至相應的中斷入口處,開始執行中斷服務程序。在轉入中斷服務程序時,子程序調用指令自動把斷點地址(即程序計數器PC的當前值)壓入堆棧,但不會自動保存狀態寄存器PSW等寄存器中的內容。當中斷的各項
19、條件滿足要求時,CPU響應中斷,停止現行程序,轉向中斷服務程序。整個響應過程中CPU應完成工作有: 1)關中斷。CPU響應中斷時便向外設發出中斷響應信號,同時自動地關中斷,處理一個中斷過程中不致又接收另一新的中斷,以防止誤響應。 2)保護斷點。為了保證CPU在執行完中斷服務程序后,準確地返回斷點,CPU將斷點處的PC值推入堆棧保護。待中斷服務程序執行完后,由返回指令RETI將其從堆棧中彈回PC,從而實現程序的返回。 3)執行中斷服務程序。找出中斷服務程序入口地址,轉入執行中斷服務程序。在中斷服務程序中一般應完成如下任務: (1)保護現場。由于CPU響應中斷是隨機的,而CPU中各寄存器的內容和狀
20、態標志會因轉至中斷服務程序而受到破壞,所以要在中斷服務程序的開始,把斷點處有關的各個寄存器的內容和狀態標志,用堆棧操作指令PUSH推入堆棧保護。 (2)中斷服務。中斷源申請中斷時應完成的任務。 (3)恢復現場。在中斷服務程序完成后,把保護在堆棧中的各寄存器內容和狀態標志,用POP指令彈回CPU。 (4)開中斷。上面已談到CPU在響應中斷時自動關中斷。為了使CPU能響應新的中斷請求,在中斷服務程序末尾應按排開中斷指令。 (5)返回主程序。當中斷服務程序執行完畢返回主程序時,必須將斷點地址彈回PC,因此在中斷服務程序的最后用一條RETI指令,使PC返回斷點。 因系統保留的各中斷入口地址間空間太小,
21、所以,通常在中斷入口地址處安排一條相應的跳轉指令,跳轉至用戶設計的中斷服務程序入口。三、中斷處理 CPU響應中斷請求后,即轉到中斷服務程序的入口,執行中斷服務程序。從中斷服務程序的第一條指令開始到中斷返回指令為止,這個過程稱為中斷處理或中斷服務。不同的中斷源所需服務的要求及內容各不相同,其處理過程也就有所區別,但在一般情況下,中斷處理應包括兩部分內容:一是保護現場,二是為中斷源服務。 現場通常有程序狀態字PSW、工作寄存器、累加器或其他的特殊功能寄存器等。如果在中斷服務程序中要用這些寄存器,則應在進入中斷服務之前用進棧指令將它們的內容壓入堆棧中保護起來,這就叫做保護現場。同樣,在完成中斷服務,
22、中斷程序返回之前(執行返回指令RETI之前),應采用出棧指令恢復現場。 中斷服務是根據中斷源的具體要求所編寫的中斷服務程序的運行和處理。用戶在編寫中斷服務程序時應,一般應注意以下幾個方面: (1)8051單片機為各中斷源所保留的中斷入口地址,只相隔8個單元,如此小的空間通常是容納不下中斷服務程序的,因而常常在中斷入口地址單元處設置一條無條件轉移指令,使中斷服務能轉至中斷服務程序所存放的存儲器的任何位置。 (2)在運行當前的中斷服務程序時,如果想禁止更高優先級的中斷源請求中斷,可以用指令復位IE中的相關控制位來屏蔽更高優先級中斷源的中斷請求。在中斷服務程序執行完返回之前,再用指令開放中斷。 (3
23、)在中斷服務程序中保護、恢復現場時,為避免現場信息受到破壞或造成混亂,一般情況下,應先關閉CPU的中斷,使CPU暫不響應新的中斷請求,以避免保護或恢復現場的過程受到干擾。這就要求在編寫中斷服務程序時,應注意在保護現場之前要關中斷。在保護現場之后,若允許高優先級的中斷源申請中斷,則應開中斷。同樣在恢現場之前應關中斷,恢復之后再開中斷。四、中斷返回 中斷服務程序的最后一條指令是中斷返回指令RETI。它的功能是將斷點地址從堆棧中彈出,送回程序計數PC中,使程序能返回到原來被中斷的地方繼續執行。 8051單片機的RETI指令除了彈出斷點之外,還通知中斷系統已完成中斷處理,并將優先級狀態觸發器清除(復位),使系統能響應新的中斷請求。五、中斷請求的撤消 CPU完成中斷請求的處理以后,在中斷返回之前,應將該中斷請求撤消,否則會引起第二次響應中斷。在51單片機中,各個中斷源撤消中斷請求的方法各不相同。 (1)定時/計數器的溢出中斷:CPU響應其中斷請求后,由硬件自動清除相應的中斷請求標志位,使中斷請求自動撤消,因此不用采取其他措施。 (2)外部中斷請求:中斷請求的撤消與觸發方式控制位的設置有關。采用邊沿觸發的外部中斷,CPU在響應中斷后,由硬件自動清除相應的標志位,使中斷請求自動撤消;采用電平觸發的外部中斷源,應采用電路和程序相結合的方式,撤消外部中斷源的中斷請求信號。 (3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機肥料在提升土壤微生物對作物生長調節物質產生中的作用考核試卷
- 簡易呼吸器的使用 2
- 靜脈血液標本采集指南
- 遼寧輕工職業學院《大學生創新創業與就業指導》2023-2024學年第一學期期末試卷
- 洛陽職業技術學院《計算機網絡管理與安全》2023-2024學年第二學期期末試卷
- 江蘇省啟東市2024-2025學年高三下學期第二次模擬考試(期中)數學試題含解析
- 江蘇電子信息職業學院《大學生職業生涯規劃與就業指導(二)》2023-2024學年第二學期期末試卷
- 期貴州省畢節市重點中學2025屆初三第一次質量檢測試題物理試題含解析
- 遼寧省丹東33中學2024-2025學年初三下學期模擬(二)測試英語試題含答案
- XX學校課程改革與校本課程開發實施匯報范文
- 抗滑樁施工危險源辨識與評價及應對措施
- 語文園地五(識字加油站、我的發現)
- 身體紅綠燈課件
- Pentacam白內障應用(第二版)
- 建設單位業主方工程項目管理流程圖
- 發展心理學第四節-智力發展
- 壓力管道檢驗計算案例
- 碎石擠密樁復合地基施工工法解讀
- 包裝廠質量管理體系
- 初中花城版八年級下冊音樂4.狂歡之歌(15張)ppt課件
- 常用標準波導和法蘭尺寸
評論
0/150
提交評論