測試STC12C5A60S2輸出可調占空比的PWM脈沖帶兩個按鍵,分別加大與減少占空比調整,
可以用萬用表電壓檔測量PWM輸出IO的電壓會隨著占空比高低變化
單片機源程序如下:
- /**********
- 測試STC12C5A
- 輸出可調占空比的PWM脈沖
- 調整范圍
- 20191109
- *********/
- #include "STC12C5A.H" // 包含STC12C5A60S2寄存器定義文件
- sbit UpKey=P3^5; //調小占空比按鍵
- sbit DownKey=P3^4;//調大占空比按鍵
- #define ADJdata CCAP0H//宏定義
- void delayms(unsigned int delay)
- {
- unsigned int a,b;
- for(a=delay;a>0;a--)
- for(b=150;b>0;b--);
- }
- void main()
- {
- CCAPM0=0x42; // 設置PCA模塊為PWM輸出方式。
- //B7 B6 B5 B4 B3 B2 B1 B0
- //* ECOM0 CAPPn CAPNn MATn TOGn PWMn ECCFn
- // 開啟比較器允許 允許PWM引腳輸出脈沖
- CR=1; // PCA計數器開始運行
- ADJdata=0x80; // 脈寬控制初值50%
- while(1)
- {
- if(UpKey==0)
- {
- delayms(20);
- if(UpKey==0)
- {
- while(UpKey==0);
- ADJdata+=5;
- if(ADJdata>=255) ADJdata=255;//最大
- }
- }
- if(DownKey==0)
- {
- delayms(20);
- if(DownKey==0)
- {
- while(DownKey==0);
- if(ADJdata<=25) ADJdata=30;//最低
- ADJdata-=5;
- }
- }
- }
- }
復制代碼
|