116
第第第 第第第第第 第第第第第 第第第 第第第第第 第第第第第 8.1 8.1 并并并并并并并并并并 并并并并并并并并并并 8.2 8.2 并并并并并并并 并并并并并并并 8.3 8.3 并并并并并并并 并并并并并并并 8.4 8.4 并并 并并 8255A 8255A 并并并并并并并并并并并 并并并并并并并并并并并 8.5 8.5 并并 并并 8155 8155 并并并并并并并并并并并 并并并并并并并并并并并 8.6 8.6 并并并并并并并并并并 并并并并并并并并并并

第八章 单片机小系统及片外扩展

  • Upload
    helki

  • View
    159

  • Download
    2

Embed Size (px)

DESCRIPTION

第八章 单片机小系统及片外扩展. 8.1 并行扩展三总线的产生 8.2 扩展程序存储器 8.3 扩展数据存储器 8.4 扩展 8255A 可编程外围并行接口芯片 8.5 扩展 8155 可编程外围并行接口芯片 8.6 串行扩展总线接口技术. 单片机芯片内集成了计算机的基本功能部件,已经具备很强的功能,有的芯片就是一个完整的最小微机系统。但由于受到芯片面积的限制,片内 ROM 、 RAM 的数量,并行、串行 I/O 口 , 定时器及中断源等内部资源都很有限,一般都需要扩展。另外,由于外部设备类型繁多,结构各异,在运行速度上,数据传送的方式上,时. - PowerPoint PPT Presentation

Citation preview

Page 1: 第八章  单片机小系统及片外扩展

第八章 单片机小系统及片第八章 单片机小系统及片外扩展外扩展8.1 8.1 并行扩展三总线的产生并行扩展三总线的产生8.2 8.2 扩展程序存储器扩展程序存储器8.3 8.3 扩展数据存储器扩展数据存储器8.4 8.4 扩展扩展 8255A8255A 可编程外围并行接口芯片可编程外围并行接口芯片8.5 8.5 扩展扩展 81558155 可编程外围并行接口芯片可编程外围并行接口芯片8.6 8.6 串行扩展总线接口技术串行扩展总线接口技术

Page 2: 第八章  单片机小系统及片外扩展

单片机芯片内集成了计算机的基本功能部件,已经具备很强的功能,有的芯片就是一个完整的最小微机系统。但由于受到芯片面积的限制,片内 ROM 、 RAM 的数量,并行、串行 I/O 口 , 定时器及中断源等内部资源都很有限,一般都需要扩展。另外,由于外部设备类型繁多,结构各异,在运行速度上,数据传送的方式上,时

Page 3: 第八章  单片机小系统及片外扩展

序上与单片机存在很大差异,要把单片机与外部设备有机地联系起来,就需在单片机与外部设备间加入 I/O 接口。 扩展有两种方案1. 串行扩展方案 通过各种串行接口和总线扩展外设(E2 PROM 、 A/D 、 O/A 、显示器等),可较少的占用 MCU 的 I/O 口线,编程方便。

Page 4: 第八章  单片机小系统及片外扩展

2. 并行扩展方案 利用外扩三总路线(地址总线、数据总线、控制总线)来扩展外设,从数据传送的速率上显然优于串行扩展方案,但会使得系统的边线较为复杂。

89C51 的系统扩展及接口结构如图 8-1 所示:

Page 5: 第八章  单片机小系统及片外扩展

地址总线

数据总线

控制总线89C51

数据存储器 程序存储器 I/O 接口 I/O 接口

I/O 设备 I/O 设备

图 8-1 89C51 的系统扩展及接口结构

Page 6: 第八章  单片机小系统及片外扩展

P2 ALE P089C51

PSEN WR RD

地址寄存器

DO~D7

A8~A15

A0~A7地址总线

控制总线

数据总线

图 8-2 89C51 扩展三总线

8.1 8.1 并行扩展三总线的产生并行扩展三总线的产生8.1.1 8.1.1 片外三总线结构片外三总线结构

Page 7: 第八章  单片机小系统及片外扩展

总线:连接系统中各个扩展部件的一组公共信 号线。按其功能,将其系统总线分为三 组:地址总线,数据总线和控制总线。1 、地址总线( AB )用于传送单片机送出的地址信号,对存储单元和 I/O 端口进行选择。地址总线是单向的,只能由单片机向外发送。地址总线的数目决定了可直接访问的存储单元的数目。

Page 8: 第八章  单片机小系统及片外扩展

3 、控制总线( CB ) 用于传送单片机发出的以控制片外 ROM 、RAM 和 I/O 端口的控制命令的一组控制线。

2 、数据总线( DB ) 用于单片机与存储器之间,单片机与 I/O端口之间的数据传送。数据总线是双向传送的。数据总线的位数与单片机处理数据的字长一致。

Page 9: 第八章  单片机小系统及片外扩展

8.1.2 8.1.2 系统扩展的实现系统扩展的实现

P2 口全部 8 位口线,作为地址总线的高 8 位地址线 A8 ~ A15 。 P0 口做为地址 / 数据总线,提供地址总线的低 8 位地址线 A0 ~ A7 。因为 P0 口线既做地址线,又做数据线,因此需加一个 8 位锁存器,锁存地址信息。如图 8-3 所示:

1. 地址总线

Page 10: 第八章  单片机小系统及片外扩展

图 8-3 89C51 地址总线扩展电路

11

ALE

P0.7 P0.6

89C51 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

G Vcc8D 8Q7D 7Q6D 6Q5D 5Q4D 4Q3D 3Q2D 2Q1D 1Q

OE GND

10

1817

13

3

16

86

2

14

9

19

15

54

12

7

+5v11 20

30

3233343536373839

A7A6A5A4A3A2A1A0

74LS373

Page 11: 第八章  单片机小系统及片外扩展

用 74LS373 做地址锁存器。把 89C51P0 口 8条口线与 74LS373 的输入端相连,输出端作为地址总线的低 8 位地址线 A0~A7 ; G 与 ALE相连,利用 ALE 的负跳变将输入端上的 8 位有效地址信号锁存到地址锁存器中; OE 接地,保证地址信息一旦锁入锁存器,立即可出现在输出端口上。 由 P0 、 P2 口形成 16 位地址总线。在实际应用系统中,高位地址线并不固定为 8 位,需要几位就从 P2 口中引出几条口线。

Page 12: 第八章  单片机小系统及片外扩展

由 P0 口 8 位口线形成 D0 ~ D7 。3. 控制总线: 由单片机自身产生。有的是引脚的第一功能信号,有的是第二功能信号。其中包括: PSEN 、 ALE 、 EA 、 WR 、 RD 。 通过系统总线,按要求形成不同类型的单片机系统。

2 、数据总线:

Page 13: 第八章  单片机小系统及片外扩展

8.2 8.2 扩展程序存储器扩展程序存储器8.2.1 8.2.1 访问外部程序存储器的操作时序访问外部程序存储器的操作时序一 . 扩展外部程序存储器所用到的引线: 1. 地址线: P0 口(低 8 位地址); P2 口 (高 8 位地 址),根据扩展数量适当选用。 2. 数据线: P0 口 3. 控制线: EA , PSEN , ALE

Page 14: 第八章  单片机小系统及片外扩展

二、外部程序存储器的操作时序: 1. 应用系统中无片外 RAM :S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6

第一个机器周期 第二个机器周期

PCH 输入 PCH 输入PCH 输入 PCH 输入 PCH 输入PCH 输入指令输入

pcl输出

pcl输出

pcl输出

pcl输出

pcl输出

指令输入

指令输入

指令输入

指令输入

ALE

PSEN

RD

P2

P0

PCL 输出有效 PCL 输出有效(a)

Page 15: 第八章  单片机小系统及片外扩展

2. 应用系统中接有片外 RAMS1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6

PCH 输入 PCH 输入DPH或 P2 输入 PCH 输入PCH 输入指令输入

pcl输出

地址输出

pcl输出

pcl输出

指令输入 数据输出 指令

输入数据输入P0

P2

RD

PSEN

ALE

第一个机器周期 第二个机器周期

图 8-4 89C51 访问片外 ROM 操作时序图(b)

Page 16: 第八章  单片机小系统及片外扩展

8.2.2 8.2.2 常用程序存储器的扩展芯常用程序存储器的扩展芯片片一、 2764 芯片: 2764A 是一种 8K×8 位的紫外线擦除可编 程只读存储器( EPROM )。它为 28 脚双列直插式封装,其管脚配置如图 8-5 所示,工作方式如表 8-1 所示。

Page 17: 第八章  单片机小系统及片外扩展

图 8-5 2764A 管脚配置

1 282 273 264 255 246 237 228 219 2010 1911 1812 1713 1614 15

VccPGMNCA8A9A11OEA10CED7D6D5D4D3

VppA12A7A6A5

A4A3A2A1A0D0D1D2GND

编程脉冲输入

D0 ~ D7

CE

OE

PGM

Vpp

地址线数据输出线片选线数据输出选通线

A0 ~ A12

编程电源

Page 18: 第八章  单片机小系统及片外扩展

表 8-1 2764 工作方式选择

高阻 5 12.5 任意 任意 VIH编程禁止 DOUT 5 12.5 VIH VIL VIL编程检验 DIN 5 12.5 VIL VIH VIL 编程

高阻 5 5 任意 任意 VIH 维持 DOUT 5 5 VIH VIL VIL 读

输出( 11~13 ,( 15~19 )Vcc/V( 28 )

Vpp/V( 1 )

PGM( 27 )

OE( 21 )

CE(20)

引脚方式

Page 19: 第八章  单片机小系统及片外扩展

二、 74LS373 芯片 74LS373 是带三态门的 8D 锁存器,为 20 脚双列直插式封装,其管脚安排如图 8-6 所示:

Q0~Q7 输出端D0~D7 输入端G 时钟(选通)信号输入端 E 输出允许信号端

Vcc

Q7

D7

D6

Q6

Q5

Q5

D4

Q4

G

1 20

2 19

3 18

4 17

5 74LS373 16

6 15

7 14

8 13

9 12

10 11

E

Q0

D0

D1

Q1

Q2

Q3

D2

D3

GND

图 8-6 74LS373 芯片引脚图

Page 20: 第八章  单片机小系统及片外扩展

8.2.3 8.2.3 程序存储器(程序存储器( EPROMEPROM )扩展)扩展 一、扩展 8KB EPROM 看图 8-7 扩展 8KB( 16KB ) EPROM 连接图。

二、扩展 16KB EPROM

Page 21: 第八章  单片机小系统及片外扩展

Vcc Vss

XTAL1

XTAL2

RST

EA31

18

19

+5v

P3.7(RD)

P3.6(WR)P3.5(T1)P3.4(T0)

P3.2(INT0)P3.3(INT1)

P3.1(TXD)P3.0(RXD)

12

1413

15

1716

1011

PSEN ALE

P1.0

P1.7

P2.0

P2.7

P0.0

P0.7

28

39

89C51

D0 Q0 D1 Q1

D2 Q2 D3 Q3

D5 Q5 D4 Q4

D6 Q6 D7 Q7

G OE

A7 A13A6 A12A5 A11

A4 A10

A3 A9A2 A8A1

A0

2764 / 27128

O0O1O2O3O4O5O6O7 OE

CEVccVppVcc GND

10+5v20

+5v

28 120

GND

14

2524

21

232

26

1

8

+5v

29 30

11

1112131516171819

234567

21

32

2 3

5 46 59 6

12 715 8

16 919 10

74LS373

40 20

Page 22: 第八章  单片机小系统及片外扩展

8.3 8.3 扩展数据存储器扩展数据存储器8.3.1 8.3.1 外部数据存储器的操作时序外部数据存储器的操作时序一 . 扩展外部数据存储器所用的引线: 1. 地址线: P0 口(低 8 位地址), P2 口(高 8 位地址)。 2. 数据线: P0 口 3. 控制线: ALE , RD , WR 。

Page 23: 第八章  单片机小系统及片外扩展

二、外部数据存储器的操作时序 1. 读片外 RAM操作时序 2. 写片外 RAM操作时序

Page 24: 第八章  单片机小系统及片外扩展

ALE

PSEN

RD

P2

P0 指令输入浮空 A7~A0浮空 数据输入 悬空 地址或浮空

S1 S2 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

1 2

35 7

3 4 6 8

地址 A15~A8

( a )片外数据存储器读时序

Page 25: 第八章  单片机小系统及片外扩展

指令输入浮空 A7~A0 数据输出 地址浮空

S1 S2 S3 S4 S5 S6

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

ALE

PSEN

WR

P2

P0

1

25 6

2 3 4

地址 A15~A8

( b )片外数据存储器写时序图 8-8 89C51 访问片外 RAM 操作时序

Page 26: 第八章  单片机小系统及片外扩展

8.3.2 8.3.2 常用数据存储器的扩展芯片常用数据存储器的扩展芯片 一、 6116 6116 是 2K×8

位的读写存储器芯片,它为 24 脚双列直插式封装,其管脚配置如图 8-9所示,工作方式如表 8-2 所示。 GND

图 8-9 6116 芯片引脚图

A7A6A5A4A3A2A1A0O0O1O2

12 13

6116

VccA8A9WEOEA10CEO7O6O5O4O3

1 24

Page 27: 第八章  单片机小系统及片外扩展

高阻态任意任意VIH维持 *

数据输入VILVIHVIL写数据输出VIHVILVIL读O0~O7WEOECE

信号方式

表 8-2 6116 , 6264 , 62256 的操作控制

* 对于 CMOS 的静态 RAM电路, CE 为高电平时,电路处于降耗状态。此时, Vcc电压可降至 3V左右,内部所存储的数据也不会丢失。

Page 28: 第八章  单片机小系统及片外扩展

E2 PROM 是电擦除可编程只读存储器,其突出的优点是能够在线擦除和改写。其次,在芯片引脚的设计上,与同容量的 EPROM 、静态RAM兼容。因此 E2PROM 既具有 ROM 的非易失性的优点,又能象 RAM 一样随机读写,每个单元可重复进 行 1万次改写,保留信息时间长达 20年。 E2PROM 在单片机系统中,既可以扩展为片外 EPROM ,也可扩展为片外的 RAM 。

二、 E2PRM

Page 29: 第八章  单片机小系统及片外扩展

以 2864A 为例进行介绍。 2864A 为 8K×8 位的 E2PROM ,引脚如图8-10 所示。 1. 引脚功能:图 8-10 2. 工作方式 :表 8-3

Page 30: 第八章  单片机小系统及片外扩展

图 8-10 E PROM 2864A 引脚图2

1 28

2 273 264 25

5 246 237 228 21

9 2010 1911 1812 1713 16

14 15

Vcc

WENCA8

A9A11OEA10

CEI/O7I/O6I/O5I/O4

I/O3

RDY/BUSYA12A7A6A5

A4A3A2

A1A0I/O0I/O1

I/O2

GND

Page 31: 第八章  单片机小系统及片外扩展

表 8-3 2864A 工作方式选择

DOUTVIHVILVILDATA查询DIN负脉冲VIHVIL写

DOUTVIHVILVIL读高阻态XXVIH待机

I/O0 ~ I/O7RDY/ BUSYWEOECE 引脚 工作方式

Page 32: 第八章  单片机小系统及片外扩展

三、 8282 芯片 是一种带三态输出缓冲器的 8 位双向锁存器。

为 20 脚双列直插式封装。引脚安排如图 8-11所示。

Page 33: 第八章  单片机小系统及片外扩展

图 8-11 8282 芯片引脚图

DI0DI1DI2DI3DI4DI5DI6DI7OE

VccDO0DO1DO2DO3DO4DO5DO6DO7STB

8282

GND

123456789

10

20191817161514131211

DI0~DI7 数据输入端DO0~DO7 数据输出端STB 选通输入端OE 输出允许信号

Page 34: 第八章  单片机小系统及片外扩展

8.3.3 8.3.3 数据存储器的扩展数据存储器的扩展一、 89C51 扩展 2KB RAM 看图 8-12 89C51 扩展 2KBRAM 。

Page 35: 第八章  单片机小系统及片外扩展

Vcc Vss

XTAL1

XTAL2

RST

EA31

18

19

+5v

P3.7(RD)P3.6(WR)P3.5(T1)P3.4(T0)

P3.2(INT0)P3.3(INT1)

P3.1(TXD) P3.0(RXD)

12

1413

15

17

16

1011

PSEN ALE

P1.0

P1.7

P2.0

P2.7

P0.0

P0.7

28

39

89C51

D0 Q0 D1 Q1 D2 Q2D3 Q3

D5 Q5D4 Q4

D6 Q6D7 Q7

STB OE

A7 A10

A6 A9A5 A8

A4A3A2

A1

A0

6116

I/O0

I/O7OE

CEVccVssVcc GND

10+5v20

+5v

24 12 18

23

22

19

1

8

+5v

2930

11

91011

14151617

13

WE

21222324252627

38373635343332

9

20 2120

234567

8282

2040

19 1

18 217 3

16 415 5

14 6

13 712 8

+ 9

图 8-12

Page 36: 第八章  单片机小系统及片外扩展

二、 89C51 扩展 8KB E2PROM 1. 扩展线路 : 看图 8-13 89C51 外扩 2864A 系统。

Page 37: 第八章  单片机小系统及片外扩展

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

RXDTXDALE

PSEN

INT1INT0T1T0

EA/Vpp

XTAL1XTAL2

RESTRD

WR

XTAL

C130pF

C230pF

Vcc

SW1

R2 1KΩ

12345678

13121514

1918

917

16

3938373635343332

2122232425262728

101130

29

AD0AD1AD2AD3AD4AD5AD6AD7

347813141718

1

11

D0D1D2D3D4D5D6D7

OE

G

Q0Q1Q2Q3Q4Q5Q6Q7

MA8MA9MA10MA11MA12MA13MA14MA15

2569

12151619

MA0MA1MA2MA3MA4MA5MA6MA7

109876543

A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEWE

252421232202227

12

3

U4 : A74LS08

MA8MA9MA10MA11MA12MA15

AD0AD1AD2AD3AD4AD5AD6AD7

1112131516171819

D0D1D2D3D4D5D6D7

U189C51

U274LS373

U32864A

ABUS

ADBUS

图 8-13

Page 38: 第八章  单片机小系统及片外扩展

2. 程序:写 16 字节 E2 PROM 2864A 的子程 序:入口参数: R1 = 写入的字节数( 10H) R0 = E2 PROM 的地址(低位) P2 = E2 PROM 的地址(高位) DPTR = 源数据区首址

Page 39: 第八章  单片机小系统及片外扩展

WR1 : MOVX A ,@DPTR ; 取数据 MOV R4, A ; 暂存,备查询 MOVX @R0, A ; 写入 2864A INC DPTR INC R0 CJNE R0, #00, NEXT ; 低地址指针未满 ,转移 INC P2 ; 否则,高位指针加 1

Page 40: 第八章  单片机小系统及片外扩展

NEXT: DJNZ R1, WR1 ;字节数未满,转移 DEC R0

CHECK: MOVX A, @R0

XRL A, R4

JB Acc.7, CHECK ; 最高位不同,再查 RET ; 最高位相同,一页写完

Page 41: 第八章  单片机小系统及片外扩展

8.4 8.4 扩展扩展 8255A8255A 可编程外围并行可编程外围并行接口芯片接口芯片8.4.1 8255A8.4.1 8255A 芯片结构芯片结构

Page 42: 第八章  单片机小系统及片外扩展

图 8-14 8255A 的引脚

123456789

1011121314151617181920

4039383736353433323130292827262524232221

8255A

PA3PA2PA1PA0RDCS

GNDA1A0

PC7PC6PC5PC4

PC1PC2PC3

PC0

PB0PB1PB2

PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3

Page 43: 第八章  单片机小系统及片外扩展

图 8-15 8255A 的内部结构

RDWRA1A0

RESETCS

D0~D7 总线缓冲

读写控制

A 组控制

B 组控制

A 口

C 口上

C 口下

B 口

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

Page 44: 第八章  单片机小系统及片外扩展

8255 有四个逻辑结构组成: 1. 数据总线缓冲器: 是双向的三态缓冲器,和单片机总线相连,实

现单片机与 8255A 的数据传送。 2. 并行 I/O 端口 A 口:具有一个 8 位数据输出锁存 /缓冲器和一 个 8 位数据输入锁存器。可编程为 8 位输 入输出或双向寄存器。

Page 45: 第八章  单片机小系统及片外扩展

B口:具有一个 8 位数据输出锁存 /缓冲器和一 个 8 位数据输入缓冲器。可编程作为 8 位输 入或输出寄存器。C 口:具有一个 8 位数据输出锁存 /缓冲器和一 个 8 位数据输入缓冲器。在方式控制下, 该口可分为两个四位口使用。

Page 46: 第八章  单片机小系统及片外扩展

3. A 组, B 组控制块: A 组控制块控制 A 口和 C 口的高四位 ;B组控制块控制 B口和 C 口的低四位。

4. 读 / 写控制逻辑 : 用与所有的数据、控制字或状态字的传送,它

接收单片机的地址线和控制信号来控制各个口的工作状态。

控制信号的组合实现对 8255A 的 4 个口的寻址和工作状态看表 8-4.

Page 47: 第八章  单片机小系统及片外扩展

表 8-4 8255A 的工作状态选择A1 A0 RD WR CS

0 0

0 1

1 0

0 0

0 1

1 0

1 1

1 0 01 0 01 0 01 0 0

0 1 0 0 1 00 1 0

X X1 1X X

X X 10 1 01 1 0

端口 A 数据总线端口 B 数据总线端口 C 数据总线

输出操作(写)数据总线端口 A数据总线端口 B数据总线端口 C数据总线控制寄存器

断开功能数据总线为三态(高阻)非法状态数据总线为三态

输入操作(读)功能

Page 48: 第八章  单片机小系统及片外扩展

8.4.2 8255A8.4.2 8255A 的控制字的控制字 一、方式选择控制字 : 格式如下 : 见图 8-16 , 8255A 的方式选择控制字 :

Page 49: 第八章  单片机小系统及片外扩展

置方式标志1

有效

D7 D6 D5 D4 D3 D2 D1 D0 端口 C 1= 输入(低四位 ) 0= 输出

端口 B 1= 输入 0= 输出

B 组方式选择 0= 方式 0 1= 方式 1

端口 C 1= 输入(高四位 ) 0= 输出

端口 A 1= 输入 0= 输出

A 组方式选择 0 0= 方式0 0 1= 方式1 1 0= 方式2

图 8-16 8255A 方式控制字

Page 50: 第八章  单片机小系统及片外扩展

二、控制字 C 口具有位操作功能,用置位 / 复位控制字 能

将 C 口的指定位置 1或清 0 。 格式如下 : 图 8-17 8255A 的置位复位控制字 :

Page 51: 第八章  单片机小系统及片外扩展

特征位任意

0 X X X D3 D2 D1 D0

置位 / 复位控制 1= 置位, 0= 复位

D3D2D1 000 001 010 011 100 101 110 111

PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7所选位

图 8-17 8255A 的置位复位控制字

Page 52: 第八章  单片机小系统及片外扩展

两个控制字都应写入 8255 的控制寄存器中,由于两个控制字各自都有标志,写入顺序可以任意。

Page 53: 第八章  单片机小系统及片外扩展

8.4.3 8255A8.4.3 8255A 的工作方式的工作方式 一、方式 0: 基本输入 / 输出 两个 8 位口 (A 、 B)和两个 4 位口 (C 口 )可分

别设定为基本输入 / 输出方式。作为输出口时,输出数据被锁存;作为输入口时,输入数据不锁存,无应答信号。

二、方式 1: 选通输入 / 输出 分为两组 : 1. A 组 : 包含 A 口和 C 口的高 4 位。

Page 54: 第八章  单片机小系统及片外扩展

2. B组 : 包含B口和 C 口的低 4 位。 A 口和 B口可分别设定为选通输入 / 输出方式,且输入和输出都锁存。 C 口中的 6 位分别作为 A口、 B口应答及中断信号,剩余的 2 位仍可作为输入 / 输出端使用。

在输入或输出方式下, C 口各引脚的联络信号并不完全相同,看表 8-5 。

Page 55: 第八章  单片机小系统及片外扩展

表 8-5 8255A 端口 C 的联络信号

PC7PC6PC5PC4PC3PC2PC1PC0

IBFASTBAINTRASTBBIBFBINTRB

OBFAACKA

INTRAACKBOBFBINTRB

X XIBFASTBAINTRA

OBFAACKA X XINTRA

C 口的位方式 1 方式 2

输入 输出 输出输入

Page 56: 第八章  单片机小系统及片外扩展

三、方式 2: 双向选通输入 / 输出 A 口为双向选通输入 / 输出方式, B口只能作

方式 0或方式 1 。此时 A 口需 5 个联络信号,与其 C 口引脚间的关系看表 8-5 。

8.4.5 82558.4.5 8255 与与 89C5189C51 的接口电的接口电路路

Page 57: 第八章  单片机小系统及片外扩展

+ 5V

图 8-18 8255A 与 89C51 的接口电路

RDWR

RDWR

RESET RESETALE CE

P0.0

PA.0

PA.7

PB.0

PB.7

PC.0

PC.7

P0.7

D7

D0

A1A0D0

D7

∶∶

Q7G

E

∶∶∶∶ Q0

∶∶ ∶∶

∶∶

∶∶

8255A89C51 74LS373

R C

Page 58: 第八章  单片机小系统及片外扩展

8.4.5 8.4.5 应用举例应用举例题目要求 :1. 把 8255 的 PA 端口设置为选通输入方式, PB

端口设置为选通输出方式。2. 89C51 以中断方式与 8255A 进行数据 交换。

Page 59: 第八章  单片机小系统及片外扩展

一、硬件电路

图 8-19 89C51 与 8255A 的硬件连接图

P2.7

ALEP0.0

P0.7

RDWR

G

INT0

D0

D7

89C51

Q0Q1

PC3

数据输入

6

A1

A0

CE

8255AD0

D7

WRRD

PC0

PA0

PA7

PB0

PB7

PC1,2

PC4…

PC7

数据输出E

…:

::

Page 60: 第八章  单片机小系统及片外扩展

二、 8255A 的编程方法 1. 设置方式选择控制字 : 0BCH

00111101

设置特征位A 口 工作方式 1

A 口 输入方式C 口 ( 高 4 位 )输入

B 口 工作方式 1

B 口 输出C 口 ( 低 4 位 )任意

Page 61: 第八章  单片机小系统及片外扩展

2. 设置 C 口置位 / 复位控制字 A 口输入位控制字 : 09H

1001×××0

置特征位 选通 PC4 位选通位置 1

1010×××0

置特征位 选通位置 1

选通 PC2 位

B口输出位控制字 : 05H

Page 62: 第八章  单片机小系统及片外扩展

3. 程序: 8255 的初始化MOV A, #0BCHMOV DPTR, #7FFFHMOVX @DPTR, A ;方式选择控制字, 8255A 控制口MOV A, #09H MOVX @DPTR, A ;完成 PC4 对 INTEA触发器置 1MOV A, #05HMOVX @DPTR,A ;完成 PC2 对 INTEB触发器置 1

Page 63: 第八章  单片机小系统及片外扩展

8.5 8.5 扩展扩展 81558155 可编程外围并行可编程外围并行接口芯片接口芯片8.5.1 81558.5.1 8155 的结构及引脚的结构及引脚

Page 64: 第八章  单片机小系统及片外扩展

图 8-21 8155 内部结构

256 B静态RAM

14 位定时计数器

A

B

C

AD0 ~ 7

CE

RD

WRRESET

ALE

TIMER INTIMER OUT

VCC(+5V)VSS(GND)

PC0 ~ 5

PB0 ~ 7

PA0 ~ 7IO/ M1

234567891011121314151617181920

4039383736353433323130292827262524232221

PC3PC4

TIMER INRESET

PC5TIMER OUT

CERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VSS

VCCPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0

8155IO/ M

图 8-20 8155 芯片的引脚

Page 65: 第八章  单片机小系统及片外扩展

逻辑结构 :1. 256 × 8 位静态 RAM :可作为 MCS-51 单片机的 外部数据存储器使用。2. 一个 14 位可编程定时器 / 计数器:提供各种脉冲及方波信号。3. 三个通用 I/O 接口: A 口、 B口为 8 位口, C口为 6 位口。4. 三态地址 / 数据总线: AD0-AD7 ,可直接与单片机的低 8 位地址 / 数据总线相连 , 分时传送地址、数据命令、状态信息。

Page 66: 第八章  单片机小系统及片外扩展

5. 控制信号 : IO/M : I/O 端口与存储器的选择信号 CE :片选信号 ALE :地址锁存允许信号 RD :读选通信号 WR ;写选通信号 RESET:复位信号 TIMER IN :定时器输入端 TIMER OUT:定时器输出端

Page 67: 第八章  单片机小系统及片外扩展

8.5.2 81558.5.2 8155 的的 RAMRAM 和和 I/OI/O 口寻址口寻址 在 MCS-51 单片机应用系统中, 8155 中的 RA

M 和 I/O 口都是与外部数据存储器统一编址的,为 16 位地址。

当 IO/M=0 时,单片机对 8155 RAM 进行读 /写,RAM 的编址为 00H~ 0FFH;当 IO/M=1 时,单片机对 8155 中的 I/O 口进行读 /写。 8155 内部I/O 及定时器编址如表 8-6 所示。

Page 68: 第八章  单片机小系统及片外扩展

表 8-6 I/O 部分寄存器地址及功能表

定时器 / 计数器高 6 位寄存器以及定时器 / 计数器输出波形工作方式字

内部×××××101

定时器 / 计数器低 8 位寄存器内部×××××100

通用 I/O 接口或控制联络线PC0 ~ PC5×××××011

通用 I/O 接口PB0 ~ PB7×××××010

通用 I/O 接口PA0 ~ PA7×××××001

状态寄存器(仅读)内部×××××000

指令寄存器(仅写)内部×××××000

功能引出端地址

Page 69: 第八章  单片机小系统及片外扩展

8155 芯片共有 7 个寄存器 , 分别进行介绍 1. 命令 / 状态寄存器 : 两个寄存器共用一个地址: 命令 ( 指令 )寄存器:可写入控制字,确定 PA 、

PB、 PC 和定时器的工作方式与功能。 状态寄存器:为只读寄存器,读 PA 口、 PB口

和定时器的状态。

×××××000

Page 70: 第八章  单片机小系统及片外扩展

2. PA 寄存器 :

该寄存器的地址为 :

可按照命令寄存器的内容确定是输入还是输出寄存器。

×××××001

3. PB 寄存器 :

该寄存器的地址为 :

功能与 PA 寄存器相同。×××××010

Page 71: 第八章  单片机小系统及片外扩展

4. PC 寄存器 :

该寄存器的地址为 :

仅有 6 位,既可作为 I/O 口,也可作为 PA 口、 PB 口的控制信号。 PC 口的工作方式见表 8-

7 。

×××××011

Page 72: 第八章  单片机小系统及片外扩展

表 8-7 PC 口工作方式

B STB ( B 口选通)输出线输出线输入线PC5

B BF ( B 口缓冲器满)输出线输出线输入线PC4

B INTR ( B 口中断)输出线输出线输入线PC3

A STB ( A 口选通)A STB输出线输入线PC2

A BF ( A 口缓冲器满)A BF输出线输入线PC1

A INTR ( A 口中断)A INTR输出线输入线PC0

(方式 4 )(方式3 )

(方式2 )(方式

1 )引脚

ALT4ALT3ALT2ALT1命令

Page 73: 第八章  单片机小系统及片外扩展

5. 定时器 / 计数器寄存器 :

定时器 / 计数器是 14 位计数器,最高两位用于确定输出方式。由此,它由两个 8 位寄存器组成。

低 8 位寄存器地址为 ×××××100B ; 高 8 位寄存器地址为 ×××××101B 。

Page 74: 第八章  单片机小系统及片外扩展

这两个寄存器具有双重作用: 写操作时,可送入 14 位定时常数以及输出方式的指令 ;

在读操作时,可把定时器 / 计数器的当前值和输出方式位读出。

Page 75: 第八章  单片机小系统及片外扩展

8.5.3 81558.5.3 8155 的工作方式及基本操作的工作方式及基本操作 一、作片外 256 字节数据存储器 :

这种工作方式时, IO/M=0 ,其地址高 8 位由CE 、 IO/M 决定,地址低 8 位为 00H ~ 0FFH ,使用与片外数据存储器相同的读 /写操作指令 MOVX 。

Page 76: 第八章  单片机小系统及片外扩展

1. I/O 口的工作方式选择 :

1) 1) 基本基本 I/OI/O 方式:方式: PA 口、 PB 口为输入 / 输出方式, PC 口可

