51单片机存储器内部结构

MCS-51单片机在物理结构上有四个存储空间:

1、片内程序存储器

2、片外程序存储器

3、片内数据存储器

4、片外数据存储器

但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:

1、片内外统一编址的64K 的程序存储器地址空间(MOVC )

2、256B 的片内数据存储器的地址空间(MOV )

3、以及64K 片外数据存储器的地址空间(MOVX )

在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。

程序内存ROM

寻址范围:0000H ~ FFFFH 容量64KB

EA = 1,寻址内部ROM ;EA = 0,寻址外部ROM

地址长度:16位

作用: 存放程序及程序运行时所需的常数。

七个具有特殊含义的单元是:

0000H —— 系统复位,PC 指向此处;

0003H —— 外部中断0入口

000BH —— T0溢出中断入口

0013H —— 外中断1入口

001BH —— T1溢出中断入口

0023H —— 串口中断入口

002BH —— T2溢出中断入口

内部数据存储器RAM

物理上分为两大区:00H ~ 7FH即128B 内RAM 和 SFR区。

作用:作数据缓冲器用。

下图是8051单片机存储器的空间结构图

程序存储器

一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM )。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。

MCS-51具有64kB 程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM 的8031单片机,它的程序存储器必须外接,空间地址为64kB ,此时单片机的端必须接地。强制CPU 从外部程序存储器读取程序。对于内部有ROM 的8051等单片机,正常运行时,则需接高电平,使CPU 先从内部的程序存储中读取程序,当PC 值超过内部ROM 的容量时,才会转向外部的程序存储器读取程序。

当=1时,程序从片内ROM 开始执行,当PC 值超过片内ROM 容量时会自动转向外部ROM 空间。

当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM 的8031单片机,在实际应用中就要把8031的引脚接为低电平。

8051片内有4kB 的程序存储单元,其地址为0000H —0FFFH ,单片机启动复位后,程序计数器的内容为0000H ,所以系统将从0000H 单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:

其中一组特殊是0000H —0002H 单元,系统复位后,PC 为0000H ,单片机从

0000H 单元开始执行程序,如果程序不是从0000H 单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU 直接去执行用户指定的程序。

另一组特殊单元是0003H —002AH ,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:

0003H—000AH 外部中断0中断地址区。

000BH—0012H 定时/计数器0中断地址区。

0013H—001AH 外部中断1中断地址区。

001BH—0022H 定时/计数器1中断地址区。

0023H—002AH 串行中断地址区。

可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行, 这样中断响应后,CPU 读到这条转移指令,便转向其他地方去继续执行中断服务程序。 下图是ROM 的地址分配图:

从上图中大家可以看到,0000H-0002H ,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG 指令,通过ORG 指令跳转到从0033H 开始的用户ROM 区域,再来安排我们的程序语言。从0033开始的用户ROM 区域用户可以通过ORG 指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。

数据存储器

数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM 有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB 的RAM ,构成两个地址空间,访问片内RAM

用“MOV”指令,访问片外RAM 用“MOVX”指令。它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。 MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:

数据存储器空间(低128单元);

特殊功能寄存器空间(高128单元);

这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下:

低128单元:

片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR 都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR 是16位地址指针,寻址范围就可达到64KB 。也就是说在寻址片外数据存储器时,寻址范围超过了256B ,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR 寄存器做为间接寻址寄存器。

从上图中我们可以看到,8051单片机片内RAM 共有256个单元(00H-FFH ),这256个单元共分为两部分。其一是地址从00H —7FH 单元(共128个字节)为用户数据RAM 。从80H —FFH 地址单元(也是128个字节)为特殊寄存器(SFR )单元。从图1中可清楚地看出它们的结构分布。

1、通用寄存器区(00H-1FH )

在00H —1FH 共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL 工程师们又安排了一个寄存器——程序状态字寄存器(PSW )来管理它们,CPU 只要定义这个寄存的PSW 的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU 在复位后,选中第0组工作寄存器。

2、位寻址区(20H-2FH )

片内RAM 的20H —2FH 单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H —7FH 。位地址分配如下表所示:

++++++++

CPU 能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。

