今天我們將使用單片機內部自帶的PWM來進行呼吸燈設計,自己可以查看該單片機型號的中文資料。所看章節如下:
1.png (82.85 KB, 下載次數: 36)
下載附件
2020-10-25 02:26 上傳
直接上代碼吧,大家可以查看代碼,如果不明白的可以給我留言,^_^。
- #include <stc12c5a60s2.h>
- unsigned char dy[15]={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240}; // CCAP0H值的分配,為了實現不同的占空比
- void modify_duty();
- void Init_PWM();
- void delay();
- void main()
- {
- Init_PWM();
- while(1)
- {
- modify_duty();
- }
- }
- void Init_PWM() // PWM功能的初始化
- {
- CMOD = 0X02; // 設置脈沖源
- CCAPM0 = 0X42; // 開啟比較器,允許輸出脈寬調制信號
- PCA_PWM0 = 0X00; // 組成9位比較器,可以設置成1,也可以設置成0
- CCAP0L = 0x80; // 比較器中的初值
- CCAP0H = 0X80; // 比較器初值重裝
- CL=0; // 裝載值為0
- CR =1; // 啟動計數模式
- }
- void modify_duty()
- {
- int i;
- for(i=0;i<15;i++)
- {
- CCAP0H = dy[i];
- delay();
- }
- for(i=13;i>=1;i--)
- {
- CCAP0H = dy[i];
- delay();
- }
- }
- void delay()
- {
- int i,j;
- for(i=0;i<200;i++)
- {
- for(j=0;j<200;j++);
- }
- }
復制代碼
可以看結果了:
2.gif (1.65 MB, 下載次數: 41)
下載附件
2020-10-25 02:26 上傳
|