微機(jī)原理課件5版第8章838259a應(yīng)用_第1頁(yè)
微機(jī)原理課件5版第8章838259a應(yīng)用_第2頁(yè)
微機(jī)原理課件5版第8章838259a應(yīng)用_第3頁(yè)
微機(jī)原理課件5版第8章838259a應(yīng)用_第4頁(yè)
微機(jī)原理課件5版第8章838259a應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論