69
第第第 MCS-51 第第第第第 第第 第第第第第第 51 第第第第第第 第第第第第第第第第第第第第第第 第第第第第 第第第第第第第第第 第第第第第 第第第第第第第第第第第第第第第第第第第第 ,一,, 51 第第第 第第第第第第 第第第第第第第第 第 统一 第第第第第第第第第第第第第第第第第第第第第第第 第第第 体: 第第第第第 第第第第第第第第第第第第第 常常 第第第第第第

第四章 MCS-51 单片机的系统扩展

  • Upload
    brosh

  • View
    105

  • Download
    6

Embed Size (px)

DESCRIPTION

第四章 MCS-51 单片机的系统扩展. 本章主要介绍 51 系列单片机系统扩展问题,在本章中要研究较多的 硬件 方面及 硬软 结合方面的问题,本章与第一章关系密切,在学习本章内容之前,要先明确 51 系列单片机本身的系统资源,可先复习一下 第一章 的有关单片机硬件组成方面的内容。. 本章将介绍以下具体内容: 系统扩展的含义、单片机的地址总线和数据总线 、常见 系统扩展电路举例. 一、系统扩展的含义 - PowerPoint PPT Presentation

Citation preview

Page 1: 第四章   MCS-51  单片机的系统扩展

第四章 MCS-51 单片机的系统扩展

本章主要介绍 51 系列单片机系统扩展问题,在本章中要研究较多的硬件方面及硬软结合方面的问题,本章与第一章关系密切,在学习本章内容之前,要先明确 51系列单片机本身的系统资源,可先复习一下第一章的有关单片机硬件组成方面的内容。

本章将介绍以下具体内容: 系统扩展的含义、单片机的地址总线和数据总线、常见系统扩展电路举例

Page 2: 第四章   MCS-51  单片机的系统扩展

一、系统扩展的含义

单片机中虽然已经集成了 CPU 、 I/O 口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。 需要解决的问题是单片机与相应芯片的接口电路连接(即地址总线、数据总线、控制总线的连接)与编程。

Page 3: 第四章   MCS-51  单片机的系统扩展

二、单片机的地址总线和数据总线

51 系列单片机没有专用的对外地址总线和数据总线,其 P0 口和 P2 口既是通用 I/O 口,同时 P0 口还是分时复用的双向数据总线和低 8 位地址总线(一般需要加一级锁存器),而 P2 口则是高 8 位地址总线。

Page 4: 第四章   MCS-51  单片机的系统扩展

三、常见系统扩展电路

系统扩展 ---- 单一功能的系统扩展、综合功能 的扩展。1. 单一功能的系统扩展 ( 1 )存储器的扩展(程序存储器、数据存储 器、 E2PROM )

Page 5: 第四章   MCS-51  单片机的系统扩展

( a )程序存储器的扩展

. 程序存储器的作用 ---- 存放程序代码或常数表格

. 扩展时所用芯片 ---- 一般用只读型存储器芯片(可以是

EPROM 、 E2PROM 、 FLASH 芯片等)。

. 扩展电路连接 ---- 用 EPROM 2732 扩展程序存储器。

. 存储器地址分析 ---- 究竟单片机输出什么地址值时,可以

指向存储器中的某一单元。

Page 6: 第四章   MCS-51  单片机的系统扩展

2732----4K EPROM

2732 引脚功能

A0-A11 地址线

CE 选片

OE/Vpp输出允许 /编程电源

O0-O7 数据线

A7A6A5A4A3A2A1A0O0O1O2GND

VccA8A9A11OE/VppA10CEO7O6O5O4O3

2732

. 扩展时所用芯片

Page 7: 第四章   MCS-51  单片机的系统扩展

. 扩展电路连接

图 4.2 扩展电路

单片机 8031

P2.0P2.1P2.2P2.3 A8

A9A10A11

ALE PSEN

74LS373

G

2732

A7A6A5A4A3A2A1A0

O0O1O2O3O4O5O6O7

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

OE

CE

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7

8031 2732

数据总线的连接:P0.0-P0.7 (数据总线) ----------------------------------------O0-O7 地址总线的连接:P0.0-P0.7 (地址总线低 8 位) ---------------------------------- A0-A7P2.0-P2.3 (地址总线高 8 位中的 4 位) --------------------------- A8-A11

控制总线的连接: PSEN (程序存储器允许,即读指令) -------------------------- OE ALE (地址锁存允许) ------------------------------------- 接 373 的使能端 G

经过锁存器 373

1 2 3

Page 8: 第四章   MCS-51  单片机的系统扩展

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15 地址 A8~A15

A0~A7 A0~A7

指令码 指令码

图 4.1 从外存取指令时序图

Page 9: 第四章   MCS-51  单片机的系统扩展

P2.0P2.1P2.2P2.3 A8

A9A10A11

ALE PSEN

74LS373

G

2732

A7A6A5A4A3A2A1A0

O0O1O2O3O4O5O6O7

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

OE

CE

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15 地址 A8~A15

A0~A7 A0~A7

指令码 指令码

单片机 8031

Page 10: 第四章   MCS-51  单片机的系统扩展

.存储器地址分析 ---- 究竟单片机输出什么地址值时,可以指向存储器中的某一单元。

8031 P2.3 ……… P2.0 P0.7………………………… P0.0 (2732 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0) 选中单元 0 0 0 0 0 0 0 0 0 0 0 0 ( 0000H ) 0 0 0 0 0 0 0 0 0 0 0 0 1 ( 0001H ) 1 0 0 0 0 0 0 0 0 0 0 1 0 ( 0002H ) 2 0 0 0 0 0 0 0 0 0 0 1 1 ( 0003H ) 3 0 0 0 0 0 0 0 0 0 1 0 0 ( 0004H ) 4 . . . 1 1 1 1 1 1 1 1 1 1 1 1 ( 0FFFH ) 4K-1 可见,当单片机输出地址 0000H~0FFFH 时,选中 2732 的 0~4K-1 号单元,即按照上面电路扩展的 4K 存储器的地址范围是 0000H~0FFFH (共 4K 字节)。

Page 11: 第四章   MCS-51  单片机的系统扩展

请思考:请同学们结合图 4.1 来分析图 4.2 中 373 的作

用,并说明没有它行不行?为什么?

. 扩展时所用芯片

. 程序存储器的作用

. 扩展电路连接

. 存储器地址分析

程序存储器的扩展

Page 12: 第四章   MCS-51  单片机的系统扩展

( b )数据存储器的扩展

. 数据存储器的作用 ---- 存放数据,可改写

. 扩展时所用芯片 ---- 一般用静态读写型存储器芯片 SRAM ,

也可以用 E2PROM 、 FLASH 芯片等

. 扩展电路连接 ---- 用 SRAM 6116 扩展程序存储器。

. 存储器地址分析 ---- 究竟单片机输出什么地址值时,可

以指向存储器中的某一单元。

Page 13: 第四章   MCS-51  单片机的系统扩展

6116----2K SRAM

6116 引脚功能A0~A1

0地址线

CE 选片

OE 读

D0~D7 数据线

A7A6A5A4A3A2A1A0D0D1D2GND

VccA8A9WEOEA10CED7D6D5D4D3

6116

. 扩展时所用芯片

写 WE

Page 14: 第四章   MCS-51  单片机的系统扩展

. 扩展电路连接

图 4.5 扩展电路

8031 6116

数据总线的连接:P0.0~P0.7 (数据总线) ----------------------------------------D0~D7 地址总线的连接:P0.0~P0.7(地址总线低 8位) ---------------------------------- A0~A7P2.0~P2.2(地址总线高 8位中的 3位) --------------------------- A8~A10

控制总线的连接: RD (读外部数据) ------------------------------------------- OE WR (写外部数据) ------------------------------------------- WE ALE (地址锁存允许) ------------------------------------- 接 373 的使能端 G

经过锁存器 373

单片机 8031

P2.0P2.1P2.2

A8A9A10

ALE

RD

74LS373

G

6116

A7A6A5A4A3A2A1A0

O0O1O2O3O4O5O6O7

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

OE

CE

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7

WEWR

P2.7

Page 15: 第四章   MCS-51  单片机的系统扩展

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15

A0~A7

三态

数据 D0~D7 入

图 4.4 读外部数据 RAM 时序图

RD

Page 16: 第四章   MCS-51  单片机的系统扩展

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15

A0~A7

数据 D0~D7 出

图 4.4 写外部数据 RAM 时序图

WR

Page 17: 第四章   MCS-51  单片机的系统扩展

单片机 8031

P2.0P2.1P2.2

A8A9A10

ALE

RD

74LS373

G

6116

A7A6A5A4A3A2A1A0

O0O1O2O3O4O5O6O7

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

OE

CE

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7

WEWR

P2.7

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15

A0~A7 三态

数据 D0~D7 入

RD

图 4.4 读外部数据 RAM 时序图

Page 18: 第四章   MCS-51  单片机的系统扩展

.存储器地址分析 ---- 究竟单片机输出什么地址值时,可以指向存储器中的某一单元。

