版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、主 要 內(nèi) 容可編程并行接口芯片8255A計數(shù)/定時器8253可編程中斷控制器82597.1可編程并行接口芯片8255A 并行輸入/輸出是在CPU與外設(shè)之間同時把若干個二進制位信息進行傳送的數(shù)據(jù)傳輸方式。優(yōu)點:傳輸速度快、效率高。缺點:傳輸需用的信號線較多。適用于傳輸效率高而傳輸距離相對較短的場合。1、8255A的引腳與結(jié)構(gòu)A組8255A123456789PA3GNDPA4VCC8255AA口A0RESET848PA1PA0RDCSA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA2101112131415161718192025242322212627282930
2、31323334353738394036PA5PA6PA7RESETD0D1D2D3D4D5D6PB7PB6PB5PB4PB3D7WR(a)C口C口B口(b)PA7PA0D7D0PC7PC4PC3PC04PB7PB0B組WRRDA1CS 三個8位并行端口(A、B、C);8位三態(tài)數(shù)據(jù)線;地址信號A1A0經(jīng)譯碼對應(yīng)A、B、C三個獨立的數(shù)據(jù)端口以及一個公共的控制端口;CS;RESET2、8255A的內(nèi)部結(jié)構(gòu)內(nèi)部DB(8)數(shù)據(jù)總線緩沖器讀/寫控制邏輯RESETA0A組端口A(8)A組端口C(高4位)B組端口C(低4位)B組端口B(8)A組控制部件PA7PA0PC7PC4PC3PC0PB7PB0D7D0
3、CSA1RDWRB組控制部件1)端口A、B、C都是8位端口,當(dāng)端口A和端口B作為選通輸入或輸出的數(shù)據(jù)端口時,端口C的指定位與端口A和端口B配合使用,用作控制信號或狀態(tài)信號。2)A組和B組控制電路根據(jù)CPU送來的工作方式控制字控制8255工作方式輸入數(shù)據(jù)、輸出數(shù)據(jù)、CPU發(fā)給8255的控制字通過它來傳送負(fù)責(zé)管理8255A與CPU之間的數(shù)據(jù)傳送過程A1A0操 作01000寫端口A01001寫端口B01010寫端口C01011寫控制寄存器00100讀端口A00101讀端口B00110讀端口C00111無操作8255A各端口讀/寫操作時的信號關(guān)系 二、8255A的工作方式和控制字1、8255A的工作方
4、式方式0方式1方式2基本輸入輸出方式,即無須聯(lián)絡(luò)就可以直接進行8255A與外設(shè)之間的數(shù)據(jù)輸入或輸出操作。A口、B口、C口的高4位和低4位均可設(shè)置為方式0。選通輸入輸出方式,此時8255A的A口和B口與外設(shè)之間進行輸入或輸出操作時,需要C口的部分I/O線提供聯(lián)絡(luò)信號。只有A口和B口可工作于方式1。選通雙向輸入輸出方式,即同一端口的I/O線既可以輸入也可以輸出,只有A口可工作于方式2。此種方式下需要C口的部分I/O線提供聯(lián)絡(luò)信號。8255A在工作之前必須先寫方式控制字,指定A、B、C三個端口各自的工作方式2、8255A的控制字1)工作方式選擇控制字A口有三種工作方式B口有兩種工作方式C口只能工作在
5、方式0必須為1在端口A工作于方式1或方式2,端口B工作于方式1時,C口部分I/O線被定義為8255A與外設(shè)之間進行數(shù)據(jù)傳送的聯(lián)絡(luò)信號線,此時,C口剩下的I/O線仍工作于方式0,是輸入還是輸出由方式控制字的D0和D3位決定2)C口按位置位/復(fù)位控制字無關(guān)D70D6D5D4D3D2D1D0C口按位置位/復(fù)位控制字的特征位選擇位置位/復(fù)位1置位0復(fù)位編碼 選擇位0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7要使端口C的PC4置位的控制字為00001001B(09H)要使端口C的PC4復(fù)位的控制字為000
6、01000B(08H) C口的按位置位/復(fù)位控制字必須跟在方式選擇控制字之后寫入控制字寄存器,即使僅使用該功能,也應(yīng)先選送一個方式控制字。方式選擇控制字只需寫入一次,之后就可多次使用C口按位置位/復(fù)位控制字對C口的某些位進行置1或清0操作。三、各種工作方式的功能1、方式0基本輸入輸出方式無需聯(lián)絡(luò)就可以直接進行8255A與外設(shè)之間的數(shù)據(jù)輸入/輸出操作。適用于輸入/輸出設(shè)備始終處于準(zhǔn)備好狀態(tài)的場合A口、B口、C口的高四位和低四位可以分別設(shè)置為輸入/輸出數(shù)據(jù)從外設(shè)送往8255A時為輸入數(shù)據(jù)從8255A送往外設(shè)時為輸出 方式0也可以用于查詢法誰的輸入/輸出接口電路。如圖所示在向輸出設(shè)備送數(shù)據(jù)前,先通過
7、PC7查詢設(shè)備狀態(tài),若設(shè)備準(zhǔn)備好則從A口送出數(shù)據(jù),然后通過PC1發(fā)選通信號使輸出設(shè)備接收數(shù)據(jù)。從輸入設(shè)備取數(shù)據(jù)前,先通過PC6查詢設(shè)備狀態(tài),設(shè)備準(zhǔn)備好后,再從B口讀入數(shù)據(jù),然后通過PC0發(fā)清除信號,以便輸入后續(xù)字節(jié)。C口聯(lián)絡(luò)線用戶可自行定義只能用于查詢例題:如圖所示,設(shè)8255A端口A工作在方式0下,通過A口輸出數(shù)據(jù)控制8個指示燈輪流點亮。設(shè)8255A端口的地址為04A0H 04A6H試給出實現(xiàn)程序。 MOV DX,04A6H ;控制口地址送DX MOV AL,80H ;寫工作方式控制字,方式0輸出 OUT DX,AL MOV DX,04A0H ; A端口地址送DX MOV AL,0FE ;低
8、電平燈亮AA1: OUT DX,AL ; 輸出數(shù)據(jù) CALL DELAY ; 延時 ROL AL,1 ;輪流點亮 JMP AA1delay proc near push ax; mov ah,100 mov al,0 push cx mov cx,ax loop $ pop cx pop ax retdelay endp2、方式1選通輸入輸出方式必須在聯(lián)絡(luò)信號控制下才能完成I/O操作C口的某些I/O線已經(jīng)被定義好1)A口和B口均為輸入P253PC5PC4PA7PA0(PC4)INTEAIBFAINTRAI/OA口D7ASTBPC3PC7, PC6&RD10111/0D6D5D4D3D2D1D0
9、A組工作方式控制字(A口工作于方式1輸入;PC5PC3用于A口的聯(lián)絡(luò)信號;PC7和PC6工作于方式0,D3位決定是輸入還是輸出)PC1PC2PB7PB0(PC2)INTEBIBFBINTRBB口BSTBPC0&RDD7111D6D5D4D3D2D1D0B組工作方式控制字(B口工作于方式1輸入;PC2PC0用于B口的聯(lián)絡(luò)信號)STB(Strobe):選通信號,輸入,低電平有效。當(dāng)STB有效時,允許外設(shè)數(shù)據(jù)進入端口A或端口B的 輸入數(shù)據(jù)緩沖器。STBA接PC4,STBB接PC2。IBF(Input Buffer Full):輸入緩沖器滿信號,輸出,高電平有效。當(dāng)IBF有效時,表示當(dāng)前已有一個新數(shù)據(jù)
10、進入端 口A或端口B緩沖器,尚未被CPU取走,外設(shè)不能送新的數(shù)據(jù)。一旦CPU完成數(shù)據(jù)讀入操 作后,IBF便復(fù)位(變 為低電平)。INTE(Interrupt Enable):中斷允許信號,高電平有效。它是8255A內(nèi)部控制8255A是否發(fā)出中斷請求信號(INTR) 的控制信號。這是由軟件通過對C口的置位或復(fù)位來實現(xiàn)對中斷請求的允許或禁止的。端口A的中斷請求 INTRA可通過對PC4的置位或復(fù)位加以控制:PC4置1,允許INTRA工作;PC4清0,則屏蔽INTRA。端口B 的中斷請求INTRB可通過對PC2的置位或復(fù)位加以控制。INTR(Interrupt Request):中斷請求信號,輸出,
11、高電平有效。在中斷允許信號INTE=1且IBF=1的條件下,由STB 信號的后沿(上升沿)產(chǎn)生,該信號可接至中斷管理器8259A作中斷請求。它表明數(shù)據(jù)端口已輸入一個新數(shù)據(jù)。 若CPU響應(yīng)此中斷請求,則讀入數(shù)據(jù)端口的數(shù)據(jù),并由RD信號的下降沿使INTR復(fù)位(變?yōu)榈碗娖?。2)A口和B口均為輸出PC7PC6PA7PA0(PC6)INTEAINTRAI/OA口D7AACKPC3PC4, PC5&PC1PC2PB7PB0(PC2)INTEBINTRBB口PC0&WR10101/0D6D5D4D7110D6D5D4D3D2D1D0D3D2D1D0AOBFWRBACKBOBFA組工作方式控制字(A口工作于
12、方式1輸出;PC7、PC6和PC3用于A口的聯(lián)絡(luò)信號;PC5和PC4工作于方式0)B組工作方式控制字(B口工作于方式1輸出;PC2PC0用于B口的聯(lián)絡(luò)信號)OBF(Output Buffer Full):輸出緩沖器滿信號,輸出,低電平有效。當(dāng)CPU把數(shù)據(jù)寫入端口A或B的輸出緩沖器 時,寫信號WR的上升沿把OBF置成低電平,通知外設(shè)到端口A或B來取走數(shù)據(jù),當(dāng)外設(shè)取走數(shù)據(jù)時8255A 發(fā)應(yīng)答信號ACK,ACK的下降沿使OBF恢復(fù)為高電平。ACK(Acknowledge):外設(shè)應(yīng)答信號,輸入,低電平有效。ACK有效時表示CPU輸出到8255A的數(shù)據(jù)已被外設(shè)取走。INTE(Interrupt Enab
13、le):中斷允許信號,與方式1輸入類似,端口A的輸出中斷請求INTRA可以通過對PC6的置位 或復(fù)位來加以允許或禁止。端口B的輸出中斷請求信號INTRB可以通過對PC2的置位或復(fù)位來加以允許或禁止。INTR(Interrupt Request):中斷請求信號,輸出,高電平有效。該信號由ACK的后沿(上升沿)在INTE=1且OBF=1 的條件下產(chǎn)生,該信號使8255A向CPU發(fā)出中斷請求。若CPU響應(yīng)此中斷請求,則向數(shù)據(jù)口寫入一新的數(shù)據(jù), 寫信號WR上升沿(后沿)使INTR復(fù)位,變?yōu)榈碗娖健?)混合輸入與輸出B口輸出PA7PA0D7110D6D5D40111/0D3D2D1D0ASTB8255A
14、PC4IBFAI/OA口輸入工作方式控制字PC5PC3INTRAPB7PB0PC2PC1PC0PC6,PC7BOBFBACKINTRBRDWRB口輸入PA7PA0D7111D6D5D40101/0D3D2D1D0AOBF8255APC7I/OA口輸出工作方式控制字PC6PC3INTRAPB7PB0PC2PC1PC0PC4,PC5BSTBINTRBRDWRAACKIBFB3、方式2選通雙向輸入輸出方式IBFI/OINTR(PC6)1PC3PA7PA0&PC7PC6INTE1(PC4)INTE2PC4PC5&PC2PC0ACKOBFSTBRDWRD711/01/01/011/0工作方式控制字D6D
15、5D4D3D2D1D0輸出的中斷允許信號輸入的中斷允許信號可以作為B口工作方式1時的聯(lián)絡(luò)線,也可以獨立工作于方式0四、8255A的應(yīng)用舉例8255A初始化編程。設(shè)8255A的A口工作方式1輸出,B口工作方式1輸入,PC4和PC5輸入,禁止B口中斷。設(shè)片選信號CS由A9A2=10000000確定。試編寫程序?qū)?255A進行初始化。INTR外設(shè) I/OIBFBRDWR8255AA0INTRA(PC3)IORIOW譯碼A2A9PA7PA0PC7PC6PC3PB7PB0PC2PC1PC4, PC5AOBFAACKBSTBD7D0A0A1A1CS控制字特征位D7111011工作方式控制字D6D5D4D3
16、D2D1D00A口方式1A口輸出PC4, PC5輸入B口輸入任意B口方式1MOVAL,10101110B;控制字送ALMOVDX,1000000011B;8255A控制字寄存器地址送DX,A9A2,A1A0OUTDX,AL;控制字送8255A的控制寄存器MOVAL,00001101B;PC6置1,允許A口中斷OUTDX,ALMOVAL,00000100B;PC2置0,禁止B口中斷(P334)OUTDX,AL 練習(xí):設(shè)8255A端口的地址為0D0H 0A6H,若系統(tǒng)要求8255A的A口為方式1輸出,B口為方式0輸入,C口高四位為輸出,低四位為輸入,且要求對C口PC5置位,試完成對8255A的初始
17、化。方式選擇控制字方式控制字的特征位D7A口方式1 1D6D5D4D3D2D1D0A口輸出A組PC7PC4輸出B口方式0B口輸入B組PC3PC0輸入0100011無關(guān)D70D6D5D4D3D2D1D0C口按位置位/復(fù)位控制字的特征位1置位 編碼 選擇位1 0 1 PC51101初始化程序:MOVAL,0A3HOUT0D6H,AL ;送方式控制字MOV AL,0BHOUT 0D6H,AL ;送對C口置位/復(fù)位控制字(到控制寄存器中)1、如下圖所示,8255的PA口與8個發(fā)光二極管相連接,PB口與8個DIP開關(guān)相連接。(1)請編寫初始化程序段,并編程序段以查詢方式實現(xiàn)以下功能:當(dāng)8個DIP開關(guān)中某
18、個按鍵閉合,則PA口對應(yīng)號碼的發(fā)光二極管被點亮。(不考慮抖動)。(2)編寫循環(huán)彩燈程序,初始時D7亮,其余不亮,D7亮一秒后移位一次,D6亮,其余不亮,以此類推每隔一秒移位一次,每移位8次為一個循環(huán),共循環(huán)8次,要求用匯編語言寫出滿足上述要求的程序段(已知一個延時1秒的子程序入口地址為DELAYIS)。 答:(1)8255的A口、B口、C口及控制口地址分別為:F0H、 F2H、F4H、F6H。 MOV AL,1000X01XB ;初始化A口方式0輸出,B口方式0輸入 OUT 0F6H,AL IN AL,0F2H ;讀入按鍵狀態(tài) MOV BL,0FFH SUB BL,AL MOV AL,BL O
19、UT 0F0H, AL;設(shè)置LED狀態(tài)(2)分析:PA口工作在方式0輸出,高電平燈亮 MOV AL,10000000B ;初始化A口方式0輸出 OUT 0F6H,AL MOV CX,8 ;循環(huán)初始化 MOV AL,80HN0: OUT 0F0H,AL ;數(shù)據(jù)輸出 CALL DELAY1S ;延時1秒 ROR AL,1 ;循環(huán)右移,為下次輸出準(zhǔn)備 JNC N0 LOOP N0 ;CF=1,循環(huán)計數(shù)減1例:利用8255A對44非編碼鍵盤進行管理0#8255APA0CPU總線行05 VPA1PA2PA3PB0PB1PB2PB312#1#13#2#14#3#15#行1行2行3列0列1列2列3A口工作于
20、方式0輸出,B口工作于方式0輸入,則工作方式控制字為10000010A口對應(yīng)的地址為80HB口對應(yīng)的地址為81H控制寄存器的地址為83H程序流程:是否有鍵按下(調(diào)用延時程序)判斷行號判斷列號調(diào)用相應(yīng)的子程序 APORT EQU 8000H ;定義端口的符號地址 BPORT EQU 8001H CPORT EQU 8002H CTRL_P EQU 8003HDATA SEGMENTTAB1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,31HDATA ENDSCODE SEGMENT ASSUME DS:DATA,C
21、S:CODESTART:MOV AX,DATA MOV DS,AX MOV AL,90H ;設(shè)置8255A方式字 MOV DX,CTRL_P OUT DX,ALADD1:MOV DX,APORT IN AL,DX ;取鍵盤信息 AND AL,0FH ;屏蔽高四位 MOV BX,OFFSET TAB1 ;取斷碼表首地址 XLAT ;查表得段碼 MOV DX, BPORT ;輸出顯示 OUT DX,AL MOV CX,0600HADD2: LOOP ADD2 JMP ADD1 ;循環(huán)延時CODE ENDS END START 7.2 可編程定時器8253定時與計數(shù)技術(shù)動態(tài)存儲器的刷新定時、系統(tǒng)日歷
22、時鐘的計時、定時中斷、定時檢測、定時掃描,對外界事件的計數(shù)!定時方法軟件定時不可編程的硬件定時可編程的硬件定時借助于CPU執(zhí)行每條指令都需要固定時間來實現(xiàn)但是占用CPU資源,降低CPU利用率硬件電路設(shè)計好之后,無法更改定時值及定時范圍定時值和定時范圍可由軟件來控制和修改Intel公司生產(chǎn)的8253/8254通用定時/計數(shù)器在8086/8088系統(tǒng)中廣泛采用一、可編程定時/計數(shù)器的基本功能作為計數(shù)器:先設(shè)置好計數(shù)初值后,計數(shù)器開始減1,當(dāng)減為“零”時,輸出一個計數(shù)回零信號便結(jié)束。作為定時器:先設(shè)置好定時常數(shù)后,定時器開始減1,并按定時常數(shù)不斷的輸出為時鐘周期整數(shù)倍的定時間隔。一般定時器具有自動重
23、裝入功能,當(dāng)定時常數(shù)減為“零”后,自動裝入定時常數(shù)的初值,重新開始新的定時。二、8253的結(jié)構(gòu)與功能1、8253的引腳24腳雙列直插式芯片用5V電源供電芯片內(nèi)部有三個相互獨立的16位定時/計數(shù)器數(shù)據(jù)線雙向三態(tài)8253124223322421520619718817916101511141213D7CLK0OUT0GATE0GNDOUT1VCCA1CLK2OUT2GATE2CLK1GATE1D6D5D4D3D2D1D0WRRDCSA0 0#8253D7D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2WRRDA1CS 1# 2#片選,低電平有效由CPU輸出的地
24、址經(jīng)地址譯碼器產(chǎn)生地址線A0,A1:這兩根線接到系統(tǒng)地址總線的A0,A1上,當(dāng)CS為低電平,且8253被選中時,用它們來選擇8253內(nèi)部的四個寄存器??刂茣r鐘脈沖信號CLK0CLK2:計數(shù)器0、計數(shù)器1和計數(shù)器2的時鐘輸入端。脈沖可以是系統(tǒng)時鐘(或系統(tǒng)時鐘的分頻脈沖)或其他任何脈沖源所提供的脈沖。若CLK是由精確的時鐘脈沖提供,則8253作為定時器使用;若CLK是由外部事件輸入的脈沖,則8253作為計數(shù)器使用。門控脈沖信號GATE0GATE2:計數(shù)器0、計數(shù)器1和計數(shù)器2的門控制脈沖輸入端,是由外部送入的門控脈沖, 該信號的作用是控制啟動定時器/計數(shù)器工作。輸出信號OUT0OUT2:計數(shù)器0、
25、計數(shù)器1和計數(shù)器2的輸出端。當(dāng)計數(shù)器計數(shù)到0時,該端輸出一標(biāo)志信號, 從而產(chǎn)生不同工作方式時的輸出波形。2、8253的內(nèi)部結(jié)構(gòu)A1CLK0OUT0數(shù)據(jù)總線緩沖器讀/寫邏輯控制字寄存器計數(shù)器2號計數(shù)器1號計數(shù)器0號8888CLK1GATE1OUT1GATE0D7D0CSA0RDWR8CLK2GATE2OUT2內(nèi)部總線數(shù)據(jù)總線緩沖器、讀/寫邏輯、控制字寄存器、3個獨立的16位計數(shù)器 計數(shù)器內(nèi)部結(jié)構(gòu)示意圖1)3個獨立的16位計數(shù)器16位的計數(shù)初值寄存器CR和16位的輸出鎖存寄存器OL共同占用一個I/O端口地址,CPU用輸出指令向CR預(yù)置計數(shù)初值,用輸入指令讀回OL中的數(shù)值,這兩個寄存器都沒有計數(shù)功能
26、,只起鎖存作用。16位的減1計數(shù)器CE執(zhí)行計數(shù)操作,其操作方式受控制寄存器控制,最基本的操作是:接受計數(shù)初值寄存器的初值,對CLK信號進行減1計數(shù),把計數(shù)結(jié)果送輸出鎖存寄存器中鎖存。包括:一個8位的控制寄存器一個16位的計數(shù)初值寄存器CR一個16位的減1計數(shù)器CE一個16位的輸出鎖存寄存器OL2)控制寄存器當(dāng)A1和A0均為1時,控制寄存器被訪問。它從數(shù)據(jù)總線緩沖器接收來自CPU的控制字并寄存起來。該控制字決定了每個計數(shù)器的操作方式、選擇二進制或BCD數(shù)的計數(shù),并控制每個計數(shù)初值寄存器的寫入操作??刂萍拇嫫髦荒軐懭耄荒茏x出。3)數(shù)據(jù)總線緩沖器是8253和CPU數(shù)據(jù)總線的接口部件,是8位、雙向、
27、三態(tài)的緩沖器,CPU訪問8253時所有的數(shù)據(jù)都是經(jīng)過數(shù)據(jù)總線緩沖器傳送。4)讀/寫邏輯讀/寫邏輯的任務(wù)是接收來自CPU的控制信號,完成對8253內(nèi)部操作的控制。這些控制信號包括讀信號RD、寫信號WR、片選信號CS以及用于片內(nèi)寄存器尋址的地址信號A0和A1。當(dāng)片選信號有效,即CS=0時,讀寫邏輯才能工作。該控制邏輯根據(jù)讀/寫命令及送來的地址信息,決定三個計數(shù)器和控制寄存器中的哪一個工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。8253共占用4個I/O地址A1A000,選中計數(shù)器0A1A001,選中計數(shù)器1A1A010,選中計數(shù)器2A1A011,3個計數(shù)器內(nèi)的3個控制寄存器的共用地址,由控 制字中的最高兩
28、位編碼決定哪個計數(shù)器8253計數(shù)器工作之前需要進行初始化:CPU用輸出指令向控制寄存器送控制字,然后用輸出指令向計數(shù)初值寄存器預(yù)置初始值;啟動工作后,CR中的初值就送入減1計數(shù)器CE對CLK輸入的計數(shù)/定時脈沖信號進行減1計數(shù);當(dāng)CE中的內(nèi)容減為0,表示計數(shù)/定時到,則OUT端輸出信號。輸出信號的波形形式由工作方式?jīng)Q定。三、8253的編程1、8253的控制字格式2、8253的讀/寫操作1)寫操作:寫入控制字或?qū)懭胗嫈?shù)初值注意: 對每個計數(shù)器,必須先寫控制字,后寫計數(shù)初值。因為后者的格式是由前者決定的。 寫入的計數(shù)初值必須符合控制字(D5D4兩位)決定的格式。16位數(shù)據(jù)應(yīng)先寫低8位,再寫 高8位
29、。2)讀操作:讀出某計數(shù)器的當(dāng)前計數(shù)值到CPU中方法先使計數(shù)器停止計數(shù)(在GATE端加低電平或關(guān)閉CLK脈沖)在計數(shù)的過程中不影響CE的計數(shù)而讀取數(shù)值根據(jù)送入的控制字中的D5D4位的狀態(tài),用輸入指令讀CE的內(nèi)容。在計數(shù)過程中,OL的內(nèi)容是跟隨CE內(nèi)容變化的。此時CE不再計數(shù),故可穩(wěn)定地讀出OL(即CE)的內(nèi)容。應(yīng)先對8253寫入一個具有鎖存功能的控制字,即D5D4位應(yīng)為00,這樣就可以將當(dāng)前的CE內(nèi)容鎖存入OL中,然后再用輸入指令將OL的內(nèi)容讀到CPU中。當(dāng)CPU讀取了計數(shù)值后,或?qū)τ嫈?shù)器重新進行初始化編程后,8253會自動解除鎖存狀態(tài),OL中的值又隨減1計數(shù)器CE值變化。例:設(shè)8253芯片的
30、端口地址為388H38BH。現(xiàn)要求計數(shù)器0工作在方式3,計數(shù)初值為2354,十進制計數(shù);計數(shù)器1工作在方式2,計數(shù)初值為18H,二進制計數(shù)。試根據(jù)上述要求編寫初始化程序及讀取計數(shù)器0當(dāng)前計數(shù)值的程序。;計數(shù)器0的初始化程序MOVDX,38BH;給計數(shù)器0送控制字MOVAL,00110111BOUTDX,ALMOVDX,388H;送計數(shù)初值的低8位MOVAL,54HOUTDX,ALMOVAL,23H;送計數(shù)初值的高8位OUTDX,AL ;計數(shù)器1的初始化程序MOVDX,38BH;給計數(shù)器1送控制字MOVAL,01010100BOUTDX,ALMOVDX,389H;計數(shù)初值送低8位MOVAL,18
31、HOUTDX,AL ;計數(shù)器0當(dāng)前計數(shù)值讀出程序MOVDX,38BH;送計數(shù)器0當(dāng)前計數(shù)值鎖存命令MOVAL,00H;使D5D4為00,具有鎖存功能OUTDX,ALMOVDX,388H;讀出當(dāng)前計數(shù)值的低8位INAL,DXMOVCL,ALINAL,DX;讀出當(dāng)前計數(shù)值的高8位MOVCH,AL四、8253的工作方式同一個芯片中的三個計數(shù)器,可以分別選擇不同的工作方式1、方式0計數(shù)結(jié)束產(chǎn)生中斷寫入方式0的控制字(CW)后,其輸出端變低。再寫入計數(shù)初值N(圖中N=5),在寫信號WR以后經(jīng)過CLK的一個上升沿和一個下降沿,初值進入減1計數(shù)器CE。計數(shù)器減到0后,OUT成為高電平。此信號通常接至8259
32、A的IR端作為中斷請求信號。整個計數(shù)過程中,GATE始終保持高電平。 GATE=0,則暫停計數(shù);待GATE=1后,從暫停的計數(shù)值繼續(xù)往下遞減!方式0主要用于單次計數(shù),計數(shù)到時,利用OUT信號作為查詢信號或中斷請求信號。由于8253內(nèi)部沒有中斷控制管理電路,故用OUT作為中斷請求信號時,需要通過中斷優(yōu)先級控制電路(如8259)向CPU申請中斷。、方式可編程單次脈沖硬件啟動、不能自動重復(fù)但通過GATE的正跳變可使計數(shù)過程重新開始在寫入方式1的控制字后OUT成為高電平,在寫入計數(shù)初值后,要等GATE信號出現(xiàn)正跳變時才能開始計數(shù)。在下一個CLK脈沖到來后,OUT變低,將計數(shù)初值送入CE并開始減1計數(shù),
33、直到計數(shù)器減到0后OUT變?yōu)楦唠娖?。又來一次寬度為N*TCLK 在方式1計數(shù)過程中,若寫入新的計數(shù)初值,也只是寫入到計數(shù)初值寄存器中,并不馬上影響當(dāng)前計數(shù)過程,同樣要等到下一個GATE正跳變啟動信號,計數(shù)器才接收新初值重新計數(shù)。3、方式2分頻工作方式P312方式2既可以用軟件啟動 (GATE=1時寫入計數(shù)初值后啟動),也可以用硬件啟動(GATE=0時寫入計數(shù)初值后并不立即開始計數(shù),等GATE由低變高時啟動計數(shù))。方式2一旦啟動,計數(shù)器就可以自動重復(fù)地工作。OUT輸出信號的頻率為CLK信號頻率的1/N,即N次分頻,故稱這種工作方式為分頻工作方式。方式2需要GATE信號保持高電平。當(dāng)GATE變?yōu)榈?/p>
34、電平時,停止計數(shù)。GATE由低變高后,CR中的計數(shù)初值又重新裝入減1計數(shù)器CE中開始計數(shù)。方式2在計數(shù)過程中若寫入新的計數(shù)初值,并不影響當(dāng)前的計數(shù)過程。在本次計數(shù)結(jié)束后,才以新的計數(shù)初值開始新的分頻工作方式。4、方式3方波發(fā)生器P298工作于方式3時,在計數(shù)過程中其輸出前一半時間為高電平,后一半時間為低電平。其輸出是可以自動重復(fù)的周期性方波,輸出的方波周期為N*TCLK每次讓計數(shù)器減2若為奇數(shù),則計數(shù)的前半個周期為(N+1)/2,后半個周期為(N-1)/2在寫入計數(shù)初值時,如果GATE信號為低電平,計數(shù)器并不開始計數(shù)。待GATE變?yōu)楦唠娖綍r,才啟動計數(shù)過程。在計數(shù)過程中,應(yīng)始終使GATE=1。
35、若GATE=0,不僅中止計數(shù),而且OUT端馬上變高。待恢復(fù)GATE=1時,產(chǎn)生硬件啟動,計數(shù)器又從頭開始計數(shù)。5、方式4軟件觸發(fā)選通軟件啟動、不自動重復(fù)的計數(shù)方式在寫入方式4的控制字后,OUT變?yōu)楦唠娖?。如果GATE為搞電平,當(dāng)寫入計數(shù)初值后立即開始計數(shù)(這就是軟件啟動)。當(dāng)計數(shù)到0后,OUT輸出變?yōu)榈碗娖?,持續(xù)一個CLK脈沖周期后恢復(fù)為高電平,計數(shù)器停止計數(shù)。故這種方式是一次性的。只有CPU再次將計數(shù)初值寫入CR后才會啟動另一次計數(shù)過程。6、方式5硬件觸發(fā)選通硬件啟動、不自動重復(fù)的計數(shù)方式 在寫入方式5控制字后,OUT變高,寫入計數(shù)初值時,既使GATE信號為高電平,計數(shù)過程仍不啟動,而是要求
36、GATE信號出現(xiàn)一個正跳變,然后在下一個CLK信號到來后才開始計數(shù)。計數(shù)器減到0時,OUT變低,經(jīng)一個CLK信號后變高且一直保持。8253工作方式比較五、8254與8253的區(qū)別 允許最高計數(shù)脈沖(CLK)的頻率不同。8253的最高頻率為2 MHz,而8254允許的最高計數(shù)脈沖頻率可達(dá)10 MHz(8254為8 MHz,82542為10 MHz)。 8254每個計數(shù)器內(nèi)部都有一個狀態(tài)寄存器和狀態(tài)鎖存器,而8253沒有。 8254有一個讀回命令字,用于讀出當(dāng)前減1計數(shù)器CE的內(nèi)容和狀態(tài)寄存器的內(nèi)容,而8253沒有此讀回命令字。 六、8253應(yīng)用舉例P301使用8253計數(shù)器2產(chǎn)生頻率為40 kH
37、z的方波,設(shè)8253的端口地址為0040H0043H,已知時鐘端CLK2輸入信號的頻率為2 MHz。試設(shè)計8253與8088總線的接口電路,并編寫產(chǎn)生方波的程序。& 74LS138ABC8253D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D7D7D0RDWRA1CS0Y1G2BG2AG1&A0A1A2A3A4A5A6A7A8A9A15IOWIOR方波方式350分頻可得到頻率為40KH的方波,所以計數(shù)初值為50MOV AL,10010111B;對計數(shù)器2送控制字MOV DX,0043HOUTDX,ALMOVAL,50 ;送計數(shù)初值50MOVDX,0042
38、HOUTDX,AL8253在IBM/XT機中的應(yīng)用(P321)8253計數(shù)器0、計數(shù)器1、計數(shù)器2以及控制寄存器的端口地址分別為40H、41H、42H和43H。7.3可編程中斷控制器Intel 8259A一、8259A的功能為8080/8085系列以及8086/8088系列設(shè)計的可編程的中斷控制器 1、可管理8個中斷源電路的中斷,具有8級優(yōu)先級控制,通過級連可擴展到最多64級優(yōu)先級控制P238。 2、對中斷源有屏蔽或允許申請中斷的操作,每一級中斷都可以控制或屏蔽。 3、能自動送出中斷類型號,在中斷響應(yīng)周期中,8259A可以通過數(shù)據(jù)總線向CPU提供中斷源的中斷類型碼(8086/8088)或直接提
39、供中斷向量(8080/8085),使CPU能迅速的轉(zhuǎn)到中斷服務(wù)程序。 4、有多種工作方式,可以通過編程來進行選擇,適應(yīng)多種系統(tǒng)的要求。二、 8259A的內(nèi)部結(jié)構(gòu)及外部引腳 1、8259A的內(nèi)部結(jié)構(gòu) 1)數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器是8259A與系統(tǒng)之間傳送信息的數(shù)據(jù)通道。它是一個8位、雙向、三態(tài)緩沖器,8259A通過它與 CPU 進行數(shù)據(jù)和命令的傳送。 2)讀/寫控制邏輯 讀/寫控制邏輯接收來自CPU經(jīng)OUT或IN指令發(fā)出或接收的控制信號,完成規(guī)定的操作。當(dāng)CPU執(zhí)行OUT指令時,通過數(shù)據(jù)緩沖器把CPU送來的控制字寫到8259A相應(yīng)的控制寄存器中。當(dāng)CPU執(zhí)行IN指令時,通過數(shù)據(jù)緩沖器把IR
40、R、ISR和IMR中所存放的中斷狀態(tài)信息讀入CPU。此外,A0和/CS是片內(nèi)寄存器選擇和8259A的片選信號。在對8259A操作的過程中,必修保證A0為有效電平。 3)中斷請求寄存器IRR 中斷請求寄存器IRR(Interrupt Request Register)是一個8位的具有鎖存功能的寄存器。其作用是接受并鎖存來自IR0IR7的中斷請求信號。當(dāng)IR0IR7上出現(xiàn)某一中斷請求信號時,IRR對應(yīng)位被置高電平,該信號將被鎖存于IRR的相應(yīng)位中,8259A產(chǎn)生的中斷類型碼就是根據(jù)IRR的內(nèi)容確定的。 4)優(yōu)先權(quán)判別器PR 優(yōu)先權(quán)判別器PR(Priority Resolver)能夠?qū)⒏髦袛嗾埱笾袃?yōu)
41、先級最高者選中,并將ISR中相應(yīng)位置1。若某中斷請求正在被處理,8259A外部又有新的中斷請求,則由優(yōu)先權(quán)判別器將新進入的中斷請求和當(dāng)前正在處理的中斷進行比較,以決定哪一個優(yōu)先級更高。若新的中斷請求比正在處理的中斷級別高,則正在處理的中斷自動被禁止,先處理級別高的中斷,由PR通過控制邏輯向CPU發(fā)出中斷申請INT。 5)中斷服務(wù)寄存器ISR ISR是一個8位的寄存器,用來存放正在處理中的中斷請求。中斷服務(wù)寄存器ISR(In-Service Register),8位,保存當(dāng)前正在處理的中斷請求,例如,如果ISR的D0=1,表示CPU正在為來自IR0的中斷請求服務(wù)。當(dāng)沒有進行中斷處理時,ISR各位
42、均為“0”。中斷嵌套時,可能多個位置“1”。例如,當(dāng)CPU正在處理第4級中斷時,ISR的D4=1,若第4級中斷尚未處理完畢,3號外設(shè)又發(fā)出第3級中斷請求,外設(shè)3的中斷優(yōu)先級高于外設(shè)4的,并且允許在第4級中斷處理的過程中響應(yīng)級別更高的中斷請求,則系統(tǒng)執(zhí)行中斷嵌套,暫停處理第4級中斷服務(wù)程序,轉(zhuǎn)而執(zhí)行第3級中斷服務(wù)程序。這樣,除了ISR的D3=1,D4仍然為1。等第3級中斷處理完畢后,返回來再處理第4級中斷。由于第3級中斷已經(jīng)處理完畢,ISR的D3=0,等到第4級中斷處理完畢后,ISR的D4=0。 6)中斷屏蔽寄存器IMR IMR是一個8位的寄存器,用于存放對中斷請求的屏蔽信息。當(dāng)該寄存器的8位中
43、某一位為“1” ,則與之對應(yīng)的一級中斷被屏蔽。所謂屏蔽,就是指該位能禁止IRR寄存器中對應(yīng)的置1位發(fā)出中斷請求信號INT。屏蔽優(yōu)先級別較高的中斷請求輸入,不會影響優(yōu)先級較低的中斷請求輸入。必須注意,IMR的屏蔽作用與8086/8088 CPU的屏蔽作用不同。前者是8259A對外設(shè)的IRi信號的屏蔽,后者是依靠中斷允許標(biāo)志位IF對接口的INTR 信號的屏蔽。 7)控制邏輯電路 控制邏輯電路按照初始化程序設(shè)定的工作方式管理8259A的全部工作。該電路可以根據(jù)IRR的內(nèi)容和PR的判斷結(jié)果向CPU發(fā)出中斷請求信號INT,并接受來自CPU的中斷響應(yīng)信號INTA,使8259A進入中斷服務(wù)狀態(tài),并使IRR
44、相應(yīng)位淸0。 8)級連緩沖器/比較器 級聯(lián)緩沖/比較器用來存放和比較在系統(tǒng)中用到的所有8259A的級聯(lián)地址。主控8259A通過CAS0、CAS1和CAS2發(fā)送級聯(lián)地址,選中從控8259A。 2、8259A的外部引腳片選信號,低電平有效通知8259A接收CPU從數(shù)據(jù)總線上送來的命令字讀取8259A中某些寄存器的內(nèi)容級連總線,作為總控制器時,該總線為輸出;為從控制器時,為輸入發(fā)中斷請求信號中斷請求信號中斷響應(yīng)信號,通知8259A中斷請求已被響應(yīng),將中斷類型號送到數(shù)據(jù)總線上地址輸入信號P228與8088系統(tǒng)相連,該引腳接地址總線的A0;與8086系統(tǒng)相連,該引腳接地址總線的A1三、 8259A的工作
45、方式1、中斷優(yōu)先級管理方式當(dāng)一個中斷請求被響應(yīng)時,ISR中的對應(yīng)位ISn被置1,8259A把中斷類型號放到數(shù)據(jù)總線上,然后進入中斷服務(wù)程序。一般情況下(除中斷自動結(jié)束方式外),在CPU發(fā)出中斷結(jié)束命令(EOI)前,此對應(yīng)位一直保持為1,以封鎖同級或低級的中斷請求,但并不禁止比本級優(yōu)先級高的中斷請求,以實現(xiàn)中斷嵌套。P228由IR端引入的中斷請求具有固定的優(yōu)先級,IR0最高、IR7最低。可以設(shè)置最低的優(yōu)先級全嵌套方式特殊全嵌套方式優(yōu)先級自動循環(huán)方式優(yōu)先級特殊循環(huán)方式在主從結(jié)構(gòu)的8259A系統(tǒng)中,將主片設(shè)置為特殊全嵌套方式,允許接受同級或更高級的中斷請求進入。 一個設(shè)備的中斷服務(wù)完成時,優(yōu)先級自動
46、降為最低,而將最高優(yōu)先級賦給原來比它低一級的中斷請求,最初的最高優(yōu)先級一定為IR0。普通屏蔽方式:特殊屏蔽方式:允許優(yōu)先級較低的中斷進入正在處理的高級別中斷。適用于全嵌套方式下的中斷結(jié)束。中斷服務(wù)程序結(jié)束時,向8259A發(fā)常規(guī)中斷結(jié)束命令,將8259A的中斷服務(wù)寄存器中最高優(yōu)先級的IS位清零。 在非全嵌套方式下,根據(jù)ISR內(nèi)容無法確定最后響應(yīng)和處理的是哪一級中斷,所以在程序中發(fā)一條指令指定要清除ISR中的哪一位在INTA負(fù)脈沖的后沿完成對應(yīng)的ISR位的復(fù)位。在中斷響應(yīng)后,若此時出現(xiàn)中斷請求,則響應(yīng)此中斷!2.中斷屏蔽方式通過IMR(中斷屏蔽寄存器)設(shè)定。IMR中的每一位對應(yīng)一個級別的中斷請求,
47、某一位為1時,與之對應(yīng)的某一級別的中斷請求被屏蔽;還可以通過對IMR的修改,禁止高級別中斷的進入。3.中斷結(jié)束方式1)中斷自動結(jié)束方式2)一般中斷結(jié)束方式3)特殊中斷結(jié)束方式(SEOI)適用于中斷請求信號的持續(xù)時間有限制以及不出現(xiàn)中斷嵌套的場合!級連用一般結(jié)束方式和特殊結(jié)束方式4.中斷觸發(fā)方式電平觸發(fā)方式邊沿觸發(fā)方式以IR端上出現(xiàn)的高電平作為中斷請求信號。請求被響應(yīng),高電平信號應(yīng)及時撤除。以IR端上出現(xiàn)由低電平向高電平的跳變作為中斷請求信號,跳變后高電平一直保持,直到被響應(yīng)。5.與系統(tǒng)總線的連接方式1)緩沖方式主要用于多片8259A級連的大系統(tǒng)中。緩沖方式下,8259A通過總線收發(fā)器和數(shù)據(jù)總線
48、相連。2)非緩沖方式單片時:SP/EN端接高電平多片時:主片SP/EN接高電平,從片接低電平適用于單片8259A或片數(shù)不多的8259A級連系統(tǒng)中直接與系統(tǒng)總線相連6、8259A的中斷順序 (1)當(dāng)有一個或多個中斷源申請中斷時,通過IR0IR7輸入給8259A,使中斷請求寄存器IRR相應(yīng)位置1。 (2)當(dāng)對中斷源的中斷申請不屏蔽的情況下,向中斷控制器發(fā)中斷申請信號,中斷控制器把該信號轉(zhuǎn)發(fā)給優(yōu)先級判別器PR。 (3)優(yōu)先級判別器PR根據(jù)中斷請求寄存器IRR的內(nèi)容決定CPU正在服務(wù)的中斷源,若優(yōu)先級高于正在服務(wù)的中斷源,通過控制邏輯的INT線向CPU申請中斷。 (4)若CPU處于開中斷狀態(tài),則在當(dāng)前
49、指令執(zhí)行完后,進入中斷服務(wù)程序,并用INTA信號作為響應(yīng)中斷的回答信號。 (5) 8259A接收到INTA信號后,使中斷服務(wù)寄存器ISR相應(yīng)位置0,以避免該中斷源再次發(fā)生中斷申請。 (6)CPU啟動另一個中斷響應(yīng)周期,輸出另一個INTA脈沖信號。這時8259A通過數(shù)據(jù)總線向CPU輸出當(dāng)前級別最高的中斷申請源的中斷類型號,以便CPU很快轉(zhuǎn)入中斷服務(wù)程序。 (7)若8259A工作在AEOI模式,在第二個INTA脈沖信號結(jié)束時,使中斷源在中斷服務(wù)寄存器中的相應(yīng)位置0;否則,直至中斷服務(wù)寄存器中的相應(yīng)位復(fù)位。7、內(nèi)部寄存器: 8259A可訪問的內(nèi)部寄存器有9個: IRR中斷申請寄存器、ISR當(dāng)前中斷服
50、務(wù)寄存器。 初始化命令字寄存器:ICW1ICW4(只能寫入)。 操作字寄存器:OCW1OCW3(只能寫入)。端口分配: A0=0:ICW1、OCW2、OCW3、IRR、ISR(奇地址); A0=1:ICW2ICW4、OCW1、IMR、狀態(tài)寄存器(偶地址)。四、 8259A的編程 初始化命令I(lǐng)CW:建立起8259A操作的初始狀態(tài);操作命令OCW:控制8259A執(zhí)行不同的操作方式。發(fā)ICW和OCW時,CPU中斷申請引腳INTR應(yīng)關(guān)閉!1.初始化命令字1)ICW1:設(shè)置連接和觸發(fā)方式工作方式,寫入A0=0端口(芯片控制) 對A0=0的端口寫入一個D4=1的數(shù)據(jù),表示初始化編程開始。 D4:特征位,必
51、須為1; D3:LTIM位,設(shè)置中斷請求信號的觸發(fā)方式,0為邊沿觸發(fā),1為高電平觸發(fā)。 D1:SGNL位,是否工作在單片方式,0為多片級聯(lián),1為單片。 D0:是否有ICW4,0不需設(shè)置命令字ICW4,1需要設(shè)置。 8086/8088系統(tǒng)中必須有ICW4。 D2和D7D5這4位在僅對8080/8085系統(tǒng)有意義,8086/8088系統(tǒng)中這4位不用,通常置為0。2)ICW2:設(shè)置中斷類型號,寫入A0=1端口在8086/8088系統(tǒng)中,只設(shè)置D7D3,即只需設(shè)置中斷類型號的高5位,編程時D2D0的值可任意設(shè)定(通常設(shè)為0),D2D0的實際內(nèi)容由8259A根據(jù)中斷請求來自IR0IR7的哪一個輸入端,自
52、動填充為000111中的某一組編碼(由硬件電路自動產(chǎn)生),與高5位一同構(gòu)成8位的中斷類型號。例在PC/XT中ICW2為00001000B對于從IR0、IR1、IR2、IR3、IR4、IR5、IR6和IR7上引入的各中斷請求,其相應(yīng)的中斷類型號為08H、09H、0AH、0BH、0CH、0DH、0EH和0FH。 若主片ICW3的內(nèi)容為07H(00000111B)時,說明主片的IR0、IR1、IR2上連有從片。若某從片ICW3的內(nèi)容為07H,說明該從片的INT引腳與主片的IR7相連。3)ICW3:設(shè)置級連(主從片關(guān)系),寫入A0=1端口只有ICW1的SNGL位為0(多片)時,才寫入ICW3主片: I
53、CW3的S0S7指明了IR0IR7各引腳連接從片的情況,置1的位表示對應(yīng)的引腳有從片級聯(lián)從片: ICW3的D7D3不用,置0即可;用D2D0表示與主片的對應(yīng)引腳級聯(lián)。4)ICW4:設(shè)置8259A的工作方式,寫入A0=1端口ICW1的IC4位為1時,才寫入ICW408080/8085系統(tǒng)A0D01 自動EOI101BUFM/SAEOImPMD1D2D3SFNM000D4D5D6D718086/8088系統(tǒng)0非自動EOI非緩沖方式緩沖/從片緩沖/主片0X1011特殊嵌套一般嵌套D3:BUF位,若該位為1,則8259A工作于緩沖方式,8259A通過數(shù)據(jù)總線收發(fā)器和總線相連,SP/EN 引腳為輸出;該
54、位為0,8259A工作于非緩沖方式,SP/EN引腳為輸入,用做主片、從片選擇端。D2:M/S位,當(dāng)D3即BUF位為1時,該位才有效,用于主片/從片選擇當(dāng)BUF位為0時,該位無效,可設(shè)為任意值。 M/S位為0表示本片8259A為從片,1表示本片8259A為主片;D1:AEOI位,設(shè)置結(jié)束中斷方式。0表示中斷正常結(jié)束,靠中斷結(jié)束指令清除ISR相應(yīng)位; 1表示自動結(jié)束中斷,即CPU響應(yīng)中斷后,立即自動清除ISR相應(yīng)位 。2、初始化編程NYNY寫ICW1單片?寫ICW2寫ICW3需ICW4寫ICW4 初始化主片 MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL M
55、OV AL,04H;(級聯(lián)從片) OUT 21H,AL MOV AL,01H OUT 21H,AL 初始化從片MOV AL,11HOUT 0A0H,ALMOV AL,70HOUT 0A1H,AL MOV AL,02H;級聯(lián)引腳OUT 0A1H,ALMOV AL,01HOUT 0A1H,AL PC/AT機中8259A的主片定義為:上升沿觸發(fā)、在IR2級聯(lián)從片、有ICW4、非AEOI方式、中斷類型號08H0FH、一般的中斷嵌套方式、端口地址是20H、21H;從片定義為:上升沿觸發(fā)、級聯(lián)到主片的IR2、有ICW4、非AEOI方式、中斷類型號為70H78H、一般的中斷嵌套方式、端口地址是A0H、A1H
56、。初始化過程如下:(P231的ICW)。3.操作命令字 P2341)OCW1:設(shè)置和清除(中斷屏蔽寄存器)的相應(yīng)位,寫入A0=1端口MX=1表示屏蔽中斷源IRX;MX=0表示來自IRX的中斷請求得到允許。若OCW1=03H,說明IR0和IR1上的中斷請求被屏蔽2)OCW2:設(shè)置優(yōu)先級循環(huán)方式和中斷結(jié)束方式,寫入A0=0端口為1,OCW2用作結(jié)束中斷命令;為0,OCW2用作設(shè)定優(yōu)先級循環(huán)方式的命令字中斷級別編碼特征位A00RSLEOI00L2L1L0D7D6D5D4D3D2D1D000001100201031104001510160117111001EOI方式011特殊EOI(按編碼復(fù)位ISR)
57、101EOI且優(yōu)先權(quán)自動循環(huán)100設(shè)置優(yōu)先權(quán)自動循環(huán)000清除優(yōu)先權(quán)自動循環(huán)111EOI且按編碼循環(huán)優(yōu)先權(quán)110按編碼循環(huán)優(yōu)先權(quán)010 OCW2無意義L2L0位,只有SL位為1時,這三位才有意義。L2L0位有三個作用:一是當(dāng)OCW2給出特殊中斷結(jié)束命令時,L2、L1和L0三位的編碼指出了要清除中斷服務(wù)寄存器ISR中的哪一位;二是當(dāng)OCW2給出結(jié)束中斷且指定新的最低優(yōu)先級命令時,將ISR中與L2、L1和L0編碼值對應(yīng)的位清0,并將當(dāng)前系統(tǒng)最低優(yōu)先級設(shè)為L2、L1和L0指定的值;三是當(dāng)OCW2給出優(yōu)先級特殊循環(huán)命令時,由L2、L1和L0的編碼指定循環(huán)開始的最低優(yōu)先級。寫入的是OCW3D1D0=10
58、時,表明緊接著要讀出IRR的值;D1D0=11時,表明緊接著要讀出ISR的值3)OCW3:設(shè)置和撤銷特殊屏蔽方式;設(shè)置中斷查詢方式;設(shè)置對8259A內(nèi)部寄存器的讀出 寫入A00的端口4.8259A的讀操作PC機中8259A的端口地址為20H和21H(1) 讀出IRR的值:先向20H端口寫0AH(OCW3 RR=1、RIS=0),再讀20H端口。 例如: MOVAL,0AH;OCW3=0AH OUT 20H,AL ;OCW3寫入8259A IN AL,20H ;讀出IRR 內(nèi)容 (2) 讀出ISR的值:先向20H端口寫0BH(OCW3 RR=1、RIS=1),再讀20H端口。 例如: MOVAL,0BH ;OCW3=0BH OUT 20H,
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)付款資產(chǎn)轉(zhuǎn)讓
- 質(zhì)量問題先行賠付
- 混凝土供應(yīng)協(xié)議
- 財務(wù)咨詢服務(wù)協(xié)議樣本
- 服務(wù)改進方案合同
- 校園印刷購銷合同
- 鴨毛購銷合同
- 誠信為本杜絕曠工
- 嚴(yán)守校規(guī)我的承諾
- 井位建設(shè)合同范本
- Q2起重機司機實際操作技能考核作業(yè)指導(dǎo)書
- GB/T 37067-2018退化草地修復(fù)技術(shù)規(guī)范
- GB/T 23280-2009開式壓力機精度
- GB/T 19466.1-2004塑料差示掃描量熱法(DSC)第1部分:通則
- 長方體和正方體的實踐運用
- 第六課 掌握演繹推理方法課件 【備課精講精研】 高中政治統(tǒng)編版選擇性必修三邏輯與思維
- 綜合管廊工程施工技術(shù)概述課件
- 《我的心兒怦怦跳》優(yōu)秀課件
- 公積金提取單身聲明
- 大型設(shè)備的吊裝技術(shù)課件
- 臨床醫(yī)學(xué)概論知識點匯總
評論
0/150
提交評論