51的存储器从功能上来说可以分为程序存储器和数据存储器,至于到底能扩展多少存储空间,要看你扩展的是哪一类存储器。
访问存储空间时,需要用到两个指针变量,为DPTR何PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K 。但是,如果你实际扩展过存储器,你就可以发现程序存储器的扩展能力并没有64K!!!
这是为什么呢????
这得从51单片机的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然小于64K啦。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K
一楼给出的是MCS-51单片机_全部所有的_存储空间的大小,是正确的。
要是讨论“可扩展”的地址空间,则有两个方面:
程序存储器“可扩展”的地址空间:64KB 减去 片内已有的;
数据存储器“可扩展”的地址空间:64KB。
(1)对于8051单片机来说,由于片内无ROM,只能外部扩展程序存储器,求地址范围是0000H~FFFFH;即64KB。
(2)8051单片机片外数据存储器空间为64KB,地址为0000H~FFFFH;片内存储器空间为256B,地址00H~FFH。
都是64Kb,楼上误认啊,8051有rom的8031没有