8255引腳功能:單片機(jī)系統(tǒng)里常用的8255芯片是一個典型的可編程通用并行接口芯片,用來擴(kuò)展單片機(jī)的端口,它具有3個8位的并行口,有三種工作方式,可作為單片機(jī)與各種外部設(shè)備連接的接口電路! 下面介紹8255的引腳圖及引腳功能。
PA3-- 1 40 --PA4
PA2-- 2 39 --PA5
PA1-- 3 38 --PA6
PA0-- 4 37 --PA7
RD-- 5 36 --WR
CS-- 6 35 --RESET
GND-- 7 34 --D0
A1-- 8 33 --D1
A0-- 9 32 --D2
PC7-- 10 31 --D3
PC6-- 11 30 --D4
PC5-- 12 29 --D5
PC4-- 13 28 --D6
PC0-- 14 27 --D7
PC1-- 15 26 --VCC
PC2-- 16 25 --PB7
PC-- 17 24 --PB6
PB0-- 18 23 --PB5
PB1-- 19 22 --PB4
PB2-- 20 21 --PB3
8255引腳功能說明:
RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。
PA0~PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。
PB0~PB7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。
PC0~PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。
CS:片選信號線,當(dāng)這個輸入引腳為低電平時,表示芯片被選中,允許8255與CPU進(jìn)行通訊。
RD:讀信號線,當(dāng)這個輸入引腳為低電平時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。
WR:寫入信號,當(dāng)這個輸入引腳為低電平時,允許CPU將數(shù)據(jù)或控制字寫8255。
D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。
8255芯片的引腳如圖14所示,引腳信號如表4所示。
表4 8255芯片的引腳信號說明
引腳信號 引腳號 引腳名稱和功能
Vcc 26 電源的+5V端
GND 7 電源的0端
RESET 35?? 復(fù)位信號輸入端。使內(nèi)部各寄存器清除,置A,B,C口為輸入口
36 寫信號輸入端,使CPU輸出的數(shù)據(jù)或者控制字到8255A
5 讀信號輸入端。使8255A輸出數(shù)據(jù)或者狀態(tài)信息到CPU
6 片選端
A1,A0 8,9 地址總線的最低2位。用于決定斷口地址:如A1A0為00,是A口:A1A0 為01,是B口:A1A0為10,是C口:A1A0 是11,是控制字寄存器
D7~D0 27~34 雙向數(shù)據(jù)總線
PA7~PA0 37~40 1~4 A口的8位I/O引腳
PB7~PB0 25~18 B口的8位I/O引腳
PC7~PC0 10~13 17~14 C口的8位I/O引腳
數(shù)據(jù)總線緩沖器:是一個8位的雙向三態(tài)驅(qū)動器,用于與單片機(jī)的數(shù)據(jù)總線相連。
讀/寫控制邏輯:根據(jù)單片機(jī)的地址信息(A1 A0 )與控制信息(RD WR RESET),控制片內(nèi)的數(shù)據(jù),CPU控制字,外設(shè)狀態(tài)信息的傳送。
控制電路:根據(jù)CPU送來的控制字所管I/O 口按一定的方式工作。對C口甚至可按位實現(xiàn)置位或者復(fù)位??刂齐娐贩譃閮山M:A組控制電路控制A口及C口的高四位(PC7~PC4),B組控制電路控制B口及C口的低四位(PC3~PC0)。
三個并行I/O端口:A口可編程為8位輸入,或者8位輸出,或者雙向輸出:B 口可編程為8位輸入,或者8位輸出,但是不可以雙向傳輸;C口分為兩個4位口,用于輸入或者輸出,也可以用作A口,B口的狀態(tài)控制信號。
圖14 8255引腳圖
3.4.2?? 8255的操作方式
1)讀/寫控制邏輯操作選擇
由單片機(jī)輸出的地址A1,A0及控制信號,,來選擇口的操作狀態(tài)。口的操作狀態(tài)如表5所示
表5??? 8255的口操作狀態(tài)
A1 A0??? 輸入操作(讀)
0?? 0?? 0???? 1??? 0 A口——數(shù)據(jù)總線
0?? 1?? 0???? 1??? 0 B口——數(shù)據(jù)總線
1?? 0?? 0???? 1??? 0 C口——數(shù)據(jù)總線
??????????? 輸出操作(寫)
0?? 0?? 1?? 0?? 0 數(shù)據(jù)總線——A口
0?? 1?? 1?? 1?? 0 數(shù)據(jù)總線——B口
1?? 0?? 1?? 0?? 0 數(shù)據(jù)總線——C口
1?? 1?? 1?? 0?? 0 數(shù)據(jù)總線——控制口
??????????? 禁止操作
— —?? —?? — 1 數(shù)據(jù)總線為三態(tài)
1?? 1??? 0??? 1?? 0 非法狀態(tài)
—?? —?? 0??? 1?? 0 數(shù)據(jù)總線為三態(tài)
2)8255的三種工作方式
方式0(基本輸入/輸出方式):這種工作方式不需要任何選通信號。A口,B口及C口的兩個4位口中任何一個端口都可以由程序設(shè)定為輸入或者輸出。作為輸出口時,輸出數(shù)據(jù)被鎖存:作為輸入口,輸入數(shù)據(jù)不鎖存。
方式1( 選通輸入/輸出方式):在這種工作方式下,A,B,C三個口分為兩組。A組包括A口和C口的高四位,A口可由編程設(shè)定為輸入口或者輸出口,C口的高四位則是用來作為A口輸入/輸出操作的控制和同步信號:B組包括B口和C口的低四位,B口可由編程設(shè)定為輸入口或者輸出口,C口的低四位則是用來作為B口輸入/輸出操作的控制和同步信號。A口和B口的輸入或者輸出的數(shù)據(jù)都被鎖存。
方式2( 雙向傳送方式)在這種方式下,A口可以用于雙向傳送,C口的PC3~PC74用來作為輸入/輸出的控制同步信號。應(yīng)該注意的是,只有A口允許用作雙向傳送,這時B口和PC0~PC2則可編程為方式0或者方式1工作。
3)編程控制字
?? 8255A 的編程選擇是通過對控制口輸入控制字的方式實現(xiàn)的??刂谱钟蟹绞竭x擇控制字和C口置位/復(fù)位控制字。
方式選擇控制字:其格式如下表6所示:
C口置位/復(fù)位控制字:C口具有位操作功能,把一個置位/復(fù)位控制字送入送入8255A的控制寄存器(控制口)就能把C口的某一位置1或者清0而不影響其他位的狀態(tài)。C口置位/復(fù)位控制的格式與定義如表7所示。
表6 方式選擇控制字
D7 D6 D5 D4 D3 D2 D1 D0
????????????????? A組???????????????? B組
控制字
標(biāo)志
1=方式控制字?? 方式選擇 00=方式0?? 01=方式1
1*=方式2 A口
1=輸入
0=輸出 上C口1=輸入0=輸出 方式選擇
00=方式0,01=方式1 B口
1=輸入
0=輸出 下C口1=輸入0=輸出
表7??? C口置位/復(fù)位控制字
D7 D6 D5 D4 D3 D2 D1 D0
控制字標(biāo)志???? 位選擇 置位
0=位操作 當(dāng)不用的時候置為 000 0
0
0
0
1
1
1
1 0
0
1
1
0
0
1
1 0
1
0
1
0
1
0
1 BIT0
BIT1
BIT2
BIT3
BIT4
BIT5
BIT6
BIT7??
3.4.3 8051與8255的接口方法
51單片機(jī)與8255的接口邏輯簡單,其接口電路為圖15所示,因為8255A芯片內(nèi)部沒有地址鎖存能力,所以圖中8255A 的片選信號及口地址選擇線A1,A0分別由8051的P0.7 和P0.1 經(jīng)由地址鎖存器后提供。如果沒有參入選址的地址的狀態(tài)都看作“1 ”狀態(tài),則8255的A,B,C口及控制口地址為FF7CH,F(xiàn)F7DH,F(xiàn)F7EH,F(xiàn)F7FH。當(dāng)然各口都有重復(fù)的地址,8255的復(fù)位端與8051的復(fù)位端相連,都接到8051的復(fù)位電路。