- 8255内部结构
8255是一个40条引脚的双列直插式组件,它内部有3个8位I/O数据端口: A口、B口和C口,以及一个8位的控制端口。
8255的内部结构如图所示。
- 面向CPU的接口电路
(1) 数据总线缓冲器:是一个三态双向的8位缓冲器,是8255与系统数据总线的接口。接口的数据线D7~D0直接与CPU数据总线相连,以实现CPU与8255接口之间的信息传递。CPU向8255写入控制字或从8255中读状态信息以及所有数据的输入和输出,都需要通过数据缓冲器来进行传递。
(2) 读/写控制逻辑:是8255内部完成读/写控制功能的部件,它接收来自CPU的地址和控制信号,通过内部控制逻辑向8255的各功能部件发出读/写控制命令,用于管理数据、控制字或状态字的传送。 - 面向外设的接口电路
(1) 端口A: 包含一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,与之关联的接口线是PA7~PA0。
(2) 端口B: 包含一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器,与之关联的接口线是PB7~PB0。
(3) 端口C: 包含一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器。必要时端口C可分成两个4位端口,分别与端口A和端口B配合工作,以输出控制信号,或接收从外设输入的状态信号,与之关联的接口线是PC7~PC0。 - 内部控制逻辑
内部控制逻辑包括A组控制部件、B组控制部件两部分。
A组控制部件:控制端口A和端口C的高4位(PC7~PC4);
B组控制部件:控制端口B和端口C的低4位(PC3~PC0)。
控制逻辑内部设置了一个控制寄存器,接收来自CPU的控制字,根据控制字的内容决定各数据端口的工作方式。也可以根据控制字对端口C的每一位进行置位和复位。控制寄存器的内容只能写入而不能读出。
- 8255的引脚功能
8255芯片有40根引脚,如图所示。
PA7~PA0(输入/输出、三态): A口的8根输入/输出信号线。可用软件编程决定这8条线是工作于输入、输出还是双向方式。
PB7~PB0(输入/输出、三态): B口的8根输入/输出信号线。可用软件编程指定这8条线作输入还是输出。
PC7~PC0(输入/输出、三态): C口的8根输入/输出信号线。根据其设定的工作方式可作输入或输出线使用,也可用作控制信号的输出或状态信号的输入。
D7~D0(输入/输出、三态): 双向三态数据线,用来传送数据、控制字和状态字等信息。直接与系统数据总线相连。
RESET(输入): 复位信号,高电平有效。当它有效时,所有寄存器,包括控制寄存器的内容全部清零,A口、B口、C口均被设定为输入方式。
A1、A0(输入): 端口选择信号。8255内部共有4个端口,即3个数据端口(A口、B口、C口)和一个控制端口(控制寄存器),它们可由程序寻址。A1、A0通常与系统总线的低位地址线相连
RD(输入): 读信号,低电平有效。当它为低电平时,CPU从8255中读取数据或状态信息。
WR(输入): 写信号,低电平有效。当它为低电平时,CPU将数据或命令字写入8255。
CS(输入): 片选信号,低电平有效。当它为低电平时,选中8255芯片。通常由系统总线的高位地址线经译码得到。
3、8255的工作方式
8255提供3种工作方式:
方式0——基本输入、输出方式方式
适用于无条件传送和查询方式的接口电路
方式1——选通输入、输出方式方式
适用于查询和中断方式的接口电路
方式2——双向传送方式
适用于与双向传送数据的外设
适用于查询和中断方式的接口电路 - 工作方式0(基本输入/输出方式)
无条件数据的传送过程中,输入/输出数据随时都处于准备好状态,8255与CPU及外设之间无须交换应答(握手)信号。
查询式数据的传送过程中,需要有应答信号,通常A口与B口作为输入/输出数据端口,而C口分为两个4位端口分别作为控制信号输出口和状态信号输入口,用于配合A口和B口的查询式数据传送。
当A口、B口、C口都工作于方式0时,8255各口的输入/输出有16种组合。
通过方式控制字进行设置
2. 工作方式1(选通输入/输出方式):
是一种选通输入/输出方式,即利用C口所提供的选通信号和应答信号,控制A口和B口的输入/输出。文章来源地址https://www.toymoban.com/news/detail-451567.html
- 方式1的主要功能
(1) 分成A、B两组选通端口,可工作于查询式或中断式输入/输出数据传送。其中,A组包括端口A的8位数据线和端口C的3位联络信号线; B组包括端口B的8位数据线和端口C的3位联络信号线,每组均设置有中断请求逻辑,其中断请求触发器INTE的状态由C口中相应位置1或清0来控制。
(2) 当两组端口中只有一组(A组或B组)工作在方式1时,另一组端口的8位和C口的剩余5位可工作在方式0下作输入或输出; 若A组和B组同时工作在方式1下,则C口中剩余两位既可作输入或输出,又可用位操作方式对它们进行置位或复位。
(1)A口工作于输出方式
B口工作于方式1作输出时,
(2) A口、B口工作于输入方式。
- 工作方式2(双向输入/输出方式):
只有A口可在此方式下工作。
当A口工作于双向输入/输出方式时,B口只能工作于方式0或方式1下,而C口剩下的3位(PC2~PC0)既可作为输入/输出线使用,也可作为B口方式1下的控制线。
4、方式控制字及状态字 - 8255的控制字(A0 A1都为1)
- 方式控制字:用来决定8255的工作方式。它将3个通道分为两组。
2) C口置位/复位控制字:可对C口中的任意一位进行置位或者复位操作。该控制字各位定义如图所示。
- 8255的状态字
8255的状态字为查询式输入/输出数据提供了外设的工作状态,根据8255工作在不同的工作方式下,以及各端口作输入/输出的不同情况,状态字的格式有所不同。
注意:C口的状态字与C口各位对外的引脚状态不完全一致!!!,只有当A口和B口都工作于方式0下,C口的状态字与C口各位对外的引脚状态一致
当8255的A口、B口均工作在方式1或A口工作在方式2时,通过读C口的状态,可以检测A口和B口的状态。
当8255的A口和B口均工作在方式1的输入时,由C口读出的8位数据各位的意义如图所示。
当8255的A口和B口均工作在方式1的输出时,由C口读出的状态字各位的意义如图所示。
当8255的A口工作在方式2时,状态字各位的意义如图所示
通过读取C口状态字,可以使A口和B口工作于方式一的查询模式。例如当A口工作于方式一输出时,cpu通过in指令读取C口的状态,通过判断D7或D3位(用D3位需要设置INTEA中断允许为1)是否为1,即可判断输出缓冲寄存器是否为空,是否需要输出数据给8255.
文章来源:https://www.toymoban.com/news/detail-451567.html
到了这里,关于8255内部结构、外部引脚、工作方式和控制字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!