为 ALT1 、 ALT2 。

二、作扩展 I/O 口使用 :

作扩展 I/O 口使用时 , IO/M=1 , PA 口、 PB口、 PC 口低 8 位地址为 01H 、 02H 、 03H 。

Page 77: 第八章  单片机小系统及片外扩展

2) 2) 选通选通 I/OI/O 方式方式 ::

(1) PA 口为选通 I/O 方式, PB 口为基本 I/O方式, PC 口为 ALT3 。 (2) PA 口、 PB 口为选通 I/O 方式, PC 口为 ALT4 方式。 I/O 口的工作方式选择是通过对 8155 命令寄存器设置命令控制字来实现的。 8155 命令寄存器的功能如图 8-22 所示。

Page 78: 第八章  单片机小系统及片外扩展

D0D1D2D3D4D5

PAPBPC1PC2IEAIEBTM1TM2

确定 PA 口工作方式确定 PB 口工作方式

确定 PC 口工作方式 00 ALT1

11 ALT201 ALT310 ALT4

确定 PA 口的中断状态: 0 禁止; 1 允许确定 PB 口的中断状态: 0 禁止; 1 允许

定时器 / 计数器命令

图 8-22 8155 命令寄存器功能图

00 空操作01 停止计数10 溢出后停止11 启动工作

D6D7

Page 79: 第八章  单片机小系统及片外扩展

2. I/O 口的状态查询 8155 有一个状态寄存器,锁存 I/O 口和定时器

的当前状态,供单片机查询用。状态寄存器格式如图 8-23 所示。

Page 80: 第八章  单片机小系统及片外扩展

图 8-23 8155 状态寄存器格式

A 口缓冲器满 /空 ( 输入 / 输出 )

A 口中断申请

B 口中断申请A 口中断允许

B 口缓冲器满 /空 ( 输入 / 输出 )

B 口中断允许定时器 / 计数器中断申请 (当计数器溢出使这位为高 ,读状态寄存器或 启动新的计数时 ,这位被恢复 )

D0D1D2D3D4D5D6D7INTR

AA BFINTE A

INTRBB BFINTE

BTIMER

Page 81: 第八章  单片机小系统及片外扩展

三、作定时器扩展用 1. 定时器的方式选择 :

8155 片内有一个 14 位减法计数器,可对输入脉冲进行减法计数。外部有两个定时器引脚 TIN 、 TOUT ,输入、输出脉冲信号,定时器的计数常数和定时方式由 04H 、 05H寄存器确定,其格式如图 8-24 所示。

Page 82: 第八章  单片机小系统及片外扩展

T7

