4.3 输入 / 输出接口扩展

36
Copyright http://www. myvtc . edu . cn 2006 MCS-51 系系系系系系系系 4 系系系系 8 系系系 I/O 系系P0 P1 P2 系 P3 系系系系系系系系系系P0 P2 P3 系系系系系系系系系系系系系 系系系系系系 P1 系系 系系系系系 I/O 系系系系系系系系系 系系系系系系系系系系系系 系系系系系系系系系系系系系系系 系 ,,, 系系系系系系 I/O 系系系系系系系系系系系 I/O 系系系系系系 系系系系系系系系系系系系系系系系系 系系系 ,, I/O 系系系系 系系 I/O 系系系系系系 I/O 系系系系系系系系系系系 I/O 系系系系系系系 系系系 I/O 系系系系系系系 4.3 输输 / 输输输输输输 输输输输输

Upload: della

Post on 11-Jan-2016

85 views

Category:

Documents


19 download

DESCRIPTION

4.3 输入 / 输出接口扩展. 问题的提出. MCS-51 系列单片机内部有 4 个双向的 8 位并行 I/O 端口: P0 、 P1 、 P2 和 P3 口。 在实际的应用系统中, P0 、 P2 、 P3 口往往用来代替系统总线使用,数据口仅剩下 P1 口了。另外,单片机内部 I/O 口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的 I/O 操作的要求。 鉴于单片机的 I/O 资源比较有限,在实际应用中不得不使用扩展的方法,以增加 I/O 口的数量,强化 I/O 的功能。 常用的 I/O 扩展有以下两种形式: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

MCS-51 系列单片机内部有 4 个双向的 8 位并行 I/O 端口: P0 、 P1 、P2 和 P3 口。

在实际的应用系统中, P0 、 P2 、 P3 口往往用来代替系统总线使用,数据口仅剩下 P1 口了。另外,单片机内部 I/O 口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的 I/O 操作的要求。

鉴于单片机的 I/O 资源比较有限,在实际应用中不得不使用扩展的方法,以增加 I/O 口的数量,强化 I/O 的功能。

常用的 I/O 扩展有以下两种形式:简单 I/O 接口芯片的扩展可编程 I/O 接口电路的扩展

4.3 输入 / 输出接口扩展问题的提出

Page 2: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

什么样的芯片是简单芯片?复杂芯片又是什么样的?

简单芯片:是指那些虽具有数据缓冲或锁存功能,但自身仅有数据的输入或输出及选通端或时钟端,却没有地址线和读写控制线,如采用 TTL 或 CMOS 数字集成电路构成的三态门、寄存器、三态缓冲寄存器等中小规模的集成电路芯片。

可编程逻辑器件: 那些不仅具有数据的输入或输出、具有选通端或时钟端,

而且还具有地址线和读写控制线的芯片,他们一般具有片内的状态字寄存器、命令字寄存器,允许通过软件编程来改变它的接口功能或状态。如: intel 8255 、 8155 、 8279 etc.

Page 3: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

简单的 I/O 口扩展通常是采用 TTL 或 CMOS 电路锁存器、三态门等作为扩展芯片( 74LS244 、 74LS245 、 74LS273 、 74LS373 、 74LS

377 等),通过 P0 口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。

简单的 I/O 口扩展主要包括:

缓冲器扩展输入口(三态门: 74LS244 、 74LS245 等)

输入接口的主要功能:解决数据输入的缓冲问题,如 74ls244( 具有三态缓冲功能,这样才可以和数据总线相连 ) 。

锁存器扩展输出口(锁存器: 74LS273 、 74LS373 、 74LS377 等)

输出接口的主要功能:进行数据的保持(数据锁存)。

4.3.1 简单 I/O 接口芯片的扩展

Page 4: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

利用 74LS244 进行输入口的扩展EA/VP

31

X119

X218

RESET9

INT012

INT113

T014

