當前位置:編程學習大全網 - 編程軟體 - 求用單片機設計的PWM波形發生器(C語言寫的)

求用單片機設計的PWM波形發生器(C語言寫的)

我這裏有個PWM調光程序不知道對妳有沒有用

#include <reg52.h>

sbit LED = P1^2;

unsigned char CYCLE; //定義周期 該數字X基準定時時間 如果是10 則周期是10 x 0.1ms

unsigned char PWM_ON ;//定義高電平時間

void delay(unsigned int cnt)

{

while(--cnt);

}

main()

{

bit Flag;

TMOD |=0x01;//定時器設置 0.1ms in 12M crystal

TH0=(65536-100)/256;

TL0=(65536-100)%256;//定時0.1mS

IE= 0x82; //打開中斷

TR0=1;

CYCLE = 10;// 時間可以調整 這個是10調整 8位PWM就是256步

while(!Flag)

{

delay(20000); //延時時間,從壹個亮度到下壹個亮度的間隔時間,速度快就能看到連續效果

PWM_ON++; //這個使用較長延時,以便能看清楚變化過程

if(PWM_ON == CYCLE)

{ //這個裏可以添加其他程序 如到最亮時候控制設備

Flag=1;

}

}

while(Flag) //亮度遞減 同上,是個相反的過程

{

delay(20000);

PWM_ON--;

if(PWM_ON == 0)

{

Flag=0;

}

}

}

/********************************/

/* 定時中斷 */

/********************************/

void tim(void) interrupt 1 using 1

{

static unsigned char count; //

TH0=(65536-100)/256;

TL0=(65536-100)%256;//定時0.1mS

if (count==PWM_ON)

{

LED = 1; //燈滅

}

count++;

if(count == CYCLE)

{

count=0;

if(PWM_ON!=0) //如果左右時間是0 保持原來狀態

LED = 0;//燈亮

}

}

  • 上一篇:9d鯨魚音效是什麽意思
  • 下一篇:如何設置android studio
  • copyright 2024編程學習大全網