PIC16F88

Manufacturer Part NumberPIC16F88
ManufacturerMicrochip Technology Inc.
PIC16F88 datasheet
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Page 81
82
Page 82
83
Page 83
84
Page 84
85
Page 85
86
Page 86
87
Page 87
88
Page 88
89
Page 89
90
Page 90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
Page 87/228:

SETUP FOR PWM OPERATION

Download datasheet (5Mb)Embed
PrevNext
The maximum PWM resolution (bits) for a given PWM
frequency is given by the following formula.
EQUATION 9-3:
(
F
)
OSC
log
F
PWM
=
Resolution
log(2)
Note:
If the PWM duty cycle value is longer than
the PWM period, the CCP1 pin will not be
cleared.
TABLE 9-3:
EXAMPLE PWM FREQUENCIES AND RESOLUTIONS AT 20 MHz
PWM Frequency
Timer Prescaler (1, 4, 16)
PR2 Value
Maximum Resolution (bits)
TABLE 9-4:
REGISTERS ASSOCIATED WITH PWM AND TIMER2
Address
Name
Bit 7
Bit 6
0Bh,8Bh
INTCON
GIE
PEIE
10Bh,18Bh
(1)
0Ch
PIR1
ADIF
(1)
8Ch
PIE1
ADIE
86h
TRISB
PORTB Data Direction Register
11h
TMR2
Timer2 Module Register
92h
PR2
Timer2 Period Register
12h
T2CON
TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
15h
CCPR1L
Capture/Compare/PWM Register 1 (LSB)
16h
CCPR1H
Capture/Compare/PWM Register 1 (MSB)
17h
CCP1CON
Legend:
x = unknown, u = unchanged, - = unimplemented, read as ‘0’. Shaded cells are not used by PWM and Timer2.
Note 1:
This bit is only implemented on the PIC16F88. The bit will read ‘0’ on the PIC16F87.
 2005 Microchip Technology Inc.
9.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
bits
CCPR1L register and CCP1CON<5:4> bits.
3.
Make the CCP1 pin an output by clearing the
TRISB<x> bit.
4.
Set the TMR2 prescale value and enable Timer2
by writing to T2CON.
5.
Configure the CCP1 module for PWM operation.
Note:
The TRISB bit (0 or 3) is dependant upon
the
(CCPMX).
1.22 kHz 4.88 kHz 19.53 kHz 78.12 kHz 156.3 kHz 208.3 kHz
16
4
1
0xFF
0xFF
0xFF
10
10
10
Bit 5
Bit 4
Bit 3
Bit 2
TMR0IE
INT0IE
RBIE
TMR0IF
RCIF
TXIF
SSPIF
CCP1IF
RCIE
TXIE
SSPIE
CCP1IE
CCP1X
CCP1Y
CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000
PIC16F87/88
setting
of
configuration
bit
12
1
1
1
0x3F
0x1F
0x17
8
7
6.6
Value on
Value on
Bit 1
Bit 0
all other
POR, BOR
Resets
INT0IF
RBIF
0000 000x 0000 000u
TMR2IF
TMR1IF
-000 0000 -000 0000
TMR2IE
TMR1IE -000 0000 -000 0000
1111 1111 1111 1111
0000 0000 0000 0000
1111 1111 1111 1111
xxxx xxxx uuuu uuuu
xxxx xxxx uuuu uuuu
DS30487C-page 85