基于MSP430单片机的电机PWM调速原理演示程序
/*
程序说明:利用定时器TA产生固定周期的方波,控制方波高电平时间即可控
制平均输出功率。这种控制方法称为PWM调制。
MSP430单片机的定时器TA可以在无需CPU干预的情况下输出2
路PWM调制波形。用其中一路(TA1)通过三极管驱动电动机。只要
写CCR1寄存器即可随时改变占空比,从而改变电机功率。这种控
制方法功率损失很小(控制元件导通/截至都不耗电),效率高。
*/
//
//
// MSP430FE425
// -----------------
// | XIN|-
// | | 32kHz
// | XOUT|-
// | |
// | P1.2/TA1|----->三极管驱动--->小马达
// | (CCR1) | _ _ _ _
// | | _| |__| |__| |__| |_
// | | 40%~100% PWM
//
#include <MSP430X42X.h>
void Sys_Init()
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
FLL_CTL0|=XCAP18PF; //配置晶振负载电容
P1DIR |= BIT2; // P1.2 output
P1SEL |= BIT2; // P1.2 TA1 otions
TACTL = TASSEL_1 + MC_1; // ACLK, up mode
CCR0 = 500; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 200; // CCR1 PWM duty cycle
}
void main( void )
{ int i;
char SpeedMode=0;
Sys_Init();
while(1)
{
for(i=0;i<4000;i++); //延迟
if(SpeedMode==0) //加速模式下
{
CCR1++; //占空比不断提高
if(CCR1>=500) SpeedMode=1; //到达100%后转为减速模式
}
if(SpeedMode==1) //减速模式下
{
CCR1--; //占空比不断降低
if(CCR1<=200) SpeedMode=0; //到达40%后转为加速模式
}
}
}
|