8031 P2.7…………… P2.2 P2.1 P2.0 P0.7………………………… P0.0 选中单元(6116 CE A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0) 0 X X X X 0 0 0 0 0 0 0 0 0 0 0 ( 0000H ) 0 0 X X X X 0 0 0 0 0 0 0 0 0 0 1 ( 0001H ) 1 0 X X X X 0 0 0 0 0 0 0 0 0 1 0 ( 0002H ) 2 0 X X X X 0 0 0 0 0 0 0 0 0 1 1 ( 0003H ) 3 0 X X X X 0 0 0 0 0 0 0 0 1 0 0 ( 0004H ) 4 . . . 0 X X X X 1 1 1 1 1 1 1 1 1 1 1 ( 07FFH ) 2K-1 可见,当单片机输出地址 0000H~07FFH 时,选中 6116 的 0~2K-1 号单元,即按照上面电路扩展的 4K 存储器的地址范围是 0000H~07FFH (共 2K 字节)。

Page 19: 第四章   MCS-51  单片机的系统扩展

请注意,与扩展程序存储器相比较,有以下不同点:ⅰ. 存储器芯片为可读可写的静态 RAM 芯片,有读写控制引脚OE 和 WE 。ⅱ. 单片机输出的对数据存储器的读写控制信号分别是 RD (而不再是读程序存储器时的 PSEN )和 WR 。

. 扩展时所用芯片

. 程序存储器的作用

. 扩展电路连接

. 存储器地址分析

数据存储器的扩展

Page 20: 第四章   MCS-51  单片机的系统扩展

( c ) E2PROM 的扩展 2864----8K E2PROM

2864 引脚功能A0~A1

2地址线

CE 选片

OE 读

D0~D7 数据线

N.CA12A7A6A5A4A3A2A1A0D0D1D2GND

VccWEN.CA8A9A11OEA10CED7D6D5D4D3

2864

.扩展时所用芯片

写 WE

Page 21: 第四章   MCS-51  单片机的系统扩展

单片机 8031

P2.4

P2.0 A8

A12

ALE

RD

74LS373

G

2864

A7A6A5A4A3A2A1A0

D0D1D2D3D4D5D6D7

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

OE

CE

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7

WEWR

P2.7

PSEN &

图 4.9 扩展 2864

Page 22: 第四章   MCS-51  单片机的系统扩展

★ 请思考:什么情况下图 4.9 中的与门输出低电平,使 E2PRAM 的内容可以被读出,读出的是什么方面的内容?图中扩展的 E2PRAM 是外部数据存储器?外部程序存储器?两者都扩展了?

( 2 )外部中断源的扩展 ----51 系列单片机有两个外部中断源( INT0 、 INT1 ),中断源的扩展可用与存储器扩展类似的方法,外接中断控制芯片(如 8259 )来进行扩展;也可以利用单片机中的定时器 T0 、 T1 来扩展(见第一章习题 1.20 );还可以外接门电路配合相应的查询软件进行简单的扩展。这里我们研究最后一种方法。

Page 23: 第四章   MCS-51  单片机的系统扩展

8031

1

1

1

1

P1.0P1.1P1.2P1.3

INT0ITS4

ITS3

ITS2

ITS1

+5V

图 4.22 扩展外部中断源

R

Page 24: 第四章   MCS-51  单片机的系统扩展

要注意的是:ⅰ. 图 4.22 中的非门是 OC (即集电极开路)门,图中的电阻是这些非门的上拉负载电阻,注意只有 OC 门才可以象图中那样采取线与方式连接。ⅱ. 此处是将一个外部中断源( INT0 )扩展成了 4 个( ITS1-ITS4 ),同理还可以将 INT1 进行扩展。ⅲ. 由于经过一级反相,这 4 个中断源是上升沿或高电平引起中断。ⅳ. 不管这 4 个中断源中的哪一个或哪几个申请中断,都是通过 INT0 申请中断,因此处理程序入口地址只有一个即 INT0 的入口地址( 0003H )。

Page 25: 第四章   MCS-51  单片机的系统扩展

中断处理程序PINT0 : PUSH PSW JB P1.0 , PIS1 ;查询 ITS1 有无中断请求 JB P1.1 , PIS2 ;查询 ITS2 有无中断请求 JB P1.2 , PIS3 ;查询 ITS3 有无中断请求 JB P1.3 , PIS4 ;查询 ITS4 有无中断请求REP : POP PSW RETIPIS1 : … . ;进入 ITS1 中断处理程序 AJMP REP PIS2 : … . ;进入 ITS2 中断处理程序 AJMP REPPIS3 : … . ;进入 ITS3 中断处理程序 AJMP REPPIS4 : … . ;进入 ITS4 中断处理程序 AJMP REP

