用89C52单片机做信号发生器,keil51编程从100hz到200hz的正弦波,大虾们帮忙啊

如题所述

正弦波,挺难得嘞。可以试一试查表的方式,表格上列0~2∏,32等分的值。最大是5V,最小是0V;取近似值。这就是正弦波的幅值。
频率用定时器来做吧,100HZ到200HZ就是从5ms~10ms的变化。试试看,用汇编写程序也比较简单。追问

频率是用定时器来做,但是做出来的波形是阶梯型的,有什么办法改变?还有能不能做到改变两个频率只是相差1hz,就是调节精度达到1hz

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-18
方法主要有三种,建议根据需要选择
1.根据正弦波形特性,每隔一段时间进行采点,越密集精度越高,对相应幅值进行编码,最终得到一个编码表,然后,选择I/O口进行输出,但精度不高。
2.推荐采用专用的函数信号发生器芯片,如MAX038,用单片机进行控制,精度高电路还简单
3.或者就先输出方波,后进行积分电路,变为三角波,后用三角波转正弦波的电路,或者再次积分,得到近似为正弦波的波。但波形容易失真。追问

用的是第一种方法,但是做出来的波形是阶梯型的,有什么办法改变?还有能不能做到改变两个频率只是相差1hz,就是调节精度达到1hz

第2个回答  2011-08-19
你若是用高频的示波器看波形肯定是梯形的啊。相当于把波形横向拉长了。
相似回答