产品概述

单片机rom ram 单片机ROM,RAM都是干啥的?

小编 2024-10-06 产品概述 23 0

单片机ROM,RAM都是干啥的?

常规上ROM是用来存储固化程序的,RAM是用来存放数据的。譬如说,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。

--ROM存放指令代码和一些固定数值,程序运行后不可改动;RAM用于程序运行中数据的随机存取,掉电后数据消失..

code就是指将数据定义在ROM区域,具只读属性,例如一些LED显示的表头数据就可以定义成code存储在ROM。

ROM:(Read Only Memory)程序存储器

在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。

RAM:(Random Access Memory)随机访问存储器

用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。

程序经过编译、汇编、链接后,生成hex文件。用专用的烧录软件,通过烧录器将hex文件烧录到ROM中(究竟是怎样将hex文件传输到mcu内部的ROM中的呢?),因此,这个时候的ROM中,包含所有的程序内容:无论是一行一行的程序代码,函数中用到的局部变量,头文件中所声明的全局变量,const声明的只读常量,都被生成了二进制数据,包含在hex文件中,全部烧录到了ROM里面,此时的ROM,包含了程序的所有信息,正是由于这些信息,“指导”了CPU的所有动作。

可能有人会有疑问,既然所有的数据在ROM中,那RAM中的数据从哪里来?什么时候CPU将数据加载到RAM中?会不会是在烧录的时候,已经将需要放在RAM中数据烧录到了RAM中?

要回答这个问题,首先必须明确一条:ROM是只读存储器,CPU只能从里面读数据,而不能往里面写数据,掉电后数据依然保存在存储器中;RAM是随机存储器,CPU既可以从里面读出数据,又可以往里面写入数据,掉电后数据不保存,这是条永恒的真理,始终记挂在心。

单片机知识 存储器RAM和ROM

定义:

RAM:随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。

ROM:只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。

在单片机的内部结构中,很多人分不清楚RAM和ROM的区别在哪里,甚至经常将它们两个搞混,所以今天我们就来深入了解下这两者之间有什么区别,具体的功能特征是什么。

我们知道单片机主要作用就是对信息数据的处理,而在处理数据的过程中,需要一个“容器”来存放这些数据。这个容器就是存储器。存储器的物理实质是一组(或多组)具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存同定的程序及数据。存储器按存储信息功能的不同,可分为只读存储器ROM和随机存储器RAM。

如何区分RAM和ROM呢?举个例子,我们在购物平台买电脑或手机时商家会列出多种版本,有8GB+256GB 、12GB+512GB、16GB+240GB等多种版本可选择,而这里面的8GB+256GB就是我们说的存储器RAM和ROM的储存容量。我们只需记住一点,不论是手机和电脑,容量比较小的那个一定是RAM,而容量大的那个则是ROM。

RAM就是我们平时说的运行内存,它根据存储单元的工作原理不同可分为静态随机存储器(SRAM)和动态随机存储器(DRAM),如芯海8位单片机CSU8RP3216中就内置128字节的静态数据存储器(SRAM)。因RAM具有随时可读写的功能,所以通常作为操作系统或其他正在运行中的程序的临时数据存储介质,又因为它切断电源后不会保存数据,所以又被称易失性存储器。

RAM的功能特点如下:

随机存取 :随机存取指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。

易失性: 当切断电源后,RAM里面所储存的数据也将随之消失。所以它一般用来暂时储存程序、数据和中间结果,如果要长期保存数据的话需要将数据写入一个长期的储存设备中。

对静电敏感 :与其他的集成电路一样,RAM对环境的静电荷也非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。

访问速度 :现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,存取延迟和其他涉及机械运作的存储设备相比,也显得微不足道。

需要刷新 :现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。

和RAM相比,ROM在断电以后保存在上面的数据不会自动消失,可以长时间断电保存。它的特点表现为只能读出而不能写入信息,通常在电脑主板的ROM里面固化一个基本输入/输出系统,称为BIOS(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。

相关问答

单片机 RAM ROM 是什么意思?

ROM:ReadOnlyMemory(anonvolatilememory)--只读存储器(非易失存储器)永久存储重覆使用的信息,比如数据表、电子显示器的字符等。和RAM不同,ROM...

单片机ROM RAM 的本质区别是什么,在执行中各起什么作用?

可以理解成一个小电脑;单片机和cpu的区别有:cpu内存取指令,运算,结果存入内存,单片机大致也是这样。不过计算机上的cpu是单独出来的,单片机的cpu和外设(包...

单片机 内的 ROM RAM 如何储存程序与数据?

ROM一般用户只读不存(部份FLASH单片机的ROM可以由特殊指令进行先擦除,再改写存储),ROM掉电后数据不会丢失;RAM在上电后可由用户随意存取,但掉电后数据丢失...

51 单片机rom ram 多大?

你好!stc89c52单片机的RAM是512字节,ROM是8K字节仅代表个人观点,不喜勿喷,谢谢。你好!stc89c52单片机的RAM是512字节,ROM是8K字节仅代表个人观点,不喜勿喷,.....

单片机 中什么叫片内 RAM 和片外 ROM 啊-ZOL问答

3条回答:【推荐答案】你可以这样理解,片内RAM就是在单片机内部的RAM,RAM是随机储存器,运行时所产生的数据,关机或复位后就没有了,而片外ROM你就把他当做你手机的...

单片机ram 数据是从 rom 中调出的吗?

不是,ram是读写存储器,rom是只读存储器。不是,ram是读写存储器,rom是只读存储器。

51 单片机 立即数存在 ram 还是 rom ?

51单片机立即数存在ram中。51单片机立即数存在ram中。

at89s51 单片机 内包含多少 rom RAM ?

AT89S51是一款8位单片机,它内部包含4KB的ROM和128B的RAM。其中,ROM用于存储程序和数据,而RAM则用于存储程序运行时的临时数据。在使用AT89S51时,您可以将程序...

简述mcs51 单片机 内部的 rom ram 内部空间大小和范围?

MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。4K字节的只读存储器:ROM,0-0FFFHMCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。4...

51 单片机 是直接 ROM 运行程序,对不对? 像手机一样有操作系统的...

像手机一样有操作系统的,装载后在RAM中运行对不对?操作系统讨论回答(4)51单片机的RAM很小只有几百字节,不能装入很多代码,单片机一般是从ROM中运行代码的,51...

猜你喜欢