3、用户RAM 区(30H-7FH )

在片内RAM 低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM 区了,地址单元为30H-7FH 。对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般开辟在这个区域。

高128单元:(80H-FFH )

前面提到,在片内的RAM 中,高128位是专用寄存器区,因这节比较重要,所以我们单独的安排一节课跟大家介绍。下节课我们就重点介绍51单片机片内RAM 的高128位,即专用寄存器区。

片外数据存储器在这里我们就先在介绍,在后面关于数据存储器扩展的章节中我们再详细介绍

MCS-51单片机在物理结构上有四个存储空间:

1、片内程序存储器

2、片外程序存储器

3、片内数据存储器

4、片外数据存储器

但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:

1、片内外统一编址的64K 的程序存储器地址空间(MOVC )

2、256B 的片内数据存储器的地址空间(MOV )

3、以及64K 片外数据存储器的地址空间(MOVX )

在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。

程序内存ROM

寻址范围:0000H ~ FFFFH 容量64KB

EA = 1,寻址内部ROM ;EA = 0,寻址外部ROM

地址长度:16位

作用: 存放程序及程序运行时所需的常数。

七个具有特殊含义的单元是:

0000H —— 系统复位,PC 指向此处;

0003H —— 外部中断0入口

000BH —— T0溢出中断入口

0013H —— 外中断1入口

001BH —— T1溢出中断入口

0023H —— 串口中断入口

002BH —— T2溢出中断入口

内部数据存储器RAM

物理上分为两大区:00H ~ 7FH即128B 内RAM 和 SFR区。

作用:作数据缓冲器用。

下图是8051单片机存储器的空间结构图

程序存储器

一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM )。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。

MCS-51具有64kB 程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM 的8031单片机,它的程序存储器必须外接,空间地址为64kB ,此时单片机的端必须接地。强制CPU 从外部程序存储器读取程序。对于内部有ROM 的8051等单片机,正常运行时,则需接高电平,使CPU 先从内部的程序存储中读取程序,当PC 值超过内部ROM 的容量时,才会转向外部的程序存储器读取程序。

当=1时,程序从片内ROM 开始执行,当PC 值超过片内ROM 容量时会自动转向外部ROM 空间。

当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM 的8031单片机,在实际应用中就要把8031的引脚接为低电平。

8051片内有4kB 的程序存储单元,其地址为0000H —0FFFH ,单片机启动复位后,程序计数器的内容为0000H ,所以系统将从0000H 单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:

其中一组特殊是0000H —0002H 单元,系统复位后,PC 为0000H ,单片机从

0000H 单元开始执行程序,如果程序不是从0000H 单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU 直接去执行用户指定的程序。

另一组特殊单元是0003H —002AH ,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:

0003H—000AH 外部中断0中断地址区。

000BH—0012H 定时/计数器0中断地址区。

0013H—001AH 外部中断1中断地址区。

001BH—0022H 定时/计数器1中断地址区。

0023H—002AH 串行中断地址区。

可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行, 这样中断响应后,CPU 读到这条转移指令,便转向其他地方去继续执行中断服务程序。 下图是ROM 的地址分配图:

从上图中大家可以看到,0000H-0002H ,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG 指令,通过ORG 指令跳转到从0033H 开始的用户ROM 区域,再来安排我们的程序语言。从0033开始的用户ROM 区域用户可以通过ORG 指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。

数据存储器

数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM 有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB 的RAM ,构成两个地址空间,访问片内RAM

用“MOV”指令,访问片外RAM 用“MOVX”指令。它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。 MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:

数据存储器空间(低128单元);

特殊功能寄存器空间(高128单元);

这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下:

低128单元:

片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR 都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR 是16位地址指针,寻址范围就可达到64KB 。也就是说在寻址片外数据存储器时,寻址范围超过了256B ,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR 寄存器做为间接寻址寄存器。

从上图中我们可以看到,8051单片机片内RAM 共有256个单元(00H-FFH ),这256个单元共分为两部分。其一是地址从00H —7FH 单元(共128个字节)为用户数据RAM 。从80H —FFH 地址单元(也是128个字节)为特殊寄存器(SFR )单元。从图1中可清楚地看出它们的结构分布。

