单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

2023-11-10

单片机必学系列

单片机学习——中断系统

单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

单片机学习——定时器/计数器

单片机学习——A/D转换

更新ing



前言

本文对STC8H8K64U单片机存储器进行了总结(它的内存构造和其他单片机并无太大差别),并发表了本人的一些看法,存储器是单片机、微机的关键,理解这一部分内容,受益终生。

一、程序存储器

程序存储器(又称为数据Flash),顾名思义,是用来存放用户的程序,让单片机按照所写代码顺序执行,并完成指定任务。
所以程序存储器也就是我们听说过很多次的ROM(Read-Only Memory)只读存储器。
里面存放的是代码,一般还有常数、表格、圆周率值、数码管字形、单片机ID号、内部参考信号源、掉电唤醒定时器频率、IRC参数等等数据

注意:单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序

一般在C51中,我们可以加个code,把数据存在程序Flash中。

unsigned char code date[2] = {0x01,0x20};

二、片内基本RAM

片内基本RAM,听名字是不是感觉就是只个RAM(Random Access Memory)随机存储器,以STC8H8K64U单片机256字节的RAM为例,其实这部分包括有:
片内低128字节,高128字节以及特殊功能寄存器。
为什么要把低128字节和高128字节分开说呢,因为功能不同

1.低128字节RAM

低128字节RAM是单片机基本的数据存储区,是最接近CPU的数据存储区,也是功能最丰富的存储区。
它有哪些功能呢,见下图:
在这里插入图片描述
可以看到,此型号单片机低128字节RAM包含了4个工作寄存器组,一个组内有8个寄存器可位寻址区堆栈区
对于堆栈区,我有些许心得,平时我们执行的函数,进入函数便要使用栈,进行压栈,退出函数的时候就出栈,可以说,栈的作用就是记忆,记录下进入函数之前的位置,执行完函数,原路返回,我们定义的主函数也是函数,其中的临时变量等也在栈区,但是全局变量不在堆栈区

此处我并没有讲堆栈的区别,此文重心不在这个上面,主要是对内存有整体的认识。

2.高128字节RAM 与 特殊功能寄存器

高128字节的地址和特殊功能寄存器地址是一样的,你会很奇怪,这不是冲突了吗?
没错,确实冲突了!

但是我们可以通过不同的操作方式来访问他们,高128字节RAM只能采用间接寻址的方式来访问,特殊功能寄存器则可以使用直接寻址的方式来访问。(如果不清楚寻址方式的话,可以去看一下另一篇文章《指令系统与寻址方式》以及系列文章

在C51中,要在高128字节存放数据可以使用:

unsigned char idata date[2] = {0x01,0x20};

特殊功能寄存器可以用其名字即可进行存取操作

三、拓展RAM

拓展RAM又分为片内拓展RAM和片外拓展RAM

扩展RAM类似于传统的片外数据存储器,采用访问片外数据存储器的访问指令(汇编助记符为 MOVX )访问扩展RAM区域。
可以通过AUXR寄存器中的EXTERAM位来选择片内拓展RAM或片外拓展RAM。

有这东西完全是因为片内基本RAM实在太少了。

四、EEPROM

EEPRROM,你可以从它的名字上看出ROM这三个字母,没错,它属于ROM,它又被称为数据Flash,在IAP功能下,程序存储器用剩下的空间会被用作数据Flash(EEPROM),用来存放一些应用时需要经常修改,掉电后又能保持不变的参数。

最后放一张图,让大家感受一下整体结构。

在这里插入图片描述

各位可以收藏这个系列,关键时刻忘了,当电子书查询。
感谢您的观看!我会坚持写下去的,请您关注我的改变。

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

单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM) 的相关文章

  • 【SCCB接口协议简介(适用于OV系列摄像头)】

    SCCB总线简介 SCCB协议与IIC协议十分相似 不过IIC是PHILIPS的专利 所以OmnVision在IIC的基础上做了点小改动 SCCB最主要是阉割了IIC的连续读写的功能 即每读写完一个字节就主机必须发送一个NA信号 SCCB简
  • 场效应管(MOS)基础知识

    MOSFET管是常用的半导体器件 又称为开关管 场效应管 英文名称 MOSFET 简称MOS管 按元件封装工艺可分为两大类 插件类 贴片类 大部分MOSFET管的外观极其类似 常见的封装种类有T0 252 T0 251 T0 220 T0
  • 新年手打,24道进阶必备Elasticsearch 面试真题(建议收藏!)

    1 elasticsearch 了解多少 说说你们公司 es 的集群架构 索 引数据大小 分片有多少 以及一些调优手段 面试官 想了解应聘者之前公司接触的 ES 使用场景 规模 有没有做过比较大 规模的索引设计 规划 调优 解答 如实结合自
  • JavaScript修改Css样式

    在JS中操作CSS属性命名上的区别 以前css直接写死在html中 现在可以通过js脚本去动态修改一个标签的样式 CSS中写法 JS中的写法 说明 color color 一个单词的样式写法是相同 font size fontSize 驼峰