Page 26: 第四章   MCS-51  单片机的系统扩展

★★ 请思考:请思考:查询软件的作用是什么?没有 查询软件的作用是什么?没有 它行不行?它行不行?

2. 综合功能的扩展:使用具有综合功能的芯片、

使用多个芯片扩展。( 1 )综合功能芯片扩展 ---- 8155 使用具有综合功能的可编程芯片 8155 来同时扩展单片

机的 I/O 口、定时器、外部数据存储器 RAM 。ⅰ.关于 8155 芯片

Page 27: 第四章   MCS-51  单片机的系统扩展

8155 芯片的内部结构

256B静态RAM

A

定时器

B

C

口 A

PA0~PA7

口 B

PB0~PB7

PC0~PC5

口 C

IO/ M

AD0~AD7

CEALE

RDWR

RESET定时器输入定时器输出

接单片机

接外设

接外设

接外设

图 4.24b

Page 28: 第四章   MCS-51  单片机的系统扩展

8155 引脚功能

PC3PC4

PC5

IO/ MCERD

WRALEAD0AD1AD2AD3AD4AD5AD6AD7Vss

VccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0

8155

TIMER INRESET

TIMER OUT

AD0-AD7

三态地址 /数据线

IO/ M 端口 / 存储器选择

RD 读

ALE地址锁存

允许

写 WR

选片 CE

定时器输入

TIMER IN

定时器输出

TIMER OUT

PA0-PA7

A 口端口线

PB0-PB7

B 口端口线

PC0-PC5

C 口端口线 图 4.24a

Page 29: 第四章   MCS-51  单片机的系统扩展

PA0-PA7 端口 A 的 I/O 线( 8 位,接外设)PB0-PB7 端口 B的 I/O 线( 8 位,接外设)PC0-PC5 端口 C 的 I/O 线( 6 位,接外设)

AD0-AD7三态地址 / 数据复用线( 8 位,一般接单片机P0 口, CPU与 8155之间的地址、数据、命

令、状态等信号都通过它来传送)端口 / 存储器 选择控制 “ 0”选择片内 RAM

“1”选择片内 I/O 口TIMER IN

8155 片内定时器 /计数器的计数脉冲输入引脚TIMER

OUT8155 片内定时器 /计数器的计满回零输出引

脚分别是对 8155 片内的 RAM 或 I/O 口的的读、

写控制信号ALE 地址锁存引脚

选片RESET 复位引脚

IO/ M

RD 、WR

CE

Page 30: 第四章   MCS-51  单片机的系统扩展

I/O 口地址 ----当 IO/ M 加高电平时

ⅱ. 8155 的 RAM 和 I/O 口地址

RAM 地址 ----当 IO/ M 加低电平时此时 AD0-AD7 上得到的地址值是指 8155 的某一 RAM 单元的地址,地址范围是 0000 0000--1111 1111分别指向 8155 RAM 的 256 个存储单元。

此时 AD0-AD7 (仅用到低三位 AD2 、 AD1 、 AD0 )上得到的地址值是指 8155 的某一 I/O 口的地址,具体端口地址分配是:

Page 31: 第四章   MCS-51  单片机的系统扩展

AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 I/O 端口

╳ ╳ ╳ ╳ ╳ 0 0 0 命令 /状态口

╳ ╳ ╳ ╳ ╳ 0 0 1 A 口

╳ ╳ ╳ ╳ ╳ 0 1 0 B口

╳ ╳ ╳ ╳ ╳ 0 1 1 C 口

╳ ╳ ╳ ╳ ╳ 1 0 0 计数器低 8 位

╳ ╳ ╳ ╳ ╳ 1 0 1 计数器高 6 位

8155 的 RAM 和 I/O 口地址分配

Page 32: 第四章   MCS-51  单片机的系统扩展

ⅲ. 8155 的使用(分二种情况:片内 RAM 的使用 各端口的使用)

8155 内 RAM 的使用:

与一般外部数据存储器的使用基本一样,唯一区别是事先要使 IO/ M 为低电平(见 p91例 1 )。

8155 各端口的使用:A 、 B、 C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口)。

Page 33: 第四章   MCS-51  单片机的系统扩展

8155命令字含义

PAPBPC1PC2IEAIEBTM1TM2

PB、 PA—A 口、 B口数据传送方向0—输入

1—输出

00—C 口输入, A 、 B口基本 I/O 方式11—C 口输出, A 、 B口基本 I/O 方式01—PC3-PC5 输出, A 口选通方式, B口基本 I/O方式10—A 、 B口选通方式

