380 likes | 594 Views
本 章 重 点. 存储器编址技术 程序存储器扩展 数据存储器扩展 存储器综合扩展 课时安排: 3 个课时. 第 5 章 单片机存储器扩展. 5.1 存储器扩展基础知识 5.2 存储器的扩展 思考题. 5.1.3 常用的扩展器件简介. 5.1 存储器扩展基础知识. 5.1.2 系统扩展的内容与方法. 5.1.1 最小应用系统. 5.1.1 最小应用系统. 单片机系统的扩展是以基本的最小系统为基础的 , 故应首先熟悉最小应用系统的结构。实际上 , 内部带有 程序存储器的 8051 或 8751 单片机本身就是一个最简单的
E N D
本 章 重 点 • 存储器编址技术 • 程序存储器扩展 • 数据存储器扩展 • 存储器综合扩展 • 课时安排:3个课时
第5章 单片机存储器扩展 5.1 存储器扩展基础知识 5.2 存储器的扩展 思考题
5.1.3 常用的扩展器件简介 5.1 存储器扩展基础知识 • 5.1.2 系统扩展的内容与方法 5.1.1 最小应用系统
5.1.1 最小应用系统 单片机系统的扩展是以基本的最小系统为基础的, 故应首先熟悉最小应用系统的结构。实际上, 内部带有 程序存储器的8051或8751单片机本身就是一个最简单的 最小应用系统,许多实际应用系统就是用这种成本低和 体积小的单片结构实现了高性能的控制。对于目前国内 较多采用的内部无程序存储器的芯片8031来说,则要用 外接程序存储器的方法才能构成一个最小应用系统。
1. 片内带ROM的最小应用系统 • 片内带程序存储器的8051、 8751本身即可构成一片最小 • 系统, 只要将单片机接上时钟电路和复位电路即可, 同时 • 接高电平, ALE、 信号不用, 系统就可以工作。如图5-1(a) • 所示,该系统的特点如下: (1) 系统有大量的I/O线可供用户使用: P0、 P1、 P2、P3 四个口都可以作为I/O口使用。 (2) 内部存储器的容量有限, 只有128 B的RAM和4 KB的 程序存储器。
此时单片机的CE引脚应接低电平。 2. 片内无ROM的最小应用系统 • 片内无ROM的芯片(如8031)构成最小应用系统时, • 必须在片外扩展ROM。由于一般用作程序存储器的EPROM • 芯片不能锁存地址,故扩展时还应加1个锁存器,构成一个3 • 片最小系统, 如图5-1(b)所示。该图中74LS373为地址锁存器, • 用于锁存低8位地址。
图5-1 MCS-51系列最小化系统 return
5.1.2 系统扩展的内容与方法 • 1. 单片机的三总线结构 当单片机最小系统不能满足系统功能的要求时,就需 要进行扩展。对于MCS-51系列单片机,其3总线由下列通 道口的引线组成: 地址总线:由P2口提供高8位地址线,此口具有输出锁 存的功能,能保留地址信息。由P0口提供低8位地址线。 数据总线:由P0口提供。此口是双向、输入三态控制 的8位通道口。
PSEN RD WR • 控制总线:扩展系统时常用的控制信号为, • ALE ——地址锁存信号,用以实现对低8位地址的锁存。 • ——片外程序存储器ROM选通信号。 • ——片外数据存储器RAM读信号。 • — 片外数据存储器RAM写信号。 图5-2为单片机扩展成3总线结构的示意图。这样一来, 扩 展芯片与主机的连接方法同一般3总线结构的微型计算机就完 全一样了。 对于MCS-51系列单片机而言,Intel 公司专门为 它们配套生产了一些专用外围芯片, 使用起来就更加方便。
2. 系统扩展的内容 • (1)外部ROM 的扩展; • (2)外部RAM 的扩展; • (3)输入/输出接口的扩展; • (4)管理功能器件的扩展(如定时/计数器、 键盘/显示器、 • 中断优先编码器等)。
5.1.3 常用的扩展器件简介 • (1) 8D锁存器74LS373 • 74LS373是一种带输出三态门的8D锁存器, 其结构示意图如图5-3所示。其中: • 1D~8D为8个输入端; • 1Q~8Q为8个输出端。 • G为数据打入端:当G为“1”时, 锁存器输出状态(1Q~8Q)同输入状态(1D~8D);当G由“1”变“0”时,数据打入锁存器中。
(2) E PROM 2764 2 E PROM 2764双列直插式28引脚的标准芯片, 容量为8K×8位, 其管脚如下图所示。 2 图5-4 2764的管脚图
(3)3—8译码器74LS138 • 3-8译码器74LS138为一种常用的地址译码器芯片, 其管脚图如图5-7所示。 图5-7 74LS138管脚图
(4)总线驱动器74LS244、74LS245 • 总线驱动器74LS244和74LS245经常用作三态数据缓冲 • 器,74LS244为单向三态数据缓冲器,而74LS245为双向三态 • 数据缓冲器。单向的内部有8个三态驱动器,分成两组,分别 • 由控制端 和2G 控制; 双向的有16个三态驱动器,每个 • 方向8个。在控制端 有效时( 为低电平),由DIR端控制 • 驱动方向:DIR为“1”时方向从左到右(输出允许),DIR为“0” • 时方向从右到左(输入允许)。74LS244和74LS245的引脚图如 • 图5-5所示。
图5-5 总线驱动器芯片管脚图 (a) 单向驱动器74LS244; (b) 双向驱动器74LS245
图5-6 总线驱动器的连接图 (a) P2口外接74LS244; (b) P0口外接74LS245
5.2 存储器的扩展 5.2.1 存储器扩展概述 5.2.2 程序存储器的扩展 5.2.3 数据存储器的扩展 5.2.4 同时扩展ROM和RAM
5.2.1 存储器扩展概述 MCS-51系列单片机具有64 KB的程序存储器空间,其 中8051、8751型单片机含有4 KB 的片内程序存储器, 而8031 型单片机则无片内程序存储器。当采用8051、8751型单片机 而程序超过4 KB,或采用8031型单片机时,就需要进行程序 存储器的扩展。 存储器扩展的核心问题是存储器的编址问题。所谓编址 就是给存储单元分配地址。
存储器芯片的选择有两种方法: 线选法和译码法。 • 1. 线选法 • 所谓线选法, 就是直接以系统的地址线作为存储器芯片的 • 片选信号, 为此只需把用到的地址线与存储器芯片的片选端直 • 接相连即可。 • 2. 译码法 • 所谓译码法就是使用地址译码器(例如3-8译码器)对系 • 统的片外地址进行译码,以其译码输出作为存储器芯片的片选 • 信号。
译码法又分为完全译码和部分译码两种: • (1) 完全译码 • 地址译码器使用了全部地址线,地址与存储单元一一对 • 应,也就是1个存储单元只占用1个唯一的地址。 • (2) 部分译码 • 地址译码器仅使用了部分地址线,地址与存储单元不是 • 一一对应,而是1个存储单元占用了几个地址。1根地址线不 • 接,一个单元占用2(21)个地址;2根地址线不接,一个单元 • 占用4(22)个地址;3根地址线不接,则占用8(23)个地址,依 • 此类推。
程序存储器的特点是掉电后数据不丢失,常用来存放程程序存储器的特点是掉电后数据不丢失,常用来存放程 序和一些原始数据。按其制作原理可分为: (1) 掩膜ROM;(2) 可编程ROM(PROM);(3) 可擦除ROM(EPROM或E PROM)。 2 程序存储器扩展时要用到控制线 PSEN ,通常是直接连 接到扩展存储器芯片的 OE端。 5.2.2 程序存储器的扩展 下面用线选法和译码法分别介绍单片机程序存储器的扩 展方法。
线选法 P2.0 A8 PESN CE ~ ~ A12 A0 P2.7 ~ EPROM 74LS373 ALE A7 2764 (8KB) 8031 D0 P0.0 ~ ~ Vss EA P0.7 D7 OE 1)8031和2764的连接 图5-8 8031扩展一片2764(线选法)
(2)图4-8采用的是线选法,8031的P2.5连接到2764的(2)图4-8采用的是线选法,8031的P2.5连接到2764的 CE端口, 当8031的P2.5引脚为低电平时, 即选中了2764芯片。 说明: (1)8031片内没有ROM,故必须扩展片外的ROM, 2764是EPROM,容量为8KB。 (3)由于2764容量为8KB,故需要13根地址线与之相连, 即可选中该ROM的所有存储单元。这13根地址线来自8031的 P0.0~P0.7,P2.0~P2.4,接到2764的A0~A12。
(4)从8031的P0.0~P0.7端口输出的低8位地址,先送到(4)从8031的P0.0~P0.7端口输出的低8位地址,先送到 74LS373(地址琐存器),然后P0.0~P0.7端口再用来输出数据, 接到2764的D0~D7端口,高5位地址由P2.0~P2.4端口输出。 (5)图4-8中有地址重叠现象,只要保证P2.5引脚为低电 平,即可选中2764,故地址范围可以是0000H~1FFFH、或 者4000H~5FFFH、或者8000H~9FFFH、或者C000H~ DFFFH。 一般以0000H~1FFFH为基本地址范围。
+5V +5V RDY/BUSY P1.0 WR WE Vcc RD CE OE PSEN 2 E PROM P2.7 8031 P2.2 A10 2817 (2KB) P2.1 A9 P2.0 A8 8031片内无ROM, 必须在片外扩展 ROM, 于是EA必 须接低电平 ALE P0.7 74LS373 A7 ~ ~ EA P0.0 A0 I/O7 GND ~ 8 8 I/O0 2)8031和2817的连接 图5-11 8031和2817的连接
2 • 说明: • (1)2817是E PROM,存储容量为2KB,图5-2中采用的 • 是线选法译码方式(即P2.7直接与2817的CE端相连),只要 • P2.7为低电平,就可以选中2817的2KB存储空间。 (2)基本地址范围是 0000H~07FFH,只要保持P2.7为0, P0.0~P0.7以及P2.0~P2.2可以从00000000000~11111111111, P2.3~P2.6可以从0000~1111,因此地址范围总共有16组。 (3)P1.0口接2817的RDY/BUSY,是用来查询2817的写 入操作是否完成。
WR RD PSEN WE OE 数据存储器的扩展与程序存储器的扩展相类似,不同 之处主要在于控制信号的接法不一样,不用 信号,而 用 和 信号,且直接与数据存储器的 端和 端 相连即可。 5.2.3 数据存储器的扩展 数据存储器RAM即随机存取存储器(Random Access Memory),用于存放可随时修改的数据信息。它与ROM不 同,对RAM可以进行读、写两种操作。RAM为易失性存储 器,断电后所存信息立即消失。按其工作方式,RAM又分 为静态(SRAM)和动态(DRAM)两种。
+5V RESET P2.7 +5V RDY/RESET + Vcc RESET + CE ALE WR WE RAM P2.4 A12 2186 (8KB) 8031 ~ ~ P2.0 A8 P0.7 A7 ~ ~ P0.0 A0 Vss D7 EA ~ D0 RD OE 8 5 8 1)8031和2186的连接 上拉电阻: 作用是保证P2.7引脚 电平的稳定。 2186片内有地址锁存器,因而不需要74LS373 图5-12 8031和2186的连接
(2)8031的ALE、P2.7、RESET三个引脚通过或门共同(2)8031的ALE、P2.7、RESET三个引脚通过或门共同 来选通2186(CE引脚)。当三者的“或值”为低电平时,即 选通了2186芯片。 • 说明: • (1)2186是RAM,在片内集成了地址琐存器,容量为 • 8KB。因此,需要13根地址线与之相连,分别来自8031的P0 • 口和P2.0~P2.4。 (3)由于2186片内集成了地址琐存器,故在该扩展系统 中不需要74LS373,低8位地址在ALE的下降沿时通过2186的 地址线A0~A7送到它的片内地址琐存器当中,然后低8位地 址线再用来传送数据,接到2186的D0~D7端口。
P2.5 P2.4 -P2.0 ALE A0~A12 74LS373 A0~A12 P0.7 -P0.0 CE CE ROM 6264 2764 RAM 8031 WE D0~D7 OE PGM D0~D7 OE PSEN RD WR 5.2.4 同时扩展ROM和RAM 图5-13 8031同时扩展一片2764、一片6264
答:程序存储器和数据存储器虽然共用16位地址线和8答:程序存储器和数据存储器虽然共用16位地址线和8 位数据线,但由于程序存储器由读选通信号PSEN控制,而 数据存储器的读和写分别由RD和WR信号控制,故两者虽然 共处同一地址空间,但由于控制信号不同,所以不会发生总 线冲突。 说明:6264是RAM,2764是ROM。它们的容量都是 8KB,地址线都接在8031的P0口和P2.0~P2.4。8031的P2.5口 输出同时作为6264和2764的片选信号,接到它们的CE引脚。 问题:当80C51同时扩展了程序存储器和数据存储器, 并且这两种扩展芯片都共用16位地址线和8位数据线,为什 么两个存储器空间不会发生冲突?
思 考 题 1. 请用线选法在8031外部扩展两块2764芯片, 画出电路连接图 ? 2. 请用译码法在8031外部扩展两块2764芯片, 画出电路连接图 ?
线选法 1. 采用线选法在8031外部扩展两片2764的连接图如下:
译码法 2. 采用译码法在8031外部扩展两片2764的连接图如下: