51学习笔记之关键词data、bdata、idata、pdata、xdata、code的含义

最近用51单片机做个小项目,编写程序时,出现如下错误

MAIN.C(284): error C249: 'PDATA': SEGMENT TOO LARGE
MAIN.C(284): error C249: 'DATA': SEGMENT TOO LARGE

当时还不知道怎么回事,后来才发现51单片机的ram比较小,只有128b,所以要省着使用

当你定义数组不用更改时,就用uchar code XX[10]=

根据你数据的用处,你可以有以下几种选择:


data:直接寻址的片内RAM区低128B(00H~7FH)

bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问

idata:单片机间接访问的片内RAM区,允许访问全部片内RAM

pdata:Ri间接访问的片外RAM的低256B(00H~FFH)

xdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAM(0000H~FFFFH)

code:单片机的64KB程序存储区ROM

原文地址:https://www.cnblogs.com/dafang/p/3994373.html