微機原理與接口技術(shù)考試題_第1頁
微機原理與接口技術(shù)考試題_第2頁
微機原理與接口技術(shù)考試題_第3頁
微機原理與接口技術(shù)考試題_第4頁
微機原理與接口技術(shù)考試題_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、例例1:使計數(shù)器:使計數(shù)器T1工作在方式工作在方式0進行進行16位二進制計位二進制計 數(shù),設(shè)控制口地址為數(shù),設(shè)控制口地址為307H, 則程序段為:則程序段為:MOV DX,307H ;控制口;控制口MOV AL,01110000B ;方式字;方式字 OUT DX,ALMOV DX,305H ;T1數(shù)據(jù)口數(shù)據(jù)口MOV AL,BYTEL ;計數(shù)值低字節(jié);計數(shù)值低字節(jié)OUT DX,ALMOV AL,BYTEH ;計數(shù)值高字節(jié);計數(shù)值高字節(jié)OUT DX,AL三、三、8253的應(yīng)用的應(yīng)用例例2:在:在 PC/XT 機中,機中, 8253 通道通道 1 工作于方工作于方 式式 2 ,用它產(chǎn)生間隔為,用它產(chǎn)

2、生間隔為 15 s 的負脈沖的負脈沖 信號用于信號用于 對動態(tài)對動態(tài) RAM 刷新的定時信號,刷新的定時信號, 計數(shù)脈沖輸入為計數(shù)脈沖輸入為 1.19MHZ ,試計算出應(yīng),試計算出應(yīng) 寫入的計數(shù)值是多少寫入的計數(shù)值是多少 ? 1819. 111511MHzsTTNCLKOUT例例3. 設(shè)某應(yīng)用系統(tǒng)中,系統(tǒng)提供一個頻率為設(shè)某應(yīng)用系統(tǒng)中,系統(tǒng)提供一個頻率為 10kHz的時鐘信號,要求每隔的時鐘信號,要求每隔100ms采集采集 一次數(shù)據(jù)。一次數(shù)據(jù)。(1)選擇工作方式)選擇工作方式 由于系統(tǒng)每隔由于系統(tǒng)每隔100ms定時中斷一次,且采定時中斷一次,且采樣頻率為樣頻率為10Hz,可選用,可選用方式方式2

3、來實現(xiàn)。當來實現(xiàn)。當8253定時器工作在方式定時器工作在方式2時,在寫入控制字與計數(shù)初時,在寫入控制字與計數(shù)初值后,定時器就啟動工作,每到值后,定時器就啟動工作,每到100ms時間,時間,即計數(shù)器減到即計數(shù)器減到1時,輸出端時,輸出端OUT0輸出一個輸出一個CLK周期的低電平,向周期的低電平,向CPU申請中斷,申請中斷,CPU在中斷在中斷服務(wù)程序中完成數(shù)據(jù)采集,同時按原設(shè)定值重服務(wù)程序中完成數(shù)據(jù)采集,同時按原設(shè)定值重新開始計數(shù),實現(xiàn)了計數(shù)值的自動重裝。新開始計數(shù),實現(xiàn)了計數(shù)值的自動重裝。(2)確定計數(shù)初值)確定計數(shù)初值 已知已知fCLK0=10kHz,則,則TCLK0=0.1ms,所以,所以

4、計數(shù)初值計數(shù)初值 N=TOUT0/TCLK0 =100ms/0.1ms=1000=03E8H(3)初始化編程)初始化編程 根據(jù)以上要求,可確定根據(jù)以上要求,可確定8253通道通道0的方式控制的方式控制 字為字為00110100B,即,即34H。初始化程序段如下:初始化程序段如下:MOV AL,34H;通道通道0,16位計數(shù),位計數(shù), ; 方式方式2,二進制計數(shù),二進制計數(shù)OUT 13H,AL;寫入方式控制字到控制字寄存器寫入方式控制字到控制字寄存器MOV AL, 0E8H; 計數(shù)初值低計數(shù)初值低8位位OUT 10H,AL;寫入計數(shù)初值低;寫入計數(shù)初值低8位到通道位到通道0MOV AL, 03H

5、; 計數(shù)初值高計數(shù)初值高8位位OUT 10H,AL;寫入計數(shù)初值高;寫入計數(shù)初值高8位到通道位到通道0例例4.通過通過PC機系統(tǒng)總線在外部擴展一個機系統(tǒng)總線在外部擴展一個8253, 利用其通道利用其通道0記錄外部事件的發(fā)生的次記錄外部事件的發(fā)生的次 數(shù),輸入一個高脈沖表示事件發(fā)生數(shù),輸入一個高脈沖表示事件發(fā)生1次。次。 當事件發(fā)生當事件發(fā)生100次后就向次后就向CPU提出中斷提出中斷 請求(邊沿觸發(fā)),假設(shè)請求(邊沿觸發(fā)),假設(shè)8253片選信號片選信號 的的I/O地址范圍為地址范圍為200H203H,如圖如圖。根據(jù)要求,可以選擇方式根據(jù)要求,可以選擇方式0來實現(xiàn),計數(shù)來實現(xiàn),計數(shù)初值初值N=1

6、00。8253初始化程序段如下:初始化程序段如下:譯碼譯碼電路電路MOV DX,203H;設(shè)置方式控制字地址;設(shè)置方式控制字地址MOV AL,10H;設(shè)定通道;設(shè)定通道0為工作方式為工作方式0, ;二進制計數(shù),只寫入低字節(jié)計數(shù)值;二進制計數(shù),只寫入低字節(jié)計數(shù)值OUT DX,ALMOV DX,200H;設(shè)置計數(shù)器通道;設(shè)置計數(shù)器通道0的地址的地址MOV AL,64H;計數(shù)初值為;計數(shù)初值為100OUT DX,AL例例5. 已知某已知某8253占用占用I/O空間地址為空間地址為320H 323H,如下,如下圖圖所示,輸入其所示,輸入其CKL1端端 的脈沖頻率為的脈沖頻率為1MHz,要求用,要求用8

7、253連續(xù)連續(xù) 產(chǎn)生產(chǎn)生10秒的定時信號。秒的定時信號。分析:分析:8253的一個通道的最大計數(shù)范圍為的一個通道的最大計數(shù)范圍為65536,本例中要求輸出本例中要求輸出10秒定時信號,則計數(shù)初值秒定時信號,則計數(shù)初值N=10/10-6=107,超過了,超過了8253一個通道的最大計數(shù)一個通道的最大計數(shù)值,此時可以使用值,此時可以使用2個個8253通道級連方式來實通道級連方式來實現(xiàn)。若級連前現(xiàn)。若級連前2個通道的初值為個通道的初值為N1和和N2,則級,則級連后作為一個整體的計數(shù)值為連后作為一個整體的計數(shù)值為N=N1N2。圖圖 82538253通道的級聯(lián)通道的級聯(lián)通道通道1 1通道通道2 210秒

