PIC16F690

Manufacturer Part NumberPIC16F690
ManufacturerMicrochip Technology Inc.
PIC16F690 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
Page 61
62
Page 62
63
Page 63
64
Page 64
65
Page 65
66
Page 66
67
Page 67
68
Page 68
69
Page 69
70
Page 70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
Page 61/294:

I/O PORTS

Download datasheet (6Mb)Embed
PrevNext
PIC16F631/677/685/687/689/690
4.0

I/O PORTS

There are as many as eighteen general purpose I/O
pins available. Depending on which peripherals are
enabled, some or all of the pins may not be available as
general purpose I/O. In general, when a peripheral is
enabled, the associated pin may not be used as a
general purpose I/O pin.
4.1
PORTA and the TRISA Registers
PORTA is a 6-bit wide, bidirectional port. The
corresponding data direction register is TRISA
(Register 4-2). Setting a TRISA bit (= 1) will make the
corresponding PORTA pin an input (i.e., disable the
output driver). Clearing a TRISA bit (= 0) will make the
corresponding PORTA pin an output (i.e., enables
output driver and puts the contents of the output latch
on the selected pin). The exception is RA3, which is
input only and its TRIS bit will always read as ‘1’.
Example 4-1 shows how to initialize PORTA.
Reading the PORTA register (Register 4-1) reads the
status of the pins, whereas writing to it will write to the
PORT latch. All write operations are read-modify-write
operations. Therefore, a write to a port implies that the
REGISTER 4-1:
PORTA: PORTA REGISTER
U-0
U-0
R/W-x
RA5
bit 7
Legend:
R = Readable bit
W = Writable bit
-n = Value at POR
‘1’ = Bit is set
bit 7-6
Unimplemented: Read as ‘0’
bit 5-0
RA<5:0>: PORTA I/O Pin bit
1 = Port pin is > V
IH
0 = Port pin is < V
IL
REGISTER 4-2:
TRISA: PORTA TRI-STATE REGISTER
U-0
U-0
R/W-1
TRISA5
bit 7
Legend:
R = Readable bit
W = Writable bit
-n = Value at POR
‘1’ = Bit is set
bit 7-6
Unimplemented: Read as ‘0’
bit 5-0
TRISA<5:0>: PORTA Tri-State Control bit
1 = PORTA pin configured as an input (tri-stated)
0 = PORTA pin configured as an output
Note 1:
TRISA<3> always reads ‘1’.
2:
TRISA<5:4> always reads ‘1’ in XT, HS and LP Oscillator modes.
© 2007 Microchip Technology Inc.
port pins are read, this value is modified and then
written to the PORT data latch. RA3 reads ‘0’ when
MCLRE = 1.
The TRISA register controls the PORTA pin output
drivers, even when they are being used as analog
inputs. The user should ensure the bits in the TRISA
register are maintained set when using them as analog
inputs. I/O pins configured as analog input always read
‘0’.
Note:
The ANSEL register must be initialized to
configure an analog channel as a digital
input. Pins configured as analog inputs will
read ‘0’.
EXAMPLE 4-1:
INITIALIZING PORTA
BCF
STATUS,RP0
;Bank 0
BCF
STATUS,RP1
;
CLRF
PORTA
;Init PORTA
BSF
STATUS,RP1
;Bank 2
CLRF
ANSEL
;digital I/O
BSF
STATUS,RP0
;Bank 1
BCF
STATUS,RP1
;
MOVLW 0Ch
;Set RA<3:2> as inputs
MOVWF TRISA
;and set RA<5:4,1:0>
;as outputs
BCF
STATUS,RP0
;Bank 0
R/W-x
R-x
R/W-x
RA4
RA3
RA2
U = Unimplemented bit, read as ‘0’
‘0’ = Bit is cleared
R/W-1
R-1
R/W-1
TRISA4
TRISA3
TRISA2
U = Unimplemented bit, read as ‘0’
‘0’ = Bit is cleared
R/W-x
R/W-x
RA1
RA0
bit 0
x = Bit is unknown
R/W-1
R/W-1
TRISA1
TRISA0
bit 0
x = Bit is unknown
DS41262D-page 59