请大神解释一下锯齿波产生的这个程序!

请大神解释一下锯齿波产生的这个程序!,第1张

你光看程序当然是看不明白咯!咱一步一步说吧

首先0FEFH这是一个地址,如果我分析的没错的话,这个地址连接的应该是DA转换器,将数字信号转换成模拟信号的。

A是累加器,8未的单片机累加器应该最多是0FFH 也就是255,

LOOP循环里,第一个循环将#00H送到DA转换器里面(MOVX,@DPTR,A这条语句实现的,第一次循环的时候A里面的值是#00H),DA转换器将#00H这个数字信号转换成模拟信号(#00H对应的是0V,#01H对应的是5/255*1V,#02H对应的是5/255*2V以此类推)。

DA转换器实现DA转换之后,我们要给锯齿波一个时间信号来控制锯齿波的周期,靠的是MOV R0,#DATA和DJNZ R0,$这两条语句实现的,其中#DATA这个数值由你自己设置(可以在#00H和#FFH中任选),实际上的锯齿波周期就是#DATA*255*单片机的时钟。

第二个循环就送#01H给DA 第三个周期送#02H………… 一直送到#FFH。

DA转换器就根据送数据的不同输出不同的电压,最终形成锯齿波。

写的有点乱不知道你能不能看懂!

产生锯齿波10个周期的程序产生一个10个周期的锯齿波,其基波周期为50,采样率为1kHz。t是时间阵列,也就是时间轴。xmax这个参数的含义是这个锯齿波的峰值位置位于哪里,没有这个参数的话,其实默认为1,此时,峰值位于最右侧。如果设置为0,则峰值在左侧。可想而知,如果为0.5,则峰值位于中间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8064713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存