|
測(cè)試STC12C5A60S2輸出可調(diào)占空比的PWM脈沖帶兩個(gè)按鍵,分別加大與減少占空比調(diào)整,
可以用萬(wàn)用表電壓檔測(cè)量PWM輸出IO的電壓會(huì)隨著占空比高低變化
單片機(jī)源程序如下:
- /**********
- 測(cè)試STC12C5A
- 輸出可調(diào)占空比的PWM脈沖
- 調(diào)整范圍
- 20191109
- *********/
- #include "STC12C5A.H" // 包含STC12C5A60S2寄存器定義文件
- sbit UpKey=P3^5; //調(diào)小占空比按鍵
- sbit DownKey=P3^4;//調(diào)大占空比按鍵
- #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; // 設(shè)置PCA模塊為PWM輸出方式。
- //B7 B6 B5 B4 B3 B2 B1 B0
- //* ECOM0 CAPPn CAPNn MATn TOGn PWMn ECCFn
- // 開(kāi)啟比較器允許 允許PWM引腳輸出脈沖
- CR=1; // PCA計(jì)數(shù)器開(kāi)始運(yùn)行
- 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;
- }
- }
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|