微型計算機原理及應用課件8255.ppt_第1頁
微型計算機原理及應用課件8255.ppt_第2頁
微型計算機原理及應用課件8255.ppt_第3頁
微型計算機原理及應用課件8255.ppt_第4頁
微型計算機原理及應用課件8255.ppt_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章 可編程并行接口8255A,7.4.1并行接口的概述 7.4.2 可編程并行接口8255A 7.4.3 8255A的0方式及其應用 7.4.4 8255A的1方式及其應用 7.4.5 8255A的2方式及其應用,CPU與外設之間的信息傳送都是通過接口電路來進行的。 計算機與外部設備、計算機與計算機之間交換信息稱之為計算機通信,計算機通信可分為兩大類: 并行通信:8位或16位或32位數(shù)據(jù)同時傳輸, 速度快,信息 率高,成本高 串行通信:一位一位數(shù)據(jù)傳送(在一條線上順序傳送),成本低 實現(xiàn)并行通信的接口就是并行接口。,7.4.1并行接口的概述,一、串行與并行通信,并行接口最基本的特點是在多根據(jù)數(shù)據(jù)線上以數(shù)據(jù)字節(jié)(字)為單位與I/O設備或被控對象傳送信息。 如: 打印機接口,A/D、D/A轉(zhuǎn)換器接口,IEEE-488接口,開關量接口,控制設備接口等。 在并行接口中,除了少數(shù)據(jù)場合之外,一般都要求在接口與外設之間設置并行數(shù)據(jù)線的同時,至少還要設置兩根握手(聯(lián)線)信號線,以便進行互鎖異步握手方式(即查詢方式)的通信。 在并行接口中,8位或16位是一起行動的,因此,當采用并行接口與外設交換數(shù)據(jù)時,即使是只用到其中的一位,也是一次輸入/輸出8位或16位。 并行傳送信息,不要求固定的格式,這與串行傳送的數(shù)據(jù)格式的要求不同。,二、并行接口的特點,8255A8255A,概述 Intel8255A是一種通用的可編程序并行I/O接口芯片,又稱“可編程外設接口芯片”,是為Intel8080/8085系列微處理設計的,也可用于其它系列的微機系統(tǒng)。可由程序來改變其功能,通用性強、使用靈活。通過8255A,CPU可直接同外設相連接,是應用最廣的并行I/O接口芯片。 含3個獨立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的控制和鎖存能力??赏ㄟ^編程設置各端口的工作方式和數(shù)據(jù)傳送方向(入/出/雙向)。,并行接口連接外設示意圖,不可編程并行接口和可編程并行接口 不可編程并行接口的工作方式和功能: 是由硬件接線決定,不能用軟件來控制。 可編程并行接口的工作方式和功能: 可用軟件編程的方法改變, 使接口具有更大的靈活性和通用性。,一般情況下不交叉使用,因為: 只有本系列的芯片才能更好地保證時序上的配合, 和各種功能的發(fā)揮,使CPU可靠與外設交換信息。,在并行接口芯片中, 不同的產(chǎn)品系列研制出與之相匹配的接口芯片。,例 在80X86系列中使用8255A芯片 在Z80系列中使用Z80-PIO芯片 在6800系列中使用MC6820PIA芯片,8255A8255A,8255A的內(nèi)部結(jié)構(gòu),8255A8255A,數(shù)據(jù)總線緩沖器:三態(tài)8位雙向緩沖器,與系統(tǒng)數(shù)據(jù)總線連接的緩沖部件;傳送數(shù)據(jù)、控制字、狀態(tài)字的通道。 3個8位數(shù)據(jù)端口(PA、PB、PC):通常PA口與PB口用作輸入輸出的數(shù)據(jù)端口,PC口用作數(shù)據(jù)傳輸或提供聯(lián)絡線的端口。在方式字的控制下,PC口可以分成兩個4位的端口,其中PC7PC4同端口A配合使用, PC3PC0同端口B配合使用。 A組、B組控制電路:這兩組控制電路根據(jù)CPU發(fā)出的方式選擇控制字來控制8255A的工作方式,每個控制組都接收來自讀寫控制邏輯的“命令”,接收來自內(nèi)部數(shù)據(jù)總線的“控制字”,并向與其相連的端口發(fā)出適當?shù)目刂菩盘枴組控制電路控制PA口和PC口高4位,B組控制電路控制PB口和PC口低4位。 讀/寫控制邏輯:用來管理數(shù)據(jù)、控制字和狀態(tài)字的傳送,接收系統(tǒng)總線發(fā)來的有關信號,并向A、B兩組控制部件發(fā)送命令。,DIP封裝,共40個引腳。 1. 連接系統(tǒng)總線的主要引腳 D0D7:數(shù)據(jù)線,雙向,連CPU數(shù)據(jù)總線; RESET:復位輸入,接系統(tǒng)總線的RESET; CS*:片選控制輸入,接譯碼器; RD*:讀命令輸入,接CPU的RD*或IOR*; WR*:寫命令輸入,接CPU的WR*或IOW*; A0,A1:片內(nèi)端口地址輸入,可選4個片內(nèi) 端口。接AB的任2位。,1.面向CPU一側(cè)的引腳信號,D7D0,8位,雙向,三態(tài)數(shù)據(jù)線 RESET,復位信號 CS*,片選信號 RD*,讀信號 WR*,寫信號 A1 、A0,端口選擇信號,8255A的讀/寫操作控制,2.面向外設一側(cè)的引腳信號,端口A:PA0PA7 A組,支持工作方式0、1、2 端口B:PB0PB7 B組,支持工作方式0、1 端口C:PC0PC7 僅支持工作方式0 A組控制高4位PC4PC7 B組控制低4位PC0PC3,端口A:PA0PA7 常作數(shù)據(jù)端口,功能最強大 端口B:PB0PB7 常作數(shù)據(jù)端口 端口C:PC0PC7 可作數(shù)據(jù)、狀態(tài)和控制端口 分兩個4位,每位可獨立操作 控制最靈活,最難掌握,功能:,8255A與系統(tǒng)的連接示意圖,8255A的工作方式 方式0基本輸入/輸出方式(A、B、C口) 方式1選通工作方式(A、B口) 方式2雙向選通傳送方式(僅A口) 某端口工作于哪一種方式,可通過軟件編程來指定。即向8255寫入方式控制字來決定其工作方式。,8255A的工作方式方式0(基本輸入/輸出方式) 特點: 8255A相當于三個獨立的8位數(shù)據(jù)口。 各端口既可設置為輸入口,也可設置為輸出口,但不能同時實現(xiàn)輸入及輸出。 C端口即可以是一個8位的簡單接口,也可以分為兩個獨立的4位端口。 設置為輸出口時有鎖存能力,設置為輸入口時無鎖存能力。 適用于: 無條件輸入輸出方式。 查詢輸入輸出方式:把A、B口作為8位數(shù)據(jù)的輸入或輸出口,C口的高/低4位分別定義為A、B口的控制位和狀態(tài)位。,8255A的工作方式方式0(基本輸入/輸出方式) IN AL,PORT 外設將數(shù)據(jù)送到8255輸入緩沖器中; CPU給出有效的8255地址; CPU發(fā)讀命令,將8255A輸入緩沖器中數(shù)據(jù)讀入CPU的AL寄存器中。,8255A的工作方式方式0(基本輸入/輸出方式) 方式0輸入時序:,8255A的工作方式方式0(基本輸出方式) OUT PORT,AL CPU給出有效的8255地址; CPU發(fā)寫命令,將CPU的AL寄存器中數(shù)據(jù)寫入8255A輸出鎖存器中。,8255A的工作方式方式0(基本輸入/輸出方式) 方式0輸出時序:,有效,8255A的工作方式方式1(選通工作方式) 利用一組選通控制信號控制A端口和B端口的數(shù)據(jù)輸入輸出。 特點: A、B口作輸入或輸出口,C口分為兩部分,其部分位(6位)固定用作A口、B口的選通控制信號。 C口的剩余位仍可作數(shù)據(jù)位使用。 A口、B口在作為輸入和輸出時的選通信號不同。 方式1的應用: 主要用于中斷控制方式下的輸入輸出。 說明:C口除部分位用作選通信號外,其余位(2位)可工作在方式0下,作為輸入或輸出線,用程序指定其數(shù)據(jù)傳送方向。,(1)端口A方式1作輸入:,數(shù)據(jù)選通信號 表示外設已經(jīng)準備好數(shù)據(jù),輸入緩沖器滿信號 表示A口已經(jīng)接收數(shù)據(jù),中斷請求信號 請求CPU接收數(shù)據(jù),若允許PA口輸入時,產(chǎn)生中斷請求,則必須設置INTEA=1,即置PC4=1;若禁止它產(chǎn)生中斷請求,則置INTEA=0,即置PC4=0,其程序段為: MOV DX,203H ;8255A命令口 MOV AL,00001001B ;置PC4=1,允許中斷請求 OUT DX,AL MOV AL,00001000B ;置PC4=0,禁止中斷請求 OUT DX,AL,端口B方式1作輸入:,方式1輸入聯(lián)絡信號定義,STB*選通信號,低電平有效 由外設提供的輸入信號,當其有效時,將輸入設備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器 IBF輸入緩沖器滿信號,高電平有效 8255A輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器 INTR中斷請求信號,高電平有效 8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數(shù)據(jù) INTE 中斷允許信號,高電平有效 用于控制中斷允許或中斷屏蔽,8255A方式1作輸入時的各聯(lián)絡信號對應關系,8255A工作在方式1下的輸入時序,(3)端口A方式1作輸出:,外設響應信號 表示外設已經(jīng)接收到數(shù)據(jù),輸出緩沖器滿信號 表示CPU已經(jīng)輸出了數(shù)據(jù),中斷請求信號 請求CPU再次輸出數(shù)據(jù),端口B方式1作輸出:,方式1輸出聯(lián)絡信號,OBF*輸出緩沖器滿信號,低有效 8255A輸出給外設的一個控制信號,當其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設可以取走 ACK*響應信號,低有效 外設的響應信號,指示8255A的端口數(shù)據(jù)已由外設接受 INTR中斷請求信號,高有效 當輸出設備已接受數(shù)據(jù)后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù),8255A方式1作輸出時的各聯(lián)絡信號對應關系,8255A工作在方式1下的輸出時序,A端口、B端口方式 1 比較,A端口輸入用C端口位PC3 、PC4 、 PC5 A端口輸出用C端口位PC3 、PC6 、 PC7 B端口輸入用C端口位PC0 、PC1 、 PC2 B端口輸出用C端口位PC0 、PC1 、 PC2 A端口輸入、輸出用不同的C端口的位 B端口輸入、輸出用相同的C端口的位 B端口只有方式 1 選通輸入/輸出 A端口還有方式 2 雙向數(shù)據(jù)傳送,C端口未被使用的位,A端口方式 0、B端口方式 0 C端口所有位未被使用,PC0 PC7 可作I/O用 A端口方式 0、B端口方式 1 PC0 PC2被用,PC3 PC7可作I/O用 A端口方式 1輸入、B端口方式 0 PC3、PC4、PC5被用,PC0 PC2、PC6、PC7 可作I/O用 A端口方式 1輸出、B端口方式 0 PC3、PC6、PC7 被用,PC0 PC2、PC4、PC5 可作I/O用 A端口方式 1輸入、B端口方式 1 PC6、PC7 可作I/O用 A端口方式 1輸出、B端口方式 1 PC4、PC5 可作I/O用 A端口方式2、B端口方式1;C口被用完,都不可作I/O用,3. 方式2(雙向選通方式),方式2將方式1的選通輸入輸出功能組合成一個雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù) 只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同 方式2的數(shù)據(jù)輸入過程與方式1的輸入方式一樣 方式2的數(shù)據(jù)輸出過程與方式1的輸出方式有一點不同:數(shù)據(jù)輸出時8255A不是在OBF*有效時向外設輸出數(shù)據(jù),而是在外設提供響應信號ACK*時才送出數(shù)據(jù),(1)方式2的信號定義,用PC6設置INTE1(輸出) 用PC4設置INTE2(輸入) 輸入和輸出中斷通過 或門輸出INTRA信號,8255A工作在方式2下的工作時序,當數(shù)據(jù)端口作為輸入工作時,在STB有效時,由外設把輸入數(shù)據(jù)送入端口,并發(fā)出IBF有效信號。當CPU執(zhí)行IN指令對該數(shù)據(jù)口進行讀入操作后,由RD的上升沿使IBF復位,為下一次輸入數(shù)據(jù)作好準備。如果該數(shù)據(jù)端口的中斷允許INTE被置位,則在STB信號回復到高電平時,8255A通過INTR向CPU發(fā)中斷請求。若CPU響應該中斷請求,讀取該數(shù)據(jù)端口的輸入數(shù)據(jù),則RD由下降沿使INTR復位,為下一次數(shù)據(jù)輸入請求中斷作好準備。,當數(shù)據(jù)端口作為輸出口時,在CPU把數(shù)據(jù)寫入端口后,由WR的上升沿使OBF有效并使INTR復位。OBF由8255A輸出到外設,并通知外設可以取走端口的輸出數(shù)據(jù)。當外設取走一個數(shù)據(jù)時,應向8255A發(fā)回應答信號ACK。 ACK的有效低電平可以使OBF恢復高電平,為下一次輸出作好準備。,方式2應用接口電路圖,返回,8255A的初始化 可以利用軟件編程確定8255的3個端口工作于何種方式下。 8255A的各種工作方式由CPU對8255A寫入控制命令字來設定,這個過程稱為“初始化”。 8255A有2種控制命令字: 方式選擇控制字確定3個端口的工作方式; C口置位/復位控制字確定C口某一位的初始狀態(tài),或用于設置INTE位(方式1,2)。,8255A的初始化方式選擇控制字,8255A的初始化C口置位/復位控制字,8255A的初始化方式選擇控制字 在方式 1、2下,C口作為A口、B口聯(lián)絡信號的引腳,其動作關系在芯片設計和制造時已固定,不由用戶自己安排,也不能編程改變。即C口作為聯(lián)絡信號的引腳:不受方式控制字的控制。該出則出,該入則入。,8255A的初始化 MOV DX,387H ;設控制口地址 MOV AL,82H ;1 00 0 0 0 1 0 OUT DX,AL ;輸出控制字 XOR AL,AL ;A口輸出全0 MOV DX,384H ;設A口地址 OUT DX,AL ;輸出到A口,8255A應用舉例 圖中用8255A的PA口作為輸出打印數(shù)據(jù) 口,工作于方式0,PC口高4位工作于輸 出方式,PC6產(chǎn)生STB#信號;PC口低4位 工作于輸入方式,PC2接收打印機的BUSY 信號。程序流程如右示。,例:利用8255A作為打印機的連接接口,要求CPU通過接口采用查詢方式,把存放在從BUF單元開始的內(nèi)存緩沖區(qū)中的256個字符(ASCII碼)輸出給打印機去打印。 假定8255A的 端口地址范圍為0FBD0H0FBD3H,則8255A與打印機接口的初始化程序段如下:,8255A與打印機接口的初始化程序段,INIT:MOV DX,0FBD3H ;8255A的控制寄存器端口地址 MOV AL,10000001B ;方式選擇控制字 (A組方式0:A口輸出, PC7PC4輸出; B組方式0:B口輸出, PC3PC0輸入) OUT DX,AL ;控制字送控制口寄存器 MOV AL,00001101B ;C口置位/復位控制字,使PC6置位,即1 OUT DX, AL ;C口置位/復位控制字送控制寄存器,對8255A初始化編程,并使PC6初始化狀態(tài)置1,為發(fā)選通脈沖(負脈沖)準備,打印一組字符的程序段如下:,MOV SI,OFFSET BUF;取字符串的內(nèi)存首地址 MOV CX,0FFH ;將打印字符長度作為循環(huán)次數(shù) PL:MOV DX,0FBD2H ;C口地址 IN AL,DX ;從C口查詢打印機的狀態(tài)信息BUSY0? (即PC20?) AND AL,00000100B JNZ PL ;若BUSY1,則循環(huán)等待; BUSY0,則 向A口送出數(shù)據(jù),8255A與打印機接口的初始化程序段(續(xù)),MOV AL,SI ;否則,從內(nèi)存中取一個字符準備輸出 MOV DX, 0FBD0H ;A口地址送DX OUT DX,AL ;將內(nèi)存中的一個字符輸出到A口 MOV DX, 0FBD3H ;控制口地址 MOV AL, 00001100H ;設定C口按位操作控制字,置為低( PC6 0) NOP ;使負脈沖寬度延時 NOP MOV AL, 00001101B ;置為高電平 ( PC6 1),在PC6上生成1個負脈沖 OUT DX, AL INC SI ;指向內(nèi)存中下一個字符 DEC CX ;字符數(shù)減1 JNZ PL ;若輸出字符未完,則繼續(xù) HLT ;若輸出字符已完,則暫停,返回,方式1輸出的聯(lián)絡信號定義,8255A方式1 從圖可見,當CPU通過接口要求打印機打印數(shù)據(jù)時,先要查看BUSY信號,BUSY0時,才能向打印機輸出數(shù)據(jù),在把數(shù)據(jù)送上DATA線后,先發(fā)STB#=0信號通知打印機,打印機接到STB#=0后,發(fā)出BUSY1,接收效據(jù),當數(shù)據(jù)接收好并存入內(nèi)部打印緩沖器后,送出ACK#=0信號,表示打印機已準備好接收新數(shù)據(jù),并復位BUSY=0。,例2,設8255A為工作方式1,A口為輸出。當外設向8255A發(fā)回的應答信號變?yōu)楦唠娖綍r,若允許8255A向CPU發(fā)中斷請求信號,則必須設置中斷允許信號INTEA1,即置PC61;若禁止它產(chǎn)生中斷請求,則INTEA0,即置PC60。假定端口的地址范圍為300H303H,其程序段為: MOV DX, 303H ;置8255A控制口 MOV AL, 00001101B ;置C口按位控制字,使PC61,允許發(fā)中斷請求 OUT DX, AL MOV AL, 00001100B ;置PC60,禁止發(fā)中斷請求 OUT DS,AL,8255A打印機接口,8255口線的使用,A為數(shù)據(jù)通道,方式1,輸出 PC0產(chǎn)生打印機的選通脈沖 PC7未用;PC6為/ACK輸入 PC3自動作INTR,接中斷控制器8259A的IR3 ,中斷類型號0BH,中斷向量在0002CH0002FH單元 通道C其他位及通道B未用,8255初始化,MOV DX,303H; MOV AL,0A0H ;初始化,1010XXX0 OUT DX,AL ;A口方式1,出;PC0出 MOV AL,1 ;PC0=1,選通無效 OUT DX,AL,設置中斷向量,設置中斷服務入口0100H:2000H PUSH DS ;保護原數(shù)據(jù)段 XOR AX,AX MOV DS,AX ;設向量表段地址為0000H MOV AX,2000H MOV WORD PTR 002CH,AX;中斷服務程序偏移地址 MOV AX,0100H MOV WORD PTR 002EH,AX;中斷服務程序段地址 POP DS ;恢復原數(shù)據(jù)段,8255中斷設置,MOV AL,0DH ;0000 1101;PC6 置1 OUT 0C6H,AL ;允許8255A中斷 STI ;CPU開中斷 ;主程序,中斷服務程序,中斷服務程序發(fā)選通信號,將數(shù)據(jù)送打印機 打印機接收并打印字符后發(fā)出應答信號,清除8255A的數(shù)據(jù)緩沖區(qū)滿信號 RINT:MOV AL,DI ;輸出字符送A通道 MOV DX,300H OUT DX,AL MOV AL,0 ; PC0產(chǎn)生低電平脈沖選通信號 MOV,DX,303H OUT DX,AL;0000 0000, PC0置0 INC AL OUT 0C6H,AL; 0000 0001, PC0置1 ;后續(xù)處理 IRET ;中斷返回,當外設向8255A發(fā)回的應答信號變?yōu)楦唠娖綍r,若允許8255A向CPU發(fā)中斷請求信號,即中斷允許信號INTEA1, 從PC3引腳發(fā)出中斷申請要求CPU發(fā)送新的數(shù)據(jù),例3 利用OBF#作為觸發(fā)打印機選通信號方式1輸出,若將8255A的端口A與打印機相連,使A口工作于方式1下輸出,并利用中斷方式向打印機輸出一組(字符串長度為256字節(jié))字符,打印機接口連接電路如圖所示。試編寫采用中斷方式傳送一組打印字符的程序段。 假定8255A的端口地址范圍為300H303H,8259A的端口地址為020H與021H。初始化時使A口為方式1、輸出,B口可任意設定為方式0、輸出,C口除聯(lián)絡線以外的5位線也均設定為輸出,則方式選擇控制字為10100000B(0A0H)。允許A口輸出中斷請求的INTEA中斷允許信號,由C口置位/復位控制字對PC6置位來設定。,中斷打印輸出字符的程序由主程序MAIN和中斷服務子程序SUBP兩部分組成。,主程序MAIN,MAIN: PUSH DS ;保存原DS MOV AX,SEG SUBP ;為打印驅(qū)動子程序入口SUBP設置新的中斷向量 DS:DX MOV DS,AX ;SUBP的段地址送DS MOV DX,OFFSET SUBP ;SUBP的偏移地址送DX MOV AH,25H ;設置中斷向量的功能號AH MOV AL,0AH ;為8259A的IR2建立0AH號中斷向量表項 INT 21H POP DS ;恢復原DS MOV DX,303H ;設定8255A控制端口地址 MOV AL,0A0H ;8255A初始化,設置方式選擇控制字 OUT DX,AL ;控制字送端口 MOV AL,00001101B ;設定C口置位/復位控制字 MOV DX,AL ;置PC61,使INTEA1,允許8255A產(chǎn)生中斷 MOV DX,300H MOV AL,00H ;設置空白字符的ASCII碼 OUT DX,AL ;A口輸出一個空白字符,以引發(fā)第一次中斷請求 MOV AX,OFFSET DATA ;打印字符串的標號DATA(首地址)的偏移地址送AX MOV STR _ PTR,AX ;設置增1的打印字符串指針的偏移地址 MOV AX,SEG DATA MOV STR _ PTR+2,AX ;設置增1的打印字符串指針的段地址 STI ;CPU開中 ,中斷服務子程序SUBP,SUBP: PUSH SI PUSH DS PUSH AX LDS SI,DWORD PTR STR _ PTR ;設置打印字符串地址的指針DS:SI CLD LODSB :從SI尋址的字符串中取一個8位字符送AL MOV STR _ PTR,SI ;將自動增1后的SI保存于新的字符串指針 MOV DX,300H ;8255A的A口地址 OUT DX,AL ;將AL的一個打印字符輸出到A口 MOV CX,0FFH DEC CX JNZ NEXT ;字符送完否?未完,轉(zhuǎn)NEXT MOV AL,00001100B ;已送完,重設C口置位/復位控制字 MOV DX,303H ;8255A控制端口地址 MOV DX,AL ;置PC60,使INTEA0,禁止8255A產(chǎn)生中斷 NEXT: MOV AL,20H ;設置8259A的OCW2命令 OUT 20H,AL ; 送中斷結(jié)束命令給8259A的端口 POP AX POP DS POP SI IRET ; 中斷返回,8255A應用舉例 LED開關接口。8086CPU通過8255用開關與8段LED顯示器的接口如圖示。8255A PA口加驅(qū)動器接LED顯示輸出;PB口低4位接開關輸入;PC口不用。8255A的A0、A1接地址總線的A1、A2,其端口地址為:0FFF8H、0FFFAH、0FFFCH、0FFFEH。要求:開關設置的二進制信息由8255A的PB口輸入后,通過PA口輸出給8段LED顯示器,顯示開關狀態(tài)所對應的十六進制值,試編制其控制程序。,8255A應用舉例 (1)控制字的設置 8255A的負載能力較小,PA輸出口加驅(qū)動。 PA口設為方式0輸出,PB口設為方式0輸入。 由于地址總線的A0位未用,則8255A的每個端口有兩個地址。通常使用A0=0的地址。 則方式選擇控制字為:100001B 因未使用C口,故不需設置置位/復位控制字。,8255A應用舉例 (2)開關狀態(tài)與LED顯示值關系 開關Ki閉合,則PBi=0,否則PBi=1。PB3PB0值與LED顯示值關系:,8255A應用舉例 (3)PA口輸出值與LED顯示值間關系,8255A應用舉例 (4) PB口輸入值轉(zhuǎn)換成PA口輸出值方法 將前述8段碼按0F順序連續(xù)存放于內(nèi)存中; 將PB3PB0對應值置于AL中; 執(zhí)行換碼指令XLAT。指令執(zhí)行:(AL+BX)AL,8255A應用舉例,ORG 2000H ;定位程序的段內(nèi)地址 MOV AL,82H ;82H=10000010B MOV DX,0FFFEH;設控制口地址 OUT DX,AL ;寫方式控制字 MOV DL,0FAH ;設PB口地址 IN AL,DX ;讀開關狀態(tài) AND AL,0FH ;屏蔽掉無用的高4位 MOV BX,OFFSET SSEGCODE XLAT ;查表取段選碼 MOV DL,0F8H ;設PA口地址 OUT DX,AL;開關值段選碼輸出顯示 MOV AX,56CH ;顯示延時 DEC AX JNZ DELAY JMP RDPORTB ;循環(huán)讀開關新狀態(tài) HLT ORG 2500H ;定位段選碼表的段內(nèi)地址 SSEGCODE DB 0C0H,0F9H,0A4H ,0B0H,99H,92H,82H ;段碼表 DB 0F8H,80H, 98H,88H,83H, 0C6H,0A1H,86H, 8EH,RDPORTB:,DELAY:,兩種方式并行傳送接口設計 1 .要求 在甲乙兩臺微機之間并行傳送1K字節(jié)數(shù)據(jù)。甲機發(fā)送, 乙機接收。甲機一側(cè)的8255A采用1方式工作,乙機一側(cè)的8255A采用0方式工作。兩機的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。,2.分析 雙機均采用可編程并行接口芯片8255A構(gòu)成接口電路,只是8255A的工作方式不同。此時,雙方的8255A把對方視為I/O設備。 3.設計 (1)硬件連接 根據(jù)上述要求,接口電路的連接如圖所示。 (2)軟件編程 接口驅(qū)動程序包含發(fā)送與接收兩個程序。,甲機發(fā)送程序段: MOV DX,203H ;8255A命令口 MOV AL,10100000B ;初始化工作方式字 OUT DX,AL MOV AL,00001101B ;置發(fā)送中斷允許INTEA=1 OUT DX,AL ;PC6=1 MOV SI,OFFSET BUFS ;設置發(fā)送數(shù)據(jù)區(qū)的指針 MOV CX,3FFH ;發(fā)送字節(jié)數(shù) MOV DX,200H ;向A口寫第一個數(shù),產(chǎn)生第一個 OBF-信號 MOV AL,SI ;送給乙方,以便獲取乙方的ACK-信號 OUT DX ,AL,INC SI ;內(nèi)存地址加1 DEC CX ;傳送字節(jié)數(shù)減1 L: MOV DX,202H ;8255A狀態(tài)口 IN AL, DX ;查發(fā)送斷請求INTRA=1? AND AL,08H ;PC3=1? JZ L ;若無中斷請求,則等待; ;若有中斷請求,則向A口寫數(shù) MOV DX,200H ;8255APA口地址 MOV AL,SI ;從內(nèi)存取數(shù) OUT DX,AL ;通過A口向乙機發(fā)送第二個數(shù)據(jù) INC SI ;內(nèi)存地址加1,DEC CX ;字節(jié)數(shù)減1 JNZ L ;字節(jié)未完,繼續(xù) MOV AH,4CH ;已完,退出 INT 21H ;返回 BUFS DB 1024個數(shù)據(jù) 乙機接收程序段:(略),例設甲、乙兩機之間進行并行通信,共傳送1KB數(shù)據(jù)。甲機一方的8255A的PA口采用方式2并用中斷方式傳送數(shù)據(jù)。乙機一方8255A的PA口與PB口采用方式0輸出與輸入,按查詢方式傳送數(shù)據(jù)。兩機的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。 硬件設計:接口電路的連接如圖所示。甲機一側(cè)的8255A的A口作雙向傳送,既作輸出又作輸入,它的中斷請 求線由PC3接到8259A的IR2上。乙機一側(cè)的 8255A的A口

溫馨提示

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

評論

0/150

提交評論