8、定秒定時輸出時輸出設(shè)計數(shù)器使用方式設(shè)計數(shù)器使用方式2,二進制計數(shù),計數(shù)初值,二進制計數(shù),計數(shù)初值為:為:N1=500=1F4H,N2=20000=4E20H,則通道則通道1、2的初始化程序如下:的初始化程序如下:MOV DX,323HMOV AL,74H;01110100B,通道,通道1,寫入,寫入 ;16位初值,方式位初值,方式2,二進制計數(shù),二進制計數(shù)OUT DX,AL;寫入通道;寫入通道1方式字方式字MOV DX,321HMOV AL, 0F4HOUT DX,AL;寫入初值;寫入初值500的低的低8位入通道位入通道1MOV AL,01HOUT DX,AL;寫入初值;寫入初值500的高的高

9、8位入通道位入通道1MOV DX,323HMOV AL,0B4H;10110100B,通道,通道2,寫入,寫入 ;16位初值,方式位初值,方式2,二進制計數(shù),二進制計數(shù)OUT DX,AL;寫入通道;寫入通道2方式字方式字MOV DX,322HMOV AL, 20HOUT DX,AL;寫入通道;寫入通道2初值初值20000的低的低8位位MOV AL,4EHOUT DX,AL;寫入通道;寫入通道2初值初值20000的高的高8位位例例6:控制揚聲器發(fā)聲,:控制揚聲器發(fā)聲,如圖:如圖:已知已知8253用于控制發(fā)聲用于控制發(fā)聲例例6: 8253的應(yīng)用舉例的應(yīng)用舉例例例6:發(fā)音頻率設(shè)置子程序:發(fā)音頻率設(shè)置

10、子程序SSP PROC NEAR MOV AL, 0B6H;計數(shù)器計數(shù)器2初值為初值為16位位, 方式方式3二進制格式二進制格式 OUT 43H,AL ;控制口地址;控制口地址 MOV AX, 1983 ; 計數(shù)初值計數(shù)初值 OUT 42H,AL ;發(fā)送低字節(jié);發(fā)送低字節(jié) MOV AL, AH ; OUT 42H,AL ;發(fā)送高字節(jié);發(fā)送高字節(jié) IN AL, 61H ;讀取;讀取 8255的的PB口原輸出值口原輸出值 MOV AH, AL ;將原輸出值保留于;將原輸出值保留于 AH中中計數(shù)值為:計數(shù)值為: 1.19318106600HZ=1983 OR AL, 03H ;使;使PB1 PB0均

11、為均為1OUT 61H,AL ;打開打開GATE2門,輸出方波到揚聲器門,輸出方波到揚聲器SUB CX, CX ;CX為循環(huán)計數(shù)為循環(huán)計數(shù),最大為最大為 65536次次L: LOOP L ;延時循環(huán);延時循環(huán)DEC BL ;BL為子程序入口條件為子程序入口條件JNZ L ;BL=6,揚聲器發(fā)長聲,揚聲器發(fā)長聲, BL=l發(fā)短聲發(fā)短聲MOV AL,AH ;取回取回 A.H中的中的 8255 PB口的原輸出值口的原輸出值 OUT 61H,AL;恢復(fù);恢復(fù)8255PB口。口。RET ;返回;返回SSP ENDPMOV AL, 80H OUT 8BH,ALMOV AL,ODH例例2:已知某已知某825

12、5A在系統(tǒng)中占用在系統(tǒng)中占用888BH號端號端 口地址,現(xiàn)欲安排其口地址,現(xiàn)欲安排其PA,PB,PC口全口全 部為輸出,部為輸出,PA,PB口均工作于方式口均工作于方式0模模 式,并將式,并將PC6置位,使置位,使PC3復(fù)位,試編寫復(fù)位,試編寫 出相應(yīng)的初始化程序出相應(yīng)的初始化程序.OUT 8BH,ALMOV AL,06HOUT 8BH,AL方式方式置位置位/復(fù)位復(fù)位(1) MOV DX, 203H MOV AL, 10111000B OUT DX, AL 例例3:設(shè):設(shè)8255的端口地址為的端口地址為200H203H,要求要求: PA口方式口方式1輸入;輸入;PB口方式口方式0輸出;輸出;

13、PC7PC6為輸入;為輸入;PC1PC0為輸出。為輸出。 試寫出試寫出8255的初始化程序。的初始化程序。 程序要求當程序要求當PC7=0時置位時置位PC1,而當,而當 PC6=1時復(fù)位時復(fù)位PC0,試編制相應(yīng)的程序。,試編制相應(yīng)的程序。 方式方式(2) MOV DX, 202H IN AL, DX MOV AH, AL TEST AL, 80H JNZ NEXT1 MOV DX, 203H MOV AL, 03H ;對;對PC1置位置位 OUT DX, AL 置位置位/復(fù)位復(fù)位NEXT1:MOV AL, AH TEST AL, 40H JZ NEXT2 MOV AL,00H ;對對PC0復(fù)位

14、復(fù)位 MOV DX, 203H OUT DX, ALNEXT2: 置位置位/復(fù)位復(fù)位例例4打印機接口。為某應(yīng)用系統(tǒng)配置一個并行打印機接口。為某應(yīng)用系統(tǒng)配置一個并行 打印機接口,并且通過接口打印機接口,并且通過接口CPU采用查詢采用查詢 方式打印。已知欲打印數(shù)據(jù)存放在數(shù)據(jù)段方式打印。已知欲打印數(shù)據(jù)存放在數(shù)據(jù)段 中有效地址為中有效地址為2000H的單元中。的單元中。8255的口的口 地址為地址為80H、81H、82H、83H。分析:由于打印接口直接面向的對象是打印機分析:由于打印接口直接面向的對象是打印機 接口標準,而不是打印機本身,因此打接口標準,而不是打印機本身,因此打 印機接口要按照接口標準

