51单片机手册:RAM低128字节,响应速度最快

data:RAM低128字节,响应速度最快,采用直接寻址方式pdata:外部扩展RAM低256字节,分页寻址(一页256byte)如果这样直接创建的变量超过了128字节,则编译会报错。要在外部RAM给变量分配空间,则要使用到xdata关键字也可以把变量存储在ROM中,用code关键字。

data:RAM低128字节,响应速度最快,采用直接寻址方式

idata:RAM高128字节,采用间接寻址,速度相对较慢

bdata:片内RAM,位寻址方式

xdata:外部扩展RAM,使用DPTR访问

pdata:外部扩展RAM的低256字节,分页寻址(一页256字节)

代码:程序存储区

解释

我们先看一下某型号51单片机的手册介绍:

微控制器内部共有三种存储器:内部RAM(IRAM)、外部RAM(XRAM)和程序存储器(IROM)。 内部RAM由256字节组成,具有较高的访问性能(支持直接寻址和间接寻址)。 相比之下,外部 RAM 的大小为 1KB,但需要更长的访问周期。 程序存储器为16KB FLASH存储器,最快访问速度可达8MHz。

内部内存

内部 RAM 共有 256 字节。

低128字节可以直接寻址,并且空间被分配给RAM区域的低128字节中的变量。

int a = 0;
char b[100] = {0};

如果直接用这种方式创建的变量超过128字节,编译就会报错。

需要给一些变量添加idata关键字,并在RAM区域的高128字节中为这些变量分配空间。

idata int c = 0;
idata d[100] = {0};

外部内存

要为外部 RAM 中的变量分配空间,请使用 xdata 关键字

xdata int flag = 1;
xdata myArr[1000] = {0};

需要频繁访问的变量最好放在内部RAM中,例如定时器计数变量。

不经常访问的变量可以放在外部RAM中,例如标志位

程序存储器

程序存储器(ROM),顾名思义,存储用户程序,属于FLASH存储器。 您还可以使用 code 关键字将变量存储在 ROM 中。 一般情况下,ROM中的值都是常量,不能修改。

例如:使用Modbus CRC校验表查找方法时,有两个数组非常大且固定。 这时,可以在数组前面添加code关键字,并在ROM中为其分配空间。

因为它也是FLASH,所以可以用来做一些内存处理,比如在硬件关闭时保存一些状态或者数据。

单片机

我这里有一套郭天祥十天学会AVR和51单片机视频教程

2024-2-28 19:04:22

单片机

全部>图书工业技术中小学用书童书小说考试管理

2024-2-28 20:02:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索