8255A有三种不同的工作方式,可以通过对其控制寄存器的写入来进行控制。
1.方式0
方式0是基本输入或输出方式,无需联络就可以直接进行I/O操作。在这种方式下,A口、B口、C口的高4位和低4位可以分别设置成输入或输出,形成16种组合。如果某端口采用方式0输入,则该端口具有缓冲功能,如果工作在方式0输出,则端口具有锁存功能。也就是说,方式0下输入端口没有锁存功能,输出端口具有锁存功能。
2.方式1
方式1是选通输入或输出方式。此时接口和外设之间需有联络信号进行协调。只有A口和B口可工作于方式1。此时C口的某些线被规定为A口或B口与外设间的联络信号,其余的口线具有基本I/O功能,即只能工作于方式0。
(1)方式1选通输入
方式l选通输入使得A口和(或)B口作为锁存输入设备。允许外部数据在微处理器准备好接收的情况下选通进入端口。在方式1下,C口的某些口线被用作控制或握手信号,以便使A口和(或)B口成为选通输入口。
图6-18所示是A口、B口工作在方式1选通输入时的结构以及相应的工作方式字。
当选通信号()有效时,选通输入端口捕获端口引脚上的数据。捕获的动作发生在从“0”到“1”的上升沿,同时使输入缓冲器满(IBF)和中断请求(INTR)信号有效。一旦微处理器通过软件(IBF)或硬件(INTR)方式获悉有数据已经选通进入端口,它便可以用输入指令(IN)读取该数据,并且清除IBF和INTR信号。
方式1选通输入时有关的联络信号及其功能如下::选通信号,该信号将端口上的数据装入端口的锁存器,并保持到微处理器用输入指令(IN)取走。
IBF:输入缓冲器满信号,用于指示输入锁存器有数据,CPU可以读取数据。INTR:中断请求信号,当输入从“0”回到“1”时,INTR引脚变为逻辑“1”,当数据被CPU取走后变为逻辑“0”。
图6-18 选通输入方式下的8255A
INTE:中断允许信号,它既不是输入信号也不是输出信号,是一个通过对C口的PC4(A口)或PC2(B口)位编程进行设定的一个内部控制位。
PC7、PC6:C口的第7位和第6位,是通用的I/O引脚。
(2)方式1选通输出
图6-19所示是当8255A工作在方式1选通输出时的内部结构图和相应的工作方式字。选通输出操作与方式0时的输出操作类似,但选通输出时增加了用于握手的控制信号。(www.xing528.com)
图6-19 选通输出方式下的8255A
当数据被写入选通输出端口时,输出缓冲器满(OBF)信号即变为逻辑“0”,以指示有数据在端口输出锁存器中,外部的I/O设备可以通过给出应答()信号来取走输出锁存器中的数据。信号使信号恢复到逻辑“1”,表示缓冲器是非满的。 在方式1选通输出时有关的联络信号及其功能如下::输出缓冲器满信号,当数据被输出(OUT)到A口或B口锁存器时,变为逻辑“0”。当有来自外部设备的脉冲时,变为逻辑“1”。:应答信号,它是来自外部设备的一个应答,表示外设已接收了8255A端口的数据,同时使引脚电平变为逻辑“1”。
INTR:中断请求信号,当外部设备通过信号接收了端口的输出数据时用来向CPU提出中断。
INTE:中断允许控制信号,它既不是输入也不是输出,是一个内部的可编程的位,用来开放或关闭INTR引脚。A口的控制位INTEA与PC6相对应,B口的控制位INTEB与PC2相对应。
PC5、PC4:端口C的第5、第4位,是通用的I/O引脚。
3.方式2
双向输入/输出方式,即同一端口的I/O线既可以输入也可以输出。只有A口可工作于方式2。此时C口有5条I/O线被规定为A口和外设之间的双向传送联络线。C口剩下的3条线可以作为B口方式1的联络线,也可以和B口一起成为方式0的I/O线。
图6-20是A口工作于方式2双向方式时的内部结构图以及相应的工作方式字。
图6-20 方式2双向模式下的8255A
与方式2双向模式相关的联络信号及其功能如下:
INTR:中断请求信号,它是用来向CPU提出中断请求的输出信号。无论是输入还是输出,都可以用这个INTR向CPU提出中断。:输出缓冲器满信号,它是表示输出缓冲器内有数据的一个输出信号。:应答输入信号,它是来自外设的对8255A内部三态缓冲器的一个使能信号。当为逻辑“1”时,A口的输出缓冲器处于高阻态。:选通输入信号,该信号用来将外部数据装入端口A的输入锁存器。
IBF:输入缓冲器满信号,用来指示输入缓冲器中有来自外部双向总线上的数据。
INTE:中断允许位,既不是输入也不是输出,是内部的控制位,它们用来对INTR实施控制。它们分别与C口的PC6和PC4相对应。
PC2、PC1和PC0:这些引脚在方式2下,仍然可以当通用的I/O端口使用(通过C口的复位/置位控制字)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。