设计与开发

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

小编 2024-10-05 设计与开发 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(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。

相关问答

单片机 rom ram 各自存放什么数据?

rom存放程序和表格了图片之类的数据,在程序运行时一般不可修改的,只能读只有部分EEPROM(也是ROM)在程序运行时可修改,但速度比较慢,没法和ram比ram存放...

单片机 RAM和ROM 是什么意思?-ZOL问答

假如要搞个什么活动,有两块地方,一个叫ROM.一个叫RAM,和一个老大叫cpu。其中人们规定rom这个地方的所有东西你老大cpu都不能改动它,里面放着活动的方案,也就相...

单片机 中, ROM , RAM , 各种寄存器的功能是什么,地址和数据存放...

ROM存程序(包含程序中包含的数据,如:MOVAX,10其中10就是放在ROM中)RAM存临时数据(单片机内所有的寄存器都是定义在RAM中的,另外,RAM也空出了一部分地址给用户...

单片机 外部扩展 RAM和ROM 是时,P0口,P1口,P2口,P3口各起什么...

[最佳回答]不知道你说的是哪种单片机,如果是常用的51单片机的话,其P1口仅作为I/O,无第二功能;P3口作为I/O的同时,其第二功能是一些特殊功能,非扩展存储.P0口用...

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

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

51 单片机 如何访问外部 ROM 及外部 RAM ?

访问外部ROM指令为MOVC,比如:CLRAMOVPDTR,#1000HMOVCA,@A+DPTR访问外部RAM指令为MOVX,比如:MOVDPTR,#2000HMOVXA,@D...

单片机 存储器的划分方法?

单片机的存储器可分为程序存储器(ROM)和数据存储器(RAM)。程序存储器是专门用来存放程序和常数的。数据存储器是程序在运行中存放临时数据的,掉电后数据即...

8051 单片机RAM和ROM 是统一编址的么 - 158****4882 的回答 - 懂得

8051ROM和RAM地址各自独立,可以重叠所以都可以扩展到0000H~FFFFH。不是。是独立的不是,它们是各自独立的

8051 单片机RAM和ROM 是统一编址的么 - 喵星人家族 的回答 - 懂得

不是,它们是各自独立的8051ROM和RAM地址各自独立,可以重叠所以都可以扩展到0000H~FFFFH。不是。是独立的

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

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

猜你喜欢