您的位置 首页 嵌入式

51单片机的内存模块详解

51单片机的内存模块详解-程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64K,所以很少有外扩

片外Flash或者片外的Rom了,Flash或者Rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改

关于51单片机内存问题,一直是个疑问我们的问题,由于51单片机是个很特别的单片机。

下面我给楼主解说一下:

51单片机之所以特别,是由于,他寻址内存的空间,不是靠总线,是用指令的方法。

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之类的,不是这种结构的。

最终,答复楼主的问题:

片外存储区是什么?

这个问题太含糊,答案能够是外扩的Flash,也能够说是外扩的RAM,

假如问题是这么问的:

程序或许常量存储在片外存储区,这个片外存储区指的是什么?

答案是外扩Flash;

假如问题是—变量存储在片外存储区,这个片外存储区指的是什么?

答案是外扩RAM;

一般来说,假如不指明的话,外内存储区,行业内人士指的是外部的Ram。

片内存储器是什么?是不是便是内部的E2PROM?

片内存储区一般来说,指的是内部的Ram,包含高128位(idata)和低128位(data)

片内存储器,这个说法我没听说过,可能是EEPROM吧。
来历;21ic

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/344150.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部