附件中是我做的項目中的控制發熱絲的 pwm源碼,僅供參考
單片機源程序如下:
- /**
- * @Examle Version V1.0.0.0
- * @Demo Version V1.0.1.0
- * @Date 2017.09.18
- * ************************************************************************************
- * 模塊性能介紹
- * 1、HC89S003F4擁有一個單路8位PWM3模塊,PWM3提供周期溢出中斷
- * 2、PWM3周期:[PWM3P]*PWM3工作時鐘源周期
- * 3、PWM3占空比:[PWM3D]*PWM3工作時鐘源周期
- * ************************************************************************************
- * 應用注意事項
- * 1、占空比0%(PWM3D[0-7]=0x00)輸出低電平,占空比100%(PWM3P≤PWM3D)輸出高電平
- * 2、關閉PWM3模塊時,PWM計數停止,輸出立即關閉。再打開PWM3模塊時,PWM計數器都重新從1開
- * 始計數,輸出受PWM3OEN控制
- * 3、PWM3允許輸出,必須在PWM3EN置1下才有效,否則為PWM3輸出關閉狀態(輸出時對應端口必須
- * 設為輸出模式);即使都禁止輸出,只要相關位被使能,PWM3都可以溢出中斷,即此時PWM3
- * 可以作為定時器/計數器使用,此控制位修改立即生效
- * ************************************************************************************
- * 客戶服務
- * 感謝您使用我們的單片機,若發現錯誤或對函數的使用存在疑問。
- * ***************************************************************
- **/
- #include "HC89S003F4.h"
- /***************************************************************************************
- * @實現效果 P11口輸出頻率為15.69KHz,占空比為34%的方波
- ***************************************************************************************/
- int main()
- {
- /************************************系統初始化****************************************/
- WDTCCR = 0x00; //關閉看門狗
- while((CLKCON&0x20)!=0x20); //等待內部高頻晶振起振
- CLKSWR = 0x51; //選擇內部高頻時鐘為主時鐘,內部高頻RC2分頻,Fosc=16MHz
- while((CLKSWR&0xC0)!=0x40); //等待內部高頻切換完成
- CLKDIV = 0x01; //Fosc1分頻得到Fcpu,Fcpu=16MHz
- /************************************PWM3初始化****************************************/
- P1M0 = P1M0&0x0F|0x80; //P11設置為推挽輸出
- PWM3_MAP = 0x11; //PWM3映射P11口
- PWM3C = 0x92; //使能PWM3,關閉中斷,允許輸出,時鐘4分頻
- //周期計算 = 0xFF / (Fosc / PWM分頻系數) (Fosc見系統時鐘配置的部分)
- // = 0xFF /(16000000 / 4)
- // = 255 /4000000
- // = 63.75us 即15.69KHZ
- PWM3P = 0xFF; //PWM周期為0xFF
- //有效電平時間計算(即占空比)
- // = 0x55 / (Fosc / PWM分頻系數) (Fosc見系統時鐘配置的部分)
- // = 0x55 /(16000000 / 4)
- // = 85 /4000000
- // = 21.25us 占空比為 21.25 / 63.75 = 34%
- PWM3D = 0x55; //PWM占空比設置
- while(1);
- return 0;
- }
復制代碼
所有資料51hei提供下載:
1路獨立PWM輸出(8位).zip
(67.35 KB, 下載次數: 11)
2017-12-29 12:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|