我是靠谱客的博主 紧张八宝粥,最近开发中收集的这篇文章主要介绍51单片机存储结构1. 计算机结构分类2 8051的内存组织3 8051与外部存储器的接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前概要介绍了8151微控制器的结构(也就是51单片机)。相比微处理器,微控制器的区别之一是在一个芯片上有程序存储器(RAM)和数据存储器(RAM)。存储区是微控制器非常重要的内容。
本文就介绍一下8051的存储结构。包括存储器的组织、处理器对存储的访问、微控制器访问外部存储的方法。

在介绍存储结构之前,先介绍一下计算机结构。

1. 计算机结构分类

不管是微控制器还是微处理器,大都采用两种结构:冯诺依曼结构和哈佛结构。

冯诺尼曼结构:
在这里插入图片描述
哈佛结构:
在这里插入图片描述
两者的区别比较细微:哈佛结构的数据存储器和程序存储区是分开的,而冯诺依曼机构两者是一体的。

几乎所有的微控制器都使用哈佛结构(也包括51单片机)

个人猜测:哈佛结构的优势之一是可以同时取指令和取数据,提高执行效率。二是程序和数据可以采用不同的技术存储,以尽可能提高控制器的可靠性以及控制成本。

2 8051的内存组织

8051的内存被划分为程序存储器(ROM)和数据存储器(RAM)。就像他们的名字一样,程序存储器用于存储程序(也可以说是指令),数据存储器用于存储数据(可以是运行时需要的变量)。

8051单片机同时具有内部 ROM 和内部 RAM。如果内部存储器不足,可以使用合适的电路添加外部存储器。

2.1 8051的程序存储器(ROM)

程序存储器用于存储待执行的代码。最原始的8051微控制器有一个4kb的程序存储器。

某些8051的变体没有任何的ROM(程序存储器),必须要外挂程序存储器。(比如8031,8032)

几乎所有的现代8051微控制器有8kb的程序存储器,并且使用flash来实现。这使得微控制器可以重复编程。
在这里插入图片描述
对于一个4kb的ROM,地址空间为0000H到0FFFH。如果地址超过这个范围,那么CPU会自动的从外部程序存储器中获取代码。也就是说,外部访问存储器的引脚需要连接在高位。(高地址是外部程序存储器,低地址是内部程序存储器)

https://www.electronicshub.org/wp-content/uploads/2021/04/8051-Internal-and-External-Memory.png

在某些情况下,我们希望只使用外部程序存储区。这时候我们可以把外部地址的引脚连接到GND端,外部ROM的地址就变成0000H到FFFFH了

在这里插入图片描述

2.2 8051的数据存储器(RAM)

8051数据存储器(也可以称之为RAM)保存临时数据、以及运算时产生的中间数据。最原始的8051微控制器有一个128字节的RAM。

不过几乎所有的8051变体有256字节的RAM,在这256字节中,前128个字节用于工作寄存器(他们共同组成寄存器组)、位可寻址区域和通用 RAM (也称为暂存区域)。

我们可以进一步细分RAM的前128字节。前32字节(00H~1FH)分别是32个寄存器,他们被划分成4个寄存器组(register bank),每组8个寄存器。
这四个寄存器组被命名为bank0、bank1、bank2、bank3。每一个组内包含的8个寄存器分别命名为R0~R7。
在这里插入图片描述
每一个寄存器可以通过两种方式寻址:按名称或者按地址。
假如按名称来寻址,首先要选中对应的寄存器组。我们必须要使用PSW中的RS1和RS2来选中对应的组。

假如使用地址来寻址,则不需要选中对应的组。

接下来的16字节(20H~2FH)是按位寻址存储器。16字节也就是128位,如果单独给这些比特编址可以是00H到7FH。举个例子: 32H(比特地址)指向26H(字节地址)的第2个比特。

最后的80字节(30H到7FH)是通用存储区,按字节寻址。

RAM的低128字节可以间接寻址或者直接寻址,高128字节(80H到FFH)被分配给特殊功能寄存器(SRF),包括 I/O 端口寄存器(P0、 P1、 P2和 P3)、 PSW (程序状态字)、 A (累加器)、 IE (中断启用)、 PCON (电源控制)等。

在这里插入图片描述
SRF的地址仅可直接寻址。即使从80H到FFH的这段存储区中某些位置没有被用作SFR,他们可不能被用作RAM。

在某些微控制器中,会有128字节的额外RAM,他们与SFR共享存储地址。不过这些附加的RAM块仅可使用间接寻址。

3 8051与外部存储器的接口

仅靠内部的RAM/ROM很可能不够用,8051微控制器可以扩展存储。

如下是一种扩展方案:
在这里插入图片描述注意,端口0(P0)不能用作IO端口,因为它将用于多路复用地址和数据总线(A0 - A7和D0 - D7)。一般而言,端口2可以用作地址总线的较高字节(不过有时也有例外)。

  • 内容参考:https://www.electronicshub.org/8051-microcontroller-memory-organization/

最后

以上就是紧张八宝粥为你收集整理的51单片机存储结构1. 计算机结构分类2 8051的内存组织3 8051与外部存储器的接口的全部内容,希望文章能够帮你解决51单片机存储结构1. 计算机结构分类2 8051的内存组织3 8051与外部存储器的接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部