文章目录
- 第一节 并行接口概述
- 第二节 可编程并行接口芯片8255A
- 一、8255A的基本功能
- 二、8255的内部结构和外部引脚
- 1. 内部结构
- 2. 外部引脚
- (1)与系统总线连接的信号
- (2)与外部设备的连接信号
- 三、8255A的工作方式
- 1. 方式0:简单的输入/输出方式
- 2. 方式1:选通输入/输出方式
- (1)方式1的输入
- (2)方式1的输出
- (3)方式2:双向选通I/O方式
- 四、8255A的控制字与初始化编程
- 1. 工作方式控制字:标识位为1
- 2. C口按位置/复位控制字:标识位为0
- 五、8255A应用举例
本章考试重点
可编程并行接口芯片8255A方式0的应用
第一节 并行接口概述
I/O与I/O设备间通信:并行接口、串行接口。
并行接口:传送数据单位为字或字节,需用多根数据线,各位同时传输,入打印机接口。
串行接口:传送数据单位为位,用一根数据线,一次传输一个位,如USB、键盘等。
并行接口特点:传输速率高、需多根数据线,适合近距离传送。
第二节 可编程并行接口芯片8255A
一、8255A的基本功能
1)2个独立的8位I/O(A口和B口)和两个独立的4位I/O(C口上半部和C口下半部)。作输入时由三态缓冲器功能,作输出时由数据锁存功能,A口双向传输。
2)3种工作方式。可采用无条件、查询、中断等数据传送方式完成CPU与外设间的数据交换
3)B口和C口有驱动能力,适合做输出端口。
4)C口还可作为固定的联络信号线。
二、8255的内部结构和外部引脚
1. 内部结构
数据总线缓冲器:双向3态8位缓冲器,实现CPU和端口的信息交换。
读/写控制模块:完成内部端口的选择和读写操作。
A组和B组控制模块:实质为同一个8位的控制寄存器。一些位被分配控制A组,一些被分配控制B组。
I/O端口:3个8位端口寄存器,A口、B口、C口。
8255A内部结构框图
数据总线缓冲器 8位双向3态缓冲器与CPU数据线直接相连,CPU写命令和数据,8255A向CPU回送数据和状态,都要通过这个缓冲器。
A组控制器用于控制A口和C口上半部分。B组用于控制B口和C口下半部分。
2. 外部引脚
2类:与系统总线连接的信号、与外部设备的连接信号
(1)与系统总线连接的信号
D0-D7:双向数据线,命令、状态、数据。
/CS:片选信号
A1和A0:寻址片内的4个端口地址
/RD和/WR:CPU执行IN指令使/RD有效,OUT指令/WR有效。
RESET:清除控制寄存器并将A\B\C端口置为输入方式,输出寄存器和状态寄存器被复位,并屏蔽中断请求,24条面向外设的信号线呈高阻态。直到用方式命令改变。
端口与操作选择表
00 A口,01B口,10C口
(2)与外部设备的连接信号
PA7-PA0, PB7-PB0,PC7-PC0:24根线,端口A、B、C的输入/输出线。
A、B口作为输入/输出数据口,8位一起行动,即使只读某1位,也要同时输入/输出8位。
C口的用途:
1)作为数据口。C口分成高4位和低4位,高4位与A口组成A组,低4位于B口组成B组,即使用到其中1位,也要4位一起输入/输出。
2)作为状态口。方式1和方式2下C口作为8255A的状态口。
3)作为专用联络信号线。方式1和方式2是一种应答方式,这种方式下C口大部分引脚被分配作为固定的信号联络线。
4)作按位控制用。C口8个引脚可单独1个引脚输出高低电平,此时不作为数据输出用。
三、8255A的工作方式
1. 方式0:简单的输入/输出方式
不需要应答式联络信号,即无条件传送。
提供两个8位口(A、B)和两个4位口(PC7-PC4,PC3-PC0)都可作为输入或输出,由简单的I/O指令进行读/写。
方式0单向传送,一次初始化只能设置在一个方向上传送数据。(要么输入,要么输出)
通常将A和B口作为数据口,将C口高4位或低4位作为输出口,输出控制信号,C口的另4位作为输入口,读入外设状态。
2. 方式1:选通输入/输出方式
单向传送,A口、B口均可工作在此方式,作为两个独立的8位I/O数据通道,C口需6位(分成两个3位)分别作为A和B口的应答联络线,其余2位可作为方式0的输入/输出。
(1)方式1的输入
方式1的输入组态
PA 作为输入,C口的PC3,4,5作为A口的联络信号线,分别是 /STB 选通信号,IBF输入缓冲器,INTR中断请求信号。
B口同理
C口的 PC6,PC7 可以工作在方式0的输入/输出
1)/STB选通输入信号:有效时把输入装置来的数据送入8255A输入缓冲器。
2)IBF输入缓冲器满信号:输出给外设的信号,作为/STB的回答信号。有效时表示外设数据已输至输入缓冲器,CPU还未取走数据,通知外设停止送数。CPU取走数据后,IBF复位,外设继续送数。它由/STB置位,由/RD的上升沿使其复位。
3)INTR中断请求信号:输出至CPU,当/STB、IBF、INTE均为高时被置高,由/RD下降沿清除。
4)INTE 中断允许信号:只有当INTE=1时,A口和B口才能因输入缓冲器满向CPU发中断申请信号。使A口和B口允许中断。PC4和PC2的复位控制字使INTEA或INTEB复位以禁止中断。
工作过程:
当外设准备好数据,就发出/STB选通信号,将数据通过A口或B口锁存到8255A的数据输入寄存器。选通信号变低后,8255A输出IBF,即输入缓冲器满的信号,阻止外设输入新的数据。然后CPU发出INTR中断请求信号,CPU若允许中断则响应中断,发出/RD信号,把数据读入CPU。/RD信号结束后使IBF变低,表示输入寄存器已空,通知外设可以输入新的数据。
采用查询法输入时,CPU先查询输入缓冲器是否满,若IBF为高,则CPU就可以从8255A读入数据。
采用中断传送时,先用C口置位控制字使相应端口允许中断,即使PC4或PC2置1。
(2)方式1的输出
PC6、7、3作为A口应答联络线,PC0-2作为B口联络线,PC4、5作为方式0使用
方式1输出组态
1)/OBF输出缓冲器满信号:8255A给外设的信号,其有效时表明CPU已把数据输出至指定端口,外设可以从8255A取数。输出指令产生的/WR上升沿使其有效,/ACK信号使其恢复为高。
2)/ACK外设响应信号:对/OBF的响应信号,表示外设已取走数据。
3)INTR中断请求信号:当外设已经取走数据,8255A向CPU发出中断请求,要求CPU输出新的数据。
4)INTE中断允许信号:由PC6和PC2置位/复位控制。
(3)方式2:双向选通I/O方式
仅A口工作在此方式,方式1输入和输出方式的组合。
四、8255A的控制字与初始化编程
2个:工作方式控制字、C口按位置/复位控制字。
两个控制字都写入控制寄存器,由标识位区分。
1. 工作方式控制字:标识位为1
C口除用于固定的应答联络线外的所有信号线:方式0
【例题】
某系统要求使用8255A的A口工作于方式1作为输入,B口工作于方式0作为输出,C口上半部分输入,下半部分输出。8255A端口地址为60H-63H。给出8255A的初始化程序。
【答案】控制字10111000B=0B8H
MOV AL,0B8H
OUT 63H,AL
2. C口按位置/复位控制字:标识位为0
功能1:输出外设的启动或停止信号。
功能2:设置方式1和方式2的中断允许,不影响引脚状态。
【例题】
某系统要求使用8255A的A口工作于方式1作为输入,使用中断传送方式。8255A端口地址为60H-63H。给出是能8255A中断的程序段。
【答案】
MOV AL,00001001H
OUT 63H,AL
【解析】
8255A方式1的输入,用对PC4的置位控制字使INTEA置1,使得A口允许中断。
PC4 对应 100
五、8255A应用举例
【例】假设利用8255A的A口于打印机相连,将内存缓冲区BUFF种的字符打印输出。打印机时序和硬件连接见下图。设8255A的工作频率与CPU的工作频率相当。打印机接口要求在/STB有效时,才能接收数据,而BUSY有效,则表示打印机忙,不能接受数据。写出相关程序。
8255A与打印机
【答案】
.DATA
BUFF DB 'HELLO,WORLD!',13,10,'$'
PORTA EQU 60H
PORTB EQU 61H
PORTC EQU 62H
PORTCN EQU 63H
.CODE
START: MOV AX,@DATAMOV DS,AXMOV SI,OFFSET BUFFMOV AL,88H ; 8255A初始化,A口方式0输出OUT PORTCN,AL ; C口上半部输入,下半部输出MOV AL,01H ; 置位PC0,/STB无效OUT PORTCN,AL ; C口按位置/复位控制字
WAIT: IN AL,PORTC ; 读打印机状态,若忙则等待TEST AL,80HJNZ WAITMOV AL,[SI]CMPL AL,'$'JZ PRINT_OVEROUT PORTA,ALMOV AL,00H ;产生/STB有效信号,打印机接收数据开始打印OUT PORTCN,ALMOV AL,01H ;置位PC0, /STB无效OUT PORTCN,ALINC SIJMP WAIT
PRINT_OVER: MOV AH,4CHINT 21HEND START
C口按位置/复位控制字产生打印机的启停信号。
方式0的应用