
1、如果单片机自带存储器(FLASH、EEPROM、EPROM、ROM),那么应用程序一般存放在内部程序存储器中,如果内部存储器不够,可以扩展程序存储器来存储其余部分;也可以讲程序全部存放在扩展存储器中。
2、如果单片机不带存储器,那么应用程序只能存放在扩展程序存储器中。
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
扩展资料:
MCS-51系列单片机程序存储器分为系统使用区和用户使用区。其中0000H~002AH为系统使用区,其余为用户使用区。系统使用区固定6个地址为特定程序的入口地址,如下:
ROM地址 功能分配
0000H 系统复位后的入口
0003H 外部中断0服务入口
000BH 定时器/计数器0中断服务程序入口
0013H 外部中断1服务程序入口
001BH 定时器/计数器1中断服务程序入口
0023H 串口中断服务程序入口
数据存储区也称为随机存取存储器(RAM),MCS-51单片机的数据存储器分为两个地址空间:内部数据存储器、外部数据存储器。
内部数据存储器共有256B存储空间,但只有低128B(地址为00H~7FH)是真正的数据存储空间,可供用户进行读或写 *** 作,高128B(地址为80H~FFH)是单片机的特殊功能寄存器区(SFR)。
51单片机内部存储器范围是:
1、8751,89X51,一般是EPROM,EEPROM:4K,0000H~0FFFH
2、8031,没有内部程序存储器,必须靠外部扩展。
3、8XX52,一般是EPROM或EEPROM:8K,0000H~1FFFH
4、其他,从4K~64K不等,比如Winbond77E58,64K,0000H~FFFFH,比如STC12C5A60S2,60K,0000H~EFFFH
51 单片机的存储器,是“哈佛结构”。
程序存储存器和外部数据存储器,是各自独立的。
这就绝对不会出现重叠的现象。
而 80x86 CPU 所管理的,只有一个存储器。
代码(程序)段、数据段、堆栈段以及附加段,都是在这一个存储器里面。
这四个段,可以互相分离,也可以部分重叠,甚至完全重合。
所以,只有 80x86 计算机,才有重叠的可能。
而 51 单片机,并不存在这种现象。
程序存储器是用来存放程序的。可以采用内部程序存储器,也可以采用外部程序存储器。
内部数据存储器是用来放数据的,一般常用的并且不需断电保存的数据都尽可能地放在内部数据存储器。内部数据存储器一般容量较小。
外部数据存储器也是用来存放数据的,有可以是并口的或者是I2C口等接口的,用于存储较大容量的数据。
51的存储器从功能上来说可以分为程序存储器和数据存储器,至于到底能扩展多少存储空间,要看你扩展的是哪一类存储器。
访问存储空间时,需要用到两个指针变量,为DPTR何PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K
。但是,如果你实际扩展过存储器,你就可以发现程序存储器的扩展能力并没有64K!!!
这是为什么呢????
这得从51单片机的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然小于64K啦。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K
以上就是关于msc-51系列单片机的应用程序一般存放在什么中全部的内容,包括:msc-51系列单片机的应用程序一般存放在什么中、、MCS 51单片机的存储器从物理结构上和逻辑上分别可划分几个空间、51单片机内部程序存储地址范围等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)