《微機(jī)原理》課件第6章 中斷技術(shù)_第1頁
《微機(jī)原理》課件第6章 中斷技術(shù)_第2頁
《微機(jī)原理》課件第6章 中斷技術(shù)_第3頁
《微機(jī)原理》課件第6章 中斷技術(shù)_第4頁
《微機(jī)原理》課件第6章 中斷技術(shù)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、掌握:中斷的基本概念中斷響應(yīng)的一般過程中斷向量表及其初始化8088/8086中斷系統(tǒng)可編程中斷控制器8259A第6章 中斷技術(shù)6-1 中斷系統(tǒng)基本概念引言8259ADB IR0 IR1 IR2INT IR3 IR4 IR5INTA IR6 IR7開關(guān) DB INTR INTA CPU1234567897 7 7顯示器CPU#1 中斷源中斷控制電路中斷請(qǐng)求INTR#2 中斷源#3 中斷源中斷服務(wù)程序入口中斷請(qǐng)求中斷返回主程序一、什么是中斷及中斷源6-1 中斷系統(tǒng)基本概念二、中斷系統(tǒng)功能1、允許多個(gè)中斷源申請(qǐng)中斷;2、多個(gè)中斷源優(yōu)先級(jí)排隊(duì);3、實(shí)現(xiàn)中斷嵌套;4、 向CPU提供中斷類型碼CPU#1

2、中斷源中斷系統(tǒng)中斷請(qǐng)求INTR#2 中斷源#3 中斷源6-1 中斷系統(tǒng)基本概念三、中斷過程中斷請(qǐng)求中斷優(yōu)先級(jí)排隊(duì)中斷響應(yīng)中斷處理(服務(wù))中斷返回請(qǐng)看下頁流程圖中斷服務(wù)入口中斷請(qǐng)求中斷返回主程序CPU#1 中斷源中斷系統(tǒng)中斷請(qǐng)求INTR#2 中斷源#3 中斷源6-1 中斷系統(tǒng)基本概念轉(zhuǎn)中斷服務(wù)程序A保護(hù)現(xiàn)場(chǎng)中斷服務(wù)恢復(fù)現(xiàn)場(chǎng)開中斷返回A取下一條指令I(lǐng)NTR=1?INTA=0IF=0堆棧FLAGS堆棧CS:IPSTI IF=1IRETCS:IP 入口中斷處理有中斷?關(guān)中斷保存FLAGS保護(hù)斷點(diǎn)取得入口地址N當(dāng)前指令結(jié)束開中斷?N開中斷關(guān)中斷中斷響應(yīng)中斷判優(yōu)中斷返回中斷請(qǐng)求6-1 中斷系統(tǒng)基本概念四、

3、中斷優(yōu)先級(jí)排隊(duì) 軟件查詢硬件判優(yōu) 6-1 中斷系統(tǒng)基本概念輸入接口20HIN AL,20HTEST AL,01HJNZ 0#TEST AL,02HJNZ 1# TEST AL,04HJNZ 2# TEST AL,80HJNZ 7# 1、軟件查詢INTR1D7D6D5D4D3D2D1D0#7 #2#1 #06-1 中斷系統(tǒng)基本概念2、鏈?zhǔn)脚袃?yōu)-菊花鏈法INTAIREQ1INTR&=1 1DB三態(tài)門中斷向量碼E接口1中斷響應(yīng)&=1 1接口2IREQ1中斷請(qǐng)求中斷響應(yīng)中斷請(qǐng)求6-1 中斷系統(tǒng)基本概念3、中斷優(yōu)先級(jí)控制器6-1 中斷系統(tǒng)基本概念NMI中斷邏輯軟件中斷指令溢出中斷除法錯(cuò)單步中斷非屏蔽中斷

4、請(qǐng)求中斷控制器8259APIC8086/8088CPU內(nèi)部邏輯斷點(diǎn)中斷可屏蔽中斷請(qǐng)求n43012內(nèi)外中斷共計(jì)256個(gè)中斷源6-2 8086/8088中斷系統(tǒng)一、 8086/8088中斷源類型:中斷優(yōu)先級(jí)原則: 單步最低,內(nèi)部高于外部、類型碼越小優(yōu)先級(jí)越高INTRINTA二、中斷向量與中斷向量表中斷向量:中斷程序的入口地址中斷向量表:存放中斷向量的內(nèi)存區(qū)域 從內(nèi)存00000H到003FFH,共計(jì)1KB0入口0000:0000H0000:03FFH中斷向量表1入口2入口255入口00H04H08H0FH10H1FH20H3FH40HFFH專用硬件專用BIOS專用DOS專用用戶6-2 8086/80

5、88中斷系統(tǒng)結(jié)論:中斷向量在中斷向量表中的地址確定:=0000:中斷類型碼4INT 0INT 11000:2050H0000:0000H0000:0004H類型0入口類型1入口中斷程序0000: 0120H 0121H 0122H 0123HINT 48HINTPROC問題: 已知中斷類型碼 48H,中斷向量為 INTPROC 則該中斷向量在中斷向量表中的地址為:(中斷類型 48H)48H40120H502000106-2 8086/8088中斷系統(tǒng)三 中斷向量表的初始化INT 0INT 11000:2050H0000:0000H0000:0004H類型0入口類型1入口中斷程序50200010

6、0000: 0120H 0121H 0122H 0123HINT 48HINTPROCMOV AX,0000HMOV DS,AXMOV BX,OFFSET INTPROC MOV 0120H ,BXMOV BX,SEG INTPROCMOV 0122H,BX或用DOS功能(中斷類型 48H)(將中斷向量放到中斷向量表中)6-2 8086/8088中斷系統(tǒng)四、8086中斷響應(yīng)過程:1、CPU響應(yīng)中斷需要得到中斷類型碼2、不同類型的中斷 提供中斷類型碼的方式不同;NMI及內(nèi)部中斷的類型碼由CPU自動(dòng)提供,沒有中斷響應(yīng)周期;INTR 的類型碼由中斷控制器提供6-2 8086/8088中斷系統(tǒng)中斷控制

7、器外設(shè)中斷傳送程序5、CPU: 中斷向量碼4; 找到中斷入口地址; 執(zhí)行中斷服務(wù)程序。1、中斷產(chǎn)生;2、中斷申請(qǐng);3、CPU中斷響應(yīng);4、CPU讀取中斷類型碼;DB INTRCPUINTAINTR中斷響應(yīng)過程:6-2 8086/8088中斷系統(tǒng)NYNYNNNNNYY執(zhí)行指令執(zhí)行完否?取指令I(lǐng)F=1?內(nèi)部中斷?NMI?INTR?TF=1?類型碼=0255類型碼=2類型碼=1中斷響應(yīng),讀回類型碼FLAG入棧TEMPTFF=TF=0CS、IP入棧計(jì)算向量表地址高字CS低字IP執(zhí)行中斷服務(wù)程序NMI?TEMP=1?轉(zhuǎn)入中斷服務(wù)程序恢復(fù)CS和IP恢復(fù)FLAGS返回被中斷的程序YYYYNIRET指令的操作

8、8086/8088的中斷處理流程N(yùn)MI、INTR、單步和除法錯(cuò)中斷同時(shí)產(chǎn)生時(shí)的中斷處理過程DIVTF=1IF=1INTRNMIPUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IP除法錯(cuò)NMI(IF、TF = 0)PUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IPNMI中斷處理程序除法錯(cuò)中斷處理程序(IF、TF = 0) 返回執(zhí)行下條指令識(shí)別出INTR(IF、TF = 1) 返回INTR仍然有效繼續(xù)單步執(zhí)行程序INTR中斷處理程序INTRPUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IP單步 (IF、TF = 0)

9、PUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IP單步中斷處理程序(IF、TF = 0) 返回(IF、TF = 1) 返回中斷響應(yīng)時(shí)序(可屏蔽中斷)INTACLK通知外設(shè)中斷請(qǐng)求已被接受,CPU讀取外設(shè)送出的中斷類型碼 當(dāng)外設(shè) 使INTR=1時(shí): 若CPU開中斷( IF=1 )則響應(yīng),發(fā)出INTA 若CPU關(guān)中斷( IF=0 ) 則CPU不響應(yīng)。6-5 80X86中斷系統(tǒng)8259A8086CPU中斷控制電路中斷類型碼INTRINTAIR0IR1IR76-3 可編程中斷控制器8259A一、 功能1、單片8259A可對(duì)8個(gè)中斷源控制,9片級(jí)聯(lián)可擴(kuò)展到64級(jí);2、能向CP

10、U提供中斷類型碼;3、可通過編程選擇多種工作方式6-3 可編程中斷控制器8259A二、內(nèi)部結(jié)構(gòu)IR0IR1IR7INT INTAD7D0RDWRA0CSCAS0CAS1CAS2SP/EN數(shù)據(jù)總線緩沖器讀/寫邏輯級(jí)連緩沖/比較器在服務(wù)寄存器ISR(8)優(yōu)先權(quán)電路PR(8)中斷請(qǐng)求寄存器IRR(8)中斷屏蔽寄存器IMR(8) 控制邏輯IRRi=1 表示外設(shè)中斷請(qǐng)求IMRi=0 該位允許中斷, IMRi=1,該位被屏蔽ISRi=1 該位正在服務(wù), 該位中斷處理結(jié)束ISRi=0 IR0IR1IR7INT INTAD7D0RDWRA0CSCAS0CAS1CAS2SP/EN數(shù)據(jù)總線緩沖器讀/寫邏輯級(jí)連緩沖

11、/比較器在服務(wù)寄存器ISR(8)優(yōu)先權(quán)電路PR(8)中斷請(qǐng)求寄存器IRR(8)中斷屏蔽寄存器IMR(8)控制邏輯三、常用引腳介紹6-3 可編程中斷控制器8259A1、A0-端口選擇,接CPU低位地址線。A00 -偶端口地址;A0 1 -奇端口地址。IR0 IR7譯碼器A1A0A14A138088CPUA15DB 8位8259ACSA0 6-3 可編程中斷控制器8259A2、CAS2CAS0-級(jí)聯(lián)信號(hào)線 用作主片時(shí),為輸出線;用作從片時(shí),為輸入線;IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA DB INT主IR0IR4IR6IR7IR1IR2IR3IR5CAS2 C

12、AS0INTA DBINT從INTR INTADB問題:5片級(jí)連可允許接收多少個(gè)中斷源?6-3 可編程中斷控制器8259A3、SP/EN-主從控制/允許,雙向;輸入方向:SP=1,則為主片 SP=0,則為從片IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA DB INT主IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA DBINT從SP/EN+5VSP/EN 地CPU的 INTR端 INTADB6-3 可編程中斷控制器8259A輸出方向:用于緩沖器方式IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA DB INT主I

13、R0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA DBINT從SP/ENSP/ENINTR INTADBBT OEABT OEA82868286SP/EN 輸出方向, 緩沖器方式116-3 可編程中斷控制器8259AIR0IR4IR6IR7IR1IR2IR3IR5INTA INT8259AIRRISRIMR1DB中斷類型碼1四、 8259A的工作流程CPUINTRINTAISRi復(fù)位:在AEOI方式,當(dāng)?shù)诙€(gè)INTA結(jié)束時(shí); 其它情況,在IRET前,發(fā)EOI命令,使ISRi復(fù)位。 6-3 可編程中斷控制器8259A中斷服務(wù)程序0五、 8259A的中斷方式3、屏蔽中斷源的

14、方式1、設(shè)置優(yōu)先級(jí)的方式2、中斷結(jié)束方式4、中斷觸發(fā)方式6-3 可編程中斷控制器8259A1、設(shè)置優(yōu)先級(jí)的方式1)全嵌套方式(缺?。?固定優(yōu)先級(jí),IR0最高,IR7最低IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0最高最低DB IR0 IR1 IR2INT IR3 IR4 IR5INTA IR6 IR7時(shí)鐘鍵盤用戶異步通訊COM1硬盤軟盤打印機(jī)6-3 可編程中斷控制器8259A2)特殊全嵌套方式:(級(jí)連時(shí)用于主片)與完全嵌套方式類似,但允許高級(jí)或同級(jí)中斷;同級(jí)指來自同一從片上的中斷請(qǐng)求IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA INT8259A

15、IR0IR4IR6IR7IR1IR2IR3IR5CAS2 CAS0INTA INT8259A主從6-3 可編程中斷控制器8259A中斷結(jié)束:只有從片所有的中斷結(jié)束時(shí),才能向主片發(fā)中斷結(jié)束命令3)優(yōu)先級(jí)自動(dòng)循環(huán)方式:初始隊(duì)列IR0最高,IR7最低,當(dāng)任何一級(jí)中斷被處理后則其優(yōu)先級(jí)變?yōu)樽畹停?IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3中斷被響應(yīng),則級(jí)別變最低4)優(yōu)先級(jí)特殊循環(huán)方式:編程指定初始隊(duì)列最低優(yōu)先級(jí),其它依次排列(級(jí)別最高)(級(jí)別最低)(級(jí)別最低)(級(jí)別最高)6-3 可編程中斷控制器8259A2、8259A

16、中斷結(jié)束方式ISRi“1”,表示 IRi被響應(yīng)使ISRi“0” ,表示8259A中斷結(jié)束;分為:自動(dòng)中斷結(jié)束 正常中斷結(jié)束 特殊中斷結(jié)束IR0IR4IR6IR7IR1IR2IR3IR5INTA INTISR10ISR中斷服務(wù)寄存器 6-3 可編程中斷控制器8259AIR0IR4IR6IR7IR1IR2IR3IR5INTA INT8259AISR10121)中斷自動(dòng)結(jié)束方式(AEOI命令方式):第二個(gè)INTA的后沿使8259A優(yōu)先級(jí)最高的ISRi=0。適用于無中斷嵌套的系統(tǒng)CPUINTRINTA6-3 可編程中斷控制器8259A2)正常中斷結(jié)束方式(EOI命令方式):中斷返回IRET之前 向82

17、59A發(fā)出中斷結(jié)束命令,分為 正常EOI命令和特殊EOI命令:中斷服務(wù)程序MOV AL,20HOUT 20H,ALIRETIR0IR4IR6IR7IR1IR2IR3IR5INTA INT8259AISR10EOI命令6-3 可編程中斷控制器8259A正常EOI命令:使優(yōu)先級(jí)最高的ISRi0(最后一次響應(yīng)和處理的中斷),適用于普通全嵌套方式下的中斷結(jié)束。特殊EOI命令:指定所清除的ISR位,處于從片的8259A沒有工作在全嵌套方式時(shí)使用。 R SL EOI 0 0 L2 L1 L0OCW2特殊方式IR編碼000 對(duì)應(yīng) IR0端001 對(duì)應(yīng) IR1端010 對(duì)應(yīng) IR2端011 對(duì)應(yīng) IR3端10

18、0 對(duì)應(yīng) IR4端101 對(duì)應(yīng) IR5端110 對(duì)應(yīng) IR6端111 對(duì)應(yīng) IR7端1=正常EOI1=特殊 6-3 可編程中斷控制器8259A普通屏蔽方式:IMRi=1,該位被屏蔽; IMRi=0,且該位優(yōu)先級(jí)高,則允許中斷特殊屏蔽方式:IMRi=1,該位被屏蔽;而置0的位無論優(yōu)先級(jí)高低均可以中斷。IR0IR4IR6IR7IR1IR2IR3IR5INTA INT8259AIMR1IMR:中斷屏蔽寄存器3、屏蔽中斷源的方式: 6-3 可編程中斷控制器8259A1)邊沿觸發(fā): IRi從低電平變?yōu)楦唠娖?,表示中斷?qǐng)求;2)電平觸發(fā):IRi為高電平,表示中斷請(qǐng)求,IRRi置1IRR中斷請(qǐng)求寄存器4、中

19、斷觸發(fā)方式IR0IR4IR6IR7IR1IR2IR3IR5 INTA INT8259AIRR3)中斷查詢方式:超過64個(gè)中斷請(qǐng)求信號(hào)時(shí)使用。6-3 可編程中斷控制器8259A初始化編程:編寫ICW1ICW4,確定工作方式 操作方式編程:編寫OCW1OCW3,對(duì)8259A控制A7 A6 A5 1 LTIM ADI SNGL IC4T7 T6 T5 T4 T3 X X XS7 S6 S5 S4 S3 S2 S1 S00 0 0 0 0 ID2 ID1 ID00 0 0 SFNM BUF M/S AEOI PMICW1ICW2ICW3ICW4M7 M6 M5 M 4 M3 M2 M1 M0R SL

20、EOI 0 0 L2 L1 L00 ESMM SMM 0 1 P RR RISOCW1OCW2OCW36-3 可編程中斷控制器8259A六、 8259A編程A7 A6 A5 1 LTIM ADI SNGL IC4ICW1T7 T6 T5 T4 T3 X X XS7 S6 S5 S4 S3 S2 S1 S00 0 0 0 0 ID2 ID1 ID00 0 0 SFNM BUF M/S AEOI PMICW2ICW3ICW4M7 M6 M5 M 4 M3 M2 M1 M0OCW1R SL EOI 0 0 L2 L1 L0 OCW20 ESMM SMM 0 1 P RR RISOCW3A0DBICW

21、1ICW4和OCW1OCW3占用規(guī)定的端口地址 6-3 可編程中斷控制器8259AA0=1奇端 口A0=0 偶端口1、初始化編程說明:1)按順序?qū)懭隝CW1ICW42)要求ICW1寫入偶數(shù)地址端口, ICW2ICW4寫入奇地址端口;3)初始化后的狀態(tài): 清除IMR、ISR、 IRR, 置完全嵌套方式、普通屏蔽方式、正常EOI;ICW1ICW2級(jí)聯(lián)?ICW3需要ICW4?ICW4NoNo 6-3 可編程中斷控制器8259AICW1芯片控制字 寫入偶地址端口(A0=0)A7 A6 A5 1 LTIM ADI SNGL IC4標(biāo)志位用于MCS80/851=需要 ICW40=不需要ICW41=單級(jí)0=

22、級(jí)連8080CALL指令1=間距40=間距81=電平觸發(fā)0=邊沿觸發(fā)6-3 可編程中斷控制器8259AICW2 設(shè)置中斷類型碼 寫入奇地址端口(A0=1)T7 T6 T5 T4 T3 X X X任意,8259A自動(dòng)填入其編碼中斷向量地址用戶確定000IR0 端001 IR1 端010 IR2 端011 IR3 端100 IR4 端101 IR5 端110 IR6 端111 IR7 端 6-3 可編程中斷控制器8259AS7 S6 S5 S4 S3 S2 S1 S0ICW3 (主片) 寫入奇地址端口(A0=1)1=IR輸入端有從片0= IR輸入端無從片0 0 0 0 0 ID2 ID1 ID0I

23、CW3 (從片) 寫入奇地址端口(A0=1)000接入主片IR0端001 IR1端010 IR2端011 IR3端100 IR4端101 IR5端110 IR6端111 IR7端 6-3 可編程中斷控制器8259A0 0 0 SFNM BUF M/S AEOI PMICW4方式控制字寫入奇地址端口(A0=1)1=8086/8088方式0=MCS-80/85方式0 X =非緩沖方式1 0 =緩沖方式/從片1 1 =緩沖方式/主片1=特殊全嵌套方式0=非特殊全嵌套方式1=自動(dòng)EOI方式0=非自動(dòng)EOI方式6-3 可編程中斷控制器8259A過程控制中需要的時(shí)候?qū)懭?,進(jìn)一步修改和控制8259A工作方式

24、寫入次序沒有要求,每個(gè)控制字都可單獨(dú)使用。2、操作命令字(OCW字)及工作方式設(shè)置6-3 可編程中斷控制器8259AM7 M6 M5 M 4 M3 M2 M1 M0OCW1 屏蔽字 寫入奇地址端口1=屏蔽IRi 中斷請(qǐng)求0=允許IRi 中斷請(qǐng)求 R SL EOI 0 0 L2 L1 L0OCW2 優(yōu)先權(quán)循環(huán)和中斷結(jié)束方式 寫入偶地址端口特殊方式IR編碼000 對(duì)應(yīng) IR0端001 對(duì)應(yīng) IR1端010 對(duì)應(yīng) IR2端011 對(duì)應(yīng) IR3端100 對(duì)應(yīng) IR4端10 1 對(duì)應(yīng) IR5端110 對(duì)應(yīng) IR6端111 對(duì)應(yīng) IR7端1=正常EOI1=特殊1=循環(huán)6-3 可編程中斷控制器8259AOC

