📄 tad1.asm
字号:
;AEDK 状态是 O24
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
DBUF EQU 8000H ;A/D数据缓冲区
ORG 2080H
LD SP,#60H
LD DX,#DBUF
LDB CX,#16 ;采集16次
LOOP1:
LDB AL,#07H ;通道ACH7
SCALL A_D ;A/D转换
STB BH,[DX]+
STB AL,[DX]+
STB AH,[DX]+
DJNZ CX,LOOP1
SJMP $ ;等待,可在此处设断点
;输入: AL: A/D通道名
;输出: 十进制BH:百位;AL:十位;AH:个位
A_D: PUSH CX
ORB AL,#08H
LDB ADCOM,AL ;启动A/D
NOP
NOP ;延时>8个状态周期
WAIT: LDB AL,ADL
JBS AL,3,WAIT ;等待A/D转换完成
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
POP CX
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -