【存储器扩展实验】—— 微机原理实验

一、实验要求

  1. 使用两片62256扩充RAM空间为00000H-0FFFFH

分析如下:
62256共有15根地址线 A0~A14,存储大小为32KB。8条双向数据线 D0~D7,共8bit。CE非为片选信号引线。WE非为写允许信号,当其值为 0 时,允许将数据写入芯片。OE非为输出允许信号,当其值为 0 时,允许该芯片将某单元的数据送到芯片外部的 D0~D7 上。芯片引脚图如下:
在这里插入图片描述

  1. 编制程序,将字符1~8循环写入00000H-00FFFH中,将9写入01000H-02FFFH中。将01000H-02FFFH中的内容搬移到04000H-05FFFH中。

原理分析:

  • 8086CPU数据地址线不能直接和外部芯片进行传送数据,故添加锁存器。
  • 由于62256为32KB×8bit,而8086CPU共有16位数据线,故利用两个62256芯片进行位扩充,变成64KB×16bit。
  • 位扩充功能由 BHE 和 A0 共同完成,偶地址的数据内容存放在一个芯片,奇地址的数据内容存放在另一个芯片。
  • 10000H-1FFFFH高四位地址线 A19-A16 参与译码电路,要求其为0001时选中两个62256芯片中的一个。
    在这里插入图片描述

锁存器:

  • 74LS273 和 74LS373 均为地址锁存器。在最小模式下,8086CPU的20条地址线和1条 BHE 信号线用三片 74LS373 或 74LS273 锁存器形成,从而形成地址总线信号。
  • 双向数据总线用2片 74LS245 形成。利用最小模式下8086CPU提供的 DEN 和 DT/R 分别控制2片 74LS245 的允许端和方向控制端,从而实现16位的双向数据总线 D0-D15。
    在这里插入图片描述

二、实验目的

  1. 学习PROTEUS EDA仿真工具的使用方法;
  2. 学习8086最小系统中系统总线的形成方法;
  3. 掌握内存扩充方法和外围接口方法,正确设计译码电路,按照要求的地址实现存储器芯片的连接。

三、实验电路

在这里插入图片描述

四、实验代码及实验结果

(1)实验代码:

CODE SEGMENT
    ASSUME CS:CODE
START:
    MOV AX,1000H
    MOV DS,AX ;设置数据段地址
    MOV AL,1
    MOV BX,0000H
    MOV CX,1000H ;循环次数
    MOV [BX],AL
    JMP M1 
    ;1~8循环写入10000H-10FFFH
ZERO:
    MOV AL,1	
M1:
	MOV [BX],AL  
	INC BX
    INC AL
    CMP AL,8
    JA ZERO
    LOOP M1   ;循环次数CX的值
    ;将9写入11000H-12FFFH
    MOV AL,09H
    MOV CX,2000H   
    MOV BX,1000H ;偏移地址1000H
M2: 
    MOV [BX],AL
    INC BX
    LOOP M2    
    ;将11000H-12FFFH内容移到14000H-15FFFH
    MOV BX,1000H
    MOV CX,2000H
TRANS:
    MOV AL,[BX] ;读入
    ADD BX,3000H
    MOV [BX],AL
    SUB BX,3000H   
    INC BX
    LOOP TRANS 
    HLT
CODE ENDS
    END START

(2)实验结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、实验总结

通过本次实验,我对硬件电路设计有了初步了解,熟悉了Proteus的基本使用方法,掌握了如何将汇编程序载入到处理器中,从而完成了相应的功能。

猜你喜欢

转载自blog.csdn.net/m0_51913750/article/details/130127270