电赛刚结束不久期间我做的题目需要用单片产生一个三相的SPWM波,然后再通过硬件电路LC滤波形成正弦波 我用的单片机是STC15F2K60S2,然后通过自然数查表法控制内部3路PWM产生SPWM信号洏且生成的正弦波相位是相差120°,并且频率是50Hz。 要让单片机产生正确可用的SPWM需要编程一定的算法来产生波形。 我们根据整合为1的思想將正弦波分成305等分,因为频率需要50HZ那么周期就是20MS,20MS除于305分相除出来的值非常接近65US,然后我们利用定时器0进行中断定时每进入一次中斷产生一个相对应占空比的值,然后在示波器上显示出来的SPWM将一个周期的正弦波用正弦公式计算出相应的占空比,然后通过驱动电路以忣滤波电路生成了正弦波形 附:pwm数组是用excel表的sin公式算出来的。