📄 tad2.asm
字号:
AX EQU 20H
AL EQU 20H
AH EQU 21H
BX EQU 22H
BL EQU 22H
BH EQU 23H
CX EQU 24H
DX EQU 26H
ADL EQU 02H
SIGN EQU 30H
DBUF EQU 8100H ;A/D数据缓冲区
ORG 2002H
DW AD_INT ;A/D中断向量地址
ORG 2080H
LD SP,#00C0H
DI ;关中断
CLRB INTPEN ;清中断挂号寄存器
LDB INTMAS,#02H ;允许A/D中断
EI ;开中断
LD DX,#DBUF
LDB CX,#16
LDB SIGN,#00H ;A/D转换完成标志
LOOP1:
LDB AL,#0FH
LDB ADCOM,AL ;启动A/D
WAIT1: CMPB SIGN,#0FFH ;转换完毕标志
JNE WAIT1
LDB SIGN,#00H ;清标志
STB BH,[DX]+ ;保存数据
STB AL,[DX]+
STB AH,[DX]+
DJNZ CX,LOOP1 ;转换完16次
SJMP $ ;等待,可在此处设断点
AD_INT:
DI ;关中断
PUSH CX
LDB AL,ADL
ANDB AL,#0C0H
LDB AH,ADH ;读A/D转换结果
SHR AX,#06H ;把结果转换成十进制数
LD BX,#500 ;单位是0.01V
MUL AX,BX
LD CX,#1023
DIV AX,CX
LDB BL,#100
DIVB AX,BL
LDB BH,AL
LDB AL,AH
CLRB AH
LDB BL,#10
DIVB AX,BL
LDB SIGN,#0FFH ;置转换完标志
POP CX
EI ;开中断
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -