版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第七章微型計算機的中斷系統(tǒng)
7.1中斷系統(tǒng)的基本概念7.1.1中斷的基本概念所謂中斷,是指CPU執(zhí)行程序時,突然有某個外部或內(nèi)部事件發(fā)生,請求CPU處理,CPU暫停當前正在執(zhí)行的程序,轉去執(zhí)行處理該事件的服務程序,服務完畢后,CPU返回原來程序被中斷的地方繼續(xù)執(zhí)行。這個過程稱為中斷。
中斷服務程序1中斷服務程序2非預料事件1非預料事件
2CPU執(zhí)行流程斷點斷點1、基本概念中斷源:引起中斷發(fā)生的內(nèi)部或外部事件中斷類型號:每個中斷源唯一的一個編號斷點:該程序中即將執(zhí)行,由于中斷沒有被執(zhí)行的那條指令的地址稱為中斷斷點,簡稱斷點。包括段地址和偏移地址。中斷服務程序:處理中斷事件的程序段2、中斷系統(tǒng)的功能中斷系統(tǒng)是指實現(xiàn)中斷功能的軟、硬件的集合。具有以下功能:能實現(xiàn)中斷響應、中斷服務及中斷返回。能實現(xiàn)中斷優(yōu)先權排隊。能實現(xiàn)中斷嵌套。3、計算機系統(tǒng)的性能并行處理能力實現(xiàn)CPU和多個外設同時工作,提高CPU效率。實時處理能力計算機應用于實時控制時,對外部事件及時響應故障處理能力及時處理故障,不影響其他程序的運行。多任務運行在操作系統(tǒng)的調(diào)度下,運行多個任務,任務間交替運行(1)中斷請求:中斷源發(fā)出中斷請求信號(2)中斷判優(yōu):對申請中斷的中斷源進行優(yōu)先級判別的過程稱為中斷判優(yōu)。(3)中斷響應:從請求有效到轉中斷服務程序入口地址這一段時間。實現(xiàn)程序的切換。(4)中斷服務(處理):中斷程序的主體。(5)中斷返回:使原來在中斷響應過程中的斷點地址和標志寄存器中的內(nèi)容,依次從堆棧中彈出,以便繼續(xù)執(zhí)行原來的程序。4、中斷過程(1)中斷請求可由內(nèi)部標志或指令引起;也可由外部電路引起(2)中斷判優(yōu)有多個中斷源同時提出中斷請求時,CPU應按照中斷源的輕重緩急按次序響應中斷。先響應優(yōu)先級高的請求,后響應優(yōu)先級低的請求。軟件查詢優(yōu)先權排隊法執(zhí)行程序按照順序逐位查詢中斷請求寄存器的狀態(tài),查詢的順序決定了優(yōu)先級的高低硬件優(yōu)先權判別法菊花鏈法——將每個接口串連起來,離CPU近的優(yōu)先級高“向量”優(yōu)先權排隊電路——由專用的中斷控制器管理優(yōu)先級(3)中斷響應從CPU接收到中斷請求,到轉去執(zhí)行中斷服務程序之間的過程就是中斷響應。CPU實現(xiàn)從當前正在執(zhí)行的程序到中斷服務程序的切換由硬件完成關中斷、保存斷點、取中斷服務程序入口地址等一系列中斷響應操作。(4)中斷服務(處理)1.保護現(xiàn)場
保護現(xiàn)場實質(zhì):將重要信息壓入堆棧。2.開中斷
目的:開放所有可屏蔽中斷,以允許高級中斷嵌套3.執(zhí)行中斷服務程序
中斷服務程序主體-中斷的目的。4.關中斷
目的:關中斷以確??煽坑行У鼗謴同F(xiàn)場。5.恢復現(xiàn)場 恢復現(xiàn)場實質(zhì):將原來壓入堆棧中的內(nèi)容彈出來。7.28086CPU中斷系統(tǒng)指令中斷INTn異常中斷包括:失效異常陷井異常中止異常內(nèi)部異常中斷微處理器中斷邏輯INTRNMIIRQ0IRQ1IRQ2:IRQ15不可屏蔽中斷可屏蔽中斷外部中斷控制器外部硬件中斷7.2.18086中斷的分類1、外部中斷不可屏蔽中斷(NMI):中斷類型號為2號含義:不能用軟件來控制是否允許中斷的一種外部中斷。常見NMI中斷有:(1)電源掉電(2)存儲器檢驗出錯(3)總線奇偶錯等??善帘沃袛?INTR):含義:可用軟件控制是否允許中斷的外部中斷。即STI使IF=1,允許中斷;CLI使IF=0,禁止中斷。常見INTR中斷有:
所有外部設備中斷如鍵盤、鼠標、打印機、顯示器、聲卡、CD-ROM等。2、內(nèi)部中斷內(nèi)部中斷是由于8086內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時異常情況的有效途徑例如,ROM-BIOS和DOS系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用內(nèi)部中斷的中斷類型號已定⑴除法錯中斷在執(zhí)行除法指令時,若除數(shù)為0或商超過了寄存器所能表達的范圍,則產(chǎn)生一個向量號為0的內(nèi)部中斷,稱為除法錯中斷例如:movbl,0idivbl ;除數(shù)BL=0,產(chǎn)生除法錯中斷movax,200hmovbl,1divbl ;商=200H,不能用AL表達 ;產(chǎn)生除法錯中斷⑵指令中斷在執(zhí)行中斷調(diào)用指令INTn時產(chǎn)生的一個向量號為n(0~255)的內(nèi)部中斷,稱為指令中斷其中向量號為3的指令中斷比較特別(生成一個字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為斷點中斷例如:DEBUG.EXE調(diào)試程序的運行命令G設置的斷點,就是利用INT3指令實現(xiàn)的⑶溢出中斷在執(zhí)行溢出中斷指令INTO時,若溢出標志OF為1,則產(chǎn)生一個向量號為4的內(nèi)部中斷,被稱為溢出中斷例如:movax,2000haddax,7000h ;2000H+7000H=9000H,溢出:OF=1into ;因為OF=1,所以產(chǎn)生溢出中斷⑷單步中斷若單步中斷TF為1,則在每條指令執(zhí)行結束后產(chǎn)生一個向量號為1的內(nèi)部中斷,稱為單步中斷例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實現(xiàn)對程序的單步調(diào)試3、中斷優(yōu)先級高至低順序依次為:內(nèi)部中斷(除單步中斷)>NMI中斷>INTR中斷>單步中斷。除單步中斷外,任何內(nèi)部中斷的優(yōu)先級都高于外部中斷。7.2.2中斷向量表含義:
中斷服務程序的入口地址(CS:IP)組成及格式:
共4個字節(jié),段地址及偏移地址。高地址段地址高字節(jié)段地址低字節(jié)低地址偏移地址高字節(jié)偏移地址低字節(jié)段地址偏移地址返回1、中斷向量2、中斷向量表含義:
存放256個中斷向量的內(nèi)存區(qū)域。即存放中斷服務程序入口地址的內(nèi)存區(qū)域稱為中斷向量表。中斷向量表大?。?KB中斷向量表地址范圍:00000H~003FFH。中斷向量地址中斷類型號n與其對應的中斷向量存放起始地址之間的關系是: 起始地址=4×n;末地址=4×n+3 即中斷向量在4×n~4×n+3指示的內(nèi)存單元中。示例實方式下的中斷服務程序入口地址求法(例子)【例】假設在實地址方式下,內(nèi)存00140H到00147H中存放的數(shù)據(jù)如右圖所示,求51H號中斷的中斷服務程序入口地址。
解:(1)求中斷向量存放的首地址和末地址
由中斷類型號51H可知中斷向量存放的 首地址=51H×4=144H(左移兩位方法) 末地址=51H×4+3=147H(2)從首末地址對應的4個單元找出中斷向量,即00144H到00147H中內(nèi)容就是51H號中斷的中斷向量對照中斷向量組成及格式可知段地址=4540H,偏移地址=3430H,所以中斷服務程序入口地址為段地址×16+偏移地址=45400H+3430H=48830H求解中斷向量組成及格式返回3、中斷向量的設置方法(1)DOS功能調(diào)用(21H)保存中斷向量AH=35HAL=中斷類型號INT21H返回時送ES:BX=中斷向量 MOVAL,NMOVAH,35HINT21H;取原中斷向量
PUSHESPUSHBX保存原中斷向量DOS功能調(diào)用(21H)設置中斷向量
AH=25HAL=中斷類型號DS:DX=中斷向量INT21H
MOVAX,SEGINTRPROC MOVDS,AX MOVDX,OFFSETINTRPROC MOVAL,N MOVAH,25H INT21H3、中斷向量的設置方法(1)通過傳送類指令直接設置中斷向量MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRPROCMOVES:[BX],AX;偏移地址(N*4)MOVAX,SEGINTRPROCMOVES:[BX+2],AX;段地址(N*4+2)……INTRPROC:
……IRET3、中斷向量的設置方法(2)7.2.38086對中斷的響應CPU響應中斷必須滿足如下條件:(1)CPU接收到中斷請求;(2)沒有DMA請求;(3)當前指令執(zhí)行結束,(4)如果是INTR中斷請求,CPU還必須開中斷,即中斷標志IF=1。響應條件滿足后,進入中斷響應周期,中斷響應操作由硬件自動完成。8086CPU對不同類型的中斷響應過程稍有不同,主要是獲取中斷類型號的過程不同??善帘沃袛嗟捻憫^程(1)處理器接到中斷申請,處理完當前指令即進入響應周期。(2)第二階段即中斷響應周期,在其間CPU向外部中斷控制器發(fā)送兩個響應脈沖信號INTA。 第一個響應脈沖通知中斷控制器,已經(jīng)響應外部中斷請求,讓中斷控制器提供中斷類型號。第二個響應脈沖,CPU取走中斷類型號。(3)將標志寄存器中的內(nèi)容壓入堆棧保護,然后清IF和TF標志,以禁止INTR引腳以及陷井和單步中斷。(4)將斷點地址壓入堆棧(CS:EIP或CS:IP)。 斷點地址:指中斷時CPU待執(zhí)行的下一條指令對應的邏輯地址。
順序:先壓入斷點地址CS,后壓入偏移地址EIP(或IP)。(5)CPU得到中斷類型號碼n后,通過中斷類型號與中斷服務程序入口地址的關系找出該類型對應的段基地址和偏移地址,從而轉入中斷服務程序入口地址。完成中斷響應任務。7.3中斷控制器8259A一、8259A主要功能:(1)8位可編程中斷控制器,又稱優(yōu)先級控制器(2)處理8級向量優(yōu)先級中斷(3)可提供中斷類型號(4)8259A芯片級聯(lián)組成強大的中斷管理系統(tǒng)(多至64級外部中斷)。(5)優(yōu)先級方式可編程(6)多級中斷管理7.3.18259A的引腳信號與CPU相連的引腳D7~D0為8位雙向的數(shù)據(jù)線A0:端口選擇信號CS:片選信號RD和WR:讀/寫控制信號INTA:中斷響應輸入信號INT:中斷請求輸出信號與中斷源相連的引腳IRi:8個中斷源中斷請求端級聯(lián)擴展引腳CAS0~CAS2級聯(lián)信號SP/EN:從片/緩沖允許控制(1)非緩沖時為輸入:SP:1=主片,0=從片(2)緩沖時為輸出:EN:1=CPU寫,0=CPU讀7.3.28259A的內(nèi)部結構中斷請求寄存器IRR功能:記錄外部中斷源的中斷申請的狀態(tài)。狀態(tài):1=對應引腳有中斷請求且還未被響應 0=對應引腳無中斷請求或有但已經(jīng)被響應D7D6D5D4D3D2D1D0IRR7IRR6IRR5IRR4IRR3IRR2IRR1IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引腳中斷優(yōu)先權分辨器PR優(yōu)先權分辨器PR用來確定存放在IRR中 各個中斷請求信號對應中斷源的優(yōu)先級。 并總是選出當前最高優(yōu)先中斷源的中斷申請通知控制邏輯,以便控制邏輯發(fā)送中斷請求信號INT給CPU。中斷服務寄存器ISR功能:記錄外部中斷源的中斷申請被服務的狀態(tài)。狀態(tài):1=對應引腳的中斷請求已被響應(服務)且服務還沒有結束。 0=對應引腳的中斷請求未被響應。D7D6D5D4D3D2D1D0ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引腳中斷屏蔽寄存器IMR功能: 設置外部中斷源的中斷屏蔽狀態(tài)。狀態(tài): 1=對應引腳的中斷被屏蔽。 0=對應引腳的中斷未被屏蔽。注意: 只有IMRi相應位為0且IF=1,CPU才有可能響應可屏蔽中斷。D7D6D5D4D3D2D1D0IMR7IMR6IMR5IMR4IMR3IMR2IMR1IMR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引腳數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個三態(tài)、雙向的8位緩沖器,是8259A與CPU系統(tǒng)數(shù)據(jù)總線的接口。數(shù)據(jù)總線緩沖器的主要功能有:(1)通過數(shù)據(jù)總線緩沖器,CPU向8259A內(nèi)部發(fā)送
命令。(2)CPU接收8259A狀態(tài)信息。(3)在中斷響應周期,CPU從中獲得中斷類型號。讀/寫邏輯接收CPU送來的讀/寫控制信號、片選信 號以及地址選擇信號,對內(nèi)部各個寄存器 進行讀寫操作。級聯(lián)緩沖/比較器級聯(lián)緩沖/比較器在級聯(lián)方式的主從結構 中(兩個以上的8259A組成的系統(tǒng)),用 來存放和比較系統(tǒng)中各8259A的從設備標 志(ID)??刂七壿嬁刂七壿嬍强刂?259A內(nèi)部各個部件的主要邏輯電路。主要功能包括:(1)根據(jù)CPU對8259A編程設定的工作方式來產(chǎn)生內(nèi)部控制信號。(2)如果中斷請求寄存器IRR有未被屏蔽的位,則控制邏輯對應于當時最高優(yōu)先的中斷源,向CPU發(fā)中斷請求信號INT。(3)接收CPU送來的中斷響應信號,并允許中斷服務寄存器ISR的相應位(ISRi)置位。(4)控制發(fā)出相應的中斷類型號,以供CPU讀取。①
中斷申請寄存器IRR鎖存外部的中斷申請。若IR0~IR7引腳上有中斷申請,則將IRR相應位置1IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1芯片控制
ICW2中斷類型號
ICW3
主從片關系
ICW4方式控制00000000
ISR當前中斷服務寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設置PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
10010100INTR118259A工作過程②中斷屏蔽寄存器IMR決定IRR中的中斷申請是否進入優(yōu)先級裁決器PR。IMR對應位為0,允許中斷申請進入優(yōu)先級裁決器;為1,不允許進入,中斷申請被IMR屏蔽。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1芯片控制
ICW2中斷類型號
ICW3
主從片關系
ICW4方式控制00000000
ISR當前中斷服務寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR③
當前中斷服務寄存器ISR記錄CPU正在響應的中斷。ISR中的某位為1,表示CPU正在響應此級中斷,即正在執(zhí)行此中斷源的中斷子程;ISR中的某位為0,表示CPU沒有或已響應完此級中斷,即不在執(zhí)行此中斷源的中斷子程IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1芯片控制
ICW2中斷類型號
ICW3
主從片關系
ICW4方式控制001
00000
ISR當前中斷服務寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR④優(yōu)先級裁決器PR據(jù)新進入的中斷申請和ISR的內(nèi)容,決定是否發(fā)中斷申請信號。
如果進入的中斷申請比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1芯片控制
ICW2中斷類型號
ICW3
主從片關系
ICW4方式控制001
00000
ISR當前中斷服務寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR(2)若發(fā)中斷申請信號,且CPU響應,則在CPU中斷響應周期送出中斷類型號
CPU接收到INTR上的中斷申請信號后:如果IF標志為0,則CPU不響應此中斷申請信號,
即中斷申請被IF屏蔽。如果IF標志為1,則處理完當前的指令后,進入中斷響應周期:通過
INTA引腳發(fā)出兩個負脈沖信號,從數(shù)據(jù)總線上獲取中斷類型號,進入中斷響應的過程。8259A的中斷響應周期程CAS0~CAS2D0~D7SP/ENIR0~IR7CPU響應周期8259A工作波形INT第一個周期T1T2T3T4ALECLK
第二個周期T1T2T3T4第一個前保持為高電平
INTALOCK關于8259A思考題1.什么情況下IRR=FFH?2.什么情況下ISR=FFH?3.IMR=FFH,計算機系統(tǒng)會怎樣?4.IRR=0AH,ISR=0AH是否可能?參考答案:1.八個中斷源都有請求,但均未被CPU響應。2.從最低到最高級優(yōu)先級依次進入中斷服務程序,但都沒有結束中斷處理。(8級中斷嵌套)3.系統(tǒng)將處于癱瘓狀態(tài)(所有硬件中斷被禁止)。4.有可能,ISR=0AH表示IR1和IR3對應的中斷請求已被響應,但還沒有結束,此時IR1和IR3又都重新有申請,但還未被響應。7.3.3工作方式優(yōu)先級的方式屏蔽中斷源的方式結束中斷處理的方式連接系統(tǒng)總線的方式中斷請求信號方式優(yōu)先級的方式(4種)全嵌套方式特殊全嵌套方式優(yōu)先級自動循環(huán)方式優(yōu)先級特殊循環(huán)方式全嵌套方式僅允許高一級中斷進入嵌套。從高到低優(yōu)先級依次為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。特殊全嵌套方式允許高一級,也允許同級中斷進入嵌套。從高到低優(yōu)先級依次為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。用于級聯(lián)方式的主片優(yōu)先級自動循環(huán)方式在這種方式下,中斷源的優(yōu)先級是變化的,當一個設備得到中斷服務以后,它的優(yōu)先級自動降為最低優(yōu)先。在初始狀態(tài)下的優(yōu)先級為IR0>IR1>...>IR7;IR0得到服務后下一次優(yōu)先級為IR1>IR2>....>IR6>IR7>IR0,依次類推。優(yōu)先級特殊循環(huán)方式與優(yōu)先級自動循環(huán)方式只有一點區(qū)別:
初始最優(yōu)者可由程序設定,可任意指定一個初始最高優(yōu)先級,以后再循環(huán)優(yōu)先。屏蔽中斷源的方式普通屏蔽方式:設置8259A內(nèi)部中斷屏蔽寄存器IMR的相應位為1(通過OCW1),即可屏蔽對應中斷源的中斷申請。特殊屏蔽方式:先寫入特殊屏蔽命令字OCW3,然后再寫屏蔽命令字OCW1。使當前中斷服務寄存器ISR的相應位自動復位。這就只屏蔽了當前正在處理的這級中斷。=屏蔽該中斷并清中斷服務位。結束中斷處理的方式自動結束方式:系統(tǒng)一旦進入中斷服務程序,8259A就自動將當前中斷服務寄存器相應位清0。(在第二個中斷響應脈沖)非自動結束方式:在中斷服務程序結束,返回主程序之前發(fā)一條中斷結束命令,使8259A的當前最高優(yōu)先級的中斷對應的ISR復位。連接系統(tǒng)總線的方式緩沖方式:
一般在多片8259A級聯(lián)系統(tǒng)中,8259A通過總線驅動器與系統(tǒng)總線相連,而不是8259A直接與系統(tǒng)總線相連,這就是緩沖方式。非緩沖方式:
當系統(tǒng)只有一片8259A或少量幾片8259A時,一般將它直接與數(shù)據(jù)總線相連。這就是所謂的非緩沖方式。中斷請求信號方式邊沿觸發(fā)方式:
在邊沿觸發(fā)方式下,8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號,且該信號可以一直保持為高電平。為了防止干擾,其高電平也應有一定的寬度。電平觸發(fā)方式:
8259A把中斷請求輸入端出現(xiàn)的高電平作為中斷請求信號。但應注意的是,當中斷請求被響應后,輸入端必須立即撤消高電平,以免引起再一次中斷。7.3.58259A的初始化命令字和初始化編程在8259A內(nèi)部有兩組命令寄存器,一組是在8259A初始化時設定的,叫初始化命令字ICW,另一組在8259A初始化后使用時寫入,叫操作命令字OCW。8259A有4個初始化命令寄存器ICW1~ICW4。8259A開始工作前必須寫入初始命令字,使它按預定的工作方式工作。
芯片初始化命令字ICW1A7A6A51LTIMADISNGLIC4X86不用特征位0=不用ICW41=要ICW4X86不用0=邊沿觸發(fā)1=電平觸發(fā)0=多片1=單片寫入A0=0的端口返回中斷類型初始化命令字ICW2T7~T3決定中斷類型號(D2~D0任意)8個中斷源具有連續(xù)的中斷類型號寫入A0=1的端口D7D6D5D4D3D2D1D0T7T6T5T4T3×××返回主/從片初始化命令字ICW3
——主片ICW3IRi=1,指示8259的引腳IRi處接一從片寫入A0=1的端口D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0返回主/從片初始化命令字ICW3
——從片ICW3ID2,ID1,ID0編碼決定從片的INT接主片寫入A0=1的端口D7D6D5D4D3D2D1D000000ID2ID1ID0返回編碼決定IRi返回控制初始化命令字ICW4各位含義:μPM:CPU類型,0=8080/8085,1=80X86。AEOI:自動結束中斷方式,AEOI=1有效。M/S:主/從片選擇,1=主片,0=從片。BUF:緩沖方式。BUF=1工作在緩沖方式。SFNM:特殊全嵌套方式。SFNM=1,特殊全嵌套方式。寫入A0=1的端口D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIμPM返回8259A的
初始化編程對8259A進行初始化編程就是向8259A寫入兩到四個初始化命令字。流程如圖。初始化編程任務:1.設定中斷請求信號的有效形式。2.設定8259A是單片還是多片級聯(lián)方式。3.設置中斷類型號。4.設置優(yōu)先排隊規(guī)則。5.設定中斷結束時的操作原則。返回8259A初始化編程實例(1)【例7-1】IBM-PC微機中,8259A的端口地址分別為20H和21H,工作方式如下:單片方式,請求信號采用邊沿觸發(fā)方式,優(yōu)先級采用完全嵌套方式,非自動結束中斷,與系統(tǒng)采用非緩沖方式連接。中斷類型號為08H~0FH。則8259A的初始化程序段如下:MOV AL,00010011B;ICW1:邊沿觸發(fā),單片系統(tǒng),需要ICW4OUT 20H,ALMOV AL,00001000B ;ICW2:類型號從08H開始OUT 21H,ALMOV AL,00000001B ;ICW4:完全嵌套方式,非緩沖,非自動結束OUT 21H,AL8259A初始化編程實例(2)【例7-2】IBMPC/AT機中使用兩片8259A管理中斷,硬件連線如圖7?13所示。主片的要求是:●
主片的IR2接從片的INT端?!裰髌袛嘈盘枮檫呇赜|發(fā)方式。●級聯(lián)但無緩沖?!衿鹗贾袛囝愋吞枮?8H(IR0)?!裾5闹袛嘟Y束,選擇特殊的全嵌套方式?!?級聯(lián)方式要ICW3和ICW4。從片的要求是:●從片的INT接主片的IR2。●從片起始中斷類型號為70H。●級聯(lián)方式要ICW3和ICW4。返回返回主片8259A初始化MOVAL,00010001B ;ICW1:邊沿,ICW4,ICW3OUT20H,AL ;寫入ICW1(A0=0地址端口)MOVAL,00001000B ;ICW2:IR0中斷類型號為08HOUT21H,AL ;寫入ICW2(A0=1地址端口)MOVAL,00000100B ;ICW3:主片IR2接從片INTOUT21H,AL ;寫入ICW3(A0=1地址端口)MOVAL,00010001B ;ICW4:非緩沖,正常中斷結束 ;特殊全嵌套方式,主片OUT21H,AL
;寫入ICW4(A0=1地址端口)返回從片8259A初始化MOVAL,00010001B ;ICW1:邊沿,ICW4,ICW3OUT0A0H,AL ;寫入ICW1MOVAL,01110000B ;ICW2:IR0中斷類型號為70HOUT0A1H,AL ;寫入ICW2
MOVAL,00000010B ;ICW3:從片接主片的IR2OUT0A1H,AL ;寫入ICW3MOVAL,00000001B ;ICW4:非緩沖,正常結束,
;非特殊全嵌套方式,從片OUT0A1H,AL ;寫入ICW4返回7.3.68259A的操作命令字及應用中斷屏蔽命令字OCW1控制中斷和優(yōu)先級循環(huán)的操作命令字OCW2屏蔽查詢狀態(tài)命令字OCW3返回中斷屏蔽命令字OCW1(IMR)
Mi=1表示對應的IRi中斷源被屏蔽,Mi=0則取消屏蔽(i=0,1,2,3,4,5,6,7)。要求寫入8259A的A0=1的端口D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0返回OCW1的應用某系統(tǒng)中有3個中斷源,分別連接到8259A的IR0、IR2和IR3上。若系統(tǒng)中8259A的偶地址為80H,奇地址為81H。則屏蔽字為:MOVAL,11110010B ;為0的位允許中斷,為1的位中斷被屏蔽OUT81H,AL若系統(tǒng)中再增加一個IR1中斷請求IN AL,81HANDAL,11111101B ;只將OCW1中的D1位清“0”O(jiān)UT81H,AL當IR1的所有中斷全部完成后IN AL,81HOR AL,00000010B ;只將OCW1中的D1位置“1”,OUT81H,AL控制中斷和優(yōu)先級循環(huán)的操作命令字OCW2
R:優(yōu)先級循環(huán)位,R=1為循環(huán)優(yōu)先。SL:指定IRi級別位。SL=1時L2~L0有效。EOI:中斷結束命令位,1=中斷結束L2~L0:編碼指定IRi注意:要求寫入8259A的A0=0的端口D7D6D5D4D3D2D1D0RSLEOI00L2L1L0返回屏蔽查詢狀態(tài)命令字OCW3
各位含義: ESMM:特殊屏蔽允許,1有效。 SMM:特殊屏蔽位,1有效。 P:管理查詢方式。當P=1時可用作查詢方式
RR:讀寄存器命令位,RR=1讀寄存器IRR和ISR,RR=0禁止讀這兩個寄存器的內(nèi)容。
RIS:寄存器選擇位,RR=1時且RIS=0讀IRR寄存器,RIS=1讀ISR寄存器的內(nèi)容。要求寫入8259A的A0=0的端口D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS返回8259的查詢方式除了在中斷方式外,8259A可工作在查詢方式。查詢方式工作如下:1)CLI關中斷2)寫OCW3使P=1(命令字=0CH)進入查詢方式3)讀取查詢狀態(tài)(A0=0端口)判斷I值: I=1有中斷,W2W1W0為當前最高優(yōu)先級的編碼。I----W2W1W0D7D6D5D4D3D2D1D0返回操作命令編程實例MOVAL,11110000B;主片OCW1,屏蔽IR4,5,6,7OUT21H,AL ;寫入主片的OCW1MOVAL,10000001B;從片OCW1:屏蔽IR0和IR7OUT0A1H,AL;寫入從片的OCW1MOVAL,00100000B;OCW2:結束最高中斷,清ISR相應
;位,即發(fā)普通中斷結束命令OUT0A0H,AL ;先向從片發(fā)中斷結束命令OUT20H,AL ;后向主片發(fā)中斷結束命令返回8259A狀態(tài)的讀取中斷屏蔽寄存器IMR的讀取
讀取IMR只需用一條IN指令 IN AL,21H ;讀主片IMR(A0=1端口)中斷請求寄存器IRR的讀取
MOVAL,0AH ;發(fā)讀取IRR的OCW3命令字 OUT20H,AL ;寫入A=0的偶地址端口 IN AL,20H ;讀IRR內(nèi)容到AL中中斷服務寄存器ISR的讀取
MOVAL,0BH ;發(fā)讀取ISR的OCW3命令 OUT20H,AL ;命令字寫入A0=0的端口 IN AL,20H ;讀ISR內(nèi)容到AL中返回7.4 中斷應用舉例【例7-3】假設某應用系統(tǒng)通過一組8位開關的狀態(tài)控制8個發(fā)光二極管,某開關閉合對應的發(fā)光二極管點亮。要求8個開關的狀態(tài)全部設置完成后,才能點亮對應的發(fā)光二極管,當開關的數(shù)據(jù)為0FFH時,程序結束。完成軟硬件設計。1、硬件電路設計開關和發(fā)光二極管是最基本的輸入輸出設備,開關可直接通過三態(tài)緩沖器74LS244與CPU的數(shù)據(jù)總線相連,發(fā)光二極管通過鎖存器74LS273與總線相連。要求8個開關的狀態(tài)全部設置完成后,才能點亮對應的發(fā)光
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社交媒體平臺安全保障協(xié)議
- 企業(yè)戰(zhàn)略合作框架協(xié)議書
- 影視制作行業(yè)影片策劃與制作管理方案
- 互聯(lián)網(wǎng)金融項目投資合同
- 大健康產(chǎn)業(yè)醫(yī)療大數(shù)據(jù)分析與應用計劃
- 品牌策劃設計推廣服務合同
- 游戲產(chǎn)品分銷合作協(xié)議
- 人工智能智能醫(yī)療輔助診斷系統(tǒng)開發(fā)合同
- 農(nóng)村農(nóng)業(yè)綠色發(fā)展模式研究與實踐手冊
- 服裝鞋業(yè)個性化定制與銷售管理平臺開發(fā)計劃
- 青年產(chǎn)業(yè)園鋁灰和廢酸資源化綜合利用試驗項目環(huán)評報告表
- 2024有限空間作業(yè)安全培訓
- GB/T 44312-2024巡檢機器人集中監(jiān)控系統(tǒng)技術要求
- 統(tǒng)編版九下全冊古詩詞理解性默寫及答案
- 【市質(zhì)檢】福州市2024-2025學年高三年級第一次質(zhì)量檢測 物理試卷(含答案)
- CJT 195-2004 外層熔接型鋁塑復合管
- 工程圖學及計算機繪圖習題集
- 中國心力衰竭診斷和治療指南2024解讀
- 人教版三年級數(shù)學上冊第七單元《長方形和正方形》(大單元教學設計)
- DBJ50-T-417-2022 建筑施工高處墜落防治安全技術標準
- 五年級上冊英語教案-Unit 4 Lesson 21 What Year Is It-冀教版
評論
0/150
提交評論