怎么用汇编语言使dac0832产生三角波

 我来答
百度网友e133476
2019-06-07 · TA获得超过1081个赞
知道答主
回答量:70
采纳率:0%
帮助的人:9932
展开全部

DAC0832是8位的D/A转换集成芯片。只需要调整传送到DAC0832的数据循环先递增,后递减即可使DAC0832的输出为三角波。

电路原理图如下:

汇编语言代码如下:

注意:实际生成波形时可能需要对三角波频率进行调整,为了确保三角波的幅值和精度,可以采用添加延时来调整每个模拟数输出值持续的时间来调整三角波的频率。

扩展资料

根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。

1、单缓冲方式

单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。

2、双缓冲方式

双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。

3、直通方式

直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统。

zhxiufan
推荐于2017-09-18 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tsingheng
推荐于2017-10-11 · TA获得超过579个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:245万
展开全部
自己生成一个"完整周期"或者“半周期”的数值表,放在代码里,然后一个个输出,如
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式