📄 t0809.asm
字号:
;T0809.asm
;A/D转换实验
;****************根据查看端口资源修改下列符号值*******************
IOY0 EQU 9C00H ;片选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 ;取出数据的各位
CMP AL,09H
JG A3
ADD AL,30H
JMP A4
A3: 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,4000H
D1: MOV AX,0600H
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALLY ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -