
第5章MCS一51单片机的系统扩展 MCS-51系列单片机在一些简单的应用设计中,可以采用最小应用系统(一片8051/8751 或一片8031外接一片EPROM),但对于一个较复杂的实际应用系统,往往由于最小系统所包含 的存储器容量、1/0接口的数量等资源有限,不能满足应用要求,此时开发人员必须进行扩展。 本章主要讨论MCS-51系列单片机的外部程序存储器、外部数据存储器及并行I/0接口的扩展 技术。 §51MCS-51系列单片机的系统扩展结构 单片机的系统扩展是以单片机为核心,在片外通过系统总线的方式把一些相应功能的外围 芯片(程序存储器、数据存储器及I/0接口等)与单片机连接起来,并在单片机CU的控制下 在总线上进行数据、地址和控制信号的传送。 一、MCS-51单片机的系统总线 CPU必须与存储器和其他外围设备之间频繁的进行地址、数据及控制命令等信息的传送, 通常这些信息的传送通过并行或串行总线来进行。51系列单片机采用并行总线的结构,按其 传送信息的类型及功能分为三组,即地址总线、数据总线和控制总线。 1.地址总线(Address Bus,简写为AB) 51系列单片机的地址总线宽度为16位,可寻址范围为2地址单元,即64K字节。 2.数据总线(Data Bus,简写为DB) MCS-51单片机为8位字长,所以数据总线的位数也是8位. 3.控制总线(Control Bus,简写为CB) 为了使单片机与其他外围芯片连接后相互间能协调工作,51系列单片机设计了一组控制 信号。 二、MCS51系列单片机的总线构成 MCS-51单片机由于受芯片引脚的限制,无法提供专用的地址和数据总线,而是采用I/0 口线复用的办法,再通过片外增加辅助电路(芯片),从而获得用于扩展的三组总线。 1.P0口分时作为8位数据总线和地址总线的低8位(A0-A7) P0口具有双重功能,既能作为数据总线,又能作为低8位的地址总线,其地址和数据由 CPU分时给出,因此应采用复用技术对P0口的地址和数据进行分离。通常我们在单片机外部 连接一片锁存器芯片(74LS373或741S273)作为地址锁存器,首先CPU将地址信号送到P0口, 在单片机的ALE信号由高变低时,出现在P0口的地址信号锁存到地址锁存器中,获得系统的 低8位地址,随后数据出现在P0口,此时P0口作为数据线使用。 2.P2口作为地址总线的高8位(A8一A15) 系统扩展时,P2口的8位口线用作高8位地址线,与P0口提供的低8位地址线一起构成 了系统完整的16位地址总线,使单片机系统扩展的最大寻址范围可达到64KB,即26个地址单 兀。 3.控制信号 单片机扩展系统中的控制信号主要有P3口线部分引脚的第二功能信号和其他引脚的第一 功能信号,其中包括: ALE一一地址锁存信号,用于锁存P0口输出的低8位地址。 PSEN一一外部程序存储器的读选通信号。 EA一一片内/片外程序存储器选择控制信号
第 5 章 MCS—51 单片机的系统扩展 MCS-51 系列单片机在一些简单的应用设计中,可以采用最小应用系统(一片 8051/8751 或一片 8031 外接一片 EPROM),但对于一个较复杂的实际应用系统,往往由于最小系统所包含 的存储器容量、l/O 接口的数量等资源有限,不能满足应用要求,此时开发人员必须进行扩展。 本章主要讨论 MCS-51 系列单片机的外部程序存储器、外部数据存储器及并行 I/O 接口的扩展 技术。 §5~1 MCS-51 系列单片机的系统扩展结构 单片机的系统扩展是以单片机为核心,在片外通过系统总线的方式把一些相应功能的外围 芯片(程序存储器、数据存储器及 I/O 接口等)与单片机连接起来,并在单片机 CPU 的控制下 在总线上进行数据、地址和控制信号的传送。 一、MCS-51 单片机的系统总线 CPU 必须与存储器和其他外围设备之间频繁的进行地址、数据及控制命令等信息的传送, 通常这些信息的传送通过并行或串行总线来进行。51 系列单片机采用并行总线的结构,按其 传送信息的类型及功能分为三组,即地址总线、数据总线和控制总线。 1.地址总线(Address Bus,简写为 AB) 51 系列单片机的地址总线宽度为 16 位,可寻址范围为 2 16地址单元,即 64K 字节。 2.数据总线(Data Bus,简写为 DB) MCS-51 单片机为 8 位字长,所以数据总线的位数也是 8 位。 3.控制总线(Control Bus,简写为 CB) 为了使单片机与其他外围芯片连接后相互间能协调工作,51 系列单片机设计了一组控制 信号。 二、 MCS-51 系列单片机的总线构成 MCS-51 单片机由于受芯片引脚的限制,无法提供专用的地址和数据总线,而是采用 I/O 口线复用的办法,再通过片外增加辅助电路(芯片),从而获得用于扩展的三组总线。 1.P0 口分时作为 8 位数据总线和地址总线的低 8 位(A0-A7) P0 口具有双重功能,既能作为数据总线,又能作为低 8 位的地址总线,其地址和数据由 CPU 分时给出,因此应采用复用技术对 P0 口的地址和数据进行分离。通常我们在单片机外部 连接一片锁存器芯片(74LS373 或 741S273)作为地址锁存器,首先 CPU 将地址信号送到 P0 口, 在单片机的 ALE 信号由高变低时,出现在 P0 口的地址信号锁存到地址锁存器中,获得系统的 低 8 位地址,随后数据出现在 P0 口,此时 P0 口作为数据线使用。 2.P2 口作为地址总线的高 8 位(A8—A15) 系统扩展时,P2 口的 8 位口线用作高 8 位地址线,与 P0 口提供的低 8 位地址线一起构成 了系统完整的 16 位地址总线,使单片机系统扩展的最大寻址范围可达到 64KB,即 2 16个地址单 元。 3.控制信号 单片机扩展系统中的控制信号主要有 P3 口线部分引脚的第二功能信号和其他引脚的第一 功能信号,其中包括: ALE——地址锁存信号,用于锁存 P0 口输出的低 8 位地址。 PSEN ——外部程序存储器的读选通信号。 EA——片内/片外程序存储器选择控制信号

WR一一对扩展外部数据存储器和I/0端口的写信号。 D一一对扩展外部数据存储器和I/0端口的读信号。 S5~2 程序存贮器扩展 一、常用ROM芯片 常用的EPROM芯片为2716、2732、2764、27128、27256、27512等,这些芯片的窗口在 专用的紫外线灯光照射下,经20min后,存贮器的所在的单元信息全部变为“1”,换句话说, EPROM的原始状态为全“1”。同时又可用专门的EPROM编程(写入)电路,将用户的工作 程序固化在这些EPROM芯片之中,作MCS-51单片机的外部程序存贮器使用。 VPP 1 28 Vcc 716 234567890 76565243 415891元 2 贸 AO 00 123 18 55 Q2 GND 14 15 图5-127256A管脚配置图 74LS373是一种带有输出三态门的8D锁存器,其结构原理和引脚排列及作为低8位地址 锁存器时在电路中的连接示意图分别如图(a)、(b)、(c)所示。 74LS373是由8D锁存器及输出三态门两部分组成。工作原理:当控制端E为低电平时,三态 门导通,三态门输出1Q~8Q与8D锁存器的1Q~8Q是对应相同的。控制端E为高电平时,三 态门输出1Q~8Q处于高阻状态。控制端G为高电平时,8D锁存器输出端1Q~8Q与输入端 1D~8D状态是相同;当G由高变为低电平时(下降沿)将跳变前输入端1D~8D的状态锁入 1Q~8Q中
WR——对扩展外部数据存储器和 I/O 端口的写信号。 RD ——对扩展外部数据存储器和 I/O 端口的读信号。 §5~2 程序存贮器扩展 一、常用 ROM 芯片 常用的 EPROM 芯片为 2716、2732、2764、27128、27256、27512 等,这些芯片的窗口在 专用的紫外线灯光照射下,经 20min 后,存贮器的所在的单元信息全部变为“1”,换句话说, EPROM 的原始状态为全“1”。同时又可用专门的 EPROM 编程(写入)电路,将用户的工作 程序固化在这些 EPROM 芯片之中,作 MCS-51 单片机的外部程序存贮器使用。 74LS373 是一种带有输出三态门的 8D 锁存器,其结构原理和引脚排列及作为低 8 位地址 锁存器时在电路中的连接示意图分别如图(a)、(b)、(c)所示。 74LS373 是由 8D 锁存器及输出三态门两部分组成。工作原理:当控制端 E 为低电平时,三态 门导通,三态门输出 1Q~8Q 与 8D 锁存器的 1Q~8Q 是对应相同的。控制端 E 为高电平时,三 态门输出 1Q~8Q 处于高阻状态。控制端 G 为高电平时,8D 锁存器输出端 1Q~8Q 与输入端 1D~8D 状态是相同;当 G 由高变为低电平时(下降沿)将跳变前输入端 1D~8D 的状态锁入 1Q~8Q 中。 1 2 3 4 6 7 5 8 9 10 11 12 13 14 28 27 26 25 23 22 24 21 20 19 18 17 16 15 Vpp A12 A5 A6 A7 A4 A1 A2 A3 A0 Q1 Q0 Q2 GND Vcc A14 A9 A8 A13 A11 A10 OE CE Q4 Q5 Q3 Q7 Q6 图 5-1 27256A 管脚配置图

E 20 .Vc 8D锁存器 三态门 Q1 19 8 D1 34 8 P0.0 D1 Q1 1 AB.O 17 D2 5 16 D7 P0.7D8 AB.7 D8 6 15 7 14 6 4 8 1 D4 12 Q5 ALE E GND 10 11 G (a)74373原理 结构图 (b)74373引脚图 (c)74373电路连接图 74LS273和8282是经常用的另一种地址锁存器。其功能与74LS373基本相同。 74LS373用于单片机系统的扩展时,其电路的连接方式如图8.3(c),74LS373的1D~8D 接P0口,G端接ALE,E接地,则1Q~8Q输出为A0rA7,即地址的低8位。 引脚功能: *A0~A14 地址线 *Q0~Q7 数据线 *C正 片选线 *OE 读出选通 *VpP 编程电源 *Vcc +5V工作电源 *GND 接地线 二、程序存贮器的扩展 (一)单片程序存储器扩展 先以单片2716为例,说明程序存储器扩展的有关问题,如图5-3所示。 80C51 2716 P2.7 P2.2 A10 P2.1 P2.0 A8 P0.0P0.7 74LS373 G ALE 0,~00 PSEN OE 图5-3单片程序存储器(ROM)扩展连接图 1.存储器扩展的主要工作是地址线、数据线和控制信号线的连接 地址线:地址线的连接与存储芯片的容量有直接关系。采用线选法编址比较方便。为此只 需在剩下的高位地址线中取P2.7作芯片选择信号与2716的C正端相连即可。 数据线:数据线的连接则比较简单,只要把存储芯片的数据输出引脚与单片机P0口线对 应连接就可以了。 控制线:程序存储器的扩展只涉及到PSN(外部程序存储器读选通)信号,把该信号接 2716的OE端,以便进行存储单元的读出选通。 2.存储映像分析 分析存储器在存储空间中占据的地址范围,实际上就是根据地址线连接情况确定其最低地 址和最高地址。如把P2口中没用到的高位地址线假定为“0”状态,则本例2716芯片的地址 范围是:8000H~87FFH
8D锁存器 2 3 1 4 5 6 7 8 9 10 19 18 20 17 16 15 14 13 12 11 E Q1 D2 Q2 D1 Q3 Q4 D3 D4 GND Vcc Q8 Q7 D8 D7 Q5 Q5 G Q6 D6 G E D1 D8 ~ Q1 Q8 ~ AB.0 AB.7 ~ P0.0 P0.7 ~ ALE E Q1 Q8 ~ 三态门 G D1 D8 ~ (a)74373 原理 结构图 (b)74373 引脚图 (c)74373 电路连接图 74LS273 和 8282 是经常用的另一种地址锁存器。其功能与 74LS373 基本相同。 74LS373 用于单片机系统的扩展时,其电路的连接方式如图 8.3(c),74LS373 的 1D~8D 接 P0 口,G 端接 ALE,E 接地,则 1Q~8Q 输出为 A0~A7,即地址的低 8 位。 引脚功能: *A0~A14 地址线 *Q0~Q7 数据线 * CE 片选线 * OE 读出选通 *VPP 编程电源 *VCC +5V 工作电源 *GND 接地线 二、 程序存贮器的扩展 (一)单片程序存储器扩展 先以单片 2716 为例,说明程序存储器扩展的有关问题,如图 5-3 所示。 1.存储器扩展的主要工作是地址线、数据线和控制信号线的连接 地址线:地址线的连接与存储芯片的容量有直接关系。采用线选法编址比较方便。为此只 需在剩下的高位地址线中取 P2.7 作芯片选择信号与 2716 的 CE 端相连即可。 数据线:数据线的连接则比较简单,只要把存储芯片的数据输出引脚与单片机 P0 口线对 应连接就可以了。 控制线:程序存储器的扩展只涉及到 PSEN (外部程序存储器读选通)信号,把该信号接 2716 的 O 端,以便进行存储单元的读出选通。 2.存储映像分析 分析存储器在存储空间中占据的地址范围,实际上就是根据地址线连接情况确定其最低地 址和最高地址。如把 P2 口中没用到的高位地址线假定为“0”状态,则本例 2716 芯片的地址 范围是:8000H~87FFH。 图 5-3 单片程序存储器(ROM)扩展连接图

