8255芯片概述
8255芯片是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。
8255芯片特性
?。?)一個(gè)并行輸入、輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。
?。?)具有24個(gè)可編程設(shè)置的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組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O3種模式;B組只能設(shè)置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定。
8255引腳及功能
RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。
CS:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/CS=0時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時(shí),8255無法與CPU做數(shù)據(jù)傳輸。
RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低跳變沿時(shí),即/RD產(chǎn)生一個(gè)低脈沖且/CS=0時(shí),允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。
WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低跳變沿時(shí),即/WR產(chǎn)生一個(gè)低脈沖且/CS=0時(shí),允許CPU將數(shù)據(jù)或控制字寫入8255。
D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。
8255具有3個(gè)相互獨(dú)立的輸入/輸出通道端口,用+5V單電源供電,能在以下三種方式下工作。
方式0————基本輸入輸出方式;方式1————選通輸入/出方式;方式2————雙向選通輸入/輸出方式;
PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 工作于三種方式中的任何一種;
PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。 不能工作于方式二;
PC0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口?!荒芄ぷ饔诜绞揭换蚨?。
A1,A0:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器。
當(dāng)A1=0,A0=0時(shí),PA口被選擇;
當(dāng)A1=0,A0=1時(shí),PB口被選擇;
當(dāng)A1=1,A0=0時(shí),PC口被選擇;
當(dāng)A1=1.A0=1時(shí),控制寄存器被選擇.
8255內(nèi)部邏輯結(jié)構(gòu)
8255工作方式
3種工作方式可用軟件編程對(duì)控制口設(shè)置來指定。三種基本的工作方式為: 方式0-基本的輸入輸出,方式1-選通輸入輸出方式, 方式2-雙向傳送方式。
1) 工作方式0(基本輸入輸出方式)
功能:方式0不使用聯(lián)絡(luò)信號(hào),也不使用中斷,A口和B口可定義為輸入或輸出口,C口分成兩個(gè)部分(高四位和低四位),C口的兩個(gè)部分也可分別定義為輸入或輸出。在方式0,所有口輸出均有鎖存,輸入只有緩沖,無鎖存,C口還具有按位將其各位清0或置1的功能。常用于與外設(shè)無條件的數(shù)據(jù)傳送或接收外設(shè)的數(shù)據(jù)。
2) 工作方式1(選通輸入輸出方式)
A口借用C口的一些信號(hào)線用作控制和狀態(tài)信號(hào),組成A組,B口借用C口的一些信號(hào)線用作控制和狀態(tài)信號(hào),組成B組。在方式1下,C口的某些位被占用。
方式1的輸出:當(dāng)A口工作于方式1且用作輸出口時(shí),C口的PC7線用作輸出緩沖器滿OBF信號(hào),PC6用作外設(shè)收到數(shù)據(jù)后的響應(yīng)信號(hào)ACK,PC3用作中斷請(qǐng)求輸出信號(hào)線INTR。
當(dāng)B口工作于方式l且用作輸出口時(shí),C口的PC1線用作輸出緩沖器滿OBF信號(hào),PC2用作外設(shè)收到數(shù)據(jù)后的響應(yīng)信號(hào)ACK,PC0用作中斷請(qǐng)求輸出信號(hào)線INTR。
B口輸出
3) 工作方式2 (雙向輸入輸出方式)
功能:方式2是A組獨(dú)有的工作方式。外設(shè)既能在A口的8條引線上發(fā)送數(shù)據(jù),又能接收數(shù)據(jù)。此方式也是借用C口的5條信號(hào)線作控制和狀態(tài)線,A口的輸入和輸出均帶有鎖存。
8255應(yīng)用電路一
8255A組成交通燈的控制,編寫程序?qū)崿F(xiàn)下列功能:
K0、K1、K2全部閉合時(shí),紅燈亮;K0、K1、K2全部打開時(shí),綠燈亮;其他情況黃燈亮。
根據(jù)電路圖可知: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應(yīng)用電路二
圖中用并行接口8255A作為微機(jī)與鍵盤間的接口,采用逐行掃描法識(shí)別鍵。將鍵盤中的列與PA0—PA3相連,A口為輸出;將行與C口的PC0—PC1相連,C口為輸入口; PB0—PB7與七段代碼顯示器連接B口為輸出。
8255應(yīng)用電路三
所示為8255j端口構(gòu)戚的‘4X8矩陣鍵盤。曙中,8255的PA端口初始化為輸出工作方式作為列線使用,PC端口韌始化為輸入工作方式作為行線使用,在每一個(gè)行線與列線的交叉點(diǎn)處接一個(gè)按鍵,再給每個(gè)按鍵設(shè)定一個(gè)編號(hào)【鍵值)??梢愿鶕?jù)需要,將一部分按鍵定義為功能鍵,另一部分按鍵定義為數(shù)字鍵。
?