技术文档

51单片机存储器 51单片机存储器内存详解

小编 2024-10-06 技术文档 23 0

51单片机存储器内存详解

51单片机当中的存储器从功能性上来划分可以分为程序存储器与数据存储器。一般来说单片机存储器的存储空间是能够进行存储空间拓展的,但是如何进行拓展则需要根据不同的存储器类型进行选择。

本文就将为大家针对这个问题进行讲解。

访问存储空间时,需要用到两个指针变量,为DPTR和PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K。但是,如果实际扩展过存储器,就可以发现程序存储器的扩展能力并没有64K。

为什麽会这个样子呢?这得从51单片机的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然要小于64K。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K。

51单片机存储器小结

存储器分为程序存储器(ROM)和数据存储器(RAM),两种又都可以分为片内和片外,片外即需要自己在单片机外部扩展。

8051单片机的片内程序存储器有4K,片内数据存储器有256个字节,其中又分为高128字节位特殊功能寄存器区,真正用户能用的RAM只有低128字节。

8052单片机有8K片内程序存储器,而数据存储器除了低128字节外还有扩展的高128字节,地址上跟特殊功能寄存器一样,但物理上是独立的,寻址方式不一样,扩展的高128字节只能间接寻址。

Keil中变量的存储类型:

存储类型

说明

code

程序空间(无需改变的变量)

data

直接访问的内部数据存储器(速度最快)

idata

间接访问的内部数据存储器(可以访问全部256字节RAM)

bdata

可位寻址的内部数据存储器

xdata

外部数据寄存器(最大64K)

pdata

分页的外部数据寄存器(最大256字节,少用)

【如无使用关键字,系统则按默认处理(根据存储模式)】

Keil中的存储模式:

存储模式

说明

Small

变量默认为data型,最大128字节

Compare

变量默认为pdata型,最大256字节

Large

变量默认为xdata型,最大64K

Keil中设置如下图:

我们平常使用的STC单片机,有很多型号,具体存储器大小都要看型号:

【89/90系列的机器周期需要12个或6个时钟周期】

【12/15系列的机器周期只需要1个时钟周期】

51单片机上的FFT算法

最近用增强型51单片机做了一个简易的点阵音乐频谱显示器,最主要是自己刚学完信号处理课程,想自己写一个FFT算法。现将已经能够在51单片机上运行的FFT算法供需要的伙伴们参考。

在51单片机上运行FFT算法,需要注意一下几点:

由于51单片机的内存RAM很小,只有128字节,52有256字节,而16点的浮点数输入,就需要2*4*16=128字节的内存开销,所以只有256字节的做多只能做16点的FFT运算。而且必须要用idata定义才能将其定义在高128字节。所以要做16点以上的FFT运算,必须选用有内部扩展RAM的51系列单片机,然后用xdata定义,并且要将存储模式设为LARGE模式。

相关问答

51单片机 有哪四个物理 存储器 ?

AT89C51单片机存储器空间在物理结构上可划分为4个部分:片内程序存储区、片外程序存储区、片内数据存储区、片外数据存储区。AT89C51单片机内部存储器分为四...

51单片机存储器 地址范围?

不同型号51单片机的存储器空间是不一样的,而且它的存储器又分为程序空间和数据空间。比较常见的51单片机,其程序存储器是64k字节,地址范围是从0000~FFFF(0~6...

单片机 片内256b的数据 存储器 可分为几个区?分别作什么用?

片内有256个数据存储器的只能是52或者更高级的51系列单片机,应该是分成五个区:1、工作寄存器区,00H~1FH,四组工作寄存器R0~R72、位址寄存器区,20H~2FH,可...

51单片机 有储存功能吗?

51单片机有存储功能,它两个存储空间,一个叫程序存储器,用来存储用户程序;另一个叫数据存储器,也叫RAM区,用来存储程序运行的中间数据。程序存储器是掉电保...

MCS- 51 系列 单片机 存储器 可划为几个空间?其地址范围及容量...

MCS-51系列单片机的存储器可划为几个空间?其地址范围及容量是多少?在使用上有什么不同?举报2人讨论3862次围观关注问题写回答讨论回答(2)10769326661...

mcs- 51 系列 单片机 采取什么样的存储结构?

mcs-51系列单片机为冯诺依曼结构,有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及...m...

关于 单片机存储器 的问题,idata,data,badata,xdata,pdata,cod...

关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。下面我给楼主讲解一下:51单片机之所以另类,是因为,他寻址内存的空间,不是靠...

51单片机 访问不同 存储器 用什么指令?

访问内部RAM时,可以直接寻址寄存器间接寻址,访问外部时用PCDPTRR0R1寻址访问内部RAM时,可以直接寻址寄存器间接寻址,访问外部时用PCDPTRR0R1寻址

80c 51单片机 中程序 存储器 最大访问空间由什么决定?

这是由PC(程序地址指针)的位数决定的。51单片机的PC为16位,所以能访问的最大程序存储器空间是64k字节,也就是0000~FFFFH。国外厂商生产的51单片机有一个PSEN...

51单片机 内部程序 存储器 多少单元?

51单片机内部程序存储器有4KB单元。MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读...

猜你喜欢