❶ 8255晶元的初始化字
D7 D6 D5 D4 D3 D2 D1 D0
D7:特徵位 D6D5:A組方式00=方式0 ,01=方式1,1X=方式2
D4: A口0=輸出,1=輸入 D3:C口C7~C4 0=輸出,1=輸入D2:B組方式0=方式0,1=方式1
D1: B口0=輸出,1=輸入D0:C口C3~C0 0=輸出,1=輸入
D7位為「1」時,為方式選擇控制字的標識位。
D6、D5位決定A埠的工作方式。
D4位決定A埠工作在輸入還是輸出方式。
D3位決定C埠高4位PC7~PC4是作為輸入埠,還是作為輸出埠。
D2位用來選擇B埠的工作方式。
D1位決定B埠作為輸入還是輸出埠。
D0位決定C埠低4位PC3~PC0作出為輸入,還是輸出。 在8255A晶元初始化時,C埠置1/置0控制字可以單獨設置C埠的某一位為0或某一位為1。控制字的D7位為「0」時,是C埠置1/置0控制字中的標識位,這個控制字只對C口起作用,任何一位都可以通過按位置位/復位控制字來設置。
注意:對C口的置位/復位控制不是把控制字送到C口,而是由控制口決定各位的狀態,是把控制字送到控制口 3種工作方式可用軟體編程對控制口設置來指定。三種基本的工作方式為: 方式0-基本的輸入輸出,方式1-選通輸入輸出方式, 方式2-雙向傳送方式。
1) 工作方式0(基本輸入輸出方式)
功能:方式0不使用聯絡信號,也不使用中斷,A口和B口可定義為輸入或輸出口,C口分成兩個部分(高四位和低四位),C口的兩個部分也可分別定義為輸入或輸出。在方式0,所有口輸出均有鎖存,輸入只有緩沖,無鎖存,C口還具有按位將其各位清0或置1的功能。常用於與外設無條件的數據傳送或接收外設的數據。
2) 工作方式1(選通輸入輸出方式)
A口借用C口的一些信號線用作控制和狀態信號,組成A組,B口借用C口的一些信號線用作控制和狀態信號,組成B組。在方式1下,C口的某些位被佔用。
方式1的輸出:當A口工作於方式1且用作輸出口時,C口的PC7線用作輸出緩沖器滿OBF信號,PC6用作外設收到數據後的響應信號ACK,PC3用作中斷請求輸出信號線INTR。
當B口工作於方式l且用作輸出口時,C口的PC1線用作輸出緩沖器滿OBF信號,PC2用作外設收到數據後的響應信號ACK,PC0用作中斷請求輸出信號線INTR。
3) 工作方式2 (雙向輸入輸出方式)
功能:方式2是A組獨有的工作方式。外設既能在A口的8條引線上發送數據,又能接收數據。此方式也是借用C口的5條信號線作控制和狀態線,A口的輸入和輸出均帶有鎖存。
❷ 試編寫初始化程序,設8255A的埠A工作在方式0輸入,B口工作在方式0輸出,使PC5端
編寫初始化程序,要先寫控制字,所以先假設8255A的埠A、埠B和控制字寄存器的埠地址分別為20H、21H和22H,那麼初始化程序為:MOV DX,023H;MOV AL,10010000B;OUT DX,AL······(其中控制字為:10010000B,PC端多為輸出端)。
8255A的A,B,C三個埠的工作方式是在初始化編程時,通過向8255A的控制埠寫入控制字來設定的。8255A由編程寫入的控制字有兩個:方式控制字和置位/復位控制字。
其中,方式控制字用於設置埠A,B,C的工作方式和數據傳送方向,置位/復位控制字用於設置C口的PC7~PC0中某一條口線PCi(i=0~7)的電平,兩個控制字公用一個埠地址。
8255A具有3種基本的工作方式,在對8255A進行初始化編程時,應向控制字寄存器 寫入方式選擇控制字,用來規定8255A各埠的工作方式。
這3種基本工作方式是:
1、方式0——基本輸入輸出方式:適用於不需要用應答信號的簡單輸入輸出場合,這種方式埠A和B可作為8位的埠,埠C的高4位和低4位可作為兩個4位的埠;
2、方式1——選通輸入輸出方式:埠A和B作為數據口,均可工作於輸入或輸出方式,埠C的6根線用來產生或接受聯絡信號。
3、方式2——雙向匯流排I/O方式:只有埠A可以工作於這種方式,埠A工作於方式2 時,埠C的5位(PC3~PC7)作A口的聯絡控制信號。
參考資料來源:網路-8255A晶元
❸ 8255A的埠地址為260H~263H,編寫對8255A初始化的程序段
8255方式控制字:
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 1 1 0 1 b = 0BDh
;;8255A初始化80x86微機匯編序:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: MOV AL, 0BDh ;AL←方式控制字
MOV DX, 263h ;DX←8255控制口地址
OUT DX, AL ;方式控制字→8255控制口
......
CODE ENDS
END START