第九章 可编程接口与应用 —— 并行通信和并行接口 8255A

52
1 第第第 第第第第第第第第 ——第第第第第第第第第 8255A 第第 第第

description

第九章 可编程接口与应用 —— 并行通信和并行接口 8255A. 主讲:刘英. 9.1 :并行通信和并行接口 8255A. 串行通信和并行通信 可编程并行接口芯片 8255A. 9.1 :并行通信和并行接口 8255A—— 串行通信和并行通信. 源. 目的. 源. 目的. 0 1 1 0 1 0 1 0. 两种数据通信方式: 串行传送和并行传送 。 并行传送: 数据在多条并行1位宽的传输线上同时由源传送到目的 。 以 1 字节的数据为例,在并行传送中,1字节的数据通过8条并行传输线同时由源传送到目的。 - PowerPoint PPT Presentation

Transcript of 第九章 可编程接口与应用 —— 并行通信和并行接口 8255A

Page 1: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

1

第九章 可编程接口与应用 ——并行通信和并行接口 8255A

主讲:刘英

Page 2: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

2

9.1 :并行通信和并行接口 8255A

1. 串行通信和并行通信2. 可编程并行接口芯片 8255A

Page 3: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

3

9.1 :并行通信和并行接口 8255A—— 串行通信和并行通信

两种数据通信方式:串行传送和并行传送。 并行传送:数据在多条并行 1 位宽的传输线上同时由源传

送到目的。以 1 字节的数据为例,在并行传送中, 1 字节的数据通过 8 条并行传输线同时由源传送到目的。

串行传送:数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送。以 1 字节为例,在串行传送中, 1 字节的数据要通过一条传输 线分 8 次由低位到高位按顺序一位一位地传送。

源 目的T80 1 1 0 1 0 1 0 源

01101010

目的

011010100D

7D

T

Page 4: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

4

9.1 :并行通信和并行接口 8255A—— 串行通信和并行通信

Page 5: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

5

9.1 :并行通信和并行接口 8255A—— 串行通信和并行通信

串行通信和并行通信比较 距离:并行——近距离传送(通常小于 30 米)

串行——远距离传送(几米 ~ 数千公里) 速度:二者的传送速率与距离成反比,但在短距离内并行

快得多。 设备费用:随着大规模和超大规模集成电路的发展、逻辑

器件价格趋低,而通信线路费用趋高,因此对远距离通信而言,串行通信的费用显然会低得多。另一方面串行通信还可利用现有的电话网络来实现远程通信,降低了通信费用。

Page 6: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

6

9.1 :并行通信和并行接口 8255A

1. 串行通信和并行通信2. 可编程并行接口芯片 8255A

Page 7: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

7

9.1 :并行通信和并行接口 8255A——8255A

概述 Intel8255A 是一种通用的可编程序并行 I/O 接口芯片,

又称“可编程外设接口芯片”,是为 Intel8080/8085 系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A, CPU 可直接同外设相连接,是应用最广的并行I/O 接口芯片。

含 3 个独立的 8 位并行输入 / 输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向 ( 入 / 出 / 双向 ) 。

Page 8: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

8

9.1 :并行通信和并行接口 8255A——8255A

8255A 的内部结构

A 组控制

数据总线缓冲器

读 / 写

控制逻辑

B 组控制

A 组A 口

( 8 位)

A 组C 口高位( 4 位)

B 组C 口低位( 4 位)

B 组B 口

( 8 位)

D0~D7

RDRDA1A0

RESETRD

PA0~PA7

PC4~PC7

PC0~PC3

PB0~PB7

Page 9: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

9

9.1 :并行通信和并行接口 8255A——8255A

8255A 的内部结构1. 数据总线缓冲器:三态 8 位双向缓冲器,与系统数据总线连接的

缓冲部件;传送数据、控制字、状态字的通道。2. 3 个 8 位数据端口 (PA、 PB、 PC) :通常 PA 口与 PB 口用作

输入输出的数据端口, PC 口用作数据传输或提供联络线的端口。在方式字的控制下, PC 口可以分成两个 4 位的端口,其中 PC7~ PC4 同端口 A 配合使用, PC3~ PC0 同端口 B 配合使用 。

3. A 组、 B 组控制电路:这两组控制电路根据 CPU 发出的方式选择控制字来控制 8255A 的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。 A 组控制电路控制 PA口和 PC 口高 4 位, B 组控制电路控制 PB 口和 PC 口低 4 位。

4. 读 / 写控制逻辑:用来管理数据、控制字和状态字的传送,接收系统总线发来的有关信号,并向 A、 B 两组控制部件发送命令。

Page 10: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

10

9.1 :并行通信和并行接口 8255A——8255A

8255A 的引脚功能DIP 封装,共 40 个引脚。1. 连接系统总线的主要引脚D0~D7 :数据线,双向,连 CPU 数据总线;RESET :复位输入,接系统总线的 RESET ; CS* :片选控制输入,接译码器;RD* :读命令输入,接 CPU的 RD*或 IOR* ;WR* :写命令输入,接 CPU的WR*或 IOW* ;A0, A1 :片内端口地址输入,可选 4 个片内

端口。接 AB 的任 2 位。

Page 11: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

11

9.1 :并行通信和并行接口 8255A——8255A

8255A 的引脚功能A1、 A0 端口选择情况,见右表

由 CS*、 A1、 A0、 RD*、WR* 引脚的不同组合,实现各种不同的功能。见下表: 

A1 A0

端口

0 00 11 01 1

ABC

控制口CS A1 A0 RD WR 功 能

0 0 0 0 1 对端口 A 读 0 0 1 0 1 对端口 B 读 0 1 0 0 1 对端口 C 读

0 1 非法,不能对控制口读

入0 对端口 A 写0 对端口 B 写0 对端口 C 写0 对控制口 写

出 1 × × × ×

× × × 1 1数据缓冲器为 三态 断

0 1 1

1 1 1 1

0 0 0 0 0 1 0 1 0

0 1 1

Page 12: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

12

9.1 :并行通信和并行接口 8255A——8255A

8255A 的引脚功能2. 连接外设端的引脚PA0~PA7: A 口外设数据线,接外设;

PB0~PB7: B 口外设数据线,接外设;

PC0~PC7: C 口外设数据线或联络线,接外设。

Page 13: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

13

9.1 :并行通信和并行接口 8255A——8255A

8255A 与系统的连接示意图 

D0~D7

WR

RD

A1

A0

CS

DB

IOW

IOR

A1

A0

译码器

8255

A 口

B 口

C 口

D0~D7 外设 1

A15~ A2

线

外设 2

外设 3

Page 14: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

14

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式• 方式 0——基本输入 / 输出方式( A、 B、 C 口)• 方式 1—— 选通工作方式( A、 B 口)• 方式 2—— 双向选通传送方式(仅 A 口) 某端口工作于哪一种方式,可通过软件编程来指定。即向 8255 写入方式控

制字来决定其工作方式。

Page 15: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

15

9.1 :并行通信和并行接口 8255A——8255A

8255A 的初始化

可以利用软件编程确定 8255 的 3 个端口工作于何种方式下。

8255A 的各种工作方式由 CPU 对 8255A 写入控制命令字来设定,这个过程称为“初始化”。

8255A 有 2 种控制命令字: 方式选择控制字——确定 3 个端口的工作方式; C 口置位 / 复位控制字——确定C 口某一位的初始状态,这个

功能可用于设置方式 1 的中断允许,可以设置外设的启 /停等。

Page 16: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

16

9.1 :并行通信和并行接口 8255A——8255A

8255A 的初始化——方式选择控制字

D7 D6 D5 D4 D3 D2 D1 D0

C 口低位选择, 1 入 0出B 口 I/O 选择, 1 入 0出B 口方式选择, 0=方式0 1=方式 1

B 组控制

C 口高位选择, 1 入 0出A 口 I/O 选择, 1 入 0出A 口方式选择 00=方式 0 01=方式 1 1X= 方式 2

D7=1 ,方式控制字标志 A 组控制

Page 17: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

17

9.1 :并行通信和并行接口 8255A——8255A

