52
第7第 第第第第 第第第第第第第 第第第第第第 第第第第第第第第第第第 ROM RAM 第第第 第第第第第第第MOVX 第第第第第)。

第7章 单片机系统扩展及接口技术

  • Upload
    rasia

  • View
    81

  • Download
    0

Embed Size (px)

DESCRIPTION

第7章 单片机系统扩展及接口技术. 通过地址总线、数据总线和控制总线实现 ROM、RAM 或其它接口电路的扩展( MOVX 指令的运用)。. 7.1 扩展三总线的产生. 1 地址总线 ----用于传送单片机送出的地址信号 P0 口为 低8位地址 总线,使用一个8位的数据锁存器来锁定低8位地址信号; P2 口为 高8位地址 总线。 2 数据总线 -----用于单片机与存储器之间或单片机和 I/O 之间数据传送 P0 口做为 低8位地址 和 数据 复用总线。. 片外三总线结构. 3 控制总线 - PowerPoint PPT Presentation

Citation preview

Page 1: 第7章   单片机系统扩展及接口技术

第 7 章 单片机系统扩展及接口技术

通过地址总线、数据总线和控制总线实现ROM 、 RAM 或其它接口电路的扩展( MOVX 指令的运用)。

Page 2: 第7章   单片机系统扩展及接口技术

7.1 扩展三总线的产生

Page 3: 第7章   单片机系统扩展及接口技术

片外三总线结构1 地址总线 ---- 用于传送单片机送出的地址信号    P0 口为低 8 位地址总线,使用一个 8 位的数据锁存器来

锁定低 8 位地址信号;    P2 口为高 8 位地址总线。2 数据总线 ----- 用于单片机与存储器之间或单片机和 I/O 之间数据传送

P0 口做为低 8 位地址和数据复用总线。

Page 4: 第7章   单片机系统扩展及接口技术

3 控制总线 ----- 单片机发出的用于控制片外 RAM,ROM 和 I/O 口读

/ 写操作的一组控制线。

(1) 使用 ALE 作地址锁存的选通信号 , 以实现低 8 位地址锁存。(2) 以 PSEN 信号作为扩展程序存储器的读选通信号。(3) 以 EA 信号作为内外存储器的选择信号。(4) 以 RD 和 WR 作为扩展 RAM 和 I/O 的读写选通信号。

Page 5: 第7章   单片机系统扩展及接口技术

具有三态功能的 8D 锁存器

/L :三态控制。 低电平:允许数据输出,三态门通; 高电平:三态门关闭,输出高阻。

G :数据锁存控制。 高电平时,输出随输入变化; 低电平时, Q 端将被锁存(低电平锁存)。

D7 Q7 74LS373

D0 Q0

G /L

数据 输入端

数据 输出端

Page 6: 第7章   单片机系统扩展及接口技术

7.2 扩展程序存储器7.2.1 访问片外程序存储器的操作时序

1 、 访问片外程序存储器的控制信号(1) 使用 ALE 作地址锁存的选通信号 , 以实现低 8 位地址锁存(2) 以 PSEN 信号作为扩展程序存储器的读选通信号 , 接 OE端(3) 以 EA 信号作为内外存储器的选择信号

2 、操作时序

Page 7: 第7章   单片机系统扩展及接口技术

访问外部程序存储器 ROM 的时序 :

A15-A8(PC)

A7-A0 OP A7-A0 常数

存储器数据输出控制 /Psen

地址总线(高 8 位) P2 口地址数据总线(低 8 位) P0 口

S1 S2 S6S5S4S3

74LS373 地址锁存信号 ALE

A15-A8 (DPTR+A)

MOVC A,@A+DPTR

A B

Page 8: 第7章   单片机系统扩展及接口技术

片外 ROM 访问时序说明P0 、 P2 口作地址和数据总线。其中 P0 口作为地址和数据复用总线,前半部( A 段)作地址总线,后半部( B段 ) 作为数据总线。外部程序存储器 ROM 的操作步骤如下:

1 、必须为 ROM 提供完整的( 16 位)地址信息; 2 、 ROM 芯片的 /CE 端 =0 ,选中该芯片; 3 、在满足上述条件的基础上,当 ROM 的 /OE=0 时( B

时间段),存储器输出数据的三态门打开,并将与输入地址相对应的存储单元中的指令(数据)向外输出,单片机通过 P0 口将指令送至 CPU 内部。74LS373 锁存器 : 将 A 时间段 P0 口输出的低位地址进行保存,使 ROM 在 B 时间段仍然可以得到完整的地址信号。

转时序图

Page 9: 第7章   单片机系统扩展及接口技术

7.2.2 扩展 EPROM2764A

常用芯片介绍

Page 10: 第7章   单片机系统扩展及接口技术
Page 11: 第7章   单片机系统扩展及接口技术

扩展 16KB EPROM

Page 12: 第7章   单片机系统扩展及接口技术

MCS-51 与 1 片 16K ROM 的连接

CEA13 :A8A7 O7 : : : : : : A0 O0

OE

27128 16K ROMMCS-51

/CE = P2.6(A14)

地址信号

三态输出的数据口由 /OE 控

制D7 Q7 74LS373

D0 Q0

G /L

P2.7 P2.6

: :

P2.0P0.7

: : :

P0.0ALE

/EA /Psen

:

Page 13: 第7章   单片机系统扩展及接口技术

MCS-51 与 2 片 32K ROM 的连接使用两片 32K 的 ROM 芯片扩展为 64K 的存储阵列。

A15

P2 口

MCS - 51

P0 口

ALE/EA Psen

/CE2A14

A8

A7

A0

/OE2O0 ~ O7

/CE1A14

A8

A7

A0

/OE1O0 ~ O7

74LS373

Page 14: 第7章   单片机系统扩展及接口技术

由两片 32K 的 ROM 构成 64K 存储阵列与 A15 的

关系表A15

/CE

A14 ~A8

P2 口

A7 ~ A0

P0 口地址范围

ROM1 工作

状态

ROM2 工作

状态00

00000001111111

0000000011111111

0000H ~7FFFH

选中/CE=A15

未选中

1

1

0000000

1111111

00000000

11111111

8000H ~

FFFFH未选中

选中/CE=/A15

Page 15: 第7章   单片机系统扩展及接口技术

74LS138 3-8 线译码器

A 、 B 、 C :选择输入。作为与输出对应的二进制编码输入;G1 、 /G2A 、 G2B :使能输入,作为片选控制输入;y7 ~ y0 :译码器输出,低电平有效。

C B A y7 y6 y5 y4 y3 y2 y1 y0

0 0 0 1 1 1 1 1 1 1 0

0 0 1 1 1 1 1 1 1 0 1

0 1 0 1 1 1 1 1 0 1 1

0 1 1 1 1 1 1 0 1 1 1

1 0 0 1 1 1 0 1 1 1 1

1 0 1 1 1 0 1 1 1 1 1

1 1 0 1 0 1 1 1 1 1 1

1 1 1 0 1 1 1 1 1 1 1

74LS138G1/G2A

/G2B

CBA

y0y1y2y3y4y5y6y7

Page 16: 第7章   单片机系统扩展及接口技术

MCS-51 与多个 ROM 的连接(地址线全译码)

若需要对 2 片以上的芯片扩展,可以通过译码电路实现。

P2.7P2.6P2.5

P2.4P2.0

P0 口

ALEPsen

/CE0

A12A8A7 8K×8

A0

/OE1O0 ~ O774LS373

C y7

BA y 0

/CE1

A12A8A78K×8

A0

/OE1O0 ~ O7

/CE7

A12A8A78K×8

A0

/OE1O0 ~ O7

MCS–51 74LS138

Page 17: 第7章   单片机系统扩展及接口技术

采用 LS138 译码器实现 ROM 扩展示意表P2.7 ~

P2.5

138 输入

片选 /CEi

138 输出选中 ROM P2.4 ~ P0.0 有效地址范围

0 0 0 Y0=0 第 1 片 0000H ~ 1FFFH0000H ~

1FFFH

0 0 1 Y1=0 第 2 片 0000H ~ 1FFFH2000H ~

3FFFH

0 1 0 Y2=0 第 3 片 0000H ~ 1FFFH4000H ~

5FFFH

0 1 1 Y3=0 第 4 片 0000H ~ 1FFFH6000H ~

7FFFH

1 0 0 Y4=0 第 5 片 0000H ~ 1FFFH8000H ~

9FFFH

1 0 1 Y5=0 第 6 片 0000H ~ 1FFFHA000H ~

BFFFH

1 1 0 Y6=0 第 7 片 0000H ~ 1FFFHC000H ~

DFFFH

1 1 1 Y7=0 第 8 片 0000H ~ 1FFFHE000H ~

FFFFH

Page 18: 第7章   单片机系统扩展及接口技术

7.3 扩展数据存储器与程序存储器扩展相同,使用 P0 、 P2 口作为地址、数据总线。

1 、当使用 MOVX @Ri ,A 指令时,系统仅使用 P0 口输出地址信号( P2 口不用)。

2 、当使用 MOVX @DPTR,A 指令时, P0 口输出 DPTR 提供的低八位地址信号, P2 口输出 DPTR 提供的高八位地址信号。

3 、不论哪种情况, P0 口都是地址 / 数据复用总线,因此仍要使用 74LS373 来锁存 P0 口的地位地址信号。

Page 19: 第7章   单片机系统扩展及接口技术

与 ROM 扩展不同:

使用访问外部 RAM 指令 MOVX 时,在时序中将产生 /RD 或 /WR 信号,因此须将这些控制信号与外 RAM 的读( /RD) 、写( /WR )控制端相连接,实现系统对外RAM 的读写控制。

Page 20: 第7章   单片机系统扩展及接口技术

7.3.1 常用的数据存储器芯片1. 静态

RAM(SRAM):6116,6264,62128 等 2.EEPROM:2816,2864 等

Page 21: 第7章   单片机系统扩展及接口技术

A7

A6

A5

A4

A3

A2

A1

A0

D0

D1

D2

GN

D

Vcc

A8

A9

WE

OE

A10

CE

D7

D6

D5

D4

D3

1 242 233 224 215 206 197 188 179 1610 1511 1412 13

INTEL6116

NC A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2GND

Vcc WE CS2 A8 A9 A11 OE A10 CS1 D7 D6 D5 D4 D3

1234567891011121314

2827262524232221201918171615

62646116

6264芯片容量 =8K8 位 /片6116芯片容量 =2K8 位 /片

Page 22: 第7章   单片机系统扩展及接口技术

执行外部指令 : movx a, @dptr ; 将外 RAM 的 x 送 A

7.3.2 访问片外 RAM 的操作时序

S1 S2 S6S5S4S3 S1 S2 S6S5S4S3

ALE

Psen

A15-A8(PC) A15-A8 ( DPH )

A7-A0 指令 A7- A0 数据

RD

P2 口P0 口

选中外部 RAM

Page 23: 第7章   单片机系统扩展及接口技术

7.3.3 扩展 2KB RAM

Page 24: 第7章   单片机系统扩展及接口技术

MCS-51 与 8K RAM 的连接

P2.5 P2.4

: :

P2.0P0.7

: : :

P0.0ALE

/RD

/WR

CE

A12 : :A8A7 O7 : : : : : : A0 O0

/OE /WE

D7 Q7

D0 Q0

CP

6264 8K RAMMCS-51

/CE = P2.5(A12)

三态输出的数据口

由 /OE 控制

Page 25: 第7章   单片机系统扩展及接口技术

7.3.4 8031 外扩 32K EPROM 和 32K RAM

Page 26: 第7章   单片机系统扩展及接口技术
Page 27: 第7章   单片机系统扩展及接口技术

7.3.5 扩展 8K EEPROM

Page 28: 第7章   单片机系统扩展及接口技术

