# PWM_PIC16F18854 [PIC16F18854 datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/PIC16LF18854-Data-Sheet-40001826D.pdf) ###### tags:`PIC16F18854` <style> .red {color:red;} </style> ## ==IC封裝與腳位== \\圖 ## ==用到的設定值表格== p209 ![](https://i.imgur.com/PvYEiQs.png) ![](https://i.imgur.com/LMub5zL.png) ![](https://i.imgur.com/CTd5kmB.png) ![](https://i.imgur.com/WvKCmUY.png) TIMER2要在TxCON的CKPS<2:0>設定 ![](https://i.imgur.com/rmMZZDo.png) ![](https://i.imgur.com/CE07SQT.png) ![](https://i.imgur.com/oFJGyIw.png) 當PR2=255 時,最大PWM分辨率為 10 位。分辨率是 PR2 寄存器值的函數 要把要用來輸出PWM的腳的TRIS 設為0才能輸出 有 3 個具有自動重載功能的 8 位定時器(Timer2/4/6),因此 CCP 和 PWM 模塊上的 PWM 模式可以使用這些timer的任何一個 當 TMR2 等於 PR2 時,在下一個遞增週期會發生以下三個事件: • TMR2 清零 • PWMx 引腳置位(例外:如果 PWM 佔空比 = 0%,則不會置位該引腳。) • PWM 脈寬由 PWMxDC 鎖存。 如果脈寬值大於週期,則分配的 PWM 引腳將保持不變。 ==當 TMR2IF 標誌位被設置時: • 清除相關的 TRIS 位以啟用輸出驅動器。 • 通過配置RxyPPS 寄存器將信號路由到所需的引腳。 • 通過設置 PWMxCON 寄存器的 PWMxEN 位來使能 PWMx 模塊== ## ==寫入控制暫存器== ## PMD3 如果功耗太高可以關這個 ![](https://i.imgur.com/6aR6qf5.png) ### <span class ="red">PWM7MD</span>:禁用脈寬調製器 PWM7 位 1 = 禁用 PWM7 模塊 0 = 啟用 PWM7 模塊 ### <span class ="red">PWM6MD</span>:禁用脈寬調製器 PWM6 位 1 = 禁用 PWM6 模塊 0 = 啟用 PWM6 模塊 ## TxCON:Timer2/4/6 控制暫存器 ![](https://i.imgur.com/dMWZS2R.png) ### <span class ="red">ON</span>:Timerx 開啟位 1 = Timerx 開啟 0 = Timerx 關閉 所有計數器和狀態機復位 ### <span class ="red">CKPS<2:0></span>:Timer2 類型時鐘預分頻選擇位 111 = 1:128 預分頻器 110 = 1:64 預分頻器 101 = 1:32 預分頻器 100 = 1:16 預分頻器 011 = 1:8 預分頻器 010 = 1:4 預分頻器 001 = 1:2 預分頻器 000 = 1:1 預分頻器 ### <span class ="red">OUTPS<3:0></span>:Timerx 輸出後分頻器選擇位 1111 = 1:16 後分頻器(Postscaler) 1110 = 1:15 後分頻器 1101 = 1:14 後分頻器 1100 = 1:13 後分頻器 1011 = 1:12 後分頻器 1010 = 1:11 後分頻器 1001 = 1:10 後分頻器 1000 = 1:9 後分頻器 0111 = 1:8 後分頻器 0110 = 1:7 後分頻器 0101 = 1:6 後分頻器 0100 = 1:5 後分頻器 0011 = 1:4 後分頻器 0010 = 1:3 後分頻器 0001 = 1:2 後分頻器 0000 = 1:1 後分頻器 ## PWMxCON ![](https://i.imgur.com/nYFmWsq.png) ### <span class ="red">PWMxEN</span>:PWM 模塊使能位 1 = 使能 PWM 模塊 0 = 禁止 PWM 模塊 ### <span class ="red">PWMxOUT</span>:讀取位時的 PWM 模塊輸出電平 1 = High 0 = Low ### <span class ="red">PWMxPOL</span>:PWMx 輸出極性選擇位 1 = PWM 輸出為低電平有效 0 = PWM 輸出為高電平有效 ## PWMxDCH ![](https://i.imgur.com/Mubiyx3.png) ### <span class ="red">PWMxDC<9:2></span>:PWM 佔空比最高位 ## PWMxDCL ![](https://i.imgur.com/RaTjlyx.png) ### <span class ="red">PWMxDC<1:0></span>:PWM 佔空比最低有效位 ## 使用方式 ### 接線方式 畫張圖拉 ### 要來寫程式了喔 DATASHEET裡的波型圖 ### 程式說明 ```c= 用這個啦 ``` ## 注意