并行接口芯片 8255A 应用设计

40
并并并并并并 8255A 并并并并 并并 并并并 Email [email protected]

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

Transcript of 并行接口芯片 8255A 应用设计

Page 1: 并行接口芯片 8255A 应用设计

并行接口芯片 8255A 应用设计教师:王晓甜Email : [email protected]

Page 2: 并行接口芯片 8255A 应用设计

[email protected]

Contents

8255A 简介1

8255A 的引脚及结构功能2

8255A 的控制字及工作方式3

8255A 与系统总线的连接4

8255A 的应用设计5

Page 3: 并行接口芯片 8255A 应用设计

[email protected]

8255A 学习重点

如何通过控制字的设置把内部逻辑部件协调起来,完成指定的功能如何把芯片的各个引脚于系统的输入输出总线连接起来

1.8255A 的结构和工作原理2.8255A 的工作方式3.8255A 的初始化编程及应用

应用设计中注意:

重点学习:

Page 4: 并行接口芯片 8255A 应用设计

[email protected]

8.1 8255A 简介

控制总线 CB

数据总线 DB

地址总线 AB系统总线形成CPU

I/O 设备

I/O 接口主存

系统总线 BUS

外设

主机

Page 5: 并行接口芯片 8255A 应用设计

[email protected]

CPU

并行

接口

外设 数据准备好 准备就绪

回执 输出响应

CPU

并行

接口

外设 数据准备好 准备就绪

回执

接收准备好

输入响应

(a) 并行接口的输入过程

(b) 并行接口的输出过程

8.1 8255A 简介 数据数据数据 数据

2

数据 数据数据 2

Page 6: 并行接口芯片 8255A 应用设计

[email protected]

8.1 8255A 简介8255A 是: Intel 8086/8088 系列的可编程外设接口电路 可以进行编程控制的通用并行输入 / 输出接口电路。 它是一片使用单一 +5V 电源的 40 脚双列直插式 DIP 封装的大规模集成电路。 8255A 的通用性强,使用灵活,通过它 CPU 可直接与外设相连接。 8255A 有 A 、 B 、 C 三个端口, 24 条 I/O 线。它可以通过编程的方法来设定的各种 I/O 功能。 由于它的功能强,又能方便地与各种 8/16 位微机系统相配,所以应用较为普遍。

Page 7: 并行接口芯片 8255A 应用设计

[email protected]

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 地 /

Page 8: 并行接口芯片 8255A 应用设计

[email protected]

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 控制寄存器

Page 9: 并行接口芯片 8255A 应用设计

[email protected]

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 :双向传送

Page 10: 并行接口芯片 8255A 应用设计

[email protected]

8.3 8255A 的工作方式三种基本工作方式: 方式 0 :基本的输入 / 输出;( A 、 B 、 C )方式 1 :有联络信号的输入 / 输出;( A 、B )方式 2 :双向传送( A )具体的工作方式由发送给控制寄存器的方式控制字决定

8255A 的控制字 工作方式控制字PC 口置位复位控制字

方式控制字: CPU 通过编程写控制字可以完成对A 、 B 、 C 口的方式控制和对 C 口的按位置零或置 1

Page 11: 并行接口芯片 8255A 应用设计

[email protected]

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 的控制字为,为写方式控制字

Page 12: 并行接口芯片 8255A 应用设计

[email protected]

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 。

Page 13: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 14: 并行接口芯片 8255A 应用设计

[email protected]

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 输入

Page 15: 并行接口芯片 8255A 应用设计

[email protected]

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

重点

Page 16: 并行接口芯片 8255A 应用设计

[email protected]

8.3 8255A 的工作方式方式 0 的举例8 段译码管控制

思考,设计 8255A 电路及程序实现从 0-8 的循环显示

Page 17: 并行接口芯片 8255A 应用设计

[email protected]

8.3 8255A 的工作方式 例 10.3 在 8088 最大方式系统中,有一片 8255A ,其端口地址为 20H 、 22H 、 24H 、 26H ,设计译码电路及其与系统总线的连接图 , 并编程实现使端口 A 的低 4 位产生如图所示的信号 ( 各个信号的节拍不必严格相等 ) 。

PA0

PA1

PA2PA3

PA0PA1PA2PA3

01010101

00110011

00001111

00000001

Page 18: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 19: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 20: 并行接口芯片 8255A 应用设计

[email protected]

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初始化及输入输出程序段。

Page 21: 并行接口芯片 8255A 应用设计

[email protected]

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 输入

Page 22: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 23: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 24: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 25: 并行接口芯片 8255A 应用设计

[email protected]

8.3 8255A 的工作方式 第一步:当外设来的输入数据出现之后,选通信号 STB 有效。 第二步:经过 tSIB 时间后,输入缓冲区满信号 IBF 有效,此信号可供 CPU 查询,这为 CPU 工作在查询方式下输入数据提供了条件。在使用中断请求的情况下, 8255 在选通信号结束以后,经过tSIT 时间,便会发出中断请求信号INTR ,这样为 CPU 工作在中断方式下输入数据提供了条件。 第三步:不管是用查询方式还是中断方式,当 8255 读入数据时,都会发出读信号 RD 。若工作在中断方式,当 RD 有效以后,经过 tRIT 时间,就将中断请求信号清除。 第四步: RD 信号结束之后,数据已经读到 CPU 的寄存器中,经过 tRIB 时间,输入缓冲区满信号 IBF变低。从而可以开始下一个数据输入过程。

Page 26: 并行接口芯片 8255A 应用设计

[email protected]

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 输出

Page 27: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 28: 并行接口芯片 8255A 应用设计

[email protected]

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 输出

Page 29: 并行接口芯片 8255A 应用设计

[email protected]

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后,开始下一轮数据输出

Page 30: 并行接口芯片 8255A 应用设计

[email protected]

第一步:在使用中断请求情况下, CPU响应中断以后, 便往 8255 输出数据,并发出写信号 WR 。把数据送给 8255 ,写信号WR 的上升沿一方面清除中断请求 INTR ,表示 CPU已经响应了中断; 第二步:另一方面, WR 使 OBF 有效,通知外设接收数据。 第三步:在 CPU 发出写信号后经过 tWB 时间,数据就出现在端口的输出缓冲器中。当外设接收数据后,便发出 ACK 信号。 ACK 信号一方面使 OBF 无效,表示数据已经取走,当前输出缓冲区为空; 第四步:另一方面,又使 INTR 有效,即向 CPU 发出中断请求,从而可以开始一个新的输出过程。

8.3 8255A 的工作方式

Page 31: 并行接口芯片 8255A 应用设计

[email protected]

EG. 在 8088 最大方式的扩充槽上 , 利用 8255A 和 8 位A/D变换器开发数据采集系统如图 10.16 所示。要求计算8255A占用的四个端口地址,并编写程序完成 N 点数据的采集工作。 为了完成一个字节的数据采集,需要给 A/D变换器产生 START正脉冲信号,当变换结束时,会产生 EOC信号,经单稳电路后,可以将 A/D变换器产生的数据锁存到 8255A 的端口 A ,因此, 8255A 的 A组为方式 1

Page 32: 并行接口芯片 8255A 应用设计

[email protected]

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 口数据

Page 33: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 34: 并行接口芯片 8255A 应用设计

[email protected]

8.3 8255A 的工作方式方式 0 :基本输入 / 输出方式

适用于无条件传送接口电路方式 1 :有联络信号的输入 / 输出方式

适用于查询和中断方式的接口电路方式 2 :有联络信号的双向传送方式

适用于双向传送数据的外设 适用于查询和中断方式的接口电路

Page 35: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 36: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 37: 并行接口芯片 8255A 应用设计

[email protected]

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

Page 38: 并行接口芯片 8255A 应用设计

[email protected]

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 的连接框图

Page 39: 并行接口芯片 8255A 应用设计

[email protected]

学习指导网站:http://course.cug.edu.cn/21cn/ 微机原理与应用 /site-map.htm

大作业: 稍后等课代表通知

Page 40: 并行接口芯片 8255A 应用设计

www.themegallery.com