33
一、 8255A 的的的的的的 8255A 的的的的 8255A 的的的的的 8255A 的的的的的 的的的 的的的的的的的的的 8255A 的的的 习习9-6 9-7 9-10

一、 8255 A 的结构和功能

  • Upload
    galen

  • View
    170

  • Download
    0

Embed Size (px)

DESCRIPTION

第九章 可编程并行接口芯片 8255A 及其应用. 一、 8255 A 的结构和功能. 二、 8255A 的控制字. 三、 8255A 的工作方式. 四、 8255A 的应用举例. 习题: 9-6 , 9-7 , 9-10. 并行接口芯片应具有的功能:. ( 1 ) 具有两个以上的输入 / 输出数据端口(锁存 / 缓冲); ( 2 ) 每个数据端口有与 CPU 用应答方式交换信息所必须的控制和状态信号;也有与外设交换信息所必须的控制和状态信号; ( 3 ) 通常每个数据端口还具有能用中断方式与 CPU 交换信息所必须的电路; - PowerPoint PPT Presentation

Citation preview

一、 8255A 的结构和功能

二、 8255A 的控制字

三、 8255A 的工作方式

四、 8255A 的应用举例

第九章 可编程并行接口芯片 8255A 及其应用

习题: 9-6 , 9-7 , 9-10

并行接口芯片应具有的功能:

( 1 ) 具有两个以上的输入 / 输出数据端口(锁存 /缓冲);( 2 ) 每个数据端口有与 CPU 用应答方式交换信息所必须的控制和状态信号;也有与外设交换信息所必须的控制和状态信号;( 3 ) 通常每个数据端口还具有能用中断方式与 CPU交换信息所必须的电路;( 4 ) 具有进行片选和读写控制的电路;( 5 ) 可编程(由程序来选择数据端口,数据传送方向,交换信息的方式等)。

A 组控制

B 组控制

缓冲器

数据总线

DB

oo

o

RDWRA0A1

RESETCS

读 / 写控制逻辑

A 口

上 C口下 C口

B 口

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

内部总线

外设接口CPU 接口 内部逻辑

第一节 8255A 的工作原理

一、 8255A 的结构和功能

端口 A 和端口 B 可用作 8 位 数据 I/O 口,端口 C 既可作为 8 位I/O 口,又可作为两个 4 位 I/O 口,还常用来配合 A 口和 B 口工作,作为控制信号输出、或作为状态信号输入。

( 一 ) 数据端口

8255A 内部包含 3 个 8 位 I/O 端口 A 口、 B 口和 C 口,通过外部 24 根 I/O 线与外设交换数据或进行通信联络。其中 C 口可分为两个 4 位口使用。

A 口

上 C口下 C口

B 口

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

内部总线

( 二 ) 控制逻辑

这是两组根据 CPU 的编程命令控制 8255A 工作的电路,它们内部有控制寄存器,用来接收 CPU 送来的命令字,以决定 A 组、 B 组的工作方式,或对 C 口的每一个位执行置位 / 复位操作。

A 组控制

B 组控制

内部总线

端口 A 和端口 C 的上半部分( PC7~PC4 )由 A 组控制逻辑管理,端口 B 和端口 C 的下半部分( PC3~PC0 )由 B 组控制逻辑管理。

( 三 ) 数据总线缓冲器

是双向三态的 8 位缓冲器 , 用作 8255A 和系统数据总线的接口。

1) 接收 CPU 送来的数据或控制字;

2) 外设传送给 CPU 的数据或状态信息

缓冲器

数据总线

DB

oo

o

RDWRA0A1

RESETCS

读 / 写控制逻辑

内部总线

至数据端口

至控制寄存器

( 四 ) 读 / 写控制逻辑

控制总线的开放与关闭;控制信息传送的路径和方向。

A1 A0=00 ,选中端口 A

A1 A0=01 ,选中端口 B

A1 A0=10 ,选中端口 C

A1 A0=11 ,选中控制字寄存器端口

( 五 ) 端口寻址

A1 A0 RD WR CS 功能

0 0 0 1 0 端口 A 数据总线

0 1 0 1 0 端口 B 数据总线

1 0 0 1 0 端口 C 数据总线

0 0 1 0 0 数据总线 端口 A

0 1 1 0 0 数据总线 端口 B

1 0 1 0 0 数据总线 端口 C

1 1 1 0 0 数据总线 控制字寄存器

8255A 端口选择表

端口选择信号:

当 8255A 用在 8 位数据总线的微处理器( 8088 )系统中时,端口选择信号输入端 A1 A0 与地址总线的 A1 A0 相连即可,例如端口地址为 60H , 61H , 62H 和 63H 。

