English
Language : 

PIC16F872_06 Datasheet, PDF (51/168 Pages) Microchip Technology – 28-Pin, 8-Bit CMOS Flash Microcontroller with 10-Bit A/D
PIC16F872
8.3.3 SETUP FOR PWM OPERATION
The following steps should be taken when configuring
the CCP module for PWM operation:
1. Set the PWM period by writing to the PR2
register.
2. Set the PWM duty cycle by writing to the
CCPR1L register and CCP1CON<5:4> bits.
3. Make the CCP1 pin an output by clearing the
TRISC<2> bit.
4. Set the TMR2 prescale value and enable Timer2
by writing to T2CON.
5. Configure the CCP1 module for PWM operation.
TABLE 8-3: EXAMPLE PWM FREQUENCIES AND RESOLUTIONS AT 20 MHz
PWM Frequency
Timer Prescaler (1, 4, 16)
PR2 Value
Maximum Resolution (bits)
1.22 kHz
16
FFh
10
4.88 kHz
4
FFh
10
19.53 kHz
1
FFh
10
78.12kHz
1
3Fh
8
156.3 kHz
1
1Fh
7
208.3 kHz
1
17h
5.5
TABLE 8-4: REGISTERS ASSOCIATED WITH PWM AND TIMER2
Address Name Bit 7 Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on:
POR,
BOR
Value on
all other
RESETS
0Bh,8Bh, INTCON GIE
10Bh, 18Bh
PEIE TMR0IE INTE
RBIE TMR0IF INTF
RBIF 0000 000x 0000 000u
0Ch
PIR1
(1)
ADIF
(1)
(1)
SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000
8Ch
PIE1
(1)
ADIE
(1)
(1)
SSPIE CCP1IE TMR2IE TMR1IE r0rr 0000 0000 0000
87h
TRISC PORTC Data Direction Register
1111 1111 1111 1111
11h
TMR2
Timer2 Modules Register
0000 0000 0000 0000
92h
PR2
Timer2 Module Period Register
1111 1111 1111 1111
12h
T2CON
— TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
15h
CCPR1L Capture/Compare/PWM Register1 (LSB)
xxxx xxxx uuuu uuuu
16h
CCPR1H Capture/Compare/PWM Register1 (MSB)
xxxx xxxx uuuu uuuu
17h
CCP1CON —
—
CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000
Legend: x = unknown, u = unchanged, - = unimplemented read as '0'. Shaded cells are not used by PWM and Timer2.
Note 1: These bits are reserved; always maintain clear.
© 2006 Microchip Technology Inc.
DS30221C-page 49