📄 0832.asm
字号:
;利用DAC0832产生阶梯波、锯齿波和方波,用示波器观察波形。
DA0832 XDATA 8000H
ORG 0000H
AJMP MAIN
;*****************************************************************************
; /*主程序*/
;*****************************************************************************
ORG 0030H
MAIN:
AJMP FB
;*****************************************************************************
; /*阶梯初始值为0,阶梯数为15,增长率为12*/
;*****************************************************************************
JTB: MOV R1,#0FFH
JTB0: MOV DPTR,#DA0832
MOV R0,#15
MOV A,#00H
JTB1: MOVX @DPTR,A
CALL DELAY1MS
ADD A,#12
DJNZ R0,JTB1
DJNZ R1,JTB0
AJMP JTB
;*****************************************************************************
; /*钜齿波最大值为35,最小值为0*/
;*****************************************************************************
JCB: MOV DPTR,#DA0832
JCB1: MOV A,#00H
JCB2: MOVX @DPTR,A
INC A
CJNE A,#35,JCB2
AJMP JCB1
;*****************************************************************************
; /*方波最大值为FF,最小值为0*/
;*****************************************************************************
FB: MOV DPTR,#DA0832
FB1: MOV A,#0
MOVX @DPTR,A
CALL DELAY2MS
MOV A,#0FFH
MOVX @DPTR,A
CALL DELAY2MS
AJMP FB1
;*****************************************************************************
; /*延时程序*/
;*****************************************************************************
DELAY1MS: MOV R1,#01H
DL0: MOV R2,#225
DJNZ R2,$
DJNZ R1,DL0
RET
DELAY2MS: CALL DELAY1MS
CALL DELAY1MS
RET
DELAY_3S: PUSH 01H
PUSH 02H
PUSH 03H
MOV R1,#10 ;延时约3秒
DELAY_3S0: MOV R2,#225
DELAY_3S1: MOV R3,#225
DELAY_3S2: NOP
NOP
DJNZ R3,DELAY_3S2
DJNZ R2,DELAY_3S1
DJNZ R1,DELAY_3S0
POP 03H
POP 02H
POP 01H
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -