知方号

知方号

8051单片机与片外存储器(片外RAM和ROM)的连接<单片机读取外部电平>

8051单片机与片外存储器(片外RAM和ROM)的连接

前言

很多人在开发时遇到单片机片内RAM和ROM容量不够用的问题:

今天就来说说如何通过单片机与片外存储器的连接来解决片内RAM和ROM容量不够用的问题

提示:在阅读时如果有什么问题大家可以评论区留言

一、片内RAM是什么?

我们所熟知的8051单片机,其内部有很多存储器:

其中就有RAM:可读写存储器,也称数据存储器

RAM的容量为256字节(这里面当然包含一些特殊功能的寄存器)

二、片内ROM是什么?

8051单片机,其内部除了有RAM,还有ROM:

8051内部的ROM:只读存储器,也被称程序存储器ROM的容量为4KB

三、RAM或ROM容量会不会不够用?

通过了解,我们发现这个RAM和ROM的容量比较小,那到底够不够我们用呢?

这就要看我们是用它来干什么,正常情况下是够用的。

那万一不够用怎么办呢:

小编我就出现生过单片机内部的RAM或ROM容量不够用的情况;

下面就来通过外接RAM或ROM来解决下

四、解决办法

1.8051单片机与片外RAM或片外ROM连接

在8051单片机与片外RAM或片外ROM连接时:

使用P0.0~P0.7和P2.0~P2.7引脚输出16位地址,可以最大寻址216=65536=64K个存储单元,个存储单元可以存储1个字节(1Byte),也就是8位二进制数(8bit),即1Byte=8bit;需要注意的是:8051单片机外接RAM或ROM容量最大不要超过64KB,超出范围的存储单元就无法识别和使用了。

2.单片机从片外 RAM 写入数据

当单片机需要从片外 RAM 写入数据时:

读写时会从 P0.0~P0.7 引脚输出低 8 位地址(如00000011),再通过8路锁存器送到片外RAM的A0~A7引脚,它与P2.0~P2.7引脚输出并送到片外RAM的A8~A15引脚的高8位地址一起拼成16位地址,从64K个(即216个)存储单元中选中某个存储单元。

3.单片机往片外RAM写入数据

如果单片机要往片外RAM写入数据:

写入数据会从WR引脚送出低电平到片外 RAM 的WE脚,片外 RAM 被选中的单元准备接收数据。

与此同时,单片机的ALE端送出ALE脉冲信号去锁存器的C端,将1Q~8Q端与1D~8D端隔离开,并将1Q~8Q端的地址锁存起来(保持输出不变),单片机再从P0.0~P0.7引脚输出8位数据,送到片外RAM的D0~D7引脚,存入内部选中的存储单元。

4.单片机从片外RAM读取数据

如果单片机要从片外RAM读取数据:

跟上面同样先要发出地址选中片外RAM的某个存储单元,并让RD端输出低电平去片外RAM的OE端;

再将P0.0~P0.7引脚输出低8位地址锁存起来;

然后让P0.0~P0.7引脚接收片外RAM的D0~D7引脚送来的8位数据。

5.外部存储器是ROM(只读存储器)

如果我们外部存储器是ROM(也就是只读存储器)时:

此时单片机不使用WR端和RD端,但会用到PSEN端,并将PSEN引脚与片外ROM的OE引脚连接起来,在单片机从片外ROM读数据时,会从PSEN引脚送出低电平到片外ROM的OE引脚,除此之外,单片机读片外ROM的过程与片外RAM基本相同。

五、与片外的连接

上图所示的是8051 单片机与片外存储器连接线:

具体有:

有地址总线(AB)

数据总线(DB)

控制总线(CB)

1.地址总线

地址总线由A0~A15共16根线组成,最大可寻址216=65536=64K个存储单元:

2.数据总线

数据总线由D0~D7共8根线组成(与低8位地址总线分时使用),一次可存取8位二进制数(即一个字节)

3.控制总线

控制总线由RD、WR和ALE共3根线组成。

总结

通过上面的接线后,单片机在执行到读写片外存储器的程序时,会自动按一定的时序发送地址和控制信号,再读写数据,无需人工编程参与。

————————————————

版权

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。