最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MSP430_PWM控制的呼吸灯

来源:动视网 责编:小OO 时间:2025-10-05 10:04:46
文档

MSP430_PWM控制的呼吸灯

#includeunsignedintTL=100;unsignedintTH=900;unsignedintT=1000;charIO_H=0;//PWM波高低电平标志位intTime_05ms_Cnt=0;charUP_Count=0;//占空比调整标志位,初始值为0(亮度减弱,即占空比减少)intPWM_Step=20;charKey_Pressed_Flag=0;charKey_Front=1,Key_Current=1;intKey_Det_1ms_Cnt=0;intmain(voi
推荐度:
导读#includeunsignedintTL=100;unsignedintTH=900;unsignedintT=1000;charIO_H=0;//PWM波高低电平标志位intTime_05ms_Cnt=0;charUP_Count=0;//占空比调整标志位,初始值为0(亮度减弱,即占空比减少)intPWM_Step=20;charKey_Pressed_Flag=0;charKey_Front=1,Key_Current=1;intKey_Det_1ms_Cnt=0;intmain(voi
#include

unsigned int TL=100;

unsigned int TH=900;

unsigned int T=1000;

char IO_H=0;//PWM波高低电平标志位

int Time_05ms_Cnt=0;

char UP_Count=0;//占空比调整标志位,初始值为0(亮度减弱,即占空比减少)

int PWM_Step=20;

char Key_Pressed_Flag=0;

char Key_Front=1, Key_Current=1;

int Key_Det_1ms_Cnt=0;

int main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

//配置系统时钟

DCOCTL = 0;

BCSCTL1 = CALBC1_1MHZ; // 设置 DCO为1M

DCOCTL = CALDCO_1MHZ;

//配置定时器

P1DIR |=BIT0; // P1.0为输出

P1OUT |=BIT0; //初始化为1,灯亮

IO_H=1;//PWM波高低电平标志位,初始化为1

CCTL0 = CCIE; // CCR0中断使能

CCR0 = TH; //设置定时器计数值

TACTL = TASSEL_2 + MC_1; // SMCLK为定时器时钟,向上计数模式

//使能全局中断

_BIS_SR(GIE); // 使能中断

while(1)

{

}

}

// Timer A0 interrupt service routine

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer_A (void)

{

//功能1:5ms为周期进一次占空比调整(100+900=1000=1ms)

Time_05ms_Cnt++;

if(Time_05ms_Cnt==10)//每10次(1khz/10= 10ms) 调整一次占空比

{

Time_05ms_Cnt=0;

if(UP_Count) //呼吸灯 亮度调整 标志 1--增量,0--减弱

{

TH+=PWM_Step;// 占空比调整步长,确定了呼吸灯的快慢

if(TH==900)

UP_Count=0;

}

else

{

TH-=PWM_Step;

if(TH==100)

UP_Count=1;

}

}

//功能2:PWM信号输出:控制灯的亮度强弱变化

TL=T-TH;

if(IO_H)

{ P1OUT &=~BIT0; CCR0 = TL; IO_H=0; }

else

{ P1OUT |=BIT0; CCR0 = TH; IO_H=1; }

}

文档

MSP430_PWM控制的呼吸灯

#includeunsignedintTL=100;unsignedintTH=900;unsignedintT=1000;charIO_H=0;//PWM波高低电平标志位intTime_05ms_Cnt=0;charUP_Count=0;//占空比调整标志位,初始值为0(亮度减弱,即占空比减少)intPWM_Step=20;charKey_Pressed_Flag=0;charKey_Front=1,Key_Current=1;intKey_Det_1ms_Cnt=0;intmain(voi
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top