第四章——并行输入输出接口

概念

  • 并行接口同时在多根传输线上以字节(字)为单位传输数据
  • 并行传输速度快、成本高、适用于近距离、传输速度要求高的场合

8255A 并行I/O接口

注:如果给了很大的地址范围,只用得上4个地址,分别给A口、B口、C口和控制口
默认认为端口A地址位218H

基本特性

  • 具有两个8位(A和B口),两个4位(C口高/低4位),最高可达24位的并行输入输出端口的芯片
  • 能适应CPU与I/O接口之间的多种数据传送方式的要求,如无条件传送、应答方式(查询)传送,中断传送
  • 8255A设置了方式0、方式1以及方式2(双向传送)
  • 可执行功能很强,两条命令(方式字和控制字
  • PC口除作为数据口外,工作在方式1和方式2时,部分信号线被分配作为专用联络信号;PC口可以按位控制;CPU取8255A状态时,PC口又作为1、2方式的状态口
  • 主要由控制寄存器、状态寄存器和数据寄存器组成

内部结构

数据总线缓冲器

数据总线缓冲是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口,用于CPU和8255A直接传送信息

读写控制逻辑

读写控制逻辑由读信号、写信号,选片信号以及端口选择信号组成。
四个地址:00-A口,01-B口,10-C口,11-控制口

A组和B组控制电路

三个8位I/O口,A组控制A口和C口的高4位,B组控制B口和C口的低4位。
A、B口作I/O线用,C口除了作I/O线外还可以作联络控制线用。
notion image
注意读写均是低电平有效,然后CS为低电平,写入A1A0对应到相应的端口

工作方式控制字***

notion image
放在程序的初始化部分,将控制字的内容写到芯片的控制端口,控制端口地址为C口地址+1
比如A口设定方式0输入,B口方式1,C口高4位输入,低4位输出,则控制字为1001 1100

C口按位控制字***

notion image
注意,对A口B口进行置位和复位,可以先用IN拿到目前的状态数据,然后使用AND或OR变更对应的位,然后再OUT出去。
例题:对PA0PA4进行置位和复位,不改变其他位的状态(置位用OR,复位用AND)
MOV DX,218H ;间接寻址方式送A口地址
IN  AL,DX   ;读取A口中的数据
AND AL,11101110B ; 使AL中对应PA0PA4位为1
OUT DX,AL   ;输出至A

工作方式***

方式0──基本输入输出方式(A、B、C口)

8255A工作在方式0时,三个端口分成彼此独立的两个8位口,即A口和B口;两个4位口,即C口的高4位和低4位口
方式0常用于无条件传送,也可用于条件查询传送
可以从一个口读电平,然后输出到另一个口上。只要提前在控制口设置好方式0并且设置好输入输出状态即可。比如可以用实现二极管的亮灭
方式0没有状态字,因为一个口对另一个口的输入输出是实时的。

方式1──选通输入输出方式

8255A工作在方式1时,A口和B口作为数据的输入或输出口,端口的输入和输出状态是锁存的,二者中有有一个口工作在方式1,则另一个口可工作在方式0,C口用于输入输出的握手信号。方式1通常用于条件查询传送或中断传送。
该方式需要进行查询或中断传送,一般给机器之间交换数据用。
A口和B口一般同时作为输入或输出
:A口中断允许触发器,初始化时由PC4置位设定开放
:中断请求信号
:中断允许信号
:输出缓冲器满信号
:外部响应输入信号
:输入缓冲器满信号
notion image