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所示。
图6.24 8255A引脚定义及内部结构框图
(1)数据总线缓冲器
这是一个三态双向8位缓冲器,是8255A与CPU系统数据总线的接口,所有的数据发送和接收,以及CPU发出的控制字和从8255A输入的状态信息均通过该缓冲器传送。
(2)读写控制逻辑
读写控制逻辑由读信号RD、写信号WR,片选信号以及端口选择地址信号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读写操作表
(4)A组和B组控制电路
PA、PB和PC三个端口的工作方式是CPU通过向A、B两组控制寄存器写方式控制字来设定的。A组控制PA和PC的高4位,B组控制PB和PC的低4位,A组和B组的控制寄存器还接收PC的按位控制命令,以实现PC的按位置位/复位的功能。
3.8255A控制字
控制字用于控制8255A各个端口的工作方式和端口的输入/输出,它通过+3端口输入到8255A。8255A控制字格式如图6.25所示。
图6.25 8255A控制字格式
其中D7位为特征位,当D7=1时8255A将输入的命令解释为控制字。利用控制不同的组合代码,可设置8255A各个端口的工作方式和端口的输入/输出情况。如:PA设置为1方式输入,PC高4位为输出,PB设置为0方式输出,PC低4位为输入,则控制字为:10110001B或B1H。若将该数值从+11端口写入到8255A,即可实现对8255A进行相应的控制。
设置8255A工作方式等操作称为8255的初始化,在实际应用时,首先必须对8255初始化,才能进行数据的输入/输出,初始化程序段为:
4.PC置位/复位
为了实现控制的需要,PC可按位置位/复位,置位/复位格式定义如图6.26所示。
图6.26 8255A复位/置位字格式
利用置位/复位控制字可将PC端口8位中的任意一位置成高电平或低电平,如把PC3置成高电平,则置位字为:00000111B或07H,程序段为:
用类似方法也可将PC端口的任意一位置成低电平,如将PC4置成低电平,程序段如下:
当需要对PC的多位同时置位或复位时,可直接从PC输出相应的数据即可,如将PC1、PC3、PC6置成高电平,其余为低电平,程序段为:
用数据输出的方法也可将PA、PB端口的任意位同时置为高电平或低电平,如将PA2、PA3、PA4置为高电平,则程序段为:
当8255工作于1方式、2方式时,若需要对内部某些控制位(如中断允许INTE等)进行复位/置位,必须用8255的置位字/复位字,不能直接采用输出数据方式。