Upload
mateja
View
114
Download
2
Embed Size (px)
DESCRIPTION
并行接口芯片 8255A 应用设计. 教师:王晓甜 Email : [email protected]. 1. 2. 3. 4. 5. 8255A 简介. 8255A 的应用设计. 8255 A 的引脚及结构功能. 8255 A 的控制字及工作方式. 8255 A 与系统总线的连接. Contents. 8255 A 学习重点. 如何通过控制字的设置把内部逻辑部件协调起来,完成指定的功能 如何把芯片的各个引脚于系统的输入输出总线连接起来. 重点学习:. 8255 A 的结构和工作原理 8255 A 的工作方式 - PowerPoint PPT Presentation
Citation preview
并行接口芯片 8255A 应用设计教师:王晓甜Email : [email protected]
8255A 学习重点
如何通过控制字的设置把内部逻辑部件协调起来,完成指定的功能如何把芯片的各个引脚于系统的输入输出总线连接起来
1.8255A 的结构和工作原理2.8255A 的工作方式3.8255A 的初始化编程及应用
应用设计中注意:
重点学习:
CPU
并行
接口
外设 数据准备好 准备就绪
回执 输出响应
CPU
并行
接口
外设 数据准备好 准备就绪
回执
接收准备好
输入响应
(a) 并行接口的输入过程
(b) 并行接口的输出过程
8.1 8255A 简介 数据数据数据 数据
2
数据 数据数据 2
8.1 8255A 简介8255A 是: Intel 8086/8088 系列的可编程外设接口电路 可以进行编程控制的通用并行输入 / 输出接口电路。 它是一片使用单一 +5V 电源的 40 脚双列直插式 DIP 封装的大规模集成电路。 8255A 的通用性强,使用灵活,通过它 CPU 可直接与外设相连接。 8255A 有 A 、 B 、 C 三个端口, 24 条 I/O 线。它可以通过编程的方法来设定的各种 I/O 功能。 由于它的功能强,又能方便地与各种 8/16 位微机系统相配,所以应用较为普遍。
8.2 8255A 的引脚功能
70 ~ DD
CS
RD
WR
10 A,A
70 PA~PA
70 PB~PB
70 PC~PC
引脚名 功 能 连接去向数据总线(双向) CPU
RESET 复位输入 CPU
片选信号 译码电路读信号 CPU
写信号 CPU
端口地址 CPU
端口 A 外设端口 B 外设端口 C 外设
Vcc 电源( +5V ) /
GND 地 /
8.2 8255A 的结构功能
CPU 外设 1
外设 2
控制寄存器
A组
端口A
高4位 低4位
端口C
端口BB组
D7~D0
RESETRDWR
CS
A1
A0
VccGND
PA7~PA0
PC7~PC4
PB7~PB0
PC3~PC0
A组
B组
8 位
8 位
+5V
PA 口和 PB 口:双向数据输入输出端口PC 口:双向数据输入输出端口 或 控制 / 状态端口
CPU 与外设之间的握手信号A1A0
00 端口 A PA 01 端口 B PB 10 端口 C PC 11 控制寄存器
8.2 8255A 的结构功能控制寄存器
A组
端口A
高4位 低4位
端口C
端口BB组
D7~D0
RESETRDWR
CS
A1
A0
VccGND
PA7~PA0
PC7~PC4
PB7~PB0
PC3~PC0
A组
B组
8 位
8 位
+5V
三个 8 位端口: PA , PB 和 PC被分为两组 12 位端口 A 组和 B 组
A 组 PA ( PA7~PA0 )PCA ( PC7~PC4 )
B 组 PB ( PA7~PA0 )PCB ( PC3~PC0 )
工作方式 0 , 1, 2
工作方式 0 , 1工作方式 0 :基本输入或输出工作方式 1 :有联络信号的输入或输出工作方式 2 :双向传送
8.3 8255A 的工作方式三种基本工作方式: 方式 0 :基本的输入 / 输出;( A 、 B 、 C )方式 1 :有联络信号的输入 / 输出;( A 、B )方式 2 :双向传送( A )具体的工作方式由发送给控制寄存器的方式控制字决定
8255A 的控制字 工作方式控制字PC 口置位复位控制字
方式控制字: CPU 通过编程写控制字可以完成对A 、 B 、 C 口的方式控制和对 C 口的按位置零或置 1
8.3 8255A 的控制字
D 7£½1 D 6 D 5 D 4 D 3 D 2 D 1 D 0
C 4端口 低 位的方向1 0:输入 :输出
B端口 的方向
B组的工作方式0 0 1 1:方式 :方式
A组工作方式00 0:方式01 1:方式1× 2:方式
A端口 的方向
C 4端口 高 位的方向注意:1.D7 = 1 是方式控制字的标志位2. 所有的方向控制: 0 ,输出( Out ); 1 ,输入( In )
向方式控制寄存器发送一个 D7=1 的控制字为,为写方式控制字
8.3 8255A 的控制字向方式控制寄存器发送一个 D7=0 的控制字为,为写置位控制字
D 7£½0 X X X D 3 D 2 D 1 D 0
0:清零1 1:置
C寻址端口 中的某一位
端口 C 的数位常用作控制或应答信号,在基于控制的应用中,经常希望在某一位上产生一个 TTL 电平的控制信号,利用端口 C 的这个特点,只需要用简单的程序就能形成这样的信号,从而简化了编程。 通过对 8255A 的控制口写入置位 / 复位控制字,可使端口 C 的任意一个引脚的输出单独置 1 或清 0 。
EG : 8255A 的地址范围为 380H~383H ,编写程序段,实现将 PC7 置 1 ,将 PC3 置 0
MOV DX, 383H ;
MOV AL, 00001111B ;PC7 置 1
OUT DX, AL
MOV AL, 00000110B ;PC3 清 0
OUT DX,AL
8.3 8255A 的工作方式方式 0---- 基本输入输出(无条件工作方式)
不需要应答信号的简单输入输出场合 硬件设计简单 程序直接控制输入输出 常用于 同步式传送和查询式传送两种场合1.A 口与 B 口的数据传送方向独立设置2.PCA 和 PCB 的数据传送方向独立设置
D 7£½1 D 6 D 5 D 4 D 3 D 2 D 1 D 0
C 4端口 低 位的方向1 0:输入 :输出
B端口 的方向
B组的工作方式0 0 1 1:方式 :方式
A组工作方式00 0:方式01 1:方式1× 2:方式
A端口 的方向
C 4端口 高 位的方向
写 8255A 的控制字: 93H 分析其工作方式:10010011BA 口:方式 0 输入PCA :方式 0 输出B 口: 方式 0 输入PCB :方式 0 输入
8.3 8255A 的工作方式EG ,方式 0 工作应用举例 在 8086 最小方式系统中,利用 8255A 某端口输入 8 位开关量,并通过另一个端送出,以发光二极管指示数据,灯亮表示数据“ 1” ,灯灭表示数据“ 0” 。 8255A 的端口地址为 80H ~ 87H 中的奇地址,设计系统总线与 8255A 的连接电路,并编程实现。
8086
CPU
最小
方式
系统
总线
PA7 PA0~
PC7 PC4~
PC3 PC0~
PB7 PB0~
D7 D0~
A1A0
CS
WRRD
A2A1
WRRD
…
开关量输入
……
+5V
D15 D8~
A3
A15A14A13
A11A12
M/ I O
A8A6A5A4
A10oA9oA7
BHE
编程:1. 写初始化程序2. 写功能实现程序
读 PA 口: IN AL,81H写 PB 口 :OUT 83H,AL
MOV AL, 10010000BOUT 87H, ALIN AL, 81HNOT ALOUT 83H, AL
重点
8.3 8255A 的工作方式 例 10.3 在 8088 最大方式系统中,有一片 8255A ,其端口地址为 20H 、 22H 、 24H 、 26H ,设计译码电路及其与系统总线的连接图 , 并编程实现使端口 A 的低 4 位产生如图所示的信号 ( 各个信号的节拍不必严格相等 ) 。
PA0
PA1
PA2PA3
PA0PA1PA2PA3
01010101
00110011
00001111
00000001
8088
CPU
最大
方式
系统
总线
D7 D0~
I nt el8255A
PA 7 PA 0~
PC 7 PC 4~
PC 3 PC 0~
PB 7 PB 0~
D7 D0~
A1A0
WRRD
A2A1
I OWI OR
CS
A3
A15A14A13A11A12
A8A6
A9
A4
A10 oA5
A7
A0
MOV DX, 26H ;设定 8255A 的工作方式 MOV AL, 1000 0000B OUT DX, AL MOV DX, 20H ;产生指定的信号 REP1: XOR AL, AL OUT DX, AL MOV CX, 6 REP2: INC AL
OUT DX, AL LOOP REP2 ADD AL, 9H;(1001B)
OUT DX, AL JMP REP1
0000 00000000 00010000 00100000 00110000 01000000 01010000 0110
0000 1111
EG3 :在 8088 最大方式系统中,由一片 8255A 构成输入输出接口,端口地址为 240H ~ 243H ,外设准备好的8 位数据已送入 8255A 的某端口,要求将这一数据的低4 位取反(高 4 不变)后,从另一端口送出。要求:
MOV DX, 243H ;设定 8255A 的工作方式MOV AL, 10110000BOUT DX, ALMOV DX, 240H ;从端口 A 读数据IN AL, DXXOR AL, 0FH ;低 4 位取反,高 4 不变 MOV DX, 242H ;从端口 B 送出OUT DX, AL
( 1 )说明各端口的工作方式;( 2 )编写 8255初始化及输入输出程序段。
8.3 8255A 的工作方式方式 1---- 有联络信号的输入输出(应答式工作)
PA 口:数据输入或输出 PB 口:数据输入或输出 PC 口: 做联络信号线A 口: PC4 , PC5 用作与外设的联络, PC3 用作与 CPU 的连接 INTR
B 口: PC2 , PC1 用作与外设的联络, PC0 用作与 CPU 的连接 INTR
IBF
STB
INTR
CPU 8255 外设 STB :选通输入信号,外设将数据准备好,准备发给 8255IBF : 缓冲区满信号,数据已经给了 8255A ,等待 CPU 来取,高电平有效时,外设不能发新的数据来INTR : 8255 发向 CPU 的中断请求信号8255 数据准备好,通知 CPU 来读数据
方式 1 在输入时接口连接示意图
方式 1 输入
8.3 8255A 的工作方式 A 口方式 1 输入 INTE
A
PA0 ~ PA7
PC4
PC5
PC3
STB
IBF
INTR
I / OPC6 PC7
ORD
输入选通信号,由外设送往 8255A 。输入缓冲器满信号,是 8255 发出的状态信号,供 CPU 查询
中断请求信号,只有当STB 、 IBF 、 INTE 三者都高时, INTR才能被置为高电平中断允许信号。这是一个控制
8255A 是否能向 CPU 发中断请求的信号,它没有外部引出脚。是通过软件设置的。
INTEB
PB0 ~ PB7
PC2
PC1
PC0 INTRBORD
STB
IBF
8.3 8255A 的工作方式
A 口做方式 1 输入
1. 外设准备好数据,向 PC4 发送 STB 低电平数据选通信号,表示数据准备好;2.8255A 接到 STB 低电平,将数据读入 PA口3. 8255A 向外设发送 IBF ( PC5 )高电平表示数据接收好,端口缓冲区满,并将 STB撤销(变成高电平); IBF 信号:告诉外设暂时不能再送新数据来;在程序查询方式下,作为 CPU查询的信号4. 在中断方式下, IBF 和 STB都为高电平时, PC3 向 CPU 发出 INTR 信号5. CPU 接到 INTR后,利用 RD 将数据读回内部寄存器6. 将 IBF撤销(低电平)准备进入下一轮传送
IBF
STB
INTR
CPU 8255 外设PC4
PC5PC3
8.3 8255A 的工作方式
B 口做方式 1 输入
1. 外设准备好数据,向 PC2 发送 STB 低电平数据选通信号,表示数据准备好;2.8255A 接到 STB 低电平,将数据读入 PB口3. 8255A 向外设发送 IBF ( PC1 )高电平表示数据接收好,端口缓冲区满,并将 STB撤销(变成高电平); IBF 信号:告诉外设暂时不能再送新数据来;在程序查询方式下,作为 CPU查询的信号4. 在中断方式下, IBF 和 STB都为高电平时, PC0 向 CPU 发出 INTR 信号5. CPU 接到 INTR后,利用 RD 将数据读回内部寄存器6. 将 IBF撤销(低电平) 准备进入下一轮传送
IBF
STB
INTR
CPU 8255 外设PC2
PC1PC0
8.3 8255A 的工作方式 第一步:当外设来的输入数据出现之后,选通信号 STB 有效。 第二步:经过 tSIB 时间后,输入缓冲区满信号 IBF 有效,此信号可供 CPU 查询,这为 CPU 工作在查询方式下输入数据提供了条件。在使用中断请求的情况下, 8255 在选通信号结束以后,经过tSIT 时间,便会发出中断请求信号INTR ,这样为 CPU 工作在中断方式下输入数据提供了条件。 第三步:不管是用查询方式还是中断方式,当 8255 读入数据时,都会发出读信号 RD 。若工作在中断方式,当 RD 有效以后,经过 tRIT 时间,就将中断请求信号清除。 第四步: RD 信号结束之后,数据已经读到 CPU 的寄存器中,经过 tRIB 时间,输入缓冲区满信号 IBF变低。从而可以开始下一个数据输入过程。
OBF
ACK
INTR
CPU 8255 外设
8.3 8255A 的工作方式
A 口: PC7 , PC6 用作与外设的联络, PC3 用作与 CPU 的连接 INTRB 口: PC2 , PC1 用作与外设的联络, PC0 用作与 CPU 的连接 INTR
OBF :输出缓冲器满数据已经由 CPU 写到 8255 ,等待外设来取ACK : 外设发给 8255 的回执信号外设已经将数据取走INTR : 8255 发向 CPU 的中断请求信号8255 发给 CPU 的准备就绪信号,CPU 可以再次发送数据方式 1 在输入时接口连接示意图
方式 1 输出
8.3 8255A 的工作方式
A 口方式 1 输出INTE
A
PA0 ~ PA7
PC6
PC7
PC3
PC4 PC5
ACK
OBF
INTR
I / O
OWR
外设的回答信号,由外设送给8255A
输出缓冲器满信号中断请求信号
中断允许信号。在中断是允许的情况下,当输出设备已受到 CPU 输出的数据之后,该信号变高,可用于向 CPU提出中断请求,要求CPU再输出一个数据给外设。
INTEA
PA0 ~ PA7
PC2
PC1
PC0
ACK
OBF
INTROWR
8.3 8255A 的工作方式
OBF
ACK
INTR
CPU8255 外设
PC7
PC6
PC3
WR
1.CPU 在写周期里( WR 有效)将数据写入8255 数据端口;2.8255A 发出 OBF 信号( PC7 低电平)给外设,通知外设来取数据;3. 外设将数据取走之后,反馈一个 ACK( PC6持续一段时间的低电平)信号给8255A ,表示数据已取走;4.撤销 OBF ( PC7 电平变高)OBF信号:低电平告诉外设来取数据;在程序查询方式下,高电平作为 CPU查询的信号4. 在中断方式下, OBF 和 ACK都为高电平时, PC3 向 CPU 发出 INTR 信号5. CPU 接到 INTR后,开始下一轮数据输出
A 口做方式 1 输出
OBF
ACK
INTR
CPU8255 外设
PC1
PC2
PC0
WR
B 口做方式 1 输出
1.CPU 在写周期里( WR 有效)将数据写入8255 数据端口;2.8255A 发出 OBF 信号( PC1 低电平)给外设,通知外设来取数据;3. 外设将数据取走之后,反馈一个 ACK( PC2持续一段时间的低电平)信号给8255A ,表示数据已取走;4.撤销 OBF ( PC1 电平变高)OBF信号:低电平告诉外设来取数据;在程序查询方式下,高电平作为 CPU查询的信号4. 在中断方式下, OBF 和 ACK都为高电平时, PC0 向 CPU 发出 INTR 信号5. CPU 接到 INTR后,开始下一轮数据输出
第一步:在使用中断请求情况下, CPU响应中断以后, 便往 8255 输出数据,并发出写信号 WR 。把数据送给 8255 ,写信号WR 的上升沿一方面清除中断请求 INTR ,表示 CPU已经响应了中断; 第二步:另一方面, WR 使 OBF 有效,通知外设接收数据。 第三步:在 CPU 发出写信号后经过 tWB 时间,数据就出现在端口的输出缓冲器中。当外设接收数据后,便发出 ACK 信号。 ACK 信号一方面使 OBF 无效,表示数据已经取走,当前输出缓冲区为空; 第四步:另一方面,又使 INTR 有效,即向 CPU 发出中断请求,从而可以开始一个新的输出过程。
8.3 8255A 的工作方式
EG. 在 8088 最大方式的扩充槽上 , 利用 8255A 和 8 位A/D变换器开发数据采集系统如图 10.16 所示。要求计算8255A占用的四个端口地址,并编写程序完成 N 点数据的采集工作。 为了完成一个字节的数据采集,需要给 A/D变换器产生 START正脉冲信号,当变换结束时,会产生 EOC信号,经单稳电路后,可以将 A/D变换器产生的数据锁存到 8255A 的端口 A ,因此, 8255A 的 A组为方式 1
P8255A=81D1H P8255A=81D3H P8255A=81D5H P8255A=81D7H MOV DX , P8255D MOV AL , 1011 0000B OUT DX , AL LEA SI, BUF MOV CX , N
L1 : MOV DX , P8255D MOV AL , 0000 1110B OUT DX , AL OR AL , 01H OUT DX , AL AND AL , 0FEH OUT DX , AL MOV DX, P8255C L2 : IN AL , DX TEST AL, 20H JZ L2 MOV DX , P8255A IN AL , DX MOV [SI] , AL INC SI LOOP L1
生成 START 信号
查询 PC5
读 A 口数据
8.3 8255A 的工作方式方式 2---- 有联络信号的双向数据收发
方式 2 将方式 1 的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据。适用于双向传送数据的外设。 只有端口 A 可以工作于方式 2 ,需要利用端口 C 的 5 个信号线,其作用与方式 1 相同。 PC4 : STB PC5 : IBF PC6 : ACK PC7 : OBF PC3 : INTR
B 口及 C 口的 PC2- PC0 可正常工作于方式 0 或方式 1
2 A方式 (端口 )
PA7 PA~ 0 8
PC2 PC~ 03
PC3
8
I NTRA
PC7
PC6
OBFA
ACKA
PC4
PC5
STBA
I BFA
INTE1
INTE2
RD I / OWR
方式控制字
D7 D6 D5 D4 D3 D2 D1 D01 1 X X X X X X
8.3 8255A 的工作方式方式 0 :基本输入 / 输出方式
适用于无条件传送接口电路方式 1 :有联络信号的输入 / 输出方式
适用于查询和中断方式的接口电路方式 2 :有联络信号的双向传送方式
适用于双向传送数据的外设 适用于查询和中断方式的接口电路
8.3 8255A 的工作方式读取端口 C 状态
OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB
A组 B组
1方式 :输出
I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB
A组 B组
1方式 :输入
OBFA INTE1 IBFA INTE2 INTRA X X X
A组 B组
2方式
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
8.4 8255A 与总线的连接8086 最小方式系统总线与 8255 的连接图
I nt el8255A
8086
CPU
最小
方式
系统
总线
PA 7 PA 0~
PC 7 PC 4~
PC 3 PC 0~PB 7 PB 0~
D7 D0~
A1A0
CS
WRRD
译码电路
D7 D0~
A2A1
WRRD
M/ I OA15
A3A0
……
=0
=0
8.4 8255A 与总线的连接8086 最大方式系统总线与 8255 的连接图
I nt el8255A
8086
CPU
最大
方式
系统
总线
PA 7 PA 0~
PC 7 PC 4~
PC 3 PC 0~PB 7 PB 0~
D7 D0~
A1A0
CS
WRRD
译码电路
D7 D0~
A2A1
I OWI OR
A15
A3A0
……=0
8.4 8255A 与总线的连接
I nt el8255A
I BM
PC机
系统
总线
PA 7 PA 0~
PC 7 PC 4~
PC 3 PC 0~PB 7 PB 0~
D7 D0~
A1A0
CS
WRRD
译码电路
D7 D0~
A2A1
I OWI OR
A15
A3A0
……=0
AEN =0
IBM PC 机系统总线与 8255A 的连接框图
www.themegallery.com