怎么用汇编语言使dac0832产生三角波
答案:2 悬赏:70 手机版
解决时间 2021-02-28 08:07
- 提问者网友:趣果有间
- 2021-02-28 03:31
怎么用汇编语言使dac0832产生三角波
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-02-28 05:07
DAC832是一个数模转换芯片,要用它产生三角波,只需要将AD转换的值从低到高,再从高到低传送给它就可以实现了,以下是具体例程:
ORG 0000H
JMP START
ORG 0030H
START:
CLR A
LOOP: ;该循环产生上升波形
MOV P1, A ;输出,D/A 转换
INC A
CALL DELAY ;延时
CJNE A,#250,LOOP
LOOP1: ;该循环产生下降波形
DEC A
MOV P1,A
JNZ LOOP1
SJMP START
DELAY: ;延时子程序
MOV R6, #2
DEL1:
MOV R7, #250
DEL2:
DJNZ R7, DEL2 ;内循环250遍
DJNZ R6, DEL1 ;外循环2遍
RET
END
ORG 0000H
JMP START
ORG 0030H
START:
CLR A
LOOP: ;该循环产生上升波形
MOV P1, A ;输出,D/A 转换
INC A
CALL DELAY ;延时
CJNE A,#250,LOOP
LOOP1: ;该循环产生下降波形
DEC A
MOV P1,A
JNZ LOOP1
SJMP START
DELAY: ;延时子程序
MOV R6, #2
DEL1:
MOV R7, #250
DEL2:
DJNZ R7, DEL2 ;内循环250遍
DJNZ R6, DEL1 ;外循环2遍
RET
END
全部回答
- 1楼网友:爱难随人意
- 2021-02-28 05:52
自己生成一个"完整周期"或者“半周期”的数值表,放在代码里,然后一个个输出,如
MOV DPTR, #8000; DAC0832端口号
AGAIN:
;前半段
MOV R1, #0FFH
MOV R0, #TAB
NEXT: MOVC A, @R0
INC R0
MOVX @DPTR, A
DJNZ R1, NEXT
;后半段
MOV R1, #0FFH
NEXT: MOVC A, @R0
DEC R0
MOVX @DPTR, A
DJNZ R1, NEXT
JMP AGAIN
TAB DB 0FFH, 0FEH,0FDH,0FCH....00H
MOV DPTR, #8000; DAC0832端口号
AGAIN:
;前半段
MOV R1, #0FFH
MOV R0, #TAB
NEXT: MOVC A, @R0
INC R0
MOVX @DPTR, A
DJNZ R1, NEXT
;后半段
MOV R1, #0FFH
NEXT: MOVC A, @R0
DEC R0
MOVX @DPTR, A
DJNZ R1, NEXT
JMP AGAIN
TAB DB 0FFH, 0FEH,0FDH,0FCH....00H
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