下面这个系统中,8051同时扩展片外程序存储器和数据存储器,两片存储器的片选信号都接地, 即同时有效,也就是说,这两片存储器无需选择。
51同时扩展RAM和ROM
下面来分析这个问题,该系统中虽然有两片存储器,但由于两片存储器的输入,输入允许信号不同,程序存储器没有输入允许,其输出允许由8051的引脚PSEN控制,只有当程序存储器的片选信号和输出允许信号同时有效时,程序存储器的总线才挂接到CPU总线上 。否则,程序存储器的所有总线引脚都为高阻态,即相当于存储器与CPU总线断开。
数据存储器的输入允许端为WR,受控于8051的P3.6, 输出允许信号为RD,受控于8051的P3.7,数据存储器要与8051挂接的条件是片选信号有效且输入,输出允许信号中至少有一个有效,可见,在该系统中,要使两片存储器同时有效的条件是PSEN有效且WR有效或PSEN有效且RD有效。
而这两种情况都不可能出现,因为CPU的PSEN、RD、WR这三个信号在任何时候只可能有一个有效,所以尽管该系统中两片存储器的片选都接地,但它们绝对不会同时工作,也就是说不会引起存储器访问的混乱 。正是由于8051片外数据存储器和程序存储器的输入,输出允许信号分别受控于8051的不同引脚,才导致8051片外程序存储器空间和数据存储器空间独立,各自都为64K。这个系统中,8K外部数据存储器使用8051的64K片外数据存储逻辑地址,每个物理单元有8个逻辑地址,同样,8K外部程序存储器占用8051的64K外部程序存储器逻辑地址,每个物理单元也有8个逻辑地址。