M1

T6 T5 T4 T3 T2

T13 T12 T11 T10 T9 T8

T2 T1

M2

计数长度低 8 位

计数长度高 6 位定时器方式

图 8-24 定时器 / 计数器寄存器格式

Page 83: 第八章  单片机小系统及片外扩展

计数常数的取值范围 0002H ~ 3FFFH ,定时时间范围由单片机的主频而定。当定时器定时时间到后,由输出端 TOUT 输出一个脉冲或方波。

定时器有 4 种输出模式,如图 8-25 所示。

Page 84: 第八章  单片机小系统及片外扩展

图 8-25 8155 定时器输出波形

M2 M1单个方波0 0

0 1

1 0

1 1

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

终止计数开始计数

Page 85: 第八章  单片机小系统及片外扩展

2. 定时器的编程 对定时器进行编程时 :

1) 将计数常数和定时器方式送入定时器口 (04H 、 05H) ; 2) 设定命令控制字:启动或停止定时器工 作。

Page 86: 第八章  单片机小系统及片外扩展

8.5.4 89C518.5.4 89C51 单片机与单片机与 81558155 的接口的接口及简单程序及简单程序一、 89C51 与 8155 的连接方法 :

Page 87: 第八章  单片机小系统及片外扩展

P0.0

P0.7

