C语言用0832输出正弦波,[求助]关于使用DAC0832输出正弦波的汇编算法【恢复】

下面这个是网上找到的使用DAC0832输出正弦波的汇编程序,请问高手那个正弦波的表格是怎么算出来的,请多多指教,谢谢! 

ORG 000H 

MAIN: MOV R1,#00H ;取表格初值 

LOOP1:;在表格里取数送到指定地址/ 

MOV A,R1 

MOV DPTR,#SETTAB 

MOVC A,@A+DPTR 

MOV DPTR,#07FFFH 

MOVX @DPTR,A 

;/ 

INC R1 ;表格加一 

AJMP LOOP1 ;循环 

SETTAB: 

;正弦表格/ 

DB 80H,83H,86H,89H,8DH,90H,93H,96H 

DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH 

DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H 

DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H 

DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H 

DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H 

DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH 

DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH 

DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH 

DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H 

DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH 

D

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DAC是数字模拟转换器的缩写,它将数字信号转换为模拟信号。要显示正弦波形,我们可以通过编写代码,在DAC输出端口设置一系列模拟输出来实现。 首先,我们需要确定所需的正弦波的频率和幅值。假设我们希望显示频率为1kHz的幅值为V的正弦波。然后,我们需要将该频率转换为采样率,通常是DAC的输出速率的两倍。例如,如果DAC的输出速率为10kHz,则采样率为20kHz。 接下来,我们可以编写代码来生成正弦波的离散样本。一个简单的方法是使用正弦函数来计算每个样本的值。例如,在C语言中,我们可以使用math.h库中的sin函数来计算正弦波的样本值。 然后,我们需要将离散样本值转换为DAC所需的模拟输出。具体的转换方法取决于DAC的工作方式和接口。一般来说,可以通过将每个离散样本值与DAC的输出范围之间的线性关系相乘来实现。例如,如果DAC的输出范围是0V到Vref(参考电压),那么可以使用以下公式来计算模拟输出值: 模拟输出值 = (离散样本值 / 最大离散样本值) * Vref 最后,我们可以通过将计算得到的模拟输出值写入DAC的输出端口来显示正弦波形。具体的写入方法也取决于DAC的工作方式和接口。一般来说,可以使用特定的命令或函数将计算得到的模拟输出值发送给DAC。 综上所述,要显示正弦波形,我们需要确定频率和幅值,编写代码生成离散样本值,将离散样本值转换为模拟输出值,并通过DAC的接口将模拟输出值发送给DAC。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值