DIRECT MEMORY ACCESS UNIT
10-26
Example 10-2. Timed DMA Transfers
$mod186
name
DMA_EXAMPLE_1
; This example sets up the DMA Unit to perform a transfer from memory to
; I/O space every 22 uS. The data is sent to an A/D converter.
; It is assumed that the constants for PCB register addresses are
; defined elsewhere with EQUates.
CODE_SEG
SEGMENT
ASSUME CS:CODE_SEG
START:
MOV
AX, DATA_SEG
; DATA SEGMENT POINTER
MOV
DS, AX
ASSUME DS:DATA_SEG
; First, set up the pointers. The source is in memory.
MOV
AX, SEG WAVEFORM_DATA
ROL
AX, 4
; GET HIGH 4 BITS
MOV
BX, AX
; SAVE ROTATED VALUE
AND
AX, 0FFF0H
; GET SHIFTED LOW 4 NIBBLES
ADD
AX, OFFSET WAVEFORM_DATA
; NOW LOW BYTES OF POINTER ARE IN AX.
ADC
BX, 0
; ADD IN THE CARRY
; TO THE HIGH NIBBLE
AND
BX, 000FH
; GET JUST THE HIGH NIBBLE
MOV
DX, D0SRCL
OUT
DX, AX
; AX=LOW 4 BYTES
MOV
DX, D0SRCH
MOV
AX, BX
; GET HIGH NIBBLE
OUT
DX, AX
MOV
AX, DA_CNVTR
; I/O ADDRESS OF D/A
MOV
DX, D0DSTL
OUT
DX, AX
MOV
DX, D0DSTH
XOR
AX, AX
; CLEAR HIGH NIBBLE
OUT
DX, AX
; THE POINTER ADDRESSES HAVE BEEN SET UP. NOW WE SET UP THE TRANSFER COUNT.
MOV
AX, 255
; 8-BIT D/A, SO WE SEND 256 BYTES
MOV
DX, D0TC
; TO GET A FULL SCALE
OUT
DX, AX
; PROGRAM IDRQ MUX
MOV
DX, DMAPRI
MOV
AX, 00H
; TIMER2 IS IDRQ SOURCE
; MODULES HAVE EQUAL PRIORITY
OUT
DX, AX
Содержание 80C186XL
Страница 1: ...80C186XL 80C188XL Microprocessor User s Manual...
Страница 2: ...80C186XL 80C188XL Microprocessor User s Manual 1995...
Страница 18: ...1 Introduction...
Страница 19: ......
Страница 27: ......
Страница 28: ...2 Overview of the 80C186 Family Architecture...
Страница 29: ......
Страница 79: ......
Страница 80: ...3 Bus Interface Unit...
Страница 81: ......
Страница 127: ......
Страница 128: ...4 Peripheral Control Block...
Страница 129: ......
Страница 137: ......
Страница 138: ...5 ClockGenerationand Power Management...
Страница 139: ......
Страница 154: ...6 Chip Select Unit...
Страница 155: ......
Страница 178: ...7 Refresh Control Unit...
Страница 179: ......
Страница 193: ......
Страница 194: ...8 Interrupt Control Unit...
Страница 195: ......
Страница 227: ......
Страница 228: ...9 Timer Counter Unit...
Страница 229: ......
Страница 253: ......
Страница 254: ...10 Direct Memory Access Unit...
Страница 255: ......
Страница 283: ......
Страница 284: ...11 Math Coprocessing...
Страница 285: ......
Страница 302: ...12 ONCE Mode...
Страница 303: ......
Страница 306: ...A 80C186 Instruction Set Additions and Extensions...
Страница 307: ......
Страница 318: ...B Input Synchronization...
Страница 319: ......
Страница 322: ...C Instruction Set Descriptions...
Страница 323: ......
Страница 371: ......
Страница 372: ...D Instruction Set Opcodes and Clock Cycles...
Страница 373: ......
Страница 396: ...Index...
Страница 397: ......