在 16 位数据总线的微处理器系统( 8086 )中,通常将端口选择信号输入端 A1 A0 与地址总线的 A2 A1 相连。 8255A 芯片的数据线 D0~D7 既可以接到系统数据总线的低 8 位,也可以接到系统数据总线的高 8 位。为了方便,通常接到系统数据总线的低 8 位,这样 CPU 要求芯片内部的各个端口都使用偶地址。例如端口地址为 F0H , F2H , F4H 和 F6H 。

( 六 ) 方式选择

8255

AB

CB

DB

RD WR D7~D0 A0 A1 CS

PB PAPC

8 8I/O I/O4 4

PB7 ~PB0 PA7 ~PA0PC3 ~PC0 PC7 ~PC4

I/O I/O

8 8 I/OI/O

PB7 ~PB0 PA7 ~PA0

PB PAPC

控制或I/O

控制或I/O

8 8 I/OI/O

PB7 ~PB0 PA7 ~PA0

PB PAPC

I/O控制

方式 0 :基本输入输出

方式 1 :选通输入输出

方式 2 :双向总线

二、 8255A 的控制字1 、方式选择控制字8255A 有 3 种基本的工作方式,在对 8255A 进行初始化编程时,

应向控制寄存器写入方式选择控制字,以规定各端口的工作方式。方式选择控制字格式D7 D6 D5 D4 D3 D2 D1 D0

下 C 口 I/O

1= 输入0= 输出

B 口 I/O 1= 输入0= 输出

B 口方式

0= 方式0 1= 方式 1

上 C 口 I/O

1= 输入0= 输出

特征位 D7=1 A 口方式 :

00= 方式 0 01=方式 1 1x= 方式 2

A 口 I/O

1= 输入0= 输出

例:在一个 8086/8088 系统中,有一片 8255A 芯片,其各个端口的地址分别为 0F8H~0FBH ,现要求各个端口的工作方式为:端口 A 方式 0 输入端口 B 方式 1 输出端口 C (上半部) PC7 ~PC4 输出端口 C (下半部) PC3 输入要求:进行初始化编程

1 0 0 1 10 0 1

分析:根据 8255A 工作模式可确定方式控制字

95H

初始化编程:

MOV AL , 95H

OUT 0FBH , AL

2 、置位 / 复位控制字端口 C 常用作控制或应答信号,通过对 8255A 的控制口写入

置位 / 复位控制字,可使 C 口的任一个引脚的输出单独置 1 或置 0 。

置位 / 复位控制字格式D7 D6 D5 D4 D3 D2 D1 D0

1 置位 0 复位无关位

特征位 D7 = 0

000 选中 PC0 001 选中PC1

111 选中 PC7

位选

例:要使端口 C 的 bit3 置位的控制字为: 00000111B ; MOV AL , 00000111B OUT 0FBH , AL 而使端口 C 的 bit3 复位的控制字为: 00000110B ; MOV AL , 00000110B OUT 0FBH , AL

三、 8255A 的工作方式

1 、方式 0 -基本输入输出方式

适用于不需要应答信号的简单 I/O 场合。A 口和 B 口可作为 8 位端口, C 口的高 4 位和低 4 位可作为两

个 4 位的端口,且每个端口均可作为输入口或输出口用。数据输出有锁存,输入不能锁存。

例如,要求 8255A 的 A 口和 B 口均工作于方式 0, A 口和下 C口作输入口 , B 口和上 C 口作输出口 , 设 8255A 各端口地址为 60H~63H, 可用下列指令来设置这种工作方式:

MOV AL , 91H ;方式控制字 10010001B AL OUT 63H , AL ;方式控制字送控制寄存器

2 、方式 1 -选通输入 / 输出方式端口 A 或 B 用作数据口,均可以工作于输入或输出方式。这两

个 8 位数据口的输入、输出数据都能锁存,但必须在联络信号的控制下完成 I/O 操作,端口 C 的部分引脚用来产生或接收这些联络信号。1) 选通输入方式

此时 PC3~5 和 PC0~2 分别用作 A 口和 B 口的状态和控制线 , PC6 和 PC7 用作 I/O 线

PA7~PA0 8

PC4 STBA

PC5 IBFA

PC3 INTRA

PC6PC7

I/O 线

&

INTEA

oRD

方式 1

(A 口 )PB7~PB0 8

PC2 STBB

PC1 IBFB

PC0 INTRB

&

INTEB

oRD

方式1

(B口 )

IBF -输入缓冲器满信号,高电平有效,由 8255A 输出的状态信号,表示输入缓冲器已满,向外设指明不能再送入数据。

