單片機(jī)中斷服務(wù)教材課件_第1頁
單片機(jī)中斷服務(wù)教材課件_第2頁
單片機(jī)中斷服務(wù)教材課件_第3頁
單片機(jī)中斷服務(wù)教材課件_第4頁
單片機(jī)中斷服務(wù)教材課件_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章 中斷系統(tǒng)硅谷芯微 技術(shù)貢獻(xiàn)網(wǎng)址:www.threeway.cc本章重點: 中斷的工作原理 中斷如何配置 中斷服務(wù)程序書寫格式 中斷是指在計算機(jī)執(zhí)行過程中,當(dāng)出現(xiàn)某種情況,如發(fā)生緊急事件或者其他突發(fā)事件時,由服務(wù)器對象向CPU發(fā)出中斷請求信號,要求CPU暫時中斷當(dāng)前程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再返回來繼續(xù)執(zhí)行原來被中斷的程序。 5.1 單片機(jī)的輸入/輸出方式 在單片機(jī)中,CPU與外設(shè)不斷地進(jìn)行信息的傳輸,通常有三種方式:5.1.1 程序控制方式 信息傳送過程是在程序控制下進(jìn)行??梢苑譃橐韵聝煞N方式。 無條件傳送方式:當(dāng)外設(shè)已準(zhǔn)備就緒,那就不必查詢外設(shè)的狀態(tài)

2、而進(jìn)行信息傳輸,稱為無條件傳送方式。 此種信息傳送方式只適用于簡單的外設(shè)。如開關(guān)和數(shù)碼段顯示器等。 條件查詢傳送方式:CPU通過執(zhí)行程序不斷讀取并測試外部設(shè)備狀態(tài),如果輸入設(shè)備處于準(zhǔn)備好狀態(tài)或輸出設(shè)備為空閑狀態(tài)時,則CPU執(zhí)行傳送信息指令。 由于條件傳送方式是CPU在不斷查詢外部設(shè)備的當(dāng)前狀態(tài)后才進(jìn)行信息傳送,所以也稱為“查詢式傳送”。5.1.2 中斷方式 外部設(shè)備與CPU之間以中斷信號作為數(shù)據(jù)交換的控制信號。當(dāng)外部設(shè)備需要與CPU進(jìn)行數(shù)據(jù)交換時,由接口部件向CPU發(fā)出一個請求信號,CPU響應(yīng)這一中斷請求后,便可在中斷服務(wù)程序中完成一個字節(jié)或一個字的信息交換。 中斷控制方式一般用低速外部設(shè)備與

3、CPU之間的信息交換。 中斷控制方式每操作一次,CPU要打斷原來執(zhí)行的程去執(zhí)行一段中斷服務(wù)程序,對速度較高的外部設(shè)備將會產(chǎn)生信息丟失,因此不能采用。5.2 中斷的基本概念 通常將CPU在正常情況下運行的程序稱為“主程序”,把引起中斷的設(shè)備或事件叫做“中斷源”,由中斷源向CPU發(fā)出的請求中斷信號稱為“中斷請求信號”,CPU接收中斷申請終止現(xiàn)行程序稱而轉(zhuǎn)去為服務(wù)對象服務(wù)稱為“中斷響應(yīng)”,為對象服務(wù)的程序稱為為“中斷服務(wù)程序”(也稱中斷處理程序);現(xiàn)行程序中斷的地方稱為“斷點”,為中斷服務(wù)程序服務(wù)完畢后返回原來的程序稱為“中斷返回”,整個過程成為“中斷”。對比一個生活中看書的例子幫助我們加深理解中斷

4、的過程。MSC-51單片機(jī)中斷結(jié)構(gòu)如圖:5.2.1 MSC-51單片機(jī)中斷源: 對MCS-51單片機(jī)的中斷系統(tǒng)用一句話講叫:“五源中斷,兩級管理”5個中斷源的符號、名稱及產(chǎn)生的條件如下: INT0:外部中斷0,由P32端口線引入,低電平或下跳沿引起。 INT1:外部中斷1,由P33端口線引入,低電平或下跳沿引起。 T0:定時器計數(shù)器0中斷,由T0計滿回零引起。 T1:定時器計數(shù)器l中斷,由T1計滿回零引起。 TIRI:串行IO中斷,串行端口完成一幀字符發(fā)送接收后引起。 由上圖可見,外部中斷有下跳沿引起和低電平引起的選擇;串行中斷有發(fā)送(TI)相接收(R1)的區(qū)別;各個中斷源打開與否,受中斷自身

