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