最低地址:8000H P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0 Ais A14 A13 AnAn A10 A9 As A7 A6 As A4A3 A2 A Ao 10000000000 0 0 0 0 0 最高地址:87FFH P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 As A4 A3 A2 A1 Ao 1000011111111111 由于P2.6~P2.3的状态与该2716芯片的寻址无关,所以P2.6~P2.3可为任意状态, 从0000~1111共有16种组合,因此实际上该2716芯片对应有16个映像区,即: 8000H87FFH:8800H~8FFFH,9000H97FFH,9800H~9FFFH,0A000H~0A7FFH, 0A800H~0 AFFFH,·在这些地址范围内都能访问这片2716芯片。 这种多映像区的重叠现象是线选法本身造成的,因此映像区的非惟一性是线选法编址的一 大缺点。 (二)多片程序存储器扩展 使用两片2764芯片扩展一个程序存储器系统,如图5-4所示。 地址线:2764的存储容量为64K位,即8KB,需要13根地址线,P0口的低8位地址线 加P2口的P2.0~P2.4共13根作为地址线。用线选法编址,以P2.7作片选信号,当P2.7=0 时,选左片,其地址范围为0000H~FF℉H:当P2.7=1时,选择右片,其地址范围为8000H~ 9FFFH。 数据线:把存储芯片的数据输出引脚与单片机P0口线对应相连。 控制线:把PSEN分别与两片2764的OE端相连。 对于多片程序存储器的扩展,我们可以得出以下几个要点: ①各芯片的低位地址线并行连接。 ②各芯片的数据线并行连接。 ③各芯片的控制信号PSEN并行连接。 ④各芯片的片选信号是不同的,需分别产生。 +5mP2.7 CE 74LS373 G ALE 070 07~0 80C51 2764 2764 P2.4-P2.0 A128 A12~8 PSEN OE 0尼 图5-4两片程序存储器扩展连接图
最低地址:8000H P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最高地址:87FFH P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 由于 P2.6 ~ P2.3 的状态与该 2716 芯片的寻址无关,所以 P2.6 ~ P2.3 可为任意状态, 从 0000 ~1l11 共有 l6 种组合,因此实际上该 2716 芯片对应有 16 个映像区,即: 8000H~87FFH;8800H~8FFFH,9000H~97FFH,9800H~9FFFH,0A000H~0A7FFH, 0A800H~0AFFFH,…… 在这些地址范围内都能访问这片 2716 芯片。 这种多映像区的重叠现象是线选法本身造成的,因此映像区的非惟一性是线选法编址的一 大缺点。 (二)多片程序存储器扩展 使用两片 2764 芯片扩展一个程序存储器系统,如图 5-4 所示。 地址线:2764 的存储容量为 64K 位,即 8KB,需要 13 根地址线,P0 口的低 8 位地址线 加 P2 口的 P2.0~P2.4 共 13 根作为地址线。用线选法编址,以 P2.7 作片选信号,当 P2.7= 0 时,选左片,其地址范围为 0000H~lFFFH;当 P2.7 = 1 时,选择右片,其地址范围为 8000H~ 9FFFH。 数据线:把存储芯片的数据输出引脚与单片机 P0 口线对应相连。 控制线:把 PSEN 分别与两片 2764 的 O 端相连。 对于多片程序存储器的扩展,我们可以得出以下几个要点: ① 各芯片的低位地址线并行连接。 ② 各芯片的数据线并行连接。 ③ 各芯片的控制信号 PSEN 并行连接。 ④ 各芯片的片选信号是不同的,需分别产生。 图 5-4 两片程序存储器扩展连接图