随机推荐

  • 将与参数无关的代码抽离templates——条款44

    Templates是节省时间和避免代码重复的一个奇方妙法 不再需要键入20个类似的classes而每一个带有15个成员函数 你只需键入一个class template 留给编译器去具现化那20个你需要的相关classes和300个函数 cl
  • 使用Java语言从零开始创建区块链

    Java区块链开发与交流群 613121183 有兴趣的也可以加下哈 提供了不少区块链资料 以后有资料可以相会共享 目前网络上关于区块链入门 科普的文章不少 本文就不再赘述区块链的基本概念了 如果对区块链不是很了解的话 可以看一下我之前收集
  • Java基础之方法部分

    Java中的方法好似c c python中的函数 方法是一种语法结构 它可以把一段代码封装成一个特定功能 减少代码重复 提高开发效率 使得代码逻辑更加清晰 更牛逼 方法格式 标志符 public static 方法返回类型 方法名 形式参数
  • RTSP 协议分析

    1 概述 RTSP Real Time Streaming Protocol 实时流传输协议 是TCP IP协议体系中的一个应用层协议 由哥伦比亚大学 网景和RealNetworks公司提交的IETF RFC标准 该协议定义了一对多应用程序
  • MySQL子查询的空值问题

    目前数据库中有三个表 EMPLOYEES表 DEPARTMENTS表 LOCATIONS表 employee id department id location id first name department name street ad
  • 简单http学习:5 excute_cgi调用

    void execute cgi int client const char path const char method const char query string char buf 1024 int cgi output 2 int
  • SpringBoot怎么实现web端上传超大文件

    上周遇到这样一个问题 客户上传高清视频 1G以上 的时候上传失败 一开始以为是session过期或者文件大小受系统限制 导致的错误 查看了系统的配置文件没有看到文件大小限制 web xml中seesiontimeout是30 我把它改成了1
  • PCL RANSAC分割多个平面(方法二)

    目录 一 概述 二 代码实现 三 结果展示 一 概述 之前的文章中已经写过RANSAC拟合分割多个平面的方法 在进行结果保存的时候是通过stringstream实现的 在C 11普及的大环境下 这种方法略显复杂 本文对其进行改进 二 代码实
  • javaWeb

    Ajax 序列化表单元素 serialize 把选择器选中的元素的name和value序列化为字符串 注意 以下情况不会被序列化 1 表单元素被禁用 2 表单元素没有name属性 3 表单元素没有选中 仅限单选按钮和复选框 4 file元素
  • WebStorm2023新版设置多个窗口,支持同时显示多个项目工程

    调整设置 Appearance Behavior gt System Settings gt Project open project in New window
  • type='file' 标签选取文件/文件夹

    一般网页上传文件大家都会用到这个标签
  • tcp port numbers reused出现原因_从TCP协议的原理来谈谈rst复位攻击

    在谈RST攻击前 必须先了解TCP 如何通过三次握手建立TCP连接 四次握手怎样把全双工的连接关闭掉 滑动窗口是怎么传输数据的 TCP的flag标志位里RST在哪些情况下出现 下面我会画一些尽量简化的图来表达清楚上述几点 之后再了解下RST
  • element-ui样式篇:修改样式不影响全局,不影响其他组件

    element ui每个控件都自带了样式 使用时候很多时候需要修改样式 但是大多数遇到的情况是修改的样式要么不起作用 要么修改了默认样式 导致其他组件用到的地方样式都改了 如何修改样式起作用且不影响其他组件 一 如何找到element样式类
  • iwebsec靶场 SQL注入漏洞通关笔记5- updatexml注入(报错型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1 数字型注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2 字符型注入 宽字节注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL
  • 数据结构与算法(二)(Python版)

    数据结构与算法 一 Python版 文章目录 递归动规 初识递归 数列求和 递归三定律 递归的应用 任意进制转换 递归的应用 斐波那契数列 递归调用的实现 分治策略与递归 优化问题和贪心策略 找零兑换问题 贪心算法和动态规划的区别 贪心策略
  • kotlin 协程

    协程 也叫微线程或者轻量级线程 协程和线程的关系 类似于 线程和进程的关系 一个进程可以创建多个线程 一个线程可以创建多个协程 协程也可以嵌套协程 特征 协程是运行在单线程中的并发程序 串行执行 协程简单理解 协程可以类比 Runnable
  • Mybaits面试题整理

    1 MyBatis是什么 MyBatis 是一款优秀的持久层框架 一个半 ORM 对象关系映射 框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis
  • HTML表格里分割线是否显示的问题

    使用HTML制作表格 关于表格中间的分割线显示与否的问题 不显示分割线示例 此时的代码为 这样的情况下 对于背景颜色的属性设定是加在了table标签后面的bgcolor red 此时 表格没有显示分割线 显示分割线示例 这样的情况下 对于背
  • OpenWrt 安装pip这种情况咋办!

    root OpenWrt tmp python get pip py DEPRECATION Python 2 7 will reach the end of its life on January 1st 2020 Please upgr
  • 单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

    单片机必学系列 单片机学习 中断系统 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EEPROM 单片机学习 定时器 计数器 单片机学习 A D转换 更新ing 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EE