PC2 、 PC1—C 口数据传送方向及 AB口工作方式

IEA 、 IEB — A 、 B口中断允许控制0—禁止

1—允许TM1 、 TM2—计数器控制

Page 34: 第四章   MCS-51  单片机的系统扩展

ⅳ. 扩展电路的连接举例 ---- 见图 4.25 ,接口电路非常简单,基本上是相同信号对接。

8031 8155

RESETRDWRALEP2.4

P0.0P0.1P0.2P.03P0.4P0.5P0.6P0.7

RESETRDWRALEIO/M

CE

AD0AD1AD2AD3AD4AD5AD6AD7

口 A

PA0~PA7

口 B

PB0~PB7

PC0~PC5

口 C

图 4.25

Page 35: 第四章   MCS-51  单片机的系统扩展

★ 请思考:对比图 4.2 ( 2732 的扩展),为什么图 4.25 中扩展 8155 时,单片机 P0 口输出的地址信号没有经过 373 锁存而是直接接到 8155 的地址 / 数据复用线上了?ⅴ. 应用举例 ---- (见教材 p91例 1 、例 2 ) 作业 4.10 、 4.11

Page 36: 第四章   MCS-51  单片机的系统扩展

需要弄清以下几个问题:ⅰ. 选片问题 ----

选片信号的功能是:当某个芯片的选片信号接低电平时,意味着该芯片被选中,而当其接高电平时,意味着该芯片没有被选中,此时就好象该芯片没有连接到电路中(实际上是其各引脚处于高阻态)。(在这部分以前所有扩展电路中所用的芯片的选片信号引脚 CE ,都是直接接地或者接某一 P2 口线的。)

图 4.28 中的芯片 138 是 3 : 8译码器,它在这里的作用是输出选片信号:其输出端 Y0 、 Y1 、 Y2 分别用来选择8155 、 6116 ( 1 )、 6116 ( 2 )。 138 的引脚及功能见下表:

( 2 )多芯片扩展(见教材 p92-93 ,图 4.28 ) ---- 使用多个芯片来进行综合功能扩展。

ⅱ. 译码器问题 ----

Page 37: 第四章   MCS-51  单片机的系统扩展

控 制 引 脚 输 入 引 脚 输 出 引 脚

G1 G2A G2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

1 0 0 0 0 0 1 1 1 1 1 1 1 0

1 0 0 0 0 1 1 1 1 1 1 1 0 1

1 0 0 0 1 0 1 1 1 1 1 0 1 1

1 0 0 0 1 1 1 1 1 1 0 1 1 1

1 0 0 1 0 0 1 1 1 0 1 1 1 1

1 0 0 1 0 1 1 1 0 1 1 1 1 1

1 0 0 1 1 0 1 0 1 1 1 1 1 1

1 0 0 1 1 1 0 1 1 1 1 1 1 1

138 功能表

Page 38: 第四章   MCS-51  单片机的系统扩展

ⅲ. 扩展电路

8031

373

G2716

6116(2) 6116(1)

8155

P0

P2.2--P2.0PSEN

ALE

WRRD

ABCG2AG2BG1

P1.0

A0~A7 A8~A10

D7~D0 D7~D0 D7~D0 CECE

CSOE

A0~A7 A8~A10

WE WEOE OE

WERD

ALE

AD0~AD7

CE

Y2

Y1

Y0

+5V

IO/ M

PA

PB

PC

P2.3P2.4P2.5P2.6P2.7

138

图 4.28 多芯片扩展电路

Page 39: 第四章   MCS-51  单片机的系统扩展

★ 请思考:

b. 为什么图中 6116 ( 1 )的地址范围是 0800H-0FFFH ?而 6116 ( 2 )的地址范围是 1000H-17FFH ?

a. 为什么图 4.28 中的 8155 的各端口地址分别是 0000H 、 0001H 、……、 0005H , 而其内部 RAM 地址范围是 0000H--00FFH ?

Page 40: 第四章   MCS-51  单片机的系统扩展

a. 由图 4.28 可知 图中 8155 的 CE 接 138 的 Y0 , 138 的 G2B、 G2A 和 CBA 分别 接到 8031 的 P2.7-P2.3 ,所以要选中 8155 , 即要 CE=0 ,则必有 Y0=0 , 由 Y0=0得到必有 G1=1 ,且 G2A=G2B=0 , CBA=000 , 即 8031 的 P2.7-P2.3=00000 时,选中 8155 ,在此前提下, 当 8031 的 P0 口输出地址是 XXXXX000-XXXXX101 ,且 IO/ M=1 时,选中 8155 的各端口, 即:

Page 41: 第四章   MCS-51  单片机的系统扩展

P2.7 ………………… P2.0 P0.7 ……… ………… P0.0 端口

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ( 0000H ) 命令口

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ( 0001H ) PA 口

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ( 0002H ) PB口

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 ( 0003H ) PC 口

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 ( 0004H )计数器低

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 ( 0005H )计数器高

所以 8155 的各端口地址分别是

0000H 、 0001H 、……、 0005H 。

且当 IO/ M=0 时,选中 8155 的 RAM 单元,所以其内部 RAM地址范围是 0000H--00FFH 。

Page 42: 第四章   MCS-51  单片机的系统扩展

b. 同理可得 6116 ( 1 )和 6116 ( 2 )的地址范围分别是 0800H-0FFFH 和 1000H-17FFH :ⅰ. 图中 6116 ( 1 )的 CE 接 138 的 Y1 ,所以要选中 61

16 ( 1 ),

则必有 Y1=0 ,由 Y1=0得 必有

G1=1 ,且 G2A=G2B=0 , CBA=001 ,

即 8031 的 P2.7-P2.3=00001 时,选中 6116 ( 1 ),

在此前提下,当 8031 的 P2.2-P2.0 , P0.7-P0.0 输出地址

000 0000 0000 -111 1111 1111 时,选中 6116 ( 1 )中的某一个单元,也即 6116 ( 1 ) 的地址范围是:

0000 1000 0000 0000-0000 1111 1111 1111 即

8000H-FFFFH (共 2K )。

Page 43: 第四章   MCS-51  单片机的系统扩展

ⅱ 同样分析可知 6116 ( 2 )的地址范围是 1000H-17FFH

第四章 小结

具体内容

常见系统扩展电路举例

系统扩展的含义

单片机的地址总线和数据总线存储器的扩展

外部中断源的扩展

综合功能的扩展

Page 44: 第四章   MCS-51  单片机的系统扩展

本章主要介绍 51 系列单片机接口技术问题,本章与第四章关系密切,是第四章的扩充,本章内容较多,由于学时限制我们只要求掌握其中的基本内容,具体是要掌握以下三点并要求了解第四点:

第五章 MCS-51 单片机的接口技术

接口是连接单片机与外围电路、芯片、设备(如 I/O 设备、 A/D 、 D/A 设备)的中间环节,它牵涉到很多问题(包括外围电路、设备、芯片的结构、使用方法、时序要求;单片机本身的硬件、软件资源等)。

一、接口的概念 ----

Page 45: 第四章   MCS-51  单片机的系统扩展

---- 用于接口的指令、产生的信号、数据交换方 式、端口地址的分配。

1. 接口指令---- 单片机没有专用的接口指令,而是用外部数

据操作指令( 4四条)实现数据的 I/O ,即MOVX A ,@DPTR ;读外部 RAM ,即输入MOVX A ,@Ri ;读外部 RAM ,即输入MOVX @DPTR , A ;写外部 RAM ,即输出MOVX @Ri, A ;写外部 RAM ,即输出

二、接口技术要解决的问题

Page 46: 第四章   MCS-51  单片机的系统扩展

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15

A0~A7 三态

数据 D0~D7 入

RD

图 4.4 读外部数据 RAM 时序图 即执行MOVX A ,@DPTR

MOVX A ,@Ri

指令执行时序

2. 接口时序

----就是执行上述MOVX 类指令的时序(分读 / 写两种情况,见教材 p96 图 5.1 ,也就是第四章中的 p72图 4.3 和 4.4 )

Page 47: 第四章   MCS-51  单片机的系统扩展

一个机器周期

ALE

PSEN

P2

P0

地址 A8~A15

A0~A7

数据 D0~D7 出

WR

图 4.4 写外部数据 RAM 时序图 即执行MOVX @DPTR ,A

MOVX @Ri, A

指令执行时序

Page 48: 第四章   MCS-51  单片机的系统扩展

3.I/O 数据交换方式

---- 一般有无条件传送方式

延时等待方式

查询方式

中断方式等。

Page 49: 第四章   MCS-51  单片机的系统扩展

以 A/D转换为例说明

8031 A/D

P0 D7~D0

P1. x START

延时等待方式

单片机由 P1 口某口线 P1. x发出启动转换信号给 A/D后,延时一段时间(假设经过这段时间 A/D转换结束),然后单片机从 P0 口读入转换好的数据。

延时等待方式 ----

Page 50: 第四章   MCS-51  单片机的系统扩展

8031 A/D

P0 D7~D0

P1. x START

P1.y EOC

查询方式

查询方式 ----

