51单片机ROM和RAM

2023-11-03



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

一、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.


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机ROM和RAM 的相关文章

  • Python爬取租房信息并保存至Excel文件

    Python爬取租房信息并保存至Excel文件 爬取网页 解析数据 保存数据 本案例为Python编写Spider程序 获取租房相关信息 并保存至Excel文件 大致分为爬取网页 解析数据 保存数据三个步骤 程序具有通用性 只需获取目标网站
  • 大一下第一场

    大一下第一场比赛 太菜了 总结 小错误太多 应该提高严密性 long long scanf lld 有 gt lt 不要忘记了等于的情况 成绩那题 我默认把它看成了小数 其实还有整数的情况 一题有一些小细节没注意导致花了很多时间 诶 长寿的
  • 02-kafka集群搭建

    文章目录 0 服务器准备 1 zookeeper集群 1 1 下载 1 2 拷贝 1 3 配置变量 1 4 配置 1 5 启动 2 kafka 2 1 下载 2 2 拷贝到服务器 2 2 配置文件 2 3 启动 3 使用密码 3 1 配置文
  • win7 计算机属性 灰,打不开win7计算机属性解决方法

    1 点击 开端 单击翻开 记事本 程序 2 复制下面的代码 黏贴到新建的记事本里面 3 Windows Registry Editor Version 5 00 HKEY LOCAL MACHINE SOFTWARE Microsoft W
  • vue-router之 tag 和 v-solt 对比

    1 在vue router4 0之前 我们都是使用 tag 来自定义 router link 渲染成什么标签
  • 获取系统中各应用的运行时间

    通过增加动态库获取应用的运行时间 同事提出一个问题 如何获取嵌入式设备系统中各个应用已运行的时间 这个问题的解决方案有多种 其中一种是使用功能较强的软件作为系统的init进程和服务管理 例如systemd 以它启动各应用软件服务后 可通过s

随机推荐

  • K近邻算法,Matlab实现

    邻近算法 K近邻 通过计算测试样本与训练样本之间的距离 然后找出距离测试样本最近的K个样本 统计他们的结果 哪种类型的的结果出现的次数多则预测测试样本的结果为此结果 代码如下 function label1 KNN training tes
  • Python开发工具PyCharm的web开发教程:创建并运行 Python 项目

    在你开始前 要确定以下两点 PyCharm下载 已完成 安装了 Python PyCharm官方正版下载 要开始使用PyCharm 让我们编写一个 Python 脚本 创建一个 Python 项目 1 如果您在欢迎屏幕上 请单击新建项目 如
  • 关于 “定义_sys_exit()以避免使用半主机模式”的问题

    今天编译一个STM32程序的时候 遇到了一个问题 编译通不过 定义 sys exit 以避免使用半主机模式 void sys exit int x x x 输出的错误信息是 SYSTEM usart usart c 41 error 260
  • MySQL第二讲 MySQL主从架构搭建

    主从架构意义 通过搭建MySQL主从集群 可以缓解MySQL的数据存储以及访问的压力 1 数据安全 给主服务增加一个数据备份 基于这个目的 可以搭建主从架构 或者也可以基 于主从架构搭建互主的架构 2 读写分离 对于大部分的JAVA业务系统
  • python创意小作品-全国青少年创意编程与智能设计大赛Python创意编程比赛

    全国青少年创意编程与智能设计大赛Python创意编程比赛 一 作品类型 1 数字艺术 通过程序生成和展示视觉艺术 具备创意 美感和互动性 2 互动游戏 各种竞技类 探险类 角色扮演类 球类 棋牌类游戏等等 3 实用工具 有实用价值 能解决学
  • vscode js文件没有代码提示

    原因是 产生问题的原因可能是关闭了单纯的js文件中的javascript的提示 1 右下角设置 2 在上边输入 javascript suggest enabled 效果图
  • VBA:对Excel单元格进行合并操作

    Sub hb Dim n n 3 For i 3 To 18 If Range b i lt gt Range b i 1 Then Range b n b i Merge n i 1 End If Next End Sub
  • 自动化测试和性能测试的异同

    对于那些刚刚接触软件测试行业的小白来说 都会有这样一种错觉 觉得性能测试和自动化测试是差不多的 但是如果深入了解 会发现这两者的区分还是很大的 接下来我们就来详细了解一下自动化测试和性能测试的异同之处 首先两者都有一个共同点 那就是在处理脚
  • mysql 投影,MySQL —— select

    select语句使用详解 select语句是基础操作中比较复杂的部分 我们单拿出来详细解析一下 还是以上一篇文章里的student表为例 select from student 查询student表中所有记录 create table st
  • Clion 使用自己编写的 Makefile编译

    Clion 目前支持使用 cmake 来编译代码 如果习惯了自己写 makefile 那么还需要通过 cmake 的 add custom target 来调用make 命令来实现编译了 参考了http stackoverflow com
  • LoadRunner参数化详解

    LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了 初做测试时在项目中用过 后面项目中用不到 自己把重点放在了工具之外的东西上 认为性能测试不仅仅是会用工具 最近又想有一把好的利器毕竟可以帮助自己更好的完
  • 明天全国哀悼日,小程序只需三行代码秒变黑白

    明天全国哀悼日 小程序只需三行代码秒变黑白 打开你的 app wxss 文件 在第一行加上 page filter grayscale 100
  • postgresql Insert插入的几个报错

    postgresql Insert插入的几个报错 1 org postgresql util PSQLException 未设定参数值 2 的内容 2 postgresql column reference is ambigious 参考
  • GD32的ADC模块简介

    ADC模块简介 驱动板所使用的主控芯片为GD32C103CB 该芯片总共有2个ADC单元 即ADC0 ADC1 因为驱动板上使用的是LQFP48封装 所以该芯片的每个ADC单元只有10个外部模拟输入通道 并且共用相同的GPIO口 这10个外
  • 第1关:用Bison构建逆波兰计算器

    任务描述 相信大家通过flex的实验已经掌握了如何构建一个词法分析器 但是为了创建一个完整的编译程序 我们还需要一个语法分析器 同样的 我们可以使用现有的工具来节省开发的时间 也就是Unix下的YACC和GNU Linux下的Bison 相
  • AV1:为互联网提供开放、免费的视频编解码工具

    从学术研究到进入工业界 Zoe Liu一直在算法和音视频领域 目前在谷歌编解码团队为编解码器AV1做开发支持 Zoe畅谈了评定编解码器的标准 以及AV1的最新进度 本文是 下一代编码器 系列采访之一 欢迎自荐或推荐技术人加入 下一代编码器
  • 《我的眼睛--图灵识别》第九章:训练:制作识别字库

    我的眼睛 图灵识别 第九章 训练 制作识别字库 为什么要做字库 做字库就好比我们要上学念书一样 学习储备知识 这样才能认识文字不是吗 好好学习 1 像素点阵 什么是点阵 对于一个屏幕显示屏来说 就是利用无数个点组成的矩形平面 通过设置每个点
  • vue项目 Network: unavailable的解决办法

    vue项目 Network unavailable 问题 问题描述 使用vue3 0 的版本 在自己电脑上开发项目 启用项目后 只能用localhost访问项目 十分不便 不能使用手机浏览器或其他人访问 如下图所示 解决方案 在devSer
  • The reference to entity "useSSL" must end with the ';' delimiter.

    在搭建测试环境的hive的时候 发现启动的时候 经常报以下警告信息 Thu May 14 09 52 26 CST 2020 WARN Establishing SSL connection without server s identit
  • 51单片机ROM和RAM

    文章目录 TOC 文章目录 一 51单片机的程序存储器结构 1 内部结构 2 程序存储器的7个特殊地址 二 51单片机的数据存储器 1 片内数据存储器 2 片外数据存储器 提示 以下是本篇文章正文内容 下面案例可供参考 一 51单片机的程序