外部引脚(40个引脚)
A口 PA0-PA7
B口 PB0-PB7
C口 PC0-PC7
数据引脚 D0-D7
读引脚 RD
写引脚 WR
电源 Vcc
地 GND
片选 CS
复位 RESET(与cpu的RESET引脚相连)
片内寻址 A0 A1
内部结构
端口A、端口B、端口C、A组控制器、B组控制器、控制字寄存器、数据总线缓冲器。
初始化命令字和置位控制字
8255的A0、A1 一般与8088的A0、A1 对连,但是与8088不同的是8255约定与8086的A1、A2相连(也可以对联),所以对使用8088来说四个口地址是连续的,对使用8086来说四个口地址是连续的基地址或偶地址。
写初始化命令字和方式控制字要在四个口地址最高的地址中去写。
写初始化命令字:
D7=1 标志位
D6、D5 对A口的工作方式进行控制。
D4 设置A口是输入还是输出
D3 设置C口高四位是输入还是输出
D2 对B口的工作方式进行控制。
D1 设置B口是输入还是输出
D0 设置C口低四位是输入还是输出
写置位控制字:
D7=0 标志位
D6、D5、D4不用
D3、D2、D1、选择C的某一位
D0 对选中的那一位置0或1
工作方式
8255可以工作在中断方式和程序控制方式中,工作在程序控制方式中时可分为无条件传送方式和查询方式。
工作在无条件传送方式(方式0):
A、B、C口均可工作在这种方式之中,不需要查询状态直接进行传输数据,适合用于发光二极管之类简单器件。
工作在查询工作方式中(方式1):
只有A、B口可工作在这种方式中
在输入时,PC3(INTRA)、PC4(STB A)、PC5(IBFA)要配合A口进行工作。外设通过PC4(STB A)以负脉冲做选通信号把数据打入A口,打入A口后PC5(IBFA)为高电平,表示有数据,编程序时可检测PC5 判断是否有有效数据,cpu取走数据后PC5(IBFA)变为低电平,外设可再次传送数据。
同样在输入时,PC0(INTRB)、PC2(STB B)、PC1(IBFB)要配合B口进行工作。PC6PC7可作为2根I/O线使用。
在输出时,PC3(INTRA)、PC6(ACK A)、PC7(OBF A)配合A口进行工作。当cpu向A口发送数据之后PC7(OBFA)变为低电平,外设检测PC7(OBF A)变为低电平就将A口数据取走,并通过PC6(ACK A)发送一个负脉冲使PC7(OBFA)重新变为高电平,cpu就可再次传送数据。
同样的在输出时PC0(INTRB)、PC2(ACK B)、PC1(OBF B)要配合B口进行工作。PC4PC5可作为2根I/O线使用。