?第八章 可编程接口芯片及应用技术
第 七 章 可编程接口芯片及应用
随着大规模集成电路及实际的需要,现已设计并生
产出多种单片通用的外围接口电路。主要有两类:
并行接口芯片和串行接口芯片。
? 7.1 可编程并行接口芯片 Intel 8255A
? 7.2 可编程计数器 /定时器 8253
? 7.3 可编程串行输入 /输出接口芯片 8250A/8251A
?第八章 可编程接口芯片及应用技术
7.1 可编程并行接口芯片 Intel 8255A
可编程接口是指其功能方式可由微型机的指
令来设定, 通过执行不同的初始化程序, 使一个
可编程的接口芯片工作于不同的接口功能方式,
从而能与多种外部设备进行接口 。 Intel 8255A是
可编程并行 I/O接口芯片, 可为多种并行 I/O设备
提供接口 。
返回本章首页
?第八章 可编程接口芯片及应用技术
7.1.1 8255A的内部结构
8255A的内部结构框图, 40根引脚的分布图如下页
所示 。 8255A是 40根引脚, 双列直插式芯片 。 这些引
脚可分成,( 1) 与外设连接的引脚; ( 2) 与 CPU连
接的引脚 。
从功能上来分,8255A由以下几部分组成:
一, 数据端口 A,B,C
每个端口都是 8位并行数据口, 都可以选择作为输
入或输出 。
?端口 A,PA0~PA7,数据端口输入 /输出线使用, 输
出锁存器 /缓冲器, 输入锁存器;
?第八章 可编程接口芯片及应用技术
?图 8255A的结构框图





线
PB 7 ~ P B 0
B 组
B 口
(8 位 )
PC 3 ~ P C 0
B 组
C 口
(4 位 )
PC 7 ~ P C 4
PA 7 ~ P A 0
A 组
A 口
(8 位 )
A 组
C 口
(4 位 )
A 组
控制
B 组
控制
D
7
~D
0
数据
总线
缓冲器
读 / 写
控制
逻辑
RD
WR
A1
A0
R E S E T
CS
?第八章 可编程接口芯片及应用技术
?

82
55A





A

B

C

