程序存储器的扩展
㈠ 单片机程序存储器扩展电路问题
答:在设计片外程序存储器之前,首先要决定EA引脚的电平。
EA=0,单片机只访问外部程序存储器,对于8031单片机此引脚必须接地.EA=1,单片机访问内部程序存储器,对于内部有程序存储器的8XX51单片机,此引脚应接高电平,但若地址值超过4KB范围,单片机将自动访问外部程序存储器。
设定好EA后,单片机自动按程序所设定的次序执行。
在编程中不需要专门的语句指定调用的是外部程序存储器。比如设定EA接高电平,则程序在执行完片内的程序存储器指令后自动转入片外程序存储器,而无需特殊命令。这就是所谓的程序存储器是片内外统一编址,而数据存储器则用Mov和Movx分别对待的。
但楼主要知道程序在读取片外指令代码时的过程:先寻址,再取数。单片机会根据PC的值先给P2和p0送一个选通地址(PC的值),接下来从片外程序存储器读取代码。因为PC的值一般是连续的,这就要求片外的程序存储器空间要连续分布,这和数据存储器不同。如果不连续分布,就要用特殊的行号改变PC的值,使它和片外程序存储器分布能够对应。
㈡ 在MCS-51单片机系统中,扩展的程序存储器和数据存储器都使用16位地址线和8位数据线,为什么不发生冲突
扩展片外存储器,使用的是三总线结构,即AB、DB和CB。
楼主仅仅说出了16位地址线和8位数据线,这只是AB和DB。
另外的控制总线(CB)如下:
扩展程序存储器,使用PSEN引线,来控制对其读出;
扩展数据存储器,使用RD和WR引线,来控制对其读写。
因为控制总线不同,所以不发生冲突。
㈢ 单片机系统扩展的主要扩展
单片机的系统扩展主要有程序存储器(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单片机有很强的扩展功能,外围扩展电路、扩展芯片和扩展方法都非常典型、规范。
㈣ 在片外扩展一片2764程序存储器芯片要多少地址线
2764,它是 8K * 8 的 EPROM 芯片。
8K = 8 * 1024 = 2^3 * 2^10 = 2^13
要13条地址线。