25、W3特殊屏蔽方式和查詢方式,讀8259A狀態(tài) 寫入偶地址端口 ESMM SMM 0 1 P RR RIS0 X =無動(dòng)作1 0 =讀IRR1 1 =讀ISR1 =查詢命令0 =不查詢0 X =無動(dòng)作1 0 =清除特殊屏蔽1 1 =設(shè)置特殊屏蔽 6-3 可編程中斷控制器8259AMOV AL, 0AH ;00001010BOUT 20H, ALIN AL, 20H I X X X X W2 W1 W01 =有中斷請(qǐng)求0 =無中斷請(qǐng)求查詢字格式 讀取偶數(shù)端口IR編碼000 對(duì)應(yīng) IR0端001 對(duì)應(yīng) IR1端010 對(duì)應(yīng) IR2端011 對(duì)應(yīng) IR3端100 對(duì)應(yīng) IR4端101 對(duì)應(yīng) IR5端1

26、10 對(duì)應(yīng) IR6端111 對(duì)應(yīng) IR7端6-3 可編程中斷控制器8259AMOV AL, 0CH ;00001100BOUT 20H, ALIN AL, 20H例6.1微機(jī)系統(tǒng)使用一片8259A實(shí)現(xiàn)中斷管理,將其設(shè)計(jì)為主片結(jié)構(gòu),可處理8個(gè)外部中斷。在I/O地址空間中,分配給8259A的I/O端口地址為20H和21H。對(duì)8259A的初始化規(guī)定:邊沿觸發(fā)方式,非緩沖器方式,中斷結(jié)束為EOI命令方式,中斷優(yōu)先級(jí)管理采用全嵌套方式。 6-3 可編程中斷控制器8259A初始化 編程步驟 6-3 可編程中斷控制器8259AICW1ICW2級(jí)聯(lián)?ICW3需要ICW4?ICW4NoNo方式設(shè)置:?jiǎn)渭?jí)全嵌套方

27、式,邊沿觸發(fā)方式:A7 A6 A5 1 LTIM ADI SNGL IC4ICW1芯片控制字 寫入偶地址端口標(biāo)志位用于MCS80/851=需要 ICW40=不需要ICW41=單級(jí)0=級(jí)連8080CALL指令1=間距40=間距81=電平觸發(fā)0=邊沿觸發(fā)MOV AL,13H;00010011BOUT 20H,AL;ICW16-3 可編程中斷控制器8259AT7 T6 T5 T4 T3 X X XICW2 中斷向量 寫入奇地址端口8259A根據(jù)中斷輸入端自動(dòng)提供其編碼中斷向量地址類型碼為08H0FH;MOV AL,08H;00001000BOUT 21H,AL;ICW26-3 可編程中斷控制器825

28、9A非特殊全嵌套方式,非緩沖器方式;MOV AL,01H;00000001BOUT 21H,AL;ICW40 0 0 SFNM BUF M/S AEOI PMICW4方式控制字寫入奇地址端口(A0=1)1=8086/8088方式0=MCS-80/85方式0 X =非緩沖方式1 0 =緩沖方式/從片1 1 =緩沖方式/主片1=特殊全嵌套方式0=非特殊全嵌套方式1=自動(dòng)EOI方式0=非自動(dòng)EOI方式6-3 可編程中斷控制器8259AMOV AL,13HOUT 20H,AL;ICW1MOV AL,08HOUT 21H,AL;ICW2MOV AL,01HOUT 21H,AL;ICW4初始化程序:MOV