7.4 简单并行 I/O 扩展7.4.1 I/O 口的直接输入 / 输出

Page 29: 第7章   单片机系统扩展及接口技术

LOOP: MOV A,#0FH

MOV P1,A

MOV A,P1

SWAP A

MOV P1,A

AJMP LOOP

Page 30: 第7章   单片机系统扩展及接口技术

7.4.2 简单 I/O 接口的扩展方法

Page 31: 第7章   单片机系统扩展及接口技术

编程:按下任意键,对应的 LED 发光。LOOP:MOV DPTR,#0FEFFH

MOVX A,@DPTR

MOVX @DPTR,A

SJMP LOOP

Page 32: 第7章   单片机系统扩展及接口技术

7.5 可编程 I/O 接口扩展

8255A 可编程通用并行接口8155 带 RAM 和定时器 / 计数器的可编程并行接口8279 可编程键盘 / 显示接口8253 可编程通用定时器

Page 33: 第7章   单片机系统扩展及接口技术

7.5.1 扩展 8155 可编程外围并行接口芯片

8155 、 8255 等芯片都是美国 Intel 公司开发出的系列通用可编程 I/O 接口芯片。 40 脚 DIP 封装。

8155 不仅可以提供三个并行的 I/O 端口,在其内部还集成有 256 个字节的 RAM 存储空间、一个 14 位的定时 / 计数器,因此非常适合与 MCS-51 单片机连接实现系统功能的扩展。

Page 34: 第7章   单片机系统扩展及接口技术

8155 的结构及引脚

Page 35: 第7章   单片机系统扩展及接口技术

8155 的内部结构简图

I/O寄存器A 口

256字节RAM

双向数据

缓冲器

地址锁存器

定时计数器

( 14 位)

读 / 写控制器

地址译码

I/O寄存器B 口

I/O寄存器C 口

状态命令

寄存器

AD7-AD0

/CE

IO/M

ALE

/RD

/WR

REST

T / IN

T / OUT

Page 36: 第7章   单片机系统扩展及接口技术

8155 引脚说明AD7-AD0: 数据 / 地址总线。与 MCS-51 的 P0 口连接,分

时传送地址和数据信息,是连接两者的通道。I/O 口线: PA7-0 、 PB7-0 和 PC5-0 为 8155 的 A 、 B 和C 口。 REST 、 /CE 和 IO/M : 复位、片选和 I/O 端口 /RAM 选择线。/RD 、 /WR: 读写控制线。ALE:8155 的地址锁存信号。 ALE=1 时,信号进入地址锁

存器, ALE=0 时,锁存器锁存地址。T/IN 、 T/OUT: 计数器的脉冲输入线和输出线,输出波形

与工作方式有关。

Page 37: 第7章   单片机系统扩展及接口技术

7.5.2 8155 寄存器8155 的 A 、 B 和 C 口的数据传送是由 CPU 发出的命令字控制的。 ( 1 ) 8155 内部的 7 个寄存器地址

/CE IO/M A7-A3 A2A1A0 所选端口

0 1 XXXXX 000命令(只写) / 状态(只

读)寄存器0 1 XXXXX 001 A 口0 1 XXXXX 010 B 口0 1 XXXXX 011 C 口0 1 XXXXX 100 计数器低 8 位0 1 XXXXX 101 计数器高 8 位0 0 XXXXX XXX RAM 单元

Page 38: 第7章   单片机系统扩展及接口技术

( 2 ) 8155 的命令字

PB 、 PA:A 、 B 口工作方式: 0 输入; 1 输出。PC2 、 PC1: C 口工作方式: 00 ALT1 (输入)

01 ALT2 (输出) 10 ALT3 (选通方式) 11 ALT4 (选通方式)

IEB 、 IEA: A 、 B 口中断允许位: 0 禁止中断; 1 允许中断。TM2 、 TM1: 计数器工作方式: 00 无操作; 01 停止计数;

10 计满后停止; 11 开始计数。

TM2 TM1 IEB IEA PC2 PC1 PB PA

