求教51单片机生成spwm波形的程序

求教51单片机生成spwm波形的程序,第1张

1、用普通I/O口采用软件定时器中断可以模拟SPWM输出。"/**/"里面的内用是对程序的标注,解析。

2、/*采用6MHz晶振,在P1.0脚上输出周期为2.5s,占空吵并比为20%的脉冲信号*/

/*定时100ms,周期2.5s需25次中断,高电平0.5s需5次中断*/

#include <reg51.h>

typedef unsigned char uchar

sbit P1_0=P1^0

uchar time=0

uchar period=25

uchar high=5

void timer0() interrupt 1 using 1

{

TH0=0x3c/*定时器斗庆初值重装载*/

TL0=0xb0

time++

if(time==high) /*高电平持续时间结束,变低*/

{ P1_0=0}

else if(time==period) /*周期时间到,变高*/

{ time=0

P1_0=1

}

}

void main()

{

TMOD=0x01/*定时器0方式1*/

TH0=0x3c/*定时器装载初值*/

TL0=0xb0

EA=1/*开CPU中断*/

ET0=1/*开定时器0中断*/

TR0=1/*启动定升销迹时器0*/

while(1) /*等待中断*/

{}

}

3、说明:本程序主要采用了51单片机(具体型号STC89C52RC)的定时器,工作在方式3,来产生规定时间内的方波,制造SPWM.

SPWM是在PWM的基础上,将期望输出的正弦电压波形假想成有一组等宽不等幅的片断组合而成,然后用一组冲量对应相等的等幅不等宽(即脉冲宽度调制)脉冲将它们依次代替,从而在滤波器输出端得到期望的正弦电压波形。这样的脉冲可以由电子开关的通断控制实现。理论推导和实际的频谱分析表明:SPWM脉冲电压具有与理想正弦电压相一致的基波分量,而且最低次谐波的频率可以提高到SPWM调制频率(即开关频率,对应于每基波周期的脉冲个数)附近。因此,当开关频率足够高时,利用较小的滤波器就能将姿穗其中的谐波团汪滤除掉。此外,只需改变SPWM脉冲宽度,就可以平滑地调节输出电压的基波幅值。采用了SPWM技术的逆变器即为SPWM逆变器,它在波形质量和控制性能上相对方波型逆变器有了迹或卜巨大的进步。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12436634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存