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
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
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
|
LIST
; P16F767.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
NOLIST
; This header file defines configurations, registers, and other useful bits of
; information for the PIC16F767 microcontroller. These names are taken to match
; the data sheets as closely as possible.
; Note that the processor must be selected before this file is
; included. The processor may be selected the following ways:
; 1. Command line switch:
; C:\ MPASM MYFILE.ASM /PIC16F767
; 2. LIST directive in the source file
; LIST P=PIC16F767
; 3. Processor Type entry in the MPASM full-screen interface
;==========================================================================
;
; Revision History
;
;==========================================================================
;Rev: Date: Reason:
;1.00 05/05/03 Initial Release
;1.01 10/21/03 Made changes to Program Memory register names.
;1.02 04/07/04 Added INT0IE & INT0IF bit names.
;==========================================================================
;
; Verify Processor
;
;==========================================================================
IFNDEF __16F767
MESSG "Processor-header file mismatch. Verify selected processor."
ENDIF
;==========================================================================
;
; Register Definitions
;
;==========================================================================
W EQU H'0000'
F EQU H'0001'
;----- Register Files------------------------------------------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
PORTC EQU H'0007'
PORTE EQU H'0009'
PCLATH EQU H'000A'
INTCON EQU H'000B'
PIR1 EQU H'000C'
PIR2 EQU H'000D'
TMR1L EQU H'000E'
TMR1H EQU H'000F'
T1CON EQU H'0010'
TMR2 EQU H'0011'
T2CON EQU H'0012'
SSPBUF EQU H'0013'
SSPCON EQU H'0014'
CCPR1L EQU H'0015'
CCPR1H EQU H'0016'
CCP1CON EQU H'0017'
RCSTA EQU H'0018'
TXREG EQU H'0019'
RCREG EQU H'001A'
CCPR2L EQU H'001B'
CCPR2H EQU H'001C'
CCP2CON EQU H'001D'
ADRESH EQU H'001E'
ADCON0 EQU H'001F'
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
TRISC EQU H'0087'
TRISE EQU H'0089'
PIE1 EQU H'008C'
PIE2 EQU H'008D'
PCON EQU H'008E'
OSCCON EQU H'008F'
OSCTUNE EQU H'0090'
SSPCON2 EQU H'0091'
PR2 EQU H'0092'
SSPADD EQU H'0093'
SSPSTAT EQU H'0094'
CCPR3L EQU H'0095'
CCPR3H EQU H'0096'
CCP3CON EQU H'0097'
TXSTA EQU H'0098'
SPBRG EQU H'0099'
ADCON2 EQU H'009B'
CMCON EQU H'009C'
CVRCON EQU H'009D'
ADRESL EQU H'009E'
ADCON1 EQU H'009F'
WDTCON EQU H'0105'
LVDCON EQU H'0109'
PMDATA EQU H'010C'
PMADR EQU H'010D'
PMDATH EQU H'010E'
PMADRH EQU H'010F'
PMCON1 EQU H'018C'
;----- STATUS Bits --------------------------------------------------------
IRP EQU H'0007'
RP1 EQU H'0006'
RP0 EQU H'0005'
NOT_TO EQU H'0004'
NOT_PD EQU H'0003'
Z EQU H'0002'
DC EQU H'0001'
C EQU H'0000'
;----- INTCON Bits --------------------------------------------------------
GIE EQU H'0007'
PEIE EQU H'0006'
T0IE EQU H'0005'
TMR0IE EQU H'0005'
INTE EQU H'0004'
INT0IE EQU H'0004'
RBIE EQU H'0003'
T0IF EQU H'0002'
TMR0IF EQU H'0002'
INTF EQU H'0001'
INT0IF EQU H'0001'
RBIF EQU H'0000'
;----- PIR1 Bits ----------------------------------------------------------
PSPIF EQU H'0007'
ADIF EQU H'0006'
RCIF EQU H'0005'
TXIF EQU H'0004'
SSPIF EQU H'0003'
CCP1IF EQU H'0002'
TMR2IF EQU H'0001'
TMR1IF EQU H'0000'
;----- PIR2 Bits ----------------------------------------------------------
OSFIF EQU H'0007'
CMIF EQU H'0006'
LVDIF EQU H'0005'
BCLIF EQU H'0003'
CCP3IF EQU H'0001'
CCP2IF EQU H'0000'
;----- T1CON Bits ---------------------------------------------------------
T1RUN EQU H'0006'
T1CKPS1 EQU H'0005'
T1CKPS0 EQU H'0004'
T1OSCEN EQU H'0003'
NOT_T1SYNC EQU H'0002'
T1INSYNC EQU H'0002' ; Backward compatibility only
T1SYNC EQU H'0002'
TMR1CS EQU H'0001'
TMR1ON EQU H'0000'
;----- T2CON Bits ---------------------------------------------------------
TOUTPS3 EQU H'0006'
TOUTPS2 EQU H'0005'
TOUTPS1 EQU H'0004'
TOUTPS0 EQU H'0003'
TMR2ON EQU H'0002'
T2CKPS1 EQU H'0001'
T2CKPS0 EQU H'0000'
;----- SSPCON Bits --------------------------------------------------------
WCOL EQU H'0007'
SSPOV EQU H'0006'
SSPEN EQU H'0005'
CKP EQU H'0004'
SSPM3 EQU H'0003'
SSPM2 EQU H'0002'
SSPM1 EQU H'0001'
SSPM0 EQU H'0000'
;----- CCP1CON Bits -------------------------------------------------------
CCP1X EQU H'0005'
CCP1Y EQU H'0004'
CCP1M3 EQU H'0003'
CCP1M2 EQU H'0002'
CCP1M1 EQU H'0001'
CCP1M0 EQU H'0000'
;----- RCSTA Bits ---------------------------------------------------------
SPEN EQU H'0007'
RX9 EQU H'0006'
RC9 EQU H'0006' ; Backward compatibility only
NOT_RC8 EQU H'0006' ; Backward compatibility only
RC8_9 EQU H'0006' ; Backward compatibility only
SREN EQU H'0005'
CREN EQU H'0004'
ADDEN EQU H'0003'
FERR EQU H'0002'
OERR EQU H'0001'
RX9D EQU H'0000'
RCD8 EQU H'0000' ; Backward compatibility only
;----- CCP2CON Bits -------------------------------------------------------
CCP2X EQU H'0005'
CCP2Y EQU H'0004'
CCP2M3 EQU H'0003'
CCP2M2 EQU H'0002'
CCP2M1 EQU H'0001'
CCP2M0 EQU H'0000'
;----- ADCON0 Bits --------------------------------------------------------
ADCS1 EQU H'0007'
ADCS0 EQU H'0006'
CHS2 EQU H'0005'
CHS1 EQU H'0004'
CHS0 EQU H'0003'
GO EQU H'0002'
NOT_DONE EQU H'0002'
GO_DONE EQU H'0002'
CHS3 EQU H'0001'
ADON EQU H'0000'
;----- OPTION_REG Bits -----------------------------------------------------
NOT_RBPU EQU H'0007'
INTEDG EQU H'0006'
T0CS EQU H'0005'
T0SE EQU H'0004'
PSA EQU H'0003'
PS2 EQU H'0002'
PS1 EQU H'0001'
PS0 EQU H'0000'
;----- TRISE Bits ---------------------------------------------------------
IBF EQU H'0007'
OBF EQU H'0006'
IBOV EQU H'0005'
PSPMODE EQU H'0004'
TRISE3 EQU H'0003'
TRISE2 EQU H'0002'
TRISE1 EQU H'0001'
TRISE0 EQU H'0000'
;----- PIE1 Bits ----------------------------------------------------------
PSPIE EQU H'0007'
ADIE EQU H'0006'
RCIE EQU H'0005'
TXIE EQU H'0004'
SSPIE EQU H'0003'
CCP1IE EQU H'0002'
TMR2IE EQU H'0001'
TMR1IE EQU H'0000'
;----- PIE2 Bits ----------------------------------------------------------
OSFIE EQU H'0007'
CMIE EQU H'0006'
LVDIE EQU H'0005'
BCLIE EQU H'0003'
CCP3IE EQU H'0001'
CCP2IE EQU H'0000'
;----- PCON Bits ----------------------------------------------------------
SBOREN EQU H'0002'
NOT_POR EQU H'0001'
NOT_BO EQU H'0000'
NOT_BOR EQU H'0000'
;----- OSCCON Bits -------------------------------------------------------
IRCF2 EQU H'0006'
IRCF1 EQU H'0005'
IRCF0 EQU H'0004'
OSTS EQU H'0003'
IOFS EQU H'0002'
SCS1 EQU H'0001'
SCS0 EQU H'0000'
;----- OSCTUNE Bits -------------------------------------------------------
TUN5 EQU H'0005'
TUN4 EQU H'0004'
TUN3 EQU H'0003'
TUN2 EQU H'0002'
TUN1 EQU H'0001'
TUN0 EQU H'0000'
;----- SSPCON2 Bits --------------------------------------------------------
GCEN EQU H'0007'
ACKSTAT EQU H'0006'
ACKDT EQU H'0005'
ACKEN EQU H'0004'
RCEN EQU H'0003'
PEN EQU H'0002'
RSEN EQU H'0001'
SEN EQU H'0000'
;----- SSPSTAT Bits -------------------------------------------------------
SMP EQU H'0007'
CKE EQU H'0006'
D EQU H'0005'
I2C_DATA EQU H'0005'
NOT_A EQU H'0005'
NOT_ADDRESS EQU H'0005'
D_A EQU H'0005'
DATA_ADDRESS EQU H'0005'
P EQU H'0004'
I2C_STOP EQU H'0004'
S EQU H'0003'
I2C_START EQU H'0003'
R EQU H'0002'
I2C_READ EQU H'0002'
NOT_W EQU H'0002'
NOT_WRITE EQU H'0002'
R_W EQU H'0002'
READ_WRITE EQU H'0002'
UA EQU H'0001'
BF EQU H'0000'
;----- CCP3CON Bits -------------------------------------------------------
CCP3X EQU H'0005'
CCP3Y EQU H'0004'
CCP3M3 EQU H'0003'
CCP3M2 EQU H'0002'
CCP3M1 EQU H'0001'
CCP3M0 EQU H'0000'
;----- TXSTA Bits ---------------------------------------------------------
CSRC EQU H'0007'
TX9 EQU H'0006'
NOT_TX8 EQU H'0006' ; Backward compatibility only
TX8_9 EQU H'0006' ; Backward compatibility only
TXEN EQU H'0005'
SYNC EQU H'0004'
BRGH EQU H'0002'
TRMT EQU H'0001'
TX9D EQU H'0000'
TXD8 EQU H'0000' ; Backward compatibility only
;----- ADCON2 Bits ---------------------------------------------------------
ACQT2 EQU H'0005'
ACQT1 EQU H'0004'
ACQT0 EQU H'0003'
;----- CMCON Bits ---------------------------------------------------------
C2OUT EQU H'0007'
C1OUT EQU H'0006'
C2INV EQU H'0005'
C1INV EQU H'0004'
CIS EQU H'0003'
CM2 EQU H'0002'
CM1 EQU H'0001'
CM0 EQU H'0000'
;----- CVRCON Bits --------------------------------------------------------
CVREN EQU H'0007'
CVROE EQU H'0006'
CVRR EQU H'0005'
CVR3 EQU H'0003'
CVR2 EQU H'0002'
CVR1 EQU H'0001'
CVR0 EQU H'0000'
;----- ADCON1 Bits --------------------------------------------------------
ADFM EQU H'0007'
ADCS2 EQU H'0006'
VCFG1 EQU H'0005'
VCFG0 EQU H'0004'
PCFG3 EQU H'0003'
PCFG2 EQU H'0002'
PCFG1 EQU H'0001'
PCFG0 EQU H'0000'
;----- WDTCON Bits --------------------------------------------------------
WDTPS3 EQU H'0004'
WDTPS2 EQU H'0003'
WDTPS1 EQU H'0002'
WDTPS0 EQU H'0001'
SWDTEN EQU H'0000'
SWDTE EQU H'0000'
;----- LVDCON Bits --------------------------------------------------------
IRVST EQU H'0005'
LVDEN EQU H'0004'
LVDL3 EQU H'0003'
LVDL2 EQU H'0002'
LVDL1 EQU H'0001'
LVDL0 EQU H'0000'
;----- PMCON1 Bits --------------------------------------------------------
RD EQU H'0000'
;==========================================================================
;
; RAM Definition
;
;==========================================================================
__MAXRAM H'1FF'
__BADRAM H'08'
__BADRAM H'88', H'9A'
__BADRAM H'107'-H'108'
__BADRAM H'185', H'187'-H'189', H'18D'-H'18F'
;==========================================================================
;
; Configuration Bits
;
;==========================================================================
_CONFIG1 EQU H'2007'
_CONFIG2 EQU H'2008'
;Configuration Byte 1 Options
_CP_ALL EQU H'1FFF'
_CP_OFF EQU H'3FFF'
_CCP2_RC1 EQU H'3FFF'
_CCP2_RB3 EQU H'2FFF'
_DEBUG_OFF EQU H'3FFF'
_DEBUG_ON EQU H'37FF'
_VBOR_2_0 EQU H'3FFF'
_VBOR_2_7 EQU H'3F7F'
_VBOR_4_2 EQU H'3EFF'
_VBOR_4_5 EQU H'3E7F'
_BOREN_1 EQU H'3FFF' ;MUST BE CONFIGURED IN CONJUCTION W/ BORSEN (CONFIG2)
_BOREN_0 EQU H'3FBF' ;MUST BE CONFIGURED IN CONJUCTION W/ BORSEN (CONFIG2)
_MCLR_ON EQU H'3FFF'
_MCLR_OFF EQU H'3FDF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_EXTRC_CLKOUT EQU H'3FFF'
_EXTRC_IO EQU H'3FFE'
_INTRC_CLKOUT EQU H'3FFD'
_INTRC_IO EQU H'3FFC'
_EXTCLK EQU H'3FEF'
_HS_OSC EQU H'3FEE'
_XT_OSC EQU H'3FED'
_LP_OSC EQU H'3FEC'
;Configuration Byte 2 Options
_BORSEN_1 EQU H'3FFF' ;MUST BE CONFIGURED IN CONJUCTION W/ BOREN (CONFIG1)
_BORSEN_0 EQU H'3FBF' ;MUST BE CONFIGURED IN CONJUCTION W/ BOREN (CONFIG1)
_IESO_ON EQU H'3FFF'
_IESO_OFF EQU H'3FFD'
_FCMEN_ON EQU H'3FFF'
_FCMEN_OFF EQU H'3FFE'
;**** Brown-out Reset configurations **** (Refer to the 16F7x7 Data Sheet for more details)
;BOREN_1 & BORSEN_1 = BOR enabled and always on
;BOREN_1 & BORSEN_0 = BOR enabled during operation and disabled during sleep by hardware
;BOREN_0 & BORSEN_1 = BOR controlled by software bit SBOREN (PCON,2)
;BOREN_0 & BORSEN_0 = BOR disabled
; To use the Configuration Bits, place the following lines in your source code
; in the following format, and change the configuration value to the desired
; setting (such as CP_OFF to CP_ALL). These are currently commented out here
; and each __CONFIG line should have the preceding semicolon removed when
; pasted into your source code.
;Program Configuration Register 1
; __CONFIG _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _VBOR_2_0 & BOREN_1 & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC
;Program Configuration Register 2
; __CONFIG _CONFIG2, _BORSEN_1 & _IESO_OFF & _FCMEN_OFF
LIST
|