这个型号的
单片机我没用过,我主要应用dsp,在dsp里面是利用pwm模块产生的pwm,有好几种模式,相差多少度都可以设置,你有空的时候看看单片机的这一部分就行,没有pwm功能的话就利用普通定时器也是可以产生的,利用里面的比较中断控制普通io就可以PWM可以用定时器产生,相位的话,你用两个引脚,P1.0 P1.1 在一个
周期内轮换输出PWM,P1.0输出PWM则P1.1输出低电平,P1.1输出PWM则P1.0输出低电平,这里有一篇文章挺好http://wenku.baidu.com/view/61592b6c1eb91a37f1115c1e.html 思路有了,1、用普通I/O口采用软件定时器中断可以模拟SPWM输出。"/**/"里面的内用是对程序的标注,解析。 2、/*采用6MHz晶振,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号*/ /*定时100ms,周期2.5s需25次中断,高电平0.5s需5次中断*/ #include <reg51.h>typedef unsigned char ucharsbit P1_0=P1^0uchar time=0stc12c5608ad单片机有硬件PWM功能,只要在主程序里按正弦规律改变输出脉冲的占空比即可,可将正弦波分成50个时间段,每个时间段是20ms/500=400us,用定时器定时400us改变一次CCAP1L的值(该值除以256即是占空比)即可,CCAP1L的值可以在程序中用三角函数计算,也可以事先计算好存入数组中.
spwm的物理意义:采样反馈信号,可以是高速采样一个正弦周期,进行傅里叶变换,求取该周期的基波有效值。为了简化程序,也可以采用低通滤波器滤波后,进行高速采样,直接计算方均根。
正弦波逆变器,关注的是输出spwm基波的有效值,采用pid控制,应该以输出spwm的基波有效值为反馈量,有效值至少是一个周期才有意义,每个或多个正弦波周期调整一次spmw表的值即可。
等面积法
该方案实际上就是SPWM法原理的直接阐释,用同样数量的等幅而不等宽的矩形脉冲序列代替正弦波,然后计算各脉冲的宽度和间隔,并把这些数据存于微机中,通过查表的方式生成PWM信号控制开关器件的通断,以达到预期的目的。
由于此方法是以SPWM控制的基本原理为出发点,可以准确地计算出各开关器件的通断时刻,其所得的的波形很接近正弦波,但其存在计算繁琐,数据占用内存大,不能实时控制的缺点。
工作原理你可以看一下STC单片机的PCA相关章节,占空比由CCAP0L,CCAP0H,
CCAP1L,CCAP1H的值确定比如其值为255,那么占空比就为0%,其值为128,占空比就为50%,其值为0,占空比就为100%。
评论列表(0条)