
文章目录
@[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。










