微机原理静态存储器扩展设计

一、实验目的

1. 能够选择存储器芯片进行硬件设计。

2. 能够编制自检程序进行测试验证。

3. 培养系统设计的全局思维。

二、实验内容

按照规则字写存储器,编写实验程序,将0000H~000FH共16个数写入SRAM的从0000H起始的一段空间中,然后通过系统命令查看该存储空间,检测写入数据是否正确。

本系统采用准32位CPU,具有16位外部数据总线,即DO、D1、…、D15,地址总线为BHE#(#表示该信号低电平有效)、BLE#、A1、A2、…、A20。存储器分为奇体和假体,分别由字节允许线BHE#和BLE#选通。

存储器中,从偶地址开始存放的字称为规则字,从奇地址开始存放的字称为非规则字。处理器访问规则字只需要一个时钟周期,BHE#和BLE#同时有效,从而同时选通存储器奇体和偶体。处理器访问非规则字却需要两个时钟周期,第一个时钟周期BHE#有效,访问奇字节;第二个时钟周期BLE#有效,访问偶字节。处理器访问字节只需要一个时钟周期,视其存放单元为奇或偶,而BHE#或BLE#有效,从而选通奇体或偶体。写规则字和非规则字的简单时序图如图 1所示。

图 1 写规则字(左)和非规则字(右)简单时序图

实验单元电路图如图2所示。

图 2 SRAM单元电路图

三、实验步骤

1. 实验接线图如图所示,按图接线。

2. 编写实验程序,经编译、链接无误后装入系统。

3. 先运行程序,待程序运行停止。

4. 通过D命令查看写入存储器中的数据:

D8000:0000  回车,即可看到存储器中的数据,应为0000、0001、0002、…、000F共16个字。

四、实验程序

1、内容程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,8000H

        MOV DS,AX

AA0:    MOV SI,0000H

        MOV CX,0010H

        MOV AX,0000H

AA1:    MOV [SI],AX

        INC AX

        INC SI

        INC SI

        LOOP AA1

        MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

2、思考题1程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,9000H

        MOV DS,AX

AA0:    MOV SI,0001H

        MOV CX,0010H

        MOV AX,0000H

AA1:    MOV [SI],AX

        INC AX

        INC SI

        INC SI

        LOOP AA1

        MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

3、思考题2程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,8000H

        MOV DS,AX

AA0:    MOV SI,0000H

        MOV CX,16*1024

        MOV AL,55H

AA1:    MOV [SI],AL

        MOV BL,[SI]

        CMP BL,AL

        JNE ERROR

        INC SI

        LOOP AA1

        MOV SI,4000H

        MOV CX,16*1024

        MOV AL,0AAH

AA2:    MOV [SI],AL

        MOV BL,[SI]

        CMP BL,AL

        JNE ERROR

        INC SI

        LOOP AA2

        JMP AA3

ERROR:  MOV DX,2000H

AA3:    MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

五、实验结果

如下图3所示,查看写入存储器中的数据,可以看到存储器中的数据,为0000、0001、0002、…、000F共16个字。可见各个数被存放址单元中。

图 3 按规则字写存储器

六、思考题

1. 修改起始地址,按非规则字写存储器,观察实验结果。

程序见上四实验程序2思考题1程序。为了不覆盖第一次实验结果,我们将存储扩展空间段地址改为9000H,然后给SI寄存器赋奇地址数,MOV SI, OO01H即为非规则字写存储器。实验结果如下图4所示。可见各个数被存放在奇地址单元中。

图 4

2.修改片选线为MY1,按字节方式写存储器,分别输入55H和0AAH,编写自检程序,观察实验现象

    程序见上四实验程序3思考题2程序,通过AL写入55H和0AAH,读入数据存放BL,并将AL和BL进行比较,实验结果如下图5,图6所示。

图 5

图 6

   如图5所示,当RAM正常工作时,写入的数据与读出数据一致,DX寄存器不显示2000H,表明没有出错报警提示。

  如图6所示,当改变CPU的连线时,RAM不能正常工作,DX寄存器显示2000H,出现了出错报警提示。

七、实验心得

    通过本次静态存储器扩展设计实验,我认识了SRAM单元电路图,然后也对存储器硬件结构有了更深入的了解,包括地址线、数据线、控制线的作用及连接方式,不仅深化了对微机原理和SRAM工作原理的理解,还锻炼了硬件电路设计和调试的能力。静态存储器扩展设计不仅是一个电子设计的实际案例,更是一个系统性工程的实践,涉及到硬件设计、软件编写和综合调试的多个环节。通过面对和解决实验过程中出现的问题,积累了不少宝贵的经验。

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Φρουρ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值