❶ 89C51单片机访问外部数据存储器RAM、ROM,应该使用什么指令
汇编指令:
外部RAM用MOVX指令,例如:MOVX A,@DPTR
ROM不分片内片外一律用MOVC指令,例如:MOVC A,@A+DPTR
❷ RAM的三个物理空间
ROM,RAM和片外ROM、RAM。
拓展:
内部的ROM及外部RAM的空间分配 1/5 免广告阅读
从物理构造的角度讲、51单片机的存储系统可以分为四个存储空间:既片ROM,RAM和片外 ROM、RAM。从逻辑构造上看〔既端程的角度],可以分为三个不同的空间:
[1)片、片外统一编址的64KB的程序存储器地址空间:0000H-FFFFH(用16 位地址);;其中 0000H-0FFFH 为片 4KB 的 ROM 地址空间,1000H-FFFFH 方外部ROM 地空间;
[2] 256B的部数据存储器地址空间【用8位地址],00H-FFH,分为两大局部,其中00H~7FH(共128B 单元】为邻静态 RAM的地址空间。80H-FH为特球动车
存放器的地址空间,21个特殊功能存放器离散地分布在这个区域;
[3] 64KB的外部数据存储器地址空间(用16位地址):0000H~FFFFH,包括扩展 I/O 地址空间。
上述4个存储空间地址是重春的。如困1所示。8051的指今系统设计了不同的教据传送指令以区别这4个不同的逻超交间:CPU片片外ROM 存合屏NOVC,其外RA
指令用MOVX.片RAM 指令用 MOV。
程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB 的地址空间任意现转,但不能使程序从程序存储空间转移到数据存储器空间。
❸ 单片机中 什么是片内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容量指什么RAM是什么意思
内存中的RAM容量指指的是计算机的内存容量,是内存条的关键性参数。内存的容量一般都是2的整次方倍,比如64MB、128MB、256MB等,一般而言,内存容量越大越有利于系统的运行。
RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的。它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)。
当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。正因为如此,有时也将RAM称作“可变存储器”。RAM内存可以进一步分为静态RAM(SRAM)和动态内存(DRAM)两大类。
(4)外部数据存储区ram扩展阅读:
RAM的分类:
①静态随机存储器(SRAM):静态存储单元是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。
②动态随机存储器(DRAM):动态RAM的存储矩阵由动态MOS存储单元组成。动态MOS存储单元利用MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于0,所以电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。
通常把这种操作称为“刷新”或“再生”,因此DRAM内部要有刷新控制电路,其操作也比静态RAM复杂。然而,由于DRAM存储单元的结构能做得非常简单,所用元件少,功耗低,已成为大容量RAM的主流产品。
❺ 单片机中存储器分类,按照内部和外部、ROM和RAM进行分类
单片机中存储器分类,分为内部ROM和外部ROM。数据存储器分为内部RAM和扩展的外部数据存储器RAM。
按照内部ROM分类,分为掩膜ROM,可一次性编程的PROM,多次擦除/烧写的EPROM,可在线编程的FLASH。
❻ 我想问问简述ram和rom的区别
ram和rom的区如下:
RAM(randomaccessmemory)即随机存储内存,可以随机读和写。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序,储存进食文件。属于一种内存技术。
ROM(Read-OnlyMemory)即只读内存,只能读不能写。是一种只能读出事先所存数据的固态半导体存储器,即使掉电后也能找到之前存储的文件。是一种硬盘技术。
手机中的RAM和ROM分别对应电脑的内存和硬盘,内存负责程序的运行以及数据交换,有了它,电脑中的软件才能运行,并有了进程;而硬盘就是一块存储空间,您可以存储各种各样的文件,包括视频、照片、音乐、软件等。
内存(Memory)是计算机中重要的部件之一,由内存芯片、电路板、金手指等部分组成,它是与CPU进行沟通的桥梁。内存也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
更多关于简述ram和rom的区别,进入:https://m.abcgonglue.com/ask/79351c1615755651.html?zd查看更多内容