8051微控制器内存组织

在上一个关于8051微控制器的教程中,我们看到了8051微控制器简介以及基础知识,销图,引脚描述和体系结构概述。在本教程中,我们将通过了解8051微控制器内存组织,程序内存(ROM),数据存储器(RAM),外部内存来继续探索8051微控制器。

当上一个教程中提到微处理器和微控制器之间的差异时,可以将主要差异表示为片上存储器,即微控制器在同一芯片(IC)上同时具有程序存储器(ROM)和数据存储器(ROM),而微处理器必须与内存模块进行外部接口。

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

在进行8051 MicroController内存组织的详细信息之前,我们将首先看到有关计算机体系结构的一点,然后继续进行8051 MicroController的内存组织。

也可以阅读8051微控制器体系结构概述

计算机架构类型

基本上,根据两种类型的计算机体系结构对微处理器或微控制器进行分类:von Neumann Architecture和Harvard Architecture。

冯·诺伊曼建筑

von Neumann体系结构或普林斯顿体系结构是计算机架构,即程序和数据存储在单个内存中。

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

这种类型的体系结构对系统的性能有严重的限制,因为它在访问内存时会产生瓶颈。

8051内存组织von Neumann架构

哈佛建筑

与冯·诺伊曼(Von Neumann)体系结构相比,哈佛建筑使用单独的内存进行指导(程序)和数据。由于指令记忆和数据存储器在哈佛体系结构中是分开的,因此它们的信号路径,即总线也不同,因此CPU可以同时访问指令和数据。

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

8051记忆组织哈佛建筑

8051微控制器内存组织

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

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

阅读此有趣的帖子:8051工程专业学生的微控制器项目

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

在8051 MicroController中,要执行的代码或指令存储在程序内存中,该记忆也称为MicroController的ROM。英特尔最初的8051微控制器具有4KB的内部ROM。

8051的某些变体(例如8031和8032系列)没有任何内部ROM(程序存储器),必须与外部程序内存连接,其中加载了指令。

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

8051程序内存(ROM)

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

为此,必须将外部访问引脚(EA PIN)拉高,即当EA引脚高时,CPU首先在0000H的地址范围内从内部程序内存中获取指令至0FFFFFH,并且内存地址超过限制。,然后将指令从1000H的地址范围内从外部ROC中获取到FFFFH。

8051内部和外部内存

还有另一种获取指令的方法:忽略内部ROM,仅从外部程序内存(外部ROM)中获取所有指令。对于这种情况,必须将EA PIN连接到GND。在这种情况下,外部ROM的内存地址将从0000H到FFFFH。

仅8051外部内存

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

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

但是,8051微控制器的几乎所有现代变体​​都有256b的RAM。在这256b中,第一个128b即,从00h到7fh的内存地址分为工作寄存器(组织为注册库),位 - 可寻址区域和通用RAM(也称为ScratchPad区域)。

在第一个128b的RAM(从00h到7FH)中,前32B,即,从地址00h到1FH的内存由32个工作登记册组成,这些寄存器由4个银行组织,每个银行中有8个寄存器。

8051记忆组织哈佛建筑

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

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

当使用其地址(即12H)处理寄存器时,相应的银行可能会选择也可能不会选择。(12H对应于bank2中的R2)。

RAM的下一个16B,即20H至2FH是位 - 可寻址内存位置。总共可以使用00h到7fh单独解决128位,或者整个字节可以以20小时至2FH的速度解决。

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

内部RAM的最后80b即30h至7fh的地址是可寻址的通用RAM区域。

这些较低的128B RAM可以直接或间接解决。

RAM的上部128b即,分配了从80h到FFH的内存地址,用于特殊功能寄存器(SFRS)。SFRS控制8051微控制器的特定功能。一些SFR是I/O端口寄存器(P0,P1,P2和P3),PSW(程序状态词),A(累加器),IE(中断启用),PCON(POWER CONTROL),ETC。

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的规定,即数据存储器和程序。

接口外部程序内存或ROM的原因是,以高级别的语言编写的复杂程序通常往往更大,并且占据更多的内存。

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

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

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

8051接口外部RAM和ROM

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

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

9个回应

  1. 一个做得很好的解释,我真的很努力地了解8051的内部记忆,这使一切都很清楚,谢谢。

  2. 您好,非常好的演示文稿,我是一个Qust,在Adress Ram,即000FH,对HexadeCimal的指导?
    所有RAM Adresses是否均以4位格式?

发表评论

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

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map