




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第8 8章章 中斷技術中斷技術8.1 8.1 中斷的概念與類型中斷的概念與類型8.1.18.1.1 中斷的概念中斷的概念1 1、中斷:是指、中斷:是指CPUCPU在正常運行程序時,由于內部在正常運行程序時,由于內部/ /外外部事件或由程序,而轉到為中斷事件服務的程序部事件或由程序,而轉到為中斷事件服務的程序中去,服務完畢再返回執行原程序,這一過程稱中去,服務完畢再返回執行原程序,這一過程稱為中斷。為中斷。 硬件中斷硬件中斷: 由外部硬件產生的中斷。由外部硬件產生的中斷。 軟件中斷軟件中斷: 由程序預先安排的中斷。由程序預先安排的中斷。 中斷的特征中斷的特征:具有隨機性。:具有隨機性。2 2、
2、中斷系統應具有的功能、中斷系統應具有的功能(1 1)中斷接受功能)中斷接受功能(2 2)中斷響應功能)中斷響應功能(3 3)中斷屏蔽功能)中斷屏蔽功能(4 4)中斷排對功能)中斷排對功能(5 5)中斷嵌套功能)中斷嵌套功能(6 6)中斷返回功能)中斷返回功能(7 7)中斷共享功能)中斷共享功能8.1.2 8.1.2 中斷的類型中斷的類型 在在3232位微機中,位微機中,將外部硬件中斷稱為將外部硬件中斷稱為中中斷斷,而把內部中斷稱為,而把內部中斷稱為異常異常,系統最系統最多支持多支持256256個中斷或異常。個中斷或異常。1 1、中斷、中斷(1 1)可屏蔽中斷)可屏蔽中斷INTRINTR通過中斷
3、控制器向微處理器申請而產生的中通過中斷控制器向微處理器申請而產生的中斷,它可以用指令屏蔽與開放。斷,它可以用指令屏蔽與開放。(2 2)不可屏蔽中斷)不可屏蔽中斷NMINMI通過中斷請求線通過中斷請求線NMINMI向微處理器申請而產生向微處理器申請而產生的中斷,它可以用指令屏蔽與開放。的中斷,它可以用指令屏蔽與開放。2 2、異常、異常由由CPUCPU的內部事件引起的中斷叫做異常的內部事件引起的中斷叫做異常(1 1)軟件中斷)軟件中斷 由軟件中斷指令引起的中斷,例由軟件中斷指令引起的中斷,例INTnINTn、INT0INT0、INT3INT3等。無中斷響應周期,中斷號由指令中給等。無中斷響應周期,
4、中斷號由指令中給出;該中斷無法屏蔽。出;該中斷無法屏蔽。(2 2)異常)異常 指令執行發生錯誤而引起的中斷,這種情況下指令執行發生錯誤而引起的中斷,這種情況下必須啟動一個處理程序以解決問題,并恢復這必須啟動一個處理程序以解決問題,并恢復這條指令或下條指令的執行。條指令或下條指令的執行。8.2 8.2 中斷號中斷號1 1、中斷號、中斷號 系統給每個中斷與異常分配了一個中斷號,以系統給每個中斷與異常分配了一個中斷號,以便識別與處理。便識別與處理。3232位微機支持位微機支持256256個中斷號,并個中斷號,并對中斷和異常統一編號為對中斷和異常統一編號為0-2550-255號。在向量中斷號。在向量中
5、斷中,中,CPUCPU可通過它找到中斷服務程序的入口地址,可通過它找到中斷服務程序的入口地址,實現程序的轉移。實現程序的轉移。2 2、1616位微處理器的中斷號分配位微處理器的中斷號分配1616位位微微處處理理器器的的中中斷斷號號分分配配8.3 8.3 中斷優先級中斷優先級1 1、中斷優先級、中斷優先級 當系統有多個中斷源同時申請中斷時,當系統有多個中斷源同時申請中斷時,CPUCPU在在一個時刻只能響應和處理一個中斷,因此必一個時刻只能響應和處理一個中斷,因此必須進行優先級排隊。須進行優先級排隊。2 2、中斷的排隊方式、中斷的排隊方式按優先級排隊按優先級排隊循環輪流排隊循環輪流排隊3 3、中斷
6、嵌套、中斷嵌套 當當CPUCPU正處理某個中斷時,出現更高級中斷源正處理某個中斷時,出現更高級中斷源的申請,的申請,CPUCPU必須暫停該中斷服務,轉而去處理更必須暫停該中斷服務,轉而去處理更高級中斷的服務,待處理完后,再返回到被中斷的高級中斷的服務,待處理完后,再返回到被中斷的服務程序繼續執行。服務程序繼續執行。 高級中斷可中斷低級中斷高級中斷可中斷低級中斷響應響應1 1響應響應2 2中中斷斷服服務務返回返回返回返回主主程程序序中中斷斷服服務務8.4 8.4 中斷向量與中斷向量表中斷向量與中斷向量表1 1、中斷向量、中斷向量 CPUCPU響應中斷后,中斷源提供地址信息響應中斷后,中斷源提供地
7、址信息, ,由此地址信息對程序的執行進行導向,由此地址信息對程序的執行進行導向,引導到引導到中斷服務程序中去執行中斷服務程序中去執行,所以把,所以把這個地址稱為這個地址稱為中斷向量。中斷向量。 在實模式下,中斷向量包括中斷服務程序在實模式下,中斷向量包括中斷服務程序的段基址的段基址CSCS,偏址地址,偏址地址IPIP共共4 4個字節。個字節。 2 2、中斷向量表中斷向量表 所有的中斷向量集中存放到存儲器的某所有的中斷向量集中存放到存儲器的某一區域,這一區域稱之為中斷向量表。一區域,這一區域稱之為中斷向量表。 在實模式下,規定存儲器的在實模式下,規定存儲器的000H-03FFH000H-03FF
8、H作為中斷向量存儲區(共作為中斷向量存儲區(共10241024個字節),每個字節),每個中斷向量包含個中斷向量包含4 4個字節,可容納個字節,可容納256256個中斷個中斷向量,即可處理向量,即可處理256256個中斷服務程序。個中斷服務程序。3 3、中斷向量的填寫、中斷向量的填寫 對于系統中沒配置系統軟件時,需由用戶對于系統中沒配置系統軟件時,需由用戶自己裝入中斷向量。設中斷類型號為自己裝入中斷向量。設中斷類型號為60H60H用用MOVMOV指令填寫中斷向量指令填寫中斷向量CLICLICLDCLD ;內存地址加;內存地址加MOV AXMOV AX,0 0MOV ESMOV ES,AXAXMO
9、V DIMOV DI,4 4* *60H 60H ;中斷向量指針;中斷向量指針DIDIMOV AXMOV AX,OFFSET INTRn OFFSET INTRn ;中斷服務程序的偏移地址;中斷服務程序的偏移地址AXAXSTOSW STOSW ;AXAXDIDI+1DIDI+1中,然后中,然后DI+2DI+2MOV AXMOV AX,SEG INTRn SEG INTRn ;中斷服務程序的段基址;中斷服務程序的段基址AX AX STOSW STOSW ;AXAXDI+1DI+2DI+1DI+2STISTI4 4、中斷向量的修改、中斷向量的修改當使用當使用PCPC機的某個中斷號時,需分三步修改機
10、的某個中斷號時,需分三步修改: 用用35H35H號功能,獲取原中斷向量。號功能,獲取原中斷向量。 用用25H25H號功能,設置新中斷向量,取代原中斷向量。號功能,設置新中斷向量,取代原中斷向量。 新服務程序執行完畢后,利用新服務程序執行完畢后,利用25H25H號功能恢復原中斷向量。號功能恢復原中斷向量。例:修改中斷號為例:修改中斷號為60H60H的中斷向量。的中斷向量。 第第步:步:MOV AHMOV AH,35H35H;取原中斷向量;取原中斷向量MOV ALMOV AL,60H60H;60H60H為原中斷號為原中斷號INT 21HINT 21HMOV OLD_SEGMOV OLD_SEG,E
11、SES ;保存原中斷向量;保存原中斷向量MOV OLD_OFFMOV OLD_OFF,BXBX第第步:步:MOV AHMOV AH,25H25H ;設置新中斷向量;設置新中斷向量MOV ALMOV AL,60H 60H ;中斷號;中斷號MOV DXMOV DX,SEG INTRn SEG INTRn ;INTRnINTRn是新中斷程序的入口地址是新中斷程序的入口地址MOV DSMOV DS,DXDX ;DSDS指向新中斷程序段地址指向新中斷程序段地址MOV DXMOV DX,OFFSET INTRn OFFSET INTRn ;DXDX指向新中斷程序偏移地址指向新中斷程序偏移地址INT 21H
12、INT 21H第第步:步:MOV AHMOV AH,25H25H ;恢復舊的中斷向量;恢復舊的中斷向量MOV ALMOV AL,60H 60H ;中斷號;中斷號MOV DXMOV DX,OLD_SEGOLD_SEGMOV DSMOV DS,DXDX ;DSDS指向舊中斷程序段址指向舊中斷程序段址MOV DXMOV DX,OLD_OFF OLD_OFF ;DXDX指向舊中斷程序偏移地址指向舊中斷程序偏移地址INT 21HINT 21H在在PCPC機環境下,中斷服務程序的編寫格式:機環境下,中斷服務程序的編寫格式:1 1、在數據段中定義、在數據段中定義DATA SEGMENTDATA SEGMEN
13、T OLD_SEG OLD_SEGDWDW?;原中斷服務程序的段地址;原中斷服務程序的段地址 OLD_OFFOLD_OFFDWDW?;原中斷服務程序的偏移地址;原中斷服務程序的偏移地址DATA ENDSDATA ENDS2 2、在代碼段寫程序、在代碼段寫程序CODE SEGMENTCODE SEGMENT MOV AHMOV AH,35H35H ;取原中斷向量;取原中斷向量 MOV ALMOV AL,60H60H ;60H60H為原中斷號為原中斷號 INT 21HINT 21H MOV OLD_SEG MOV OLD_SEG,ESES ;保存原中斷向量;保存原中斷向量 MOV OLD_OFFM
14、OV OLD_OFF,BXBX MOV AHMOV AH,25H25H ;設置新中斷向量;設置新中斷向量 MOV ALMOV AL,60H 60H ;中斷號;中斷號 MOV DXMOV DX,SEG INTRn SEG INTRn ;INTRnINTRn是新中斷程序的入口是新中斷程序的入口 MOV DSMOV DS,DXDX ;DSDS指向新中斷程序段地址指向新中斷程序段地址 MOV DXMOV DX,OFFSET INTRn OFFSET INTRn ;DXDX指向新中斷程序偏移地址指向新中斷程序偏移地址 INT 21HINT 21H ;程序主體;程序主體 MOV AHMOV AH,25H2
15、5H;恢復舊的中斷向量;恢復舊的中斷向量 MOV ALMOV AL,60H 60H ;中斷號;中斷號 MOV DXMOV DX,OLD_SEGOLD_SEG MOV DS MOV DS,DXDX ;DSDS指向舊中斷程序段址指向舊中斷程序段址 MOV DXMOV DX,OLD_OFF OLD_OFF ;DXDX指向舊中斷程序偏移地址指向舊中斷程序偏移地址 INT 21HINT 21H MOV AH MOV AH,4CH4CH INT 21H INT 21HINTRn PROCINTRn PROC PUSH PUSHAXAX ;中斷服務程序的主體;中斷服務程序的主體 POP AXPOP AX I
16、RET IRETCODE ENDS CODE ENDS 微機中斷程序設計舉例微機中斷程序設計舉例【例【例8-18-1】利用中斷號】利用中斷號5 5來設計一個中斷處理程序,能輸出字符串來設計一個中斷處理程序,能輸出字符串“example example for int”for int”。 DATA DATASEGMENTSEGMENT OLD_SEG DW ? OLD_SEG DW ?;用來保存舊的中斷向量;用來保存舊的中斷向量 OLD_OFF DW ?OLD_OFF DW ? HELLO DB example for int,0Dh,0AH,$ HELLO DB example for int
17、,0Dh,0AH,$ DATA DATA ENDSENDS CODE CODE SEGMENTSEGMENT ASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATA START:MOV AX,DATA START:MOV AX,DATAMOV DS,AXMOV DS,AX MOV AH,35H MOV AH,35H ; ;取原中斷向量取原中斷向量 MOV AL,5H MOV AL,5H ;5H;5H為原中斷號為原中斷號 INT 21HINT 21H MOV OLD_SEG,ES MOV OLD_SEG,ES ; ;保存原中斷向量保存原中斷向量 MOV OLD_
18、OFF,BXMOV OLD_OFF,BX MOV AH,25H MOV AH,25H ; ;設置新中斷向量設置新中斷向量 MOV AL,5H MOV AL,5H ; ;中斷號中斷號 MOV DX,SEG INTRn MOV DX,SEG INTRn ;INTRn;INTRn是新中斷程序的入口是新中斷程序的入口 MOV DS,DX MOV DS,DX ;DS;DS指向新中斷程序段地址指向新中斷程序段地址 MOV DX,OFFSET INTRn MOV DX,OFFSET INTRn ;DX;DX指向新中斷程序偏移地址指向新中斷程序偏移地址 INT 21HINT 21HMOV AX,DATAMOV
19、 AX,DATA;恢復數據段;恢復數據段MOV DS,AXMOV DS,AX MOV CX,10 MOV CX,10;程序主體;程序主體 L1:L1: INT 5HINT 5HLOOP L1LOOP L1 MOV AH,25H MOV AH,25H ; ;恢復舊的中斷向量恢復舊的中斷向量 MOV AL,5H MOV AL,5H ; ;中斷號中斷號MOV DX,OLD_SEGMOV DX,OLD_SEG MOV DS,DX MOV DS,DX ;DS;DS指向舊中斷程序段址指向舊中斷程序段址 MOV DX,OLD_OFF MOV DX,OLD_OFF ;DX;DX指向舊中斷程序偏移地址指向舊中斷
20、程序偏移地址 INT 21HINT 21H MOV AH,4CH MOV AH,4CHINT 21HINT 21H INTRn PROC FAR INTRn PROC FAR PUSH AX PUSH AX PUSH DX PUSH DX LEA DX,HELLOLEA DX,HELLO MOV AH,9 MOV AH,9INT 21HINT 21HPOP DXPOP DX POP AX POP AX IRET IRET INTRn ENDP INTRn ENDP CODE ENDS CODE ENDS END START END START8.6 8.6 中斷中斷/ /異常處理異常處理8.6
21、.1 8.6.1 實模式下中斷實模式下中斷/ /異常處理異常處理1 1、可屏蔽中斷的處理、可屏蔽中斷的處理包括包括4 4個階段:個階段:(1 1)中斷申請與響應握手)中斷申請與響應握手(2 2)標志位的處理與斷點保存)標志位的處理與斷點保存(3 3)向中斷服務程序轉移并執行中斷服務程序)向中斷服務程序轉移并執行中斷服務程序(4 4)返回斷點)返回斷點下面是中斷申請與響應握手過程:下面是中斷申請與響應握手過程:INTAINTA1 1使使CPUCPU輸出總線封鎖信號,而輸出總線封鎖信號,而8259A8259A將將 選中的最高優先級置位選中的最高優先級置位ISRISR,清相應,清相應IRRIRR位。
22、位。INTAINTA2 2使使CPUCPU撤消總線封鎖信號,撤消總線封鎖信號,8259A8259A送對送對 應的中斷號到數據總線上。應的中斷號到數據總線上。T T1 1T T2 2T T3 3T T4 4T T1 1T T2 2T T3 3T T4 4中斷號中斷號CLKCLK(時鐘)(時鐘)ALEALE(地址允許)(地址允許)LOCKLOCK(總線鎖定)(總線鎖定)INTAINTA(中斷應答)(中斷應答)D D0 0D D7 7(數據)(數據)圖圖5.8 5.8 中斷響應周期中斷響應周期INATINAT1 1INATINAT2 2中中斷斷控控制制器器8 82 25 59 9A A中中斷斷類類型
23、型號號為為60H60H的的設設備備IRIR0 0INTRINTRINTAINTACPUCPU開中斷,接收開中斷,接收INTRINTR請求請求CPUCPU發發INTAINTA響應,在第二個響應,在第二個INTAINTA周周 期中,外部中斷控制器送中斷類型號期中,外部中斷控制器送中斷類型號OLDFLAG OLDFLAG STACKSTACKOLDCS OLDCS STACK STACK(60H(60H* *4+2)=(182H)=1240H 4+2)=(182H)=1240H CS CSOLDIP OLDIP STACK STACK (60H(60H* *4)=0200H=(180H) 4)=02
24、00H=(180H) IP IP執行在執行在CS=1240HCS=1240H,IP=0200HIP=0200H處的中處的中 斷服務程序斷服務程序執行執行IRETIRET中斷返回指令中斷返回指令 OLDIPOLDIP退棧退棧 OLDCSOLDCS退棧退棧 OLDFLAGOLDFLAG退棧退棧繼續執行當前程序中的下一條指令繼續執行當前程序中的下一條指令CPUCPU外設外設RAMRAM0200H0200H1240H1240HCSCS1240H1240HIPIP0200H0200H類型為類型為60H60H的中斷服的中斷服務程序務程序0180H0180H0182H0182HOLDIPOLDIPOLDCS
25、OLDCSOLDFLAGOLDFLAGSSSS3000H3000HSPSP0100H0100HCSCSOLDCSOLDCSIPIPOLDIPOLDIPINTRINTR當當前前程程序序堆堆棧棧中中斷斷服服務務程程序序中中斷斷向向量量表表中中斷斷控控制制器器8 82 25 59 9A A中中斷斷類類型型號號為為60H60H的的設設備備IRIR0 0INTRINTRINTAINTA CPUCPU開中斷,接收開中斷,接收INTRINTR請求請求 CPU CPU發發INTAINTA響應,在第二個響應,在第二個INTAINTA周周 期中,外部中斷控制器送中斷類型號期中,外部中斷控制器送中斷類型號 OLDF
26、LAG OLDFLAG STACKSTACK OLDCS OLDCS STACK STACK (60H (60H* *4+2)=(4+2)=(182H182H)=1240H )=1240H CS CS OLDIP OLDIP STACK STACK (60H (60H* *4)=(4)=(180H180H)=0200H )=0200H IP IP 執行在執行在CS=1240HCS=1240H,IP=0200HIP=0200H處的中處的中 斷服務程序斷服務程序 執行執行IRETIRET中斷返回指令中斷返回指令 OLDIPOLDIP退棧退棧 OLDCSOLDCS退棧退棧 OLDFLAGOLDFLA
27、G退棧退棧 繼續執行當前程序中的下一條指令繼續執行當前程序中的下一條指令CPUCPU外設外設RAMRAM0200H0200H1240H1240HCSCS1240H1240HIPIP0200H0200H類型為類型為60H60H的中斷服的中斷服務程序務程序0180H0180H0182H0182HOLDIPOLDIPOLDCSOLDCSOLDFLAGOLDFLAGSSSS3000H3000HSPSP0100H0100HCSCSOLDCSOLDCSIPIPOLDIPOLDIP斷點斷點INTRINTR當當前前程程序序堆堆棧棧中中斷斷服服務務程程序序中中斷斷向向量量表表中斷過程中斷過程2 2、不可屏蔽中斷
28、的處理、不可屏蔽中斷的處理也包括也包括4 4個階段個階段(1 1)中斷申請與響應握手)中斷申請與響應握手必須立即響應,但不發中斷響應信號必須立即響應,但不發中斷響應信號。(2 2)標志位的處理與斷點保存)標志位的處理與斷點保存與可屏蔽中斷類似。與可屏蔽中斷類似。(3 3)向中斷服務程序轉移并執行中斷服務程序)向中斷服務程序轉移并執行中斷服務程序NMINMI中斷向量的兩個字放在中斷向量的兩個字放在0008H0008H和和000AH000AH處處。(4 4)返回斷點)返回斷點8.7 8.7 中斷控制器中斷控制器8.7.1 82C59A8.7.1 82C59A外部特性和內部寄存器外部特性和內部寄存器
29、1.1.外部特性外部特性面向面向CPUCPU的信號的信號面向外設的面向外設的8 8根中斷請求線根中斷請求線面向同類芯片的中斷請求級聯線面向同類芯片的中斷請求級聯線INT nINT n指令指令中斷邏輯中斷邏輯非屏蔽中斷請求非屏蔽中斷請求中中斷斷控控制制系系統統可可屏屏蔽蔽中中斷斷請請求求INT3INT3指令指令INT4INT4指令指令單步單步中斷中斷除除0 0中斷中斷NMINMIINTRINTR軟件中斷軟件中斷硬件中斷硬件中斷82C59A82C59A的內部結構的內部結構圖圖8.5 82C59A8.5 82C59A的外部引腳與內部寄存器的外部引腳與內部寄存器數據總線數據總線緩沖器緩沖器讀讀/ /寫
30、寫邏輯邏輯級聯級聯緩沖緩沖/ /比較器比較器控制邏輯控制邏輯正在服務正在服務寄存器寄存器ISRISR優先級優先級分析器分析器PRPR中斷請求中斷請求寄存器寄存器IRRIRR中斷屏蔽寄存器中斷屏蔽寄存器 IMRIMRIRIR0 0IRIR1 1IRIR2 2IRIR3 3IRIR4 4IRIR5 5IRIR6 6IRIR7 7D D0 0D D7 7INTINTA A0 0CASCAS0 0CASCAS1 1CASCAS2 2SP/ENSP/ENCSCSWRWRRDRDINTAINTA2 2、內部寄存器、內部寄存器中斷請求寄存器中斷請求寄存器(IRRIRR) 它存放它存放IRIR線上提出了中斷請
31、求的中斷線上提出了中斷請求的中斷源,該寄存器源,該寄存器8 8位(位(D D0 0D D7 7)對應于連接在)對應于連接在IRIR0 0IRIR7 7線上的外設所產生的中斷請求。哪線上的外設所產生的中斷請求。哪 一根輸入線有請求,哪位就置一根輸入線有請求,哪位就置“1”1”。中斷屏蔽寄存器中斷屏蔽寄存器(IMRIMR) 是對中斷請求是對中斷請求IRIRi i起屏蔽作用,即對中起屏蔽作用,即對中斷請求斷請求IRIRi i是屏蔽還是允許,寄存器是屏蔽還是允許,寄存器8 8位對應位對應8 8級中斷屏蔽。哪一級中斷被屏蔽,哪位就級中斷屏蔽。哪一級中斷被屏蔽,哪位就寫寫“1”1”,即禁止,即禁止IRIR
32、i i提出中斷請求。提出中斷請求。D Di i= =0 0 開中斷開中斷1 1 關中斷關中斷正在服務寄存器正在服務寄存器ISRISR 在中斷響應之后,第一個獲準中斷請求在中斷響應之后,第一個獲準中斷請求的中斷級在相應的的中斷級在相應的ISRISR中置位(如中置位(如IRIR3 3獲準,獲準,ISRISR中的中的ISIS3 3置位,表明置位,表明IRIR3 3正處于服務)。因正處于服務)。因此,此,ISRISR被用來存放正在被服務的所有中斷級,被用來存放正在被服務的所有中斷級,包括尚沒服務完而中途被別的中斷所打斷了包括尚沒服務完而中途被別的中斷所打斷了的中斷級。的中斷級。 在非自動中斷結束方式下
33、,在非自動中斷結束方式下,ISRISR的復位,的復位,要有中斷結束命令要有中斷結束命令EOIEOI來執行。來執行。優先權分析器優先權分析器(PRPR) 優先排隊當在優先排隊當在IRIRi i輸入端有中斷產生時,輸入端有中斷產生時,送到送到PRPR,PRPR檢查進來的中斷請求的優先級并檢查進來的中斷請求的優先級并和和“正在服務中的中斷正在服務中的中斷”進行比較,確定是進行比較,確定是否讓這個中斷請求送給處理器。否讓這個中斷請求送給處理器。 8.7.1 82C59A8.7.1 82C59A的工作方式的工作方式1 1、中斷觸發方式、中斷觸發方式確定中斷請求的啟動方式確定中斷請求的啟動方式邊沿觸發方式
34、邊沿觸發方式。IR0-IR7IR0-IR7線上出現由低到高線上出現由低到高的跳變,表示有中斷請求。的跳變,表示有中斷請求。電平電平觸觸發方式發方式。 IR0-IR7IR0-IR7線上出現高電平時線上出現高電平時變,表示有中斷請求。變,表示有中斷請求。2 2、中斷級聯方式、中斷級聯方式 82C5982C59可以單片使用,也可以多片使用,可以單片使用,也可以多片使用,級聯方式應用時有主片和從片的問題。級聯方式應用時有主片和從片的問題。82C5982C59在在1616位微機上的級聯位微機上的級聯4 4、中斷優先級排對、中斷優先級排對 完全嵌套方式完全嵌套方式只能高優先級中斷低優先級的中斷。只能高優先
35、級中斷低優先級的中斷。 特殊完全嵌套方式特殊完全嵌套方式同級優先級的中斷可以相互中斷。同級優先級的中斷可以相互中斷。 優先級輪換方式。被服務完的中斷源優先級將優先級輪換方式。被服務完的中斷源優先級將自動變為最低,而其后的中斷源的優先級將變為最自動變為最低,而其后的中斷源的優先級將變為最高。高。優先級輪換方式有兩種優先級輪換方式有兩種 優先級自動輪換方式:當一個中斷被服務后,優先級自動輪換方式:當一個中斷被服務后,自動降為最低,初始順序是:自動降為最低,初始順序是:IRIR0 0,IRIR1 1, 優先級指定輪換方式:與優先級指定輪換方式:與的差別是,初始輪的差別是,初始輪換的優先級可以由程序指
36、定。換的優先級可以由程序指定。5 5、中斷結束方式、中斷結束方式 自動結束方式自動結束方式 在中斷響應周期,就自動清零了該中斷源在中斷響應周期,就自動清零了該中斷源的的ISRISR寄存器中被置寄存器中被置1 1的位。這常用于沒有中斷的位。這常用于沒有中斷嵌套的系統。嵌套的系統。 非自動結束方式非自動結束方式 在中斷服務程序后,必須使用中斷結束命在中斷服務程序后,必須使用中斷結束命令令EOIEOI才能清除才能清除ISRISR中的相應位。這是最常用的中的相應位。這是最常用的中斷結束方式。中斷結束方式。它有兩種形式:它有兩種形式: 指定中斷結束命令:即要指定結束中斷指定中斷結束命令:即要指定結束中斷
37、 請求線請求線IRIRi i的編號。的編號。 不指定中斷結束命令:不指定不指定中斷結束命令:不指定IRIRi i的編號。的編號。8.7.3 82C59A8.7.3 82C59A的編程的編程中斷操作功能:中斷操作功能: 請求請求 屏蔽屏蔽 排隊排隊 結束結束 級聯級聯 中斷類型號中斷類型號 查詢查詢 下面討論為實現這些功能的各個命令字的含下面討論為實現這些功能的各個命令字的含義,為編程使用義,為編程使用82C59A82C59A提供一些思路。提供一些思路。1 1、初始化命令字(、初始化命令字( ICW1 ICW1 ICW4 ICW4 ) 必須在對必須在對82C59A82C59A初始化時完成。需要按
38、順初始化時完成。需要按順序發送序發送ICW1 ICW1 ICW4ICW4 1. 1.中斷請求觸發方式的設定中斷請求觸發方式的設定(ICWICW1 1)功能功能:設定中斷請求的觸發方式(電平觸發或:設定中斷請求的觸發方式(電平觸發或邊沿觸發)、級聯和邊沿觸發)、級聯和CPUCPU的特性。的特性。 ICWICW1 1的格式:的格式:ICWICW1 10 0A A0 00 00 00 01 1LTIMLTIMADIADISNGLSNGLICIC4 41616位機無效位機無效特征位特征位 電平觸發電平觸發 無效無效單片使用單片使用需要需要ICWICW4 4D D7 7D D6 6D D5 5D D4
39、4D D3 3D D2 2D D1 1D D0 0例例. .若若8259A8259A采用電平觸發,單片使用,需要采用電平觸發,單片使用,需要 ICWICW4 4(對(對1616位機以上,位機以上,D D0 0=1=1),),則:則: MOV ALMOV AL,00011011B 00011011B ;ICWICW1 1的內容的內容 OUT 20HOUT 20H,AL AL ;寫入;寫入ICWICW1 1端口端口 ;(;(A A0 0=0=0) 微機主片的端口微機主片的端口(地址(地址A0=0A0=0)2.2.中斷類型號的設定中斷類型號的設定(ICWICW2 2) 功能:提供給功能:提供給CPU
40、CPU的中斷類型號的中斷類型號ICWICW2 21 1A A0 0T T7 7T T6 6T T5 5T T4 4T T3 30 00 00 0中斷類型號的高中斷類型號的高5 5位位1616位機無效位機無效D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0設:硬盤中斷號:設:硬盤中斷號:0DH 0DH 即即 0000100001101101 0000100001000000注意注意:向:向ICWICW2 2寫入中斷類型號只寫高寫入中斷類型號只寫高5 5位,低位,低 3 3位寫位寫0 0,即,即08H08H。 MOV ALMOV AL,08H 08H
41、 ;中斷類型號的高;中斷類型號的高5 5位位 OUT 21HOUT 21H,AL AL ;寫入;寫入ICWICW2 2的端口(的端口(A A0 0=1=1)接到接到IRIR5 5上上高高5 5位位中斷類型號產生的示意圖:中斷類型號產生的示意圖:CPUCPU8259A8259AICW2ICW2IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7編碼編碼000000001001010010011011100100101101110110111111由硬件完成由硬件完成由軟件完成由軟件完成3.3.中斷級聯方式的設定中斷級聯方式的設定(ICWICW3 3)(
42、1 1)級聯的結構形式)級聯的結構形式ICWICW3 3的格式:的格式: a.a.主片主片ICWICW3 3主片主片ICWICW3 31 1S S7 7S S6 6S S5 5S S4 4S S3 3S S2 2S S1 1S S0 0A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0表示主片的哪個表示主片的哪個IRIRi i上接有從片的中斷請求上接有從片的中斷請求INTINTb.b.從片從片ICWICW3 3從片從片ICWICW3 3A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D
43、0 01 1IDID2 2IDID1 1IDID0 0從片標志碼從片標志碼 ID ID2 2IDID0 0有有8 8種編碼,種編碼,表示從片的表示從片的INTINT接到接到 主片的哪一個主片的哪一個IRIRi i位位。以下圖連接為例(以下圖連接為例(82C5982C59在在1616位微機上的級聯):位微機上的級聯):例如:從片的請求線例如:從片的請求線INTINT連到主片的連到主片的IRIR2 2,則:,則:主片的主片的ICWICW3 3=00000100B=04H=00000100B=04HMOV ALMOV AL,04H04H;主片的;主片的ICWICW3 3OUT 21HOUT 21H,
44、ALAL 從片的從片的ICWICW3 3=00000010B=02H=00000010B=02H MOV ALMOV AL,02H 02H ;從片的;從片的ICWICW3 3 OUT 0A1H OUT 0A1H,ALAL;從片的地址由譯碼決定;從片的地址由譯碼決定(0A1H0A1H為從片的端口地址)為從片的端口地址) 優先級:優先級:IRIR0 0,1 1,8-158-15,3 3,4 4,5 5,6 6,7 7ICWICW4 4格式:格式:A A0 0=1=1 D D5 5-D-D7 7高高3 3位為位為0 0 D D4 4(SFNMSFNM)=1 =1 主片為特定完全嵌套方式主片為特定完全
45、嵌套方式 =0 =0 一般完全嵌套方式一般完全嵌套方式 D D3 3(BUFBUF)=1 =1 為緩沖方式為緩沖方式 ,SP/EN SP/EN 作輸出作輸出 線,用于控制緩沖器的方向線,用于控制緩沖器的方向 =0 =0 為非緩沖方式,為非緩沖方式,SP/ENSP/EN作輸入線作輸入線ICWICW4 41 10 00 00 0SFNMSFNMBUFBUFM/SM/S AEOIAEOI PMPMA A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0 D D2 2(M/SM/S)=1 =1 為緩沖方式下作主片為緩沖方式下作主片 =0 =0 為緩沖
46、方式下作從片為緩沖方式下作從片 注:注:非緩沖方式(非緩沖方式(BUF=0BUF=0時),則時),則M/SM/S無意義,無意義, 此時主此時主/ /從由從由SPSP端決定。端決定。 D D1 1(AEOIAEOI)=1 =1 自動結束方式,自動結束方式,ISRISR有自動有自動 復位(清復位(清0 0)功能)功能 =0 =0 為非自動結束方式,要發為非自動結束方式,要發EOIEOI命令命令 D D0 0(uPMuPM)=1 =1 用于用于1616位以上微機位以上微機 =0 =0 用于用于8 8位微機位微機例例1. 1. 某計算機的某計算機的CPUCPU為為8028680286,而,而8259A
47、8259A與系與系統總線之間采用緩沖器連接,非自動結束方統總線之間采用緩沖器連接,非自動結束方式,只用式,只用1 1片片8259A8259A,正常完全嵌套。,正常完全嵌套。則:則:ICWICW4 4=00001101B=0DH=00001101B=0DH相應的初始化程序段:相應的初始化程序段:MOV ALMOV AL,0DH0DH OUT 21HOUT 21H,ALAL初始化命令字的設置順序:初始化命令字的設置順序: 在系統運行之前,系統在系統運行之前,系統中的每個中的每個8259A8259A必須按先后必須按先后次序接收次序接收CPUCPU的的2-42-4個個ICWICW初初始化命令字進行初始
48、化。初始化命令字進行初始化。初始化命令字始化命令字必須按規定的順必須按規定的順序寫入序寫入。 對對1616位機,且多片,則位機,且多片,則主片與從片的主片與從片的ICWICW3 3要分別寫。要分別寫。2 2、操作命令字操作命令字( OCWOCW1 1-OCW-OCW3 3 ) 初始化后,即在程序執行中,使用初始化后,即在程序執行中,使用OCWOCW命令命令對中斷控制器進行動態控制。對中斷控制器進行動態控制。 不需要按順序發送,在程序中任意安排。不需要按順序發送,在程序中任意安排。1 1、中斷屏中斷屏蔽蔽操作操作(OCWOCW1 1) 格式為:格式為:OCWOCW1 11 1M M7 7M M6
49、 6M M5 5M M4 4M M3 3M M2 2M M1 1M M0 0A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 01=1=屏蔽屏蔽 0=0=開放開放 例例1. 1. 要使中斷源要使中斷源IRIR3 3開放,其余被屏蔽。開放,其余被屏蔽。則:則:OCWOCW1 1=11110111B=F7H=11110111B=F7H相應的程序段:相應的程序段: MOV ALMOV AL,0F7H0F7H OUT 21HOUT 21H,AL AL ;OCWOCW1 1內容送端口內容送端口 IN ALIN AL,21H 21H ;回讀;回讀21
50、H21H端口的內容端口的內容OCWOCW2 20 0A A0 0R RSLSLEOIEOI0 00 0L L2 2L L1 1L L0 0指定中指定中斷等級斷等級特征位特征位中斷中斷結束結束D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0優先級優先級輪換輪換中斷等級編號中斷等級編號2 2、中斷結束控制和中斷優先級排隊控制中斷結束控制和中斷優先級排隊控制操作操作(OCWOCW2 2)其命令格式:其命令格式:中斷結束控制中斷結束控制(OCWOCW2 2格式中的格式中的D D5 5) 當在初始化命令當在初始化命令ICWICW4 4選用非自動結束方式選用
51、非自動結束方式時,就利用時,就利用OCWOCW2 2來控制中斷結束。當來控制中斷結束。當EOI=1 EOI=1 則:則:SLSL(D D6 6)=0 =0 不指定中斷結束(不指定中斷結束(清最高級清最高級) L L2 2L L0 0=000=000,OCWOCW2 2=00100000B=00100000B SL SL(D D6 6)=1=1,指定中斷結束(,指定中斷結束(特殊屏蔽特殊屏蔽) L L2 2L L0 0編碼是被指定的中斷等級編碼是被指定的中斷等級 即:即:OCWOCW2 2=01100L=01100L2 2L L1 1L L0 0例:指定例:指定IRIR5 5的中斷結束,則:的中
52、斷結束,則: OCWOCW2 2=01100101B=65H=01100101B=65H作中斷優先級排隊控制作中斷優先級排隊控制(OCWOCW2 2格式中的格式中的D D7 7)D D7 7(R R)1 1:需要輪換優先權,分二種:需要輪換優先權,分二種 SL=SL=0 0:優先級固定方式,則為完全嵌套方式:優先級固定方式,則為完全嵌套方式=1=1:優先權:優先權 指定輪換指定輪換=0=0:自動輪換:自動輪換注意注意:中斷結束方式和中斷排隊方式都用:中斷結束方式和中斷排隊方式都用OCWOCW2 2 命令來實現,因此它的某些位功能相互交叉顯然比命令來實現,因此它的某些位功能相互交叉顯然比較復雜,
53、但其作用只有兩個:較復雜,但其作用只有兩個: 控制中斷結束方式控制中斷結束方式 控制中斷優先權輪換方式控制中斷優先權輪換方式OCWOCW2 2小結小結: a.a.不指定不指定EOIEOI命令,全嵌套方式:命令,全嵌套方式:0010000000100000 b. b.指定指定EOIEOI命令,全嵌套方式:命令,全嵌套方式: 01100L01100L2 2L L1 1L L0 0 c. c.不指定不指定EOIEOI方式,優先級自動輪換:方式,優先級自動輪換:1010000010100000 d. d.自動自動EOIEOI方式,優先級自動輪換:方式,優先級自動輪換:1000000010000000
54、e. e.自動自動EOIEOI方式,取消優先級自動輪換:方式,取消優先級自動輪換:0000000000000000 f. f.指定指定EOIEOI方式,優先級特殊輪換:方式,優先級特殊輪換:11100L11100L2 2L L1 1L L0 0 g. g.優先級特殊輪換:優先級特殊輪換:11000L11000L2 2L L1 1L L0 03 3、OCWOCW3 3的功能是的功能是 用來設置查詢中斷方式用來設置查詢中斷方式 設置特定屏蔽方式設置特定屏蔽方式 讀取讀取8259A8259A的的IRRIRR,ISRISR寄存器的內容寄存器的內容OCWOCW3 3的格式:的格式:D D7 7D D6
55、6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0OCWOCW3 30 0A A0 0X XESMMESMMSMMSMM0 01 1P PRISRIS特定屏特定屏蔽允許蔽允許特征位特征位查詢查詢方式方式讀讀ISRISR讀寄存讀寄存器允許器允許RRRR特定屏特定屏蔽設置蔽設置不用不用 讀狀態操作讀狀態操作(OCWOCW3 3格式中的格式中的D D1 1 D D0 0 ) 8259A8259A內部有內部有3 3個寄存器個寄存器IRRIRR,ISRISR,IMRIMR可供可供CPUCPU讀出當前的內容。讀出當前的內容。(1 1)讀讀IRRIRR和和ISRISR的方法的方法 C
56、PUCPU先指定讀哪個寄存器,然后再發先指定讀哪個寄存器,然后再發ININ指令,指令,才能讀取才能讀取ISRISR和和IRRIRR中的內容。當中的內容。當8259A8259A初始化后,初始化后,自動指向讀自動指向讀IRRIRR寄存器。寄存器。(2 2)讀讀IMRIMR的方法的方法 不需要先發指定命令,只要讀奇地址端口。不需要先發指定命令,只要讀奇地址端口。例:讀例:讀ISRISR寄存器的內容寄存器的內容分兩步:分兩步: 通過通過OCWOCW3 3指定被讀的寄存器指定被讀的寄存器 OCWOCW3 3為為00001011B00001011B,表示下個,表示下個RDRD要讀要讀ISRISR 用用IN
57、IN指令讀出指令讀出ISRISR寄存器的內容寄存器的內容程序段如下:程序段如下: MOV ALMOV AL,0BH 0BH ;OCWOCW3 3表示讀表示讀ISRISR OUT 20H OUT 20H,AL AL ;20H20H為為OCWOCW3 3的口地址的口地址 IN ALIN AL,20H 20H ;讀;讀ISRISR寄存器寄存器 8259A8259A的編程命令的使用的編程命令的使用 8259A8259A有兩類編程命令,初始化命令字有兩類編程命令,初始化命令字ICWICW和操作和操作命令字命令字OCWOCW。ICWICW: 在初始化里完成,必須按一定的順序。在初始化里完成,必須按一定的順
58、序。 在在PCPC機中已有系統軟件完成,不需要機中已有系統軟件完成,不需要 也不允許由用戶自己去設置。也不允許由用戶自己去設置。 一般只一般只對于沒有配置完善操作系統的對于沒有配置完善操作系統的 單板微機上進行。單板微機上進行。OCWOCW: 沒有沒有一定的順序,一般也不安排在程一定的順序,一般也不安排在程 序的開頭。序的開頭。 在初始化后的任何時候在初始化后的任何時候進行動態控制。進行動態控制。8.8 8.8 實模式中斷應用程序設計實模式中斷應用程序設計實模式下編寫中斷程序應注意的問題實模式下編寫中斷程序應注意的問題中斷服務程序的編寫中斷服務程序的編寫INT-P PROC FARINT-P
59、PROC FARPUSH PUSH ;保護寄存器的內容;保護寄存器的內容 PUSH PUSH STISTI ;中斷服務程序體;中斷服務程序體 MOV ALMOV AL,20H 20H ;不指定中斷結束方式;不指定中斷結束方式 OUT 20HOUT 20H,AL AL ;發;發EOIEOI命令,對微機命令,對微機 POP POP ;恢復寄存器的內容;恢復寄存器的內容 POP POP IRETIRETINT-P ENDPINT-P ENDP另外要注意:另外要注意:開放開放IRQIRQ2 2中斷的方法:中斷的方法: IN ALIN AL,21H 21H ;讀;讀IMRIMR寄存器寄存器 AND AL
60、AND AL,0FBH 0FBH ;對應;對應IRQIRQ2 2的位置的位置0 0 OUT 21H OUT 21H,ALAL關閉關閉IRQIRQ2 2中斷的方法:中斷的方法: IN ALIN AL,21H 21H ;讀;讀IMRIMR寄存器寄存器 OR ALOR AL,04H 04H ;對應;對應IRQIRQ2 2的位置的位置1 1 OUT 21H OUT 21H,ALAL應用程序編寫過程應注意:應用程序編寫過程應注意:在數據段中加入內存定義語句在數據段中加入內存定義語句DATA SEGMENTS DATA SEGMENTS OLD_OFF DW OLD_OFF DW ? ;保存原向量的偏移地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業大數據與機器學習的結合策略
- 工業機器人技術與產業應用
- 工業機器人技術及其產業應用
- 工業機器人產業發展現狀及趨勢分析
- 工業機器人安全操作與管理培訓
- 工業自動化生產流程優化
- 工業燃氣管道系統安全分析
- 工業自動化控制技術詳解
- 工業設計與用戶需求的精準對接
- 工業設計在產品開發中的作用與價值
- 奇妙的植物世界
- 中文版匹茲堡睡眠質量指數量表 (PSQI)1-2-10
- 供應商糾正措施表
- 路燈控制器的設計與仿真
- 3D打印技術3Done電子教案(續)
- 新生入學報到證明(新生)
- 來料質量異常反饋單
- n系列蒸汽型溴化鋰吸收式冷水機組f.ju.1
- 會展策劃與管理高水平專業群建設項目建設方案
- 2021-2022學年江蘇省揚州市高一下學期期末地理試題
- 司爐崗位應急處置卡(燃氣)參考
評論
0/150
提交評論