8255A 的初始化—— C 口置位 / 复位控制字

D7 D6 D5 D4 D3 D2 D1 D0

置位 / 复位选择1=置位,0=复位

D7=0 为置位 / 复位控制字标志

D3 D2 D1 位选择 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7

无效

Page 18: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

18

9.1 :并行通信和并行接口 8255A——8255A

8255A 的初始化——方式选择控制字 在方式 1、 2 下, C 口作为 A 口、 B 口联络信号的引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。即C 口作为联络信号的引脚:不受方式控制字的控制。该出则出,该入则入。

Page 19: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

19

9.1 :并行通信和并行接口 8255A——8255A 例: 8255A 工作于方式 0 , A 口输入, B 口输出, C 口

的高半字节输出, C 口的低半字节输入,地址译码:A7~A2= 100000 时,选中 8255 。编写初始化程序。

控制字: 10010001 端口地址: 80H~83H 初始化:

MOV AL, 91HOUT 83H, AL

例:令 C 口第 4 位 PC3= 1 控制字: 00000111 初始化:

MOV AL, 07HOUT 83H, AL

Page 20: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

20

9.1 :并行通信和并行接口 8255A——8255A

8255A 的初始化

MOV DX, 387H ;设控制口地址MOV AL, 82H ; 1 00 0 0 0 1 0OUT DX, AL ;输出控制字XOR AL, AL ; A 口输出全 0MOV DX, 384H ;设 A 口地址OUT DX, AL ;输出到 A 口

Page 21: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

21

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 0(基本输入 / 输出方式 )

特点:8255A 相当于三个独立的 8 位数据口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C 端口即可以是一个 8 位的简单接口,也可以分为两个独立的 4 位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。

适用于:无条件输入输出方式。查询输入输出方式:把 A、 B 口作为 8 位数据的输入或输出口, C 口的高 / 低 4 位分别定义为 A、 B 口的控制位和状态位。

Page 22: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

22

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 0(基本输入 / 输出方式 )

IN AL,PORT

①外设将数据送到 8255 输入缓冲器中;②CPU给出有效的 8255 地址;③CPU 发读命令,将 8255A 输入缓冲器中数据读入 CPU的 AL寄存器中。

输入缓冲器

译码器

数据DB

AB

外设8

n

IO/M

RD

Page 23: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

23

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 0(基本输入 / 输出方式 )

OUT PORT,AL

① CPU给出有效的 8255 地址;② CPU 发写命令,将 CPU的AL寄存器中数据写入 8255A 输出锁存器中。

输出锁存器

译码器

数据DB

AB

外设8

n

IO/M

WR

Page 24: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

24

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 ) 利用一组选通控制信号控制 A 端口和 B 端口的数据输入输出。 特点: 1. A、 B 口作输入或输出口, C 口分为两部分,其部分位( 6位)固定用作 A 口、 B 口的选通控制信号,起应答联络和中断请求的作用。

2. C 口的剩余位仍可作数据位使用。3. A 口、 B 口在作为输入和输出时的选通信号不同。 方式 1 的应用: 主要用于中断控制方式下的输入输出。

说明: C 口除部分位用作选通信号外,其余位 (2 位 ) 可工作在方式 0 下,作 为输入或输出线,用程序指定其数据传送方向。

Page 25: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

25

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 )

PA7~PA0

PC4PC5

PC3

INTEA

IBFA

INTRA

D7~D0

输入设备

(到 CPU)RD

ASTB

PB7~PB0

PC2PC1

PC0

INTEB

D7~D0

IBFB

INTRB

输入设备

(到 CPU)RD

BSTB

A、 B 口都设为方式 1 输入 C 口的联络信号: STB#—— 选通输入信号,低电平有效,

由外设输入。 STB# 的前沿将端口数据线上的外设数据送入 8255 的输入缓冲器。 A 组对应 PC4; B 组对应PC2。

IBF—— 输入缓冲器满信号,高电平有效,由 8255A 输出。为高电平时,表示外设已将数据写入端口缓冲器,但 CPU还未读取,当 CPU 读取端口数据后, IBF 变为低电平。所以, IBF 信号是由 STB# 的前沿置位,由 RD# 的后沿复位。 A 组对应 PC5; B 组对应PC1。

