




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、12第7章 中斷控制接口n教學重點教學重點n 8088 CPU的中斷系統的中斷系統n 8259A的中斷工作過程和工作方式的中斷工作過程和工作方式n 中斷服務程序的編寫中斷服務程序的編寫37.1 8088中斷系統n8088的中斷系統采用的中斷系統采用向量中斷向量中斷機制機制n一共可處理一共可處理256個中斷源,中斷向量編號個中斷源,中斷向量編號為為0255,用以區別不同的中斷。,用以區別不同的中斷。n借助專用的中斷控制器借助專用的中斷控制器 Intel 8259A對系對系統中的可屏蔽中斷資源(統中的可屏蔽中斷資源(INTR)進行擴充)進行擴充和管理,和管理, 8259A 的功能有:的功能有:n擴
2、充系統的可屏蔽中斷資源(每片可管理擴充系統的可屏蔽中斷資源(每片可管理8個個中斷,級聯后最多可管理中斷,級聯后最多可管理64個中斷)個中斷)n實現中斷優先級比較實現中斷優先級比較n實現中斷源的識別(通過向總線送中斷矢量)實現中斷源的識別(通過向總線送中斷矢量)47.1.1 8088的中斷類型中斷邏輯中斷邏輯INTO指令指令單步單步中斷中斷除法除法錯誤錯誤INT n指令指令CPU8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7來來自自外外設設的的中中斷斷源源 -INTA可屏蔽中斷申請可屏蔽中斷申請 INTR不可屏蔽中斷申請不可屏蔽中斷申請可屏蔽中斷源可屏蔽中斷源不可
3、屏蔽中斷源不可屏蔽中斷源內部中斷內部中斷INT 3指令指令3n401NMI中斷中斷2不可屏蔽中斷源不可屏蔽中斷源外部中斷外部中斷58088的中斷分類n內部中斷內部中斷內部機制產生內部機制產生n除法錯中斷除法錯中斷(0號號)除運算除運算結果溢出時產生結果溢出時產生n指令中斷指令中斷(n號號)執行執行int n指令后產生(操作碼指令后產生(操作碼CDH)n斷點中斷斷點中斷(3號號)執行執行int 3指令(指令(單字節單字節指令操作碼指令操作碼CCH )用于在調試中設置斷點,程序遇斷點則中斷)用于在調試中設置斷點,程序遇斷點則中斷n溢出中斷溢出中斷(4號號)執行執行into指令,且前面運算有指令,且
4、前面運算有溢出溢出(OF=1)時產生)時產生n單步中斷單步中斷(1號號)TF標志置標志置1后,每執行一條子指令將后,每執行一條子指令將發生一次發生一次n外部中斷外部中斷外部引腳觸發外部引腳觸發n非屏蔽中斷非屏蔽中斷(外設提供向量號外設提供向量號)觸發觸發INTR引腳產生引腳產生n可屏蔽中斷可屏蔽中斷(2號號) 觸發觸發NMI引腳產生引腳產生61. 內部中斷n內部中斷是由于內部中斷是由于8088內部執行程序出現特殊情況內部執行程序出現特殊情況而引起而引起的中斷的中斷n除法錯中斷:除法錯中斷:向量號為向量號為 0n指令中斷(指令中斷(int n):): 向量號為向量號為 nn斷點中斷(斷點中斷(i
5、nt 3 ):): 向量號為向量號為 3n溢出中斷(溢出中斷(into ) : 向量號為向量號為 4n單步中斷:單步中斷:向量號為向量號為 1內部中斷的中斷向量號已由內部中斷的中斷向量號已由Intel公司確定公司確定72. 外部中斷n外部中斷是由于外部中斷是由于8088外部通過外部通過CPU引腳提出中斷引腳提出中斷請求而引起請求而引起的中斷的中斷n非屏蔽中斷非屏蔽中斷(NMI):): 向量號為向量號為 2n外部通過非屏蔽中斷外部通過非屏蔽中斷NMI請求,必須響應請求,必須響應n非屏蔽中斷主要用于處理系統的意外或故障(如奇偶校驗或非屏蔽中斷主要用于處理系統的意外或故障(如奇偶校驗或協處理器運算錯
6、誤等)協處理器運算錯誤等)n可屏蔽中斷可屏蔽中斷(INTR):向量號):向量號由中斷控制器提供由中斷控制器提供n外部通過可屏蔽中斷外部通過可屏蔽中斷 INTR 請求,由標志位請求,由標志位 IF 控制是否響應;控制是否響應;響應時將產生有效的響應時將產生有效的 INTA 信號信號n可屏蔽中斷主要用于外設中斷請求(請求交換數據等服務)可屏蔽中斷主要用于外設中斷請求(請求交換數據等服務)IF = 0 可屏蔽由可屏蔽由 INTR 引腳引發的引腳引發的中斷中斷8中斷標志IF的狀態nIF0:可屏蔽中斷不會被響應(禁止中斷,關中斷,中:可屏蔽中斷不會被響應(禁止中斷,關中斷,中斷屏蔽)斷屏蔽)n系統復位時
7、系統復位時 IF0n任何一個中斷被響應,將使任何一個中斷被響應,將使IF0n執行指令執行指令CLI,可使,可使IF0nIF1:可屏蔽中斷會被響應(允許中斷,開中斷,中斷:可屏蔽中斷會被響應(允許中斷,開中斷,中斷開放)開放)n執行指令執行指令STI,可使,可使IF1n執行指令執行指令IRET后,后,IF 將恢復為中斷前的狀態(即將恢復為中斷前的狀態(即IF=1)明確明確 IF 標志的狀態是關鍵標志的狀態是關鍵97.1.2 8088的中斷響應過程nCPU查詢各中斷的先后順序,查詢各中斷的先后順序,決定決定了各中斷源的優先級別:了各中斷源的優先級別:n軟件中斷軟件中斷n除法錯中斷除法錯中斷n指令中
8、斷指令中斷n溢出中斷溢出中斷n非屏蔽中斷非屏蔽中斷n可屏蔽中斷可屏蔽中斷n單步中斷單步中斷高高低低108088的中斷響應過程NMIN軟件中斷軟件中斷INTRTF=1中斷響應周期中斷響應周期讀中斷向量號讀中斷向量號下條指令下條指令現行指令現行指令IF1NNNNYYYYY執行中斷服務執行中斷服務118088的中斷響應過程(續)Y還有還有NMITEMP1標志寄存器入棧標志寄存器入棧TEMPTF,IFTF0CS:IP入棧入棧獲取中斷向量獲取中斷向量執行服務程序執行服務程序彈出彈出CS:IP彈出標志寄存器彈出標志寄存器返回被中斷程序返回被中斷程序(1)(2)(3)(4)(5)NNY(6)單步中斷單步中斷
9、標志暫存標志暫存128088的中斷響應過程(續)n8088各種中斷源的各種中斷源的優先權優先權,實際上,實際上是指是指被識別的先后順序被識別的先后順序n多種中斷同時請求時,多種中斷同時請求時,最先響應最先響應的的則可能是則可能是單步單步中斷中斷或或 NMI中斷中斷137.1.3 8088的中斷向量表4B4B中斷向量表1KB3FFH0H0號中斷向量號中斷向量IPCSn弄清幾個概念:弄清幾個概念:n中斷向量號中斷向量號N(中斷類型號中斷類型號)n中斷向量(中斷服務程序的入中斷向量(中斷服務程序的入口地址)口地址)n中斷向量表中斷向量表n中斷向量存放的首址:中斷向量存放的首址:N4以下詳述以下詳述1
10、48088的中斷向量和中斷向量表n中斷向量號中斷向量號區別不同中斷源的編號區別不同中斷源的編號0255 ,也,也稱中斷向量號。稱中斷向量號。n中斷向量中斷向量指示中斷服務程序的指示中斷服務程序的入口入口,該地址,該地址包括:包括:偏移地址偏移地址IP 、段地址、段地址CS 。每個中斷向量的。每個中斷向量的低字是偏移地址、高字是段地址,需占用低字是偏移地址、高字是段地址,需占用4個字節個字節(低對低,高對高)。(低對低,高對高)。n中斷向量表中斷向量表8088 微處理器從物理地址微處理器從物理地址000H開開始到始到3FFH(1KB),依次安排),依次安排256個中斷向量。個中斷向量。所占用的所
11、占用的1KB區域,稱區域,稱中斷向量表。中斷向量表。nN號中斷向量存放的首地址號中斷向量存放的首地址N4157.2 內部中斷服務程序n編寫編寫內部中斷內部中斷服務程序與編寫子程序類似服務程序與編寫子程序類似n利用過程定義偽指令利用過程定義偽指令PROC/ENDPn第第1條指令通常為開中斷指令條指令通常為開中斷指令STIn最后用中斷返回指令最后用中斷返回指令IRETn通常采用通常采用寄存器傳遞參數寄存器傳遞參數n主程序需要調用中斷服務程序主程序需要調用中斷服務程序n使用前,需要使用前,需要重新設置重新設置中斷向量中斷向量(入口地址)(入口地址)n利用利用INT n指令調用中斷服務程序指令調用中斷
12、服務程序16例7.1 內部中斷服務程序n編寫:編寫: 80H 號中斷服務程序號中斷服務程序n功能功能:通過通過BIOS功能調用功能調用INT 10H,顯示以,顯示以“0”結尾的字符串。結尾的字符串。n入口參數入口參數:DS:DX存字符串緩沖區首地址存字符串緩沖區首地址(段地址:偏移地址)。(段地址:偏移地址)。17數據段intoffdw ? ;用于保存原中斷向量將來恢復用于保存原中斷向量將來恢復intsegdw ? ;用于保存原中斷向量將來恢復用于保存原中斷向量將來恢復intmsgdb A Instruction Interrupt !db 0dh,0ah,0 ;要顯示的信息要顯示的信息例7.
13、1以下分段介紹程序18保存中斷向量mov ax, 35 80h ;讀出原中斷向量讀出原中斷向量int 21hmov intoff, bx ;保存偏移地址保存偏移地址mov intseg, es;保存段基地址保存段基地址例7.119設置中斷向量的做法push dsmov dx, offset new80hmov ax, seg new80hmov ds, axmov ax, 25 80h ;設置新中斷向量設置新中斷向量int 21hpop ds例7.120調用中斷服務程序mov dx,offset intmsgint 80h ;中斷調用中斷調用例7.1注意比較指令:注意比較指令:int / ca
14、ll21主程序結束mov dx,intoffmov ax,intsegmov ds,axmov ax,25 80h ;恢復原中斷向量恢復原中斷向量 int 21hmov ax,4c00h ;返回返回DOSint 21h例7.122new80h proc sti ;開中斷,允許中斷嵌套開中斷,允許中斷嵌套 push ax ;保護現場保護現場 push bx push si例7.1中斷服務子程序23顯示字符串mov si, dxnew1:mov al, si;取顯示字符取顯示字符cmp al, 0 ;判是否串尾判是否串尾jz new2mov bx, 0 ;調調BIOS中斷中斷mov ah, 0eh
15、 ;子功能號子功能號int 10hinc sijmp new1例7.124退出中斷服務程序new2: pop si;恢復現場恢復現場 pop bx pop ax iret;中斷返回中斷返回new80h endp例7.125用int 21h子功能訪問中斷向量nAH=25 設置中斷向量設置中斷向量n入口參數:入口參數:ds:dx =中斷向量,中斷向量,al =中斷向量號中斷向量號nAH=35 讀取中斷向量讀取中斷向量n入口參數:入口參數:al =中斷向量號中斷向量號n出口參數:出口參數:bx:es =中斷向量中斷向量 設置中斷向量:設置中斷向量: mov dx,intoff mov ax,ints
16、eg mov ds,ax mov ax,25 80h int 21h 讀取中斷向量:讀取中斷向量: mov ax,35 80h int 21h mov intoff, bx mov intseg, es26直接訪問中斷向量(以int 80h為例)n設置中斷向量:設置中斷向量: push ds xor ax,ax mov ds,axlea bx, 80H*4mov word ptr ds:bx, intoff inc bxinc bx mov word ptr ds:bx, intseg pop dsn讀取中斷向量:讀取中斷向量: push ds xor ax,ax mov ds,ax lea
17、bx, 80H*4mov intoff , word ptr ds:bx inc bxinc bx mov intseg, word ptr ds:bx pop ds277.3 8259A中斷控制器nIntel 8259A是可編程中斷控制器(是可編程中斷控制器(PIC)。)。n可配合可配合CPU(I8080/85、I8086/88/286/386等)管等)管理可屏蔽中斷。理可屏蔽中斷。n8259A的基本功能:的基本功能:n1片片8259A可以管理可以管理8級中斷,經級聯最多可擴展至級中斷,經級聯最多可擴展至64級級n每一級中斷都可單獨被屏蔽或允許每一級中斷都可單獨被屏蔽或允許n在中斷響應周期,
18、可提供相應的調用指令(配合在中斷響應周期,可提供相應的調用指令(配合I8080/85 )或中斷向量號(配合)或中斷向量號(配合I8086/88/286/386)n8259A設計有多種工作方式,通過初始化編程進行設置設計有多種工作方式,通過初始化編程進行設置287.3.1 8259A的內部結構和引腳D7D0-INTAINT中斷請求寄存器中斷請求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數據數據總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級聯級聯緩沖器緩沖器比較器比較器-RD-WRA0-CSCAS0CSA1CAS2-SP/-EN優先權判別電路優先權判別電路中斷服務寄存器中斷服務寄存器控制邏輯
19、控制邏輯291. 中斷控制n中斷請求寄存器中斷請求寄存器IRRn記錄中斷請求(記錄中斷請求( IR0IR7 )nDi位為位為1表示相應引腳有中斷請求;為表示相應引腳有中斷請求;為0表示無請求表示無請求n中斷服務寄存器中斷服務寄存器ISRn記錄中斷服務(記錄中斷服務( IR0IR7 )nDi位為位為1表示相應中斷正在服務中;為表示相應中斷正在服務中;為0表示位在服務表示位在服務n中斷屏蔽寄存器中斷屏蔽寄存器IMRn記錄中斷屏蔽(記錄中斷屏蔽( IR0IR7 )nDi位為位為1表示相應中斷被屏蔽(禁止);為表示相應中斷被屏蔽(禁止);為0表示允許表示允許302. 與處理器接口 -CS A0 -RD
20、 -WR功能功能 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數據總線高阻狀態數據總線高阻狀態數據總線高阻狀態數據總線高阻狀態31CAS0 IR0CAS1 IR1CAS2 IR2 IR3-INTA IR4 IR5INT IR6 IR7-SP/-EN CAS0-INTA CAS1 CAS2INT IR0 IR1-SP/-EN IR7CAS0 IR0CAS1 IR1CAS2 IR2 IR3-INTA IR4 IR5INT IR6 IR7-
21、SP/-EN-INTAINTR+5V8259級聯工作示意圖級聯工作示意圖3. 8259A的級連輸出得到響應輸出得到響應的從片編號的從片編號323. 中斷級連n8259A可以可以級連級連,1個個主片主片最多可以級連最多可以級連8個個從片從片,級連時的連接方法:級連時的連接方法:n主片主片級連線級連線CAS0CAS2連至每個從片的連至每個從片的CAS0CAS2,輸出被選中的從片編號輸出被選中的從片編號,INT 線連至線連至CPU的中斷請求輸入端的中斷請求輸入端INTRn從片從片中斷請求信號中斷請求信號 INT連至主連至主8259A的一個中斷請求輸入的一個中斷請求輸入端端IRx;n主、從片的指定:主
22、、從片的指定:n在在非緩沖非緩沖方式下,通過引腳方式下,通過引腳-SP/-EN來來指定:接地指定該片指定:接地指定該片充當從片(充當從片(-SP0);反之則該片充當主片();反之則該片充當主片(-SP1)。)。n在在緩沖緩沖方式下,通過軟件控制字來指定,引腳方式下,通過軟件控制字來指定,引腳-SP/-EN另作另作它用(它用(緩沖器使能緩沖器使能)337.3.2 8259A的中斷過程CAS0CAS2D0D7-SP/-ENIR0IR7CPU響應周期響應周期8259A工作波形工作波形INT第第1個總線周期個總線周期T1 T2 T3 T4ALECLK 第第2個總線周期個總線周期T1 T2 T3 T4第
23、第1個個-INTA前保持高電平前保持高電平 -INTA-LOCK中斷向量中斷向量主片輸出主片輸出級聯信號級聯信號從片接收從片接收347.3.3 8259A的工作方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自動循環方式自動循環方式特殊循環方式特殊循環方式優先權優先權固定固定方式方式優先權循環方式優先權循環方式 設置優先權方式設置優先權方式普通中斷結束方式普通中斷結束方式特殊中斷結束方式特殊中斷結束方式自動中斷結束方式自動中斷結束方式非自動非自動中斷結束方式中斷結束方式 結束中斷方式結束中斷方式 中斷屏蔽方式中斷屏蔽方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式 中斷觸發方式
24、中斷觸發方式邊沿觸發方式邊沿觸發方式電平觸發方式電平觸發方式 數據緩沖方式數據緩沖方式緩沖方式緩沖方式非緩沖方式非緩沖方式 與與CPU配合方式配合方式與與8080/8085 CPU配合配合與與8086/8088 CPU配合配合 級連方式級連方式級連級連不級連不級連351、與CPU的配合方式n與與8080/8085 CPU配合配合 中斷響應時,中斷響應時,-INTA信號信號3次次有效有效,8259A送送CALL XXXXH指令指令(3B)的機器代碼到)的機器代碼到數據總線數據總線;n與與8086/8088 CPU配合配合中斷響應時,中斷響應時, -INTA信號信號2次次有效有效,8259A送相應
25、的送相應的中斷向量號中斷向量號(1B)到數據總線。)到數據總線。8080/85 CPU8259A8086/88CPU8259ACALL XXXXH(3B)中斷向量號(中斷向量號(1B)-INTAINTR-INTAINTR3個個2個個362、級連方式n不級連不級連只用只用1片,如片,如 PC/XTn級連級連可使用可使用29片,如片,如 PC/AT(2片)片)-INTAINTRIR0IR7IR7IR0CAS0CAS2=010INTINTD0D7373、 數據緩沖方式n非緩沖方式非緩沖方式n-SP/-EN引腳作為引腳作為輸入端輸入端n在在8259A級連時,用它選擇該芯片充當主片或從片級連時,用它選擇
26、該芯片充當主片或從片 n緩沖方式緩沖方式n對對8259A的數據線(輸出中斷向量)加的數據線(輸出中斷向量)加緩沖器緩沖器予以予以隔離和驅動隔離和驅動n-SP/-EN引腳作為引腳作為輸出端輸出端,輸出允許信號,用以關,輸出允許信號,用以關閉或開啟緩沖器閉或開啟緩沖器385、 中斷觸發方式n邊沿觸發方式邊沿觸發方式n中斷請求輸入端出現中斷請求輸入端出現上升沿上升沿為為有效的中斷請求信號有效的中斷請求信號n電平觸發方式電平觸發方式n中斷請求端出現中斷請求端出現高電平高電平為有效為有效的中斷請求信號的中斷請求信號394、設置優先權方式n普通全嵌套方式普通全嵌套方式n8259A的中斷的中斷優先權順序固定
27、不變優先權順序固定不變,從高到低依次為,從高到低依次為:IR0、IR1、IR2、IR7n中斷請求后,中斷請求后,8259A對對當前請求中斷中優先權最高的中斷當前請求中斷中優先權最高的中斷 IRi 予以予以響應響應,將其向量號送上數據總線,對應,將其向量號送上數據總線,對應ISR的的 Di位置位,至到中斷結束(位置位,至到中斷結束(ISR的的 Di 位復位)位復位)n在在ISR的的 Di 位置位期間,位置位期間,禁止再發生同級和低級優先權禁止再發生同級和低級優先權的中斷的中斷,但允許高級優先權中斷的嵌套,但允許高級優先權中斷的嵌套n特殊全嵌套方式特殊全嵌套方式允許同級中斷嵌套(允許同級中斷嵌套(
28、用于級連主片用于級連主片)n優先權自動循環方式優先權自動循環方式最高優先權自動轉移到相鄰的最高優先權自動轉移到相鄰的低優先級中斷源低優先級中斷源n優先權特殊循環方式優先權特殊循環方式最高優先權轉移到由指令指定最高優先權轉移到由指令指定的中斷源的中斷源40中斷結束字n什么是什么是8259A的的中斷結束字中斷結束字(EOI)?)?n8259A判斷中斷服務寄存器判斷中斷服務寄存器ISR的狀態:的狀態:nISRi=1,表示該中斷源正在得到服務;一般情,表示該中斷源正在得到服務;一般情況下,將況下,將不再響應同級或低級的中斷不再響應同級或低級的中斷(但采用但采用特殊屏蔽方式時,可響應低級別的中斷特殊屏蔽
29、方式時,可響應低級別的中斷)nISRi=0,表示該中斷服務已結束,表示該中斷服務已結束,可響應同級可響應同級或低級別的中斷或低級別的中斷。n用指令向用指令向8259A送中斷結束字,可以使送中斷結束字,可以使ISR的某位的某位清清0n該操作與該操作與CPU無關。無關。415、結束中斷處理方式普通中斷結束方式普通中斷結束方式中斷結束時用戶用指令送中斷結束時用戶用指令送結束字結束字,清清0ISR中當前優先級最高的中斷服務標志中當前優先級最高的中斷服務標志配合全嵌套優先權方式使用配合全嵌套優先權方式使用當當CPU用輸出指令往用輸出指令往8259A發出普通中斷結束發出普通中斷結束EOI命令命令時,時,8
30、259A就會對就會對ISR中當前優先級最高的中斷服務標中當前優先級最高的中斷服務標志進行清志進行清0特殊中斷結束方式特殊中斷結束方式中斷結束時用戶用指令送中斷結束時用戶用指令送特定的結束字,指明要清除特定的結束字,指明要清除ISR中的哪一位中的哪一位配合循環優先權方式使用配合循環優先權方式使用自動中斷結束方式自動中斷結束方式 中斷響應后自動送結束字,中斷響應后自動送結束字,清清0 ISR中當前優先級最高的中斷服務標志。中當前優先級最高的中斷服務標志。426、屏蔽中斷源方式n普通屏蔽方式普通屏蔽方式nIMRi=1,對應的中斷,對應的中斷 IRi 將被屏蔽將被屏蔽,該中,該中斷請求將不能從斷請求將
31、不能從8259A送到送到CPUnIMRi=0,則允許,則允許對應的對應的中斷產生中斷產生n特殊屏蔽方式特殊屏蔽方式允許發生低級的中斷允許發生低級的中斷嵌套,用于級連時的主片。嵌套,用于級連時的主片。nIMRi=1,但,但ISRi=0,中斷,中斷IRi被屏蔽;但被屏蔽;但允許發生低級的中斷。允許發生低級的中斷。43帶“特殊”字樣的中斷管理功能n特殊全嵌套特殊全嵌套允許允許同級同級中斷發生,用于級連主中斷發生,用于級連主片片n特殊屏蔽特殊屏蔽屏蔽屏蔽同級同級中斷,但允許中斷,但允許低級低級中斷發中斷發生生n特殊中斷結束特殊中斷結束指定要清除的中斷服務標志的指定要清除的中斷服務標志的編碼(編碼(xx
32、x)n特殊優先級循環特殊優先級循環指定當前擁有最高優先級的指定當前擁有最高優先級的引腳編碼(引腳編碼(xxx)447.3.4 8259A的編程n初始化編程初始化編程n8259A開始工作前開始工作前n用戶必須用戶必須對對8259A進行初始化編程。通過寫入進行初始化編程。通過寫入初始初始化命令字化命令字ICW對對8259A進行初始化進行初始化n中斷操作編程中斷操作編程n在在8259A工作期間工作期間n可以隨時向可以隨時向8259A寫入寫入操作命令字操作命令字OCW,使之按,使之按用戶設置的新的工作方式進行工作用戶設置的新的工作方式進行工作n用戶還可以通過寫用戶還可以通過寫操作命令字操作命令字OCW
33、通知通知8259A,下面的操作要讀取下面的操作要讀取8259A中的狀態信息,以便了解中的狀態信息,以便了解其工作情況其工作情況451. 初始化命令字ICWn8259A在開始工作前必須寫入初始化命令字在開始工作前必須寫入初始化命令字n初始化命令字初始化命令字ICW最多可以有最多可以有4個:個:ICW1ICW4n必須按照以上順序必須按照以上順序依次依次寫入寫入n其中其中 ICW1 和和 ICW2 是必須的是必須的nICW3和和ICW4是否需要,由具體的工作方式決定是否需要,由具體的工作方式決定ICW1ICW4 的寫入流程的寫入流程46ICW11LTIMSNGLIC4D7D6D5D4D3D2D1D0
34、表示可以任意表示可以任意為為1為為0都可以(建議為都可以(建議為0) 1只能為只能為1,作為標志,作為標志中斷觸發方式:中斷觸發方式:LTIM1,電平觸發方式,電平觸發方式LTIM0,邊沿觸發方式,邊沿觸發方式 規定單片或級連方式:規定單片或級連方式:SNGL1,單片方式,單片方式SNGL0,級連方式,級連方式是否寫入是否寫入ICW4IC41,要寫入,要寫入ICW4IC40,不寫入,不寫入ICW4,即,即ICW4規定的位全為規定的位全為047ICW2T7T6T5T4T3D7D6D5D4D3D2D1D0設置中斷向量號設置中斷向量號nT7T3為中斷向量號的高為中斷向量號的高5位位n低低3位由位由8
35、259A自動確定:自動確定:nIR0為為000、IR1為為001、IR7為為11148ICW3S7S6S5S4S3S2ID2S1ID1S0ID0D7D6D5D4D3D2D1D0級連命令字級連命令字n主片主片:Si1,說明其對應引腳,說明其對應引腳IRi 上連上連接有從片;否則引腳接有從片;否則引腳IRi上沒有連接從片上沒有連接從片n從片從片:ID0ID2 編碼說明該從片的編碼說明該從片的INT引腳接到了主片上的哪個引腳接到了主片上的哪個IRi引腳引腳針對從片針對從片針對主片針對主片49ICW4000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:特殊全嵌套方
36、式(特殊全嵌套方式(SFNM1)普通全嵌套方式(普通全嵌套方式(SFNM0)數據線的緩沖方式:數據線的緩沖方式:緩沖方式(緩沖方式(BUF1)非緩沖方式(非緩沖方式(BUF0) 緩沖方式下的主片緩沖方式下的主片/從片選擇:從片選擇:主片(主片(M/S=1)從片(從片(M/S=0)中斷結束方式:中斷結束方式:自動中斷結束(自動中斷結束(AEOI1)非自動中斷結束(非自動中斷結束(AEOI0)要配合的微處理器類型:要配合的微處理器類型:8086/8088( PM1) 16位位CPU8080/8085( PM0) 8位位CPU50初始化主片8259Amov al,11h;寫入寫入ICW1out 20
37、h,aljmp intr1intr1:mov al,08h;寫入寫入ICW2out 21h,aljmp intr2intr2:mov al,04h;寫入寫入ICW3out 21h,aljmp intr3intr3:mov al,1h;寫入寫入ICW4out 21h,al中斷控制器的初始化程序段PC機上機上8259地址:地址:20h-21h51初始化從片8259Amov al,11h;寫入寫入ICW1out 0a0h,aljmp intr5intr5: mov al,70h;寫入寫入ICW2out 0a1h,aljmp intr6intr6: mov al,02h;寫入寫入ICW3out 0a1
38、h,aljmp intr7intr7: mov al, 01h;寫入寫入ICW4out 0a1h,al中斷控制器的初始化程序段該體中該體中8259的兩個地址:的兩個地址:0a0h、0a1h522. 操作命令字OCWn8259A工作期間,可以隨時接受操作命令字工作期間,可以隨時接受操作命令字OCWnOCW共有共有3個:個:OCW1OCW3n寫入時沒有順序要求,需要哪個寫入時沒有順序要求,需要哪個OCW就寫入就寫入那個那個OCW53OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字n其內容將寫入中斷屏蔽寄存器其內容將寫入中斷屏蔽寄存器IMRnMi=1,則禁
39、止對應,則禁止對應IRi中斷;中斷;nMi=0,則允許對應,則允許對應IRi中斷。中斷。n各位互相獨立。各位互相獨立。54OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配合使用配合使用產生中斷結束產生中斷結束EOI命令和改命令和改變優先權順序變優先權順序L2L0的的3位編碼位編碼指定指定IR引腳引腳 55OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM設置中斷屏蔽方式設置中斷屏蔽方式P、RR和和RIS規定隨后讀取的規定隨后讀取的狀狀態字態字含義含義563. 讀取狀態字nCPU可隨時讀出可隨時讀出IRR、ISR、IM
40、R和和查詢字查詢字nA0為低(偶地址)時為低(偶地址)時n由由OCW3中中RR和和RIS位編碼決定讀取的是位編碼決定讀取的是IRR或或ISR,n由由OCW3中中P位決定讀取的是位決定讀取的是查詢字查詢字,查詢字可反查詢字可反映映8259A是否有中斷請求,及哪個引腳上有中斷是否有中斷請求,及哪個引腳上有中斷請求請求nA0為高(奇地址)時,讀取的是為高(奇地址)時,讀取的是IMR57查詢字IW2W1W0D7D6D5D4D3D2D1D0中斷位中斷位I位為位為1,有外設請求中斷有外設請求中斷W2W0的編碼的編碼當前中斷請求的最當前中斷請求的最高優先級高優先級584. 命令字和狀態字的區別方法n利用利用
41、讀寫信號讀寫信號區別寫入的控制寄存器和讀出的區別寫入的控制寄存器和讀出的狀態寄存器狀態寄存器n利用利用地址信號地址信號區別不同區別不同I/O地址的寄存器地址的寄存器n由由控制字中的控制字中的標志位標志位說明是哪個寄存器說明是哪個寄存器n由芯片內由芯片內順序控制邏輯順序控制邏輯按一定順序操作不同的按一定順序操作不同的寄存器寄存器n由前面的控制字(由前面的控制字(引導字引導字)決定后續操作的寄)決定后續操作的寄存器存器這是接口電路中常用的方法這是接口電路中常用的方法597.4 8259A在IBM PC系列機上的應用CAS0CAS2 8259A定時器時鐘中斷定時器時鐘中斷鍵盤中斷鍵盤中斷保留保留異步
42、通信異步通信COM2中斷中斷異步通信異步通信COM1中斷中斷并行打印機并行打印機LPT2中斷中斷軟盤中斷軟盤中斷并行打印機并行打印機LPT1中斷中斷A0-INTR CS IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 A0 -CS-INTA-RD-WR對比對比829A在在IBM PC/AT機的應用機的應用829A在在IBM PC/XT機上的應用機上的應用+5VD0D7INT-SP/-ENPC/XT機的機的外中斷管理外中斷管理608259A在IBM PC/AT上的應用CAS02CAS02+5V主主8259A80286 CPUINTRD0D7-SP/-ENINTD0
43、D7日時鐘日時鐘鍵盤鍵盤串行口串行口2串行口串行口1并行口并行口2軟盤軟盤并行口并行口1A0-INTR1 CS IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 A0 -CS 從從8259AD0D7INT-SP/-EN實時鐘實時鐘改向改向0AH中斷中斷保留保留保留保留保留保留協處理器協處理器硬盤硬盤保留保留A0-INTR2 CS IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 A0 -CS系統總線系統總線B25B24B23B22B21系統總線系統總線B4D3D4D5D6D7-INTA-RD-WR-INTA-IOR-IOW
44、-INTA-RD-WR-S0 -S282288級聯級聯61PC機中8259A應用注意事項n利用利用上升沿上升沿做為中斷請求做為中斷請求IRQ的有效信號的有效信號nIRQ0IRQ7中斷向量號依次為中斷向量號依次為08H0FHnIRQ8IRQ15中斷向量號依次為中斷向量號依次為70H77H( PC/AT機)機)n采用普通全嵌套優先權方式,中斷優先權從高到低順序為采用普通全嵌套優先權方式,中斷優先權從高到低順序為IRQ0IRQ2、IRQ8IRQ15(級連從片級連從片)、IRQ3IRQ7,且不能改變,且不能改變n采用普通中斷結束采用普通中斷結束EOI方式,需在中斷服務程序最后發送方式,需在中斷服務程序
45、最后發送普通普通EOI命令命令n一般采用普通屏蔽方式,通過寫一般采用普通屏蔽方式,通過寫IMR相應位為相應位為0允許中斷,允許中斷,應注意不要破壞原屏蔽狀態。應注意不要破壞原屏蔽狀態。627.5 外部中斷服務程序n編寫編寫外部可屏蔽中斷服務程序外部可屏蔽中斷服務程序,需注意:,需注意:n中斷服務結束時應向中斷服務結束時應向8259發送發送中斷結束命令中斷結束命令EOI(OCW2)n一般只能采用一般只能采用存儲單元存儲單元來來傳遞參數傳遞參數n不能使用不能使用DOS系統功能調用系統功能調用(DOS為單用為單用戶單任務操作系統,不能重入)戶單任務操作系統,不能重入)n中斷服務程序要盡量中斷服務程序
46、要盡量短小短小,以免影響系統的,以免影響系統的實時性實時性637.5 外部中斷服務程序(續)n編寫主程序,需注意:編寫主程序,需注意:n修改中斷向量修改中斷向量n控制控制CPU的中斷允許標志的中斷允許標志n設置設置8259A的中斷屏蔽寄存器的中斷屏蔽寄存器64例題7.2 可屏蔽中斷服務程序n在在PC機中:機中:n8259A的的IRQ0(其向量號為(其向量號為08H)中斷請求來)中斷請求來自定時器自定時器8253,每隔,每隔55ms產生一次定時中斷產生一次定時中斷n例中,例中, 修改后的修改后的 08H 號中斷服務程序將顯示號中斷服務程序將顯示一個字符串,一個字符串, 10次中斷共顯示次中斷共顯
47、示10個字符串個字符串n用內存單元(用內存單元(共享變量共享變量)在主程序與外部中斷)在主程序與外部中斷服務程序之間傳遞參數:服務程序之間傳遞參數:中斷發生的次數中斷發生的次數n顯示信息安排在共同的數據段中顯示信息安排在共同的數據段中65數據段intmsgdb A 8259A IR0 Interrupt !db 0dh,0ah,0counterdb 0例7.266保存中斷向量mov ax,35 08hint 21hpush bx;保存偏移地址保存偏移地址push es;保存段基地址保存段基地址例7.267設置中斷向量clipush ds ;保護保護dsmov dx,offset new08h
48、;中斷入口地址中斷入口地址mov ax,seg new08hmov ds,axmov ax,25 08hint 21hpop ds ;恢復恢復ds例7.268設置中斷寄存器in al,21h ;讀讀IMRpush axand al,0feh ;允許允許IRQ0(接(接8253)out 21h,almov counter,0 ;設置中斷次數初值設置中斷次數初值sti ;開中斷開中斷例7.269循環等待中斷start1:cmp counter,10jb start1;中斷中斷10次退出次退出例7.210次次8253定時器中斷定時器中斷就發生在該循環當中就發生在該循環當中70主程序結束clipop
49、axout 21h,alpop dxpop dsmov ax,25 08hint 21hstimov ax,4c00hint 21h例7.2A 8259A Interrupt !A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt !A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! 71new08hprocsti ;開中斷開中斷push ax ;
50、保護寄存器保護寄存器push bxpush dsmov ax,data ;data表示數據段地址表示數據段地址mov ds,ax ;設置數據段設置數據段DS例7.2進入中斷服務程序72中斷處理 inc counter mov si,offset intmsg;顯示信息顯示信息 call dpstri ; dpstri為為顯示子程序顯示子程序 ; 注意其中不能使用注意其中不能使用DOS調用調用例7.273退出中斷服務程序mov al,20h ;送中斷結束字送中斷結束字out 20h,alpop ds ;恢復寄存器恢復寄存器pop bxpop axiret ;中斷返回中斷返回new08hendp例
51、7.274顯示字符串子程序dpstriproc ;顯示字符串子程序顯示字符串子程序push axpush bxdps1:lodsb ;用用 si 指針取一字符到指針取一字符到 alcmp al,0;判是否結束標志判是否結束標志jz dps2例7.275顯示字符串子程序(續)mov bx,0 ;顯示顯示1個字符個字符mov ah,0eh ; 0eh為子功能號為子功能號int 10h ;BIOS功能調用功能調用可重入可重入jmp dps1dps2:pop bxpop axretdpstriendp例7.2767.6 駐留中斷服務程序n內存駐留內存駐留TSR (Terminate and Stay
52、Resident) 程序程序n應用程序運行后仍然應用程序運行后仍然保存保存在在主存主存中,可以被中,可以被其他程序調用其他程序調用n利用利用DOS功能調用功能調用 31H 代替代替 4CH 終止程序終止程序n小型駐留程序常編寫成小型駐留程序常編寫成 .COM程序,但駐留程程序,但駐留程序也可編成序也可編成 .EXE程序程序n需要駐留內存的程序段要書寫在其他代碼的需要駐留內存的程序段要書寫在其他代碼的前面前面77例題7.3 報時中斷駐留服務程序n在在PC機中機中n系統系統 08H 號中斷服務程序中又調用了號中斷服務程序中又調用了 INT 1CH 指令指令中斷,該中斷原來未安排任何服務,是留給用戶
53、的中斷,該中斷原來未安排任何服務,是留給用戶的軟軟中斷接口中斷接口,以便每,以便每 55ms(tick) 能執行能執行1次用戶的任務。次用戶的任務。n每隔每隔 55ms(tick) 調用這個報時中斷,中斷調用這個報時中斷,中斷 65543 次就次就是時間過了是時間過了1小時小時n該例編寫駐留內存的該例編寫駐留內存的 INT 1CH 中斷服務程序用于整點中斷服務程序用于整點報時,程序功能是每過報時,程序功能是每過1小時顯示小時顯示1條信息條信息n執行此程序后,該報時中斷服務程序將駐留內存執行此程序后,該報時中斷服務程序將駐留內存 注意:因注意:因 65543=65536+7,假定用,假定用2個字
54、來記個字來記錄中斷發生的次數,則每經過錄中斷發生的次數,則每經過1小時有:小時有: 高字高字=高字高字+1 低字低字=低字低字+7 低字能被低字能被7整除時表示時間為整點整除時表示時間為整點78new1chproc ;該中斷程序將駐留內存該中斷程序將駐留內存sti ;開中斷開中斷push si ;保護寄存器保護寄存器push dsmov si,cs ;com程序程序數據和代碼共段數據和代碼共段mov ds,si ;設置數據段設置數據段DSadd countl,1 ;處理記錄處理記錄tick的低字的低字adc counth,0 ;處理記錄處理記錄tick的高字的高字例7.3進入中斷服務程序79中斷處理cmp countl,7 ;判低字為判低字為7否否jnz
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024四川長虹模塑科技有限公司招聘塑壓輔助工等崗位1084人筆試參考題庫附帶答案詳解
- 九年級數學下冊 第27章 圓27.2 與圓有關的位置關系3切線第2課時 切線長定理與三角形的內切圓教學設計 (新版)華東師大版
- 中考專題之勾畫隱圓,破解最值教學設計 2023-2024學年北師大版數學九年級下冊
- 2024四川省水電投資經營集團有限公司公開選聘所屬公司財務總監5人筆試參考題庫附帶答案詳解
- 專題03 情境補寫考點(教案)2025年新高考語文一輪復習考點滿分寶典 學案
- 九年級數學上冊 第23章 圖形的相似23.6 圖形與坐標 2圖形的交換與坐標教學設計 (新版)華東師大版
- 55018《計算機控制技術(第2版)》于海生版本教學大綱
- 化學九年級上冊第1節 構成物質的基本微粒教案設計
- 人教部編版七年級上冊第二單元 夏商周時期:早期國家的產生與社會變革第五課 青銅器與甲骨文教學設計
- 人教部編版七年級上冊第七課 戰國時期的社會變化教學設計
- 山西同文職業技術學院嬰幼兒托育服務與管理人才培養方案
- 2025人教版高中物理必修一學考知識點復習指導課件
- 部編版(2024)三年級道德與法治上冊第12課《生活離不開規則》教學課件
- 初級家政服務員近年考試真題題庫(含真題、典型題)
- 05生產制造指令單
- 書法測評基礎理論知識單選題100道及答案解析
- 河南省多校聯考2023-2024學年高一下學期4月期中物理試題
- Endat編碼器在AX5000系列伺服上使用說明
- 第十一章-新聞事業管理-《新聞學概論》課件
- 湘潭、成都工廠VDA63-2023審核員培訓考核附有答案
- 招標代理機構入圍項目技術投標方案(技術方案)
評論
0/150
提交評論