INTE -中断允许信号。是控制 8255A 能否向 CPU 发中断请求信号,它没有外部引脚,INTEA 、 INTEB 是由用户对PC4 、 PC2 按位置位实现的。

PA7~PA0 8

PC4 STBA

PC5 IBFA

PC3 INTRA

PC6PC7

I/O 线

&

INTEA

oRD

方式 1 (A口 )

各控制联络信号的意义 STB -数据选通输入信号,低电平有效,由外设输入;

INTR -中断请求信号,高电平有效。是 8255A 向 CPU 发出的请求中断信号,要求 CPU 服务。当 IBF =1 、 STB =1 且 INTE =1 时, INTR =1 。

2) 选通输出方式

这时 PC3 、 PC6 和 PC7 作 A 口的应答信号, PC0 、 PC1 和 PC2 作 B 口的应答信号。余下的 PC4 和 PC5 可作输入或输出线。

PA7~PA0 8

PC6 ACKA

PC7 OBFA

PC3 INTRA

PC4PC5

I/O 线

&

INTEA

oWR

方式 1 输出 (A口 )

PB7~PB0 8

PC2 ACKB

PC1 OBFB

PC0 INTRB

&

INTEB

oWR

方式 1 输出 (B口 )

ACK -外设的回答信号,低电平有效,由外设送给 8255A 。表示 CPU 送到指定端口的数据已被外设接受。

各应答信号的意义:OBF -输出缓冲器满信号,输出,低电平有效。表示 CPU 已输出

数据到指定端口。

INTE -中断允许信号。 INTE

A 、 INTEB 是由用户对 PC6 、PC2 按位置位实现的。

PA7~PA0 8

PC6 ACKA

PC7 OBFA

PC3 INTRA

PC4PC5

I/O 线

&

INTEA

oWR

方式 1 输出 (A口 )

INTR -中断请求信号,高电平有效。当 ACK =1 、OBF =1 且 INTE =1 时,INTR =1 。

3 、方式 2 -双向总线方式 (仅适用于 A口)这时 PA7~PA0 作为双向数据总线, PC3 ~PC7 用作 A 口的联络

控制信号。 PC2~PC0 可用作 B 口的应答信号线 , 或作 I/O 线。

PC3INTRA

PA78

PC7

PC6

OBFA

ACKA

PC4

PC5

PC2~PC03

STBA

IBFA

INTE2

&

~

PA0&

INTE1

1

O

OWR

RD

各信号意义 :INTRA -中断请求信号 ,‘ 1’ 有效 .

OBFA -输出缓冲器满 ,‘ 0’ 有效 . ACKA -外设响应信号 ,‘ 0’ 有效 .

IBFA -输入缓冲器满信号 ,‘ 1’ 有效 .STBA -选通输入信号 ,‘ 0’ 有效 .

4 、 C 口状态字

8255A 工作在方式 0 时, C 口各位作输入输出用。当工作在方式 1 和方式 2 时, C 口产生与外设的联络信号。此时。读取 C 口的内容可检查或测试外设的状态。 C 口的状态字如下:( 1 )方式 1

I/O I/O IBFA输入 INTEA INTRA INTEB IBFB INTRB

D7 D6 D5 D4 D3 D2 D1 D0

I/O I/O输出 INTEA INTRA INTEB OBFB INTRB

D7 D6 D5 D4 D3 D2 D1 D0

OBFA

( 2 )方式 2

*INTE1 INTRAINTE2IBFA

D7 D6 D5 D4 D3 D2 D1 D0

OBFA * *

第二节 8255A 的应用举例

8255A 作为开关 K0~K3 及七段 LED 显示器接口。要求开关设置的二进制信息,由 PC0~PC3 输入,经程序转换为对应的七段 LED 显示器的字形代码后,由 A 口输出显示。

8255A

PA7

PA0

~

驱动器

+5V

+5V

K0

K1

K2

K3PC3

PC2

PC1

PC0

D7~D0

RD WR A1 A2

A B C G2A G2B

G1

Y0 Y1 Y2

O O O

D7~D0

RD WR A0 A1 CSA0

A3A4

A7

8086

系统总线

LS138

接口电路

M/IO&A5

A6

一、基本输入输出应用

各端口地址为: E8H~EEH

8255A 各端口地址确定 :由图可知:

A7 A6 A5 A4 A3 A2 A1 A01 1 1 0 1 0

8255A 方式选择控制字 :

LED 显示器的字形代码表存放在 TABLE 单元开始的内存中 .TABLE DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H

DB 80H, 98H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH

CS

A B C G2A G2B

G1

Y0 Y1 Y2

A0 A3A4

A7LS138

M/IO&A5

