




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《微型計(jì)算機(jī)原理與接口技術(shù)》第5版第8章
中斷和可編程中斷
控制器8259A§8.3
8259A的應(yīng)用舉例8.3.18259A的級(jí)聯(lián)使用8.3.2中斷向量的設(shè)置和中斷處理程序設(shè)計(jì)實(shí)例8.3.18259A的級(jí)聯(lián)使用1.8259A級(jí)聯(lián)使用實(shí)例例8.14某系統(tǒng)中用兩片8259A級(jí)聯(lián)組成中斷系統(tǒng)。8259A主片的IR1、IR5上引入兩個(gè)中斷源,其中斷類型碼為31H、35H,中斷服務(wù)程序的入口地址為1000:2000H和1000:3000H。從片接在主片的IR3上,從片的IR4、IR5上引入兩個(gè)中斷源,其中斷類型碼為44H、45H,中斷服務(wù)程序的入口地址為2000:3600H和2000:4500H。8259A主片口地址為C8H/C9H,從片口地址為CAH/CBH。
要求畫出硬件連線圖,并編寫8259A的主片和從片的初始化程序。硬件連線圖如圖8.21所示。圖8.21級(jí)聯(lián)電路硬件連線圖4個(gè)中斷服務(wù)程序的入口地址表如圖8.22所示。31H號(hào)中斷的中斷服務(wù)程序的入口地址存放在31H4=0C4H開(kāi)始的4個(gè)連續(xù)單元中,它等于1000:2000H。35H號(hào)中斷向量位于0D4H開(kāi)始的單元中,中斷服務(wù)程序的入口地址為1000:3000H中。其余中斷也可用類似方法求得。對(duì)8259A主片初始化的程序:MOV AL,00010001B ;ICW1,邊沿觸發(fā),
;級(jí)聯(lián)使用,要IC4OUT 0C8H,ALMOV AL,00110000B ;ICW2,中斷類型碼n=30H~37HOUT 0C9H,ALMOV AL,00001000B ;ICW3,主片的IR3上接有從片OUT 0C9H,ALMOV AL,00010001B;ICW4,特殊全嵌套,非緩沖,
;非AEOI方式結(jié)束中斷OUT 0C9H,ALMOV AL,11010101B ;OCW1,允許IR5、IR3、IR1
;中斷,其余位屏蔽OUT 0C9H,AL對(duì)8259A從片初始化程序:MOV AL,11H ;ICW1,同主片OUT 0CAH,ALMOV AL,40H ;ICW2,中斷類型碼n=40H~47HOUT 0CBH,ALMOV AL,00000011B ;ICW3,從片接在主片的IR3上OUT 0CBH,ALMOV AL,00000001B ;ICW4,全嵌套,非AEOI
;方式結(jié)束中斷OUT 0CBH,ALMOV AL,11001111B ;OCW1,允許從IR5、IR4引
;入中斷,其余屏蔽OUT 0CBH,AL2.PC/AT機(jī)中的8259A級(jí)聯(lián)電路在PC/AT機(jī)中,用2片8259A構(gòu)成級(jí)聯(lián)電路,最多可接收15級(jí)中斷,如圖8.23。在PC/XT和PC/AT機(jī)中,從IRi上引入的中斷請(qǐng)求信號(hào),均被重命名為IRQi。主片口地址為20H/21H,8級(jí)中斷的中斷類型號(hào)為08H~0FH,從外部引入的中斷請(qǐng)求信號(hào)為IRQ0~IRQ7。從片口地址為A0H/A1H,其中斷類型號(hào)為70H~77H,外部引入的中斷請(qǐng)求信號(hào)為IRQ8~IRQ15,其中IRQ10~IRQ12、IRQ15保留給用戶使用。主片的IRQ0、IRQ1為系統(tǒng)板上用的信號(hào),IRQ2作為級(jí)聯(lián)信號(hào),它們都沒(méi)有引到ISA總線上。從片的IRQ8、IRQ13也沒(méi)有引到ISA總線上,其余的都引到了ISA總線上?!?.3
8259A的應(yīng)用舉例8.3.18259A的級(jí)聯(lián)使用8.3.2中斷向量的設(shè)置和中斷處理程序設(shè)計(jì)實(shí)例8.3.2中斷向量的設(shè)置和
中斷處理程序設(shè)計(jì)實(shí)例中斷向量的設(shè)置PC機(jī)對(duì)256類中斷,有些已分配了固定功能,規(guī)定了中斷服務(wù)程序的入口地址。如類型號(hào)n=0~4為專用中斷,n=5為打印屏幕中斷,n=08~FH分配給8259A。n=08~FH和n=70H~FFH是分配給PC/AT機(jī)的。還有一些保留給用戶使用,必須在中斷向量表中建立相應(yīng)的中斷向量。常用以下兩種方法設(shè)置中斷向量。1)用指令直接進(jìn)行設(shè)置這種方法利用MOV指令,直接將類型為N的中斷服務(wù)程序的入口地址送到中斷向量表的相應(yīng)單元中去。具體做法:將中斷服務(wù)程序的入口地址的偏移地址,送到4N開(kāi)始的字單元中,并將其基地址送到(4N+2)開(kāi)始的字單元中。例8.15設(shè)中斷服務(wù)程序的入口地址名為INTR_AD,類型號(hào)為N,要求將INTR_AD的CS:IP置入0000:(4N)開(kāi)始的單元中去,試編寫匯編語(yǔ)言程序。方法一,用字符串操作指令STOSW和MOV指令設(shè)置MOVAX,0
;目的地址基址為ES,其值為0MOVES,AXMOVDI,N*4 ;DI←N4,即目的地址偏移量MOVAX,OFFSETINTR_AD
;AX←INTR_AD的偏移地址(IP)CLD ;方向標(biāo)志清0STOSW ;(ES:DI)←中斷服務(wù)程序的IPMOVAX,CS STOSW ;后兩個(gè)字節(jié)單元←中斷服務(wù)程序的CS
┆INTR_AD:
;中斷服務(wù)程序PUSHAX ;保護(hù)現(xiàn)場(chǎng)PUSHBX
┆
;中斷處理POPBX ;恢復(fù)現(xiàn)場(chǎng)POPAXIRET ;中斷返回方法二,直接用MOV指令設(shè)置 MOVAX,0 MOVES,AX ;目的地址基址 MOVBX,N*4 ;目的地址偏移量 MOVAX,OFFSETINTR_AD MOVES:[BX],AX ;置入偏移地址 MOVAX,SEGINTR_AD MOVES:[BX+2],AX ;置入段基地址
┆INTR_AD:
;中斷服務(wù)程序
┆ IRET2)利用DOS功能調(diào)用設(shè)置DOS功能調(diào)用專門提供了在中斷向量表中設(shè)置和取得中斷向量的手段,功能號(hào)為25H和35H。設(shè)置中斷向量入口參數(shù)
DS:DX=中斷向量(中斷服務(wù)程序入口地址) AL=中斷類型號(hào)NAH=25H(DOS功能號(hào))執(zhí)行
INT21H指令結(jié)果
將AL中指定的中斷類型號(hào)為N的中斷向量(DS:DX)置入中斷向量表中。取得中斷向量入口參數(shù)
AL=中斷類型號(hào)NAH=35H(DOS功能號(hào))執(zhí)行
INT21H指令結(jié)果
N號(hào)中斷的中斷向量從中斷向量表中取到ES:BX中例8.16利用DOS功能調(diào)用,編寫設(shè)置和取得中斷向量的程序段。程序段如下:MOV AL,N ;中斷類型號(hào)NMOV AH,35HINT 21H ;N號(hào)中斷向量取到ES:BXPUSH ES
;將原中斷向量送堆棧保存PUSH BXPUSH DS
;保存DSMOV AX,SEGINTR_ADMOV DS,AX ;DS←用戶新中斷向量段基址MOV DX,OFFSETINTR_AD
;DX←用戶新中斷向量偏移量MOV AL,N
;新中斷向量類型號(hào)MOV AH,25HINT 21H
;設(shè)置新中斷向量例8.16(續(xù))
POP DS ;恢復(fù)DS
┆POP DX ;恢復(fù)原中斷向量POP DSMOV AL,NMOV AH,25HINT 21HRETINTR_AD┆
;用戶編寫的中斷服務(wù)程序IRET例8.17將例8.14中,中斷類型號(hào)N=31H的中斷向量1000:2000H,設(shè)置到中斷向量表中。
程序如下:MOV AX,1000H MOV DS,AX ;DS←段基地址MOV DX,2000H ;DX←偏移地址MOV AL,31H ;中斷類型號(hào)NMOV AH,25H
;DOS功能號(hào)INT 21H ;設(shè)置中斷向量量例8.14中,中斷類型號(hào)N=35H、44H、45H的中斷向量也可用類似方法設(shè)置。2.中斷處理程序設(shè)計(jì)實(shí)例*例8.18編寫中斷處理程序,要求主程序運(yùn)行時(shí),每隔10秒鐘響鈴一次,并在CRT上顯示一行信息“Thebellisring.”,運(yùn)行一定時(shí)間后停止運(yùn)行。在PC機(jī)中,每隔55ms執(zhí)行一次“INT8H”中斷服務(wù)程序。PC機(jī)每產(chǎn)生一次中斷都要調(diào)用一次N=1CH的中斷處理程序,該處理程序只有一條IRET指令,用戶若有周期性的定時(shí)工作要做,就可以利用它,用自己設(shè)計(jì)的程序替代原有的1CH中斷處理程序。用戶編寫新的中斷處理主程序時(shí),要先保存當(dāng)前中斷向量(1CH號(hào)中斷),再設(shè)置新的中斷向量(完成響鈴、顯示工作),結(jié)束時(shí)恢復(fù)原中斷向量。*供選用程序流程圖如圖8.24主程序功能:
設(shè)置完新的中斷向量后,便要設(shè)置中斷屏蔽字,允許IR0中斷,也就是允許8253通道0送來(lái)的定時(shí)中斷請(qǐng)求中斷。平常執(zhí)行延時(shí)程序等待中斷,每隔10秒,就轉(zhuǎn)去執(zhí)行一次中斷處理程序。中斷服務(wù)程序的功能:
顯示一行信息并響鈴一次。每中斷一次,計(jì)數(shù)器COUNT的值減1,中斷182次后,10秒時(shí)間到,這是因?yàn)椋?5ms/次182次=10010ms10s。COUNT的值減為0,又將182送至COUNT,置為初值。DATASEGMENT
;數(shù)據(jù)段COUNTDW1 ;10s計(jì)數(shù)器首次值置為1MESSDB‘Thebellisring.’,0AH,0DH,‘$’
;要顯示的信息DATAENDS;主程序CODESEGMENT ASSUMECS:CODE,DS:DATASTART:
MOVAX,DATA ;設(shè)置數(shù)據(jù)段 MOVDS,AX MOVAL,1CH ;指向1CH號(hào)中斷向量 MOVAH,35H ;取1CH號(hào)中斷向量 INT21H ;ES:BX←中斷向量 PUSHES PUSHBX ;1CH中斷向量入棧保護(hù)PUSHDS ;保護(hù)DS MOVDX,OFFSETRING ;DS:DX←RING的
;基地址和偏移量 MOVAX,SEGRING MOVDS,AX MOVAL,1CH ;RING的中斷類型號(hào) MOVAH,25H INT21H ;設(shè)置RING的中斷向量 POPDS ;恢復(fù)DS INAL,21H ;讀IMR ANDAL,0FEH ;使IMR的D0位=0, OUT21H,AL ;以允許IR0
中斷 STI ;開(kāi)中斷,等待定時(shí)中斷MOVDI,20000 ;延時(shí)一定時(shí)間(自定義)DELY: MOVSI,30000DELY1: DECSI JNZDELY1
DECDIJNZDELY
;時(shí)間沒(méi)到,繼續(xù)循環(huán)POPDX ;時(shí)間到,原中斷向量
;彈出到DS:DX中 POPDSMOVAL,1CH
;中斷類型號(hào) MOVAH,25H
;恢復(fù)原中斷向量 INT21H MOVAX,4C00H
;返回DOS INT21H ;主程序結(jié)束;中斷服務(wù)程序RINGRINGPROCNEAR PUSHDS ;保護(hù)現(xiàn)場(chǎng) PUSHAX PUSHCX PUSHDX MOVAX,DATA ;設(shè)置數(shù)據(jù)段 MOVDS,AX STI ;開(kāi)中斷,允許中斷嵌套 DEC COUNT
;10s計(jì)數(shù)器COUNT減1 JNZ EXIT ;非0,10s時(shí)間未到,則退出 MOV DX,OFFSETMESS
;是0,10s到,顯示提示信息 MOV AH,09H INT 21H
MOV DX,100 ;揚(yáng)聲器通斷100次IN AL,61H ;揚(yáng)聲器發(fā)聲程序AND AL,0FCH ;使8255A的PB1PB0=00SOUND: XOR AL,02H ;61H口的D1位(PB1)OUT 61H,AL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2 周末巧安排 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治二年級(jí)上冊(cè)統(tǒng)編版
- 經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同模板
- 合同樣本商業(yè)地產(chǎn)項(xiàng)目投資合作協(xié)議書
- 個(gè)人向公司借款合同簡(jiǎn)例
- 1-1《子路、曾皙、冉有、公西華侍坐》教學(xué)設(shè)計(jì)-2024-2025學(xué)年高一語(yǔ)文下學(xué)期同步教學(xué)設(shè)計(jì)(統(tǒng)編版必修下冊(cè))
- Module 3 Unit 9 Great cities of the world(教學(xué)設(shè)計(jì))-2023-2024學(xué)年滬教牛津版(深圳用)英語(yǔ)六年級(jí)上冊(cè)
- 25《慢性子裁縫和急性子顧客》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年統(tǒng)編版語(yǔ)文三年級(jí)下冊(cè)
- 豬舍購(gòu)銷合同范本
- 沉降檢測(cè)合同范本
- 毛毛新車網(wǎng)合同范本
- 代工生產(chǎn)合同范本
- 瑜伽課程合同轉(zhuǎn)讓協(xié)議書范本
- 個(gè)人經(jīng)營(yíng)性貸款合同模板
- DeepSeek新手入門教程
- 課件:《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年全國(guó)幼兒園教師資格證考試教育理論知識(shí)押題試題庫(kù)及答案(共九套)
- 2024年鄭州電力高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 產(chǎn)品試產(chǎn)流程
- 舞臺(tái)機(jī)械基礎(chǔ)知識(shí)培訓(xùn)
- 人教版數(shù)學(xué)八年級(jí)下冊(cè) 第16章 二次根式 單元測(cè)試(含答案)
評(píng)論
0/150
提交評(píng)論