单片机程序存储器的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:25:19
当EA-=0时优先访问外部存储器,那为什么还从0000H开始,0000H不是片内存储器地址吗,片外地址不是从2000H-FFFFH吗?

0000H-1FFFH,有两块,一块在片内,一块在片外。
/EA=0,使用片内的;
/EA=1,使用片外的;
超过1FFFH,无论/EA如何,都使用片外的2000H-FFFFH。

对于51单片机内核来说,无论片内还是片外,它的第一条指令都是从0000H这个地址开始的。

当EA=0的时候,单片机使用片外ROM存储器(此时不会使用片内的ROM),所以地址还是从0开始的

对于片外的RAM 51单片机是根据指令的不同来区分片内与片外存储器。
如 MOV A,0X20 这里的0x20是片内的
MOVX A,0X20 这里就是对片外的0X20进行RAM的寻址

主流的单片机80%以上都是从0地址开始运行第一条指令的。

http://designerlife.cn

对于51单片机来说,无论片内还是片外,它的第一条指令都是从0000H这个地址开始取指令的。
而且对于程存储器,片内片外地址都是从0000H开始的啊,谁告诉你片外地址从2000H开始的,找本书看一下存储器映像图。当EA=1的时候,单片机是从片内存储器的0000H取第一条指令,当EA=0时,单片机从片外0000H单元取第一条指令,所以如果你把程序烧到片内了,那么你要把EA置成高电平。如果你把程序烧到片外了,那么你要把EA置成低电平。当然你也可以反过来,把EA置成低电平,把程序烧到片内,这时单片机还会到外存里面0000H单元取第一条指令,只不过取不过造成死同罢了,不知你明白没。不过我说的是51单片机哦

EA=0全部设为片外,还是从0000h开始的