当前位置:
文档之家› 微机接口_第九章 8255A
微机接口_第九章 8255A
OUT DX , AL
PUSH AX
PUSH DX
PM: MOV DX , 0FFFCH
IN AL, DX AND AL, 04H JNZ PM MOV DX, 0FFF8H MOV AL, AH OUT DX, AL MOV DX, 0FFFEH MOV AL,0EH OUT DX, AL
;查询PC2 ;BUSY=0? ;忙,则等待,D2=1 表示忙 ;不忙,则输出数据
图11.4 8255A 置位/复位控制字格式
关于控制字要说明几点:
(1) 设置方式控制字时,A口、B口作为
整体设置,而C口要分成上、下两部分分别
设置。三个端口的工作方式由一个控制字规
定。
(2) C口按位置位/复位控制字不是送到C
口地址,而是送到控制寄存器地址;且一个
控制字只能使C口一位置位或复位。
(3) 方式控制字和按位置位/复位控制字均
写入同一个控制寄存器地址,二者通过最高
位D7来区别。D7=1为方式控制字,D7=0为按
位置位/复位控制字。
2. 工作方式
(1) 方式0 —— 基本输入/输出方式 方式0是一种基本输入输出工作方式,它
的24条I/O线可以全部都用作传送数据,不设
置应答信号线,常用于无条件传送,输出有锁 存,输入只有缓冲能力而无锁存功能。
方式0控制字具体格式如图11.5所示
图11.5 8255A工作方式0控制字格式
由控制字中D4D3D1D0 等4位的不同 取值,可定义方式0的16种工作方式的组 合,如表11.2所示。 方式0中,端口C被分成两个4位 端口,它们可被定义为输入或输出端 口,CPU与3个端口之间交换数据, 可直接由CPU执行IN和OUT指令来完 成。
本章内容 I/O接口概述 并行接口 —— 8255A
学习目的
掌握可编程并行接口芯片 8255A的连接与编程
概 述
微机系统的信息交换有并行通信 和串行通信两种方式。 并行通信是以微机的字长为传输单位; 适合于外部设备与微机之间进行近距离、 大量和快速的信息交换。
实现并行通信的接口称之为并 行接口。
不是对数据,而是对控制信号,或当端口A或 端口B为选通输入端口时的握手信号。
下图示出 8255A 方式 1 选通输入时的内部 结构图。
图11.6工作方式1输入控制字格式
(a)端口A方式1输入
(b)端口B方式1输入
图11.7方式1输入端口状态
STB:选通信号。由外设输入,低电平 有效。
IBF:输入缓冲器满信号 ,向外设输 出,高电平有效。
印机撤消忙信号,同时向主机送出一个响应信
号ACK。主机根据信号BUSY或信号ACK决定
是否输出下一个数据。
图11.12 方式0的打印机接口
本例中,CPU与8255A采用查询方式输 出数据。端口A设置为方式0,输出打印数据, 端口C的PC7产生负脉冲选通信号,PC2连接 打印机的BUSY信号查询其状态,PC0连接打 印机的ACK信号。 假设8255A的A、B、C口的I/O地址为 FFF8H、FFFAH和FFFCH,控制端口地址为 FFFEH。
INTE:中断允许信号 (INTE1和INTE2)。 高电平有效。
8255A中端口A工作在方式2时, 允许端口B工作于方式0或方式1,完
成输入/输出功能。4种组合状态及其
工作方式控制字格式如表11.3。
表11.3 方式2的组合状态与控制字格式
3. 8255A的工作方式初始化(初始化)
①根据8255A与CPU接口硬件电路图确 定8255A四个端口地址。 ②根据8255A的具体应用,确定8255A工 作方式控制字内容。 ③利用输出指令,将工作方式控制字送 至控制命令寄存器中。
(3) 数据总线缓冲器
三态双向8位缓冲器,是8255A与 CPU 之间的数据接口。传送输入数据、 输出数据、控制命令字。
(4)读/写控制部件 接收来自CPU地址总线信号和控制信号, 并发出命令到两个控制组 (A组和B组)。 CS:片选信号,接CPU高位地址的译码输出 RD:读信号,RD有效,CPU读的数据或状 态;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
10000000 10000001 10000010 10000011 10001000 10001001 10001010 10001011 10010000 10010001 10010010 10010011 10011000 10011001 10011010 10011011
读写控制部件、 A 组和 B 组控制部件、端口 A、B、C。
(1) 并行输入 / 输出端口A、B、C
端口A:包含一个8位数据输出锁存 器/缓冲器和一个8位数据输入锁存器,输 入输出数据均受到锁存。
端口B和C: 都包含一个8位数据输入缓 冲器和一个8位的数据输出锁存器/缓冲器, 输出数据能锁存,输入数据不锁存。 端口C:可分成两个4位端口,分别定义
表11.2 方式0的工作状态组合
A组
序号 控制字 D7,…,D0 端口A 端口C 高4位 (PC7~PC4) 输出 输出 输出 输出 输入 输入 输入 输入 输出 输出 输出 输出 输入 输入 输入 输入 端口B
B组
端口C 低4位 (PC3~PC0) 输出 输入 输出 输入 输出 输入 输出 输入 输出 输入 输出 输入 输出 输入 输出 输入
4. 8255A中PC口置位/复位操作
①根据8255A与CPU接口硬件电路确定
8255A四个端口的端口地址。
②根据对PC口具体哪一位操作,确定
8255A的按位置位/复位控制字内容。
③利用输出指令,将按位置位/复位控制
字送至8255A控制命令寄存器中。
11.2 8255A的应用实例
一、 8255A与打印机接口
为输入或输出端口,还可定义为控制、状
态端口,配合端口A和端口B工作。
(2) A组和B组控制部件
A组
A口:PA0~PA7
C口的高4位:PC4~PC7 B口:PB0~PB7 C口的低4位:PC0~PC3
B组
A组,B组的控制寄存器, 接收来自数据总线的控制字,
并根据控制字确定各端口的工
作状态和工作方式。
1、用方式0与打印机接口
目前打印机一般采用并行接口 Centronics标准,其主要信号与传送 时序如图11.12。打印机接收主机传送 数据的过程是这样的:
当主机准备好输出打印的一个数据时,通
过 8255A 把 数 据 送 给 打 印 机 接 口 的 数 据 引 脚
DATA0 ~DATA7 ,同时送出一个数据选通信号 STROBE 给打印机。打印机收到该信号后,把 数据锁存到内部缓冲区,同时在BUSY信号线上 发出忙信号。待打印机处理好输入数据时,打
8255A是Intel86系列微处理机的 配 套 并 行 接 口 芯 片 , 它 可 为 86 系 列 CPU与外部设备之间提供并行输入/输 出通道。
11.1 可编程并行接口芯片8255A
一、8255A的内部结构和引脚信号
1. 8255A内部结构
8255A 可 编 程 外 围 设 备 接 口 (Programmable Peripheral Interface, 简写 为PPI) ,其内部结构如图所示。
当A1A0=11时 选择控制端口
表11.1 8255A的读写操作控制
二 、 8255A的控制字及其工作方式
8255A共有两个控制字:即工作方 式控制字和对C口置位/复位控制字。 1. 控制字 (1)工作方式控制字: 控制字和各位的含义如图所示。
D7
D6 D5
D4 D3
D2 D1 D0
B组 端口C(PC3~PC0) 1=输入, 0=输出 端口B 1=输入,0=输出 方式选择 0=方式0, 1=方式1 A组 端口C(PC7~PC4) 1=输入, 0=输出 端口A 1=输入,0=输出 方式选择 00=端口A方式0, 01=端口 A方式1,1=端口A方式2 方式设置标志 1=有效
方式1输出端口A
PA7~0
方式1输出端口B
PB7~0
OBFA ACK A
PC7 INTEA PC6 PC3 PC4,5 WR
PC1
OBFB ACK B
INTEB
PC2
INTRA
PC0
INTRB
2
I/O
WR
(a)端口A方式1输出
(b)端口B方式1输出
图11.9 方式1输出端口状态
OBF:输出缓冲器满信号。向外设 输出,低电平有效。
通道C
PC7 外设接口
图11.2 8255A引脚定义
* PA7~PA0:A端口数据信号引脚 * PB7~PB0:B端口数据信号引脚
* PC7~PC0:C端口数据信号引脚 * D7~D0: 8255A的8位数据线
* A1~A0:
端口选择信号 选择端口A
当A1A0=00时
当A1A0=01时 选择端口B 当A1A0=10时 选择端口C
INTR:中断请求信号,高电平有效。
INTE:中断允许信号,它是通过端 口PC4(端口A)或PC2(端口B)的
位来编程的内部位。
② 方式1选通输出 当端口A或端口B为方式1输出时,各 指定PC的3条线作为8255A与外设及CPU之 间应答信号。下图为方式1选通输出操作的
内部结构图。
图11.8 方式1输出控制字格式
;初始化程序段 MOV DX , 0FFFEH MOV AL , 81H ; A口方式0输出, C口上半部输出, ;下半部输入 OUT DX , AL MOV AL , 0FH ; 输出工作方式字 ; C口的置位/复位控制字, ; 使PC7 = 1, 即置STROBE= 1 ;输出打印数据子程序, 打印数据 ; 在AH中