STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)

基于stc8A8K的内部储存分类

    • 数据储存器——RAM
      • 内部 RAM
      • 内部扩展RAM
      • 外部扩展RAM
    • 程序储存器——ROM
      • stc8a8k 将 数据定义到ROM
    • EEPROM
      • FLASH与EEPROM的区别
      • stc8a8k64S4A12的EEPROM
      • 备注

数据储存器——RAM

STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第1张图片
▲stc8a8k的SRAM

RAM用于存放程序执行的中间结果和过程数据(掉电后数据消失)
变量定义时 如果不加 code stc8a8k 默认存放RAM

内部 RAM

共 256 字节,可分为 2 个部分:低 128 字节 RAM 和高 128 字节 RAM
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第2张图片

内部扩展RAM

STC8集成了内部的扩展RAM,单片机内部扩展 RAM 是否可以访问,受辅助寄存器 AUXR 中的 EXTRAM 位控制。
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第3张图片STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第4张图片

外部扩展RAM

STC8 系列封装管脚数为 40 及其以上的单片机具有扩展 64KB 外部数据存储器的能力 即除了8k的内部扩展RAM 还支持最大一共64k的RAM (如上图) :

如何扩展SRAM 和 使用场景 参考阅读 卓晴——扩展32KRAM的STC8H8K信号采集版

程序储存器——ROM

程序储存器用于 存放用户程序、数据、以及表格等信息。也是程序代码存放的地方。下载后掉电不擦除。
STC8A8K64S4A12 集成了64k的 Flash 程序储存器。 这个Flash 是指 ROM是falsh类型的ROM ,相比 普通ROM 读写快。
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第5张图片
储存数据类型:存储用户程序 和一些只读 固定数据 ,C文件及h文件 中的所有代码、全局变量、局部变量、‘const’ 限定符定义的常量数据 。

stc8a8k 将 数据定义到ROM

因为st8a8k有很大的ROM 除了用户程序还有可以存放一些容量比较大的数组 以便使用 (如 图片数组 文字库 等)
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第6张图片
基于stc8芯片 数组定义和声明 前如果只加 const 或者不加 编译时keil会报错提示在这里插入图片描述
提示 图像数组已经超过 8k 这说明 keil 默认把 变量放到sRAM了 所以 内存不够用 。
这时需要 在 const 前 加 code 才会指定数组存放到64k的flash (const可加可不加 ,取决数组是否只读)

EEPROM

EEPROM (Electrically Erasable Programmable Read-Only Memory),有书本译作“电可擦可编程只读存储器”。 STC8 系列单片机内部集成了大容量的 EEPROM (利用 ISP/IAP 技术可将内部 Data Flash 当EEPROM ),可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。

EEPROM 的使用 :内部的 EEPROM 有 3 操作方式:读、 写和擦除,其中擦除操作是以扇区为单位进行操作,每扇区为 512 字节,即每执行一次擦除命令就会擦 除一个扇区,以 使用EEPROM 将 同一次 修改的数据 放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要用满。 而读数据和写数据都是以字节为单位进行操作的,即每执行一次读或者写命令时只能读出或者写入一个字节。

FLASH与EEPROM的区别

移步阅读:EEPROM和flash的区别

stc8a8k64S4A12的EEPROM

EEPROM 的访问方式有两种:IAP 方式和 MOVC 方式。IAP 方式可对 EEPROM 执行读、写、擦除操作,但 MOVC 只能对 EEPROM 进行读操作,而不能进行写和擦除操作。

STC8芯片的EEPROM大小:不同型号内部EEPROM的大小不同
以STC8A8K16S4A12为例,程序空间(ROM)为16K,EEPROM空间 为48K 一共是64k的Flash空间。
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第7张图片
不同型号的芯片 EEPROM空间和ROM空间的大小和访问地址存在差异,一般型号芯片的EEPROM空间大小固定,而特殊型号的芯片EEPROM的大小可以用户自己设置。
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第8张图片在这里插入图片描述
在这里插入图片描述

特殊型号的Flash 用户可在 单片机内部Flash空间 自定义规划 程序空间 和 EEPROM的 大小
可在烧录软件 设置EEPROM大小
STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)_第9张图片

备注

  • 内部EEPROM的读写操作、外部Flash、外部独立EEPROM的操作 详见下一篇。
  • 文章主要参考stc8a数据手册和其他资料 结合自己理解,小白自学 有错还望大佬指正。
  • 参考文章 已注明链接 侵删。

你可能感兴趣的:(STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM))