您的位置: 网站首页 > 电子与嵌入式 > 单片机原理与应用 > 第5章 半导体存储器 > 【5.4 MCS-51和外部储存器的连接方法】

5.4 MCS-51和外部储存器的连接方法

 

5.4  MCS-51和外部储存器的连接方法

MCS-51和外部存储器连接时应充分考虑如下4个问题。

1.选取存储器芯片的原则

只读存储器常用于固化固定程序和常数,以便系统一开机就可按照预定程序工作。只读存储器有掩膜ROMPROMEPROM 3种:若所设计系统是小批量生产或研制中产品,则建议采用EPROM型器件;若为定型的大批量产品,则应采用PROM或掩膜ROM,以降低生产成本和提高系统的可靠性。

随机存取存储器有静态RAM和动态RAM两类,常用来存放实时数据、变量和运算结果,若所用RAM容量较小,则宜采用静态RAM,以简化硬件电路设计;若所设计RAM容量很大,则应采用动态RAM,以降低生产成本。

2MCS-51对存储容量的要求

MCS-51所需要的存储容量和存储芯片本身的存储容量不是同一概念。MCS-51所需要的存储容量由实际单片机应用系统的实时数据和应用程序的数量决定,每个存储单元必须为二进制8位,而且受所选单片机寻址能力制约;存储器芯片本身的存储容量由所选存储器芯片型号决定,且每个存储单元的二进制位数不一定是8位。因此,所设计系统需要的存储器芯片数量必须从存储单元数量和位数两方面考虑同时满足系统的要求。例如:某一单片机应用系统需要32KB RAM存储器,若采用6264仅需4块,若改用2116就需要16块。这就是说,在MCS-51实际所需存储容量不变的前提下,若所选存储芯片本身存储容量越大,则所用芯片数量就越少。

3.工作速度匹配

MCS-51对外部存储器进行读/写所需要的时间称为MCS-51的访存时间,是指从它向外部存储器发出地址码和读写信号到P0口选通读出数据或保持写入数据所需要的时间,这个时间需要两个时钟周期以上。存储器最大存取时间是存储器固有的时间,这个时间参数可以从有关手册或实际测量中获得。为了使MCS-51和外部存储器同步而可靠地工作,MCS-51的访存时间必须大于所用外部存储器的最大存取时间。例如:若8031的主脉冲为6MHz,则它的访存时间应大于400ns,故所选存储器芯片的最大存取时间必须小于这个数。

4MCS-51对存储器地址的分配

在确定外部RAMROM容量和所选存储器芯片的型号和数量以后,我们还必须给每块芯片划定一个地址分配范围,因为所分存储器的地址范围不同,它和地址译码器的连接就不一样。

5.4.1  对外部ROM的连接

18031UVEPROM的连接

80312764的连接如图5-21所示。由于2764存储容量为8KB,故8031片内地址线为P2.4P2.0P0.7P0.0P2.4P2.0直接和2764A12A8相接,P0.7P0.074LS373输出后接到2764A7A0),共13条。片选地址线共3条,其中P2.5直接和2764 相接,P2.7P2.6悬空(或作其他功能芯片的片选线)。2764相接,以便8031执行MOVC指令时产生低电平而选中2764,其他引脚连接如图5-21所示。

5-21  80312764的连接

根据基本地址范围的定义,即未参加译码的片选线P2.7P2.6上以低电平“0”计算时的地址范围,2764的基本地址范围应为0000H1FFFH。重叠地址范围定义为未参加译码的片选地址和片内地址从全“0”变到全“1”时的地址范围,2764的重叠地址范围为:

0000H1FFFH     8KB       8000H9FFFH    8KB

4000H5FFFH     8KB       C000HDFFFH    8KB

显然,2764共有32KB重叠地址范围,它们在整个64KB区域中是不连续的。使用该硬件电路时,应注意把程序和常数放在基本地址范围内。

28031E2PROM的连接

2817Intel公司的E2PROM,是一种存储容量为2KB的省去全部硬件接口电路也能执行数据写入的固件。2817可以通过RDY/引脚在系统环境中避免总线冲突。图5-22列出了它和8031的连接关系。它的基本地址范围为0000H07FFH;重叠地址范围为0000H7FFFH,共32KB。这就是说,只要8031P2.7上发出低电平“0,其余地址线无论怎样变化均可选中2817

