多功能波形发生器

多功能波形发生器

ID:862712

大小:230.68 KB

页数:12页

时间:2017-09-21

多功能波形发生器_第1页
多功能波形发生器_第2页
多功能波形发生器_第3页
多功能波形发生器_第4页
多功能波形发生器_第5页
资源描述:

《多功能波形发生器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1.设计选题及任务设计题目:多功能波形发生器任务与要求:设计一个由单片机控制的波形发生器。运用单片机系统控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波等。信号发生器所产生的波形的频率、幅度均可调节。并可通过软件任意改变信号的波形。基本要求:1.产生方波、三角波、锯齿波、正弦波可通过开关选择2.波形幅值调范围80H~FFH,两档。周期两档3.有波形指示幅值周期档显示功能。2.系统概述及硬件简介随着科技的发展和现代科研的需要,信号发生器已经成为了很多行业进行研究测试不可或缺的工具,但目前使用波形发生器大部分体积大,可靠性差,准确度低。因此为了实验研究方便,研制一

2、种体积小、可靠性强、准确性高的波形发生器显得尤为重要。方案总体设计框图图2.1总体电路图见附录2。由于proteus单片机已默认连接复位电路、晶振电路、以及电源,所以本设计中没有这几个模块的具体电路。3.软件的实现系统软件由主程序和外部中断程序,定时器中断程序以及键值判断子程序,显示子程序子程序组成,波形的产生主要通过定时器中断来完成。波形的转换通过改变波形标志位实现。周期的改变可通过定时器的初值改变的方法来实现。幅值可通过初始值的改变而方法来实现,由LCD1602完成显示部分。具体如下所述3.1波形的产生原理将各种波形的每个周期平均分成255份,把每份的值依次发给P0

3、口,每份的时间间隔通过开启定时器0来控制,当定时时间到时单片机就产生中断,在中断服务程序里面通过P0口将每份的值发出去,这个值通过DAC0832转换为模拟量。如图3.1图3.13.2波形的产生过程3.2.1正弦波的产生过程对正弦波的一个周期进行等间隔的采样,采样次数为255次,将所采样的数值转化为8位二进制数存放在数组tosin[255]里面。然后定义一个无符号型变量b,当定时器产生一次中断,单片机就将tosin[b]值赋予P0引脚,同时变量b自加1,并且当b加到255时会自动变为0,因为无符号型变量的范围是0~255。程序如下:switch(fun){case0://

4、fun==0正弦波{P0=tosin[b];b++;}break;3.2.2三角波的产生过程定义一个无符号变量c,每当定时器定时时间到达时,如果c值大于0而小于128,c自加1,将c值赋予P0口;如果c值大于128,则用255减去c值赋予P0口;程序如下:case1://fun==1三角波{if(c<128)P0=2*c;elseP0=2*(255-c);c++;}break;给赋值结果乘以2,因为不乘2的话,锯齿波中的变量e最大可以加到255,但三角波中赋予P0口的最大值只有128,为了让输出电压幅值统一期间,我们对其乘以2。图3.33.2.3方波的产生过程方波较其它

5、波的产生原理较简单,它也是定义一个无符号字符变量d,当定时器产生一次中断则d自动加1。当d小于128时,将0xff赋予P0口;当d大于128时,将0x00赋予P0口;程序如下:case2://fun==2方波{d++;if(d<=128)P0=0x00;elseP0=0xff;}break;图图3.43.2.4锯齿波的产生过程锯齿波的产生是定义一个变量e,每当定时器中断一次,则把n值赋予P0口。同时n自加1。在此处当e加到255时则会自动溢出变为0。程序如下:case3://fun==3锯齿波{if(n<255){P0=n;}n++;}break;图3.53.3波形的选

6、择及调频调幅的实现波形的选择及调频调幅通过P1口按键选择来实现,具体如下所述3.3.1波形的选择在本方案中,我们通过1#按键进行波形选择。具体方法是定义一个变量fun,当1#按键按下一次时,其就自动加1。其不同的数值代表不同的波形。具体如下:fun==0代表正弦波fun==1代表三角波fun==2代表方波fun==3代表锯齿波3.3.2调幅功能的实现本方案对波形的幅值可以调节为5V、4V、3V、2V、1V;在这里我们定义一个变量“chu”,并且将赋予P0端口的值5等分,也就是把那个值先除以5,再乘以变量“chu”,所以在这里只要改变变量“chu"的值就可以改变输出波形的

7、幅值。在方案中是通过2#按键改变变量的。voidkey2(void)//选择幅值{chu++;if(chu==11)chu=0x01;}具体的调压方式以正弦波说明如下:case0://fun==0正弦波{P0=tosin[b]/5*chu;b++;}break;也就是说,调压功能把将要赋给P0口的值除以5乘以“chu”即可实现。3.3.3调频功能的实现由于波形的输出时通过将一个周期的完整波形平均分成255份,每等份的时间是由定时器0初值来确定的。故在这里改变定时器0的初值就可以改变输出波形的频率。本方案是通过3#按键来调频的,定义一个变量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。