Page 39: 第7章   单片机系统扩展及接口技术
Page 40: 第7章   单片机系统扩展及接口技术

( 3 ) 8155 的状态字─表征 8155 的状态

INTRA : A 中断请求标志。 0 无中断; 1 有中断。ABF : A 口缓冲器状态。 0 空; 1 满。INTEA : A 口中断允许位。 0 禁止; 1 允许。INTRA : B 中断请求标志。 0 无中断; 1 有中断。BBF : B 口缓冲器状态。 0 空; 1 满。INTEB : B 口中断允许位。 0 禁止; 1 允许。TIMER: 定时器中断。 0 读状态字后或硬件复位后。

1 有定时器中断时。

X TIMERINTE

BBBF

INTRB

INTEA

ABFINTR

A

状态字存在于 8155 的状态寄存器中,其地址与命令口地址一样可以用 MOVX A, @ DPTR 指令来读取 8155 的状态。状态字寄存器与命令寄存器是靠输入、输出来自动区分的。

Page 41: 第7章   单片机系统扩展及接口技术

8155 的工作方式( 1 )存储方式:若 IO/M=0 、 CE=0 时, 8155处于存储器

模式,此时单片机通过 AD7-AD0 与 8155

的 RAM 单元进行读写数据。( 2 ) I/O 方式:若 IO/M=1,CE=0 时, 8155处于 I/O 状态。

a: 通用 I/O 方式: A,B,C 都是通用的数据端口; b: 选通 I/O 方式: A,B 为选通 I/O 方式, C 口

作 为 A,B 口的联络控制线。 选通方式是一种较为特殊的数据传输方式,它不同于一般并行口的 I/O 操作。它主要用于高速 CPU 与低速外设之间的数据交换。

Page 42: 第7章   单片机系统扩展及接口技术

C 口在四种工作方式下的各位定义

C 口通用 I/O 方

式 选通 I/O 方式

ALT1 ALT2 ALT3 ALT4

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

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

PC2 输入 输出 ASTB ( A 口选通) ASTB ( A 口选通)

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

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

PC5 输入 输出 输出 BSTB ( B 口选通)

Page 43: 第7章   单片机系统扩展及接口技术

选通 I/O 数据输入操作 当外设准备好数据并送 PA 口时,发出低电平的选通信号ASTB;

8155 接收到 ASTB 后:1 ,将 PA 上的数据装入 A 口寄

存器2 ,使 A 口数据满 ABF置位以通知外设数据已收到。8155 在 ASTB 的上升沿使PC0 的 A INTR标志置位,以通知单片机数据已收到。CPU响应中断执行服务程序,当执行到从 A 口读取输入的数据( MOVX )时, /RD 的上升沿将 PC0 的 INTEA清零并使 PC1 的 ABF 变低 , 通知外设输入下一个数据。

C 口为 ALT3模式

PC0:A 口中断 A INTR标志输出 , 送单片机;

PC1:A 口缓冲器满 ABF标志输出,送外设。

PC2:A 口选通输入 ASTB ,

P0

INT0

PAPD0-7/RD PC1 PC2 PC0

D7- 0

ASTB

ABF

MCS-51 8155 外设

A INTR

Page 44: 第7章   单片机系统扩展及接口技术

选通 I/O 数据输出操作 CPU 执行 MOVX 指令将数据送PA 口, 8155收到数据后 ABF变高通知外设数据已到达 PA 口。外设接收到 ABF 的高电平后:

1 ,从 D7-0 上接收数据; 2 ,使 ASTB 变低,通知 8155

外 设已接收到数据。

当 8155监测到 ASTB回到高电平时,使 PC0D 的 A INTR 变为高电平,向单片机申请中断。单片机在中断服务程序中巴下一个数据送到 A 口,进行下一个数据的输出。

C 口为 ALT3模式,控制字: 00011001B

PC0:A 口中断 A INTR标志输出 , 送单片机;

PC1:A 口缓冲器满 ABF标志输出,送外设。

