6.3.1 8255工作原理

6.3.1 8255工作原理

1.基本特征

① 8255具有两个8位(PA和PB)和两个4位(PC高/低4位)并行输入/输出端口,PC端口具有按位复位/置位功能;

② 有0方式、1方式和2方式等,可适应CPU和I/O接口的多种数据传送方式,分别对应无条件传送、应答查询传送和中断传送等;

③ PC端口除作数据端口外,当工作在1方式和2方式时,它的部分引线被分配为专用联络信号,PC端口可单独指定按位控制,作状态信号使用等;

④ 8255A内部主要由控制寄存器、状态寄存器和数据寄存器组成,PA、PB和PC均具有输出锁存和输入缓冲功能。

2.8255A内部结构

8255A采用40线双列直插封装,其中24线用于连接I/O设备,其内部结构如图6.24所示。

img424

图6.24 8255A引脚定义及内部结构框图

(1)数据总线缓冲器

这是一个三态双向8位缓冲器,是8255A与CPU系统数据总线的接口,所有的数据发送和接收,以及CPU发出的控制字和从8255A输入的状态信息均通过该缓冲器传送。

(2)读写控制逻辑

读写控制逻辑由读信号RD、写信号WR,片选信号img425以及端口选择地址信号A1A0来实现。读写控制逻辑控制总线的开放和关闭、信息的传送路径(通道)和传送方向,它可把CPU的控制命令或数据传送到相应端口,也可控制外设信息或输入数据从相应端口传送到CPU,其操作功能如表6-3所示。

(3)数据端口PA、PB、PC

8255A包括3个8位的输入/输出端口,每个端口都有1个数据输入寄存器和1个数据输出寄存器,根据处理器对接口的要求,作为输入端口都有三态输入缓冲和输出锁存功能。在实际应用中,PC的8位可分为两个4位端口(仅在0方式下),也可分为1个5位端口和1个3位端口(1方式下)来使用。

表6-3 8255A读写操作表

img426

(4)A组和B组控制电路

PA、PB和PC三个端口的工作方式是CPU通过向A、B两组控制寄存器写方式控制字来设定的。A组控制PA和PC的高4位,B组控制PB和PC的低4位,A组和B组的控制寄存器还接收PC的按位控制命令,以实现PC的按位置位/复位的功能。

3.8255A控制字

控制字用于控制8255A各个端口的工作方式和端口的输入/输出,它通过img427+3端口输入到8255A。8255A控制字格式如图6.25所示。

img428

图6.25 8255A控制字格式

其中D7位为特征位,当D7=1时8255A将输入的命令解释为控制字。利用控制不同的组合代码,可设置8255A各个端口的工作方式和端口的输入/输出情况。如:PA设置为1方式输入,PC高4位为输出,PB设置为0方式输出,PC低4位为输入,则控制字为:10110001B或B1H。若将该数值从img429+11端口写入到8255A,即可实现对8255A进行相应的控制。

设置8255A工作方式等操作称为8255的初始化,在实际应用时,首先必须对8255初始化,才能进行数据的输入/输出,初始化程序段为:

img430

4.PC置位/复位

为了实现控制的需要,PC可按位置位/复位,置位/复位格式定义如图6.26所示。

img431

图6.26 8255A复位/置位字格式

利用置位/复位控制字可将PC端口8位中的任意一位置成高电平或低电平,如把PC3置成高电平,则置位字为:00000111B或07H,程序段为:

img432

用类似方法也可将PC端口的任意一位置成低电平,如将PC4置成低电平,程序段如下:

img433

当需要对PC的多位同时置位或复位时,可直接从PC输出相应的数据即可,如将PC1、PC3、PC6置成高电平,其余为低电平,程序段为:

img434

img435

用数据输出的方法也可将PA、PB端口的任意位同时置为高电平或低电平,如将PA2、PA3、PA4置为高电平,则程序段为:

img436

当8255工作于1方式、2方式时,若需要对内部某些控制位(如中断允许INTE等)进行复位/置位,必须用8255的置位字/复位字,不能直接采用输出数据方式。