⑴ 51单片机内部ram,外部ram的区别
单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此形成51单片机内部ram和外部ram的区别。
一、从使用字节区别。标准 51单片机的片内 RAM 地址从 0x00H~0x7F 共 128 个字节。而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。而片外 RAM 最大可以扩展到 0x0000~0xFFFF 共 64K 字节。
二、从连接地址区别。片内 RAM 和片外 RAM 的地址不是连起来的,片内是从 0x00 开始,片外也是从 0x0000 开始的,分别形成data,即片内 RAM 从 0x00~0x7F;idata,即片内 RAM 从 0x00~0xFF;pdata,即片外 RAM 从 0x00~0xFF;xdata,即片外 RAM 从 0x0000~0xFFFF。
一般情况下,使用 data 区域,data 不够用了,就用 xdata,如果希望程序执行效率尽量高一点,就使用 pdata 关键字来定义。其它型号有更大的 RAM 的 51 系列单片机,如果要使用更大的 RAM,就必须得用 xdata 来访问了。
(1)程序存储器是ram扩展阅读:
51单片机对所有兼容Intel 8031指令系统的统称,8004单片机成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机属于基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
51单片机的RAM用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据,ROM用以存放程序、一些原始数据和表格。四个8位并行I/O口,既可用作输入,也可用作输出。T/C包括两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。
⑵ 系统程序区为什么通常选择ROM,而用户程序区选择RAM
ROM是只读模式的,所以系统就用到它,避免用户误删或病毒感染;而RAM是可读写的,用户平时操作要用到。
⑶ ram是什么存储器
ram是随机存取存储器。
ram是随机存取存储器,也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
内存条工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。
⑷ 运行内存RAM是什么
随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。
RAM可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
RAM工作时可以随时从任何一个指定的地址写入或读出信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。
(4)程序存储器是ram扩展阅读:
运行内存RAM组成:
RAM由存储矩阵、地址译码器、读/写控制器、输入/输出、片选控制等几部分组成。
(1)存储矩阵。如图所示,RAM的核心部分是一个寄存器矩阵,用来存储信息,称为存储矩阵。
(2)地址译码器。地址译码器的作用是将寄存器地址所对应的二进制数译成有效的行选信号和列选信号,从而选中该存储单元。
(3)读/写控制器。访问RAM时,对被选中的寄存器进行读操作还是进行写操作,是通过读写信号来进行控制的。读操作时,被选中单元的数据经数据线、输入/输出线传送给CPU(中央处理单元);写操作时,CPU将数据经输入/输岀线、数据线存入被选中单元。
(4)输入/输出。RAM通过输入/输岀端与计算机的CPU交换数据,读出时它是输岀端,写入时它是输入端,一线两用。由读/写控制线控制。输入/输出端数据线的条数,与一个地址中所对应的寄存器位数相同,也有的RAM芯片的输入/输出端是分开的。
(5)片选控制。由于受RAM的集成度限制。一台计算机的存储器系统往往由许多RAM组合而成。CPU访问存储器时,一次只能访问RAM中的某一片,即存储器中只有一片,RAM中的一个地址接受CPU访问,与其交换信息,而其他片RAM与CPU不发生联系,片选就是用来实现这种控制的。
参考资料来源:网络-随机存取存储器
⑸ 单片机中 什么是片内RAM和片外RAM,RAM就是数据存储器吗
51单片机有以下几个内存模块组成:
1】rom或者flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。
程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64k,所以很少有外扩
片外flash或者片外的rom了,flash或者rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;
2】ram有------内部ram的低128位(00-7f),对应c语言就是data,比如我定义一个变量,
data
unsigned
char
var
=
0;
那么,这个
var变量就是放在内部的低128位ram中
-------内部ram的高128位(80-ff),对应c语言就是idata,比如我定义一个变量,
idata
unsigned
char
var
=
0;
那么,这个
var变量就是放在内部的高128位ram中
-------特殊功能寄存器(sfr)(80-ff),对应c语言就是sfr比如我定义一个变量,
sfr
unsigned
char
var
=
0x90;
那么,这个
var变量就是放在内部的特殊功能寄存器中,这是你对var操作,相当于操作一个特殊的寄存器,但是小心,不能随便定义sfr变量,很危险
------外部ram
64k(0000-ffff)
外部的ram可以扩展到65536个,但是前256个算是一页,这一页比较特殊,是用
pdata来修饰的,当然,也可以用xdata来修饰。
除了第一页的256个以外的其他65280个空间,只能用xdata来修饰;
回过头来讨论pdata和xdata,这两个都能修饰外部ram的第一页,但是,pdata只能修饰第一页,即最前面的256个外部ram,那么,这最前面的256个到底用pdata还是xdata好的呢?
答案是pdata,因为xdata修饰的变量,用的是dptr寻址,pdata用的是r0和r1.dptr因为是16位的,所以可以覆盖整个的64k外部ram,r0和r1是8位,所以只能寻址最前面的256个,也就是外部ram的第一页,但是,用r0寻址,比dptr快一倍,代码也小的很多
楼主又疑惑了,好多地址是重复的,比如,我向80h地址写一个数值,单片机怎么知道读的是内部的高128位ram?还是sfr?还是外部64k的ram呢?
答案是用指令,如果是直接寻址,那么访问的就是sfr,如果是r0或者r1间接寻址,就是内部高128位ram,如果是dptr或者是r0,r1间接寻址,且配合的是movx指令,那么就是访问外部64kram中的第80h个地址。
概括一下来说,51的内存由以下组成:
1----程序存储器(包括片内flash或rom,也包括片外flash或rom,c语言用code定义)
2----内部低128位ram,c语言用data定义
3---内部高128位ram,c语言用idata定义
4---内部sfr,c语言用sfr定义
5---外部65536个ram(通常,很多单片机厂家不会给你扩展那么多的,一般来说扩展256个字节或者1024个字节就差不多了,最近宏晶的出了个扩展4096字节的。这65536字节的ram,前256个可以用pdata修饰,也可以用xdata修饰,超过256个之后的,只能用xdata修饰)
以上所说的只是针对51内核的单片机,其他内核的,像arm之类的,不是这种结构的。
⑹ 请问系统程序存储器.用户程序存储器与RAM,ROM的区别是什么,他们之间有什么联系.
RAM是随机存取存储器random
access
memory
ROM是只读存储器Read-Only
Memory
这两个指的是器件
ROM由于是只读而不能修改,在嵌入式系统里一般作为系统程序存储器
而RAM是可以读写修改的,一般在嵌入式系统里作为用户程序存储器比较合适
当然,这也不是一成不变的,有些系统也需要RAM存储系统程序,所以不能一概而论
⑺ 单片机中的程序存储器是ROM,数据存储器是RAM,对吗
是的,单片机中,程序存储器是ROM(包括掩膜ROM、EPROM、EEPROM和FLASH)
数据存储器是RAM
⑻ 程序存储器是不是数据芯片
程序存储器是指芯片的flash,是只读存储器,掉电后不会丢,主要存储你所编写的程序代码,运行过程不能修改,只能随机读取;ram是sram,是随机存取存储器,断电后会丢失数据,主要是在运行时存储程序中的变量,可以随机读写,
⑼ RAM是指程序存储器还是数据存储器
RAM(随机存取存储器)
RAM -random access memory 随机存储器
存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。
1、随机存储器特点
①随机存取
所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带)。
②易失性
当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会。
③高访问速度
现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,取存延迟也和其他涉及机械运作的存储设备相比,也显得微不足道。
④需要刷新
现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
⑤对静电敏感
正如其他精细的集成电路,随机存取存储器对环境的静电荷非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。
2、RAM ROM 内存的区别
rom -read only memory 只读存储器
①简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。
②什么是内存呢?
在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。
从一有计算机开始,就有内存。内存发展到今天也经历了很多次的技术改进,从最早的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,内存的速度一直在提高且容量也在不断的增加。今天,服务器主要使用的是什么样的内存呢?目前,IA架构的服务器普遍使用的是REGISTEREDECCSDRAM。
既然内存是用来存放当前正在使用的(即执行中)的数据和程序,那么它是怎么工作的呢?我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,借此来保持数据的连续性。