您的位置 首页 IC

51单片机ROM与RAM

众所周知,51内部的存储器分为数据存储器RAM和程序存储器ROM。以AT89c51为例,其中有128字节随机存储器(又称数据储存器RAM)和4K字节的只…

众所周知,51内部的存储器分为数据存储器RAM程序存储器ROM。以AT89c51为例,其中有128字节随机存储器(又称数据储存器RAM)和4K字节的只读存储器(又称程序存储器ROM)。

先说说这个4K字节的程序存储器或许说只读存储器,咱们写的程序通过编译器编译成机器码都是存在这个区域,所以称为程序存储器;但单片机上电碑文的时分,此区域内的数据只能读取而不能写入,他的只读存储器的称号从这而来。89c51的ROM选用的是FPEROM(Flash Programmable and Erasable Read Only Memory),详细工艺我也不太清楚,声称能够擦写1000次,也便是说你每天写30次,一个多月就报废了。
在说说128字节的随机存储器或许说数据存储器,程序运转过程中,一些中心变量存储在这个当地,也能从这个当地获取需求运算的值,所以称之为随机存储器,也称为数据存储器。个人觉得相当于计算机的内存,掉电丢掉。
看看MSC-51指令就知道,一切的数据移动指令都是对RAM区操作的,便是我们无法改动ROM。
51内部的存储器在物理上可分为4个区域:片内ROM,片外ROM,片内RAM和片外RAM。从逻辑上可分为三个区域,64KB片表里一致编址的程序存储器(ROM),128字节或256字节的片内数据存储器(RAM),64KB片外数据存储器(RAM)。
对应的keil编译器要害字为:
data:片内数据存储器(RAM)低128字节(51系列片内只要128字节,52系列有256字节)
bdata:可位寻址的片内RAM
以上两种类型能够快速的存取数据,常用来放临时性的传递变量或运用频率较高的变量。
idata :片内数据存储器(RAM)256字节
xdata:片外数据存储器64KB
pdata:片外数据存储器低256字节
code:64KB程序存储器(假如变量界说在这个空间,后边就不能修改了,假如有查办改动它的值,编译器就会报错。)

此外,C51还有三种存储形式(这是在开发环境晒干设置的):SMALL, COMPACT, LARGE

SMALL形式下,假如不做特别阐明,参数及局部变量默以为data型,放在片内RAM128字节内,拜访敏捷。我们内部的RAM有限,假如变量过多,会导致频频的运用寄存器,而使代码变的冗长。此刻栈也在片内的RAM,栈长很要害,我们栈长依赖于不同函数的嵌套层数。

COMPACT:不做特别阐明,参数及局部变量默以为pdata,栈空间在内部RAM。

LARGE:参数及局部变量默以为xdata,运用DPTR来寻址。拜访功率低,此外这种数据指针不能对称操作。

全局变量会依据界说的类型或许存储的形式分配在相应的存储区内,有固定的地址,假如全局变量过多则会导致占用太多内存,处理速度变慢。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/265622.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部