标题: 51单片机定义数组外部RAM int xdata a[100]的问题 [打印本页]

作者: 孙小伟    时间: 2018-11-2 08:24
标题: 51单片机定义数组外部RAM int xdata a[100]的问题
51单片机比如我定义一个数组int a[100];就会报错,改成int xdata a[100];就不会报错,51单片机不都没扩展外部RAM吗,程序可以正常运行怎么回事?

作者: yousunny    时间: 2018-11-2 08:47
“我们用的 51 系列的单片机都是带扩展
片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。片外 RAM 最大可以扩展到 0x0000~
0xFFFF 共 64K 字节。这里有一点大家要明白,片内 RAM 和片外 RAM 的地址不是连起来的,
片内是从 0x00 开始,片外也是从 0x0000 开始的。还有一点,片内和片外这两个名词来自于
早期的 51 单片机,分别指在芯片内部和芯片外部,但现在几乎所有的 51 单片机芯片内部都
是集成了片外 RAM 的,而真正的芯片外扩展则很少用到了,虽然它还叫片外 RAM,但实际
上它现在也是在单片机芯片内部的,我们的 STC89C52 就是这样。”---金沙滩工作室
作者: yousunny    时间: 2018-11-2 08:49
简答就是,时代进步了,当初的那种51和你说的那样,是没有片外的。现在内部集成“片外”
作者: xuyaqi    时间: 2018-11-2 09:07
有些改进型51片内有 xdata,比如c8051f系列。
作者: book100    时间: 2018-11-2 14:33
你用的是什么单片机?找手册看
作者: 孙小伟    时间: 2019-4-9 13:18
谢谢大家
我懂了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1