设计与开发

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

小编 2024-10-08 设计与开发 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...

单片机存储器 结构与原理?

一、51单片机存储器采用的是哈佛结构,即是程序存储器空间和数据存储器空间分开,程序存储器和数据存储器各自有自己的寻址方式、寻址空间和控制系统。二、51存...

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

51单片机程序存储器的地址范围因型号不同而不同,较小的只有0.5K,例如STC15系列中的某些型号,其地址范围是0000~01FF。最大的是64K,地址范围是0000~FFFF。程...

H,SP=H,工作寄存器采用第组.2.MCS- 51单片机 存储器 分为存...

[最佳回答]1.0000H,07H,第0组2.程序,数据,三,SFR,21个3.没看懂你的空在哪?可以看成是数据总线,地址总线和控制总线!4.外部中断0,外部中断1,定时/计数器0...

80C 51单片机 的程序 存储器 和数据 存储器 有何不同?

程序存储器就是放程序的存储器。就是把你写的程序放到里面去。就算断电了但是里面的数据还在,好比手机里面存的电话薄,你换块电池这中间有个断电的过程但是数...

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

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

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

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

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

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

809c 51 基本型 单片机 内部程序储存器为?

片内程序储存器存放程序和表格等常数,数据存储器用来存放运算的中间结果。其大小分别为4KB和128字节片内程序储存器存放程序和表格等常数,数据存储器用来存...

猜你喜欢