T115

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.324

P2.425

P2.526

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P30

TXD11

RXD10

MCS-51

1G1

A12

1Y118

A24

1Y216

A36

1Y314

A48

1Y412

2G19

B111

2Y19

B213

2Y27

B315

2Y35

B417

2Y43

74LS244

1

23

A

74LS32

1G1

A12

1Y118

A24

1Y216

A36

1Y314

A48

1Y412

2G19

B111

2Y19

B213

2Y27

B315

2Y35

B417

2Y43

74LS244

74LS244 引脚封装图

MCS-51 与 74LS244 的接口电路图

缓冲器扩展输入口

Page 5: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

74LS244 是一种 8 位的三态缓冲器。当它的控制端 1G ( 2G )为低电平时,输出等于输入;当它的控制端 1G ( 2G )为高电平时,输出呈高阻态。 在上图的电路中, P2.7 与 RD 相或后作为 244 的使能信号,单片机的 P0 口与 74LS244 的 8 位输出端相连,所以 74LS244 的地址为: 7FFFH ( P2.7=0 即 A15=0 , A14..A0 为任意,这里取 1 ,得到 7fffh ,当然, 0000h~7fffh 中任一地址均可)。当单片机从 74LS244 读取数据时应该为:

MOV DPTR , #7FFFH ;将 74LS244 的口地址送入 DPTR

MOVX A , @DPTR ; 74LS244 的端口读取数据到 ACC

;执行时, RD 有效, p2.7=0, 选通了 74ls244 。注意: MOVX A , @DPTR; 读操作,产生 RD 低电平信号

Page 6: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

利用 74LS273 进行输出口的扩展

CLR1

CLK11

1D3

1Q2

2D4

2Q5

3D7

3Q6

4D8

4Q9

5D13

5Q12

6D14

6Q15

7D17

7Q16

8D18

8Q19

74LS27374LS273 引脚封装图

MCS-51 与 74LS273 的接口电路图

EA/VP31

X119

X218

RESET9

INT012

INT113

T014

T115

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.324

P2.425

P2.526

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P30

TXD11

RXD10

MCS-51

1

23

A

74LS32

CLR1

CLK11

1D3

1Q2

2D4

2Q5

3D7

3Q6

4D8

4Q9

5D13

5Q12

6D14

6Q15

7D17

7Q16

8D18

8Q19

74F273

VCC

锁存器扩展输出口

Page 7: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

74LS273 是一种 8D 触发器器。当它的控制端信号有效且触发端信号有效时,输入 D1-D8 端的数据被锁存到 8D 触发器中并形成输出 Q1-Q8 。在上图的电路中, P2.7 与 WR 相或后作为 74LS273 的锁存信号( clk 下降沿有效),单片机的 P0 口与 74LS273 的 8 位输出端相连,所以 74LS273 的地址为: 7FFFH 。(仅使 P2.7=0 ,地址可以是 0000h~7fffh 中的任一个。)(仅当 p2.7=0 且 WR=0 时, clk 才为 0 ,数据被打入。) 所以,当单片机从 74LS244 输出数据是应该为:

MOV DPTR , #7FFFH ;将 74LS244 的口地址送入 DPTR

MOVX @DPTR , A ;从 ACC 向 74LS244 的端口写数据 ; P2.7=0&WR=0, 数据被打入到 2732

锁 存器注意: MOVX @DPTR , A; 写操作,产生 WR 低电平信号

Page 8: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

Intel 8155 是一个具有 RAM 、 I/O 和计数器的通用可编程接口芯片。其具有的资源为

256B 的静态 RAM ;两个可编程的 8 位并行 I/O 口 PA 和 PB ;一个可编程的 6 位并行 I/O 口 PC ;一个可编程 14 位减计数器 TC ;8 位地址锁存器。

示意图

一、可编程芯片 8155 的扩展

是指芯片功能可由指令来确定,即需要对其编程。