15、的要求進行設(shè)印機接口要按照接口標準的要求進行設(shè) 計,主要是計,主要是8位并行數(shù)據(jù)線位并行數(shù)據(jù)線DATA0 DATA7,2條握手聯(lián)絡(luò)線條握手聯(lián)絡(luò)線STB#、ACK# 和和1條忙線條忙線BUSY。有關(guān)打印機接口工作有關(guān)打印機接口工作 時序見下圖。時序見下圖。 從圖可見,當從圖可見,當CPU通過接口要求打印機打通過接口要求打印機打印數(shù)據(jù)時,先要查看印數(shù)據(jù)時,先要查看BUSY信號,信號,BUSY0時時才能向打印機輸出數(shù)據(jù),在把數(shù)據(jù)送上才能向打印機輸出數(shù)據(jù),在把數(shù)據(jù)送上DATA線后,先發(fā)線后,先發(fā)STB=0信號通知打印機,打印機接信號通知打印機,打印機接到到STB=0后,發(fā)出后,發(fā)出BUSY1,接收效據(jù)

16、,當數(shù)接收效據(jù),當數(shù)據(jù)接收好并存入內(nèi)部打印緩沖器后,送出據(jù)接收好并存入內(nèi)部打印緩沖器后,送出ACK=0信號,表示打印機已準備好接收新數(shù)據(jù),并信號,表示打印機已準備好接收新數(shù)據(jù),并復(fù)位復(fù)位BUSY=0。DATA0DATA7STBBUSYACKCPU PA07PC6PC2地地 地地BUSYSTBDATA07111298255A打印機插座打印機插座結(jié)結(jié) 束束8255A 初始化初始化BUSY=0?送送 數(shù)數(shù)送送 STB#開始開始YN 圖中用圖中用8255A的的PA口作為輸口作為輸出出打印數(shù)據(jù)打印數(shù)據(jù)口,工作于方式口,工作于方式0,PC口高口高4位工作于輸出方位工作于輸出方式,式,PC6產(chǎn)生產(chǎn)生STB信

17、號;信號;PC口低口低4位工作于位工作于輸入方式,輸入方式,PC2接收打印機的接收打印機的BUSY信號。程信號。程序流程如右示。序流程如右示。 MOV AL,81H ;工作方式字工作方式字 OUT 83H,AL MOV AL, 0DH ;PC6=1, 使使STB=1 OUT 83H,ALTB: IN AL,82H ;查查BUSY=0?(PC2=0) TEST AL,04H ;00000100B JNZ TB ;忙則等待;不忙則向忙則等待;不忙則向A口送數(shù)口送數(shù)方式方式置位置位/復(fù)位復(fù)位MOV AL,2000H ;從內(nèi)存取數(shù)從內(nèi)存取數(shù)OUT 80H,AL ;送數(shù)據(jù)到送數(shù)據(jù)到A口口MOV AL,0

18、CH ;置置STB信號為低信號為低(PC6=0)OUT 83H,ALNOP ;負脈沖寬度(延時);負脈沖寬度(延時)NOPINC AL ;置置STB為高(為高(PC6=1)OUT 83H,AL置位置位/復(fù)位復(fù)位例例5 將將8255 C端口的端口的8根根I/O線接線接8只發(fā)光二極只發(fā)光二極 管的管的正正極極(八個負極均接地八個負極均接地),用按位置位,用按位置位/ 復(fù)位控制字編寫使這復(fù)位控制字編寫使這8只發(fā)光二極管依次只發(fā)光二極管依次 亮、滅的程序,直到鍵盤有輸入時結(jié)束。亮、滅的程序,直到鍵盤有輸入時結(jié)束。 設(shè)設(shè)8255的端口地址為的端口地址為380H383H。 分析分析:首先用置位字首先用置位

19、字01H點亮點亮PC0所連接的發(fā)所連接的發(fā) 光二極管,然后將置位字光二極管,然后將置位字01H改為復(fù)位改為復(fù)位 字字00H,熄滅該發(fā)光二極管。再將復(fù)位,熄滅該發(fā)光二極管。再將復(fù)位 字字00H改為置位字改為置位字03H,點亮,點亮PC1 所連所連 接的發(fā)光二極管,又將置位字接的發(fā)光二極管,又將置位字03H改為改為復(fù)位字復(fù)位字02H,熄滅該發(fā)光二極管。置位字和,熄滅該發(fā)光二極管。置位字和復(fù)位字就這樣交替變化如下:復(fù)位字就這樣交替變化如下:01H00H03H02H05H04H07H06HOFHOEHO1H。置位字和置位字和復(fù)位字周而復(fù)始地不斷循環(huán),即可使復(fù)位字周而復(fù)始地不斷循環(huán),即可使8只連只連接在

20、接在PC端口的發(fā)光二極管依次亮滅。端口的發(fā)光二極管依次亮滅。每一位的置位字改為復(fù)位字僅需將每一位的置位字改為復(fù)位字僅需將D0位由位由1變?yōu)樽優(yōu)?,可用屏蔽,可用屏蔽D0位的邏輯與指令完成。位的邏輯與指令完成。把把PCi的復(fù)位字改為的復(fù)位字改為PCi+1的置位字,要將的置位字,要將 D0位由位由0變?yōu)樽優(yōu)?,同時還要將,同時還要將D1D3位加位加 1,即要將,即要將D3D0 低低4位加位加3,這可以用,這可以用 加加3的指令實現(xiàn)。的指令實現(xiàn)。這樣不斷地加這樣不斷地加3,其進位一定會使,其進位一定會使D7也變?yōu)橐沧優(yōu)?1,致使置位字變成方式字,為了避免出現(xiàn),致使置位字變成方式字,為了避免出現(xiàn) 此情

21、況,所以加此情況,所以加3后還要將置位字的后還要將置位字的D7位或位或 高高4位清位清0,即與,即與0FH邏輯與。據(jù)此分析該程邏輯與。據(jù)此分析該程 序的框圖如下頁圖所示,程序如下。序的框圖如下頁圖所示,程序如下。stack segment dw 32 dup (?)stack endscode segmentbegin proc far assume ss: stack, cs: code push ds sub ax, axMOV DX,383H ;控制字寄存器的端口地址控制字寄存器的端口地址MOV AL,80H ;方式選擇字方式選擇字OUT DX,ALMOV AL,1 ;PC0的置位控制字

22、的置位控制字AGAIN: OUT DX,AL ;點亮一只發(fā)光二極管點亮一只發(fā)光二極管LOOP $ ;延時延時LOOP $方式方式置位置位/復(fù)位復(fù)位 AND AL,0FEH ;置位字改為復(fù)位字;置位字改為復(fù)位字 OUT DX,AL ;熄滅點亮的發(fā)光二極管;熄滅點亮的發(fā)光二極管 ADD AL,3 ;復(fù)位字改為下一位的置位字;復(fù)位字改為下一位的置位字 ;為下一只燈亮做;為下一只燈亮做 AND AL,0FH ;保持;保持D7為為0準備準備 PUSH AX MOV AH,11 ;檢查鍵盤有無輸入;檢查鍵盤有無輸入 INT 21H ;無;無0送送AL,有,有-1送送AL置位置位/復(fù)位復(fù)位 INC AL;有