1、通用寄存器区(00H-1FH )

在00H —1FH 共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL 工程师们又安排了一个寄存器——程序状态字寄存器(PSW )来管理它们,CPU 只要定义这个寄存的PSW 的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU 在复位后,选中第0组工作寄存器。

2、位寻址区(20H-2FH )

片内RAM 的20H —2FH 单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H —7FH 。位地址分配如下表所示:

++++++++

CPU 能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。

3、用户RAM 区(30H-7FH )

在片内RAM 低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM 区了,地址单元为30H-7FH 。对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般开辟在这个区域。

高128单元:(80H-FFH )

前面提到,在片内的RAM 中,高128位是专用寄存器区,因这节比较重要,所以我们单独的安排一节课跟大家介绍。下节课我们就重点介绍51单片机片内RAM 的高128位,即专用寄存器区。

片外数据存储器在这里我们就先在介绍,在后面关于数据存储器扩展的章节中我们再详细介绍


相关内容

  • 51单片机的内部结构
  • MCS-51单片机内部结构 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解. 8051单片机包含中央处理器.程序存储器(ROM).数据存储器(RAM).定时/计数器.并行接口.串行接口和中断系统等几大单元及数据总线.地址总线和控制总线等三大总线,现在我们分别加以说明 ...

  • 几种常用的单片机型号
  • 当今单片机厂商琳琅满目,产品性能各异.针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC).采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构.它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高.采用RIS ...

  • 简易计数器
  • 单片机原理与应用课程设计 系 别: 信息科学与电气工程学院 班 级: 电气 082 姓 名: 学 号: 指导教师: 实践地点: 实验楼406 时 间: 2012年11月26日 至 2012年11月30日 一.设计内容及要求 使用51单片机设计一个简易计数器,要求能够: 1)测量方波脉冲个数 2)测量 ...

  • 单片机的基本结构
  • 单片机的基本结构 在学习单片机的内部结构之前,我们先了解下我们现在正在使用的计算机的几大组成部从份: 计算机的五个组成部份: 运算器:用于实现算术和逻辑运算.计算机的运算和处理都在这里进行: 控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作: 存储器:用于存放程序和数据:(又分为内存储 ...

  • 为什么80C51单片机存储器在物理结构上可分4个空间
  • 为什么80C51单片机存储器在物理结构上可分4个空间, 在逻辑上只有3个 2010-03-22 17:30 四比一 | 分类:物理学 | 浏览2320次 我来帮他解答 提问者采纳 2010-03-22 17:41 所谓的四个空间是:片内程序存储区.片外程序存储区.片内数据存储区.片外数据存储区. 片 ...

  • 基于51单片机的最小系统毕业论文
  • 单片机最小系统的设计 学 院:电子信息工程 专业班级:电信10-2班 学生姓名:宾雪 徐东玥 学 号:20101628 20101633 基于单片机最小系统的数字钟设计 摘要 本文基于AT89C51单片机的最小系统,进行了数字钟的设计.通过多功能数 字钟的设计思路,详细讲述了系统硬件.软件的具体实现 ...

  • 单片机发展前景
  • 单片机的现状也发展前景 计算机系统的发展已明显地朝三个方向发展:这三个方向就是:巨型化,单片化,网络化.以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力.单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embedded micro ...

  • 第十三课:51单片机CPU的内部结构
  • 在前面的课程中,我们已知道了单片机内部有一个8位的CPU,同时知道了CPU内部包含了运算器,控制器及若干寄存器.在这节课,我们就与大家一起来讨论一下51单片机CPU的内部结构及工作原理. 从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元AL ...

  • 基于单片机的温度测量与控制系统
  • 课 程 设 计 报 告 课程名称 综合电子设计 题 目 基于单片机的温度测量与控制系统 指导教师 设计起止日期 系 别 专 业 学生姓名 班级/学号 成 绩 目录 一.摘 要 „„„„„„„„„„„„„„„„„„„„„„„„„2 二. 功能介绍 „„„„„„„„„„„„„„„„„„„„„„„3 1, ...