8051微控制器内存组织

在8051微控制器上的先前教程中,我们已经看到了8051微控制器介绍和基础知识,引脚,引脚描述和架构概述。在本教程中,我们将通过了解8051微控制器内存组织,程序存储器(ROM),数据存储器(RAM),外部存储器来继续探索8051微控制器。

When the differences between microprocessor and microcontroller are mentioned in the previous tutorial, the main difference can be stated as on-chip memory i.e., a Microcontroller has both Program Memory (ROM) and Data Memory (RAM) on the same chip (IC), whereas a Microprocessor has to be externally interface with the memory modules.

因此,很明显,内存是8051微控制器体系结构的重要组成部分(对于任何微控制器而言)。因此,对我们来说,了解8051微控制器的内存组织是很重要的,即,内存是如何组织的,处理器如何访问每个内存,以及如何与8051微控制器接口外部内存。

在进入8051微控制器内存组织的详细信息之前,我们将首先看到关于计算机架构的一点,然后继续8051微控制器的内存组织。

还阅读了8051微控制器架构概述

计算机架构的类型

基本上,微处理器或微控制器根据两种计算机架构进行分类:von Neumann架构和哈佛架构。

冯Neumann建筑

von neumann架构或普林斯顿架构是一种计算机架构,其中程序等于指令和数据存储在一个存储器中。

由于指令存储器和数据存储器相同,因此处理器或CPU无法在使用单个总线时同时访问两个指令和数据。

这种类型的架构对系统的性能具有严重的局限性,因为它在访问存储器时创建瓶颈。

8051微控制器内存组织图像1

哈佛架构

与冯·诺伊曼体系结构不同,哈佛体系结构为指令(程序)和数据使用单独的内存。由于指令存储器和数据存储器在哈佛架构中是分开的,它们的信号路径也就是总线也是不同的,因此,CPU可以同时访问指令和数据。

几乎所有的微控制器,包括8051微控制器实现哈佛架构。

8051微控制器内存组织

8051微控制器内存在程序存储器(ROM)和数据存储器(RAM)中分开。8051微控制器的程序存储器用于存储要执行的程序I.,指令。另一方面,数据存储器用于存储临时变量数据和中间结果。

8051微控制器具有内部ROM和内部RAM。如果内部存储器不足,则可以使用合适的电路添加外部存储器。

阅读这个有趣的帖子:8051工程学生的微控制器项目

8051微控制器的程序存储器(ROM)

在8051微控制器中,要执行的代码或指令存储在程序存储器中,该程序存储器也称为微控制器的ROM。Intel原件8051微控制器有4KB的内部ROM。

8051的某些变体如8031和8032系列没有任何内部ROM(程序存储器),并且必须与外部程序存储器接口,其中指令装入其中。

几乎所有现代的8051微控制器,如8052系列,具有8KB的内部程序存储器(ROM),以闪存(ROM)的形式,并提供重新编程内存的选项。

8051微控制器内存组织图像4

在4KB的内部ROM的情况下,地址空间为0000H至0FFFH。如果地址空间,则,程序地址超过此值,则CPU将自动从外部程序存储器获取代码。

For this, the External Access Pin (EA Pin) must be pulled HIGH i.e., when the EA Pin is high, the CPU first fetches instructions from the Internal Program Memory in the address range of 0000H to 0FFFFH and if the memory addresses exceed the limit, then the instructions are fetched from the external ROM in the address range of 1000H to FFFFH.

8051微控制器内存组织图像5

有另一种方法来获取说明:忽略内部ROM,并仅从外部程序存储器(外部ROM)获取所有指令。对于这种情况,EA引脚必须连接到GND。在这种情况下,外部ROM的存储器地址将是0000h到FFFFH。

8051微控制器内存组织图像6

数据存储器(RAM)为8051微控制器

8051微控制器的数据存储器或RAM存储在微控制器的正常操作期间生成和使用的临时数据和中间结果。原始英特尔的8051微控制器有128B内存。

但几乎所有现代的8051微控制器的变种都有256B的RAM。在该256b中,从00h到7fh的第一128b,第一128b,从00h到7fh被划分为工作寄存器(组织为寄存器库),比特 - 可寻址区域和通用RAM(也称为刮擦区域)。

在RAM的第一128B(从00h至7fh)中,第一32b,从地址00h到1fh的存储器由32个工作寄存器组成,该工作寄存器被组织为每个银行中的8个寄存器的四个存储器。

8051微控制器内存组织图像7

4家银行被命名为Bank0,Bank1,Bank2和Bank3。每个银行由8名称名为R0 - R7的寄存器组成。每个寄存器都可以以两种方式解决:按名称或地址进行解决。

要按名称解决寄存器,首先必须选择相应的银行。为了选择银行,我们必须使用程序状态字(PSW)寄存器的RS0和RS1位(RS0和RS1是PSW寄存器中的第3位和第4位)。

使用其地址地址时,例如,12h地址寄存器时,可以或可能无法选择相应的银行。(12h对应于Bank2中的R2)。

RAM的下一个16B,从20H到2FH为位可寻址存储位置。总共有128位可以使用00h至7fh单独寻址,或者整个字节可以被寻址为20h至2fh。

例如,32H是内部RAM位置26H的位2。

内部RAM的最终80B,即30h至7FH的地址,是一般可寻址的通用RAM区域。

这些较低128B的RAM可以直接或间接地寻址。

RAM的上层128B,即从80H到FFH的内存地址被分配给特殊函数寄存器(SFRs)。SFRs控制具体功能的8051单片机。一些SFRs是I/O端口寄存器(P0, P1, P2和P3), PSW(程序状态字),A(累加器),IE(中断使能),PCON(电源控制)等。

8051微控制器内存组织图像9

SRFS存储器地址仅是可寻址的。尽管80H和FFH之间的一些地址未被分配给任何SFR,但它们也不能用作额外的RAM区域。

在一些微控制器中,还有另外的128B RAM,其与SFR中的存储地址共享,即80h至FFH。但是,此额外的RAM块仅被间接寻址访问。

使用8051微控制器接口外部存储器

可以选择扩展微控制器的功能总是很好的,无论是在内存还是IO或其他任何内容。这种膨胀将有助于避免设计节流。我们已经看到典型的8051微控制器具有4KB的ROM和128B RAM(大多数现代8051微控制器变体具有8K ROM和256B的RAM)。

基于8051微控制器的系统的设计者不限于8051微控制器中存在的内部RAM和ROM。提供连接外部RAM和ROM I.,数据存储器和程序。

使用外部程序存储器或ROM的原因是,用高级语言编写的复杂程序往往更大,占用更多的内存。

另一个重要的原因是,像8031或8032这样的芯片没有任何内部ROM,必须与外部ROM接口。

最多64KB的程序存储器(ROM)和数据存储器(RAM)可以与8051微控制器接口。

下图显示了8051微控制器接口64KB外部RAM和64KB外部ROM的框图。

8051微控制器内存组织图像8

在使用8051微控制器接口外部存储器时要记住的重要点是端口0(P0)不能用作IO端口,因为它将用于多路复用地址和数据总线(A0-A7和D0-D7)。并不总是,但端口2可以用作地址总线的更高字节。

在本教程中,我们已经看到了8051微控制器存储器组织,程序存储器,数据存储器,内部ROM和RAM以及如何接口外部存储器(ROM和RAM)与8051微控制器。

9回复

  1. 你好,非常好的演讲,我是一个QUST,在地址Ram I. 000FH中,H裁判到十六进制?
    所有的RAM地址都是4位格式吗?

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*