DMA 特性及 8237 应用实验

一、实验目的:

1.掌握8237DMA控制器的工作原理。

2.了解DMA特性及8237的几种数据传输方式。

二、实验内容与要求:

1.将存储器1000H单元开始的连续10个字节的数据复制到地址0000H开始的10个单元中,实现8237的存储器到存储器传输。

2.I/O到存储器DMA传输实验。利用8237、8255和扩展存储器单元,设计一个DMA传输,将8255读并行接口数据传输到扩展存储器中。

3.存储器到I/O DMA传输实验。利用8237、8255和扩展存储器单元,设计一个DMA传输,将扩展存储器中数据传输到8255写并行接口。

三、实验步骤

1.存储器到存储器DMA传输实验

将存储器1000H单元开始的连续10个字节的数据复制到地址0000H开始的10个单元中,实现8237的存储器到存储器传输。

(1)根据实验要求,参考流程图4.10编写实验程序(例程文件名为: A82371.ASM);实验接线如图所示,按图连接实验线路。

(2)编译、链接程序无误后,将目标代码装入系统。

(3)初始化首地址中的数据,通过E8000:2000命令来改变。

(4)运行程序,待程序运行停止。

(5)通过D8000:0000命令查看DMA传输结果,是否与首地址中写入的数据相同,可反复验证。

2.I/O到存储器DMA传输实验

在实验1基础上增加8255初始化为B口输入,A口输出。B口输入数据由拨动开关模拟。修改8237初始化方式,将B口所连接开关指示的数据传输到存储器相应的数据单元中。

拨动8255的B口所连开关组,设置好一个数据。运行程序,在“Memory”的地址栏输入“8000: 0642”,回车,查看DMA传输结果,是否与前面开关所设置数据相同,可反复验证。

注:本实验中,8255使用IOY1地址空间,B口的端口地址为0642H,所以,数据传输到扩展存储器偏移为0642H地址单元。对于8237来讲,实际偏移地址为0321H。

3.存储器到I/O DMA传输实验

在实验1基础上增加8255初始化为B口输入,A口输出。A口输出数据连接到数码二极管组显示。修改8237初始化方式,将存储器相应数据单元中的数据传输到A口,由数码二极管组显示。

编写实验程序,编译、链接程序无误后,将目标代码装入系统。在“Memory”窗口中,设置地址“8000: 0640H”中的数据。运行程序,待程序运行停止。查看发光二极管组显示数据,是否与前面写入的数据相同,可反复验证。

四、电路连接 

1.存储器到存储器DMA传输实验

2.I/O到存储器DMA传输实验

存储器到I/O DMA传输实验(这两个实验电路是一样的)

五代码设计

1.关于地址

IOY0         EQU  0600H        ;IOY0起始地址

MY8237_0     EQU  IOY0+00H*2   ;通道0当前地址寄存器

MY8237_1     EQU  IOY0+01H*2   ;通道0当前字节计数寄存器

MY8237_2     EQU  IOY0+02H*2   ;通道1当前地址寄存器

MY8237_3     EQU  IOY0+03H*2   ;通道1当前字节计数寄存器

MY8237_8     EQU  IOY0+08H*2   ;写命令寄存器/读状态寄存器

MY8237_9     EQU  IOY0+09H*2   ;请求寄存器

MY8237_B     EQU  IOY0+0BH*2   ;工作方式寄存器

MY8237_D     EQU  IOY0+0DH*2   ;写总清命令/读暂存寄存器

MY8237_F     EQU  IOY0+0FH*2   ;屏蔽位寄存器

2.关于寄存器命令字

AA1:    MOV AL, 00H

        MOV DX, MY8237_0        ;写通道0当前地址寄存器

        OUT DX,AL

        MOV AL,10H

        OUT DX,AL

        MOV AL,00H 

        MOV DX, MY8237_2        ;写通道1当前地址寄存器

        OUT DX,AL

        MOV AL,00H

        OUT DX,AL

        MOV AL,0AH

        MOV DX, MY8237_1        ;写通道0当前字节计数寄存器

        OUT DX,AL

        MOV AL,00H

        OUT DX,AL

        MOV AL,0AH

        MOV DX, MY8237_3        ;写通道1当前字节计数寄存器

        OUT DX,AL

        MOV AL,00H

        OUT DX,AL

        MOV AL,88H

        MOV DX, MY8237_B        ;写通道0工作方式寄存器

        OUT DX,AL

        MOV AL,85H              ;写通道1工作方式寄存器  

        OUT DX,AL

        MOV AL,81H

        MOV DX, MY8237_8        ;写命令寄存器

        OUT DX,AL

        MOV AL,04H

        MOV DX, MY8237_9        ;写请求寄存器

        OUT DX,AL

        MOV AL,00H

        MOV DX, MY8237_F        ;写屏蔽位寄存器

        OUT DX,AL

可以和表格一一对应。

五、实验现象

1.存储器到存储器DMA传输实验

2.I/O到存储器DMA传输实验

运行前:

运行后:

3.存储器到I/O DMA传输实验

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

钻仰弥坚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值