由单片机的 P1 口某口线 P1. x发出启动转换信号给 A/D ,然后单片机由 P1 口某口线 P1. y不断输入转换结束信号EOC 并进行检测,发现 EOC 有效时,说明转换结束,单片机即可从 P0 口读入转换好的数据。

Page 51: 第四章   MCS-51  单片机的系统扩展

中断方式

INT0

8031 A/D

P0 D7~D0

P1. x START

EOC&

中断方式 ----由单片机的 P1 口某口线 P1. x发出启动转换信号给 A/D后,就可以做别的工作了,当转换结束 EOC 有效时,向单片机发出中断请求,单片机即可在中断处理程序中从P0 口读入转换好的数据。

Page 52: 第四章   MCS-51  单片机的系统扩展

4. 端口地址的分配---- 单片机的 I/O 端口和外 RAM统一编址,也即外 RAM单元和 I/O 端口加起来最多不能超过 64K 个,确定 I/O端口地址的方法有两种:

★ 请思考:以上各种数据交换方式各有什么利弊。

Page 53: 第四章   MCS-51  单片机的系统扩展

线选法 ---- 单片机的单根地址线直接接到外部电路芯片 (设备)的片选端( P98 图 5.3 )

8031 6116CE

8255CS

8155IO/M CE

CE8253

CS0832

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

图 5.3 线选法译码地址

Page 54: 第四章   MCS-51  单片机的系统扩展

线选法译码地址

外围器件 地址选择线( A15~A0 ) 片内地址单元数

地址编码

6116 1111 0AAA AAAA AAAA 2K F000~F7FFH

8255 1110 1111 1111 11AA 4 EFFC~EFFFH

8155 RAM 1101 111 0 AAAA AAAA 256 DE00~DEFFH

8155 I/O 1101 1111 1111 1AAA 6 DFF8~DFFDH

0832 1011 1111 1111 1111 1 BFFFH

8253 0111 1111 1111 11AA 4 7FFC~7FFFH

Page 55: 第四章   MCS-51  单片机的系统扩展

译码法 ---- 用译码器将单片机的(高位)地址线进行译码,译码输出信号作为外部电路芯片(设备)的片选信号( P99 图 5.4 ) 。

80316264CE

8255CS

8155IO/M CE

CE8253

CS0832

P2.5P2.6P2.7

图 5.4 译码法译码地址

P2.0

ABC

G2AG2B

G1

Y0Y1Y2Y3Y4

+5V

138

Page 56: 第四章   MCS-51  单片机的系统扩展

控 制 引 脚 输 入 引 脚 输 出 引 脚

G1 G2A G2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

1 0 0 0 0 0 1 1 1 1 1 1 1 0

1 0 0 0 0 1 1 1 1 1 1 1 0 1

1 0 0 0 1 0 1 1 1 1 1 0 1 1

1 0 0 0 1 1 1 1 1 1 0 1 1 1

1 0 0 1 0 0 1 1 1 0 1 1 1 1

1 0 0 1 0 1 1 1 0 1 1 1 1 1

1 0 0 1 1 0 1 0 1 1 1 1 1 1

1 0 0 1 1 1 0 1 1 1 1 1 1 1

138 功能表

Page 57: 第四章   MCS-51  单片机的系统扩展

译码法译码地址

外围器件 地址选择线( A15~A0 ) 片内地址单元

地址编码

6264 000A AAAA AAAA AAAA 8K 0000~1FFFH

8255 0011 1111 1111 11AA 4 3FFC~3FFFH

8155 RAM 0101 111 0 AAAA AAAA 256 5E00~5EFFH

8155 I/O 0101 1111 1111 1AAA 6 5FF8~5FFDH

0832 0111 1111 1111 1111 1 7FFFH

8253 1001 1111 1111 11AA 4 9FFC~9FFFH

Page 58: 第四章   MCS-51  单片机的系统扩展

★ 请思考:以上两种确定 I/O 端口的方法各有什么利弊?什么是全译码?部分译码?什么是地址重叠?什么时候会发生地址重叠?

线选法:接线简单,地址重叠较多,地址空间没有得到充分利用,当单片机外围芯片较少时采用。

译码法:需要硬件(译码器),电路稍复杂,但地址空间可以得到充分利用,地址重叠少。全译码:所有(高位)地址线全部参与译码,没有地址重叠问题。部分译码:部分(高位)地址线全部参与译码,有部分地址重叠。什么时候会发生地址重叠—当存在未用到的地址线时发生。因为这些地址线可设为“ 1”,也可设为“ 0”。

Page 59: 第四章   MCS-51  单片机的系统扩展

三.几种常用接口电路举例