Page 26: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

26

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 )

PA7~PA0

PC4PC5

PC3

INTEA

IBFA

INTRA

D7~D0

输入设备

(到 CPU)RD

ASTB

PB7~PB0

PC2PC1

PC0

INTEB

D7~D0

IBFB

INTRB

输入设备

(到 CPU)RD

BSTB

A、 B 口都设为方式 1 输入 C 口的联络信号: INTE—— 中断允许,是否允许发出

INTR请求。 INTE =1和 IBF 为高电平时,允许发出 INTR请求。无引出( A 口由置位 PC4, B 口由置位PC2 实现)。

INTR—— 中断请求,高电平有效,由8255A 输出。 INTE =1和 IBF 为高电平时,由 STB# 的后沿产生,向CPU请求中断,让 CPU 读走输入缓冲器中的数据。 INTR 信号由 RD# 的前沿清除。 A 组对应 PC3; B 组对应 PC0。

Page 27: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

27

第八章:并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 ) 方式 1 输入时序:

PB7~PB0

PA7~PA0

STB

IBF

INTR

RD

外设送来数据

当 INTE=1 时

Page 28: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

28

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 )PA7~P

A0

PC7PC6

PC3

INTEA

INTRA

D7~D0

输出设备

(到 CPU)WR

AOBF

AACK

PB7~PB0

PC1PC2

PC0

INTEB

D7~D0

INTRB

输出设备

(到 CPU)WR

BACK

BOBF

A、 B 口都设为方式 1 输出 C 口的联络信号: OBF#—— 输出缓冲器满信号,低

电平有效, 8255A 输出。为低电平时,表示 CPU已将数据输出给指定的端口,外设可取走数据。该信号由WR# 的后沿置位。 A 组对应PC7; B 组对应 PC1

ACK#——响应信号,低电平有效,外设输入。 =0 时,表示外设已从数据端口取走数据,并准备好接收下一个数据。该信号的前沿使OBF# 复位。 A 组对应 PC6; B组对应 PC2。

Page 29: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

29

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 )PA7~P

A0

PC7PC6

PC3

INTEA

INTRA

D7~D0

输出设备

(到 CPU)WR

AOBF

AACK

PB7~PB0

PC1PC2

PC0

INTEB

D7~D0

INTRB

输出设备

(到 CPU)WR

BACK

BOBF

A、 B 口都设为方式 1 输出 C 口的联络信号: INTE—— 中断允许位, INTE=1和OBF# 为高电平时,允许产生INTR 信号。无引出( A 口由置位PC6, B 口由置位 PC2 实现)。

INTR——ACK# 上升沿产生, 8255 输出。 =1 时请求 CPU 输出下一个数据 ( 通常接到 8259) 。 A 组对应 C3; B 组对应 PC0。

Page 30: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

30

第八章:并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 1( 选通工作方式 ) 方式 1 输出时序:

①D7~D0 送往外设数据 数据写入端口

WR

OBF

INTR

ACK

当 INTE=1 时

Page 31: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

31

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 2( 双向选通传送方式 )

特点:1. 双向方式——既是输入口,又是输出口。2. 利用 C 口的 5 条线提供传输联络信号。3. 类似于 A 口方式 1 下输入和输出的组合。工作时输入、输出都能锁存。4. 只有 A 口可工作在方式 2 下。5. 当 A 组工作在方式 2 时, B 组可工作在方式 0 或方式 1 下。 应用:1. 可用于中断控制输入输出方式。2. 也可用查询方式与 CPU 联系。3. 当 A 口工作于方式 2 时, B 口可工作于方式 1 (此时 C 口的剩余位刚好用作 B 口选通控制线); B 口也可工作于方式 0 (此时 C 口的剩余位只能用作方式 0 下的输入输出线)。

Page 32: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

32

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 2( 双向选通传送方式 )

C 口的联络信号: STB#—— 选通信号,由外

设输入。 =0 时,将外设数据送入 8255 的输入锁存器。 对应 PC4。

IBF—— 输入锁存器满信号,由 8255A 输出。 =1 时通知外设输入的数据已写入缓冲器,此时不能送下一个数据。此信号由 STB# 的前沿产生。CPU用 IN指令取走数据后( RD# 的后沿),此信号被清除。 对应 PC5。

PA7~PA0

PC6

PC7

D7~D0

PC4

PC5 IBFA

INTEA2

INTEA1

PC3 INTRA

ASTB

AACK

AOBF

RD

WR

Page 33: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

33

9.1 :并行通信和并行接口 8255A——8255A

8255A 的工作方式——方式 2( 双向选通传送方式 )

C 口的联络信号: OBF#—— 输出缓冲器满信号,

8255A 输出。 =0 时通知外设取走数据。 对应 PC7 。

ACK#——响应信号,外设输入。= 0 时表示外设已从数据端口取走数据。此信号使 OBF# 变高。 对应 PC6。

INTR—— 输入时由 STB# 的后沿产生,输出时由 ACK# 上升沿产生, 8255 输出。 =1 提出中断请求 。 A 组对应 PC3。

PA7~PA0

PC6

PC7

D7~D0

PC4

PC5 IBFA

INTEA2

INTEA1

PC3 INTRA

ASTB

AACK

AOBF

RD

WR

Page 34: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

34

8255AA0

A1

CS

+5V200

译码器

D7 ~D0

地址线

8088

CPUA0A1

PA0

PA1

PA2

9.1 :并行通信和并行接口 8255A——8255A

8255A 应用举例 [ 例 9-1]设 8255A 的端口地址为: 340H~343H ,试编写

8255初始化程序段和控制三个发光二极管依秩序循环显示程序段。

Page 35: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

35

9.1 :并行通信和并行接口 8255A——8255A

软件设计1 )设 A 口为输出口,方式 0 。 B 口输

入,方式 0 ,则方式选择控制字为82H 。

2 ) A 口输出代码: 0000 0110 06H , 1 号发光二

极管亮 0000 0101 05H , 2 号发光二极

管亮 0000 0011 03H , 3 号发光二

极管亮3 )软件延时(1)1ms的软件延时参考程序: 设系统的 CPU的频率为 8MHZ,则时

钟节拍为: 0.125微秒。执行 PUSHF 、POPF 、 LOOP指令需 29个节拍。延迟 1 毫秒要循环的次数?

开始

8255A初始化

延时

BX 显示代码地址

CX=0?

Y

N

BX=BX+1CX=CX-1

CX 3

输出到 A 口

Page 36: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

36

9.1 :并行通信和并行接口 8255A——8255A

参考程序:DATA SEGMENTCOTR EQU 343H ; 8255A 控制口地址PB_A EQU 340H ; 8255A的 A 口地址PB_B EQU 341H ; 8255A的 B 口地址LED DB 06H, 05H, 03H; LED 显示值DATA ENDP

CODE SEGMENTASSUME CS:CODE,DS:DATA …... MOV DX,COTR MOV AL,82H ; 方式 0 OUT DX, AL ;A 口为输出 ,B 口为输

入 MOV DX, PB_A ;A 口地址

Page 37: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

37

9.1 :并行通信和并行接口 8255A——8255A

LP: MOV CX,3 LEA BX, LED ; 1 号灯代码地址 DON: MOV AL, [BX] OUT DX, AL ;1,2,3循环点亮 CALL DELAY ;调延时程序 INC BX DEC CX JNZ DON JMP LPDEALY PROC NEAR ;软件延时 ….DEALY ENDPCODE ENDS END

; JMP LPMOV DX, PB_BIN AL,DXTEST AL, 00000001BJNZ LPMOV DX, PB_AMOV AL , 00000111BOUT DX, AL

Page 38: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

38

PA0 PA1

PA2

8255AA0

A1 PB0

CS

+5V200

+5V

2K译码器

D7 ~D0

地址线

8088

CPUA0

A1

思考:用 8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,二极管循环显示;开关断开时,完成当前循环后息灭所有二极管。

9.1 :并行通信和并行接口 8255A——8255A

Page 39: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

39

9.1 :并行通信和并行接口 8255A——8255A

8255A 应用举例 [例 9-2] 利用 8255A的 A 口方式 0 与微型打印机相连,将内

存缓冲区 BUFF 中的 400 个字符打印输出。

表 9-1 Centronics 标准引脚信号引脚 名 称 方向 功 能1 STROBE 入 数据选通,有效时接收数据2-9 DATA1-DATA8 入 数据线10 ACKNLG 出 响应信号,有效时准备接收数据11 BUSY 出 忙信号,有效时不能接收数据12 PE 出 纸用完13 SLCT 出 选择联机,指出打印机不能工作14 AUTOLF 入 自动换行31 INIT 入 打印机复位32 ERROR 出 出错36 SLCTIN 入 有效时打印机不能工作

Page 40: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

40

9.1 :并行通信和并行接口 8255A——8255A

8255A 应用举例 首先分析一下打印机的工作时序

从图可见,当 CPU 通过接口要求打印机打印数据时,先要查看BUSY 信号, BUSY= 0 时,才能向打印机输出数据,在把数据送上 DATA 线后,先发 STB#=0 信号通知打印机,打印机接到STB#=0后,发出 BUSY= 1 ,接收效据,当数据接收好并存入内部打印缓冲器后,送出 ACK#=0 信号,表示打印机已准备好接收新数据,并复位 BUSY=0 。

DATA0~DATA7

STB

BUSYACK

Page 41: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

41

9.1 :并行通信和并行接口 8255A——8255A

8255A 应用举例 硬件连线如下图所示

图中用 8255A的 PA 口作为输出打印数据口,工作于方式 0, PC口高 4 位工作于输入方式, PC7 接收打印机的 BUSY 信号; PC口低 4 位工作于输出方式, PC0产生 STB# 信号。

Page 42: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

42

9.1 :并行通信和并行接口 8255A——8255AMOV DX, PORTCNL ; 8255A 控制口口地址MOV AL, 88H ; 8255A 方式选择控制字OUT DX, AL ; A 口方式 0 输出, PC7 输入, PC0 输出MOV AL, 00000001B ; 8255AC 口的按位置位 / 复位按制字OUT DX, AL ; PC0置 1 ,使 STB# 高电平MOV CX, 400 ;打印字符个数MOV SI, OFFSET BUFFPOLL: MOV DX, PORTCIN AL, DXTEST AL, 80H ;查 BUSY = 0?JNZ POLL ;不为 0 ,打印机忙,则等待MOV DX, PORTA ;否则,向 A 口送数MOV AL, [SI]OUT DX, ALMOV DX, PORTCNL ; 8255A 控制口口地址MOV AL, 00H ; PC0置 0 ,使 STB# 为低电平OUT DX, AL ;产生一个负脉冲NOPNOPMOV AL, 01H ; PC0置 1 ,使 STB# 为高电平OUT DX, ALINC SILOOP POLL ;未打印完,继续HLT

8255A初始化

开始

BUSY=0?

结束

送数

送STB#

打印结束?

N

N

Y

Y

Page 43: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

43

9.1 :并行通信和并行接口 8255A——8255A

8255A 应用举例 思考:利用 8255A的 A 口方式 1 与微型打印机相连,将内存缓冲区 BUFF 中的 400 个字符打印输出。

Page 44: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

44

9.1 :并行通信和并行接口 8255A—— 总结 可编程并行接口芯片。

可编程并行接口芯片 8255A 的结构与功能,要求达到“领会”层次。

可编程并行接口芯片 8255A 的三种工作方式与初始化编程,要求达到“简单应用”层次。

可编程并行接口芯片 8255A 的应用,要求达到“综合应用”层次。

16 位系统中的并行接口,要求达到“领会”层次。

Page 45: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

45

9.1 :并行通信和并行接口 8255A—— 串行通信和并行通信

两种数据通信方式:串行传送和并行传送。 并行传送:数据在多条并行 1 位宽的传输线上同时由源传

