|
sbit PWM_OUT=P2^1;
u8 idata RGB_PWM_Write_Byte[3]=0;
//****************************祁緒電子 2020年5月***
// 定時(shí)器0初始化 晶振11059200,12T,輸出50Hz的PWM,占空比0~255
// 定時(shí)器初值為:256-(11059200÷12÷50Hz÷256) = 184 = 0xB8
//****************************祁緒電子 2020年5月***
void PWM_Init(void)
{
TMOD &= 0xF0; //配置定時(shí)器工作模式
TMOD |= 0x02; //配置定時(shí)器工作模式 8位自動(dòng)重裝模式
TL0 = 0xB8;; //定時(shí)器初值
TH0 = 0xB8; //定時(shí)器重裝初值
TR0 = 1; //啟動(dòng)定時(shí)器0
ET0=1; //允許定時(shí)器0申請(qǐng)中斷
EA=1; //中斷總閘閉合
}
//****************************祁緒電子 2020年5月***
//定時(shí)器0的CPU處理函數(shù),位置任意寫(xiě)都行
//****************************祁緒電子 2020年5月***
void PWM_Display_timer0() interrupt 1
{
static u8 pwm_t=0; //局部變量,不丟失數(shù)據(jù)
if(pwm_t<RGB_PWM_Write_Byte[0])
{
PWM_OUT=1;
}
else PWM_OUT=0;
pwm_t++;
}
一、主函數(shù)初始化 PWM_Init(void);
二、對(duì)RGB_PWM_Write_Byte[0];賦值0~255 即可調(diào)節(jié)占空比。
三、默認(rèn)PWM周期是255.如果需要調(diào)節(jié)周期,可以限制pwm_t的最大值。以及改定時(shí)器初值。
四、本代碼定時(shí)器是自動(dòng)重裝模式。 |
|