PC2:A 口选通输入 ASTB.

P0

INT0

PAPD0-7

PC1 PC2 PC0

D7- 0

ASTB

ABF

MCS-51 8155 外设

A INTR

Page 45: 第7章   单片机系统扩展及接口技术

8155 内部定时器的使用严格的讲, 8155 的定时器应当称为计数器,因为定时器的计数脉冲来自外部的 T/IN 引脚的输入脉冲 ,所以 8155 的定时器非常适合做 1/n 的分频器 ( 如图)。定时器共有 4 种工作方式 , 由计数器高 8 位中的最高两位M2 、 M1 来确定。不同的工作方式对应着不同的 T/OUT波形。

8155

T/IN

T/OUT

由 8155 作 1/5 分频器

MCS-51

Page 46: 第7章   单片机系统扩展及接口技术

8155 定时器 4 种工作方式与 T/OUT波形

Page 47: 第7章   单片机系统扩展及接口技术

8155 内部定时器的 4 种工作方式1 , M2M1=00 时 : 当计数器“减 1” 到 “全 0” 时,在 T/OUT 线上输出单个方波,如果计数初值为奇数,则高电平持续时间比低电平多一个计数脉冲;

2 , M2M1=01 时 : 同上一方式,差别为当计数器“减 1” 到 “全 0” 时,自动装入计数初值,所以在 T/OUT 上为连续方波;

3 , M2M1=10 时 : 当计数器“减 1” 到 “全 0” 时,在 T/OUT 线上输出一个单脉冲;

4 , M2M1=11 时 : 当计数器“减 1” 到 “全 0” 时,在 T/OUT 线上输出一个单脉冲,且自动重装计数初值,所以在 T/OUT 线上输出连续的脉冲。

Page 48: 第7章   单片机系统扩展及接口技术

7.5.3 8155 应用与编程举例

充分利用 8155 的内部资源可以简化单片机系统的设计。1 、 作片外 256B RAM

2 、作扩展 I/O 口使用3 、 定时器扩展用

8155 与 MCS-51 连接时按外部 RAM 地址统一编址。8155 的 I/O 工作方式我们常选择“通用 I/O 方式” 。

Page 49: 第7章   单片机系统扩展及接口技术

8155 与 MCS-51 的连接P2.7

P2.0

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

ALE/RD/WR

/CE

IO/M PA

AD7AD6AD5 PBAD4AD3AD2 AD1 PCAD0 ALE T/OUT/RD/WR T/IN

MCS-51 8155

P2.7-P2.0 P0.7-P0.0 地址 选择01111110 00000000 7E00H RAM’256

存储单元01111110 11111111 7EFFH

01111111 00000000 7F00H 命令寄存器01111111 00000001 7F01H PA 口01111111 00000010 7F02H PB 口01111111 00000011 7F03H PC 口

01111111 00000100 7F04H计数器低 8

01111111 00000101 7F05H计数器高 8

8155 内部各寄存器的地址分配

Page 50: 第7章   单片机系统扩展及接口技术

基本操作软件

例 7-1 向 8155RAM 中的 5FH 单元送入立即数32H 。

MOV A,#32H

MOV DPTR,#7E5FH

MOVX @DPTR,A

Page 51: 第7章   单片机系统扩展及接口技术

例 7-2 将 8155设置为 IO 口 , 定时器工作方式 ,A 口定义为基本输入方式 ,B 口为基本输出方式 , 定时器为方波输出 , 对输入脉冲 24 分频 (8155 定时器最高计数频率为 4MHz) 。

MOV DPTR,#7F04H ; 指向定时器低 8 位MOV A,#18H ;18H=24MOVX @DPTR,AINC DPTRMOV A,#40H ;M2M1=01MOVX @DPTR,AMOVX DPTR,#7F00MOV A,#C2H ;1100-0010.A,B 为基本方式 , 并启动定

时器MOVX @DPTR,A

Page 52: 第7章   单片机系统扩展及接口技术

作业

P138

8 、 10 、 12 、 13