23、鍵入時有鍵入時AL+1的值應(yīng)為的值應(yīng)為00H,ZF=1 POP AX JNZ AGAIN;結(jié)果不為;結(jié)果不為0即即ZF=0轉(zhuǎn)移到轉(zhuǎn)移到AGAIN RET begin endp code ends end begin例例6 LED開關(guān)接口。開關(guān)接口。8086CPU通過通過8255用開關(guān)用開關(guān) 與與8段段LED顯示器的接口如顯示器的接口如圖示圖示。8255A PA口加驅(qū)動器接口加驅(qū)動器接LED顯示輸出;顯示輸出;PB口低口低4 位接開關(guān)輸入;位接開關(guān)輸入;PC口不用。口不用。8255A的的A0、 A1接地址總線的接地址總線的A1、A2,其端口地址為:其端口地址為: 0FFF8H、0FFFAH、0F

24、FFCH、0FFFEH。 要求:開關(guān)設(shè)置的二進制信息由要求:開關(guān)設(shè)置的二進制信息由8255A的的PB 口輸入后,通過口輸入后,通過PA口輸出給口輸出給8段段LED顯示顯示 器,顯示開關(guān)狀態(tài)所對應(yīng)的十六進制值,試器,顯示開關(guān)狀態(tài)所對應(yīng)的十六進制值,試 編制其控制程序。編制其控制程序。1K0K0PA1PA2PA3PA4PA5PA6PA7PAV53K2KV507DD0A1ACSRDWRRESETA8255譯譯碼碼器器鎖鎖存存器器07ADAD1A2ARDWRRESET819ADADALE319AA8086abcdefgDP3PB2PB1PB0PB(2)開關(guān)狀態(tài)與開關(guān)狀態(tài)與LED顯示值關(guān)系顯示值關(guān)系 開

25、關(guān)開關(guān)Ki閉合,則閉合,則PBi=0,否則否則PBi=1。 PB3PB0值與值與LED顯示值關(guān)系:顯示值關(guān)系:e8EH(3)PA口輸出值與口輸出值與LED顯示值間關(guān)系顯示值間關(guān)系(共陽極共陽極)8255初始化初始化B口輸入開關(guān)信息口輸入開關(guān)信息屏蔽屏蔽B口信息的高口信息的高4位位轉(zhuǎn)換成轉(zhuǎn)換成8位二進制數(shù)位二進制數(shù)經(jīng)經(jīng)A口輸出口輸出延時延時(4) PB口輸入值轉(zhuǎn)換成口輸入值轉(zhuǎn)換成 PA口輸出值的方法口輸出值的方法將前述將前述8段碼按段碼按0F順順 序連續(xù)存放于內(nèi)存中;序連續(xù)存放于內(nèi)存中;將將PB3PB0對應(yīng)值置對應(yīng)值置 于于AL中;中;執(zhí)行換碼指令執(zhí)行換碼指令XLAT 使使:(AL+BX)ALR

