sbitkey,=P,,//增减切换键sbitkey,=P,,//个位,十位,百位,千位的控制切换sbitkey,=P,,//调整位sbitkey,=P,,//波形选择正弦、三角、矩形波,锯齿波unsignedchari,j;unsignedintcounter,step,flag;typedefunsignedintuint;//定时器。正弦波和三角波想频率变大一倍,就把I 变I=I ,方波把delay(;变delay(;如果要缩小,正弦波和三角波加delay(),方波时间延长就行。当然,你现在正弦波和三角波频率已经很大了,再大肯定波形要有损失,不那么完美了。方波可以随便改。
基于,片机的信号发生器-完整电路、程序http://wenku.baidu.com/view/effec,,a,,,,html免费的。可以产生弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率(最大,Z)和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。例如想做一个,Hz的方波发生器,那么,片机的最高主频是,Hz,然而真正输出的最高只能达到,之一,那就是,Hz,勉勉强强算是可以如果超过,Hz的波形,单片机是达不到效果了,只能选择其它单片机下面是本人曾经利用单片机做的PMW信号发生器程序。
片机硬件有PCA模块的,或者是PWM发生器的型号,也有没有的,你采用的芯片有没有这些硬件?正弦波:如果有,以PCA模块为例,可以作为DA使用,使用前根据datasheet配置好PCA。在,文件中有math.h,里面有sin(X)函数,可以在程序中直接使用,使用前在主函数重要包含math.H这个文件。产生的方波频率只有,HZ,如果提高晶振频率,勉强可以产生,HZ的方波,但这是牺牲了单片机的其它工作时间为代价的,并且方波的占空比只能是,,当然有更高速度的单片机可以实现,但成本确实太大了.,因此不提倡用这种方法,即便用定时器实现。
建议采用多波形发生器专用集成电路ICL,它可以同时输出你要的各种波形。该IC可以双电源工作。并且调频方便。电路见图。显示频率,幅度可调,可产生四种波形,正弦波,方波,锯齿波,三角波,希望你能喜欢,给你发了一张效果图,喜欢的话别忘了采纳我的回答啊includedefineucharunsignedchardefineuintunsignedintdefineDAdataP,/DA数据端口sbitDA_S,P,,//控制DAC,。
暂无评论内容