MCS-51单片机在物理结构上有四个存储空间:\r\n1、片内程序存储器\r\n2、片外程序存储器\r\n3、片内数据存储器\r\n4、片外数据存储器\r\n但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:\r\n1、片内外统一编址的64K的程序存储器地址空间(MOVC)\r\n2、256B的片内数据存储器的地址空间(MOV)\r\n3、以及64K片外数据存储器的地址空间(MOVX)\r\n在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。程序ROM\r\n寻址范围:0000H ~ FFFFH 容量64KB\r\nEA = 1,寻址内部ROM;EA = 0,寻址外部ROM\r\n地址长度:16位\r\n作用: 存放程序及程序运行时所需的常数\r\n数据存储器片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。其中片内数据存储器分为两部分,地址从00H—7FH单元(共128个字节)为用户数据RAM,从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
51的存储器从功能上来说可以分为程序存储器和数据存储器,至于到底能扩展多少存储空间,要看你扩展的是哪一类存储器。
访问存储空间时,需要用到两个指针变量,为DPTR何PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K
。但是,如果你实际扩展过存储器,你就可以发现程序存储器的扩展能力并没有64K!!!
这是为什么呢????
这得从51单片机的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然小于64K啦。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K
以上就是关于在AT89C51系列单片机内有几类存储器存储容量分别是多少全部的内容,包括:在AT89C51系列单片机内有几类存储器存储容量分别是多少、图中程序存储器和数据存储器扩展的存储容量是多少、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)