Page 9: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

AD012

PA021

AD113

PA122

AD214

PA223

AD315

PA324

AD416

PA425

AD517

PA526

AD618

PA627

AD719

PA728

PB029

CE8

PB130

RD9

PB231

WR10

PB332

IO/M7

PB433

ALE11

PB534

PB635

PB736

TMROUT6

PC037

PC138

TMRIN3

PC239

PC31

PC42

RESET4

PC55

8155

8155 的引脚封装图

8155 的内部接口图

C

B

A256字节静态RAM

14位定时

计数器

TIMER IN

TIMER OUT

VCC( + 5 V)

VSS(GND)

PA0 ~ PA7

IO/M

CE

ALE

RD

WR

RESET

AD0 ~ AD7

PB0 ~ PB7

PC0 ~ PC7

Page 10: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8155 各引脚的功能为:地址 / 数据线 AD0 ~ AD7 ( 8 条):是低 8 位地址线和数据线的共用

输入总 线,常和 MCS-51 单片机的 P0 口相连,用于分时传送地址和数据;PA0 ~ PA7 、 PB0 ~ PB7 :为 A 、 B 口线,用于和外设之间传递数

据;PC0 ~ PC5 为 C 端口线,既可与外设传送数据,也可以作为 A 、 B 口

的控制 联络线;CS :片选线,低电平有效。

1. 8155 的内部结构

Page 11: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

RESET :复位线,通常与单片机的复位端相连。ALE :地址锁存线,高电平有效。IO/M : RAM 或 I/O 口的选择线。当为 0 时,选中 8155 的 256 B RAM ;

当为 1 时,选中 8155 片内 3 个 I/O 端口以及命令 / 状态寄存器和定时/ 计数器。

RD 和 WR :读 / 写线,控制 8155 的读、写操作。TMRIN ( TI ):定时 / 计数器的脉冲输入端。TMROUT ( TO ):定时 / 计数器的输出信号端。VCC :电源端。GND :接地端。

Page 12: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8155 当 IO/M 为 0 时,单片机对 8155 的 RAM 进行操作,共 256B ,低八位的地址为: 00H—0FFH 。

8155 当 IO/M 为 1 时,单片机对 8155 的 I/O 口进行操作。

低八位地址 I/O 口xxxxx000B 命令 / 状态口xxxxx001B PA 口xxxxx010B PB 口xxxxx011B PC 口xxxxx100B 定时器 / 计数器低字节寄存器xxxxx101B 定时器 / 计数器高字节寄存器

8155 内部寄存器地址分配表

2. 8155 的 RAM 和 I/O 口地址编码

Page 13: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

芯片 8155 的 I/O 口和定时器 / 计数器的工作方式可以通过对 8155的命令寄存器写入控制字来实现。

8155 的命令寄存器和状态寄存器使用同一个地址。

8155 的命令字命令字主要规定了 8155 的 I/O 口和定时器的工作方式。

8255 的状态字状态字的内容包含 8155 的 I/O 口的工作状态标志。

3. 8155 的命令字和状态字

Page 14: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012 INT113

T014 T115

P101

P112

P123

P134

P145

P156

P167

P178

P00 39

P01 38

P02 37

P0336

P04 35

P0534

P06 33

P07 32

P20 21

P2122

P22 23

P23 24

P24 25

P25 26

P2627

P27 28

PSEN 29ALE/P30TXD 11

RXD 10

89C51

+ 10u

10K

VCC

GND

AD012 PA0 21

AD113 PA1 22

AD214 PA2 23

AD315

PA324

AD416 PA4 25

AD517

PA526

AD618 PA6 27

AD719 PA7 28

PB0 29

CE8

PB130

RD9 PB2 31

WR10 PB3 32

IO/M7 PB4 33

ALE11 PB5 34

PB635

PB7 36

TMROUT6

PC0 37

PC1 38

TMRIN3 PC2 39

