原创 综合实例-波形发生器

2007-7-30 21:28 3961 6 11 分类: MCU/ 嵌入式

以下是本开发板的最后一个综合实例,大家还可以根据我前面讲过的内容,开发出更好的综合实例。


实验内容  DA芯片产生方波、三角波、锯齿波、正弦波<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


实验目的  掌握DA芯片使用方法,以及单片机中断的应用,提高综合以往的单项实验能力


软件程序  参考wave_generator目录中的程序。


相关点评 


前面的实验中实际已经体现了单项实验的综合,比如数字时钟,既有SPI芯片DS1302的使用,又有液晶的使用,如果你自己再加入按键功能可以任意修改时间的话,就是一个不错的课程设计了。在我们教程的最后一个实验,我们就来做一个小小的综合实验,这个实验用到前面哪些知识呢?有:单片机中断应用,按键应用,MAX7219数码管显示和DA芯片应用。我们就用一个按键来作为波形选择按钮,按一次产生一种波形。听起来是不是很有趣,平时在实验室中都用实验室中那些波形或函数发生器,觉得很新奇。其实最最核心的原理都是一样的,叫做数字频率合成(DDS)技术。当然实际做的时候很复杂,无论硬件还是软件。但是呢,我们自己不妨做一个最简易的波形发生器,来体会一下其中的乐趣。


首先呢,大家看原理图,我们把DAC0832芯片的3个重要的输出端引到了外面,外面配合运放可构成单极或是双极输出,单价可以参考相关的硬件连接。这里为了方便我们简单的在11引脚与地之间连一个电阻,如下页图所示,利用这个来产生一个压降。电阻最好是精密电阻,普通的电阻热噪声大,对波形有很大的影响。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


                    


<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />


然后,我们利用一个小软件来产生正弦波所需要的数值表格,因为正弦波不像其它波形那样有规律,当然你也可以用其他高级语言如C语言,MATLAB等来产生表格。这里的采样点为256,你可以设定更多,越多波形越好!精度就采用8位,如果位数多,波形的精度就高。


 


这里我们用S3INT0)按键控制:                          


0:不输出波形 1:方波输出2:三角波输出 3:锯齿波输出 4:正弦波输出 


按键用中断来处理,具体参见程序。                 


实验步骤和实验现象与结果


1)在DA output接线引出端的Iout1GND间串一个2K左右的精密电阻


2)插上USB电源线,观察红色LED15亮。亮,说明USB线正常。


3)下载程序,观察到串口指示灯LED11LED12闪烁。


4)按按键S3来控制波形的显示,数码管会显示波形代号


5)观察示波器波形


实验注意事项


注意:波形质量有很多因素影响,比如说如果用普通的电阻,会带来很大的电阻热噪声,所以可以采用精密电阻。而如果外搭运放电路,效果会更好。此外算法也很中要,比如正弦波我们用2568位,你可以应用更高精度的数据。


 


方波波形



 点击看大图


 


三角波波形


点击看大图



锯齿波波形



 点击看大图


正弦波波形



 点击看大图


5.24 实验总结


    至此,我们给大家设计的这23个实验就完成了。你的感觉如何呢?前面的实验如果你已经每一个都做了并且认真思考的话,可以说你对基于51内核的单片机已经有了很好的掌握,可以灵活运用我们上面的单项实验进行有机的组合,写出自己精彩的程序应用,组合的方法已经在序言中写的很详细了。大家肯定能做出来。


51 只是一个开始,光盘中给大家的一篇很有名的文章《从51初学者到电子工程师》,希望能给你一点启示。如果你将来真想吃这碗技术饭的话,非要下大功夫,单片机目前来讲不算什么高深的技术,只要懂点数字电路,入门不困难。因此要想取得大的成就,就必须多学新的东西,DSPFPGA/CPLD,ARM,SOPC…...要学的东西非常多,所以希望大家都能努力去提高自己,让自己的技术生涯变得越来越辉煌。最后送给大家一个公式:


Success=Practice+Inspire+Aggressive+Endeavor,即  成功=实践+灵感+上进心+努力


PIAE给你带来快乐与动力!祝你学习进步!

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户36540 2008-4-14 23:12

内容不错,可惜怎么没有原理图呢?

用户393569 2007-12-24 23:49

可以设定个标志变量,在中断中进行判断,设定相应的标志位,然后去执行相应的子程序来实现波形的产生。

 

用户1546124 2007-12-24 21:48

可以把程序发给我吗?我汇编课程设计要设计一个波形发生器,可是我不会用中断来实现波形的选择,想用你的程序参考一下,可以么?感激不尽!我的QQ是398198360,呵呵,不好意思,我真的写不出来!

用户393569 2007-12-20 22:56

  程序随我们的开发板程序一同发送

用户1546124 2007-12-20 11:53

请问实现它的程序在哪啊?
相关推荐阅读
用户393569 2011-10-14 10:26
ucos-ii 中断服务程序需要做的事情
用户中断服务子程序需要按以下顺序完成这些工作:保存全部CPU寄存器; (1)调用OSIntEnter或OSIntNesting直接加1; (2)执行用户代码做中断服务; (3)调用OSIntExit(...
用户393569 2011-10-14 10:17
ucos-ii 任务状态
下图是μC/OS-Ⅱ控制下的任务状态转换图。在任一给定的时刻,任务的状态一定是在这五种状态之一。   ...
用户393569 2011-01-15 09:59
与书配套-CAN学习板第六版照片
...
用户393569 2009-10-27 07:17
【转载】hxhxin网友:我的自收发实验成功了.........
 当买来CAN学习板时,看着板子精致的,说实话,都不舍得碰,怕碰坏了。更别说用板子来做实验了,简直是无从下手。因为我的专业是电力系统自动化,学的都是强电类的,对这个小板子还真的不了解。经过近一个半月的...
用户393569 2009-10-23 20:07
【推荐!】akuei2网友的CAN学习笔记分享
akuei2网友一直在我们小组很活跃,积极发表自己的一些学习经验。这几天有机会看了他在EDN博客上发表的几篇CAN的学习笔记,觉得写得非常好!还没有征得他的同意我就想转载进来,这里把连接标出来,供大家...
用户393569 2009-08-23 19:30
出差了!
今晚就要出差了,出差过程中白天不方便上网,不能看大家的发帖了.晚上有时间会尽量来EDN上转转,与大家共同学习!在这器件如果您有问题,可以发邮件给我.如果你购买了无线模块,而还没有收到程序,那么请将你付...
EE直播间
更多
我要评论
5
6
关闭 站长推荐上一条 /3 下一条