51单片机 c语言 怎么实现控制波形输出的幅值

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
想用51单片机做一个波形发生器,频率幅度可调,最高频率500khz,用C语言编写。

以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变的波形发生器。http://www.eeskill.com/file/id/19068。

一搜网上一堆
方波就是用定时器控制仪个IO口翻转
三角波就是在多加一个微分电路

【1】幅值的高低控制,通常需要借助于可编程放大电路(运放)来实现。所有单片机不是用来放大的。更不是C语言解决的问题。需要去了解具体的放大电路形式及51接口电路。
【2】还有一个概念是DAC输出再经过运放输出。比如波形发生器的实现。51也没有这个模块。需要借助于外部扩展DAC来实现。
【3】51单片机一种简单的电压调节办法是输出PWM方波,通过RC电路滤波,可以得到一个可调电压(0-5V)。一种应用是这个可调电压拿来控制一个压控振荡器。

用D/A转换器生成你想要的波形,在转换时用程序控制D/A的数字量,就控制了波形幅值。

和单片机的电压一样,如果单片机是5V的输出的幅值就是5V