26、DPORTB:DELAY:8255初始化初始化B口輸入開關(guān)信息口輸入開關(guān)信息屏蔽屏蔽B口信息的高口信息的高4位位轉(zhuǎn)換成轉(zhuǎn)換成8位二進制數(shù)位二進制數(shù)經(jīng)經(jīng)A口輸出口輸出延時延時方式方式例例7:利用:利用8255A的的A口方式口方式0與微型打印機相與微型打印機相 連,將內(nèi)存緩沖區(qū)連,將內(nèi)存緩沖區(qū)BUFF中的字符打印輸出。中的字符打印輸出。 試完成相應(yīng)的軟硬件設(shè)計。(試完成相應(yīng)的軟硬件設(shè)計。(CPU為為8088)打印機數(shù)據(jù)傳輸時序圖打印機數(shù)據(jù)傳輸時序圖它的工作流程是:它的工作流程是: 主機將要打印的數(shù)據(jù)送上數(shù)據(jù)線,主機將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號。打印機將數(shù)據(jù)讀入,然后發(fā)選通信號。打印機將

27、數(shù)據(jù)讀入,同時使同時使BUSY線為高,通知主機停止送線為高,通知主機停止送數(shù)。這時,打印機內(nèi)部對讀入的數(shù)據(jù)進數(shù)。這時,打印機內(nèi)部對讀入的數(shù)據(jù)進行處理。處理完以后使行處理。處理完以后使ACK有效,同時有效,同時使使BUSY失效,通知主機可以發(fā)下一個失效,通知主機可以發(fā)下一個數(shù)據(jù)。數(shù)據(jù)。硬件連線如下圖:硬件連線如下圖:說明:說明:由由PC0充當打印機的選通信號,通過充當打印機的選通信號,通過 對對PC0的置位的置位/復(fù)位來產(chǎn)生選通。同時,復(fù)位來產(chǎn)生選通。同時, 由由PC7來接收打印機發(fā)出的來接收打印機發(fā)出的“BUSY”信信 號作為能否輸出的查詢。號作為能否輸出的查詢。 8255A的控制字為:的控制

28、字為:10001000 即即88H A口方式口方式0,輸出;,輸出;C口高位方式口高位方式0輸輸 入,低位方式入,低位方式0輸出輸出 PC0置位置位: 00000001 即即 01H PC0復(fù)位:復(fù)位: 00000000 即即 00H 8255A的的4個口地址分別為:個口地址分別為: 00H,01H,02H,03H。方式方式置位置位/復(fù)位復(fù)位編制程序如下:編制程序如下:DADA SEGMENTBUFF DB This is a print program!,$DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:MOV AX, DATA MOV

29、DS, AX MOV SI,OFFSET BUFF MOV AL, 88H ;A口方式口方式0,輸出,輸出 OUT 03H, AL ; C口高口高4位方式位方式0輸入,輸入, ; 低低4位方式位方式0輸出輸出 MOV AL, 01H ; OUT 03H,AL ;使使PC0置位,選通無效置位,選通無效WAIT: IN AL, 02HTEST AL, 80H ;檢測檢測PC7是否為是否為1即是否忙即是否忙JNZ WAIT ; 為忙則等待為忙則等待方式方式置位置位/復(fù)位復(fù)位MOV AL,SICMP AL,$ ;比較是否結(jié)束符比較是否結(jié)束符 JZ DONE ; 是則輸出回車是則輸出回車OUT 00H,

30、AL ;否則從否則從A口輸出口輸出MOV AL,00HOUT 03H, AL ;產(chǎn)生選通信號產(chǎn)生選通信號MOV AL, 01HOUT 03H,AL ;恢復(fù)選通信號恢復(fù)選通信號INC SI ;修改指針,指向下一個字符修改指針,指向下一個字符JMP WAIT置位置位/復(fù)位復(fù)位DONE: MOV AL,0DH OUT 00H,AL ;輸出回車符輸出回車符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;恢復(fù)選通恢復(fù)選通置位置位/復(fù)位復(fù)位WAIT1: IN AL, 02H TEST AL, 80H ;檢測檢測PC7是是 ;否為否為1即是否忙即是否忙 JNZ

31、 WAIT 1 ; 為忙則等待為忙則等待 MOV AL,0AH OUT 00H,AL ;輸出換行符輸出換行符 MOV AL, 00H OUT 03H,AL置位置位/復(fù)位復(fù)位 MOV AL, 01H OUT 03H,AL ;產(chǎn)生選通;產(chǎn)生選通 MOV AH,4CH INT 21H CODE ENDS END START例例8:在:在8086系統(tǒng)中,用系統(tǒng)中,用8255A構(gòu)成顯示與按鍵構(gòu)成顯示與按鍵 電路,如電路,如圖圖1所示(設(shè)圖中所示(設(shè)圖中8255A沒有畫沒有畫 出的引腳已正確連接)。試問:出的引腳已正確連接)。試問:若若8086低位地址線低位地址線A0A1分別與分別與8255A片內(nèi)地片內(nèi)地

32、 址選擇線址選擇線A1A0相連,且相連,且A口地址為口地址為40H,求,求 B口、口、C口和控制口地址??诤涂刂瓶诘刂?。請寫出請寫出8255A的方式控制字。的方式控制字。PA A0 A1 PAPAPA PAPA PAPAPBPBPBPBPBPBPBPBL LLLPCPC PC PC VKKKKV圖圖1 1 顯示與按鍵電路顯示與按鍵電路發(fā)光二極管的排列如發(fā)光二極管的排列如圖圖2所示,要求所示,要求K1、K2、 K3、K4按一下分別顯示:按一下分別顯示: 如如圖圖3所示所示,如如圖圖4所示所示,全亮全亮,全滅全滅 直到有其它鍵按下為止,請寫出顯示直到有其它鍵按下為止,請寫出顯示4種情種情 形時對應(yīng)

33、的形時對應(yīng)的A口、口、B口的值??诘闹怠U垖懗鰧㈡I值讀入寄存器請寫出將鍵值讀入寄存器AL和使發(fā)光二極和使發(fā)光二極 管全亮的匯編語言程序片段。管全亮的匯編語言程序片段。圖圖2圖圖3圖圖48255A A1 A08086 A1 A0現(xiàn)在現(xiàn)在A口地址為口地址為40H,意味,意味著著8255A片內(nèi)的片內(nèi)的A1A0=00, 即:即:8086的的A1A0=00;當選擇當選擇B口時,要求口時,要求8255A片內(nèi)的片內(nèi)的A1A0=01, 則則8086的的A1A0=10;B口地址應(yīng)為口地址應(yīng)為42H.當選擇當選擇C口時,要求口時,要求8255A片內(nèi)的片內(nèi)的A1A0=10, 則則8086的的A1A0=01;B口地址

34、應(yīng)為口地址應(yīng)為41H.當選擇控制口時,要求當選擇控制口時,要求8255A片內(nèi)的片內(nèi)的A1A0=11, 則則8086的的A1A0=11;B口地址應(yīng)為口地址應(yīng)為43H. 答:答:答:答:由硬件電路看出由硬件電路看出 8255A口均工作于方口均工作于方 式式0輸出,輸出,C口低口低4位出入,高位出入,高4位未用,位未用, 方式控制字可為:方式控制字可為:10001001B(89H)答:由硬件電路看出答:由硬件電路看出B口控制口控制07號發(fā)光二號發(fā)光二 極管,極管,A口控制口控制815號發(fā)光二極管,且號發(fā)光二極管,且 A、B口均輸出口均輸出0時對應(yīng)的二極管亮,則時對應(yīng)的二極管亮,則對于對于圖圖3有:有

35、:A口的值為口的值為00000110B(06H) B口的值為口的值為01100000B(60H)方式方式對于對于圖圖4有:有:A口的值為口的值為11111001B (F9H) B口的值為口的值為10011111B (9FH)全亮?xí)r全亮?xí)rA、B口均輸出全口均輸出全0,即,即: A口的值為口的值為00000000B (00H) B口的值為口的值為00000000B (00H)全滅時全滅時A、B口均輸出全口均輸出全1,即,即: A口的值為口的值為11111111B (FFH) B口的值為口的值為11111111B (FFH)程序片段如下:程序片段如下:IN AL,41H;讀讀C口鍵值口鍵值MOV A

36、L,00H;二極管二極管全亮所需值全亮所需值OUT 40H,AL;送往送往A口口OUT 42H,AL ;送往送往B口口例例9:如:如圖圖為為8255A與與8086硬件連接圖,問:硬件連接圖,問: 8255A各口地址是多少?各口地址是多少? 若要改變?nèi)粢淖?255A的口地址為的口地址為6063H,該,該 怎樣接線?怎樣接線? 試將試將A口設(shè)定為方式口設(shè)定為方式0輸入,輸入,B口設(shè)定為方口設(shè)定為方 式式0輸出,輸出,C口不用,寫出相應(yīng)的控制字??诓挥茫瑢懗鱿鄳?yīng)的控制字。A、B、C及控制口地址分別是:及控制口地址分別是:70H73H接線時在接線時在8086的的A4與與74LS138的的C引腳間加一

37、引腳間加一個非門或直接將個非門或直接將74LS138的輸出端的輸出端Y0與與8255A的的CS相連,不用相連,不用Y4端。端??刂谱譃椋嚎刂谱譃椋?0010000H方式方式808682550 70 701234567/ 210474LS138 74LS13812345668161514131211109 A B C E1 E2 E3 Y7GNDYCCY0Y1Y2Y3Y4Y5Y638譯碼器譯碼器74LS138真值表真值表例:已知例:已知ICW2的值為的值為20H,則,則8259A的的IR0 IR7對應(yīng)的對應(yīng)的8個中斷類型碼分別為:個中斷類型碼分別為: 20H,21H,27H 0 0 1 0 0