A6

按题意设置端口 A 方式 0 输出 , 下 C 口输入 .

1 0 0 0 0× × 1 81H

实现操作的具体程序如下 :

MOV DX, 0E8H ;指向端口 A OUT DX, AL ;输出字形码显示 HLT

MOV DX , 0EEH ;设置 8255A 工作方式 MOV AL , 81H

OUT DX , ALMOV DX , 0ECH ;指向端口 C ,读开关状态 IN AL , DX AND AL , 0FH

LEA BX , TABLE ;显示代码表首地址送 BX

XLAT ;查表,取出相应的字形码送 AL

LED 显示器的结构

a

b

d

ce

f g

dp

LED 显示器的外形

a

b

c

d

e

f

g

dp

共阳极 LED 显示器的结构

a

b

c

d

e

f

g

dp

共阴极 LED 显示器的结构

LED 显示器的工作原理 软件译码法

PA0

PA1

PA2

PA3

PA4

PA5

PA6

PA7

8

2

5

5DB7--DB0

a

b

c

d

e

f

g

dp

方案 1 共阳极 LED 显示器与同相驱动器接口

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a

0(C0H) 1 1 0 0 0 0 0 0

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

9(90H) 1 0 0 1 0 0 0 0

1(F9H) 1 1 1 1 1 0 0 1

2(A4H) 1 0 1 0 0 1 0 03(B0H) 1 0 1 1 0 0 0 0

4(99H) 1 0 0 1 1 0 0 1

5(92H) 1 0 0 1 0 0 1 0

6(82H) 1 0 0 0 0 0 1 0

7(F8H) 1 1 1 1 1 0 0 0

8(80H) 1 0 0 0 0 0 0 0

PA0

PA1

PA2

PA3

PA4

PA5

PA6

PA7

8

2

5

5DB7--DB0

a

b

c

d

e

f

g

dp

方案 2 共阳极 LED 显示器与反相驱动器接口

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a

0(3FH) 0 0 1 1 1 1 1 1

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

a

b

d

ce

f g

dp

9(6FH) 0 1 1 0 1 1 1 1

1(05H) 0 0 0 0 0 1 1 0

2(5BH) 0 1 0 1 1 0 1 13(4FH) 0 1 0 0 1 1 1 1

4(66H) 0 1 1 0 0 1 1 0

5(6DH) 0 1 1 0 1 1 0 1

6(7DH) 0 1 1 1 1 1 0 1

7(07H) 0 0 0 0 0 1 1 1

8(7FH) 0 1 1 1 1 1 1 1

二、七段 LED 显示器接口电路

利用专用接口芯片 7447 驱动 LED 显示器7447 为 BCD— 七段译码器

与单个 LED 的连接

7447

a b c d e f g

13 12 11 10 9 15 14

Vcc

GND

RBI

RBO

LTA B C D

3

4

5

+5V

7 1 2 6

+5V16

8

5V

R= ( 5–1.5 – 0.2 ) V/ 20mA=168

取 R=150

5V

1. 5V

0. 2V

I=20mAR

PA0PA1PA2PA3 PA4 PA5PA6 PA7

7447a b c d e f g

A B C D7447

a b c d e f g

A B C D7447

a b c d e f g

A B C D7447

a b c d e f g

A B C D

PB0PB1PB2PB3 PB4 PB5PB6 PB7

DB0——DB7 DB0——DB7

7447BCD— 七段译码器与多个 LED 的连接

5V

静态显示器的设计

• • •• • • • • •• • •• • • • • •• • •

7447

abcdefg

•••

A

B

C

D

PB0

PB1

PB2

PB3

PA0PA1PA2PA3PA4PA5PA6

8255

动态显示器的设计

PNP

显示控制程序

LEA SI , BUFFMOV CX , FEHMOV DL , 01H

初始化

结束

取显示数据

送段通道口

延时

位码送位通道口

是否最后一位

修改指针,位码

N

Y

MOV AL , [SI]

OUT POTB , ALMOV AL , DLOUT POTA , AL

INC SIROL DL

• • •• • • • • •• • •• • • • • •• • •

PB0

PA0PA1PA2PA3PA4PA5PA6

8255

•••

a

g

•••

•••

PB7

•••

74LS07

NPN

初始化

结束

取显示数据

查表得段码送段通道

延时

位码送位通道

是否最后一位

修改指针,位码

N

Y

LEA SI , BUFFMOV CL , 40HLEA BX , TABLE

DISI : MOV AL , [SI] XLAT

MOV DX , POTBOUT DX , ALMOV AL , CLMOV DX , POTAOUT DX , AL

INC SISHR CL

JNZ DISI