微型計算機原理及應用第7章課件_第1頁
微型計算機原理及應用第7章課件_第2頁
微型計算機原理及應用第7章課件_第3頁
微型計算機原理及應用第7章課件_第4頁
微型計算機原理及應用第7章課件_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第7章 中斷及應用技術(shù)7.1. 中斷系統(tǒng) (1)中斷 CPU正在執(zhí)行某一段程序的過程中,如果外界或內(nèi)部發(fā)生了緊急事件,要求CPU暫停正在運行的程序轉(zhuǎn)去執(zhí)行這個緊急事件的處理程序,待處理完后再回到被停止執(zhí)行程序的間斷點,繼續(xù)執(zhí)行原來被打斷了的程序,這一過程稱為中斷。 (2)中斷源 產(chǎn)生中斷請求的事件叫中斷源。 (3)中斷請求 中斷源向CPU發(fā)出的申請中斷的信號。中斷源只有在自身未被屏蔽情況下才能發(fā)中斷請求。 (4)可屏蔽中斷與不可屏蔽中斷 所謂“屏蔽”是中斷源的中斷請求信號CPU拒絕響應。凡是微處理器內(nèi)部能夠“屏蔽”的中斷,稱為可屏蔽中斷;凡是微處理器內(nèi)部不能夠“屏蔽”中斷,稱為不可屏蔽中斷,

2、通常是由內(nèi)部的中斷觸發(fā)器(或中斷允許觸發(fā)器)來控制的。 (5)中斷優(yōu)先權(quán) CPU需要規(guī)定各個中斷源的優(yōu)先級,使CPU在多個中斷源同時發(fā)出中斷請求時能找到優(yōu)先級最高的中斷源。 (6)中斷響應 CPU收到中斷源的中斷請求后,并不立即響應,而是在一定時刻、滿足一定條件下,才能響應中斷源的請求。 (7)中斷源識別及中斷判優(yōu) 1)查詢中斷 中斷源識別包括兩個方面:確定中斷源和找到該中斷服務程序的首地址。 查詢中斷采用硬件電路與軟件程序查詢相結(jié)合的方式,來確定中斷源及中斷處理程序的人口地址。斷源查詢方式硬件原理示意圖 : 設中斷源的優(yōu)先級由高到低的順序為:ABCD 查詢方式程序如下: INAL,IPORT

3、;從輸入接口讀取D0D3.TESTAL,01H;是設備A請求嗎?JNZA;是,轉(zhuǎn)設備A中斷服務程序.TESTAL,02H;否,是設備B請求嗎?JNZB;是,轉(zhuǎn)設備B中斷服務程序.TESTAL,04H;否,是設備C請求嗎?JNZC ;是,轉(zhuǎn)設備C中斷服務程序.TESTAL,08H;否,是設備D請求嗎?JNZ D ;是,轉(zhuǎn)設備D服務程序. 2)中斷優(yōu)先級編碼 通過硬件設置中斷優(yōu)先級編碼電路見圖6-12。 (8) 中斷過程 中斷過程主要包括: 中斷請求; 中斷判優(yōu); 中斷響應; 中斷處理(執(zhí)行中斷服務程序); 中斷返回。7.1.2 . 80 x86中斷系統(tǒng) (1)8086中斷源 8086中斷系統(tǒng)的中

4、斷源分為兩大類:內(nèi)部中斷和外部中斷, 1)內(nèi)部中斷 由CPU本身啟動或執(zhí)行中斷指令產(chǎn)生的中斷稱為內(nèi)部中斷。 內(nèi)部中斷是不可屏蔽中斷,其中斷源為兩種情況:執(zhí)行軟件中斷指令(INT n)產(chǎn)生的中斷;由硬件自動產(chǎn)生中斷請求,然后通過調(diào)用中斷指令產(chǎn)生的中斷。 2)外部中斷 外部中斷是由外部設備作為中斷源發(fā)出請求信號引起的中斷。 可屏蔽中斷: 在80 x86系統(tǒng)中,可屏蔽中斷由外部設備的中斷請求信號,通過中斷控制器8259輸出高電平觸發(fā)CPU引腳INTR。當中斷允許標志位IF=1,CPU才能響應INTR的中斷請求。 不可屏蔽中斷:所謂不可屏蔽中斷就是CPU必須響應的中斷,該中斷不受中斷允許標志位IF限制

5、,不可屏蔽中斷由中斷源的中斷請求信號以電壓正跳變(即邊沿觸發(fā))方式觸發(fā)CPU引腳NMI。這種中斷一旦產(chǎn)生,在CPU內(nèi)部直接產(chǎn)生中斷類型號為2的中斷。(2)中斷向量表 8086系統(tǒng)提供支持最多256種不同的中斷,為了便于管理和方便編程,256種中斷分別以0255的序號表示中斷的類型號(如除法出錯為0號中斷,NMI為2號中斷等)。 每一種類型的中斷,都必須有相應的中斷處理程序,中斷服務程序的入口地址稱為中斷向量。 每個中斷向量占用存儲單元4個字節(jié),前兩個字節(jié)(低位在前高位在后)存儲中斷服務程序人口地址的16位段內(nèi)地址(即偏移量IP),后兩個字節(jié)(低位在前高位在后)存儲中斷服務程序人口地址的16位段

6、地址(即段地址CS)。按照中斷類型碼由小到大的順序,把256個中斷的中斷向量集中地存放在連續(xù)的存儲空間中,這個存儲空間稱為中斷向量表。 中斷向量表固定存放在存儲器的地址為: 0000:00000000:03FFH的低端空間; 共2564=1024個字節(jié)。 中斷向量地址中斷向量在中斷向量表中的存儲地址。中斷類型號n與中斷向量地址的關(guān)系式: 中斷向量地址n4 例如,1AH類中斷,其中斷向量地址應為n41AH4=68H。 (3)中斷類型號的獲取 8086CPU在響應中斷后,必須獲取該中斷的中斷類型碼。 對于可屏蔽中斷由CPU的引腳INTR引入,其中斷類型號由中斷控制器芯片8259(下面介紹)在初始化

7、編程時確定。 內(nèi)部中斷和異常處理及非屏蔽中斷時,系統(tǒng)自動產(chǎn)生中斷類型號并轉(zhuǎn)入相應的中斷處理程序入口。 對于軟件中斷INT n指令,指令中n即為中斷類型碼。 例如,某中斷源向CPU發(fā)出中斷請求并給出給出中斷類型碼n,由于每個中斷向量占用4個字節(jié)單元,故類型碼為n的中斷向量在中斷向量表中存儲單元的地址為n4,CPU找到該地址對應的4個內(nèi)存字節(jié)單元,將前2字節(jié)單元送入IP,后兩字節(jié)單元的內(nèi)容送入CS后,由此轉(zhuǎn)入中斷服務程序。 7.2 8259A可編程中斷控制器 80 x86系統(tǒng)采用專用的中斷控制器芯片8259A實現(xiàn)外部中斷與CPU的接口功能。 1. 8259A中斷控制器邏輯功能 1)一片8259A可

8、管理8個中斷請求,具有八級優(yōu)先權(quán)控制??梢酝ㄟ^對8259編程進行指定,并把當前優(yōu)先級最高的中斷請求送到CPU的INTR端。 2)可通過多個8259A的級連。 3)對任何一級中斷可實現(xiàn)單獨屏蔽。 4)當CPU響應中斷時,向CPU提供相應中斷源的中斷向量。 5)具有多種優(yōu)先權(quán)管理模式,且這些管理模式多能動態(tài)改變。 2. 8259A內(nèi)部結(jié)構(gòu)及引腳功能 8259A的內(nèi)部邏輯結(jié)構(gòu): 中斷請求寄存器(IRR) 優(yōu)先級分析器 中斷服務寄存器(ISR) 中斷屏蔽寄存器(IMR) 數(shù)據(jù)總線緩存器、讀/寫控制電路 級聯(lián)緩沖器/比較器. 見教材圖6-16。 3. 8259A編程 8259A有兩種寄存器可以通過編程實