29、 AL,20H ;00100000BOUT 20H,AL; OCW2:當(dāng)允許時(shí)鐘、鍵盤中斷時(shí)應(yīng)送入OCW1:IN AL, 21HAND AL,0FCH ; 11111100BOUT 21H,AL; OCW1:中斷服務(wù)程序結(jié)束時(shí)向8259A發(fā)中斷結(jié)束命令OCW2DB IR0 IR1 IR2INT IR3 IR4 IR5INTA IR6 IR7時(shí)鐘鍵盤用戶異步通訊COM1硬盤軟盤打印機(jī)6-3可編程中斷控制器8259AM7 M6 M5 M 4 M3 M2 M1 M0OCW1 屏蔽字 寫入奇地址端口1=屏蔽IRi 中斷請(qǐng)求0=允許IRi 中斷請(qǐng)求IN AL, 21HAND AL,0FCH ;11111

30、100BOUT 21H,AL; OCW1DB IR0 IR1 IR2INT IR3 IR4 IR5INTA IR6 IR7時(shí)鐘鍵盤用戶異步通訊COM1硬盤軟盤打印機(jī)當(dāng)允許時(shí)鐘、鍵盤中斷時(shí)應(yīng)送入OCW1:6-3 可編程中斷控制器8259A R SL EOI 0 0 L2 L1 L0OCW2 優(yōu)先權(quán)循環(huán)和中斷結(jié)束方式 寫入偶地址端口特殊方式IR編碼000 對(duì)應(yīng) IR0端001 對(duì)應(yīng) IR1端010 對(duì)應(yīng) IR2端011 對(duì)應(yīng) IR3端100 對(duì)應(yīng) IR4端10 1 對(duì)應(yīng) IR5端110 對(duì)應(yīng) IR6端111 對(duì)應(yīng) IR7端1=正常EOI1=特殊1=循環(huán)MOV AL,20H;00100000BOUT

31、 20H,AL; OCW2 中斷服務(wù)程序結(jié)束時(shí)向8259A發(fā)中斷結(jié)束命令OCW26-3 可編程中斷控制器8259A6-3 可編程中斷控制器8259A七、中斷程序設(shè)計(jì):主程序初始化主程序中斷服務(wù)程序當(dāng)外設(shè)申請(qǐng)中斷,CPU從主程序跳轉(zhuǎn)到中斷服務(wù)程序保護(hù)現(xiàn)場(chǎng)、中斷服務(wù)、恢復(fù)現(xiàn)場(chǎng)向8259A發(fā)中斷結(jié)束命令中斷返回(IRET指令)。 1)設(shè)置用戶的中斷向量 2)設(shè)置中斷控制器 3)對(duì)中斷控制器初始化,如果系統(tǒng)已對(duì)中斷控制器初始化,則只需使屏蔽寄存器的相應(yīng)位置0,允許中斷。 4)CPU開中斷 開中斷指令STI,關(guān)中斷指令CLI 保存系統(tǒng)中斷向量恢復(fù)系統(tǒng)中斷向量例6.2設(shè)計(jì)一個(gè)中斷處理程序。要求中斷請(qǐng)求信號(hào)

32、以跳變方式由IR2提出中斷請(qǐng)求(可為任一定時(shí)脈沖信號(hào)),當(dāng)CPU響應(yīng)IR2請(qǐng)求時(shí),輸出字符串“8259A INTERRUPT!”,中斷10次,程序退出(設(shè)8259A的端口地址為20H和21H,中斷類型號(hào)為40H) 6-3 可編程中斷控制器8259A;數(shù)據(jù)段DATA SEGMENTMESS DB 8259A INTERRUPT!COUNT DB 10DATA ENDS;堆棧段STACK SEGMENTSTA DB 100H DUP(?)TOP EQU $-STASTACK ENDS 6-3 可編程中斷控制器8259A;代碼段CODE SEGMENTASSUME CS:CODE, DS:DATA,

33、 SS:STACKMAIN:CLIMOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AXMOV SP, TOPPUSH DS ;向量表初始化 MOV AX, 0000HMOV DS, AXMOV SI, 0108HMOV AX, OFFSET INTFMOV SI, AXMOV AX, SEG INTFMOV SI+2, AXPOP DS 6-3 可編程中斷控制器8259AMOV AL, 13H ; 8259初始化OUT 20H, ALMOV AL, 40HOUT 21H, ALMOV AL, 01HOUT 21H, ALIN AL, 21H ; 讀IMRAND AL, 0FBHOUT 21H, ALWAIT1:STICMP COUNT,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論