RAM是用来存放各种数据的,MCS-51单片机内部有128B(51子系列)/256B(52子系列)的RAM存储器,CPU对内部RAM具有丰富的操作指令。但当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,可以采用外部的RAM来扩展单片机的数据存储器。由于单片机的引脚无动态刷新功能,因此,单片机一般仅采用静态RAM(即SRAM)来扩展数据存储器。
1.常见的数据存储器RAM的芯片
常用的SRAM芯片有2114(1K×4bit)、6116(2K×8bit)、6264(8K×8bit)、62256(32K×8bit)等。图7-25为常用SRAM芯片的引脚图。
2.片外数据存储器RAM的操作时序
扩展RAM和扩展ROM类似,由P2口提供高8位地址,P0口分时地作为低8位地址线和8位双向数据总线。
(1)外部RAM的读时序。图7-26为外部RAM读时序图。当执行指令MOVX A,@Ri或MOVX A,@DPTR时进入外部数据RAM是的读周期。在第一个机器周期的第一个ALE的上升沿,把外部程序存储器的指令MOVX读入后就开始了对片外RAM的读过程。第一个机器周期的第一个ALE高电平期间,在P0处于高阻三态后,根据指令间址提供的地址,P2口输出外部RAM的高8位地址A15~A8,P0端口输出低8位地址A7~A0;在第一个机器周期的第一个ALE下跳沿,P0输出的低8位地址被锁存在锁存器中,随后P0又进入高阻三态,信号有效后,被选中的RAM的数据在第二个机器周期出现在数据总线上,P0处于输入状态,CPU从P0读入外部RAM的数据。
图7-25 常用SRAM芯片的引脚
图7-26 外部RAM的读时序
(2)外部RAM的写时序。图7-27为外部RAM写时序图。当执行MOVX@Ri,A或MOVX@DPTR,A指令时进入外部数据存储器的写周期。写外部RAM的操作时序与读外部RAM的时序差别在于:①有效代替有效,以表明这是写数据RAM的操作;②在P0输出低8位地址A0~A7后,P0立即处于输出状态,提供要写入外部RAM的数据供外部RAM取走。
由以上时序分析可见,访问外部数据RAM的操作与从外部程序存储器ROM取指令的过程基本相同,只是前者有读有写,而后者只有读而无写;前者用选通,而后者用选通;前者一个机器周期中ALE两次有效,后者则只有一次有效。因此,不难得出MCS-51单片机与外部RAM的连接方法。(www.xing528.com)
图7-27 外部RAM的写时序
图7-28 单片机扩展数据存储器RAM电路
(3)片外数据存储器RAM的扩展方法。与程序存储器ROM扩展原理相同,数据存储器RAM的扩展也是使用P0、P2端口作为地址总线、数据总线。
当使用MOVX A,@Ri或MOVX@Ri,A指令时,系统使用P0端口输出地址信号(P2端口不用);当使用MOVX A,@DPTR或MOVX@DPTR,A指令时,P0端口输出DPTR提供的低8位地址信号,P2端口输出DPTR提供的高8位地址信号。
与ROM扩展不同,访问外部RAM的指令是MOVX,在时序中将产生 信号,因此,将信号分别与片外RAM相应的读、写相连接,就能够实现系统对片外RAM的读/写控制。外部数据存储器的扩展方法如图7-28所示。
由于数据存储器的扩展方法和程序存储器的扩展方法相同,只是控制信号不同,在此就不多举例了,读者可根据选用芯片数据手册连接电路,然后根据连接好的电路,确定地址范围。下面仅举例说明当存储器RAM芯片不足8位时,它们如何与单片机相连接。
【例7-5】 采用2114(1K×4bit)芯片在8031片外扩展1KB数据存储器。
由于2114芯片的容量为1K×4bit,每片2114共有1K个存储单元,但每个单元仅有4位,而8031的数据总线为8位,因此,需要进行位扩展。两片2114并联连接起来后每个单元正好为8位,此时两片的第1片数据线作为低4位数据,而第2片数据线作为高4位数据,而两片的其他引脚只需对应连接在一起即可,这样两片并接后就可得到1K×8bit=1KB的数据存储器。图7-29为采用两片2114SRAM的扩展连接电路图。另外,2114芯片的为读、写复用引脚,当、1时分别处于写、读状态。
图7-29 两片2114 SRAM的扩展连接电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。