8255A
可编程并行I/O接口芯片8255A
7.2可编程并行接口
因为我们目前常用的微机系统都是采用并行方式处理数据,所以并行接口也是最常用的接口电路。 并行接口具有以下特征:
(1)并行接口是指在多条数据线上,以数据字节(字)为单位与输入输出设备或被控制对象传输信息接口,例如打印机接口、A/D、D/A转换器接口、IEEE 在实际的APP应用中,如果需要在CPU和外围设备之间同时传输两位数以上的信息,则需要采用并行端口。
并行端口适用于近距离传输。 各种I/O设备和被控对象多为并行数据线连接,CPU通过并行端口构成APP应用系统很方便,因此应用非常普遍。
)并行传输的信息不要求固定格式。 数据格式的要求与串行传输的信息不同。 例如,异步串行通信的格式是包含开始位、数据位、奇偶校验位和停止位的数据。
)3)从并行接口的电路结构来看,并行端口有硬线连接接口和可编程接口之分。 硬编码连接接口的工作方式和功能通过硬编码连接进行设置,不能更改用软件编写程序的方式; 如果能用软件编制程序的方法改变接口的结构和功能,就叫做可编程接口。
7.2.1可编程并行接口芯片8255A
可编程是指实际上是可以选择的。 例如,选择连接到外围设备的芯片的哪个数据端口或几个数据端口。 选择端口的哪一位或几位作为输入,哪一位或几位作为输出; 用户可以通过向程序中写入方式字或控制字来指定端口和CPU之间采用何种方式传输数据等。 因此,它们具有广泛的适应性和高度的灵活性,在微机系统中得到了广泛的应用。
1.Inter 8255A的基本特性
)1) 2个8位(a端口和b端口)和2个4位(c端口的高/低4位)并行输入/输出端口,c端口可按位操作。
)2)有三种工作方法。
方式0――基本输入输出(a、b、c端口均);
方式1――栅极输入/输出(有a、b端口);
方式2――双向门输入输出(有a端口)。
)3)可以通过程序设置各种工作方式,查询各种工作状态。
)4)方式1和方式2时,c端口为a端口、b端口的联络线。
)5)内部有用于CPU访问的控制寄存器、状态寄存器、数据寄存器。
)6)有插队申请能力,但无插队管理能力
)7) 40针、5V供电,与TTL等级兼容。
2.8255A的外部引线和内部结构
8255A采用单5V电源供电,40针双列直插式组件,其外部导线如图7-2所示。
)1)外部引线
作为接口电路的8255A具有主机系统总线和外围设备的双向连接能力,且其管脚是为了满足该连接要求而提供的。
面向系统总线的信号线如下。
D7~D0 :双向数据线。 CPU通过它向8255A发送命令、数据; 8255A通过此向CPU发回状态、数据。
CS )芯片选择信号线,该信号为低电平有效,并通过I/O地址解码器从系统地址总线生成。 只有在CPU通过发送高位地址信号而变为低电平时,才能对8255A进行读写操作。 CS为高电平时,切断CPU和芯片的连接。
A1,A0 )通过芯片内部的端口地址信号线,连接到系统地址总线的低位。 该信号用于寻址8255A内部寄存器。 两位地址可以形成片内的四个端口地址。
RD :读取信号线,该信号的低电平有效。 CPU通过执行IN命令将数据或状态信号从8255A读出到CPU并发送信号。
WR :写信号线。 该信号低电平有效。 CPU通过执行OUT命令发送写入信号,将命令代码或数据写入8255A。
RESET :复位信号线,该信号的高电平有效。 清除控制寄存器,将8255A的a、b、c三个端口全部设为输入法。 输出寄存器和状态寄存器被复位,中断请求被屏蔽。 24条面向外围设备的信号线处于高电阻浮动状态。 在用方式命令之前,这种状态不会改变。 进入用户需要的工作方式。
面制I/O设备的信号线如下所示。
PA0~PA7 :端口a的输入输出线
PB0~PB7 :端口b的输入输出线
PC0~PC7 :端口c的输入输出线
这24条信号线均可用于连接I/O装置,通过它们可传输数字电容信息和通断电容信息。
)2) 8255A的内部结构
8255A的内部结构如图7-3所示。 JAVA动画说明]由以下四个部分组成。
数据总线缓冲器
这是三态双向8位缓冲器,用于8255A和CPU系统数据总线的接口。 所有数据的发送接收,以及来自CPU的控制字和来自8255A的状态信息通过该缓冲区进行传送。
读写控制逻辑
所述读取/写入控制逻辑包括读取信号RD、写入领带WR、芯片选择信号CS和端口选择信号A1A0等。 读写控制逻辑控制总线的开放和关闭以及信息传输的方向,将CPU的控制命令或输出数据传送到适当的端口; 将外围设备的信息和输入数据通过合适的端口发送到CPU。
8255A的基本操作和TP86A、PC/XT、扩展板的端口地址见表7-2。
数据侧
口A、B、C8255A包括3个8位输入/输出端口(POPT)。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中,PC口的8位可以分为两个4位端口(方式0下),也可以分成一个5位端口和一个3位端口(方式1下)来使用。
④A组和B组控制电路
控制A、B和C3个端口的工作方式,A组控制A口和C口的上半部(PC7~PC4),B组控制B口和C口的下半部(PC3~PC0)的工作方式和输入/输出。A组、B组的控制寄存器还接收按位控制命令,以实现对PC口的按位置位/复位操作。
3.8255A的编程命令
8255A的编程命令包括工作方式控制字和对PC口的按位操作控制字两个命令,它们是用户使用8255A来组建各种接口电路的重要工具。
由于这两个命令都是送到8255A的同一个控制端口,为了让8255A能识别是哪个命令,故采用特征位的方法。若写入的控制字的最高位D7=1,则是工作方式控制字;若写入的控制字D=0,则是PC口的宾位置位/复位控制字。
(1)工作方式控制字
作用:指定3个并行端口(PA、PB、PC)是作输入还是作输出端口以及选择8255的工作方式。
格式及每位的定义如下:
例如,要把A口指定为方式1,输入;C口上半部定为输出;B口指定为方式0,输出;C口下半部定为输入。于是,工作方式字是:1O110001B或B1H。
若将此控制字的内容写到8255A的控制寄存器,即实现了对8255A工作方式的指定,或叫做完成了对8255A的初始化。初始化的程序段为:
MOV DX,303H ;8255A控制口地址
MOV AL,0B1H ;初始化(工作方式)控制字
OUT DX,AL ;送到控制口
(2)PC口按位置/复位控制字
作用:指定PC口的某一位输出高电平还是低电平。
格式及每位的定义如下:
利用按位置位/复位控制字可以使PC口的8根线中的任意一根置成高电平输出或低电平输出。
例如,若要把C口的PC2引脚置高(置位),则命令字应该为00000101B或05H。
将该命令字的内容写入8255A的命令寄存器,就实现了将PC口的PC2引脚置位的操作:
MOV DX, 303H ;8255A控制口地址
MOV AL, 05H ;使PC2=1的控制字
OUT DX, AL ;送到控制口
按位置位/复位命令产生的输出信号,可作为控制开关的通/断、继电路的吸合/释放、马达的启/停等操作的选通信号。
另外,在后面将要讨论的8255A的状态字中的中断允许位INTE的置位和复位,即允许8255A提出中断与禁止8255A提出中断,也是采用这个按位控制的命令字来实现的。