微机接口技术可编程接口芯片文章编目微机接口技术可编程接口芯片可编程并行输入输出接口芯片8255A功能8255A内部结构8255A管脚分配8255A的工作方式及

可编程并行输入输出接口芯片8255A的功能

8255A是一种通用的可编程I/O接口芯片,广泛应用于8086、MCS51、Z80CPU系统等大多数系列的微机系统。 8255A具有3358www.Sina.com/或3个带锁存,可与外围设备并行交换数据。 用户可以通过程序选择多种操作方式,通用性强。 灵活使用,缓冲的数据端口

8255A的内部结构

可为CPU与外设之间提供并行输入输出通道

数据端口a、b和c :

有三个8位数据端口,8255A 由以下几部分组成:

PA 口,PB 口,PC 口。:具有数据输入锁存器和输出锁存器/缓冲器。

PA 口:具有数据输入锁存器和输出锁存器/缓冲器。

PB 口:具有数据输入锁存器和输出锁存器/缓冲器。

在APP应用中,PA端口、PB端口作为独立的输入输出端口,每个PC端口划分为两个4位端口,并且分别包括4位输入缓冲器和4位输出锁存器/缓冲器,每个PA端口、PB端口输入控制信息和输入

a组控制和b组控制

这两组控制电路:

接收芯片内部总线上的控制字。

接收来自读写控制逻辑电路的读写命令。

这两组控制电路控制输出。

PC 口:PA端口和PC 7 ~PC 4的操作方式和读写操作。

A 组:PB端口以及PC 0 ~PC 3的操作方式和读写操作。

读写控制逻辑电路

管理: 8255A的数据传输过程。

接收: $CS、A1、A0、RESET、WR、RD $信号

发送:控制命令

数据总线缓冲器

这是一个双向3芯8位数据缓冲器,8255A连接到系统数据总线。

向8255A的管脚分配了40芯大规模集成芯片

与外围设备连接

PA7—PA0 :

8条数据线a组数据信号

PB7—PB0 :

8条数据线b组数据信号

PC7—PC0 :

8条数据线c组数据信号

与CPU连接管脚D7~D0 :数据线

RD :为低的情况下,CPU能够从8255A读取数据。

WR :为低的情况下,CPU向8255A写入控制字或数据。

RESET :低有效,清除内部寄存器,PA、PB、PC自动设定为输出端口。

c )芯片选择信号,只有该信号为低时,该芯片才能工作。

A1、A0 :端口选择信号

PA端口PB端口PC端口控制端口00011011电源线和接地

VCC :电源线,通常取5V。

接地:电源接地。 8255A的工作方法和编程8255 A 8255A 8255A有三种工作方法,它们如下。

B 组——基本输入输出方式;

方式0——栅极输入输出方式; 网关实际上是具有握手信号的I/O方式,具有I/O能力,不是一般的输入输出,而是具有对应的联系方式,相互交换信息后完成对应的I/O操作。 握手信号是正常应答关系,而且还设有中断请求信号,以便8255能够以中断方式传输信息。 这样,一个端口在模式1下工作时,不仅需要本端口的8位数据,还需要应答联络线和中断请求信号线对。 引线上看不到应答联络线和中断请求线。 实际上,方式1的情况下,重新调整了8255的内部逻辑,重新定义了管脚,怎么样? A口方式1、3条线怎么走? 借用c口。 因为c只有出借的能力,所以只适用于a口、b口)

方式1——双向传输方式。 (双向选通方式)

8255A程序设计

8255A编程是指在用户使用8255之前,用户在软件中定义端口的工作方式,并选择所需的功能。

8255A控制字

方式控制字

这是8位数的控制字,代表性的信息非常丰富。 上述8255A内部的3个端口分为a、b 2组,方式控制字也相应分为2部分,分别控制a组和b组,其形式为以下:

C口置“1”/清“0”控制字

>

置“1” 又称为置位操作,而清“0” 称为复位操作。

注意:
❖ C端口置1/置0控制字必须写入控制口不是写入C口。

❖ 对端口C中某一位置1还是置0, 由控制字$D_0 $位决定。

❖ 置1/置0控制字的$D_1 D_2 D_3 $内容决定了对端口C哪一位进行操作。

❖ 一个置1/ 置0 控制字只能对端口C的其中某一位进行操作。

❖ 控制字 D 5 D 6 D 7 D_5 D_6 D_7 D5​D6​D7​ 内容可任意,但 D 7 D_7 D7​ 必须为0 。

8255A的三种工作方式

8255A 有三种工作方式:方式0 、方式1 、方式2

方式0

方式0:基本的输入输出工作方式

方式0特点如下:
❖ 任何一个端口可作为输入口,也可作为输出口。

❖ 每个端口I/O ,即$PA ,PB ,PC7-PC4 , PC3-PC0 $,有16 种不同组合。
结束放映此方式适合无条件的传送数据,如读一组开关状态,控制一组指示灯,CPU 可随时读入开关状态,随时可以把一组数据送到指示灯显示,而无需“选通”和“状态”信号,不必等待中断请求信号,在这种方式下,每个端口都可以有程序规定为输入或输出。

