|
void Pwm_tm0_isr() interrupt 1
{TH0 = Pca_Sys_Clock / 256; //Timer0 Load
TL0 = Pca_Sys_Clock % 256;
}
void Pwm_Init() //PWM初始化函數(shù),初始占空比為0
{
AUXR = 0x80; // 定時器T0速度是8051單片機定時器速度的12倍,即不分頻
TMOD = 0x01; // T0 16位定時器/計數(shù)器 0000 0001
TH0 = Pca_Sys_Clock / 256; //Timer0 Load
TL0 = Pca_Sys_Clock % 256;
TF0 = 0; //清除TF0標志
ET0 = 1; //Timer0 Interrupt Enable
CMOD=0x04; //0000 0100 空閑時不計數(shù),不產(chǎn)生中斷,時鐘源為定時器T0
CCAPM1=0x42; //0100 0010,比較模式 PWM P3.5
CL=0x00; //PCA計數(shù)器清零
CH=0x00;
CCAP1L = 256-(256*50/100);
CCAP1H = 256-(256*50/100); //占空比為50
CR = 1; //開啟PCA計數(shù)器
TR0 = 1; //Timer0 Run
EA = 1; //打開總中斷
}
|
|