11.1可编程的并行输入/输出接口芯片8255A-5的结构11.2方式选择11.3方式0的功能11.4方式1的功能退出第11章并行接口芯片11.1可编程的并行输入/输出接口芯片8255A-5的结构它由以下几部分组成:1.数据端口A、B、C它有三个输入/输出端口:PortA、PortB和PortC。每一个端口都是8位,都可以选择作为输入或输出。2.A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”操作。3.数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。4.读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号()相连,由它控制把CPU的控制命令或输出数据送至相应的端口;也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。5.控制信号功能(1)(ChipSelect)——选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。(2)——读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。(3)——写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。(4)RESET——复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。CSRDWR6.端口寻址8255A中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口,要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1和A0。11.2方式选择8255A有三种基本的工作方式。(1)方式0(Mode0)——基本输入/输出;(2)方式1(Mode1)——选通输入/输出;(3)方式2(Mode2)——双向传送。8255A的工作方式,可由CPU用I/O指令输出一个控制字到8255A的控制字寄存器来选择。这个控制命令字的格式如图11-3所示。可以分别选择端口A和端口B的工作方式,端口C分成两部分,上半部随端口A,下半部随端口B。端口A能工作于方式0、1和2,而端口B只能工作于方式0和1。端口C的8位中的任一位,可用一条输出指令来置位或复位(其它位的状态不变)。这个功能主要用于控制。能实现这个功能的控制字如图11-6所示。11.3方式0的功能方式0是一种基本的输入或输出方式。在这种工作方式下,三个端口的每一个都可由程序选定作为输入或输出,但这种方式没有规定固定的用于应答式的联络信号(handshaking)线。其基本功能为:(1)两个8位端口(A、B),和两个4位端口(端口C)。(2)任一个端口可以作为输入或输出。(3)输出是锁存的。(4)输入是不锁存的。(5)在方式0时,各个端口的输入、输出可以有16种不同的组合。在这种工作方式下,任一个端口都可由CPU用简单的输入或输出指令来进行读或写。方式0可作为查询式输入或输出的接口电路,此时端口A和B分别可作为一个数据端口,而端口C的某些位可作为这两个数据端口的控制和状态信息。11.4方式1的功能这是一种选通的I/O方式。在这种方式时,端口A或端口B仍作为数据的输入/输出,但同时规定端口C的某些位作为控制或状态信息。(1)用作一个或两个选通端口。(2)每一个端口包含有:8位的数据端口;三条控制线(是固定指定的,不能用程序改变);提供中断逻辑。(3)任一个端口都可作为输入或输出。(4)若只有一个端口工作于方式1,余下的13位,可以工作在方式0(由控制字决定)。(5)若两个端口都工作于方式1,端口C还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。11.5方式2的功能这种工作方式,使外设在单一的8位总线上,既能发送,也能接收数据(双向总线I/O)。工作时可用程序查询方式,也可工作于中断方式。(1)方式2只用于端口A。(2)一个8位的双向总线端口(端口A)和一个5位控制端口(端口C)。(3)输入和输出是锁存的。(4)5位控制端口是用作端口A的控制和状态信息。