PC3 1

PC42

RESET4 PC5 5

U?

8155

PA口

PB口

PC口

MCS-51 单片机与 8155 的接口

Page 15: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

TM1TM2 IEB IEA PC2 PC1 PAPAPB

A口方式

B口方式

B 口

A 口

计数器

方式

00: 空操作01: 停止计数

10: 计满后停止11: 开始计数

0: 输入1: 输出

0: 禁止中断

1: 允许中断

00

11

01

10

方式 1:A 、 B 口基本 I/O ; C 口输入方式 2:A 、 B 口基本 I/O ; C 口输出方式 3:A 口选通 I/O ; B 口基本I/O方式 4:A 、 B 口选通 I/O

8155 的命令字格式

Page 16: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

A 口中断请求标志:0: 无 ; 1: 有

A 口缓冲器:0: 空 ;1: 满

A 口中断允许:0: 禁止 ;1: 允许

B 口中断请求标志:0: 无 ; 1: 有

B 口缓冲器:0: 空 ;1: 满

B 口中断允许:0: 禁止 ; 1: 允许

定时器中断标志 :1: 有定时器溢出中断

0: 读状态字后或硬件复位后

INTEBTIMER BFB INTRB INTEA INTRABFA--

8155 的状态字格式

Page 17: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

基本 I/O 方式:联络线由程序指定,对计数器输入输出不起控制作用,没有中断能力,输出联络线由软件程序来控制。

选通 I/O 方式:由 PC 口的低三位作联络线使用,其余位作 I/O 线;输入联络线可以起选通数据锁存作用;中断时有中断请求信号产生;各个联络线为:

INTRA :中断请求输出标志。BFA : PA 口缓冲器 / 空输出信号。STBA :数据选通输入信号。

8155 的 I/O 的工作方式

Page 18: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8155 片内的定时器 / 计数器是一个 14 位的减计数器。计数器分为高 6

位和低 8 位寄存器,它的计数初值有程序预置。它的格式为:

M2 M1 T13 T12 T11 T10 T9 T8

T7 T6 T5 T4 T3 T2 T1 T0

高字节寄存器( M2 和 M1 是工作方式码)

低字节寄存器( T0—T13 为计数器的初值)

4. 8155 的定时器 / 计数器

Page 19: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

M2 M1 方 式 波 形

0 00 11 01 1

单次方波连续方波单个脉冲连续脉冲

8155 定时器 / 计数器四种操作方式和输出波形

Page 20: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

1)8155RAM 的使用例题:假定在 MCS-51 单片机的内部 RAM 中,从 30H 开始存放一组数据,字节数为 50 ,要求将该组数据存入 8155 RAM 中,起始地址为 7E00H 。

程序为: ……………… .. RAMWR:MOV R0,#30H

MOV DPTR,#7E00H MOV R2,#50 RAMW:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR

DJNZ R2,RAMW …………………

思考:如果要把8155 RAM 中,从地址为 7E00H开始的 50 个数据存入单片机的30H 开始的数据存储单元中,应该如何处理?

5. 8155 的应用

Page 21: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

2) 8155 的 I/O 口的使用例题:假定 8155 的 PA 口接 8 个乒乓开关, 8155 的 PB 口接 8 个指示灯,要求

PB显示 PA 口的开关状态。命令 / 状态寄存器地址为 7E00H,PA 地址为 7E01H ,PB 地址为 7E02H 。 8155 的命令字为: 02H ( PA 和 PB 为基本 I/O 方式)。

程序为: ORG 0000H

MOV DPTR,#7E00H MOV A,#02H MOV @DPTR,A LOOP:

MOV DPTR,#7F01H MOVX A,@DPTR

INC DPTR MOVX @DPTR,A

SJMP LOOP

END

写命令字,送入命令 / 状态寄存器

8155 的 A 口数据送入 ACC

ACC 数据写入 8155 的 B口循环执行

Page 22: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255 是一个通用可编程接口电路。其具有的资源为:三个可编程的 8 位并行 I/O 口 PA 、 PB 和 PC 口;PC 口可以按位进行操作。

D034

D133

D232

D331

D430

D529

D628

D727

PA04

PA13

PA22

PA31

PA440

PA539

PA638

PA737

PB018

PB119

PB220

PB321

PB422

PB523

PB624

PB725

PC014

PC115

PC216

PC317

PC413

PC512

PC611

PC710

RD5

WR36

A09

A18

RESET35

CS6

8255A

D034

D133

D232

D331

D430

D529

D628

D727

PA04

PA13

PA22

PA31

PA440

PA539

PA638

PA737

PB018

PB119

PB220

PB321

PB422

PB523

PB624

PB725

PC014

PC115

PC216

PC317

PC413

PC512

PC611

PC710

RD5

WR36

A09

A18

RESET35

CS6

GND7

VCC26

8255A

8255A 的引脚封装图

数据总线 PA

PB口

PC口

控制总线

二、可编程芯片 8255 的扩展

Page 23: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255 的内部接口图

A组

端口A

A组端口C

上半部(4)

下半部(4)

B组端口C

B组

端口B

(8)

(8)

A组

控制

控制

B组

数据总线缓冲

读 / 写

控制逻辑

I/O

I/O

I/O

I/ORD

WRA0

A1

RESET

CS

D7 ~ D0

PA7 ~ PA0

PC7 ~ PC4

PC3 ~ PC0

PB7 ~ PB0

Page 24: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255 各引脚的功能为:地址 / 数据线 D0 ~ D7 :是低 8 位地址线和数据线的共用输入总线,

常和 MCS-51 单片机的 P0 口相连,用于分时传送地址和数据;PA0 ~ PA7 、 PB0 ~ PB7 :为 A 、 B 口线,用于和外设之间传递数

据;PC0 ~ PC7 为 C 端口线,既可与外设传送数据,也可以作为 A 、 B 口

的控制联络线;CS :片选线,低电平有效。RESET :复位线,通常与单片机的复位端相连。A0 和 A1 : I/O 口的选择线,通过它可以选择 PA 口、 PB 口、 PC 口

和控制寄存器。RD 和 WR :读 / 写线,控制 8255 的读、写操作。VCC :电源端。GND :接地端。

1. 8255 的内部结构

Page 25: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006高阻态011xX

非法态01011

高阻态1XXXX

从命令口输入00111

从 PC 口输出00101

从 PB 口输出00110

从 PA 口输出00100

从 PC 口输入01001

从 PB 口输入01010

从 PA 口输入01000

操作CSWRRDA0A1

2. 8255A 的端口选择和基本操作

Page 26: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255 有两个控制字:方式控制字

方式控制字用于设定单片机的 PA 口、 PB 口和 PC 口的工作方式。

置位/复位控制字置位 / 复位控制字用于对 8255A 的 PC 口按位进行操作。

3. 8255A 的控制字

Page 27: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

B 组

C 口低 4 位

B 口

方式选择

0: 输出1: 输入

0: 输出1: 输入

0: 模式 0 1: 模式 1

A组

C 口高 4 位

A 口

方式选择

0: 输出

0: 输出

1: 输入

1: 输入

01: 模式 1

00: 模式 0

1*: 模式 2

1: 方式标志

D7 D6 D5 D4 D3 D2 D1 D0

方式控制字

Page 28: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

0: 复位1: 置位

000001

010

PC0

位选择

011100101110111

PC1

PC2PC3PC4PC5PC6PC7

0: 位操作

D7 × × × D3 D2 D1 D0

置位 / 复位控制字

Page 29: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255A 有 3 种工作方式

工作方式 0基本的输入 / 输出方式

工作方式 1选通工作方式

工作方式 2双向传送方式,只有 PA 口工作于此方式。