9、現(xiàn)對8259的初始化設置和工作方式的選擇。 (1)初始化命令字寄存器 8259A在開始工作之前,必須進行初始化編程。 初始化編程主要包括以下內(nèi)容: 設置中斷請求的觸發(fā)方式(電平觸發(fā)或邊沿觸發(fā)); 設置8259A是單片工作方式還是多片級聯(lián)工作方式、 是主片還是從片; 設置中斷源的中斷類型碼(只需設置IRQ0的中斷類型碼); 8259A共有4個初始化 命令字,它們必須按順序填寫,且ICW1寫在8259A偶地址端口中,其余3個寫于8259A奇地址端口中 。 ICW1:決定8259A的工作方式; ICW2:設定可屏蔽中斷的中斷類型碼(高5位); ICW3:用于級聯(lián)方式; ICW4:設定8259A的優(yōu)先

10、級管理方式,EOI方式等 【例】設8259A的偶地址端口為80H、奇地址端口為81H、單片使用、上升邊沿觸發(fā)。初始化程序為:MOV AL,13H;設置ICW1OUT 80H,AL;MOV AL,60H;設置 ICW2 (中斷類型碼為60H67H)OUT 81,AL (2)操作控制字寄存器OCW1OCW3: 在初始化編程后,8259A就可以開始工作, CPU可以向8259A發(fā)出一些控制命令,這些控制命令稱為操作命令字,它們存放在寄存器OCW1,OCW2和OCW3中。 OCW1:用來設置中斷源的屏蔽狀態(tài); OCW2:用來設置中斷結(jié)束的方式和修改為循環(huán)方式的中斷優(yōu)先權(quán)管理方式; OCW3:用來設置特

11、殊屏蔽方式和查詢方式,并用來控制8259A內(nèi)部狀態(tài)字IRR,ISR的讀出。 4.基于Protues軟件的8259接口電路仿真調(diào)試在計算機接口電路中,通??梢圆捎肞rotues仿真軟件環(huán)境對其進行軟硬件仿真調(diào)試。在已經(jīng)安裝Protues軟件(本節(jié)為Proteus7.10版本)的計算機系統(tǒng)中,可以在桌面雙擊ISIS 7 Professional快捷方式圖標 ,或者單擊按鈕“開始”“所有程序”“Proteus 7 Professional”“ISIS 7 Professional”, ISIS程序啟動之后,彈出主工作窗口。如圖7-11所示。例:8259外部中斷控制74LS273接8只LED燈移動點亮

12、 圖7-12 8259A中斷控制LED燈仿真原理圖匯編語言源程序見P223 7.3 中斷應用 1. ROM BIOS中斷調(diào)用 BIOS(Basic I/O System)即基本輸入/輸出系統(tǒng)。在80 x86微機系統(tǒng)中,BIOS被固化在為0FE000H開始的8KB的ROM區(qū),又稱ROM BIOS。 BIOS中斷服務程序的調(diào)用步驟為: 在AH寄存器中設置需要調(diào)用的中斷服務程序的功能號。 設置中斷服務程序的入口。 通過INT n指令調(diào)用BIOS處理程序,n為中斷類型碼。 有些處理程序結(jié)束后,可以取得出口參數(shù)。 【例】指令:INT 16H,AH=0,功能:從鍵盤讀入一個字符送人AL。 人口參數(shù):AH=

13、0 出口參數(shù):AL 指令段: MOV AH, 0;功能0 INT 16H;從鍵盤輸入一個字符, 該 字符的ASCII碼送人AL. 2. DOS系統(tǒng)功能調(diào)用 DOS(操作系統(tǒng))系統(tǒng)功能調(diào)用為程序員提供的80多個常用子程序,可在匯編語言程序中直接調(diào)用。 DOS系統(tǒng)功能調(diào)用步驟為: 在AH寄存器中設置調(diào)用子程序的功能號。 根據(jù)所調(diào)用功能號設置入口參數(shù)。 系統(tǒng)功能調(diào)用INT 21H指令轉(zhuǎn)入子程序入口。 子程序運行完畢后,按規(guī)定取得出口參數(shù)。 【例】功能號AH=2,功能:將DL寄存器中的ASCII字符送屏幕顯示。 人口參數(shù):AH=0 ,DL的內(nèi)容為字符的ASCII碼。 指令段: MOVDL, A;欲顯示字符 MOVAH, 2; INT 21H;屏幕顯示字符A. DOS系統(tǒng)功能調(diào)用中AH=25H的功能為:設置中斷向量表,其參數(shù)如下: 設置中斷向量: 人口參數(shù):AH=25H AL=中斷類型號 DS:DX=中斷

溫馨提示

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

最新文檔

評論

0/150

提交評論