5、的允許位和總允許位的控制,并具有高優(yōu)先級和低優(yōu)先級的選擇。中斷允許寄存器IE各控制位的含義:EA中斷允許總控制位。 EA=0,屏蔽所有的中斷請求;EA=1,CPU開放中斷。 對各中斷源的中斷請求是否允許,還要取決于各中斷源的中斷允許控制位的狀態(tài)。ES串行口中斷允許位。 ES=0,禁止串行口中斷;ES=1,允許串行口中斷。ET1定時器/計數(shù)器T1的溢出中斷允許位。 ET1=0,禁止T1中斷;ET1=1,允許T1中斷。EX1外部中斷1的溢出中斷允許位。 EX1=0,禁止外部中斷1中斷;EX1=1,允許外部中斷1中斷。ET0定時器/計數(shù)器T0的溢出中斷允許位。 ET0=0,禁止T0中斷; ET0=1

6、,允許T0中斷。EX0外部中斷0的溢出中斷允許位。EX0=0,禁止外部中斷0中斷;EX0=1,允許外部中斷0中斷。5.2.3 中斷允許寄存器5.2.3中斷優(yōu)先級寄存器IP (如表)中斷優(yōu)先級寄存器IP各控制位的含義:PS串行口中斷優(yōu)先級控制位PT1定時器/計數(shù)器T1中斷優(yōu)先級控制位PX1外部中斷1中斷優(yōu)先級控制位PT0定時器/計數(shù)器T0中斷優(yōu)先級控制位PX0外部中斷0中斷優(yōu)先級控制位 若某控制位為1,則相應(yīng)的中斷源規(guī)定為高級中斷;反之,為0,則相應(yīng)的中斷源規(guī)定為低級中斷。每個中斷請求源均可編程為高優(yōu)先級中斷或低優(yōu)先級中斷。優(yōu)先級又分為: 邏輯優(yōu)先級 物理優(yōu)先級 INT0最高 (可以中斷嵌套,最

7、多兩級) T0 INT1 T1 UART最低5.3.1 中斷響應(yīng) 從中斷請求發(fā)生直到被響應(yīng),準(zhǔn)備去執(zhí)行中斷服務(wù)程序,此過程即中斷響應(yīng)過程。中斷響應(yīng)過程一般包括如下幾個階段:1. 中斷采樣 中斷采樣主要是針對外部中斷請求信號進(jìn)行的。由于內(nèi)部中斷請求都發(fā)生在芯片內(nèi)部,可以直接查詢特殊寄存器。在每個機(jī)器周期的S5P2期間,各中斷標(biāo)志采樣相應(yīng)的中斷源,并置位相應(yīng)標(biāo)志。2. 中斷查詢查詢到某中斷標(biāo)志為1,則按優(yōu)先級的高低進(jìn)行處理,即響應(yīng)中斷。 由于中斷請求是隨機(jī)發(fā)生的,CPU無法預(yù)先得知,因此中斷查詢要在指令執(zhí)行的每個機(jī)器周期中不停地重復(fù)執(zhí)行。5.3 中斷整個流程 在MCS-51內(nèi)部,系統(tǒng)要先對中斷源進(jìn)

8、行采樣,然后才進(jìn)行響應(yīng)。在每個機(jī)器周期的S5P2中順序采樣中斷源。在下一個周期的S6按優(yōu)先級順序查詢中斷標(biāo)志;如果中斷標(biāo)志為1,在接下來的機(jī)器周期S1期間按優(yōu)先級進(jìn)行中斷處理。 從中斷請求發(fā)生直到被響應(yīng)去執(zhí)行中斷服務(wù)程序,整個過程均在CPU的控制下有規(guī)律的進(jìn)行。整個過程一般可以分為3個階段:中斷響應(yīng)、中斷處理、中斷返回。3.中斷響應(yīng) 響應(yīng)中斷后,由硬件自動生成長調(diào)用指令“LCALL”,其格式為LCALL addr16,而addr16就是各中斷源的中斷矢量地址。如表所示:響應(yīng)中段過程一般有兩部分構(gòu)成: 首先將程序計數(shù)器PC的內(nèi)容(即斷點地址)壓入堆棧。先低位地址,后高位地址,同時堆棧指針SP加2

