A/D 转换
txzqy123吧
全部回复
仅看楼主
level 5
蓅煋夣 楼主
;T0809.asm;A/D转换实验
;****************根据查看端口资源修改下列符号值*******************IOY0 EQU 0A000H ;片选IOY0对应的端口始地址;*****************************************************************AD0809 EQU IOY0+00H ;AD0809的端口地址
STACK1 SEGMENT STACK   DW 256 DUP(?)STACK1 ENDS
DATA SEGMENTSTR1 DB 'AD0809:IN0 $' ;定义显示的字符串DATA ENDS
CODE SEGMENTASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX
LOOP1: MOV DX,AD0809 ;启动A/D转换 OUT DX,AL CALL DALLY
MOV DX,OFFSET STR1 ;显示字符串AD0809:IN0 MOV AH,9 INT 21H
   MOV DX,AD0809 ;读出转换结果   IN AL,DX
   MOV CH,AL ;分析结果进行显示   AND AL,0F0H MOV CL,04H SHR AL,CL ;取出数据的十位 CMP AL,09H JG A1
ADD AL,30H JMP A2A1: ADD AL,37H ;对A~F的处理 A2: MOV DL,AL ;对0~9的处理    MOV AH,02H INT 21H
   MOV AL,CH    AND AL,0FH ;取出数据的个位 CMP AL,09H JG A3
ADD AL,30H JMP A4A3: ADD AL,37H ;对A~F的处理 A4: MOV DL,AL ;对0~9的处理    MOV AH,02H INT 21H
   MOV DL,0DH ;回车,置光标到行首   MOV AH,02H INT 21H
   MOV AH,1 ;判断是否有按键按下   INT 16H   JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H ;结束程序退出   INT 21H
DALLY PROC NEAR ;软件延时子程序   PUSH CX PUSH AX MOV CX,4000HD1: MOV AX,0600HD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDALLY ENDP
CODE ENDS   END START

2011年06月14日 08点06分 1
level 1
;T0809.asm
;A/D转换实验
;****************根据查看端口资源修改下列符号值*******************
IOY0          EQU    0A000H           ;片选IOY0对应的端口始地址
;*****************************************************************
AD0809        EQU    IOY0+00H        ;AD0809的端口地址
STACK1 SEGMENT STACK
         DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
STR1    DB   'AD0809:IN0   $'         ;定义显示的字符串
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
        MOV DS,AX
LOOP1: MOV DX,AD0809              ;启动A/D转换
        OUT DX,AL
        CALL DALLY
        MOV DX,OFFSET STR1         ;显示字符串AD0809:IN0
        MOV AH,9
        INT 21H
        MOV DX,AD0809              ;读出转换结果
        IN AL,DX
        MOV CH,AL                  ;分析结果进行显示
        AND AL,0F0H
        MOV CL,04H
        SHR AL,CL                  ;取出数据的十位
        CMP AL,09H
        JG A1
        ADD AL,30H                
        JMP A2
A1:        ADD AL,37H                 ;对A~F的处理
A2:     MOV DL,AL                  ;对0~9的处理
        MOV AH,02H
        INT 21H
        MOV AL,CH               
        AND AL,0FH                 ;取出数据的个位

2011年06月14日 08点06分 2
level 1
;T0809.asm
;A/D转换实验
;****************根据查看端口资源修改下列符号值*******************
IOY0          EQU    0A000H           ;片选IOY0对应的端口始地址
;*****************************************************************
AD0809        EQU    IOY0+00H        ;AD0809的端口地址
STACK1 SEGMENT STACK
         DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
STR1    DB   'AD0809:IN0   $'         ;定义显示的字符串
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
        MOV DS,AX
LOOP1: MOV DX,AD0809              ;启动A/D转换
        OUT DX,AL
        CALL DALLY
        MOV DX,OFFSET STR1         ;显示字符串AD0809:IN0
        MOV AH,9
        INT 21H
        MOV DX,AD0809              ;读出转换结果
        IN AL,DX
        MOV CH,AL                  ;分析结果进行显示
        AND AL,0F0H
        MOV CL,04H
        SHR AL,CL                  ;取出数据的十位
        CMP AL,09H
        JG A1
        ADD AL,30H                
        JMP A2
A1:        ADD AL,37H                 ;对A~F的处理
A2:     MOV DL,AL                  ;对0~9的处理
        MOV AH,02H
        INT 21H
        MOV AL,CH               
        AND AL,0FH                 ;取出数据的个位

2011年06月14日 08点06分 4
1