单片机波形发生器,用汇编语言编程~!!!!!!!!!!急急急求程序~~~~汇编语言哦,小弟纠结好多天 15

六、波形发生器1.具有产生正弦波、三角波和方波三种周期性波形的功能2.通过键盘选择输出信号类型、幅值、周期等相关指标3.输出波形的频率为100Hz-20KHz4.具有显示... 六、波形发生器
1. 具有产生正弦波、三角波和方波三种周期性波形的功能
2. 通过键盘选择输出信号类型、幅值、周期等相关指标
3. 输出波形的频率为100Hz-20KHz
4. 具有显示输出波形的类型、频率和幅度的功能
扩展功能:
1. 输出频率扩展至100Hz-200KHz
2. 键盘控制产生任意波形
展开
 我来答
fyffyf00
2012-12-29 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:33.6万
展开全部

我用纯硬件做过DDS信号发生器,也就是你现在要做的这个东西-直接数字信号发生器,因为这玩意过于复杂,另外你一定懂编程,所以我只给你个方案。

  1. 方案1:纯粹用单片机产生,我建议采用查表法,使用MATLAB对正弦波采样,获得离散化的也就是数字化的正弦波,即正弦波表,这里要注意,正弦波峰值不要超过一个字节(当然如果你用的是8位单片机的话),否则,你要通过汇编语言处理的,当然一个字的话波形的幅值调节范围就很大了,另外,采样的点数要适当,以便产生漂亮的平滑漂亮的波波形;    编程查询该表,使用DPTR输出(使用P0、P2口)就可以了,这只能输出一种频率的并行数字正弦波,你可以控制相邻两次访问表的时间间隔,这样就改变了正弦波的周期或者说是频率;     幅度更容易,在每次访问到表的数值上减去你所想要的幅值步进值就可以改变幅值了。   我们要能够用示波器观察的波形,也就是模拟正弦波,现在我们有了数字的正弦波,自然得使用数模转换器,位数越高越好,那得看你的正弦波表是几位的,如果是一个字节(8位),就用8位的就够了,一个字的用16位的,当然位数越高越贵,建议你用8位的(推荐DAC0832,好像是13位的),便宜(10块左右),这样你就得到了模拟的正弦波,但是是阶梯状的,原因你自己想,加个低通滤波器,这样大功告成,你就得到了真正的正弦波(在正弦波的输出口上加个比较器就得到同频率同幅值的方波,在方波的输出口上加一个积分器就得到了三角波,这个不符合你的要求了,你要采用键控实现,我这里是硬件实现)当然,输出的信号可能比较微弱,建议你加个放大器。三角波跟正弦波的方法一样,但是方波不用这么麻烦,直接延时或者定时就可以了。其他的就是编程问题,我不在累述。

  2. 方案2:使用专门的DDS芯片,如AD9850等,用单片机控制DDS芯片,这个很简单,你查一下AD9850的使用手册就可以了,输出你要加滤波等等,手册上都有。其他的就是编程问题,我不在累述。

    这个东西工作量很大,建议找几个合适的搭档,希望能帮到你,!

    最后,我在百度文库了上传了题为《DDS信号发生器说明书》和《DDS信号发生器电路图》的文档,感兴趣看看,可能对你理解我提供的方案有帮助。

百度网友fde6a27fc
2013-01-01 · TA获得超过6432个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:3613万
展开全部
需要创建一个硬件连接:连接到DA转换器在总线上,然后检测值?的相应的波形。例如正弦波方案芯片对应的值存储在每1度。在该方案中,在一个固定的时间间隔中,采取到DA转换器的数值,所以,可以得到在DA输出端子输出的正弦波。
数值波形可以是不同的。
间隔是不同的波形周期可以是不同的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Safirst
2012-12-29 · TA获得超过976个赞
知道小有建树答主
回答量:1283
采纳率:50%
帮助的人:648万
展开全部
这个要花点时间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式