8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據線、地址線、控制線接口。同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內部結構分為3個部分:與CPU連接部分、與外設連接部分、控制部分。
1)與CPU連接部分
根據定義,8255能并行傳送8位數(shù)據,所以其數(shù)據線為8根D0~D7。由于8255具有3個通道A、B、C,所以只要兩根地址線就能尋址A、B、C口及控制寄存器,故地址線為兩根A0~A1。此外CPU要對8255進行讀、寫與片選操作,所以控制線為片選、復位、讀、寫信號。各信號的引腳編號如下:
(1)數(shù)據總線DB:編號為D0~D7,用于8255與CPU傳送8位數(shù)據。
(2)地址總線AB:編號為A0~A1,用于選擇A、B、C口與控制寄存器。
(3)控制總線CB:片選信號、復位信號RST、寫信號、讀信號。當CPU要對8255進行讀、寫操作時,必須先向8255發(fā)片選信號選中8255芯片,然后發(fā)讀信號或寫信號對8255進行讀或寫數(shù)據的操作。
2)與外設接口部分
根據定義,8255有3個通道A、B、C與外設連接,每個通道又有8根線與外設連接,所以8255可以用24根線與外設連接,若進行開關量控制,則8255可同時控制24路開關。各通道的引腳編號如下:
(1)A口:編號為PA0~PA7,用于8255向外設輸入輸出8位并行數(shù)據。
(2)B口:編號為PB0~PB7,用于8255向外設輸入輸出8位并行數(shù)據。
(3)C口:編號為PC0~PC7,用于8255向外設輸入輸出8位并行數(shù)據,當8255工作于應答I/O方式時,C口用于應答信號的通信。
3)控制器部分
8255將3個通道分為兩組,即PA0~PA7與PC4~PC7組成A組,PB0~PB7與PC0~PC3組成B組。如圖7.5所示,相應的控制器也分為A組控制器與B組控制器,各組控制器的作用如下:
(1)A組控制器:控制A口與上C口的輸入與輸出。
(2)B組控制器:控制B口與下C口的輸入與輸出。
8255芯片概述
8255芯片是Intel公司生產的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。
8255芯片特性
(1)一個并行輸入、輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。
(2)具有24個可編程設置的I/O口,即3組8位的I/O口為PA口,PB口和PC口。它們又可分為兩組12位的I/O口,A組包括A口及C口(高4位,PC4~PC7),B組包括B口及C口(低4位,PC0~PC3)。A組可設置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O3種模式;B組只能設置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定。
8255引腳及功能
RESET:復位輸入線,當該輸入端處于高電平時,所有內部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。
CS:芯片選擇信號線,當這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進行通訊;/CS=1時,8255無法與CPU做數(shù)據傳輸。
RD:讀信號線,當這個輸入引腳為低跳變沿時,即/RD產生一個低脈沖且/CS=0時,允許8255通過數(shù)據總線向CPU發(fā)送數(shù)據或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據。
WR:寫入信號,當這個輸入引腳為低跳變沿時,即/WR產生一個低脈沖且/CS=0時,允許CPU將數(shù)據或控制字寫入8255。
D0~D7:三態(tài)雙向數(shù)據總線,8255與CPU數(shù)據傳送的通道,當CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據總線傳送。
8255具有3個相互獨立的輸入/輸出通道端口,用+5V單電源供電,能在以下三種方式下工作。
方式0————基本輸入輸出方式;方式1————選通輸入/出方式;方式2————雙向選通輸入/輸出方式;
PA0~PA7:端口A輸入輸出線,一個8位的數(shù)據輸出鎖存器/緩沖器, 一個8位的數(shù)據輸入鎖存器。 工作于三種方式中的任何一種;
PB0~PB7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。 不能工作于方式二;
PC0~PC7:端口C輸入輸出線,一個8位的數(shù)據輸出鎖存器/緩沖器, 一個8位的數(shù)據輸入緩沖器。端口C可以通過工作方式設定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。‘不能工作于方式一或二。
A1,A0:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器。
當A1=0,A0=0時,PA口被選擇;
當A1=0,A0=1時,PB口被選擇;
當A1=1,A0=0時,PC口被選擇;
當A1=1.A0=1時,控制寄存器被選擇.
8255內部邏輯結構
8255工作方式
3種工作方式可用軟件編程對控制口設置來指定。三種基本的工作方式為: 方式0-基本的輸入輸出,方式1-選通輸入輸出方式, 方式2-雙向傳送方式。
1) 工作方式0(基本輸入輸出方式)
功能:方式0不使用聯(lián)絡信號,也不使用中斷,A口和B口可定義為輸入或輸出口,C口分成兩個部分(高四位和低四位),C口的兩個部分也可分別定義為輸入或輸出。在方式0,所有口輸出均有鎖存,輸入只有緩沖,無鎖存,C口還具有按位將其各位清0或置1的功能。常用于與外設無條件的數(shù)據傳送或接收外設的數(shù)據。
2) 工作方式1(選通輸入輸出方式)
A口借用C口的一些信號線用作控制和狀態(tài)信號,組成A組,B口借用C口的一些信號線用作控制和狀態(tài)信號,組成B組。在方式1下,C口的某些位被占用。
方式1的輸出:當A口工作于方式1且用作輸出口時,C口的PC7線用作輸出緩沖器滿OBF信號,PC6用作外設收到數(shù)據后的響應信號ACK,PC3用作中斷請求輸出信號線INTR。
當B口工作于方式l且用作輸出口時,C口的PC1線用作輸出緩沖器滿OBF信號,PC2用作外設收到數(shù)據后的響應信號ACK,PC0用作中斷請求輸出信號線INTR。
B口輸出
3) 工作方式2 (雙向輸入輸出方式)
功能:方式2是A組獨有的工作方式。外設既能在A口的8條引線上發(fā)送數(shù)據,又能接收數(shù)據。此方式也是借用C口的5條信號線作控制和狀態(tài)線,A口的輸入和輸出均帶有鎖存。
8255應用電路一
8255A組成交通燈的控制,編寫程序實現(xiàn)下列功能:
K0、K1、K2全部閉合時,紅燈亮;K0、K1、K2全部打開時,綠燈亮;其他情況黃燈亮。
根據電路圖可知:8255工作于方式0,A口作輸入口,B口作輸出口。 方式控制字為:10010000.
端口A的地址為:340H,端口B的地址為341H,控制字寄存器地址為343H。 程序如下:
MOV DX, 343H ;控制字端口地址
MOV AL,90H ;方式控制字
OUT DX, AL ;初始化8255
AGAIN: MOV DX, 340H ;送端口A地址
IN AL,DX ;讀端口A
AND AL,00000111B ;取A口的低3位
CMP AL, 00000111B ;判斷是否全部打開
JE GREEN
CMP AL, 00000000B ;判斷是否全部閉合
JE RED
MOV AL, 1 ;黃燈亮 JMP OUTPUT
RED: MOV AL, 4 ;紅燈亮
JMP OUTPUT
GREEN: MOV AL, 2 ;綠燈亮
8255應用電路二
圖中用并行接口8255A作為微機與鍵盤間的接口,采用逐行掃描法識別鍵。將鍵盤中的列與PA0—PA3相連,A口為輸出;將行與C口的PC0—PC1相連,C口為輸入口; PB0—PB7與七段代碼顯示器連接B口為輸出。
8255應用電路三
所示為8255j端口構戚的‘4X8矩陣鍵盤。曙中,8255的PA端口初始化為輸出工作方式作為列線使用,PC端口韌始化為輸入工作方式作為行線使用,在每一個行線與列線的交叉點處接一個按鍵,再給每個按鍵設定一個編號【鍵值)??梢愿鶕枰?,將一部分按鍵定義為功能鍵,另一部分按鍵定義為數(shù)字鍵。





