历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2019年03月18日 | STC89C52单片机RAM模式

2019-03-18 来源:eefocus

STC89C52 单片机内变量、函数参数等数据在RAM中的储存模式: small、compact、large     



前边介绍单片机资源的时候,我们提到过 STC89C52 共有 512 字节的 RAM,是用来保存数据的,比如我们定义的变量都是直接存在 RAM 里边的。但是单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。


51 单片机的 RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内 RAM 地址从 0x00H~0x7F 共 128 个字节,而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。片外 RAM 最大可以扩展到 0x0000~0xFFFF 共 64K 字节。这里有一点大家要明白,片内 RAM 和片外 RAM 的地址不是连起来的,片内是从 0x00 开始,片外也是从 0x0000 开始的。还有一点,片内和片外这两个名词来自于早期的 51 单片机,分别指在芯片内部和芯片外部,但现在几乎所有的 51 单片机芯片内部都是集成了片外 RAM 的,而真正的芯片外扩展则很少用到了,虽然它还叫片外 RAM,但实际上它现在也是在单片机芯片内部的,我们的 STC89C52 就是这样。以下是几个 Keil C51 语言中的关键字,代表了 RAM 不同区域的划分,大家先记一下。

data:片内 RAM 从 0x00~0x7F

idata:片内 RAM 从 0x00~0xFF

pdata:片外 RAM 从 0x00~0xFF

xdata:片外 RAM 从 0x0000~0xFFFF


大家可以看出来,data 是 idata 的一部分,pdata 是 xdata 的一部分。为什么还这样去区分呢?因为 RAM 分块的访问方式主要和汇编指令有关,因此这块内容大家了解一下即可,只需要记住如何访问速度更快就行了。


我们定义一个变量 a,可以这样:unsigned char data a=0,而我们前边定义变量时都没有加 data 这个关键字,是因为在 Keil 默认设置下,data 是可以省略的,即什么都不加的时候变量就是定义到 data 区域中的。data 区域 RAM 的访问在汇编语言中用的是直接寻址,执行速度是最快的。如果你定义成 idata,不仅仅可以访问 data 区域,还可以访问 0x80H~0xFF 的范围,但加了 idata 关键字后,访问的时候 51 单片机用的是通用寄存器间接寻址,速度较 data会慢一些,而且我们平时大多数情况下不太希望访问到 0x80H~0xFF,因为这块通常用于中断与函数调用的堆栈,所以在绝大多数情况下,我们使用内部 RAM 的时候,只用 data 就可以了。


对于外部 RAM 来说,使用 pdata 定义的变量存到了外部 RAM 的 0x00~0xFF 的地址范围内,这块地址的访问和 idata 类似,都是用通用寄存器间接寻址,而如果你定义成 xdata,可以访问的范围更广泛,从 0 到 64K 的地址都可以访问到,但是它需要使用 2 个字节寄存器DPTRH 和 DPTRL 来进行间接寻址,速度是最慢的。


我们的 STC89C52 共有 512 字节的 RAM,分为 256 字节的片内 RAM 和 256 字节的片外RAM。一般情况下,我们是使用 data 区域,data 不够用了,我们就用 xdata,如果希望程序执行效率尽量高一点,就使用 pdata 关键字来定义。其它型号有更大的 RAM 的 51 系列单片机,如果要使用更大的 RAM,就必须得用 xdata 来访问了。


推荐阅读

史海拾趣

HANA Micron公司的发展小趣事

随着线上及线下业务的快速增长,Hama面临着交货时效性的巨大挑战。为了应对这一挑战,公司决定在蒙海姆总部建造一座集仓储、拣选与发货一体的物流中心。该物流中心采用了先进的自动化和人工子系统相结合的设计方案,大大提高了物流运作的效率。新系统的启用使得Hama每天能够处理数以万计的订单,确保了产品的及时交付,进一步提升了客户满意度和品牌影响力。

Abbatron公司的发展小趣事

在电子行业的激烈竞争中,Abbatron公司以其创新的技术赢得了市场的认可。某年,公司研发团队成功开发出了一款新型的高效能芯片,这款芯片不仅性能卓越,而且功耗极低,引起了业界的广泛关注。通过这一技术突破,Abbatron公司在市场上占据了有利地位,并逐渐成为了行业内的佼佼者。

Amerace Electronic Components公司的发展小趣事

Amerace Electronic Components公司自成立以来,一直致力于电子元件的技术创新。在早期的发展阶段,公司投入大量资源进行研发,成功推出了一系列具有创新性的电子元件产品,如高精度电阻器和电容器。这些产品在市场上获得了广泛的认可,为公司赢得了良好的声誉。随着技术的不断进步,Amerace持续引领行业创新,为电子行业带来了更多高性能、高可靠性的元件产品。

依必安派特(ebmpapst)公司的发展小趣事

1996年,依必安派特在上海外高桥保税区设立了其在中国的首个据点——依必安派特风机(上海)有限公司。最初,它仅作为销售为主的贸易公司,为中国市场提供德国制造的风机和电机产品。然而,随着中国市场的快速增长和需求的不断变化,依必安派特意识到仅仅作为贸易公司已无法满足市场需求。于是,在2000年,依必安派特电气(上海)有限公司正式成立,开始在上海本地生产风机和电机,标志着依必安派特从贸易到制造的转变。

Amidon Associates Inc公司的发展小趣事

在实现了从贸易到制造的转变后,依必安派特并没有停止前进的步伐。在2012年,依必安派特亚太研发中心正式落户上海,开始了本土化研发之路。这一举措使得依必安派特能够更好地了解中国市场的需求和趋势,为中国客户提供更加符合其需求的产品和解决方案。同时,本土化研发也加速了依必安派特在中国市场的创新步伐,推动了公司业务的快速发展。

Altonics公司的发展小趣事

在技术创新的基础上,Altonics公司积极拓展市场。公司不仅在国内建立了完善的销售网络,还积极开拓国际市场,产品远销海外。同时,公司注重品牌建设,通过提供优质的产品和服务,树立了良好的品牌形象。公司的广告宣传和展会参展活动也提升了品牌知名度,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

NVR全面普及需要多久?

  对于NVR将全面普及甚至取代DVR,各厂家并没有太多异议,而备受关注的是这个过程会有多久,现在来谈NVR的普及还为时尚早,那么,具体来说从现在的推广、试用到最终的普及、取代,NVR需要多久?         …

查看全部问答>

南京有没有公司能做单片机解密

有一个单片机产品(ATMEL89C51),我想把里面的二进制程序弄出来,不要源代码。有没有公司做这方面的啊?各位达人告诉我一下…

查看全部问答>

到数据

                                 会就是会不会就是不会,如果你会那你就把问题解决,别整天什么贴膏药,什么程序有问题净装B…

查看全部问答>

AT89C52怎么下载程序?

有个问题~我的AT89c52怎么下载程序啊?本人学生,没那么多钱买编程器啊,毕竟因为上次第一次买芯片,没问清楚就买了 ~~~o(︶︿︶)o 唉 网上搜了一大通,但是没找到具体的符合我目前要求的,想要串口下载,9针的~~可惜没找到啊…

查看全部问答>

【MSP430共享】基于蓝牙技术的脉搏波检测系统设计

设计了以MS P 4 3 0 单片机为主控制器的脉搏波检测系统。光电传感器产生的信号通过放大、 滤波后送入单片机的 A / D通道, 单片机控制蓝牙模块将处理后得到信号送到手机中, 手机对脉搏信号实时显示、 分析、 存储。系统通过蓝牙技术把脉搏检测仪 ...…

查看全部问答>

C2000串口烧写

http://www.codeskin.com/programmer   http://www.codeskin.com/programmer…

查看全部问答>

FPGA菜鸟求助。。。请各位大侠帮忙

我用了Altera的EP1C6Q240C8的一块学习板,自己用VHDL编了个小程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt is  port (clk,rst:in std_logic;        coun ...…

查看全部问答>

控制类题目分析

本帖最后由 paulhyde 于 2014-9-15 03:39 编辑 你看了就知道了 控制类的解析及预测  …

查看全部问答>

求教,28027,28035 一个ePWM周期,触发单个端口,多次转换!

大家好,我碰到一个问题是ePWM触发ADC转换的,TI的例子有一个EPWM周期确发两个不同端口ADC转换,而我现在需要触发10个以上单端口转换,而且转换是周期性的取样,需要在下个ePWM触发时,转换完成 请问一下寄存器要如何设置,能提供个思路吗? 谢谢…

查看全部问答>

值得收藏的好书---单片机及应用系统设计原理与实践

单片机及应用系统设计原理与实践 本书立足于51单片机的经典结构,以广泛应用的AT89S52单片机为应用对象,深入浅出地讲述单片机及应用系统设计原理与实践。书中51单片机基础内容采用汇编与C51并行的撰写方式,便于对比学习,应用则以C51为蓝本, ...…

查看全部问答>