1. 程式人生 > >STC12C5A60S2系列微控制器PCA時鐘源設定

STC12C5A60S2系列微控制器PCA時鐘源設定

在使用STC12C5A60S2系列微控制器PCA輸出PWM時需要設定PCA時鐘源,如以下程式碼

連結地址:https://blog.csdn.net/Xiaomo_haa/article/details/84189798

void PCA_Init(void)
{
	CCON = 0;				//PCA初始化
	CMOD = 0x00;			//空閒時不計數,不產生中斷,時鐘源為Sysclk/12,PWM頻率大約為4KHz
	CL = 0x00;				//PCA低8位清零
	CH = 0x00;				//PCA高8位清零
 
	CCAPM0 = 0x42;			//8位PWM模式,無中斷
	CCAP0H = 0xc0;			//PWM0佔空比(調節此處值調節PWM佔空比)
	CCAP0L = 0xc0;			//PWM0佔空比(調節此處值調節PWM佔空比)
 
	CCAPM1 = 0x42;			//8位PWM模式,無中斷
	CCAP1H = 0x40;			//PWM1佔空比(調節此處值調節PWM佔空比)
	CCAP1L = 0x40;			//PWM1佔空比(調節此處值調節PWM佔空比)
 
	CR = 1;					//啟動PCA計數器
}

其中CMOD暫存器結構如下圖所示:

其中CPS2、CPS1、CPS0為PCA計數脈衝源選擇控制位。

PCA計數脈衝選擇具體如下所示:

CPS2 CPS1 CPS0 選擇PCA/PWM時鐘源輸入
0 0 0 0,系統時鐘/12,SYSclk/12
0 0 1 1,系統時鐘/2,SYSclk/2
0 1 0 2,定時器0的溢位脈衝。由於定時器0可以工作在1T模式,所以達到記一個時鐘就溢位,從而達到最高頻率CPU工作時鐘SYSclk。通過改變定時器0的溢位率,可以實現可調頻率的PWM輸出。
0 1 1 3,ECI/P1.2(或P4.1)腳輸入的外部時鐘(最大速率 = SYSclk/2)
1 0 0 4,系統時鐘,SYSclk
1 0 1 5,系統時鐘/4,SYSclk/4
1 1 0 6,系統時鐘/6,SYSclk/6
1 1 1 7,系統時鐘/8,SYSc/8