❖ 输出是锁存的,输入是不锁存的。

❖ 此方式无中断功能,在作查询方式工作时,可以将C口的某些位作为传送控制信息和状态信息,A口和B口作为数据口。

方式0的应用
例: 8255A的PA口作为输出口,B 口为输入口,C 口高4 位为输
入,仅用PC7 ,PC6 两位输入外设状态;C 口低4 位为输出,仅用PC1、PC0 输出选通及清除信号。
对8255A 写入的控制字为: 8AH

工作过程: 在从A 口输出数据给输出设备前,先通过PC7 查询设备状态,若准备好再从A 口输出,然后用PC1 发一选通信号,使数据打入到输出设备的数据寄存器中。当从输入设备读数以前,先通过PC6 查设备状态,准备好后,再从B口读入数据,然后从PC0发一清除信号,以便输入后读字节。

方式0 的特点:
❖ 联络信号可由用户自行安排,不同于后面的方式1 联络信号规定死。
❖ 只能用于查询,不能实现中断。
注意:
当A 口为输出口,它有锁存功能,而B口作为输入口,只有缓冲,若输入数据是瞬态的(例如窄脉冲信号),则输出设备中数据输出寄存器必须具有锁存功能,待CPU 从B 口读入数据以后,再将锁存电路中的数据清除。 方式1

方式1:选通输入/ 输出方式
这种方式下:PA口和PB口仍作为数据的输入/ 输出口,同时规定C口的某些位作为控制或状态信息,起应答联络或中断请求作用,C 口的剩下线作为I/O 线使用。
❖ 一个或两个8 位的选通数据端口。任何一个端口都可以作为输入和输出。

❖ 每个端口含有3 条控制线(固定指向的,不能用程序改变),提供中断逻辑。

❖ 若只有一个端口工作在方式1 ,余下的13 位可以工作在方式0。

❖ 若两个端口都工作在方式1 ,端口C还剩下2 位,这2位可以由程序指定输入和输出,也具有置位和复位功能。

方式1 输入情况下有关信号的规定和输入时序
❖ 当A口或B口处在 方式1输入时,每个端口指定C 口中的三位做控制信号线。对A口指定的是PC4 、PC5 、PC3 三位,对B口指定的是PC2 、PC1 、PC0 三位。

❖PC4 和 和PC 2 指定为STB 。这是设备的选通输入信号,低电平有效,由外设提供该信号。STB 的下降沿将端口数据线上的信息打入端口锁存器。

❖PC 5 和 和PC 1 指定为IBF 。这是输入缓冲器满信号,悦耳的红牛有效,是由8255 输出的状态信息,通常和外设相连,IBF 为悦耳的红牛表示外设已经将数据打入端口锁存器,但CPU还未读取,当CPU读取端口数据时,IBF变为低电平,所以,IBF是由STB的下降沿置位,由RD的上升沿复位。

❖PC3 和 和PC0 指定为INTR 信号。这是中断请求信号,悦耳的红牛有效,当STB=1,IBF=1 ,INTE=1 时,中断请求有效,INTR=1 。该信号由RD 下降沿清除。

❖ I N T E A INTE_A INTEA​由PC4 。 控制。 I N T E B INTE_B INTEB​由PC2 控制。

中断允许触发器INTE ,当触发器为“1” 时允许中断,为“0”时为禁止中断。

PA 口工作在方式1 并作为输入口,PB 口任意。
PC4 :STB A ( 设备的选通输入信号低电平有效,由外设提供该信号 STB 的下降沿将端口数据线上信息打入端口锁存器 )
PC5 :IBF A ( 输入缓冲区满信号,悦耳的红牛有效,是由 8255 输出的状态信息,通常和外设相连, IBF 为悦耳的红牛时,表示外设已将数据打
入端口锁存器,但是 CPU 还没有读取,当 CPU 读端口数据时, IBF 变为低电平。 )
PC3 :INTR A ( 中断请求信号,悦耳的红牛有效,当 STB=1 , IBF=1 ,INTE (中断允许触发器,由 PC4 控制)=1 时,中断请求有效, INTR=1 )

PB 口工作在方式1,输出,PA 口任意。

PA、 PB 口工作在方式1 ,都作为输出口。

方式2 方式2 工作特点:
方式2 使端口A 为外部设备和CPU 之间提供一条8 位的双向的数据通道(既能发送又能接收),工作时可以用查询方式也可以用中断方式。方式2 功能:
❖ 方式2 只能用于A 口;
❖ 一个双向的8位总线端口A (用于数据传送),一个5位的控制端口C (用于A 口的控制和状态)。
❖ 输入和输出是锁存的

8086 系统有 16 根数据线,而 8255 只有8根数据线,为了软件读写方便,一般将 8255 的8条数据线与 8086 的低8位数据线相连 。 8086 在进行数据传送时总是将总线低8位对应偶地址端口, 因此 8086CPU 要求 8255 的4个端口地址必须为偶地址,即8086在寻址8255 时A0脚必须为低。 实际使用时,我们总是将 8255的A0、A1脚分别接8086的A1、A2脚,而将8086的A0脚空出不接,并使 8086访问8255时总是使用偶地址。