5-22  80312817的连接

其工作过程为:

18031先通过程序向2817发出“字节写入”命令,然后对P1.0进行程序查询,若它为低电平,则表明2817字节写入操作尚未完成,8031继续查询等待。

22817接受8031的“字节写入”命令后16ms便可完成一个存储单元的字节写入操作,然后使RDY/变为高电平。

38031查询到RDY/变为高电平就意味着本次字节写入操作已经完成,可以准备下一次的“字节写入”操作。

8031进行下次字节写入操作只需重复上述各步骤。

5.4.2  对外部RAM的连接

18031对静态RAM的连接

5-23列出了803161162KB)的连接。图中,8031分别连到6116,以便8031执行MOVX指令时选中6116工作。片选线P2.7P2.5参加译码(P2.7连到二-四译码器控制端G),片选线P2.4P2.3未参加译码,故为部分译码方式。

5-23  80316116的连接

6116的重叠地址范围为:

1#6116    0000H1FFFH     8KB

2#6116    2000H3FFFH     8KB

显然,重叠地址范围是连续的。其中,基本地址范围为:

1#6116    0000H07FFH    2KB

2#6116    2000H27FFH    2KB

28031对动态RAM的连接

2186是全集成化的8KB动态RAM,把全部刷新控制电路集成在基片的平面上,使系统设计者既能利用动态RAM的密度、功耗和价格方面的优点,又不必为设计刷新控制接口而增加硬件成本。图5-24列出了80312186的连接。由图可见,8031通过下降沿把出现在P0口低8位地址锁存到2186内部地址锁存器,故P0口可以和2186A7A0直接相连而无需外接地址锁存器。8031P2.4P2.02186A12A8相连,由P2口提供高5位地址码。8031连到2186,以提供2186所需的读/写选通信号。

5-24  80312186的连接

2186的基本地址范围为0000H1FFFH。此外,P2.6P2.5未参加译码而悬空,其重叠地址范围为0000H7FFFH,共32KB

5.4.3  MCS-51对外部存储器的连接

8031对外部ROMRAM的连接如图5-25所示。由图可见,8031的地址采用全译码方式,片选线P2.7用于控制二—四译码器工作,片选线P2.6P2.5参加译码,且无悬空的片选线。因此,存储器所有地址都是唯一的,地址无重叠。各存储器芯片的基本地址范围为:

1#2764     0000H1FFFH 8KB

2#6264     2000H3FFFH 8KB

3#6264     4000H5FFFH 8KB

应当指出,由于8031经低电位或门后接到2#3#存储器位置上的引脚,直接和相应相接,因此2#3#存储器位置上的芯片插座既可以安装6264也可以插上2764。如果安装6264,那么6264既可以作为8031的外部RAM又可以作为外部ROM来存放数据和程序。

5-25  8031对外部ROM/RAM的连接 

5.5     

1)单片机存储器的主要功能是存储             

2)试编写一个程序(例如将05H06H拼为56H),设原始数据放在片外数据区2001H2002H单元中,按顺序拼装后的单字节数放入2002H单元。

3)假设外部数据存储器2000H单元的内容为80H,执行下列指令后

                            MOV                    P2#20H

                            MOV                    R0#00H

                            MOVX                  A@R0

累加器A中的内容为      

4)编写程序,将外部数据存储器中的4000H40FFH单元全部清零。

5)在MCS-51单片机系统中,外接程序存储器和数据存储器的16位地址线和8位数据线为何不会发生冲突?

6区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是      

看其位于地址范围的低端还是高端。

看其离MCS-51芯片的远近。

看其芯片的型号是ROM还是RAM

看其是与信号连接还是与信号连接。

7)在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的       端提供信号。

8)起止范围为0000H3FFFH的存储器的容量是       KB

9)在MCS-51中,PCDPTR都用于提供地址,但PC是为访问       存储器提供地址,而DPTR是为访问       存储器提供地址。

1011根地址线可选       存储单元,16KB存储单元需要       根地址线。

1132KB RAM的首地址若为2000H,则末地址为        H

12)现有8031单片机、74LS373锁存器、12764EPROM26116RAM,请使用它们组成一个单片机系统,要求:

画出硬件电路连线图,并标注主要引脚。

指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。