该题答案选择 **D**,是因为在 80C51 单片机的体系结构中,区分片外程序存储器(Program Memory)和片外数据存储器(Data Memory)的最可靠方法是查看它们连接的**控制信号**,特别是涉及到数据写入的信号。 以下是详细的分析: ### 1. 80C51 的存储器访问机制 80C51 采用哈佛结构,程序存储器和数据存储器在物理上是分离的。即使它们的地址空间可能重叠(都可扩展到 64KB),CPU 也会通过**不同的指令**和**不同的控制信号**来区分访问的是哪种存储器。 ### 2. 各控制信号的作用 单片机通过 P0 口(复用为低 8 位地址和数据线)和 P2 口(高 8 位地址线)访问外部存储器。区分访问类型主要依靠以下控制引脚: - **$\overline{\text{PSEN}}$** (Program Store Enable):**程序存储器读选通信号**。当 CPU 执行读取外部程序(如 `MOVC` 指令)时,$\overline{\text{PSEN}}$ 有效(低电平),用于选通外部 ROM/Flash 芯片。 - **$\overline{\text{RD}}$** (Read Data):**外部数据存储器读信号**。当 CPU 执行读取外部 RAM(如 `MOVX A, @DPTR`)时,$\overline{\text{RD}}$ 有效(低电平)。 - **$\overline{\text{WR}}$** (Write Data):**外部数据存储器写信号**。当 CPU 执行写入外部 RAM(如 `MOVX @DPTR, A`)时,$\overline{\text{WR}}$ 有效(低电平)。 - **ALE** (Address Latch Enable):**地址锁存控制信号**。用于通知外部锁存器(如 74LS373)锁存 P0 口在地址/数据复用阶段输出的低 8 位地址。**ALE 在访问所有片外存储器时都会产生**。 ### 3. 选项 D ($\overline{\text{WR}}$ 信号 vs ALE 信号) 的正确性 片外程序存储器(Program Memory)在运行时通常是**只读**的(通过 $\overline{\text{PSEN}}$ 信号访问)。片外数据存储器(Data Memory,即 RAM)是**可读写**的(通过 $\overline{\text{RD}}$ 和 $\overline{\text{WR}}$ 信号访问)。 选项 D 问的是看连接到 $\overline{\text{WR}}$ 信号还是连接到 **ALE** 信号: 1. **$\overline{\text{WR}}$ 信号**:只有**片外数据存储器**(RAM)才需要连接到 $\overline{\text{WR}}$ 信号,因为它需要接收写入操作。如果一个芯片的片选/写控制端连接到了 $\overline{\text{WR}}$,那么它一定是片外数据存储器。 2. **ALE 信号**:所有外部存储器(包括程序和数据)在访问时都需要使用 ALE 信号来锁存地址。因此,ALE 不具有区分性。 **结论:** 区分两者的最本质特征是是否具有**写能力**。$\overline{\text{WR}}$ 信号是写入外部数据存储器所独有的控制信号,因此,**检查芯片是否连接到 $\overline{\text{WR}}$ 信号**是区分这两种存储器的可靠方法。 虽然选项 B($\overline{\text{RD}}$ 信号连接还是 $\overline{\text{PSEN}}$ 信号连接)在硬件上也是一个正确的区分依据(程序使用 $\overline{\text{PSEN}}$,数据使用 $\overline{\text{RD}}$/$\overline{\text{WR}}$),但 $\overline{\text{WR}}$ 信号专门标识了写入功能,而写入功能是程序存储器(运行时只读)所不具备的。因此,D 选项中的 $\overline{\text{WR}}$ 信号是数据存储器独有的控制信号,用来作为区分的依据是可靠的。