AD.0

AD.7

P2.7P2.0

图 8-26 8155 与 89C51 的连接方式

P2 .7

P2 .0

89C51

Page 88: 第八章  单片机小系统及片外扩展

二、编程 : ( 初始化 )1. 作为片外 256BRAM:例 7-1 :向 8155 中 RAM 的 5FH单元送入立即 32H。

其操作程序如下 :MOV A, #32H ;立即数只能通过累加器 A: ;传送到外部 RAM 中 MOV DPTR, #7E5FH ; 指向 8155 的 5FH单元MOVX @DPTR, A ;32H数送入 8155 的 5FH单元

Page 89: 第八章  单片机小系统及片外扩展

2. 作为 I/O 口和定时器工作方式 例 7-2 :将 8155 设置为 I/O 口和定时器工作方

式, A 口定义为基本输入方式, B 口定义为基本输出方式,定时器作为方波发生器。对输入脉冲进行 24 分频 (8155 中定时器最高计数频率为4MHZ) ,则 8155 的操作程序如下:

Page 90: 第八章  单片机小系统及片外扩展

MOV DPTR, #7F04H ;指向定时器低 8 位MOV A, #18H ; 计数常数 0018H = 24

MOVX @DPTR , A ;装入计数常数低 8 位INC DPTR ;指向定时器高 8 位MOV A, #40H(01000000B) ; 设置定时器方式为连续方波 ; 输出 ( M2M1=01) ∵MOVX @DPTR, A ;装入计数常数高 8 位

Page 91: 第八章  单片机小系统及片外扩展

MOVX DPTR, #7F00H ;指向命令状态口MOV A, #0C2H ; 命令控制字设 A 口为基本输 入方式 ,

; B 口为基本输出方式 , 并启动定时器 MOVX @DPTR , A

Page 92: 第八章  单片机小系统及片外扩展

8.6 8.6 串行扩展总线接口技术串行扩展总线接口技术 8.6.1 SPI8.6.1 SPI 串行外设接口总线串行外设接口总线 SPI ( Serial Peripheral Interface—串行外设接

口)总线是 Motorola公司推出的一种同步串行外设接口,它用于 MCU 与各种外围设备以串行方式进行通信( 8 位数据同时同步地被发送和接收),系统可配置为主或从操作模式。

Page 93: 第八章  单片机小系统及片外扩展

SPI 总线主要特征1. 主机或从机工作方式;2. 全双工、 3 线同步传输;3. 串行时钟极性与相位可编程;4. 发送结束置中断标志;5. 写冲突保护;6. 总线竞争保护;7. 主机最大数据传输率是系统时钟频率的 1/2 。

Page 94: 第八章  单片机小系统及片外扩展

一、 SPI 工作原理 1. SPI 引脚 SPI 接口常用于主从分布系统,一个标准的 SPI

系统包括一个 MCU 和几个不同的外部设备。

Page 95: 第八章  单片机小系统及片外扩展

SPI 使用 4 条线:1) 串行时钟线( SCLK) SCLK是主机与从机之间数据传输的同步信号。2) 主机输入 / 从机输出数据线 MISO 在全双工操作下, SPI主机的 MISO被连接到

SPI 从机的 MISO ,数据由从机传送到主机。仅在 SPI 设备被配置为主机模式时,才可由 MISO接收数据。

Page 96: 第八章  单片机小系统及片外扩展

3) 主机输出 / 从机输入数据线 MOSI

在全双工操作下, SPI主机的 MOSI 引脚连接到从机的 MOSI 引脚上,主机通过 MOSI 发送数据的同时,从机通过 MOSI 接收数据。仅在 SPI 设备被配置成主机模式时,才可由其 MOSI 输出数据。4) 从机选择线 SS

在从机模式下, SS 是允许 SPI工作的选片信号;主机模式下, SS 可置位 MODF标志位,保证一个系统只有 1 个 SPI 接口作为主机。

Page 97: 第八章  单片机小系统及片外扩展

移位寄存器移位寄存器

波特率发生器

主机 从机MISO

MOSI

SCLK

MISO

MOSI

SCLK

VDDSS SS

图 8-27 SPI 工作原理图

2. SPI 工作原理

Page 98: 第八章  单片机小系统及片外扩展

典型时序图如下图所示:

图 8-28 SPI 串行总线典型时序图

CS

SCK

DO

DI

Page 99: 第八章  单片机小系统及片外扩展

二、 SPI 总线系统的组成 SPI 总线系统典型结构示意图 :

MISOMOSI

SCKSCK

MISOMOSI

MCU

SCKSCKSCK MOSIMOSIMOSI MISO MISO MISO

外围器件 1’’ 外围器件 3’’外围器件 2’’

(主)I/OI/O

I/OI/O

(从)MCUCS CS CS

CS图 8-29 SPI 外围扩展示意图

Page 100: 第八章  单片机小系统及片外扩展

SPI 有较高的数据传送速度,主机方式最高速率可达 1.05Mb/s。

Page 101: 第八章  单片机小系统及片外扩展

8.6.2 89C518.6.2 89C51 单片机串行扩展单片机串行扩展 SPISPI 外设接外设接口的方法口的方法 一、用一般 I/O 口线模拟 SPI 操作 89C51没有 SPI 接口,可用 I/O 口线和软件来模拟

SPI 的操作。 对于不同的串行接口外围芯片,它们的时钟时序是不同的。在此讨论的外围器件芯片,在 S

CK 的上升沿输入(接收)数据和在下降沿输出(发送)数据。

Page 102: 第八章  单片机小系统及片外扩展

以 89C51 与 MCM2814 ( E2PROM )构成 SPI总线系统来说明其工作原理及程序设计的要点。1. 硬件连接:

+5 V89C51

单片机

E2PROM

MCM2814

P1.0

P1.1

P1.2

P1.3

1

2

3

4

5

6

7

8SPISI

SPICK

SPISO

SS

图 8-30 SPI 总线接口原理图

Page 103: 第八章  单片机小系统及片外扩展

2. 程序1) MCU 串行输入子程序 SPIN

功能:从 MCM2814 的 SPISO 线上接收 1 字节 数据并放入寄存器 R0 中。

Page 104: 第八章  单片机小系统及片外扩展

SPIIN: SETB P1.1 ; 使 (SCK)P1.1( 时钟 ) 输出为 1 CLR P1.2 ; 选择从机 MOV R1, #08H ;置计数器初值

SPIIN1: CLR P1.1 ; 使 P1.1( 时钟 ) 输出为 0 NOP ;延时 NOP MOV C, P1.3 ; 从机输出数据 (SPISO)读 ( 输入 ) 进 C RLC A SETB P1.1 ; 使 P1.1( 时钟 ) 输出为 1 DJNZ R1, SPIN1 ;判断是否循环 8次 MOV R0, A ;1 字节数据送 R0 RET

Page 105: 第八章  单片机小系统及片外扩展

2 ) MCU 串行输出子程序 SPIOUT 功能:将 89C51 中 R0 寄存器的内容传送 到 MCM2814 的 SPISI 线上。

Page 106: 第八章  单片机小系统及片外扩展

SPIOUT: SETB P1.1 ; 使 P1.1( 时钟 ) 输出为 1 CLR P1.2 ; 选择从机 MOV R1, #08H ;置循环次数 MOV A , R0 ;1 字节数据送 Acc

SPIOUT1: CLR P1.1 ; 使 P1.1( 时钟 ) 输出为 0 NOP ;延时 NOP RLC A ;左移累加器 Acc 最高位至 C MOV P1.0, C ; 进位 C 送从机输入 SPISI 线上 SETB P1.1 ; 使 P1.1( 时钟 ) 输出为 1 DJNZ R1, SPIOUT1 RET

Page 107: 第八章  单片机小系统及片外扩展

3 ) MCU 串行输入 / 输出子程序 SPIIO 功能:将 89C51 中 R0 寄存器的内容传送 到 MCM2814 的 SPISI 线中,同时 从 MCM2814 的 SPISO 接收 1 字节 数据存入 R0 中。

Page 108: 第八章  单片机小系统及片外扩展

SPIIO: SETB P1.1 ; 使 P1.1( 时钟 ) 输出为 1 CLR P1.2 ; 选择从机 MOV R1, #08H ;置循环次数 MOV A , R0 ;1 字节数据送累加器 Acc

SPIO1: CLR P1.1 NOP NOP MOV C, P1.3 ; 从机输出 SPISO 送进位 C RLC A ;左移累加器 Acc 最高位至

C MOV P1.0, C ; 进位 C 送从机输入 SETB P1.1 ; 使 P1.1 (时钟)输出为 1 DJNI R1, SPIO1 MOV R0, A RET

Page 109: 第八章  单片机小系统及片外扩展

上述 3 个子程序适用于在串行时钟的上升沿输入和下降沿输出的各种串行外围接口芯片。

对于下降沿输入,上升沿输出的各种串行外围接口芯片,只须改变 P1.1 ( SCK)的输出顺序,则这些子程序也同样适用。

Page 110: 第八章  单片机小系统及片外扩展

二、利用 89C51 串行口实现 SPI 操作 1. 分析利用单片机串口与串行 I/O 接口芯片 进行接口的可行性:

Page 111: 第八章  单片机小系统及片外扩展

例 1 :单片机与串行时钟芯片( HT1380 )接口实现单

片机

TXD

RXD

P1.0

SCLK

I/O

RST

X1

X2

VDD

32kHz

图 8-31 HT1380 与单片机接口电路

Page 112: 第八章  单片机小系统及片外扩展

例 2 :单片机与串行 LED 显示接口 MAX7219 接口实现单

片机

+5 V

TXD

RXD

P1.1

CLK

DIN

Load(CS)

GND

...

DIG0 ~ DIG7

SegA ~ SegG.dp

...

图 8-32 MAX7219 与单片机接口电路

Page 113: 第八章  单片机小系统及片外扩展

例 3 :单片机与串行模拟量输入芯片 MAX1458接口实现

图 8-33 串行 A/D 与单片机接口电路

单片机

+5 V

TXD

RXD

P1.2

SCLK

DIO

CS

GND

VDD

100pF

BDRIVE

INM

INP

Page 114: 第八章  单片机小系统及片外扩展

2. 串行接口芯片的一般接口规律1) 都需要通过单片机的开关量 I/O 线进行芯片 选择;2) 当芯片未选中时,数据端口均处于高阻状态;3) 与单片机交换信息时均要求单片机串行口以方式 0 进行;4) 传输数据时的帧格式均要求先传送命令 / 地址,再传送数据。

Page 115: 第八章  单片机小系统及片外扩展

5) 时序波形

图 8-34 串行接口信号的一般时序

0 1 2 3 4 5 6 7 0 1 2 3CLK

CS

DIN 命令/ 地址 数据

4 5 6 7

Page 116: 第八章  单片机小系统及片外扩展

3. 扩展多个串行接口芯片的典型控制器结构

图 8-35 基于串行接口控制器的电路结构

...

TXD

RXD

P1.0

P1.1

P1.2

P1.3P1.4

CLKDIN

RST

SCLKI/O

CS

SCLKDIO

CS

STB

BusyP0

89C51

显示芯片

时钟芯片

A/D转换及放大芯片

打印机