D/A 电路一般是作成集成电路芯片,使用时要注意 2 个问题:一个是转换时间及转换精度;另一个是转换出来的模拟量的形式是什么(电流量还是电压量)。

1.D/A转换电路接口技术

----D/A转换即是将数字量转换成相应的模拟量,常用于控制系统中。如单片机输出不同的数字量经 D/A转换后加给直流电机,即可控制电机的转速。

Page 60: 第四章   MCS-51  单片机的系统扩展

a. D/A转换原理 --倒 T 型电阻网络 D/A转换电路原理

图 5.6 ( a)倒 T 型电阻网络 D/A转换原理图

R 2R 2R 2R 2R

R R R R

D0 D1 D2 D3

节点 3节点 2节点 1节点 0

I VREF

+

- VOUT

I3I2I1I0

图中 D3 D2 D1 D0 是 4 位二进制数字量输入,当 D3 D2 D1 D0 中的某一位状态为 1 时,图中开关打向右方,为 0 时,开关打向左方。

RFIOUT1

IOUT2

Page 61: 第四章   MCS-51  单片机的系统扩展

VREF 为基准电压输入,Vout是电压模拟量输出。由运算放大器概念可知:

Vout=-RF•Iout1

Iout1 是开关打向右端的各支路电流 Ii之和,实际上

(其中 就是数字量 D3 D2 D1 D0 的某一位)Di

Page 62: 第四章   MCS-51  单片机的系统扩展

图 5.6 ( b) 等效电路图

R 2R 2R 2R 2R

R R R R

D0 D1 D2 D3

节点 3节点 2节点 1节点 0

I VREFI3I2I1I0

由等效电路图 5.6 ( b)可知,各支路电流分别为:

Page 63: 第四章   MCS-51  单片机的系统扩展

ii

iR

VFOUT DRV REF

3

016 2

上式右边 ii

i D

3

0

2

表示的就是数字量 D3 D2 D1 D0 的值(按权展开),而左边是模拟量输出值,可见模拟量输出正比于数字量输入,即实现了 D/A转换。

★ 请思考:倒 T 型电阻网络相对于权电阻网络有什么优势?

Page 64: 第四章   MCS-51  单片机的系统扩展

b.DAC0832 与单片机的接口ⅰ.DAC0832 的引脚

0832----8 位 D/A

0832 引脚功能

IOUT2电流输出

2 CS 选片

WR1 输入写

DI0~DI7

数据线

CSWR1AGNDDI3DI2DI1DI0VREF

RFR

DGND

VccILEWR2XFERDI4DI5DI6DI7IOUT2

IOUT1

0832DAC 写 WR2

IOUT1电流输出

1

数据锁存 ILE

数据传送 XFER

Page 65: 第四章   MCS-51  单片机的系统扩展

ⅱ.DAC0832 的结构

输入寄存器

DAC寄存器

D/A转换器

ILE

CS

WR1WR2

XFER

IOUT1

IOUT2

DI7~DI0

RFR

VREF

Page 66: 第四章   MCS-51  单片机的系统扩展

ⅲ.DAC0832 与单片机的接口①单缓冲方式接口电路---- 将两级寄存器的控制信号并接在一起,相当于控制一级寄存器(线选译码地址 00FEH )。

8031WR

ALE

P0

DI7~DI0

CS

XFERWR1

WR2

DAC0832

IOUT2

IOUT1

+

-

RFRA0

373G A7~A0

图 5.9 DAC0832 单缓冲方式接口电路图

ILE

+5V

Page 67: 第四章   MCS-51  单片机的系统扩展

采用单缓冲方式输出锯齿波、矩形波、三角波、梯形波等的 D/A转换程序(见教材 p103~105 )

锯齿波

ORG 2000H

START : MOV DPTR , #00FEH ;选中 0832MOV A , #00H ; D/A 数据初值

LP : MOVX @DPTR , A ;转换INC A ;修改 D/A 数据SJMP LP ;循环,输出连续模拟量

A=00

A=0FFH

Page 68: 第四章   MCS-51  单片机的系统扩展

三角波 ORG 2000H

START : MOV DPTR , #00FEH ;选中 0832MOV A , #00H ; D/A 数据初值

UP : MOVX @DPTR , A ;转换INC A ;修改 D/A 数据(上升)

JNZ UP ;未上升到最大值,继续DOWN : DEC A ;否则,修改 D/A 数据(下降)

MOVX @DPTR , A ;转换JNZ DOWN ;未下降到最小值,继续

SJMP UP ;一个周期结束,继续

A=00

A=0FFH

A=00

A=0FFH

Page 69: 第四章   MCS-51  单片机的系统扩展

②双缓冲方式 ----略