---
# System prepended metadata

title: PWM_PIC16F18854
tags: [PIC16F18854]

---

# 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=
用這個啦
```
## 注意