PA
0
PA
1
PA
2
PA
3
PA
4
PA
5
PA
6
PA
7
PB
0
PB
1
PB
2
PB
3
PB
4
PB
5
PB
6
PB
7
PC
0
PC
1
PC
2
PC
3
PC
4
PC
5
PC
6
PC
7
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
A
0
A
1
CS
RD
WR
R E S E T
Vcc
GND
3 4 4
3 3 3
3 2 2
3 1 1
3 0 4 0
2 9 3 9
2 8 3 8
2 7 3 7
1 8
8 2 5 5 A 1 9
9 2 0
8 2 1
6 2 2
5 2 3
3 6 2 4
3 5 2 5
1 4
1 5
1 6
1 7
1 3
2 6 1 2
7 1 1
1 0
?第八章 可编程接口芯片及应用技术
?端口 B,PB0~PB7,数据端口输入 /输出线使用,输出
锁存器 /缓冲器,输入缓冲器;
?端口 C,PC0~PC7,既可作数据端口,也可作控制端
口。分成 4位的两组,分别与 A口和 B口组合,以输出控
制信号 /输入状态信号。
二,A组和 B组控制电路
?A组:控制端口 A和端口 C的高 4位;
?B组:控制端口 B和端口 C的低 4位;
?接受读 /写控制逻辑来的命令;
?从数据总线缓冲器接受 CPU的输出命令字,决定工作
方式;
?对端口 C的每一位实现按位复位或置位。
?第八章 可编程接口芯片及应用技术
三、数据总线缓冲器
三态双向 8位缓冲器,用作 8255A与系统 DB的接口。
? CPU 控制字、数据 8255A; (CPU写入 )
? 8255A 状态信息、数据 CPU; (CPU读 )
四、读 /写控制逻辑
接受来自 CPU地址总线和控制总线的输入信号,然后
向 A组和 B组控制电路发送命令。
? CS:片选信号,低电平有效,有效时允许 8255A与
CPU进行数据传送;
? RD:读信号,低电平,CPU从 8255A读取数据或状态
信息。
输出指令 数据总线
输入指令 数据总线
?第八章 可编程接口芯片及应用技术
? WR:写信号,低电平,CPU将数据或控制字送至
8255A;
? RESET:复位信号,高电平,清除内部所有寄存
器的内容,并将各端口都置成输入方式;
? A1,A0,AB线最低两位,与 RD,WR,CS的组
合构成对 8259A的三个端口及控制字寄存器的寻址。
具体寻址组合如下所示:
?第八章 可编程接口芯片及应用技术
?表 6-3 8255A端口寻址组合表
?第八章 可编程接口芯片及应用技术
7.1.2 8255A的编程控制字
两个控制字:方式控制字, 端口 C按位置位 /复
位控制字 。
一, 工作方式控制字,用来设定通道的工作方式及数
据的传送方向的 。
?有三种工作方式:
( 1) 方式 0:基本输入, 输出;
( 2) 方式 1:选通输入, 输出;
( 3) 方式 2:选通双向传送方式 。
?由 CPU输出指令输出一个控制字到 8255A的控制寄存
器来选择 。
?第八章 可编程接口芯片及应用技术
? 端口 A可工作在方式 0,1,2;端口 B可工作
在方式 0,1;端口 C只能工作在方式 0。
? 端口 C分成两部分:高 4位随端口 A设置, 低 4
位随端口 B设置 。
? 8255A工作方式控制字格式
1
A组控制 B组控制
?第八章 可编程接口芯片及应用技术
二, 端口 C按位置位 /复位控制字,向控制寄存器写入
控制字, 而使端口 C的每一位置位或复位, 从而输
出一个开关量去控制外围设备 。
8255A C口按位置位 /复位控制
000,PC0 001,PC1
010,PC2 011,PC3
100,PC4 101,PC5
110,PC6 111,PC7
?第八章 可编程接口芯片及应用技术
例:端口 C的 PC7输出一个开关量
MOV AL,0FH
OUT 83H,AL ;置 1(输出高电平 )
MOV AL,0EH
OUT 83H,AL ;复位 (输出低电平 )
三、两个控制字的差别
工作方式控制字放在程序的开始部分;按位置位 /
复位控制字可放在初始化程序以后的任何地方 。
?第八章 可编程接口芯片及应用技术
7.1.3 8255A的三种工作方式
一, 方式 0:基本输入 /输出方式
三个端口都可由程序设置为输入或输出, 没有固定的
用于应答的联络信号 。 其特点如下;
?端口 A,B和端口 C的两个高, 低半字节分别可作为
输入或输出, 共有 16种不同的组合 。
?输出是锁存, 而输入不能锁存;
?不用联络线, 用于简单无条件传送数据;
?利用端口 C的按位置位 /复位字, 使端口 C的某些位
作为 A口, B口的控制信息和状态信息, 用于查询式
输入 /输出场合 。 适用于按状态驱动数据传送的输入 /
输出接口方式 。
?第八章 可编程接口芯片及应用技术
方式 0系统连接图
PB 7 ~P B 0
PA 7 ~P A 0 8 位开关
8 位 LED
指示灯
R E S E T 接系统
R E S E T 信号线 蜂鸣片
按钮
A 口
B 口
8255A
PC
0
PC
4
数据总线
D
7
~D
0
CS
?第八章 可编程接口芯片及应用技术
8255A方式 0下的输入输出组合
序号 D7 D6 D5 D4 D3 D2 D1 D0 十六进制 A口 C口高 4位 B口 C口低 4位
1 1 0 0 0 0 0 0 0 80H 出 出 出 出
2 1 0 0 0 0 0 0 1 81H 出 出 出 入
3 1 0 0 0 0 0 1 0 82H 出 出 入 出
4 1 0 0 0 0 0 1 1 83H 出 出 入 入
5 1 0 0 0 1 0 0 0 88H 出 入 入 入
6 1 0 0 0 1 0 0 1 89H 出 入 出 入
7 1 0 0 0 1 0 1 0 8AH 出 入 入 出
8 1 0 0 0 1 0 1 1 8BH 出 入 入 入
9 1 0 0 1 0 0 0 0 90H 入 出 出 出
10 1 0 0 1 0 0 0 1 91H 入 出 出 入
11 1 0 0 1 0 0 1 0 92H 入 出 入 出
12 1 0 0 1 0 0 1 1 93H 入 出 入 入
13 1 0 0 1 1 0 0 0 98H 入 入 出 出
14 1 0 0 1 1 0 0 1 99H 入 入 出 入
15 1 0 0 1 1 0 1 0 9AH 入 入 入 出
16 1 0 0 1 1 0 1 1 9BH 入 入 入 入
?第八章 可编程接口芯片及应用技术
二、方式 1:选通输入 /输出方式
方式 1的基本特点:
? 端口 A,B可作为输入 /输出,但须规定端口 C的某些
位作为控制或状态信息 (即使用联络信号 )。端口 C的
剩余两位可作为输入或输出 (PC6,PC7)。
? 用于与异步工作的外设连接,具有中断能力。
? 输入输出都锁存。
1、方式 1:选通输入
此时的接口结构图如下页所示。
方式控制字和 C口控制字如下页所示。
?第八章 可编程接口芯片及应用技术
( a ) A 通道方式 1 引脚配置 ( b ) B 通道方式 1 引脚配置
图 6 -1 4 8 2 5 5 A 方式 1 输入
RD
ST B
a
IBF
a
INT Ra
I/O
PC
4
PC
5
PC
3
PA
7
~PA
0
I N T E A
PC
6
,
7
ST B
b
INT R
b
I B Fb
RD
PC
2
PC
1
PC
0
PB
7
~PB
0
I N T E B
8255A方式 1输入
7
2
?第八章 可编程接口芯片及应用技术
? A口,B口方式 1选通输入方式控制字:
1 0 1 1 1 1 x
D7 D6 D5 D4 D3 D2 D1 D0
PC7,PC6,1:输入
0:输出
? C口方式 1选通输入状态字:
PC7 PC6 IBFA STBA INTRA STBB IBFB INTRB
两位 I/O
?第八章 可编程接口芯片及应用技术
其中各个控制信号的意义如下:
? STB(-A,-B):选通输入,低电平有效。外设提供
此信号,将输入数据送入数据锁存寄存器。
? IBF(-A,-B):输入缓冲器满信号,高电平。给外设
的回答信号。 IBF=1时,外设送来的数据已输入到
输入锁存器的状态信号,但还没有被 CPU取走,外
设暂停送新数据。 STB的下降沿置位,RD的上升沿
复位。
? INTR(-A,-B):中断请求信号,高电平。由 8255A
输出,向 CPU发中断请求,以将数据送 CPU。在
RD的下降沿复位 (清除 )。
?第八章 可编程接口芯片及应用技术
? INTE(-A,-B):中断允许信号,高电平。为 1:中
断允许,为 0:中断禁止。 INTEA由 PC4的置位 /复
位控制; INTEB由 PC2的置位 /复位控制。
? 输入过程:
( 1)与 8255A连接的设备发选通信号 STB以请求发送
数据;
( 2) 8255A在 STB的下降沿将输入数据锁存,同时
IBF=1,告诉外设送来的数据已收到,暂缓送数;
( 3)若 INTE=1(中断允许 ),则 STB的上升沿使
INTR=1,向 CPU发中断请求;
( 4) CPU响应中断,由输入指令发 RD信号,把数据
?第八章 可编程接口芯片及应用技术
送 CPU。 RD的下降沿使 INTR复位;
( 5) RD的上升沿使 IBF复位,数据输入过程结束。
并允许外设送下一个数据。此过程循环往复,完
成一批数据的输入。
? 其时序如下页图所示。
?第八章 可编程接口芯片及应用技术
图 6 -1 5 方式 1 输入时序
从外设输入
PA
7
~ PA
0
( PB
7
~ PB
0

STB
RD
IBF
I N T R
t PH
t SI
T
t SI B
t ST
t PS
t RIB
t RIT
?第八章 可编程接口芯片及应用技术
2、方式 1:选通输出
此时接口结构和控制字如下所示。
? A口,B口方式 1选通输出方式控制字:
1 0 1 0 1 0 x
D7 D6 D5 D4 D3 D2 D1 D0
PC5,PC4,1:输入
0:输出
? C口方式 1选通输出状态字:
OBFA ACKA INTRA ACKB OBFB INTRB
两位 I/O
?第八章 可编程接口芯片及应用技术
8255A方式 1输出
( a ) A 通道方式 1 引脚配置 ( b ) B 通道方式 1 引脚配置
O B Fa
ACKa
IN T R
a
I/O
WR
PC
7
PC
6
PC
3
PA
7
~P A
0
IN T E
A
PC
4,
PC
5
S T B b
IN T R b
ACKb
WR
PC
1
PC
2
PC
0
PB
7
~P B
0
IN T E
B
5 2
?第八章 可编程接口芯片及应用技术
其中各控制信号意义如下:
? OBF(-A,-B):输出缓冲器满信号,低电平。由
8255A送给外设的控制信号。 OBF=0表示 CPU输出
数据送到 8255A指定端口的输出缓冲寄存器中,外
设可以把数据取走。由输出指令的 WR信号上升沿
复位有效。
? ACK(-A,-B):外设响应信号,低电平。 ACK 表示
CPU输出给 8255A的数据已由外设取走。 ACK 使
OBF=1。
? INTE(-A,-B):中断允许信号。 INTEA由 PC6置位 /
复位控制; INTEB由 PC2置位 /复位控制。
?第八章 可编程接口芯片及应用技术
? INTR(-A,-B):中断请求信号,高电平。当外设已得到 CPU
输出的数据后,由 ACK,OBF和 INTE都高使 INTR=1,用来
作为外设向 CPU提出的中断请求,要求 CPU输出数据。
? 输出过程:
( 1) CPU接收中断请求,输出指令发出 WR将输出数据送 8255A
相应口锁存,并使 INTR=0;
( 2) CPU输出结束,则 WR 使 OBF=0,表示输出缓冲器满,外
设接受数据;
( 3)外设接受数据,且 ACK=0,ACK 将 OBF=1;
( 4) ACK 表示外设已收到数据,若此时 OBF,INTE均为 1,则
INTR=1;
( 5)输出结束,INTR=1向 CPU发中断请求,以输出下一个数据。
?第八章 可编程接口芯片及应用技术
8255A方式 1输出时序
OBF
WR
输出
INTR
ACK
tWOB
tWB
tAOB
tAK tAIT
tWIT
?第八章 可编程接口芯片及应用技术
三、方式 2:选通双向输入输出
? 基本特点:
( 1)只有端口 A可工作在双向方式:既能发送,也能
接收;
( 2)端口 A为双向输入 /输出口,端口 C的 PC3~PC7(5
位 )作为 A口的控制线和状态线,端口 B可工作在方
式 0或方式 1;
( 3)输入输出均锁存;
( 4)可用程序查询方式,也可用中断方式。
? 其接口结构图和方式、状态字如下页所示。
?第八章 可编程接口芯片及应用技术
82
55A


2



I NT Ra
RD
WR
O BFa
ACK a
PC
7
PC
6
P A
7
~ P A
0
INT E
B
I BFa
ST B a
I/O
PC
2 ~ 0
PC
4
PC
5
INT E
A
PC
3
3
?第八章 可编程接口芯片及应用技术
D2
D1
D0
OBF a I N T E a I B F a I N T E b I N T R a I N T E b I N T E b I / O
O B F b I B F b I / O
I N T R b I N T R b I / O
D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0
A 组 B 组
? A口方式 2双向方式控制字:
1 1 x x x I/O I/O I/O
D7 D6 D5 D4 D3 D2 D1 D0
B口方式
B口输入输出
PC2~PC0输入输出A口双向
?第八章 可编程接口芯片及应用技术
? 其各控制信号功能如下:
? OBFA:输出缓冲器满,低电平。对外设的一种选
通信号,表示 CPU已把数据送到端口 A。
? ACKA:外设响应信号,低电平。启动 A口三态输
出缓冲器送数据到外设 (ACKA=0); ACKA=1:高
阻态。
? INTEA:与输出缓冲器相关的中断允许信号,高电
平,由 PC6置位 /复位控制。
? STBA:选通信号,低电平。由外设送来的输入信号。
表示把数据送入端口的输入锁存器。
?第八章 可编程接口芯片及应用技术
? IBFA:输入缓冲器满,高电平。表示数据送 A口输
入缓冲器。
? INTEB:与输入缓冲器有关的中断允许信号,高电
平。由 PC2置位 /复位控制。
? INTRA:中断请求,高电平。在输入输出方式时,
用于向 CPU发中断请求。
? A口工作在方式 2时,B口可工作于方式 0或方式 1。
此时,C口主要用于控制 /状态信号的输入 /输出。
? 8255A工作在方式 2时,输入、输出的顺序是任意的。
输出是由 CPU执行输出指令,给出 I/O WR信号开
始;输入是由选通 STB有效开始的。
? 在输入或输出方式下,都可以采用中断方式工作。
?第八章 可编程接口芯片及应用技术
t
KDt
AD
外部总线
PA
7
~ PA
0
WR
RD
IN T R
OBF
ACK
STB
IBF
t
AOB
t
WOB
t
AK
t
ST
t
SIB
t
PS
t
PH
t
RIB
方式 2的输入输出时序
?第八章 可编程接口芯片及应用技术
方式 2应用接口电路图
系统总线
IR Q
0
IR Q
1
IR Q
2
IR Q
7
主机
IN T R
8259A
IN T
主机 8255
PC3 ( IN T R )
?第八章 可编程接口芯片及应用技术
四、状态字
8255A工作在方式 1或方式 2时,通过读 C口的状态,
可得知 A口,B口的状态。读出的状态字与设置的控
制字信号线相对应。
7.1.4 8255A的编程
一、寻址
? 根据前面的端口寻址,将 8255A工作方式,中断允
许标志等用初始化程序写入被操作的端口。
? 程序编写流程如下页所示。
?第八章 可编程接口芯片及应用技术
?





返回本节
主程序,中断服务程序,
发送数据初始化
发送字节首址→ SI
接收数据初始化
接收缓冲器首址→ DI
开中断
8255A 初始化
8259A 初始化
开始
等待接收中断



是输入中断?
禁止输入 / 输出中断
关系统中断

读入 8 2 5 5 A 状态字

是输出中断?
从 A 口输出一个数据

允许输入 / 输出中断
开系统中断
发 E O I 命令
中断返回
读入数据送接收数 据缓冲器
?第八章 可编程接口芯片及应用技术
二、编程举例
? 例 1:利用 8255A作为 CPU与打印机的接口。并行打印机接口
如下图所示。工作过程:先使 STB=1,当主机要往打印机输
出字符时,先查询打印机“忙”信号 BUSY。当 BUSY=0,通
过 8255A的端口 A向打印机输出一个字符。此时 STB=0,然后
使 STB=1,此负脉冲作为选通信号将要打印的字符选通到打
印机输入缓冲器。设 A口,B口,C口和控制寄存器端口地址
为,80H,81H,82H,83H。
PA7
PA0
PC6
PC2
8255A
打印机
STB
BUSY
?第八章 可编程接口芯片及应用技术
解:由连接图可见 A口工作在方式 0。 (查询输出方式 )
方式字,1 0 0 0 0 0(1) 0(1) 1,81H
C口位操作控制字,0 0 0 0 1 1 0 0, 0CH
0 0 0 0 1 1 0 1, 0DH
方式 0
输出
C口高 4
位输出
B口方
式 0或 1
B口输入输出
C口低 4位输入
三位不用
取 0或 1都
可以
PC6作选
通输出 PC6置 0取反后
得 1,使 STB=1
PC6置 1取反后
得 0,使 STB=0
?第八章 可编程接口芯片及应用技术
程序流程图
置方式 0字
置 STB=1
读端口 C送 AL
BUSY=1
输出数据
置 STB=0
置 STB=1
Y(忙 )
N(闲 )
?第八章 可编程接口芯片及应用技术程序如下:
MOV AL,81H
OUT 83H,AL
MOV AL,OCH
OUT 82H,AL
WAIT,IN AL,82H
AND AL,04H ; 00000100
JNZ WAIT
MOV AL,41H ; A的 ASCII码为 41H
OUT 80H,AL
MOV AL,0DH
OUT 82H,AL
DEC AL ; AL=0CH
OUT 82H,AL
?第八章 可编程接口芯片及应用技术
? 例 2:用方式 1,查询输出字符串编程见 P319,
例 7-4。(自学)
? 例 3:用 8255实现键盘接口。
见 P321,例 7-5。
?第八章 可编程接口芯片及应用技术
THANK YOU VERY MUCH !
?本节到此结束,
?谢谢您的光临!
返回本章首页结 束放映