很简单啊,单片IO输出1的时候接近电源,输出0的时候接近0V,取3个以上的IO口,假如IO全输出1的时候那么这个端口是电源电压,每个I0用不同的电阻分压,依次将IO值1,就可以得到上升的电平。依次值0就是下降的电平,输出用电容平滑下,就是正弦波了。
这是PCF8591的原理图...
不要DA是不可能的。除非你的单片机内部有DA。一般的原理就是输出的电压与数字量和参考电压成正比。
说到底还是用单片机来模拟DA转换的过程,用权电阻网络实现