送到目的。以 1 字节的数据为例,在并行传送中, 1 字节的数据通过 8 条并行传输线同时由源传送到目的。

串行传送:数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送。以 1 字节为例,在串行传送中, 1 字节的数据要通过一条传输 线分 8 次由低位到高位按顺序一位一位地传送。

源 目的T80 1 1 0 1 0 1 0 源

01101010

目的

011010100D

7D

T

Page 46: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

46

9.4 :串行通信和串行接口 8251A—— 串行通信方式串行通信方式 异步通信是指以字符为单位传送数据,用起始位和停止位标识每个字符的开始和结束字符,并且字符出现在数据流中的相对时间是任意的,而每个字符中的各位是以固定的时间传送。即:字符内同步,字符间异步。

传输的字符格式如图所示: 1 个起始位、 7 或 8 个数据位、 1~2 个停止位和 1 个校验

起始位 校验位 停止位 空闲位数据位

低位 高位

字符

0/1 0/1 0/10/1 101 1 1…

Page 47: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

47

9.4 :串行通信和串行接口 8251A—— 串行通信方式串行通信方式 异步通信为了可靠地传送数据,在每次传送数据的同时,附加了一些标志位。在大量数据传送时,为了提高速度,就去掉这些标志,这就是同步通信。

同步通信以一个数据块(帧)为传输单位,在数据块开始处用 1 个或 2 个同步字符来指示,最后以校验字符结束,并在发送端和接收端之间用时钟来实现同步。

传输格式(一帧)如下所示:~

~ ~~

同步字符 数据 数据 数据 校验字符

Page 48: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

48

9.4 :串行通信和串行接口 8251A—— 串行通信方式波特率 所谓波特率是指每秒钟传送二进制数据的位数。单位是位 /秒( bit/s)。

1 波特= 1 位/秒( 1bps ) 例如:设数据传送的速率为 120 字符 /秒,每个字符(帧)包括 10 个代码位( 1 个起始位、 1 个终止位、 8 个数据位),则传送的波特率为:

10×120= 1200 位 /秒= 1200波特率 每一位传送的时间为 T= 1/1200=0.833ms

Page 49: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

49

9.4 :串行通信和串行接口 8251A—— 串行通信的传送方向串行通信的传送方向( 1 )单工方式( Simplex Mode) 在这种方式下,只允许数据按一个固定的方向传送。图中

A 只能发送,称为发送器; B 只能接收,叫做接收器。不能从 B 传向 A。

站 A 站 B

Page 50: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

50

9.4 :串行通信和串行接口 8251A—— 串行通信的传送方向串行通信的传送方向( 2 )半双工方式( Half-Duplex Mode) 在这种方式下,数据既可以从 A 传向 B ,也可以从 B 传向 A 。因此 A 和 B 既可作为发送器,又可作为接收器,通常称为收发器。但是,由于 A 和 B 之间只有一根传输线,所以在同一时刻,只能进行一种传送,不能同时双向传输。因此,将其称为“半双工”方式。在这种工作方式下,要么 A 发送 B 接收,要么 B 发送 A 接收。

站 A 站 B

Page 51: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

51

9.4 :串行通信和串行接口 8251A—— 串行通信的传送方向串行通信的传送方向( 3 )全双工方式( Full-Duplex Mode) 在 A、 B 之间增加一条线,使 A 和 B 两端均可同时工作

在收发方式数据可以由 A 传向 B ,也可以由 B 发送到A 。与半双工方式相比,虽然对每个站来讲,都有发送器和接收器,但图中有两条传送线,用不着收发切换,因而传送速率可成倍增长。

站 A 站 B

Page 52: 第九章  可编程接口与应用 —— 并行通信和并行接口 8255A

52

9.4 :串行通信和串行接口 8251A——8251A

Intel 8251A 是一种通用的同步异步接收/发送器( USART )芯片。它作为一种外围器件,可通过编程选用某一种串行通信技术。 8251A 具有独立的发送器和接收器.因此,它能够以单工、半双工或全双工方式进行通信,并且提供一些基本的控制信号,可以方便地与 MODEM 连接。