文档介绍:关于扩展存储器
*
第一张,共四十四张,创建于2022年,星期六
*
第8章 目录
系统扩展结构
地址空间分配和外部地址锁存器
存储器地址空间分配 外)
74LS139(双2线-4线译码器)
74LS154(4线-16线译码器)
译码方法的分类:
全部高位地址线都参加译码,称为全译码;
仅部分高位地址线参加译码,称为部分译码(有地址重叠问
题);
第十张,共四十四张,创建于2022年,星期六
*
常用的译码器芯片。
(1)74LS138
3线-8线译码器,有3个数据输入端,经译码产生8种状态。
当译码器的输入为某一固定编码时,其输出仅有一个固定
的引脚输出为低电平,其余的为高电平。输出为低电平的引
脚就作为某一存储器芯片的片选信号。
第十一张,共四十四张,创建于2022年,星期六
*
(2)74LS139
双2线-4线译码器。
这两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端。
图8-4 74LS139引脚图
第十二张,共四十四张,创建于2022年,星期六
*
例:要扩8片8KB的RAM 6264,如何通过74LS138把64KB
空间分配给各个芯片?
1)控制信号:G1接到+5V, 、 接地。
2)、、(高3位地址线)分别接74LS138
的C、B、A端,译码器的8个输出 ~ ,分别
接到8片6264的各 “片选”端,实现8选1的片选。
3)低13位地址(~,~)完成对选中
的6264芯片中的各个存储单元的“单元选择”。这样就
把64KB存储器空间分成8个8KB空间了。
第十三张,共四十四张,创建于2022年,星期六
*
64KB地址空间分配如图8-5所示。
图8-5 64KB地址空间划分成8个8KB空间
第十四张,共四十四张,创建于2022年,星期六
*
例:用74LS138把64KB空间全部划分为4KB的块,外接16
片存储器,分属不同的4KB 地址。
分析:
4KB空间需12条地址线进行单元选择;
剩下4根地址线刚好译码成片选端。
问题:74LS138译码器输入只有3条地址线(~
),8条输出线,如何获得16片存储器的
16个片选信号呢?
解决方法:使用两片74LS138。
注意:采用译码器划分的地址空间块都是相等的,如果将地址空间块划分为不等的块,可采用可编程逻辑器件FPGA对其编程来代替译码器进行非线性译码。
第十五张,共四十四张,创建于2022年,星期六
*
图8-6 存储器空间被划分成16个4KB的块
8000H
8FFFH
9000H
9FFFH
A000H
AFFFH
B000H
BFFFH
C000H
CFFFH
D000H
DFFFH
E000H
EFFFH
F000H
FFFFH
第十六张,共四十四张,创建于2022年,星期六
*
外部地址锁存器
受引脚数的限制,P0口兼用数据线和低8位地址线,为了将它们分离出来,需在单片机外部增加地址锁存器。目前,常用的地址锁存器芯片有74LS373、74LS573等。
1.锁存器74LS373
是一种带三态门的8位锁存器,其引脚如图8-7所示,内部结构如图8-8所示。AT89S51与74LS373锁存器的连接如图8-9所示。
第十七张,共四十四张,创建于2022年,星期六
*
图8-7 锁存器74LS373的引脚
图8-8 74LS373的内部结构
引脚说明:
D7~D0:8位数据输入线,
Q7~Q0:8位数据输