Ⅰ 单片机的数据存储器是指外部存贮器
单片机的数据存储器是指外部存贮器是对的。单片机的分为数据存储器和程序存储器。单片机内部的存储器称为片内存储器,片外扩展的存储器成为片外存储器。
Ⅱ 80c51单片机的片内片外程序存储器和片内片外数据存储器访问如何区分
管腿EA接高电平,单片机首先访问内部ROM,当地址值超过4K(0FFFH)时自动访问外部ROM。EA接低电平,单片机只访问外部ROM。
对于数据的话,可以通过定义来区分,idata,即片内 RAM 从 0x00~0xFF;pdata,即片外 RAM 从 0x00~0xFF;xdata,即片外 RAM 从 0x0000~0xFFFF。
Ⅲ 单片机中 什么是片内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之类的,不是这种结构的。
Ⅳ 单片机读、写片外数据存储器采用
单片机读、写片外数据存储器采用MOVX指令
MOVX
@Ri,A和MOVX
@DPTR,A从片外读取数据到ACC
MOVX
A,@Ri和MOVX
A,@DPTR把ACC数据送到片外
Ⅳ 51单片机的片内存储器和片外存储器都是在芯片内部吗
传统上,片内存储器是在芯片内部,片外存储器是在芯片外部。顾名思义嘛。
随着芯片的发展,有些扩展型51单片机会在片内扩展一些SRAM方便使用,这些SRAM会映射在片外存储空间内,使用时通过访问片外存储空间的低地址来访问这些“实际上在片内”的SRAM。
Ⅵ 单片机中数据存储器可分为
按照位置区分,可分为片内存储器和片外存储器。
按照访问方式区分,可分为直接寻址存储器和间接寻址存储器。
Ⅶ 在MCS-51单片机存储器扩展中,区分扩展的是片外程序存储器还是片外数据存储器的方法是什么
硬件上,控制信号不一样:片外程序存储器工作,要PSEN信号有效;片外数据存储器工作,要RD或WR信号有效;x0dx0a软件上,寻址不一样,片外程序存储器工作,要用MOVC,x0dx0a片外数据存储器工作,要用MOVX;x0dx0a虽然说他们的地址都是0000H~FFFFH,不会发生冲突的
Ⅷ 单片机的片内和片外存储器的功能各是什么
单片机的存储器的按功能分为RAM和ROM,RAM常用作寄存器和数据存储器,ROM都用作程序存储器,片内和片外没什么差别,往往是片内不够用,片外扩充,当然,单片机的特殊寄存器(用作运算或设置单片机功能)一定在片内,而且也是不能扩充的。