当EA电平为1时,S52单片机可以扩展的外部程序存储器的最大容量为什么是56KB?

当EA电平为1时,S52单片机可以扩展的外部程序存储器的最大容量为什么是56KB?,第1张

因为S52片内已经有2000h也就是8kB的程序存储器,而程序寻址空间只有64kB,所以外扩程序存储器再大也只能用到56kB。

不过,借助分页技术,51单片机能很容易地实现超过64kB的程序空间,例如Keil默认支持的分页就能实现最大 64 kB × 256 Pages = 16 MB 的外部程序存储器。

答:在设计片外程序存储器之前,首先要决定EA引脚的电平。

EA=0,单片机只访问外部程序存储器,对于8031单片机此引脚必须接地.EA=1,单片机访问内部程序存储器,对于内部有程序存储器的8XX51单片机,此引脚应接高电平,但若地址值超过4KB范围,单片机将自动访问外部程序存储器。

设定好EA后,单片机自动按程序所设定的次序执行。

在编程中不需要专门的语句指定调用的是外部程序存储器。比如设定EA接高电平,则程序在执行完片内的程序存储器指令后自动转入片外程序存储器,而无需特殊命令。这就是所谓的程序存储器是片内外统一编址,而数据存储器则用Mov和Movx分别对待的。

但楼主要知道程序在读取片外指令代码时的过程:先寻址,再取数。单片机会根据PC的值先给P2和p0送一个选通地址(PC的值),接下来从片外程序存储器读取代码。因为PC的值一般是连续的,这就要求片外的程序存储器空间要连续分布,这和数据存储器不同。如果不连续分布,就要用特殊的行号改变PC的值,使它和片外程序存储器分布能够对应。

单片机的系统扩展主要有程序存储器(ROM)扩展,数据存储器(RAM)扩展以及I/O口的扩展。

外扩的程序存储器与单片机内部的程序存储器统一编址,采用相同的指令,常用芯片有EPROM和EEPROM,扩展时P0口分时地作为数据线和低位地址线,需要锁存器芯片,控制线主要有ALE、。

扩展的数据存储器RAM和单片机内部RAM在逻辑上是分开的,二者分别编址,使用不同的数据传送指令。常用的芯片有SRAM和DRAM以及锁存器芯片,控制线主要采用ALE、、。

常用的可编程I/O芯片有8255和8155。用8255扩展并行I/O口时需要锁存器,8155则不用。对扩展I/O口的寻址采用与外部RAM相同的指令,因此在设计电路时要注意合理分配地址。8255和8155的工作方式是通过对命令控制字的编程来实现的,在使用时首先要有初始化程序。

MCS-51单片机有很强的扩展功能,外围扩展电路、扩展芯片和扩展方法都非常典型、规范。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11092922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存