历史上的今天
返回首页

历史上的今天

今天是:2025年04月21日(星期一)

正在发生

2021年04月21日 | 51单片机RAM 数据存储区知识总结

2021-04-21 来源:eefocus

1.RAM keil C语言编程


RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128B,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128B大小,则必须对变量进行初始化,否则超过RAM大小变量的值是不确定的,在small模式下超过128B大小的变量也必须在编译器中重新设定存储器的存储模式。


在keil中,可选择small,compact,large三种方式存储数据变量:

1.jpg?imageView2/2/w/550

在keil中可以用“TargetOptions”来配置这一项:

2.jpg?imageView2/2/w/550

图1 选择数据存储模式


2.片内数据存储区


(1) 工作寄存器区


工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节( 如此说来每个单元是一个字节了 ),分成四组。每组8个字节,分别记为R0~R7.

3.jpg?imageView2/2/w/550

程序默认在0区工作寄存器组存放中间运算数据。等待中断来时,中断数据工作寄存器组由0区切换到其它区域。


选择四组工作寄存器区的哪一组作为R0~R7由位于PSW寄存器的两位RS1,RS0来确定.


RS1,RS0称为区开关或组开关,两位就可决定四种状态.

4.jpg?imageView2/2/w/550

(2)位寻址区


用户存储区位于片内数据存储器中的020H~02FH单元,共16个字节,共128位,每个字节单元的位都有一个单独的地址,分别为00H-07H,如020H.1表示020H单元的bit[1]位。020H~02FH单元可作为位寻址区。这个范围内的存储单元最大的用处就是能进行位操作,在C语言中,只能用位操作运算符(&、|、^、~、<<、>>)来对字节数据进行位操作运算。如果用汇编指令就可以直接对此片存储单片进行位操作。


如 SETB, 020H.1 就将020H的bit[1]置为了1.


除了RAM此片能进行位寻址的用户存储区以外,还有一些特殊的功能寄存器( SFR )也能进行位寻址。


(3)数据缓冲区


51系列数据缓冲区地址为30H-7FH,共80字节。只能字节寻址,不能位寻址。由于工作寄存器和位寻址区,数据缓冲区是统一编址的,所以这三者都可以用作数据缓冲区。


(4)堆栈


栈:由系统自动分配释放,存局部值。


堆:一般由程序员分配和释放。


堆栈指针SP:8位寄存器,堆栈最大可达128单元,只可在片内RAM中进行堆栈操作。


堆栈作用:用来保存地址、数据信息、具有先进后出特性,也是一种能存放二进制数据的空间。


MC51堆栈采用满顶法向上生成的软件堆栈。


软件堆栈:借助SP进行控制操作。


堆栈向上生长:新压栈的数据成为堆栈顶。


堆栈向下生长:新压入的数据远离堆栈顶。


地址大小还得看存储方式。


(5)专用寄存器区


专用寄存器区,也称特殊功能寄存器区 SFR


SPECIAL FUNCTIONREGISTER


寻址地址离散地分布在80H~FFH,共128字节的空间.而实际有用的只有21个字节,即在这一空间里只有18个专用功能寄存器,其中有3个专用功能寄存器占用了两个字节.SFR主要用于片内硬件的管理,通常只能以字节为单位借助于MOV指令直接寻址,但也有一些专用功能寄存器可以位寻址。


包含程序状态字PSW、数据指针寄存器DPTR、端口地址P0-P0、其它专用寄存器(累加器A、B)


3.片外数据存储区


片外RAM区:可寻空间为共64K 0000H~FFFFH,


总是使用MOVX类指令寻址


借助于工作寄存器R0或R1间接寻址时,可寻256字节


从片外RAM区取数据: MOVX A,@Ri i=0-1


向片外RAM区存数据: MOVX @Ri,A


借助16位的数据指针DPTR间接寻址,可寻64K字节:


从片外RAM区取数据: MOVX A,@DPTR


向片外RAM区存数据: MOVX @DPTR,A


区分是访问内部存储器还是外部存储器地址靠指令来区分。


推荐阅读

史海拾趣

华大北斗(Allystar)公司的发展小趣事

在电子行业中,华大北斗(Allystar)公司以其卓越的技术实力和市场表现脱颖而出,其发展历程中充满了许多引人注目的故事。以下是关于华大北斗发展起来的五个相关故事:

一、华大北斗的南迁之旅

华大北斗的发展史上,一个重要的节点是2016年的南迁。当时,华大北斗主动选择深圳作为新的研发总部所在地,这是基于深圳电子制造业的雄厚基础和良好的创新环境。在短短几个月内,华大北斗完成了研发环境的选址与装修、研发团队的组建以及实验设备的部署,展现了其高效的执行力。这一举措得到了深圳市政府及各级领导的高度关注与认可,华大北斗也被列为深圳市重点引进的战略项目。

二、北斗芯片技术的突破

华大北斗在北斗芯片技术方面取得了重大突破。公司成功研发出支持北斗三号信号体制的多系统多频高精度SoC芯片,这一成果在芯片多频定位方面取得了重要进展。该芯片集成了射频、基带、处理器、存储器等单元,不仅大幅缩小了芯片尺寸,还优化了功耗,实现了单芯片双频北斗高精度定位一体化SoC解决方案。这一技术的突破为北斗应用的自主可控提供了关键支持,推动了北斗产业化、国际化、规模化应用的进程。

三、高精度芯片进入共享单车市场

随着共享经济的兴起,共享单车市场蓬勃发展。华大北斗凭借其高精度芯片技术,成功进入了共享单车市场。其高精度芯片为共享单车提供了精准的定位服务,有效提升了用户体验和车辆管理效率。这一成功应用不仅展示了华大北斗技术的市场竞争力,也为其在更多领域的应用提供了广阔的空间。

四、双频北斗手机的面市

基于华大北斗双频北斗芯片研发的全球首款双频北斗手机的面市,是华大北斗发展历程中的又一里程碑。这款手机的推出,标志着北斗导航技术在智能手机领域的成功应用,也展示了华大北斗在推动北斗产业化进程中的积极作用。双频北斗手机的出现,不仅提升了用户体验,也为北斗导航技术的普及和推广做出了贡献。

五、斩获香港环球创新奖

2023年,华大北斗荣获首届香港环球创新奖年度创新大奖,这是对其在北斗导航芯片领域技术创新和产业化应用的高度认可。这一奖项的获得,不仅提升了华大北斗的品牌形象和市场影响力,也为其在未来的发展中注入了强大的动力。华大北斗将继续坚持技术创新,针对行业应用的不同需求,用领先的技术研发和应用能力推动北斗产业的高质量规模化发展。

这些故事只是华大北斗发展历程中的一部分,但它们足以展现出华大北斗在电子行业中的技术实力和市场竞争力。华大北斗将继续秉持创新精神,不断推动北斗导航技术的发展和应用,为电子行业的进步做出更大的贡献。

Diodes公司的发展小趣事

Diodes公司自成立以来,一直致力于技术创新,以满足不同行业对高性能、高可靠性半导体解决方案的需求。在二极管、三极管、MOSFET等离散器件领域,Diodes不断投入研发资源,推出了一系列具有创新性的产品。例如,其SiC二极管和MOSFET产品,凭借其耐高温、耐高压等特性,在新能源汽车、智能电网等领域得到了广泛应用。这些技术创新不仅提升了Diodes的市场竞争力,也为公司带来了可观的收益。

ACL staticide公司的发展小趣事

随着科技的快速发展和市场的不断变化,客户需求也在不断更新。为了满足客户不断变化的需求,Diodes公司始终保持敏锐的市场洞察力和创新力。公司不断推出新产品、新技术和新应用方案,以满足客户在性能、可靠性、成本等方面的需求。同时,Diodes还积极与客户沟通交流,了解客户的实际需求和反馈意见,不断优化产品和服务。这些努力使得Diodes能够紧跟市场步伐、满足客户需求,在激烈的市场竞争中保持领先地位。

Ark-Les Connectors公司的发展小趣事

在电子行业中,品质是生存和发展的关键。Ark-Les Connectors公司从一开始就深知这一点,因此将品质控制作为公司发展的核心战略。公司建立了严格的质量管理体系,从原材料采购到生产流程控制,再到产品检测与售后服务,每一个环节都严格把关。这种对品质的坚持让Ark-Les的产品在市场上赢得了良好的口碑,也为公司积累了大量的忠实客户。

AR RF/Microwave Instrumentation公司的发展小趣事

面对未来的发展,AR RF/Microwave Instrumentation制定了明确的战略规划。他们将继续加大在研发和创新方面的投入,推出更多具有创新性和竞争力的产品。同时,公司还将积极拓展新的应用领域和市场,寻求更多的合作机会,以实现更加广泛的发展。

请注意,以上仅为概述性的故事框架,并非具体的事实描述。如果你需要更详细、具体的故事内容,建议查阅AR RF/Microwave Instrumentation公司的官方资料、新闻报道或行业分析报告等,以获取更准确的信息。

浙江凡华(FANHAR)公司的发展小趣事

随着科技的不断发展,AR RF/Microwave Instrumentation意识到要想在激烈的市场竞争中保持领先地位,必须不断进行技术创新。公司投入大量资源进行研发,成功推出了一系列具有创新性的产品,如宽带高功率放大器、固态射频放大器等。这些产品不仅性能卓越,而且能够满足不同客户的需求,进一步巩固了公司在行业内的地位。

问答坊 | AI 解惑

AT91RM9200 ARM开发套件-工业级应用系统

在工业现场,工作环境恶劣,干扰因素多,因此嵌入式系统的可靠性至关重要,只有高可靠性才能保证系统的稳定运行。     北京恒颐致力于32位嵌入式计算、控制应用在工业控制行业的推广,为广大用户提供低功耗、小体积、高集成度、高可靠性 ...…

查看全部问答>

现代操作系统

现代操作系统(英文版.第2版) >Modern Operating Systems (3rd Edition) 作者: Andrew S. Tanenbaum         isbn: 0136006639         书名: Modern Operating Systems (3rd ...…

查看全部问答>

【资料集】C8051F320开发评估板资料

  F320 开发评估板使用说明书一 BT F320 开发评估板功能简介······································ 2二 BT F320 开发评估板范例程序详细说明······················ 3三 Sili ...…

查看全部问答>

大家用过91网(www.big91.com)没,强烈推荐.

有两上网址:http://www.big91.com http://big91.vicp.net(测试网址,更稳定)…

查看全部问答>

用waveInXXX()录音时media player没声音是怎么回事?

WinCE5.0环境, 录音机和media player都是正常的 但是先录音再用media player播放音乐时,media player没声音。 先media player播放音乐再录音也录不下什么声音。…

查看全部问答>

急问:用EVC, 语句实现Access数据库自增长列问题

CString strSQL=        _T(\"create table aa(ID AUTOINCREMENT ,Name varchar(50)\"); 想把ID设为自增长,可运行该条语句失败。将AUTOINCREMENT 改为int 就可以运行成功。但是想要自增长的。咋办呢? …

查看全部问答>

基于51系列单片机设计一个投币刷卡转换器

  基于51系列单片机及射频技术实现一个刷卡投币控制系统,采用mifare读卡头结合数码管显示。以mcu为控制核心,结合液晶显示技术,实现对mifare刷卡头及投币器的控制。   不知道从哪里下手,跪求高人指点!…

查看全部问答>

stm32的uart居然是单双工的

本人刚开始学习stm32,从串口的例程开始。看它介绍说是全双工的,实际一看就是单双工的嘛:因为共用一个寄存器来发送、接收,这样带来很大问题。实际中,测试方法是:采用中断方式,将接收到的数据立即发送回去。代码如下:    ...…

查看全部问答>

pwm波经驱动芯片后驱动mosfet需隔离

本帖最后由 paulhyde 于 2014-9-15 09:07 编辑 pwm波经驱动芯片后驱动mosfet需隔离吗       求大神解答  …

查看全部问答>

轿车着火或者溺水之后车门安全系统如何预警和自救?

  看到新闻上不断有报道轿车自燃之后乘客不能及时逃生,大暴雨也导致有驾驶员不幸在轿车中溺水身亡!很多朋友都提到这些事故中的致命汽车中控锁。中控锁是通过车辆总线来控制的,也是可以设置的,把中控设置成熄火后四门全部开锁,关键时刻可 ...…

查看全部问答>