RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128 B RAM存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。
常用的外部数据存储器有静态RAM(Static Random Access Memory—SRAM)和动态RAM(Dynamic Random Access Memory—DRAM)两种。前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。
MCS-51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64 KB(0000H~FFFFH)。
一般情况下,SRAM用于仅需要小于64 KB数据存储器的小系统,DRAM经常用于需要大于64 KB的大系统。
实例:在一单片机应用系统中扩展2 KB静态RAM。
芯片选择
单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8位)、6264(8K×8位)、62256(32K×8位)等。根据题目容量的要求,我们选用SRAM 6116。
6116的管脚与EPROM 2716管脚兼容,管脚如图所示
硬件电路
单片机与6116的硬件连接如图所示。
连线说明
6116与单片机的连线如下:
地址线:A0~A10连接单片机地址总线的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根。
数据线:I/O0~I/O7连接单片机的数据线,即P0.0~P0.7。
控制线:CE片选端连接单片机的P2.7,即单片机地址总线的最高位A15;OE读允许线连接单片机的读数据存储器控制线RD;写允许线WE连接单片机的写数据存储器控制线WR。
片外RAM地址范围的确定及使用
按照上图的连线,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。显然,只有P2.7=0,才能够选中该片6116,故其地址范围确定如下:
如果与6116无关的管脚取0,那么,6116的地址范围是0000H~07FFH;如果与6116无关的管脚取1,那么,6116的地址范围是7800H~7FFFH。
单片机对RAM的读写除了可以如下指令:
MOVX @DPTR,A ;64 KB内写入数据
MOVX A,@DPTR ;64 KB内读取数据
外,还可以使用以下对低256 B的读写指令:
MOVX @Ri,A ;低256 B内写入数据
MOVXA,@Ri ;低256 B内读取数据