51单片机数据存储器结构_51单片机的程序存储器和数据存储器

文章目录

@[TOC](文章目录)一、51单片机的程序存储器结构1。内部结构2。程序存储器的七个特殊地址二、51单片机1的数据存储器。片内数据存储器2。片外数据存储提示:以下为本文正文,以下案例可供参考一、51单片机程序存储器结构。

1.内部结构

单片机内部的程序存储器用于存储单片机工作时的程序。单片机内部专门设置了一个16位程序计数器(PC ),可以知道下一时刻单片机要执行的程序在ROM空间中的地址位置,即可以存储64Kb的空间大小。

程序存储器在物理上可以分为片内程序存储器和片外程序存储器,不同的单片机型号有不同的片内程序存储器的空间大小。

比如8051单片机有一个4kb的ROM,那么当控制线为0时,PC机访问的第一个4Kb空间就是片上的ROM;当控制线为0时,PC访问片外ROM。

2.程序存储器的七个特殊地址

51单片机复位后,PC的内容为0000H,是系统程序的启动地址。

单片机内部有六个中断源。六个中断源的介绍和地址如下:

中断源之间只有8个存储单元,不足以存储中断程序,所以这是中断入口的地址,后面是中断服务函数。

二、51单片机的数据存储

数据存储器(RAM)存储单片机运行过程中需要的和临时产生的数据。

物理上分为片内RAM和片外RAM(片外RAM是通过16位地址总线访问的,所以片外RAM也是64kb)。

1.片上数据存储器

厂商根据不同的任务需求和要求定义不同的任务块,如下图所示:

工作寄存器组:共32字节,也称为通用寄存器,用于临时寄存8条信息。工作寄存器组被分成4组,每组具有从R0到R7的8条数据信息。

位寻址区:共有16个字节,128位。这个区域的每一位都可以根据定位方式使用,这128位会重新分配工作地址。

通用RAM区:用户可以用来编程的RAM。当然,用户也可以使用前两个单元未使用的空间。

栈区和栈指针:一种按照先入后出和后进先出原则管理的存储区。

函数调用是一个堆栈操作,如下图所示:

为了实现堆栈“先入后出,后进先出”的数据处理,在51单片机内部设置了一个堆栈指针SP。

专用功能寄存器:专用于控制和管理片内算术逻辑部件等功能模块的工作,用户可以在编程时直接为专用功能寄存器设置值。单片机中有19个特殊功能寄存器,包括PC,如下:

CPU专用寄存器:累加器A(E0H),寄存器B(F0H),程序状态寄存器PSW(D0H),堆栈寄存器SP(81H),数据指针DPTR(82H,83H)。

2.片外数据存储

当单片机内部ram空间不够时,可以通过总线扩展片外RAM,最大可达64KB。