9、。 其次將對應(yīng)中斷源的中斷矢量地址裝入程序計數(shù)器PC,去執(zhí)行中斷服務(wù)程序。中斷響應(yīng)是有條件的,包含以下方面: 1.中斷源有中斷請求 2.中斷總允許位EA=1。 3.發(fā)出中斷請求的中斷源的中斷允許控制位為1。 在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在,硬件生成的長調(diào)用指令“LCALL”將被封鎖。 1.CPU正在執(zhí)行一個同級或高優(yōu)先級的中斷服務(wù)程序。 2.正在執(zhí)行的指令尚未執(zhí)行完。 3.正在執(zhí)行中斷返回指令RETI或者對寄存器IE、IP進(jìn)行讀/寫的指令。CPU在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才能響應(yīng)中斷請求。 對于實時性要求高的系統(tǒng),還應(yīng)該考慮中斷響應(yīng)的時間。 注意:中斷服務(wù)程序的

10、放置。各中斷矢量區(qū)僅8個字節(jié)。通常是在中斷矢量區(qū)中安排一條無條件轉(zhuǎn)移指令,使程序執(zhí)行轉(zhuǎn)向在其它地址中存放的中斷服務(wù)程序。5.3.2 中斷處理 當(dāng)CPU響應(yīng)中斷時,將進(jìn)行中斷處理。 首先:由硬件直接產(chǎn)生一個固定的地址,即矢量地址。由矢量地址指出每個中斷源設(shè)備的中斷服務(wù)程序的入口。此種方法通常稱為矢量中斷。 其次:執(zhí)行中斷服務(wù)程序。當(dāng)CPU識別出某個中斷源時,由硬件直接給出一個與該中斷源相對應(yīng)的矢量地址,從而轉(zhuǎn)入各自中斷服務(wù)程序。中斷服務(wù)程序即CPU響應(yīng)中斷后,處理中斷源請求事件的程序。從中斷入口地址開始執(zhí)行,直到返回指令(RETI)為止。此過程一般包括三部分內(nèi)容: 1.是保護(hù)現(xiàn)場。 2.是處理中

11、斷源的請求。 3.是恢復(fù)現(xiàn)場。 所謂現(xiàn)場是指中斷發(fā)生時單片微機(jī)中存儲單元、寄存器、特殊功能寄存器中的數(shù)據(jù)或標(biāo)志位等。例如A、B、Rn等。保護(hù)的方法可以有以下幾種: 1.通過堆棧操作指令PUSH direct。 2.通過工作寄存器區(qū)的切換。 3.通過單片微機(jī)內(nèi)部存儲器單元暫存。 現(xiàn)場保護(hù)一般位于中斷服務(wù)程序的前面。 在結(jié)束中斷服務(wù)程序返回斷點處之前要恢復(fù)現(xiàn)場。與保護(hù)現(xiàn)場的方法對應(yīng),多使用POP 指令。 注意:保護(hù)和恢復(fù)遵循“從哪里來,回哪里去”的原則。ORG 0000H LJMP MAIN ;上電,轉(zhuǎn)向主程序 ORG 0003H ;外部中斷0入口地址 LJMP I_INT0 ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0030H ;主程序MAIN: SETB EX0 ;允許外部中斷0中斷 SETB IT0 ;選擇邊沿觸發(fā)方式 SETB EA ;CPU開總中斷允許位 SJMP $ ;無限執(zhí)行這條語句,等待中斷到來I_INT0: MOV A, #11111110B ;初值賦給累加器A MOV P1,A ;輸出驅(qū)動LED發(fā)光 RETI ;中斷

溫馨提示

  • 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

提交評論