📄 tdawave.asm
字号:
D_APORT EQU 0E000H ;0832口地址
AL EQU 20H
AH EQU 21H
BX EQU 22H
CX EQU 24H
DX EQU 26H
ORG 2080H
LD SP,#60H
;-------D_A输出产生锯齿波-------
WAVE1: LD DX,#100H
LDB AL,#00H
W1LOOP: STB AL,D_APORT ;启动D/A
LDB AH,#20H ;延时
DJNZ AH,$
INCB AL
JNC W1LOOP
DJNZ DX,W1LOOP
;-------D_A输出产生三角波-------
WAVE2: LD DX,#80H
LDB AL,#00H
W2LOOP: STB AL,D_APORT ;启动A/D
LDB AH,#20H ;延时
DJNZ AH,$
INCB AL ;三角波上升沿
INCB AL
JNC W2LOOP
LDB AL,#0FEH ;三角波最高点
W2LOOP1:STB AL,D_APORT ;启动A/D
LDB AH,#20H ;延时
DJNZ AH,$
DECB AL ;三角波下降沿
DJNZ AL,W2LOOP1
DJNZ DX,W2LOOP
;-------D_A输出产生正弦波-------
LD DX,#200H
WAVE3: LD BX,#SIN
LD CX,#40H
W3LOOP: LDB AL,[BX]+ ;读SIN表格
STB AL,D_APORT ;启动A/D
LDB AH,#80H ;延时
DJNZ AH,$
DJNZ CX,W3LOOP
DJNZ DX,WAVE3
SJMP WAVE1
;----------SIN波形数据---------
SIN: DB 80H, 8CH, 98H,0A5H,0B0H,0BCH,0C7H,0D1H
DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH
DB 0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH
DB 0D1H,0C7H,0BCH,0B0H,0A5H, 98H, 8CH, 80H
DB 7FH, 73H, 67H, 5AH, 4FH, 43H, 38H, 2EH
DB 25H, 1DH, 15H, 0FH, 09H, 05H, 02H, 00H
DB 00H, 02H, 05H, 09H, 0FH, 15H, 1DH, 25H
DB 2EH, 38H, 43H, 4FH, 5AH, 67H, 73H, 7FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -