使用8237A可编程DMA控制器实验目的

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用8237A可编程DMA控制器实验目的

1、掌握8237A可编程DMA控制器和微机的接口方法。

2、学习使用8237A可编程控制器,实现数据直接快速传送的编程方法

1、实验内容

实验原理图如图5-26(见下页)所示,本实验学习使用8237A可编程DMA控制器进行RAM到RAM的数据传送方法。

实验中规定通道0为源地址,通道1为目的地址,通过设置0通道的请求寄存器产生软件请求,8237A响应这个软件请求后发出总线请求信号HRQ,图中8237HRQ直接连到8237A的HLDA上,相当于HRQ作为8237A的总线响应信号,进入DMA操作周期。

在8237A进行DMA传送时,当字节计数器减为0时,8237A的/EOP 引脚输出一个负脉冲,表示传送结束。/EOP可以作为系统的外部中断信号,通过8259A控制器使CPU 判断DMA传递是否结束。本实验中未用/EOP信号。

图中RAM 6264的地址为8000~9FFF,实验要求将RAM 6264中地址为8000~ 83FFH 的1KB数据传送到地址为9000H~93FFH的区域中去。为了验证传送的正确性,你可在源地址(8000H~83FFH)区首末几个单元填充标志字节,传送完再检查目的地址区的相应单元的标志字节是否与填入的一样。

2、实验步骤

(1)、将DMA扩展实验板按信号线的对应关系插入DVCC-8086H的Z5插座。

(2)、将DMA扩展实验板上的8237CS信号插孔和DVCC?8086H 的译码输出插孔00H-01FH相连。

(3)、打开DVCC-8086H电源,DVCC-8086H系统显示"DVCC -86H"。

(4)、运行实验程序

在系统显示"DVCC-86H"状态下,按任意键,系统显示命令提示符"-" 。

按GO键,显示器显示"1000 XX"。

输入F000 :B8C0 。

按EXEC键,显示器显示"8237-1"。

待数据传送结束,显示器显示"8237 good"。

CODE SEGMENT

ASSUME CS:CODE

DMA EQU 00H CONTPORT EQU 00DFH

DA TAPORT EQU 00DEH

DA TA1 EQU 0500H

DA TA2 EQU 0508H

START: CALL FORMA T

MOV SI,DA TA1

CALL LEDDISP

MOV AL,00 ;RAM-RAM

OUT DMA+0DH,AL

OUT DMA+0CH,AL

MOV AL,0FFH

C16: M OV BL,AL

MOV BH,AL

MOV CX,08

mov dx,DMA

C17: O UT DX,AL

PUSH AX

OUT DX,AL

NOP

NOP

NOP

IN AL,DX

MOV AH,AL

IN AL,DX

CMP BX,AX

JE C18

HLT

C18: I NC DX

LOOP C17

INC AL

JZ C16

OUT DMA+0DH,AL

OUT DMA+0CH,AL

MOV AL,01H

OUT DMA+08H,AL

PUSH AX

MOV AL,00H

OUT DMA,AL

PUSH AX

MOV AL,80H

OUT DMA,AL

MOV AL,00H

OUT DMA+2,AL

PUSH AX

MOV AL,90H

OUT DMA+2,AL

MOV AL,0FFH

OUT DMA+1,AL

PUSH AX

MOV AL,07H

OUT DMA+1,AL

MOV AL,0FFH

OUT DMA+3,AL

PUSH AX

MOV AL,07H

OUT DMA+3,AL

MOV AL,88H

OUT DMA+0BH,AL

PUSH AX

MOV AL,85H

OUT DMA+0BH,AL

PUSH AX

MOV AL,42H

OUT DMA+0BH,AL

PUSH AX

MOV AL,43H

OUT DMA+0BH,AL

PUSH AX

MOV AL,0EH

OUT DMA+0FH,AL

PUSH AX

MOV AL,04

OUT DMA+09H,AL

MOV CX,1000H

C2: LOOP C2

C19: M OV SI,DA TA2

CALL LEDDISP

JMP C19

FORMA T: MOV BX,0

MOV WORD PTR DS:[BX+DA TA1],4006H ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],4040H ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],4F07H

ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],7F5BH ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],3F5EH

ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],5C3FH ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],4F07H

ADD BX,2

MOV WORD PTR DS:[BX+DA TA1],7F5BH RET

LEDDISP:MOV AL,90H

MOV DX,CONTPORT

OUT DX,AL

MOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07H JA LED2

MOV BL,DS:[0600H]

MOV BH,0H

MOV AL,CS:[BX+SI]

MOV DX,DA TAPORT

OUT DX,AL

ADD BYTE PTR DS:[0600H],01H

JNZ LED1

LED2: RET

CODE ENDS

END START

相关文档
最新文档