• 51单片机ROM和RAM




    提示:以下是本篇文章正文内容,下面案例可供参考

    一、51单片机的程序存储器结构

    1.内部结构

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

    程序存储器物理上可以分为片内程序存储器和片外存储器,不同单片机型号有不同的片内程序存储器空间大小。
    在这里插入图片描述
    例如8051单片机片内有4Kb的ROM,那当控制线取0时,PC访问的前4kb空间是片内的ROM;当控制线为0时候,PC访问的是片外的ROM。

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

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

    51单片机内部有6个中断源,6个中断源介绍及地址如下所示:
    在这里插入图片描述
    中断源之间只间隔8个存储单元,这是不足以存放中断程序的,所以这是中断入口地址,后续有中断服务函数。

    二、51单片机的数据存储器

    数据存储器(RAM)存储单片机运行期间所需要的数据和临时生成的数据。
    从物理上分为片内RAM和片外RAM(片外RAM是通过16位的地址总线访问,所以片外RAM也是64kb)。

    1.片内数据存储器

    厂家根据不同的任务要求和需求定义不同的任务块,如下所示:
    在这里插入图片描述
    工作寄存器组:一共有32个字节,也被称为通用寄存器,用于临时寄存8个信息,工作寄存器组分为4个组别,每组有R0-R7一共8个数据信息。
    位寻址区:一共有16个字节,128位,该区域每一位可按照位于方式使用,这128位会重新分配工作地址。
    一般RAM区域:用户编程可以使用的RAM,当然,前两个单元未使用的空间,用户也可以使用。
    堆栈区和堆栈指针:先进后出、后入先出的原则进行管理的一段存储区域

    函数的调用就是一个堆栈操作,如下图所示:
    在这里插入图片描述
    为实现堆栈“先入后出,后入先出”数据处理,51单片机内部设置了一个堆栈指针SP。

    特殊功能寄存器:专用于控制、管理片内算术逻辑部件等功能模块工作,用户编程时可以直接给特殊功能寄存器设定值。51单片机内部有包括PC在内19个特殊功能寄存器,如下所示:
    CPU专用寄存器:累加器A(E0H),寄存器B(F0H),程序状态寄存器PSW(D0H),堆栈寄存器SP(81H),数据指针DPTR(82H、83H)

    2.片外数据存储器

    51单片机内部RAM空间不够时候,就通过总线来扩展片外ram,最多可以扩展64KB.


  • 相关阅读:
    Excel导入导出,增删改查的实现
    3、设计原则
    RK3588芯片介绍
    python中值滤波
    合并有序链表
    【java零基础入门到就业】第三天:HelloWorld程序的常见问题和java环境变量的配置
    MySQL速成——第一天--基础入门
    面向对象建模的三种模型是什么,各自的主要功能有哪些,分别可用UML的哪些图来描述?
    java中有哪些条件选择方法呢?
    Golang 递归获取目录下所有文件
  • 原文地址:https://blog.csdn.net/m0_51390088/article/details/125450369