ZKX's LAB

单片机正弦波形发生器 用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编语言程序

2020-09-24知识9

单片机波形发生器的设计,请大家提供思路 这么做:首先根据输出波形的频率和幅值进行编码,存储在单片机的ROM里,然后以一定的时间间隔依次将这些数字量送往D/A进行转换输出,这样,只要循环送数,在D/A的双极性输出端就可以得到波形波形。采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。至于波形编码,网上资料很多,下面是硬件电路设计的描述(这个是网上找的):输出两路幅值相等相位相差90°的正弦波形作为物体偏转测量的基准波形;另一路输出测角波形,该波形相对基准波形的相位反映角偏差的方向、幅值反映角偏差量。专用波形发生器就是模拟角位移输出波形的装置,用来进行后续解调电路以及功放电路的检测。它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应弹体姿态的基准波形和测角波形。

单片机正弦波形发生器 用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编语言程序

用单片机做波形发生器,产生正弦波等非脉冲波 我不知道你说的是不是输出模型时,需要建立一个庞大的数组,挨个送给DA芯片的方式发送的。如果是可以用较为简单的数学公式可以描述的波形,可以不用数组的方法。比如半三角波,y=ax;i=1;i+;y就可以是DA的值了。也就是你只要能知道公式这事儿就好办,当然需要复杂运算的公式,建议数组,原因在于运算时,产生运算时间,运算时间有长有短,你会发现输出的波形被拉长或者两个值之间有间隔,所以大家喜欢用数组的方式描述,以查表的方法完成这件事情。但对于复杂的又不行用数组描述的可以用少部分用数组描述的方式。如y=x4次方+bx+c,你可以只将x4变为数组,每次运算时,调用进去就可以了。不知道你是不是需要自己输入设定值,产生规定的正弦波,比如 y=a*sin(wx+Q),用户自己输入数就能得到想要的波形。其实也比较简单。先有个sin的标准数组,读一个标准的sina数乘a。而w则就是标准数组中需要选择的伸缩,数学角度2π对应255,那么w对应?则可得出?255就是你的伸缩,用的时候就是i=?255;i+;图像就伸缩了。而Q就是个延迟,延迟多少?Q=2π时延迟255位,你也就可以推算该延迟多少为了。也可以写个空数组。写个算式,算一位,往数组存一位,存完了再输出,这是最好的方法。

单片机正弦波形发生器 用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编语言程序

单片机设计一个波形发生器,可产生方波、正弦波,数码管显示输出类型和频率,求c语言程序与方法? 这个很简单的,单片机+dds+数码管+按键可调,那个dds模块淘宝上面有你自己搜下,价格在30块左右,然后店家会给你dds模块的资料,里面有dds的学习,很简单的程序直接移植进来。dds就能搞定正弦波和方波了,理论上一片ad8950/51差不多能产生50m的频率波形,但是一片正规的ad8950价格在75块左右,但是你买的那个模块大概能产生400k左右的频率。再搞个积分器就可以产生三角波了。加油

单片机正弦波形发生器 用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编语言程序

#单片机复位电路#正弦波#数组#单片机#三角波

随机阅读

qrcode
访问手机版