2019-07-16 06:59发布
mancook 发表于 2011-6-9 06:48 是不是编程器烧写程序的时候,也不会检查机器的ROM是不是够用? 这样的话,如果机器ROM不够,只有在运行时候 ...
最多设置5个标签!
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH)。
其中00H到1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的。
对此区域,也可以使用字节地址,来读写。
20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。
此区域,也可按照字节寻址,来读写。
30H-7FH,没有什么特 {MOD},只进行字节寻址。
80H-FFH,共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
对上述空间读写,需用MOV指令。
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB。
对片外RAM读写,需用MOVX指令。
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB。
其中0000~0FFFH,即4K,在片内,其它在片外。
(对于8031,这64K的ROM,都在片外。)
对ROM读出,需用MOVC指令。
如果你觉得RAM小,可以外接的。。
MCS-51 的标准内存结构我是了解的。
但是我手头的单片机是atmel 89C52,怀疑可能是打磨的。想实际看看片子的ram/rom到底有多少。不知道是不是有什么软件可以看。
RAM,ROM的大小一般都是128,256,2K,4K....等等,
如果你非常想知道,也是有办法的,拷一些重复的代码,直到让程序超过你的单片机空间,运行时出错了,那时就是它的实际大小.
是的,超出的会覆盖之前的,导致程序出错.
一周热门 更多>