38、0 0 0 (IR0)例:已知例:已知ICW2的值為的值為25H,則,則8259A的的IR0 IR7對應(yīng)的對應(yīng)的8個中斷類型碼分別為:個中斷類型碼分別為: 20H,21H,27H 0 0 1 0 0 1 0 1 (IR5)初始化命令字初始化命令字ICW3主片主片控制字控制字注意:注意:ICW3只對級聯(lián)方式有效,寫入只對級聯(lián)方式有效,寫入奇奇地址地址 端口,只有在端口,只有在ICW1中的中的D1位位SNGL=0 時才需設(shè)置,時才需設(shè)置,分別分別對主、從片設(shè)置。對主、從片設(shè)置。ICW3主片主片控制字表示哪個引腳上接有從片??刂谱直硎灸膫€引腳上接有從片。初始化命令字初始化命令字ICW3從片從片控制字

39、控制字 ICW3從片從片控制字只有控制字只有低低3位有效,其值表示該位有效,其值表示該從片的從片的INT引腳接到主片引腳接到主片的哪一個的哪一個IRi引腳上。引腳上。 標示碼標示碼注意:注意:ICW4在在8086/8088系統(tǒng)是必須使用的,系統(tǒng)是必須使用的, 寫入寫入奇奇地址端口中。地址端口中。例例1. 假定假定8259A的端口地址為的端口地址為92H、93H,問怎,問怎 樣來禁止樣來禁止IR3及及IR5引腳上的中斷請求,又引腳上的中斷請求,又 怎樣撤銷這一禁止命令?怎樣撤銷這一禁止命令?MOV AL,28HOUT 93H,ALMOV AL,00HOUT 93H,AL;00101000B;給;

40、給OCW1送命令字送命令字 ;00000000B;給;給OCW1送命令字送命令字 例例2假定初始化之后,假定初始化之后,8259A工作于完全嵌套工作于完全嵌套 方式,要求對于方式,要求對于IR3的中斷級,能夠允許的中斷級,能夠允許 任何級別的中斷中斷其中斷服務(wù)程序,任何級別的中斷中斷其中斷服務(wù)程序, 即即8259A按特殊屏蔽方式工作。按特殊屏蔽方式工作。 分析:在響應(yīng)分析:在響應(yīng)IR3而執(zhí)行而執(zhí)行IR3的中斷服務(wù)程序的中斷服務(wù)程序 時,必須先寫入時,必須先寫入OCW1以屏蔽以屏蔽IR3,然,然 后寫入后寫入OCW3使使ESMM=SMM=1,于是,于是 從此處開始,從此處開始,8259A進而特殊

41、屏蔽方式,進而特殊屏蔽方式, 此后繼續(xù)執(zhí)行此后繼續(xù)執(zhí)行IR3的中斷服務(wù)程序。的中斷服務(wù)程序。在中斷服務(wù)結(jié)束之前,再向在中斷服務(wù)結(jié)束之前,再向8259A寫入寫入OCW3使使ESMM=1,SMM=0,結(jié)束特殊屏蔽方式,結(jié)束特殊屏蔽方式,返回到完全嵌套方式,接著寫入返回到完全嵌套方式,接著寫入OCW1,撤消,撤消對對IR3的屏蔽,最后寫入的屏蔽,最后寫入OCW2,向,向8259A發(fā)發(fā)出出EOI命令。此例,說明在命令。此例,說明在IR3的中斷服務(wù)程的中斷服務(wù)程序中,允許任何級別的中斷源中斷序中,允許任何級別的中斷源中斷IR3的中斷的中斷服務(wù)程序。(除本身之外)服務(wù)程序。(除本身之外) ;IR3中斷服務(wù)

42、程序入口中斷服務(wù)程序入口 ; 保護現(xiàn)場保護現(xiàn)場STI ; STI 開中斷開中斷MOV AL,00001000B OUT 21H,AL ;奇地址奇地址,寫入寫入OCW1,使使IM3=1,屏蔽屏蔽IR3MOV AL,01101000B;特征位為特征位為01OUT 20H,AL ;偶地址;偶地址,寫入寫入OCW3,特殊屏蔽方式特殊屏蔽方式 ; 繼續(xù)服務(wù)繼續(xù)服務(wù)MOV AL,01001000B;特征位為特征位為01OUT 20H,AL;寫入寫入OCW3,結(jié)束特殊屏蔽方式,結(jié)束特殊屏蔽方式 MOV AL,00100011B;特征位為特征位為00OUT 20H,AL ;寫入;寫入OCW2,普通的,普通的E

43、OI命令命令 MOV AL,00H ;寫入;寫入OCW1,使,使IM3=0 OUT 21H,AL 例例3讀讀8259A相關(guān)寄存器的內(nèi)容。設(shè)相關(guān)寄存器的內(nèi)容。設(shè)8259A的的 端口地址為端口地址為20H、21H,請讀入,請讀入IRR、 ISR、IMR寄存器的內(nèi)容,并相繼保存寄存器的內(nèi)容,并相繼保存 在數(shù)據(jù)段在數(shù)據(jù)段2000H開始的內(nèi)存單元中;若開始的內(nèi)存單元中;若 該該8259A為主片,請用查詢方式,查詢?yōu)橹髌?,請用查詢方式,查?哪個從片有中斷請求。哪個從片有中斷請求。MOV AL,0AH;發(fā)發(fā)OCW3,欲讀取欲讀取IRR的內(nèi)容的內(nèi)容OUT 20H,ALIN AL,20H; 讀入并保存讀入并保

44、存IRR的內(nèi)容的內(nèi)容 MOV (2000H),ALMOV AL,0BH;發(fā)發(fā)OCW3,欲讀取欲讀取ISR的內(nèi)容的內(nèi)容 OUT 20H,ALIN AL,20H; 讀入并保存讀入并保存ISR的內(nèi)容的內(nèi)容MOV (2001H),ALIN AL,21H; 讀入并保存讀入并保存IMR的內(nèi)容的內(nèi)容 MOV (2002H),ALMOV AL,0CH;發(fā)發(fā)OCW3, 查詢有無中斷請求查詢有無中斷請求OUT 20H,ALIN AL,20H;讀入狀態(tài)字,判斷最高位是否為讀入狀態(tài)字,判斷最高位是否為1TEST AL,80H JZ DONE;無中斷請求無中斷請求AND AL,07H;有中斷請求有中斷請求,判斷中斷源的

45、編碼判斷中斷源的編碼 ;即判斷哪個引腳接的從片有中斷請即判斷哪個引腳接的從片有中斷請求求DONE: HLTMOV AL,20H;發(fā)一般發(fā)一般EOI命令命令OUT 20H,AL;寫入寫入OCW2中中IRET例例4:中斷服務(wù)程序返回主程序前,可以給:中斷服務(wù)程序返回主程序前,可以給 8259A寫一個中斷結(jié)束命令寫一個中斷結(jié)束命令EOI,以,以 確保復(fù)位確保復(fù)位ISR的相應(yīng)位,然后才可用的相應(yīng)位,然后才可用 中斷返回,通常,結(jié)尾形式是:中斷返回,通常,結(jié)尾形式是: 例例5. 設(shè)設(shè)8259A應(yīng)用于應(yīng)用于8086系統(tǒng),采用主從兩片系統(tǒng),采用主從兩片 級連工作,主片偶地址級連工作,主片偶地址20H,奇地址

46、,奇地址22H (這里的偶地址和奇地址是相對于(這里的偶地址和奇地址是相對于8259A的的 片內(nèi)地址而言的),中斷類型號為片內(nèi)地址而言的),中斷類型號為08H- 0FH;從片偶地址;從片偶地址0A0H,奇地址,奇地址0A2H, 中斷類型號為中斷類型號為70H77H,主片,主片IR3和從片和從片 級連,均為非緩沖方式,要實現(xiàn)從片全級連,均為非緩沖方式,要實現(xiàn)從片全 嵌套工作,試編寫其初始化程序。嵌套工作,試編寫其初始化程序。分析:根據(jù)分析:根據(jù)8259A應(yīng)用于應(yīng)用于8086系統(tǒng),主從式級系統(tǒng),主從式級 連工作,主片和從片都必須有初始化程連工作,主片和從片都必須有初始化程 序,要實現(xiàn)從片的全嵌套工

47、作,必須主序,要實現(xiàn)從片的全嵌套工作,必須主 片采用特殊全嵌套,從片采用普通全嵌片采用特殊全嵌套,從片采用普通全嵌 套,級聯(lián)工作時結(jié)束中斷的方式要采用套,級聯(lián)工作時結(jié)束中斷的方式要采用 非自動非自動EOI方式,主片和從片初始化程方式,主片和從片初始化程 序如下:序如下:主主片初始化程序片初始化程序:MOV AL,19H ;00011001B,寫入,寫入ICW1OUT 20H,ALMOV AL,08H ;00001000B,寫入,寫入ICW2OUT 22H,ALMOV AL,08H ;00001000B,寫入,寫入ICW3 ; 在在IR3引腳上接有從片引腳上接有從片OUT 22H,ALMOV A

48、L,11H ;00010001B,寫入,寫入ICW4OUT 22H,AL從從片初始化程序片初始化程序:MOV AL,19H ;00011001B,寫入,寫入ICW1OUT 0A0H,ALMOV AL,70H ;01110000B,寫入,寫入ICW2OUT 0A2H,ALMOV AL,03H ;00000011B,寫入,寫入ICW3 ; 本從片的識別碼為本從片的識別碼為03HOUT 0A2H,ALMOV AL,01H ;00000001B,寫入,寫入ICW4OUT 0A2H,AL例例6. 在上例中,程序要查詢從片在上例中,程序要查詢從片ISR狀態(tài),當狀態(tài),當 全部從片中斷得到響應(yīng)后,才能向主片發(fā)

49、全部從片中斷得到響應(yīng)后,才能向主片發(fā) 中斷結(jié)束命令,試編寫該程序段。中斷結(jié)束命令,試編寫該程序段。分析分析:全部從片中斷得到響應(yīng)意味全部從片中斷得到響應(yīng)意味從片的從片的ISR=0, 只要讀出從片只要讀出從片ISR值,若等于值,若等于0,則向主片,則向主片 發(fā)中斷結(jié)束命令。程序如下:發(fā)中斷結(jié)束命令。程序如下: ;中斷服務(wù)子程序;中斷服務(wù)子程序MOV AL,0BH ;寫入從片寫入從片OCW3,要求讀出,要求讀出ISROUT 0A0H,ALIN AL,0A0H ;讀從片讀從片ISROR AL,AL ;判判ISR是否全是否全0JNZ ZDRK ;否,轉(zhuǎn)中斷出口否,轉(zhuǎn)中斷出口MOV AL,63H ;是,

50、是,63H寫入主片寫入主片OCW2, ;向主片發(fā)中斷結(jié)束命令,主片向主片發(fā)中斷結(jié)束命令,主片ISR的的D3位清位清0OUT 20H,ALZDRK: IRET例例7. 將將8255A的工作方式設(shè)為方式的工作方式設(shè)為方式1,采用中斷,采用中斷 方式將方式將BUFF開始的緩沖區(qū)中的開始的緩沖區(qū)中的100個字符個字符 從打印機輸出,設(shè)從打印機輸出,設(shè)ICW2的值為的值為08H 。分析:用分析:用PC7作為打印機的選通,打印機數(shù)據(jù)作為打印機的選通,打印機數(shù)據(jù) 線接線接8255A的的A口,口,8255A的中斷請求信的中斷請求信 號(號(PC3)接至系統(tǒng)中斷控制器)接至系統(tǒng)中斷控制器8259A 的的IR3,

51、其它硬件連線如下頁圖所示。,其它硬件連線如下頁圖所示。(20H、22H)PC7PC7PC6PC68255A的控制字為:的控制字為:1010XXX0 PC7置位置位: 00001111 即即 0FHPC7復(fù)位:復(fù)位:00001110 即即 0EHPC3置位置位: 00000111 即即 07H ,允許,允許8255A的的A口輸出產(chǎn)生中斷,由硬件連線可以分析出,口輸出產(chǎn)生中斷,由硬件連線可以分析出,8255A的的4個口地址分別為:個口地址分別為:00H03H。已知已知8259A初始化時送初始化時送ICW2為為08H,則,則8255A A口(口(IR3)的)的中斷類型碼是中斷類型碼是0BH,此中斷類

52、,此中斷類型碼對應(yīng)的中斷向量應(yīng)放到中斷向量表從型碼對應(yīng)的中斷向量應(yīng)放到中斷向量表從2CH開始的開始的4個單元中。個單元中。主程序:主程序: ;初始化;初始化8259AMAIN:MOV AL,1BH ;00011011B,寫入寫入ICW1 OUT 20H,AL MOV AL,08H ;00001000B,寫入,寫入ICW2 OUT 22H,AL MOV AL,01H ;00000001B,寫入,寫入ICW4 OUT 22H,AL;中斷向量存放到中斷向量表中;中斷向量存放到中斷向量表中PUSH DSMOV DX,OFFSET INTRMOV AX,SEG INTRMOV DS,AXMOV AX,2

53、50BH;INT 21HPOP DS ;中斷向量存放到中斷向量表中另一種方式;中斷向量存放到中斷向量表中另一種方式XOR AX,AXMOV DS,AXMOV AX,OFFSET INTRMOV WORD PTR 002CH,AXMOV AX,SEG INTRMOV WORD PTR 002EH,AX ; ;初始化;初始化8255AMOV AL,0A0HOUT 03H,AL;設(shè)置設(shè)置8255A的控制字的控制字MOV AL,0FH ;使選通;使選通PC7無效無效OUT 03H,ALMOV AL,07HOUT 03H,AL ;使;使8255 A口輸出口輸出允許中斷允許中斷 MOV DI,OFFSET

54、 BUFF ;設(shè)置地址指針;設(shè)置地址指針 MOV CX,99 ;設(shè)置計數(shù)器初值;設(shè)置計數(shù)器初值 MOV AL,DI OUT 00H,AL ;輸出一個字符到;輸出一個字符到A口口 INC DI MOV AL,0EH OUT 03H,AL ;產(chǎn)生選通;產(chǎn)生選通 INC AL OUT 03H,AL ;撤消選通撤消選通 STI ;開中斷開中斷NEXT:HLT ;等待中斷,即等待等待中斷,即等待PC3=1, ;當中斷請求產(chǎn)生時,當中斷請求產(chǎn)生時,CPU就就 ;可以通過可以通過8255向打印機送出向打印機送出 ;下一個將要打印的字符下一個將要打印的字符 LOOP NEXT ;修改計數(shù)器的值修改計數(shù)器的值,

55、 ;指向下一個要輸出的字符指向下一個要輸出的字符 HLTINTR: STI ; STI 開中斷開中斷MOV AL,00001000B OUT 22H,AL ;寫入;寫入OCW1,使,使IM3=1,屏蔽屏蔽IR3MOV AL,01101000BOUT 20H,AL ;寫入;寫入OCW3,使使ESMM=SMM=1, ;設(shè)置特殊屏蔽方式,允許高級或低級中;設(shè)置特殊屏蔽方式,允許高級或低級中 ;斷進行嵌套,只屏蔽同級中斷的嵌套;斷進行嵌套,只屏蔽同級中斷的嵌套中斷服務(wù)子程序如下:中斷服務(wù)子程序如下:MOV AL,DIOUT 00H,AL :從:從A口輸出一個字符口輸出一個字符MOV AL,0EHOUT

56、 03H,AL :產(chǎn)生選通:產(chǎn)生選通INC ALMOV 03H,AL ;撤消選通;撤消選通INC DI :修改地址指針:修改地址指針 MOV AL,01001000BOUT 20H,AL;寫入寫入OCW3,清除特殊屏蔽方式,清除特殊屏蔽方式MOV AL,00100011BOUT 20H,AL ;寫入;寫入OCW2,普通的,普通的EOI命令命令 MOV AL,00H ;寫入;寫入OCW1,使使IM3=0,開放開放IR3 OUT 22H,AL IRET ;中斷返回中斷返回例例9.用用8253定時器定時器1工作于方式工作于方式3周期性產(chǎn)生中周期性產(chǎn)生中 斷請求。斷請求。OUT1接到接到PC總線的總線

57、的IRQ2端,而端,而 PC的的IRQ2端接在端接在8259A的的IR2輸入端。要輸入端。要 求求8259A的中斷請求信號觸發(fā)方式設(shè)置為上的中斷請求信號觸發(fā)方式設(shè)置為上 升沿觸發(fā),采用全嵌套工作方式,用中斷升沿觸發(fā),采用全嵌套工作方式,用中斷 結(jié)束命令結(jié)束中斷服務(wù)。結(jié)束命令結(jié)束中斷服務(wù)。 假設(shè)假設(shè)8259A的的IR2的中斷類型號為的中斷類型號為0AH,8253 定時器的輸入頻率為定時器的輸入頻率為250kHz,工作于方式,工作于方式3, 輸出方波頻率為輸出方波頻率為50Hz 。每當。每當8259A通過通過IR2將將8253的周期性方波中斷請求發(fā)向主機的周期性方波中斷請求發(fā)向主機(PC機)的機)

58、的CPU ,主機響應(yīng)外部中斷主機響應(yīng)外部中斷IR2時,顯示時,顯示字符串字符串“8259 A Interrupt!”,并計數(shù)中斷次,并計數(shù)中斷次數(shù)達到數(shù)達到100次,返回次,返回DOS 。已知已知PC/ XT主機系統(tǒng)的主機系統(tǒng)的8259A基地址為基地址為20H和和21 H,8253的控制端口地址為的控制端口地址為203H,定,定時器計數(shù)器時器計數(shù)器1數(shù)據(jù)地址為數(shù)據(jù)地址為201H ,CLK1接接有有250kHz時鐘輸入。時鐘輸入。初初 始始 化化 流流 程程 圖圖5000寫寫中斷服務(wù)程序流程圖中斷服務(wù)程序流程圖DATA SEGMENTSTRING DB 8259A interrupt !,0AH

59、,0DH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX, DATA MOV DS, AX MOV DX, OFFSET ISR0AH ; ISR0AH是是8259AIR2中斷服務(wù)程序的入口地址中斷服務(wù)程序的入口地址MOV AX, 250AH;INT 21H;CLI;MOV DX, 21H;IN AL, DX;AND AL, 0FBH;OUT DX, AL;MOV DX, 20H;MOV AL, 13H;OUT DX, AL;設(shè)置設(shè)置0AH中斷類型號的中斷矢量中斷類型號的中斷矢量關(guān)中斷關(guān)中斷21H為為8259AIMR的端口地址

60、的端口地址讀讀IMR的內(nèi)容(的內(nèi)容(OCW1)清清M2=0設(shè)置設(shè)置OCW1(IMR),開放開放IR2準備寫準備寫ICW1設(shè)置上升沿觸發(fā)單片設(shè)置上升沿觸發(fā)單片8259A要要ICW4INC DX;MOV AL, 0AH;OUT DX, AL;MOV AL, 09H;OUT DX,AL;MOV DX, 203H;MOV AL, 76H ;OUT DX,AL;MOV DX, 201H;準備寫準備寫ICW2設(shè)置設(shè)置IR2的中斷類型號為的中斷類型號為0AH寫寫ICW4設(shè)置設(shè)置8259A為普通全嵌套方式為普通全嵌套方式8253控制口控制口選擇定時器選擇定時器1方式方式38253定時器計數(shù)器端口定時器計數(shù)器端

溫馨提示

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

評論

0/150

提交評論