8.2地址空间分配和外部地址锁存器 本节讨论如何进行存储器空间的地址分配,并介绍用于输出 低8位地址的常用的地址锁存器。 8.2.1存储器地址空间分配 实际系统设计中,既需要扩展程序存储器,又需要扩展数据 存储器,如何把片外的两个64KB地址空间分配给各个程序存 储器、数据存储器芯片,使一个存储单元只对应一个地址,避 免单片机发出一个地址时,同时访问两个单元,发生数据冲突。 这就是存储器地址空间分配问题。 11
11 8.2 地址空间分配和外部地址锁存器 本节讨论如何进行存储器空间的地址分配,并介绍用于输出 低8位地址的常用的地址锁存器。 8.2.1 存储器地址空间分配 实际系统设计中,既需要扩展程序存储器,又需要扩展数据 存储器,如何把片外的两个64KB地址空间分配给各个程序存 储器、数据存储器芯片,使一个存储单元只对应一个地址,避 免单片机发出一个地址时,同时访问两个单元,发生数据冲突。 这就是存储器地址空间分配问题。 11
AT89S52单片机发出的地址码用于选择某个存储器单元,外 扩多片存储器芯片中,单片机必须进行两种选择:一是选中该存 储器芯片,这称为“片选”,未被选中的芯片不能被访问。二是 在“片选”的基础上再根据单片机发出的地址码来对“选中” 芯片的某一单元进行访问,即“单元选择”。 为实现片选,存储器芯片都有片选引脚。同时也都有多条地 址线引脚,以便进行单元选择。注意,“片选”和“单元选择” 都是单片机通过地址线一次发出的地址信号来完成选择。 通常把单片机系统的地址线笼统地分为低位地址线和高位地 12
12 AT89S52单片机发出的地址码用于选择某个存储器单元,外 扩多片存储器芯片中,单片机必须进行两种选择:一是选中该存 储器芯片,这称为“片选”,未被选中的芯片不能被访问。二是 在“片选”的基础上再根据单片机发出的地址码来对“选中” 芯片的某一单元进行访问,即“单元选择”。 为实现片选,存储器芯片都有片选引脚。同时也都有多条地 址线引脚,以便进行单元选择。注意,“片选”和“单元选择” 都是单片机通过地址线一次发出的地址信号来完成选择。 通常把单片机系统的地址线笼统地分为低位地址线和高位地 12
址线,“片选”都是使用高位地址线。实际上,16条地址线 中的高、低位地址线的数目并不是固定的,只是习惯上把用 于“单元选择”的地址线,都称为低位地址线,其余的为 高位地址线。 常用的存储器地址空间分配方法有两种:线性选择法(简 称线选法)和地址译码法 (简称译码法),下面介绍。 1.线选法 是直接利用系统的某一高位地址线作为存储器芯片(或 O接口芯片)的“片选”控制信号。为此,只需要把用到 的高位地址线与存储器芯片的“片选”端直接连接即可。 13
13 址线,“片选”都是使用高位地址线。实际上,16条地址线 中的高、低位地址线的数目并不是固定的,只是习惯上把用 于 “单元选择”的地址线,都称为低位地址线,其余的为 高位地址线。 常用的存储器地址空间分配方法有两种:线性选择法(简 称线选法)和地址译码法(简称译码法),下面介绍。 1.线选法 是直接利用系统的某一高位地址线作为存储器芯片(或 I/O接口芯片)的“片选”控制信号。为此,只需要把用到 的高位地址线与存储器芯片的“片选”端直接连接即可
线选法优点是电路简单,不需要另外增加地址译码器硬件 电路,体积小,成本低。缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,这会 给程序设计带来不便,只适用于外扩芯片数目不多的单片机 系统的存储器扩展。 2.译码法 使用译码器对AT89S51单片机的高位地址进行译码,译 码输出作为存储器芯片的片选信号。这种方法能够有效地利 用存储器空间,适用于多芯片的存储器扩展。常用的译码器 芯片有74LS138(3线-8线译码器)、74LS139(双2线-4线 译码器)和74LS154(4线-16线译码器) 14
14 线选法优点是电路简单,不需要另外增加地址译码器硬件 电路,体积小,成本低。缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,这会 给程序设计带来不便,只适用于外扩芯片数目不多的单片机 系统的存储器扩展。 2.译码法 使用译码器对AT89S51单片机的高位地址进行译码,译 码输出作为存储器芯片的片选信号。这种方法能够有效地利 用存储器空间,适用于多芯片的存储器扩展。常用的译码器 芯片有74LS138(3线-8线译码器)、74LS139(双2线-4线 译码器)和74LS154(4线-16线译码器)。 14
若全部高位地址线都参加译码,称为全译码;若仅部分高 位地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。 下面介绍常用的译码器芯片。 (1)74LS138 3线-8线译码器,有3个数据输入端,经译码产生8种状态。 引脚如图8-3所示,真值表见表8-1。由表8-1可见,当译码 器的输入为某一固定编码时,其输出仅有一个固定的引脚输 出为低电平,其余的为高电平。输出为低电平的引脚就作为 某一存储器芯片的片选信号。 15
15 若全部高位地址线都参加译码,称为全译码;若仅部分高 位地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。 下面介绍常用的译码器芯片。 (1)74LS138 3线-8线译码器,有3个数据输入端,经译码产生8种状态。 引脚如图8-3所示,真值表见表8-1。由表8-1可见,当译码 器的输入为某一固定编码时,其输出仅有一个固定的引脚输 出为低电平,其余的为高电平。输出为低电平的引脚就作为 某一存储器芯片的片选信号。 15