历史上的今天
返回首页

历史上的今天

今天是:2025年01月18日(星期六)

正在发生

2021年01月18日 | 51单片机RAM数据存储器学习笔记

2021-01-18 来源:eepw

1.RAM keil C语言编程


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


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

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

2.片内数据存储区


(1) 工作寄存器区


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

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


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


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


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)堆,栈


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


堆:一般由程序员分配和释放(在C中用malloc/free操作)。


栈指针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


<此段摘抄,防后会使用>


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


这里,片内的存储区即常念叨的“寄存器”,片外的ram存储区即指“系统内存”。


推荐阅读

史海拾趣

赛微(Cellwise)公司的发展小趣事

作为高端集成电路晶圆代工生产商,赛微在晶圆代工技术方面取得了重要突破。公司不断引进先进的生产设备和工艺技术,加强研发投入和人才培养,成功打造了一系列具有国际竞争力的晶圆代工生产线。同时,公司还积极拓展新的应用领域和市场,为客户提供更加全面、优质的服务。

Advantech公司的发展小趣事

作为高端集成电路晶圆代工生产商,赛微在晶圆代工技术方面取得了重要突破。公司不断引进先进的生产设备和工艺技术,加强研发投入和人才培养,成功打造了一系列具有国际竞争力的晶圆代工生产线。同时,公司还积极拓展新的应用领域和市场,为客户提供更加全面、优质的服务。

BCD Semi(Diodes)公司的发展小趣事

BCD Semi(Diodes)公司自成立以来,一直致力于模拟半导体产品的设计和制造。在某一时期,公司研发团队成功突破了某项关键技术,开发出了具有更高性能、更低功耗的新型模拟器件。这一技术突破使得BCD Semi的产品在市场上更具竞争力,赢得了众多客户的青睐。随着产品升级的不断推进,公司逐渐在模拟半导体领域树立了良好的口碑。

台湾凯励(Carli)公司的发展小趣事

在电子行业中,品质控制和质量管理是企业生存和发展的关键。凯励公司深知这一点,建立了严格的质量管理体系和检测机制。公司从原材料采购到生产制造、产品检测等各个环节都严格把控品质,确保产品的稳定性和可靠性。此外,凯励公司还引进了先进的生产设备和检测仪器,提高了生产效率和产品质量。

Deutsch公司的发展小趣事

为了进一步扩大市场份额,Deutsch公司开始积极寻求国际合作和市场扩张的机会。公司首先通过市场调研,确定了目标市场,并制定了详细的市场拓展计划。随后,通过与当地合作伙伴建立合作关系,Deutsch公司成功进入了新兴市场。在国际市场上,公司凭借其高品质的产品和优质的客户服务,赢得了客户的信任和认可。这些努力使得Deutsch公司的市场份额逐年上升,成为电子行业的领军企业之一。

Artesyn Embedded Technologies公司的发展小趣事

为了更好地服务全球客户,Artesyn Embedded Technologies不断加强其在全球市场的布局。公司在北美、欧洲和亚洲等地设立了区域中心,并通过直接办事处、代理机构以及分销商提供全球性销售与支援。这种全球化的战略使公司能够更好地满足不同地区客户的需求,同时也为公司带来了更多的商业机会。

问答坊 | AI 解惑

D类放大器原理详解及应用设计指南(完整版)

D类放大器首次提出于1958年,近些年已逐渐流行起来。那么,什么是D类放大器?它们与其它类型的放大器相比如何? 为什么D类放大器对于音频应用很有意义?设计一个“优质”D类音频放大器需要考虑哪些因素? 美国模拟器件公司(简称ADI公司)D类放大器产品 ...…

查看全部问答>

硬件设计工程师招聘信息

本公司根据产品的需要,高薪诚聘有经验的硬件设计工程师/产品设计经理 公司名称:北京天宇威视科技有限公司 岗位职责: 1、根据新产品目标,提出新产品功能要求及硬件结构设计可行性方案; 2、综合考虑功能、成本、稳定性、工艺性等因素,提出 ...…

查看全部问答>

急!急!急!请教一个关于udp通信的问题

我想在一个多任务程序中用udp方式实现任务之间的通信,应该属于在本地机上实现通信,不知道怎么做啊,把ip设成一样的127.0.0.1就可以了吗?…

查看全部问答>

LM358电路分析

请各位大侠帮小弟分析分析上图两个LM358的输出为什么不同。谢谢师傅赐教…

查看全部问答>

430F1232几种型号的区别

今天突然发现,430F1232竟然还有很多种型号,后缀名有很多种,恕小弟愚昧,看了资料半天似乎也没发现太大区别,这里请问一下用430的高手,同样是1232的片子后缀名不同区别在哪里呢?比如  MSP430F1232IDW 与 MSP430F1232IPW 有什么区别?…

查看全部问答>

FPGA IO 电平标准 不同时,FPGA IO 的差别

1,FPGA IO 电平标准选择不同时,IO内部的区别是什么?比如设置成3.3V的IO和1.8的IO,FPGA内部的不同是什么?, 2,FPGA内部改变了什么,使FPGA IO 可以设置成不同的电平标准?3,我在配置管脚时,配置的电平的标准是3.3V;但实际的电路是1.8V的(i ...…

查看全部问答>

齐纳二极管调整器设计

齐纳二极管调整器设计 作者:Ron Mancini -- EDNIC参考很受电路设计者的欢迎,因为它们不仅精确而且飘移很小。在我今后的一些专栏文章中,将陆续讨论三种IC参考:埋入式齐纳二极管、带隙及XFET。当您用齐纳二极管进行参考设计时,由于齐纳二极管 ...…

查看全部问答>

高手进来,看看这块陶瓷天线是什么型号的。。怎么查到它。

天线是从地磁传感器上拆下来的。增益估计是比较大的,估计要4DBI左右。 我量了一下,尺寸大概是 :38*38*5 上面的标识是C1.8.0. 高手们能给点指示吗?网上搜不到这个尺寸的陶瓷天线啊。。。。 小弟很急。。。…

查看全部问答>