4. 8255A 的工作方式

Page 30: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

开关量输入

D034

D133

D232

D331

D430

D529

D628

D727

PA04

PA1 3

PA2 2

PA31

PA4 40

PA539

PA6 38

PA7 37

PB0 18

PB119

PB2 20

PB321

PB4 22

PB5 23

PB6 24

PB7 25

PC0 14

PC1 15

PC2 16

PC3 17

PC413

PC5 12

PC611

PC7 10

RD5

WR36

A09

A18

RESET35

CS68255A

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012 INT113

T014 T115

P101

P112

P123

P134

P145

P156

P167

P178

P0039

P01 38

P02 37

P0336

P04 35

P0534

P06 33

P07 32

P20 21

P2122

P22 23

P2324

P24 25

P25 26

P26 27

P27 28

PSEN 29ALE/P30TXD 11

RXD 10

89C51

OC1

C11

1D3

1Q2

2D4

2Q 5

3D7

3Q6

4D8

4Q 9

5D13

5Q 12

6D14

6Q15

7D17

7Q 16

8D18

8Q19

74LS373

GND

ALE

ALE

+ 10u

10K

VCC

GND

GND

12345678

CON8

显示输出5. 8255A 和 MCS-51 单片机的

接口

Page 31: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

例 1 :在上图所示的 8255 与单片机的连接电路中,8255A 的 PC 口 (7FFEH) 作为开关量的输入;8255A 的 PA 口 (7FFCH) 作为信号的输出;要求 8 个数码管显示 PC 口输入的外部信号状态。8255A 的工作方式字设定:由题意可知 8255 的工作方式字应该为: 89H

6.8255A 应用举例:

Page 32: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

8255初始化

从 8255 的 PC 口读入数据

从 8255 的 PA 口输出数据

选中 8255的 PC 口

选中 8255的 PA 口

流程图:

Page 33: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

ORG 0000H

MOV DPTR,#7FFFH

MOV A,#89H

MOVX @DPTR,A

LOOP:MOV DPTR,#7FFEH

MOVX A,@DPTR

MOV DPTR,#7FFCH

MOVX @DPTR,A

SJMP LOOP

END

写命令字,送入命令 / 状态寄存器

8255 的 C 口数据送入 ACC

ACC 数据写入 8255 的 A口循环执行

程序清单:

Page 34: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

例 2 :在 8255 与单片机的连接电路中,使用置位 / 复位控制字实现在 8255A 的 PC7 输出方波。

解: 8255A 的控制寄存器 (7FFEH) 的设定   D7 :恒为 0 ; D6-D4 :未使用; D3-D1 : PC 口的位选择; D0 :置位时为 1 ,复位时为 0 。

所以: 当 PC7 输出高电平时,控制寄存器应该为: 0FH ;

PC7 输出低电平时,控制寄存器应该为: 0EH 。

Page 35: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

ORG 0000H MOV DPTR,#7FFFHLOOP: MOV A,#0FH MOVX @DPTR,A MOV R2 , #80H DJNZ R2 , $ MOV R2,#80H MOV A,#0EH MOVX @DPTR,A DJNZ R2 , $ SJMP LOOP END

写 PC7=1 的命令字

延时

写 PC7=0 的命令字

循环执行

程序清单:

Page 36: 4.3    输入 / 输出接口扩展

Copyright http://www.myvtc.edu.cn 2006

本章要求: 掌握 MCS-51 单片机的三总线形成; 了解常用的程序存储器、数据存储器,以及它们

与单片机如何进行连接,连接好的存储单元如何确定其地址;

掌握用缓冲器、锁存器等扩展简单 I/O 接口电路; 掌握 8155 可编程接口芯片的基本性能、端口与

存储单元的编址方法,以及与单片机的连接电路,口的基本应用;

了解 8155 定时器的应用; 掌握 8255A 的功能及应用。

小 结