LJMP MAIN
ORG 0030H MAIN: MOV R1,#DATA MOV DPTR,#7FF8H MOV R7,#08H LOOP: MOVX @DPTR,A SETB P1.0
WAIT: JNB P1.0,WAIT MOVX A,@DPTR MOV @R1,A INC DPTR INC R1
DJNZ R7,LOOP HERE: SJMP HERE END
6 画出DAC0832与AT89C51单片机的硬件接线图,编写产生锯齿波、梯形波、方波的程序
答:
CSEG AT 0000H ;0832梯形波(双缓冲) LJMP START CSEG AT 0100H START: CLR A LOOP: MOV R1,#0FFH MOV DPTR,#0CFA1H MOVX @DPTR,A MOV DPTR,#0CFA0H MOVX @DPTR,A INC A CJNE A,#0FFH,LOOP
ACALL DELAY ACALL DELAY
LOOP1: MOV DPTR,#0CFA1H MOVX @DPTR,A MOV DPTR,#0CFA0H MOVX @DPTR,A MOV A,R1 MOV R1,A DJNZ R1,LOOP1 NOP NOP NOP SJMP LOOP END
31
CSEG AT 0000H ;0832锯齿波(双缓冲) LJMP START CSEG AT 0100H START: CLR A LOOP: MOV DPTR,#0CFA1H MOVX @DPTR,A MOV
DPTR,#0CFA0H MOVX @DPTR,A INC A CJNE A,#0FFH,LOOP NOP NOP NOP CLR A MOV DPTR,#0CFA1H MOVX @DPTR,A MOV DPTR,#0CFA0H MOVX @DPTR,A NOP
NOP NOP
SJMP START END
CSEG AT 0000H ;0832方波(双缓冲)
LJMP START CSEG AT 0100H START: CLR A MOV DPTR,#0CFA1H MOVX @DPTR,A MOV DPTR,#0CFA0H MOVX @DPTR,A ACALL DELAY
ACALL DELAY NOP
NOP
MOV A,#0FFH MOV DPTR,#0CFA1H MOVX @DPTR,A MOV DPTR,#0CFA0H MOVX @DPTR,A ACALL DELAY
ACALL DELAY
NOP NOP SJMP START END
32