1 /*
2  * This declarations of the PIC16LF727 MCU.
3  *
4  * This file is part of the GNU PIC library for SDCC, originally
5  * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
6  *
7  * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:22:58 UTC.
8  *
9  * SDCC is licensed under the GNU Public license (GPL) v2. Note that
10  * this license covers the code to the compiler and other executables,
11  * but explicitly does not cover any code or objects generated by sdcc.
12  *
13  * For pic device libraries and header files which are derived from
14  * Microchip header (.inc) and linker script (.lkr) files Microchip
15  * requires that "The header files should state that they are only to be
16  * used with authentic Microchip devices" which makes them incompatible
17  * with the GPL. Pic device libraries and header files are located at
18  * non-free/lib and non-free/include directories respectively.
19  * Sdcc should be run with the --use-non-free command line option in
20  * order to include non-free header files and libraries.
21  *
22  * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
23  */
24 
25 #ifndef __PIC16LF727_H__
26 #define __PIC16LF727_H__
27 
28 //==============================================================================
29 //
30 //	Register Addresses
31 //
32 //==============================================================================
33 
34 #ifndef NO_ADDR_DEFINES
35 
36 #define INDF_ADDR               0x0000
37 #define TMR0_ADDR               0x0001
38 #define PCL_ADDR                0x0002
39 #define STATUS_ADDR             0x0003
40 #define FSR_ADDR                0x0004
41 #define PORTA_ADDR              0x0005
42 #define PORTB_ADDR              0x0006
43 #define PORTC_ADDR              0x0007
44 #define PORTD_ADDR              0x0008
45 #define PORTE_ADDR              0x0009
46 #define PCLATH_ADDR             0x000A
47 #define INTCON_ADDR             0x000B
48 #define PIR1_ADDR               0x000C
49 #define PIR2_ADDR               0x000D
50 #define TMR1_ADDR               0x000E
51 #define TMR1L_ADDR              0x000E
52 #define TMR1H_ADDR              0x000F
53 #define T1CON_ADDR              0x0010
54 #define TMR2_ADDR               0x0011
55 #define T2CON_ADDR              0x0012
56 #define SSPBUF_ADDR             0x0013
57 #define SSPCON_ADDR             0x0014
58 #define CCPR1_ADDR              0x0015
59 #define CCPR1L_ADDR             0x0015
60 #define CCPR1H_ADDR             0x0016
61 #define CCP1CON_ADDR            0x0017
62 #define RCSTA_ADDR              0x0018
63 #define TXREG_ADDR              0x0019
64 #define RCREG_ADDR              0x001A
65 #define CCPR2_ADDR              0x001B
66 #define CCPR2L_ADDR             0x001B
67 #define CCPR2H_ADDR             0x001C
68 #define CCP2CON_ADDR            0x001D
69 #define ADRES_ADDR              0x001E
70 #define ADCON0_ADDR             0x001F
71 #define OPTION_REG_ADDR         0x0081
72 #define TRISA_ADDR              0x0085
73 #define TRISB_ADDR              0x0086
74 #define TRISC_ADDR              0x0087
75 #define TRISD_ADDR              0x0088
76 #define TRISE_ADDR              0x0089
77 #define PIE1_ADDR               0x008C
78 #define PIE2_ADDR               0x008D
79 #define PCON_ADDR               0x008E
80 #define T1GCON_ADDR             0x008F
81 #define OSCCON_ADDR             0x0090
82 #define OSCTUNE_ADDR            0x0091
83 #define PR2_ADDR                0x0092
84 #define SSPADD_ADDR             0x0093
85 #define SSPMSK_ADDR             0x0093
86 #define SSPSTAT_ADDR            0x0094
87 #define WPU_ADDR                0x0095
88 #define WPUB_ADDR               0x0095
89 #define IOC_ADDR                0x0096
90 #define IOCB_ADDR               0x0096
91 #define TXSTA_ADDR              0x0098
92 #define SPBRG_ADDR              0x0099
93 #define APFCON_ADDR             0x009C
94 #define FVRCON_ADDR             0x009D
95 #define ADCON1_ADDR             0x009F
96 #define CPSCON0_ADDR            0x0108
97 #define CPSCON1_ADDR            0x0109
98 #define PMDATA_ADDR             0x010C
99 #define PMDATL_ADDR             0x010C
100 #define PMADR_ADDR              0x010D
101 #define PMADRL_ADDR             0x010D
102 #define PMDATH_ADDR             0x010E
103 #define PMADRH_ADDR             0x010F
104 #define ANSELA_ADDR             0x0185
105 #define ANSELB_ADDR             0x0186
106 #define ANSELD_ADDR             0x0188
107 #define ANSELE_ADDR             0x0189
108 #define PMCON1_ADDR             0x018C
109 
110 #endif // #ifndef NO_ADDR_DEFINES
111 
112 //==============================================================================
113 //
114 //	Register Definitions
115 //
116 //==============================================================================
117 
118 extern __at(0x0000) __sfr INDF;
119 extern __at(0x0001) __sfr TMR0;
120 extern __at(0x0002) __sfr PCL;
121 
122 //==============================================================================
123 //        STATUS Bits
124 
125 extern __at(0x0003) __sfr STATUS;
126 
127 typedef union
128   {
129   struct
130     {
131     unsigned C                  : 1;
132     unsigned DC                 : 1;
133     unsigned Z                  : 1;
134     unsigned NOT_PD             : 1;
135     unsigned NOT_TO             : 1;
136     unsigned RP0                : 1;
137     unsigned RP1                : 1;
138     unsigned IRP                : 1;
139     };
140 
141   struct
142     {
143     unsigned                    : 5;
144     unsigned RP                 : 2;
145     unsigned                    : 1;
146     };
147   } __STATUSbits_t;
148 
149 extern __at(0x0003) volatile __STATUSbits_t STATUSbits;
150 
151 #define _C                      0x01
152 #define _DC                     0x02
153 #define _Z                      0x04
154 #define _NOT_PD                 0x08
155 #define _NOT_TO                 0x10
156 #define _RP0                    0x20
157 #define _RP1                    0x40
158 #define _IRP                    0x80
159 
160 //==============================================================================
161 
162 extern __at(0x0004) __sfr FSR;
163 
164 //==============================================================================
165 //        PORTA Bits
166 
167 extern __at(0x0005) __sfr PORTA;
168 
169 typedef struct
170   {
171   unsigned RA0                  : 1;
172   unsigned RA1                  : 1;
173   unsigned RA2                  : 1;
174   unsigned RA3                  : 1;
175   unsigned RA4                  : 1;
176   unsigned RA5                  : 1;
177   unsigned RA6                  : 1;
178   unsigned RA7                  : 1;
179   } __PORTAbits_t;
180 
181 extern __at(0x0005) volatile __PORTAbits_t PORTAbits;
182 
183 #define _RA0                    0x01
184 #define _RA1                    0x02
185 #define _RA2                    0x04
186 #define _RA3                    0x08
187 #define _RA4                    0x10
188 #define _RA5                    0x20
189 #define _RA6                    0x40
190 #define _RA7                    0x80
191 
192 //==============================================================================
193 
194 
195 //==============================================================================
196 //        PORTB Bits
197 
198 extern __at(0x0006) __sfr PORTB;
199 
200 typedef struct
201   {
202   unsigned RB0                  : 1;
203   unsigned RB1                  : 1;
204   unsigned RB2                  : 1;
205   unsigned RB3                  : 1;
206   unsigned RB4                  : 1;
207   unsigned RB5                  : 1;
208   unsigned RB6                  : 1;
209   unsigned RB7                  : 1;
210   } __PORTBbits_t;
211 
212 extern __at(0x0006) volatile __PORTBbits_t PORTBbits;
213 
214 #define _RB0                    0x01
215 #define _RB1                    0x02
216 #define _RB2                    0x04
217 #define _RB3                    0x08
218 #define _RB4                    0x10
219 #define _RB5                    0x20
220 #define _RB6                    0x40
221 #define _RB7                    0x80
222 
223 //==============================================================================
224 
225 
226 //==============================================================================
227 //        PORTC Bits
228 
229 extern __at(0x0007) __sfr PORTC;
230 
231 typedef struct
232   {
233   unsigned RC0                  : 1;
234   unsigned RC1                  : 1;
235   unsigned RC2                  : 1;
236   unsigned RC3                  : 1;
237   unsigned RC4                  : 1;
238   unsigned RC5                  : 1;
239   unsigned RC6                  : 1;
240   unsigned RC7                  : 1;
241   } __PORTCbits_t;
242 
243 extern __at(0x0007) volatile __PORTCbits_t PORTCbits;
244 
245 #define _RC0                    0x01
246 #define _RC1                    0x02
247 #define _RC2                    0x04
248 #define _RC3                    0x08
249 #define _RC4                    0x10
250 #define _RC5                    0x20
251 #define _RC6                    0x40
252 #define _RC7                    0x80
253 
254 //==============================================================================
255 
256 
257 //==============================================================================
258 //        PORTD Bits
259 
260 extern __at(0x0008) __sfr PORTD;
261 
262 typedef struct
263   {
264   unsigned RD0                  : 1;
265   unsigned RD1                  : 1;
266   unsigned RD2                  : 1;
267   unsigned RD3                  : 1;
268   unsigned RD4                  : 1;
269   unsigned RD5                  : 1;
270   unsigned RD6                  : 1;
271   unsigned RD7                  : 1;
272   } __PORTDbits_t;
273 
274 extern __at(0x0008) volatile __PORTDbits_t PORTDbits;
275 
276 #define _RD0                    0x01
277 #define _RD1                    0x02
278 #define _RD2                    0x04
279 #define _RD3                    0x08
280 #define _RD4                    0x10
281 #define _RD5                    0x20
282 #define _RD6                    0x40
283 #define _RD7                    0x80
284 
285 //==============================================================================
286 
287 
288 //==============================================================================
289 //        PORTE Bits
290 
291 extern __at(0x0009) __sfr PORTE;
292 
293 typedef union
294   {
295   struct
296     {
297     unsigned RE0                : 1;
298     unsigned RE1                : 1;
299     unsigned RE2                : 1;
300     unsigned RE3                : 1;
301     unsigned                    : 1;
302     unsigned                    : 1;
303     unsigned                    : 1;
304     unsigned                    : 1;
305     };
306 
307   struct
308     {
309     unsigned RE                 : 4;
310     unsigned                    : 4;
311     };
312   } __PORTEbits_t;
313 
314 extern __at(0x0009) volatile __PORTEbits_t PORTEbits;
315 
316 #define _RE0                    0x01
317 #define _RE1                    0x02
318 #define _RE2                    0x04
319 #define _RE3                    0x08
320 
321 //==============================================================================
322 
323 extern __at(0x000A) __sfr PCLATH;
324 
325 //==============================================================================
326 //        INTCON Bits
327 
328 extern __at(0x000B) __sfr INTCON;
329 
330 typedef union
331   {
332   struct
333     {
334     unsigned RBIF               : 1;
335     unsigned INTF               : 1;
336     unsigned T0IF               : 1;
337     unsigned RBIE               : 1;
338     unsigned INTE               : 1;
339     unsigned T0IE               : 1;
340     unsigned PEIE               : 1;
341     unsigned GIE                : 1;
342     };
343 
344   struct
345     {
346     unsigned IOCIF              : 1;
347     unsigned                    : 1;
348     unsigned TMR0IF             : 1;
349     unsigned IOCIE              : 1;
350     unsigned                    : 1;
351     unsigned TMR0IE             : 1;
352     unsigned                    : 1;
353     unsigned                    : 1;
354     };
355   } __INTCONbits_t;
356 
357 extern __at(0x000B) volatile __INTCONbits_t INTCONbits;
358 
359 #define _RBIF                   0x01
360 #define _IOCIF                  0x01
361 #define _INTF                   0x02
362 #define _T0IF                   0x04
363 #define _TMR0IF                 0x04
364 #define _RBIE                   0x08
365 #define _IOCIE                  0x08
366 #define _INTE                   0x10
367 #define _T0IE                   0x20
368 #define _TMR0IE                 0x20
369 #define _PEIE                   0x40
370 #define _GIE                    0x80
371 
372 //==============================================================================
373 
374 
375 //==============================================================================
376 //        PIR1 Bits
377 
378 extern __at(0x000C) __sfr PIR1;
379 
380 typedef struct
381   {
382   unsigned TMR1IF               : 1;
383   unsigned TMR2IF               : 1;
384   unsigned CCP1IF               : 1;
385   unsigned SSPIF                : 1;
386   unsigned TXIF                 : 1;
387   unsigned RCIF                 : 1;
388   unsigned ADIF                 : 1;
389   unsigned TMR1GIF              : 1;
390   } __PIR1bits_t;
391 
392 extern __at(0x000C) volatile __PIR1bits_t PIR1bits;
393 
394 #define _TMR1IF                 0x01
395 #define _TMR2IF                 0x02
396 #define _CCP1IF                 0x04
397 #define _SSPIF                  0x08
398 #define _TXIF                   0x10
399 #define _RCIF                   0x20
400 #define _ADIF                   0x40
401 #define _TMR1GIF                0x80
402 
403 //==============================================================================
404 
405 
406 //==============================================================================
407 //        PIR2 Bits
408 
409 extern __at(0x000D) __sfr PIR2;
410 
411 typedef struct
412   {
413   unsigned CCP2IF               : 1;
414   unsigned                      : 1;
415   unsigned                      : 1;
416   unsigned                      : 1;
417   unsigned                      : 1;
418   unsigned                      : 1;
419   unsigned                      : 1;
420   unsigned                      : 1;
421   } __PIR2bits_t;
422 
423 extern __at(0x000D) volatile __PIR2bits_t PIR2bits;
424 
425 #define _CCP2IF                 0x01
426 
427 //==============================================================================
428 
429 extern __at(0x000E) __sfr TMR1;
430 extern __at(0x000E) __sfr TMR1L;
431 extern __at(0x000F) __sfr TMR1H;
432 
433 //==============================================================================
434 //        T1CON Bits
435 
436 extern __at(0x0010) __sfr T1CON;
437 
438 typedef union
439   {
440   struct
441     {
442     unsigned TMR1ON             : 1;
443     unsigned                    : 1;
444     unsigned T1SYNC             : 1;
445     unsigned T1OSCEN            : 1;
446     unsigned T1CKPS0            : 1;
447     unsigned T1CKPS1            : 1;
448     unsigned TMR1CS0            : 1;
449     unsigned TMR1CS1            : 1;
450     };
451 
452   struct
453     {
454     unsigned                    : 1;
455     unsigned                    : 1;
456     unsigned NOT_T1SYNC         : 1;
457     unsigned                    : 1;
458     unsigned                    : 1;
459     unsigned                    : 1;
460     unsigned                    : 1;
461     unsigned                    : 1;
462     };
463 
464   struct
465     {
466     unsigned                    : 1;
467     unsigned                    : 1;
468     unsigned T1INSYNC           : 1;
469     unsigned                    : 1;
470     unsigned                    : 1;
471     unsigned                    : 1;
472     unsigned                    : 1;
473     unsigned                    : 1;
474     };
475 
476   struct
477     {
478     unsigned                    : 4;
479     unsigned T1CKPS             : 2;
480     unsigned                    : 2;
481     };
482 
483   struct
484     {
485     unsigned                    : 6;
486     unsigned TMR1CS             : 2;
487     };
488   } __T1CONbits_t;
489 
490 extern __at(0x0010) volatile __T1CONbits_t T1CONbits;
491 
492 #define _TMR1ON                 0x01
493 #define _T1SYNC                 0x04
494 #define _NOT_T1SYNC             0x04
495 #define _T1INSYNC               0x04
496 #define _T1OSCEN                0x08
497 #define _T1CKPS0                0x10
498 #define _T1CKPS1                0x20
499 #define _TMR1CS0                0x40
500 #define _TMR1CS1                0x80
501 
502 //==============================================================================
503 
504 extern __at(0x0011) __sfr TMR2;
505 
506 //==============================================================================
507 //        T2CON Bits
508 
509 extern __at(0x0012) __sfr T2CON;
510 
511 typedef union
512   {
513   struct
514     {
515     unsigned T2CKPS0            : 1;
516     unsigned T2CKPS1            : 1;
517     unsigned TMR2ON             : 1;
518     unsigned TOUTPS0            : 1;
519     unsigned TOUTPS1            : 1;
520     unsigned TOUTPS2            : 1;
521     unsigned TOUTPS3            : 1;
522     unsigned                    : 1;
523     };
524 
525   struct
526     {
527     unsigned T2CKPS             : 2;
528     unsigned                    : 6;
529     };
530 
531   struct
532     {
533     unsigned                    : 3;
534     unsigned TOUTPS             : 4;
535     unsigned                    : 1;
536     };
537   } __T2CONbits_t;
538 
539 extern __at(0x0012) volatile __T2CONbits_t T2CONbits;
540 
541 #define _T2CKPS0                0x01
542 #define _T2CKPS1                0x02
543 #define _TMR2ON                 0x04
544 #define _TOUTPS0                0x08
545 #define _TOUTPS1                0x10
546 #define _TOUTPS2                0x20
547 #define _TOUTPS3                0x40
548 
549 //==============================================================================
550 
551 extern __at(0x0013) __sfr SSPBUF;
552 
553 //==============================================================================
554 //        SSPCON Bits
555 
556 extern __at(0x0014) __sfr SSPCON;
557 
558 typedef union
559   {
560   struct
561     {
562     unsigned SSPM0              : 1;
563     unsigned SSPM1              : 1;
564     unsigned SSPM2              : 1;
565     unsigned SSPM3              : 1;
566     unsigned CKP                : 1;
567     unsigned SSPEN              : 1;
568     unsigned SSPOV              : 1;
569     unsigned WCOL               : 1;
570     };
571 
572   struct
573     {
574     unsigned SSPM               : 4;
575     unsigned                    : 4;
576     };
577   } __SSPCONbits_t;
578 
579 extern __at(0x0014) volatile __SSPCONbits_t SSPCONbits;
580 
581 #define _SSPM0                  0x01
582 #define _SSPM1                  0x02
583 #define _SSPM2                  0x04
584 #define _SSPM3                  0x08
585 #define _CKP                    0x10
586 #define _SSPEN                  0x20
587 #define _SSPOV                  0x40
588 #define _WCOL                   0x80
589 
590 //==============================================================================
591 
592 extern __at(0x0015) __sfr CCPR1;
593 extern __at(0x0015) __sfr CCPR1L;
594 extern __at(0x0016) __sfr CCPR1H;
595 
596 //==============================================================================
597 //        CCP1CON Bits
598 
599 extern __at(0x0017) __sfr CCP1CON;
600 
601 typedef union
602   {
603   struct
604     {
605     unsigned CCP1M0             : 1;
606     unsigned CCP1M1             : 1;
607     unsigned CCP1M2             : 1;
608     unsigned CCP1M3             : 1;
609     unsigned DC1B0              : 1;
610     unsigned DC1B1              : 1;
611     unsigned                    : 1;
612     unsigned                    : 1;
613     };
614 
615   struct
616     {
617     unsigned                    : 1;
618     unsigned                    : 1;
619     unsigned                    : 1;
620     unsigned                    : 1;
621     unsigned CCP1Y              : 1;
622     unsigned CCP1X              : 1;
623     unsigned                    : 1;
624     unsigned                    : 1;
625     };
626 
627   struct
628     {
629     unsigned CCP1M              : 4;
630     unsigned                    : 4;
631     };
632 
633   struct
634     {
635     unsigned                    : 4;
636     unsigned DC1B               : 2;
637     unsigned                    : 2;
638     };
639   } __CCP1CONbits_t;
640 
641 extern __at(0x0017) volatile __CCP1CONbits_t CCP1CONbits;
642 
643 #define _CCP1M0                 0x01
644 #define _CCP1M1                 0x02
645 #define _CCP1M2                 0x04
646 #define _CCP1M3                 0x08
647 #define _DC1B0                  0x10
648 #define _CCP1Y                  0x10
649 #define _DC1B1                  0x20
650 #define _CCP1X                  0x20
651 
652 //==============================================================================
653 
654 
655 //==============================================================================
656 //        RCSTA Bits
657 
658 extern __at(0x0018) __sfr RCSTA;
659 
660 typedef union
661   {
662   struct
663     {
664     unsigned RX9D               : 1;
665     unsigned OERR               : 1;
666     unsigned FERR               : 1;
667     unsigned ADDEN              : 1;
668     unsigned CREN               : 1;
669     unsigned SREN               : 1;
670     unsigned RX9                : 1;
671     unsigned SPEN               : 1;
672     };
673 
674   struct
675     {
676     unsigned RCD8               : 1;
677     unsigned                    : 1;
678     unsigned                    : 1;
679     unsigned                    : 1;
680     unsigned                    : 1;
681     unsigned                    : 1;
682     unsigned RC9                : 1;
683     unsigned                    : 1;
684     };
685 
686   struct
687     {
688     unsigned                    : 1;
689     unsigned                    : 1;
690     unsigned                    : 1;
691     unsigned                    : 1;
692     unsigned                    : 1;
693     unsigned                    : 1;
694     unsigned NOT_RC8            : 1;
695     unsigned                    : 1;
696     };
697 
698   struct
699     {
700     unsigned                    : 1;
701     unsigned                    : 1;
702     unsigned                    : 1;
703     unsigned                    : 1;
704     unsigned                    : 1;
705     unsigned                    : 1;
706     unsigned RC8_9              : 1;
707     unsigned                    : 1;
708     };
709   } __RCSTAbits_t;
710 
711 extern __at(0x0018) volatile __RCSTAbits_t RCSTAbits;
712 
713 #define _RX9D                   0x01
714 #define _RCD8                   0x01
715 #define _OERR                   0x02
716 #define _FERR                   0x04
717 #define _ADDEN                  0x08
718 #define _CREN                   0x10
719 #define _SREN                   0x20
720 #define _RX9                    0x40
721 #define _RC9                    0x40
722 #define _NOT_RC8                0x40
723 #define _RC8_9                  0x40
724 #define _SPEN                   0x80
725 
726 //==============================================================================
727 
728 extern __at(0x0019) __sfr TXREG;
729 extern __at(0x001A) __sfr RCREG;
730 extern __at(0x001B) __sfr CCPR2;
731 extern __at(0x001B) __sfr CCPR2L;
732 extern __at(0x001C) __sfr CCPR2H;
733 
734 //==============================================================================
735 //        CCP2CON Bits
736 
737 extern __at(0x001D) __sfr CCP2CON;
738 
739 typedef union
740   {
741   struct
742     {
743     unsigned CCP2M0             : 1;
744     unsigned CCP2M1             : 1;
745     unsigned CCP2M2             : 1;
746     unsigned CCP2M3             : 1;
747     unsigned DC2B0              : 1;
748     unsigned DC2B1              : 1;
749     unsigned                    : 1;
750     unsigned                    : 1;
751     };
752 
753   struct
754     {
755     unsigned                    : 1;
756     unsigned                    : 1;
757     unsigned                    : 1;
758     unsigned                    : 1;
759     unsigned CCP2Y              : 1;
760     unsigned CCP2X              : 1;
761     unsigned                    : 1;
762     unsigned                    : 1;
763     };
764 
765   struct
766     {
767     unsigned CCP2M              : 4;
768     unsigned                    : 4;
769     };
770 
771   struct
772     {
773     unsigned                    : 4;
774     unsigned DC2B               : 2;
775     unsigned                    : 2;
776     };
777   } __CCP2CONbits_t;
778 
779 extern __at(0x001D) volatile __CCP2CONbits_t CCP2CONbits;
780 
781 #define _CCP2M0                 0x01
782 #define _CCP2M1                 0x02
783 #define _CCP2M2                 0x04
784 #define _CCP2M3                 0x08
785 #define _DC2B0                  0x10
786 #define _CCP2Y                  0x10
787 #define _DC2B1                  0x20
788 #define _CCP2X                  0x20
789 
790 //==============================================================================
791 
792 extern __at(0x001E) __sfr ADRES;
793 
794 //==============================================================================
795 //        ADCON0 Bits
796 
797 extern __at(0x001F) __sfr ADCON0;
798 
799 typedef union
800   {
801   struct
802     {
803     unsigned ADON               : 1;
804     unsigned GO_NOT_DONE        : 1;
805     unsigned CHS0               : 1;
806     unsigned CHS1               : 1;
807     unsigned CHS2               : 1;
808     unsigned CHS3               : 1;
809     unsigned                    : 1;
810     unsigned                    : 1;
811     };
812 
813   struct
814     {
815     unsigned                    : 1;
816     unsigned GO                 : 1;
817     unsigned                    : 1;
818     unsigned                    : 1;
819     unsigned                    : 1;
820     unsigned                    : 1;
821     unsigned                    : 1;
822     unsigned                    : 1;
823     };
824 
825   struct
826     {
827     unsigned                    : 1;
828     unsigned NOT_DONE           : 1;
829     unsigned                    : 1;
830     unsigned                    : 1;
831     unsigned                    : 1;
832     unsigned                    : 1;
833     unsigned                    : 1;
834     unsigned                    : 1;
835     };
836 
837   struct
838     {
839     unsigned                    : 1;
840     unsigned GO_DONE            : 1;
841     unsigned                    : 1;
842     unsigned                    : 1;
843     unsigned                    : 1;
844     unsigned                    : 1;
845     unsigned                    : 1;
846     unsigned                    : 1;
847     };
848 
849   struct
850     {
851     unsigned                    : 2;
852     unsigned CHS                : 4;
853     unsigned                    : 2;
854     };
855   } __ADCON0bits_t;
856 
857 extern __at(0x001F) volatile __ADCON0bits_t ADCON0bits;
858 
859 #define _ADON                   0x01
860 #define _GO_NOT_DONE            0x02
861 #define _GO                     0x02
862 #define _NOT_DONE               0x02
863 #define _GO_DONE                0x02
864 #define _CHS0                   0x04
865 #define _CHS1                   0x08
866 #define _CHS2                   0x10
867 #define _CHS3                   0x20
868 
869 //==============================================================================
870 
871 
872 //==============================================================================
873 //        OPTION_REG Bits
874 
875 extern __at(0x0081) __sfr OPTION_REG;
876 
877 typedef union
878   {
879   struct
880     {
881     unsigned PS0                : 1;
882     unsigned PS1                : 1;
883     unsigned PS2                : 1;
884     unsigned PSA                : 1;
885     unsigned T0SE               : 1;
886     unsigned T0CS               : 1;
887     unsigned INTEDG             : 1;
888     unsigned NOT_RBPU           : 1;
889     };
890 
891   struct
892     {
893     unsigned PS                 : 3;
894     unsigned                    : 5;
895     };
896   } __OPTION_REGbits_t;
897 
898 extern __at(0x0081) volatile __OPTION_REGbits_t OPTION_REGbits;
899 
900 #define _PS0                    0x01
901 #define _PS1                    0x02
902 #define _PS2                    0x04
903 #define _PSA                    0x08
904 #define _T0SE                   0x10
905 #define _T0CS                   0x20
906 #define _INTEDG                 0x40
907 #define _NOT_RBPU               0x80
908 
909 //==============================================================================
910 
911 
912 //==============================================================================
913 //        TRISA Bits
914 
915 extern __at(0x0085) __sfr TRISA;
916 
917 typedef struct
918   {
919   unsigned TRISA0               : 1;
920   unsigned TRISA1               : 1;
921   unsigned TRISA2               : 1;
922   unsigned TRISA3               : 1;
923   unsigned TRISA4               : 1;
924   unsigned TRISA5               : 1;
925   unsigned TRISA6               : 1;
926   unsigned TRISA7               : 1;
927   } __TRISAbits_t;
928 
929 extern __at(0x0085) volatile __TRISAbits_t TRISAbits;
930 
931 #define _TRISA0                 0x01
932 #define _TRISA1                 0x02
933 #define _TRISA2                 0x04
934 #define _TRISA3                 0x08
935 #define _TRISA4                 0x10
936 #define _TRISA5                 0x20
937 #define _TRISA6                 0x40
938 #define _TRISA7                 0x80
939 
940 //==============================================================================
941 
942 
943 //==============================================================================
944 //        TRISB Bits
945 
946 extern __at(0x0086) __sfr TRISB;
947 
948 typedef struct
949   {
950   unsigned TRISB0               : 1;
951   unsigned TRISB1               : 1;
952   unsigned TRISB2               : 1;
953   unsigned TRISB3               : 1;
954   unsigned TRISB4               : 1;
955   unsigned TRISB5               : 1;
956   unsigned TRISB6               : 1;
957   unsigned TRISB7               : 1;
958   } __TRISBbits_t;
959 
960 extern __at(0x0086) volatile __TRISBbits_t TRISBbits;
961 
962 #define _TRISB0                 0x01
963 #define _TRISB1                 0x02
964 #define _TRISB2                 0x04
965 #define _TRISB3                 0x08
966 #define _TRISB4                 0x10
967 #define _TRISB5                 0x20
968 #define _TRISB6                 0x40
969 #define _TRISB7                 0x80
970 
971 //==============================================================================
972 
973 
974 //==============================================================================
975 //        TRISC Bits
976 
977 extern __at(0x0087) __sfr TRISC;
978 
979 typedef struct
980   {
981   unsigned TRISC0               : 1;
982   unsigned TRISC1               : 1;
983   unsigned TRISC2               : 1;
984   unsigned TRISC3               : 1;
985   unsigned TRISC4               : 1;
986   unsigned TRISC5               : 1;
987   unsigned TRISC6               : 1;
988   unsigned TRISC7               : 1;
989   } __TRISCbits_t;
990 
991 extern __at(0x0087) volatile __TRISCbits_t TRISCbits;
992 
993 #define _TRISC0                 0x01
994 #define _TRISC1                 0x02
995 #define _TRISC2                 0x04
996 #define _TRISC3                 0x08
997 #define _TRISC4                 0x10
998 #define _TRISC5                 0x20
999 #define _TRISC6                 0x40
1000 #define _TRISC7                 0x80
1001 
1002 //==============================================================================
1003 
1004 
1005 //==============================================================================
1006 //        TRISD Bits
1007 
1008 extern __at(0x0088) __sfr TRISD;
1009 
1010 typedef struct
1011   {
1012   unsigned TRISD0               : 1;
1013   unsigned TRISD1               : 1;
1014   unsigned TRISD2               : 1;
1015   unsigned TRISD3               : 1;
1016   unsigned TRISD4               : 1;
1017   unsigned TRISD5               : 1;
1018   unsigned TRISD6               : 1;
1019   unsigned TRISD7               : 1;
1020   } __TRISDbits_t;
1021 
1022 extern __at(0x0088) volatile __TRISDbits_t TRISDbits;
1023 
1024 #define _TRISD0                 0x01
1025 #define _TRISD1                 0x02
1026 #define _TRISD2                 0x04
1027 #define _TRISD3                 0x08
1028 #define _TRISD4                 0x10
1029 #define _TRISD5                 0x20
1030 #define _TRISD6                 0x40
1031 #define _TRISD7                 0x80
1032 
1033 //==============================================================================
1034 
1035 
1036 //==============================================================================
1037 //        TRISE Bits
1038 
1039 extern __at(0x0089) __sfr TRISE;
1040 
1041 typedef union
1042   {
1043   struct
1044     {
1045     unsigned TRISE0             : 1;
1046     unsigned TRISE1             : 1;
1047     unsigned TRISE2             : 1;
1048     unsigned TRISE3             : 1;
1049     unsigned                    : 1;
1050     unsigned                    : 1;
1051     unsigned                    : 1;
1052     unsigned                    : 1;
1053     };
1054 
1055   struct
1056     {
1057     unsigned TRISE              : 4;
1058     unsigned                    : 4;
1059     };
1060   } __TRISEbits_t;
1061 
1062 extern __at(0x0089) volatile __TRISEbits_t TRISEbits;
1063 
1064 #define _TRISE0                 0x01
1065 #define _TRISE1                 0x02
1066 #define _TRISE2                 0x04
1067 #define _TRISE3                 0x08
1068 
1069 //==============================================================================
1070 
1071 
1072 //==============================================================================
1073 //        PIE1 Bits
1074 
1075 extern __at(0x008C) __sfr PIE1;
1076 
1077 typedef struct
1078   {
1079   unsigned TMR1IE               : 1;
1080   unsigned TMR2IE               : 1;
1081   unsigned CCP1IE               : 1;
1082   unsigned SSPIE                : 1;
1083   unsigned TXIE                 : 1;
1084   unsigned RCIE                 : 1;
1085   unsigned ADIE                 : 1;
1086   unsigned TMR1GIE              : 1;
1087   } __PIE1bits_t;
1088 
1089 extern __at(0x008C) volatile __PIE1bits_t PIE1bits;
1090 
1091 #define _TMR1IE                 0x01
1092 #define _TMR2IE                 0x02
1093 #define _CCP1IE                 0x04
1094 #define _SSPIE                  0x08
1095 #define _TXIE                   0x10
1096 #define _RCIE                   0x20
1097 #define _ADIE                   0x40
1098 #define _TMR1GIE                0x80
1099 
1100 //==============================================================================
1101 
1102 
1103 //==============================================================================
1104 //        PIE2 Bits
1105 
1106 extern __at(0x008D) __sfr PIE2;
1107 
1108 typedef struct
1109   {
1110   unsigned CCP2IE               : 1;
1111   unsigned                      : 1;
1112   unsigned                      : 1;
1113   unsigned                      : 1;
1114   unsigned                      : 1;
1115   unsigned                      : 1;
1116   unsigned                      : 1;
1117   unsigned                      : 1;
1118   } __PIE2bits_t;
1119 
1120 extern __at(0x008D) volatile __PIE2bits_t PIE2bits;
1121 
1122 #define _CCP2IE                 0x01
1123 
1124 //==============================================================================
1125 
1126 
1127 //==============================================================================
1128 //        PCON Bits
1129 
1130 extern __at(0x008E) __sfr PCON;
1131 
1132 typedef union
1133   {
1134   struct
1135     {
1136     unsigned NOT_BOR            : 1;
1137     unsigned NOT_POR            : 1;
1138     unsigned                    : 1;
1139     unsigned                    : 1;
1140     unsigned                    : 1;
1141     unsigned                    : 1;
1142     unsigned                    : 1;
1143     unsigned                    : 1;
1144     };
1145 
1146   struct
1147     {
1148     unsigned NOT_BO             : 1;
1149     unsigned                    : 1;
1150     unsigned                    : 1;
1151     unsigned                    : 1;
1152     unsigned                    : 1;
1153     unsigned                    : 1;
1154     unsigned                    : 1;
1155     unsigned                    : 1;
1156     };
1157   } __PCONbits_t;
1158 
1159 extern __at(0x008E) volatile __PCONbits_t PCONbits;
1160 
1161 #define _NOT_BOR                0x01
1162 #define _NOT_BO                 0x01
1163 #define _NOT_POR                0x02
1164 
1165 //==============================================================================
1166 
1167 
1168 //==============================================================================
1169 //        T1GCON Bits
1170 
1171 extern __at(0x008F) __sfr T1GCON;
1172 
1173 typedef union
1174   {
1175   struct
1176     {
1177     unsigned T1GSS0             : 1;
1178     unsigned T1GSS1             : 1;
1179     unsigned T1GVAL             : 1;
1180     unsigned T1GGO_NOT_DONE     : 1;
1181     unsigned T1GSPM             : 1;
1182     unsigned T1GTM              : 1;
1183     unsigned T1GPOL             : 1;
1184     unsigned TMR1GE             : 1;
1185     };
1186 
1187   struct
1188     {
1189     unsigned                    : 1;
1190     unsigned                    : 1;
1191     unsigned                    : 1;
1192     unsigned T1G_NOT_DONE       : 1;
1193     unsigned                    : 1;
1194     unsigned                    : 1;
1195     unsigned                    : 1;
1196     unsigned                    : 1;
1197     };
1198 
1199   struct
1200     {
1201     unsigned                    : 1;
1202     unsigned                    : 1;
1203     unsigned                    : 1;
1204     unsigned T1GGO_DONE         : 1;
1205     unsigned                    : 1;
1206     unsigned                    : 1;
1207     unsigned                    : 1;
1208     unsigned                    : 1;
1209     };
1210 
1211   struct
1212     {
1213     unsigned                    : 1;
1214     unsigned                    : 1;
1215     unsigned                    : 1;
1216     unsigned T1GGO              : 1;
1217     unsigned                    : 1;
1218     unsigned                    : 1;
1219     unsigned                    : 1;
1220     unsigned                    : 1;
1221     };
1222 
1223   struct
1224     {
1225     unsigned T1GSS              : 2;
1226     unsigned                    : 6;
1227     };
1228   } __T1GCONbits_t;
1229 
1230 extern __at(0x008F) volatile __T1GCONbits_t T1GCONbits;
1231 
1232 #define _T1GSS0                 0x01
1233 #define _T1GSS1                 0x02
1234 #define _T1GVAL                 0x04
1235 #define _T1GGO_NOT_DONE         0x08
1236 #define _T1G_NOT_DONE           0x08
1237 #define _T1GGO_DONE             0x08
1238 #define _T1GGO                  0x08
1239 #define _T1GSPM                 0x10
1240 #define _T1GTM                  0x20
1241 #define _T1GPOL                 0x40
1242 #define _TMR1GE                 0x80
1243 
1244 //==============================================================================
1245 
1246 
1247 //==============================================================================
1248 //        OSCCON Bits
1249 
1250 extern __at(0x0090) __sfr OSCCON;
1251 
1252 typedef union
1253   {
1254   struct
1255     {
1256     unsigned                    : 1;
1257     unsigned                    : 1;
1258     unsigned ICSS               : 1;
1259     unsigned ICSL               : 1;
1260     unsigned IRCF0              : 1;
1261     unsigned IRCF1              : 1;
1262     unsigned                    : 1;
1263     unsigned                    : 1;
1264     };
1265 
1266   struct
1267     {
1268     unsigned                    : 4;
1269     unsigned IRCF               : 2;
1270     unsigned                    : 2;
1271     };
1272   } __OSCCONbits_t;
1273 
1274 extern __at(0x0090) volatile __OSCCONbits_t OSCCONbits;
1275 
1276 #define _ICSS                   0x04
1277 #define _ICSL                   0x08
1278 #define _IRCF0                  0x10
1279 #define _IRCF1                  0x20
1280 
1281 //==============================================================================
1282 
1283 
1284 //==============================================================================
1285 //        OSCTUNE Bits
1286 
1287 extern __at(0x0091) __sfr OSCTUNE;
1288 
1289 typedef union
1290   {
1291   struct
1292     {
1293     unsigned TUN0               : 1;
1294     unsigned TUN1               : 1;
1295     unsigned TUN2               : 1;
1296     unsigned TUN3               : 1;
1297     unsigned TUN4               : 1;
1298     unsigned TUN5               : 1;
1299     unsigned                    : 1;
1300     unsigned                    : 1;
1301     };
1302 
1303   struct
1304     {
1305     unsigned TUN                : 6;
1306     unsigned                    : 2;
1307     };
1308   } __OSCTUNEbits_t;
1309 
1310 extern __at(0x0091) volatile __OSCTUNEbits_t OSCTUNEbits;
1311 
1312 #define _TUN0                   0x01
1313 #define _TUN1                   0x02
1314 #define _TUN2                   0x04
1315 #define _TUN3                   0x08
1316 #define _TUN4                   0x10
1317 #define _TUN5                   0x20
1318 
1319 //==============================================================================
1320 
1321 extern __at(0x0092) __sfr PR2;
1322 extern __at(0x0093) __sfr SSPADD;
1323 extern __at(0x0093) __sfr SSPMSK;
1324 
1325 //==============================================================================
1326 //        SSPSTAT Bits
1327 
1328 extern __at(0x0094) __sfr SSPSTAT;
1329 
1330 typedef union
1331   {
1332   struct
1333     {
1334     unsigned BF                 : 1;
1335     unsigned UA                 : 1;
1336     unsigned R_NOT_W            : 1;
1337     unsigned S                  : 1;
1338     unsigned P                  : 1;
1339     unsigned D_NOT_A            : 1;
1340     unsigned CKE                : 1;
1341     unsigned SMP                : 1;
1342     };
1343 
1344   struct
1345     {
1346     unsigned                    : 1;
1347     unsigned                    : 1;
1348     unsigned R                  : 1;
1349     unsigned I2C_START          : 1;
1350     unsigned I2C_STOP           : 1;
1351     unsigned D                  : 1;
1352     unsigned                    : 1;
1353     unsigned                    : 1;
1354     };
1355 
1356   struct
1357     {
1358     unsigned                    : 1;
1359     unsigned                    : 1;
1360     unsigned I2C_READ           : 1;
1361     unsigned                    : 1;
1362     unsigned                    : 1;
1363     unsigned I2C_DATA           : 1;
1364     unsigned                    : 1;
1365     unsigned                    : 1;
1366     };
1367 
1368   struct
1369     {
1370     unsigned                    : 1;
1371     unsigned                    : 1;
1372     unsigned NOT_W              : 1;
1373     unsigned                    : 1;
1374     unsigned                    : 1;
1375     unsigned NOT_A              : 1;
1376     unsigned                    : 1;
1377     unsigned                    : 1;
1378     };
1379 
1380   struct
1381     {
1382     unsigned                    : 1;
1383     unsigned                    : 1;
1384     unsigned NOT_WRITE          : 1;
1385     unsigned                    : 1;
1386     unsigned                    : 1;
1387     unsigned NOT_ADDRESS        : 1;
1388     unsigned                    : 1;
1389     unsigned                    : 1;
1390     };
1391 
1392   struct
1393     {
1394     unsigned                    : 1;
1395     unsigned                    : 1;
1396     unsigned R_W                : 1;
1397     unsigned                    : 1;
1398     unsigned                    : 1;
1399     unsigned D_A                : 1;
1400     unsigned                    : 1;
1401     unsigned                    : 1;
1402     };
1403 
1404   struct
1405     {
1406     unsigned                    : 1;
1407     unsigned                    : 1;
1408     unsigned READ_WRITE         : 1;
1409     unsigned                    : 1;
1410     unsigned                    : 1;
1411     unsigned DATA_ADDRESS       : 1;
1412     unsigned                    : 1;
1413     unsigned                    : 1;
1414     };
1415   } __SSPSTATbits_t;
1416 
1417 extern __at(0x0094) volatile __SSPSTATbits_t SSPSTATbits;
1418 
1419 #define _BF                     0x01
1420 #define _UA                     0x02
1421 #define _R_NOT_W                0x04
1422 #define _R                      0x04
1423 #define _I2C_READ               0x04
1424 #define _NOT_W                  0x04
1425 #define _NOT_WRITE              0x04
1426 #define _R_W                    0x04
1427 #define _READ_WRITE             0x04
1428 #define _S                      0x08
1429 #define _I2C_START              0x08
1430 #define _P                      0x10
1431 #define _I2C_STOP               0x10
1432 #define _D_NOT_A                0x20
1433 #define _D                      0x20
1434 #define _I2C_DATA               0x20
1435 #define _NOT_A                  0x20
1436 #define _NOT_ADDRESS            0x20
1437 #define _D_A                    0x20
1438 #define _DATA_ADDRESS           0x20
1439 #define _CKE                    0x40
1440 #define _SMP                    0x80
1441 
1442 //==============================================================================
1443 
1444 
1445 //==============================================================================
1446 //        WPU Bits
1447 
1448 extern __at(0x0095) __sfr WPU;
1449 
1450 typedef union
1451   {
1452   struct
1453     {
1454     unsigned WPUB0              : 1;
1455     unsigned WPUB1              : 1;
1456     unsigned WPUB2              : 1;
1457     unsigned WPUB3              : 1;
1458     unsigned WPUB4              : 1;
1459     unsigned WPUB5              : 1;
1460     unsigned WPUB6              : 1;
1461     unsigned WPUB7              : 1;
1462     };
1463 
1464   struct
1465     {
1466     unsigned WPU0               : 1;
1467     unsigned WPU1               : 1;
1468     unsigned WPU2               : 1;
1469     unsigned WPU3               : 1;
1470     unsigned WPU4               : 1;
1471     unsigned WPU5               : 1;
1472     unsigned WPU6               : 1;
1473     unsigned WPU7               : 1;
1474     };
1475   } __WPUbits_t;
1476 
1477 extern __at(0x0095) volatile __WPUbits_t WPUbits;
1478 
1479 #define _WPUB0                  0x01
1480 #define _WPU0                   0x01
1481 #define _WPUB1                  0x02
1482 #define _WPU1                   0x02
1483 #define _WPUB2                  0x04
1484 #define _WPU2                   0x04
1485 #define _WPUB3                  0x08
1486 #define _WPU3                   0x08
1487 #define _WPUB4                  0x10
1488 #define _WPU4                   0x10
1489 #define _WPUB5                  0x20
1490 #define _WPU5                   0x20
1491 #define _WPUB6                  0x40
1492 #define _WPU6                   0x40
1493 #define _WPUB7                  0x80
1494 #define _WPU7                   0x80
1495 
1496 //==============================================================================
1497 
1498 
1499 //==============================================================================
1500 //        WPUB Bits
1501 
1502 extern __at(0x0095) __sfr WPUB;
1503 
1504 typedef union
1505   {
1506   struct
1507     {
1508     unsigned WPUB0              : 1;
1509     unsigned WPUB1              : 1;
1510     unsigned WPUB2              : 1;
1511     unsigned WPUB3              : 1;
1512     unsigned WPUB4              : 1;
1513     unsigned WPUB5              : 1;
1514     unsigned WPUB6              : 1;
1515     unsigned WPUB7              : 1;
1516     };
1517 
1518   struct
1519     {
1520     unsigned WPU0               : 1;
1521     unsigned WPU1               : 1;
1522     unsigned WPU2               : 1;
1523     unsigned WPU3               : 1;
1524     unsigned WPU4               : 1;
1525     unsigned WPU5               : 1;
1526     unsigned WPU6               : 1;
1527     unsigned WPU7               : 1;
1528     };
1529   } __WPUBbits_t;
1530 
1531 extern __at(0x0095) volatile __WPUBbits_t WPUBbits;
1532 
1533 #define _WPUB_WPUB0             0x01
1534 #define _WPUB_WPU0              0x01
1535 #define _WPUB_WPUB1             0x02
1536 #define _WPUB_WPU1              0x02
1537 #define _WPUB_WPUB2             0x04
1538 #define _WPUB_WPU2              0x04
1539 #define _WPUB_WPUB3             0x08
1540 #define _WPUB_WPU3              0x08
1541 #define _WPUB_WPUB4             0x10
1542 #define _WPUB_WPU4              0x10
1543 #define _WPUB_WPUB5             0x20
1544 #define _WPUB_WPU5              0x20
1545 #define _WPUB_WPUB6             0x40
1546 #define _WPUB_WPU6              0x40
1547 #define _WPUB_WPUB7             0x80
1548 #define _WPUB_WPU7              0x80
1549 
1550 //==============================================================================
1551 
1552 
1553 //==============================================================================
1554 //        IOC Bits
1555 
1556 extern __at(0x0096) __sfr IOC;
1557 
1558 typedef union
1559   {
1560   struct
1561     {
1562     unsigned IOCB0              : 1;
1563     unsigned IOCB1              : 1;
1564     unsigned IOCB2              : 1;
1565     unsigned IOCB3              : 1;
1566     unsigned IOCB4              : 1;
1567     unsigned IOCB5              : 1;
1568     unsigned IOCB6              : 1;
1569     unsigned IOCB7              : 1;
1570     };
1571 
1572   struct
1573     {
1574     unsigned IOC0               : 1;
1575     unsigned IOC1               : 1;
1576     unsigned IOC2               : 1;
1577     unsigned IOC3               : 1;
1578     unsigned IOC4               : 1;
1579     unsigned IOC5               : 1;
1580     unsigned IOC6               : 1;
1581     unsigned IOC7               : 1;
1582     };
1583   } __IOCbits_t;
1584 
1585 extern __at(0x0096) volatile __IOCbits_t IOCbits;
1586 
1587 #define _IOCB0                  0x01
1588 #define _IOC0                   0x01
1589 #define _IOCB1                  0x02
1590 #define _IOC1                   0x02
1591 #define _IOCB2                  0x04
1592 #define _IOC2                   0x04
1593 #define _IOCB3                  0x08
1594 #define _IOC3                   0x08
1595 #define _IOCB4                  0x10
1596 #define _IOC4                   0x10
1597 #define _IOCB5                  0x20
1598 #define _IOC5                   0x20
1599 #define _IOCB6                  0x40
1600 #define _IOC6                   0x40
1601 #define _IOCB7                  0x80
1602 #define _IOC7                   0x80
1603 
1604 //==============================================================================
1605 
1606 
1607 //==============================================================================
1608 //        IOCB Bits
1609 
1610 extern __at(0x0096) __sfr IOCB;
1611 
1612 typedef union
1613   {
1614   struct
1615     {
1616     unsigned IOCB0              : 1;
1617     unsigned IOCB1              : 1;
1618     unsigned IOCB2              : 1;
1619     unsigned IOCB3              : 1;
1620     unsigned IOCB4              : 1;
1621     unsigned IOCB5              : 1;
1622     unsigned IOCB6              : 1;
1623     unsigned IOCB7              : 1;
1624     };
1625 
1626   struct
1627     {
1628     unsigned IOC0               : 1;
1629     unsigned IOC1               : 1;
1630     unsigned IOC2               : 1;
1631     unsigned IOC3               : 1;
1632     unsigned IOC4               : 1;
1633     unsigned IOC5               : 1;
1634     unsigned IOC6               : 1;
1635     unsigned IOC7               : 1;
1636     };
1637   } __IOCBbits_t;
1638 
1639 extern __at(0x0096) volatile __IOCBbits_t IOCBbits;
1640 
1641 #define _IOCB_IOCB0             0x01
1642 #define _IOCB_IOC0              0x01
1643 #define _IOCB_IOCB1             0x02
1644 #define _IOCB_IOC1              0x02
1645 #define _IOCB_IOCB2             0x04
1646 #define _IOCB_IOC2              0x04
1647 #define _IOCB_IOCB3             0x08
1648 #define _IOCB_IOC3              0x08
1649 #define _IOCB_IOCB4             0x10
1650 #define _IOCB_IOC4              0x10
1651 #define _IOCB_IOCB5             0x20
1652 #define _IOCB_IOC5              0x20
1653 #define _IOCB_IOCB6             0x40
1654 #define _IOCB_IOC6              0x40
1655 #define _IOCB_IOCB7             0x80
1656 #define _IOCB_IOC7              0x80
1657 
1658 //==============================================================================
1659 
1660 
1661 //==============================================================================
1662 //        TXSTA Bits
1663 
1664 extern __at(0x0098) __sfr TXSTA;
1665 
1666 typedef union
1667   {
1668   struct
1669     {
1670     unsigned TX9D               : 1;
1671     unsigned TRMT               : 1;
1672     unsigned BRGH               : 1;
1673     unsigned                    : 1;
1674     unsigned SYNC               : 1;
1675     unsigned TXEN               : 1;
1676     unsigned TX9                : 1;
1677     unsigned CSRC               : 1;
1678     };
1679 
1680   struct
1681     {
1682     unsigned TXD8               : 1;
1683     unsigned                    : 1;
1684     unsigned                    : 1;
1685     unsigned                    : 1;
1686     unsigned                    : 1;
1687     unsigned                    : 1;
1688     unsigned NOT_TX8            : 1;
1689     unsigned                    : 1;
1690     };
1691 
1692   struct
1693     {
1694     unsigned                    : 1;
1695     unsigned                    : 1;
1696     unsigned                    : 1;
1697     unsigned                    : 1;
1698     unsigned                    : 1;
1699     unsigned                    : 1;
1700     unsigned TX8_9              : 1;
1701     unsigned                    : 1;
1702     };
1703   } __TXSTAbits_t;
1704 
1705 extern __at(0x0098) volatile __TXSTAbits_t TXSTAbits;
1706 
1707 #define _TX9D                   0x01
1708 #define _TXD8                   0x01
1709 #define _TRMT                   0x02
1710 #define _BRGH                   0x04
1711 #define _SYNC                   0x10
1712 #define _TXEN                   0x20
1713 #define _TX9                    0x40
1714 #define _NOT_TX8                0x40
1715 #define _TX8_9                  0x40
1716 #define _CSRC                   0x80
1717 
1718 //==============================================================================
1719 
1720 extern __at(0x0099) __sfr SPBRG;
1721 
1722 //==============================================================================
1723 //        APFCON Bits
1724 
1725 extern __at(0x009C) __sfr APFCON;
1726 
1727 typedef struct
1728   {
1729   unsigned CCP2SEL              : 1;
1730   unsigned SSSEL                : 1;
1731   unsigned                      : 1;
1732   unsigned                      : 1;
1733   unsigned                      : 1;
1734   unsigned                      : 1;
1735   unsigned                      : 1;
1736   unsigned                      : 1;
1737   } __APFCONbits_t;
1738 
1739 extern __at(0x009C) volatile __APFCONbits_t APFCONbits;
1740 
1741 #define _CCP2SEL                0x01
1742 #define _SSSEL                  0x02
1743 
1744 //==============================================================================
1745 
1746 
1747 //==============================================================================
1748 //        FVRCON Bits
1749 
1750 extern __at(0x009D) __sfr FVRCON;
1751 
1752 typedef union
1753   {
1754   struct
1755     {
1756     unsigned ADFVR0             : 1;
1757     unsigned ADFVR1             : 1;
1758     unsigned                    : 1;
1759     unsigned                    : 1;
1760     unsigned                    : 1;
1761     unsigned                    : 1;
1762     unsigned FVREN              : 1;
1763     unsigned FVRRDY             : 1;
1764     };
1765 
1766   struct
1767     {
1768     unsigned                    : 1;
1769     unsigned                    : 1;
1770     unsigned                    : 1;
1771     unsigned                    : 1;
1772     unsigned                    : 1;
1773     unsigned                    : 1;
1774     unsigned                    : 1;
1775     unsigned FVRST              : 1;
1776     };
1777 
1778   struct
1779     {
1780     unsigned ADFVR              : 2;
1781     unsigned                    : 6;
1782     };
1783   } __FVRCONbits_t;
1784 
1785 extern __at(0x009D) volatile __FVRCONbits_t FVRCONbits;
1786 
1787 #define _ADFVR0                 0x01
1788 #define _ADFVR1                 0x02
1789 #define _FVREN                  0x40
1790 #define _FVRRDY                 0x80
1791 #define _FVRST                  0x80
1792 
1793 //==============================================================================
1794 
1795 
1796 //==============================================================================
1797 //        ADCON1 Bits
1798 
1799 extern __at(0x009F) __sfr ADCON1;
1800 
1801 typedef union
1802   {
1803   struct
1804     {
1805     unsigned ADREF0             : 1;
1806     unsigned ADREF1             : 1;
1807     unsigned                    : 1;
1808     unsigned                    : 1;
1809     unsigned ADCS0              : 1;
1810     unsigned ADCS1              : 1;
1811     unsigned ADCS2              : 1;
1812     unsigned                    : 1;
1813     };
1814 
1815   struct
1816     {
1817     unsigned ADREF              : 2;
1818     unsigned                    : 6;
1819     };
1820 
1821   struct
1822     {
1823     unsigned                    : 4;
1824     unsigned ADCS               : 3;
1825     unsigned                    : 1;
1826     };
1827   } __ADCON1bits_t;
1828 
1829 extern __at(0x009F) volatile __ADCON1bits_t ADCON1bits;
1830 
1831 #define _ADREF0                 0x01
1832 #define _ADREF1                 0x02
1833 #define _ADCS0                  0x10
1834 #define _ADCS1                  0x20
1835 #define _ADCS2                  0x40
1836 
1837 //==============================================================================
1838 
1839 
1840 //==============================================================================
1841 //        CPSCON0 Bits
1842 
1843 extern __at(0x0108) __sfr CPSCON0;
1844 
1845 typedef union
1846   {
1847   struct
1848     {
1849     unsigned T0XCS              : 1;
1850     unsigned CPSOUT             : 1;
1851     unsigned CPSRNG0            : 1;
1852     unsigned CPSRNG1            : 1;
1853     unsigned                    : 1;
1854     unsigned                    : 1;
1855     unsigned                    : 1;
1856     unsigned CPSON              : 1;
1857     };
1858 
1859   struct
1860     {
1861     unsigned                    : 2;
1862     unsigned CPSRNG             : 2;
1863     unsigned                    : 4;
1864     };
1865   } __CPSCON0bits_t;
1866 
1867 extern __at(0x0108) volatile __CPSCON0bits_t CPSCON0bits;
1868 
1869 #define _T0XCS                  0x01
1870 #define _CPSOUT                 0x02
1871 #define _CPSRNG0                0x04
1872 #define _CPSRNG1                0x08
1873 #define _CPSON                  0x80
1874 
1875 //==============================================================================
1876 
1877 
1878 //==============================================================================
1879 //        CPSCON1 Bits
1880 
1881 extern __at(0x0109) __sfr CPSCON1;
1882 
1883 typedef union
1884   {
1885   struct
1886     {
1887     unsigned CPSCH0             : 1;
1888     unsigned CPSCH1             : 1;
1889     unsigned CPSCH2             : 1;
1890     unsigned CPSCH3             : 1;
1891     unsigned                    : 1;
1892     unsigned                    : 1;
1893     unsigned                    : 1;
1894     unsigned                    : 1;
1895     };
1896 
1897   struct
1898     {
1899     unsigned CPSCH              : 4;
1900     unsigned                    : 4;
1901     };
1902   } __CPSCON1bits_t;
1903 
1904 extern __at(0x0109) volatile __CPSCON1bits_t CPSCON1bits;
1905 
1906 #define _CPSCH0                 0x01
1907 #define _CPSCH1                 0x02
1908 #define _CPSCH2                 0x04
1909 #define _CPSCH3                 0x08
1910 
1911 //==============================================================================
1912 
1913 extern __at(0x010C) __sfr PMDATA;
1914 extern __at(0x010C) __sfr PMDATL;
1915 extern __at(0x010D) __sfr PMADR;
1916 extern __at(0x010D) __sfr PMADRL;
1917 extern __at(0x010E) __sfr PMDATH;
1918 extern __at(0x010F) __sfr PMADRH;
1919 
1920 //==============================================================================
1921 //        ANSELA Bits
1922 
1923 extern __at(0x0185) __sfr ANSELA;
1924 
1925 typedef union
1926   {
1927   struct
1928     {
1929     unsigned ANSA0              : 1;
1930     unsigned ANSA1              : 1;
1931     unsigned ANSA2              : 1;
1932     unsigned ANSA3              : 1;
1933     unsigned ANSA4              : 1;
1934     unsigned ANSA5              : 1;
1935     unsigned                    : 1;
1936     unsigned                    : 1;
1937     };
1938 
1939   struct
1940     {
1941     unsigned ANSA               : 6;
1942     unsigned                    : 2;
1943     };
1944   } __ANSELAbits_t;
1945 
1946 extern __at(0x0185) volatile __ANSELAbits_t ANSELAbits;
1947 
1948 #define _ANSA0                  0x01
1949 #define _ANSA1                  0x02
1950 #define _ANSA2                  0x04
1951 #define _ANSA3                  0x08
1952 #define _ANSA4                  0x10
1953 #define _ANSA5                  0x20
1954 
1955 //==============================================================================
1956 
1957 
1958 //==============================================================================
1959 //        ANSELB Bits
1960 
1961 extern __at(0x0186) __sfr ANSELB;
1962 
1963 typedef union
1964   {
1965   struct
1966     {
1967     unsigned ANSB0              : 1;
1968     unsigned ANSB1              : 1;
1969     unsigned ANSB2              : 1;
1970     unsigned ANSB3              : 1;
1971     unsigned ANSB4              : 1;
1972     unsigned ANSB5              : 1;
1973     unsigned                    : 1;
1974     unsigned                    : 1;
1975     };
1976 
1977   struct
1978     {
1979     unsigned ANSB               : 6;
1980     unsigned                    : 2;
1981     };
1982   } __ANSELBbits_t;
1983 
1984 extern __at(0x0186) volatile __ANSELBbits_t ANSELBbits;
1985 
1986 #define _ANSB0                  0x01
1987 #define _ANSB1                  0x02
1988 #define _ANSB2                  0x04
1989 #define _ANSB3                  0x08
1990 #define _ANSB4                  0x10
1991 #define _ANSB5                  0x20
1992 
1993 //==============================================================================
1994 
1995 
1996 //==============================================================================
1997 //        ANSELD Bits
1998 
1999 extern __at(0x0188) __sfr ANSELD;
2000 
2001 typedef struct
2002   {
2003   unsigned ANSD0                : 1;
2004   unsigned ANSD1                : 1;
2005   unsigned ANSD2                : 1;
2006   unsigned ANSD3                : 1;
2007   unsigned ANSD4                : 1;
2008   unsigned ANSD5                : 1;
2009   unsigned ANSD6                : 1;
2010   unsigned ANSD7                : 1;
2011   } __ANSELDbits_t;
2012 
2013 extern __at(0x0188) volatile __ANSELDbits_t ANSELDbits;
2014 
2015 #define _ANSD0                  0x01
2016 #define _ANSD1                  0x02
2017 #define _ANSD2                  0x04
2018 #define _ANSD3                  0x08
2019 #define _ANSD4                  0x10
2020 #define _ANSD5                  0x20
2021 #define _ANSD6                  0x40
2022 #define _ANSD7                  0x80
2023 
2024 //==============================================================================
2025 
2026 
2027 //==============================================================================
2028 //        ANSELE Bits
2029 
2030 extern __at(0x0189) __sfr ANSELE;
2031 
2032 typedef union
2033   {
2034   struct
2035     {
2036     unsigned ANSE0              : 1;
2037     unsigned ANSE1              : 1;
2038     unsigned ANSE2              : 1;
2039     unsigned                    : 1;
2040     unsigned                    : 1;
2041     unsigned                    : 1;
2042     unsigned                    : 1;
2043     unsigned                    : 1;
2044     };
2045 
2046   struct
2047     {
2048     unsigned ANSE               : 3;
2049     unsigned                    : 5;
2050     };
2051   } __ANSELEbits_t;
2052 
2053 extern __at(0x0189) volatile __ANSELEbits_t ANSELEbits;
2054 
2055 #define _ANSE0                  0x01
2056 #define _ANSE1                  0x02
2057 #define _ANSE2                  0x04
2058 
2059 //==============================================================================
2060 
2061 
2062 //==============================================================================
2063 //        PMCON1 Bits
2064 
2065 extern __at(0x018C) __sfr PMCON1;
2066 
2067 typedef union
2068   {
2069   struct
2070     {
2071     unsigned RD                 : 1;
2072     unsigned                    : 1;
2073     unsigned                    : 1;
2074     unsigned                    : 1;
2075     unsigned                    : 1;
2076     unsigned                    : 1;
2077     unsigned                    : 1;
2078     unsigned                    : 1;
2079     };
2080 
2081   struct
2082     {
2083     unsigned PMRD               : 1;
2084     unsigned                    : 1;
2085     unsigned                    : 1;
2086     unsigned                    : 1;
2087     unsigned                    : 1;
2088     unsigned                    : 1;
2089     unsigned                    : 1;
2090     unsigned                    : 1;
2091     };
2092   } __PMCON1bits_t;
2093 
2094 extern __at(0x018C) volatile __PMCON1bits_t PMCON1bits;
2095 
2096 #define _RD                     0x01
2097 #define _PMRD                   0x01
2098 
2099 //==============================================================================
2100 
2101 
2102 //==============================================================================
2103 //
2104 //        Configuration Bits
2105 //
2106 //==============================================================================
2107 
2108 #define _CONFIG1                0x2007
2109 #define _CONFIG2                0x2008
2110 
2111 //----------------------------- CONFIG1 Options -------------------------------
2112 
2113 #define _FOSC_LP                0x3FF8  // LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2114 #define _LP_OSC                 0x3FF8  // LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2115 #define _FOSC_XT                0x3FF9  // XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2116 #define _XT_OSC                 0x3FF9  // XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2117 #define _FOSC_HS                0x3FFA  // HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2118 #define _HS_OSC                 0x3FFA  // HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN.
2119 #define _FOSC_EC                0x3FFB  // EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN.
2120 #define _EC_OSC                 0x3FFB  // EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN.
2121 #define _FOSC_INTOSCIO          0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2122 #define _INTRC_OSC_NOCLKOUT     0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2123 #define _INTOSCIO               0x3FFC  // INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2124 #define _FOSC_INTOSCCLK         0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2125 #define _INTRC_OSC_CLKOUT       0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2126 #define _INTOSC                 0x3FFD  // INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN.
2127 #define _FOSC_EXTRCIO           0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2128 #define _EXTRC_OSC_NOCLKOUT     0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2129 #define _EXTRCIO                0x3FFE  // RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2130 #define _FOSC_EXTRCCLK          0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2131 #define _EXTRC_OSC_CLKOUT       0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2132 #define _EXTRC                  0x3FFF  // RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN.
2133 #define _WDTE_OFF               0x3FF7  // WDT disabled and can be enabled by SWDTEN bit of the WDTCON register.
2134 #define _WDT_OFF                0x3FF7  // WDT disabled and can be enabled by SWDTEN bit of the WDTCON register.
2135 #define _WDTE_ON                0x3FFF  // WDT enabled.
2136 #define _WDT_ON                 0x3FFF  // WDT enabled.
2137 #define _PWRTE_ON               0x3FEF  // PWRT enabled.
2138 #define _PWRT_EN                0x3FEF  // PWRT enabled.
2139 #define _PWRTE_OFF              0x3FFF  // PWRT disabled.
2140 #define _PWRT_DIS               0x3FFF  // PWRT disabled.
2141 #define _MCLRE_OFF              0x3FDF  // RE3/MCLR pin function is digital input, MCLR internally tied to VDD.
2142 #define _MCLR_DIS               0x3FDF  // RE3/MCLR pin function is digital input, MCLR internally tied to VDD.
2143 #define _MCLRE_ON               0x3FFF  // RE3/MCLR pin function is MCLR.
2144 #define _MCLR_EN                0x3FFF  // RE3/MCLR pin function is MCLR.
2145 #define _CP_ON                  0x3FBF  // Program memory code protection is enabled.
2146 #define _CP_OFF                 0x3FFF  // Program memory code protection is disabled.
2147 #define _BOREN_OFF              0x3CFF  // BOR disabled.
2148 #define _BOR_OFF                0x3CFF  // BOR disabled.
2149 #define _BOREN_NSLEEP           0x3EFF  // BOR enabled during operation and disabled in Sleep.
2150 #define _BOR_NSLEEP             0x3EFF  // BOR enabled during operation and disabled in Sleep.
2151 #define _BOREN_ON               0x3FFF  // BOR enabled.
2152 #define _BOR_ON                 0x3FFF  // BOR enabled.
2153 #define _BORV_25                0x3BFF  // Brown-out Reset Voltage (VBOR) set to 2.5 V nominal.
2154 #define _BORV_2_5               0x3BFF  // Brown-out Reset Voltage (VBOR) set to 2.5 V nominal.
2155 #define _BORV_19                0x3FFF  // Brown-out Reset Voltage (VBOR) set to 1.9 V nominal.
2156 #define _BORV_1_9               0x3FFF  // Brown-out Reset Voltage (VBOR) set to 1.9 V nominal.
2157 #define _PLLEN_OFF              0x2FFF  // INTOSC Frequency is 500 kHz.
2158 #define _PLL_DIS                0x2FFF  // INTOSC Frequency is 500 kHz.
2159 #define _PLLEN_ON               0x3FFF  // INTOSC Frequency is 16MHz (32x).
2160 #define _PLL_EN                 0x3FFF  // INTOSC Frequency is 16MHz (32x).
2161 #define _DEBUG_ON               0x1FFF  // In-Circuit Debugger enabled, RB6/ICSPCLK and RB7/ICSPDAT are dedicated to the debugger.
2162 #define _DEBUG_OFF              0x3FFF  // In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins.
2163 
2164 //==============================================================================
2165 
2166 #define _DEVID1                 0x2006
2167 
2168 #define _IDLOC0                 0x2000
2169 #define _IDLOC1                 0x2001
2170 #define _IDLOC2                 0x2002
2171 #define _IDLOC3                 0x2003
2172 
2173 //==============================================================================
2174 
2175 #ifndef NO_BIT_DEFINES
2176 
2177 #define ADON                    ADCON0bits.ADON                 // bit 0
2178 #define GO_NOT_DONE             ADCON0bits.GO_NOT_DONE          // bit 1, shadows bit in ADCON0bits
2179 #define GO                      ADCON0bits.GO                   // bit 1, shadows bit in ADCON0bits
2180 #define NOT_DONE                ADCON0bits.NOT_DONE             // bit 1, shadows bit in ADCON0bits
2181 #define GO_DONE                 ADCON0bits.GO_DONE              // bit 1, shadows bit in ADCON0bits
2182 #define CHS0                    ADCON0bits.CHS0                 // bit 2
2183 #define CHS1                    ADCON0bits.CHS1                 // bit 3
2184 #define CHS2                    ADCON0bits.CHS2                 // bit 4
2185 #define CHS3                    ADCON0bits.CHS3                 // bit 5
2186 
2187 #define ADREF0                  ADCON1bits.ADREF0               // bit 0
2188 #define ADREF1                  ADCON1bits.ADREF1               // bit 1
2189 #define ADCS0                   ADCON1bits.ADCS0                // bit 4
2190 #define ADCS1                   ADCON1bits.ADCS1                // bit 5
2191 #define ADCS2                   ADCON1bits.ADCS2                // bit 6
2192 
2193 #define ANSA0                   ANSELAbits.ANSA0                // bit 0
2194 #define ANSA1                   ANSELAbits.ANSA1                // bit 1
2195 #define ANSA2                   ANSELAbits.ANSA2                // bit 2
2196 #define ANSA3                   ANSELAbits.ANSA3                // bit 3
2197 #define ANSA4                   ANSELAbits.ANSA4                // bit 4
2198 #define ANSA5                   ANSELAbits.ANSA5                // bit 5
2199 
2200 #define ANSB0                   ANSELBbits.ANSB0                // bit 0
2201 #define ANSB1                   ANSELBbits.ANSB1                // bit 1
2202 #define ANSB2                   ANSELBbits.ANSB2                // bit 2
2203 #define ANSB3                   ANSELBbits.ANSB3                // bit 3
2204 #define ANSB4                   ANSELBbits.ANSB4                // bit 4
2205 #define ANSB5                   ANSELBbits.ANSB5                // bit 5
2206 
2207 #define ANSD0                   ANSELDbits.ANSD0                // bit 0
2208 #define ANSD1                   ANSELDbits.ANSD1                // bit 1
2209 #define ANSD2                   ANSELDbits.ANSD2                // bit 2
2210 #define ANSD3                   ANSELDbits.ANSD3                // bit 3
2211 #define ANSD4                   ANSELDbits.ANSD4                // bit 4
2212 #define ANSD5                   ANSELDbits.ANSD5                // bit 5
2213 #define ANSD6                   ANSELDbits.ANSD6                // bit 6
2214 #define ANSD7                   ANSELDbits.ANSD7                // bit 7
2215 
2216 #define ANSE0                   ANSELEbits.ANSE0                // bit 0
2217 #define ANSE1                   ANSELEbits.ANSE1                // bit 1
2218 #define ANSE2                   ANSELEbits.ANSE2                // bit 2
2219 
2220 #define CCP2SEL                 APFCONbits.CCP2SEL              // bit 0
2221 #define SSSEL                   APFCONbits.SSSEL                // bit 1
2222 
2223 #define CCP1M0                  CCP1CONbits.CCP1M0              // bit 0
2224 #define CCP1M1                  CCP1CONbits.CCP1M1              // bit 1
2225 #define CCP1M2                  CCP1CONbits.CCP1M2              // bit 2
2226 #define CCP1M3                  CCP1CONbits.CCP1M3              // bit 3
2227 #define DC1B0                   CCP1CONbits.DC1B0               // bit 4, shadows bit in CCP1CONbits
2228 #define CCP1Y                   CCP1CONbits.CCP1Y               // bit 4, shadows bit in CCP1CONbits
2229 #define DC1B1                   CCP1CONbits.DC1B1               // bit 5, shadows bit in CCP1CONbits
2230 #define CCP1X                   CCP1CONbits.CCP1X               // bit 5, shadows bit in CCP1CONbits
2231 
2232 #define CCP2M0                  CCP2CONbits.CCP2M0              // bit 0
2233 #define CCP2M1                  CCP2CONbits.CCP2M1              // bit 1
2234 #define CCP2M2                  CCP2CONbits.CCP2M2              // bit 2
2235 #define CCP2M3                  CCP2CONbits.CCP2M3              // bit 3
2236 #define DC2B0                   CCP2CONbits.DC2B0               // bit 4, shadows bit in CCP2CONbits
2237 #define CCP2Y                   CCP2CONbits.CCP2Y               // bit 4, shadows bit in CCP2CONbits
2238 #define DC2B1                   CCP2CONbits.DC2B1               // bit 5, shadows bit in CCP2CONbits
2239 #define CCP2X                   CCP2CONbits.CCP2X               // bit 5, shadows bit in CCP2CONbits
2240 
2241 #define T0XCS                   CPSCON0bits.T0XCS               // bit 0
2242 #define CPSOUT                  CPSCON0bits.CPSOUT              // bit 1
2243 #define CPSRNG0                 CPSCON0bits.CPSRNG0             // bit 2
2244 #define CPSRNG1                 CPSCON0bits.CPSRNG1             // bit 3
2245 #define CPSON                   CPSCON0bits.CPSON               // bit 7
2246 
2247 #define CPSCH0                  CPSCON1bits.CPSCH0              // bit 0
2248 #define CPSCH1                  CPSCON1bits.CPSCH1              // bit 1
2249 #define CPSCH2                  CPSCON1bits.CPSCH2              // bit 2
2250 #define CPSCH3                  CPSCON1bits.CPSCH3              // bit 3
2251 
2252 #define ADFVR0                  FVRCONbits.ADFVR0               // bit 0
2253 #define ADFVR1                  FVRCONbits.ADFVR1               // bit 1
2254 #define FVREN                   FVRCONbits.FVREN                // bit 6
2255 #define FVRRDY                  FVRCONbits.FVRRDY               // bit 7, shadows bit in FVRCONbits
2256 #define FVRST                   FVRCONbits.FVRST                // bit 7, shadows bit in FVRCONbits
2257 
2258 #define RBIF                    INTCONbits.RBIF                 // bit 0, shadows bit in INTCONbits
2259 #define IOCIF                   INTCONbits.IOCIF                // bit 0, shadows bit in INTCONbits
2260 #define INTF                    INTCONbits.INTF                 // bit 1
2261 #define T0IF                    INTCONbits.T0IF                 // bit 2, shadows bit in INTCONbits
2262 #define TMR0IF                  INTCONbits.TMR0IF               // bit 2, shadows bit in INTCONbits
2263 #define RBIE                    INTCONbits.RBIE                 // bit 3, shadows bit in INTCONbits
2264 #define IOCIE                   INTCONbits.IOCIE                // bit 3, shadows bit in INTCONbits
2265 #define INTE                    INTCONbits.INTE                 // bit 4
2266 #define T0IE                    INTCONbits.T0IE                 // bit 5, shadows bit in INTCONbits
2267 #define TMR0IE                  INTCONbits.TMR0IE               // bit 5, shadows bit in INTCONbits
2268 #define PEIE                    INTCONbits.PEIE                 // bit 6
2269 #define GIE                     INTCONbits.GIE                  // bit 7
2270 
2271 #define IOCB0                   IOCbits.IOCB0                   // bit 0, shadows bit in IOCbits
2272 #define IOC0                    IOCbits.IOC0                    // bit 0, shadows bit in IOCbits
2273 #define IOCB1                   IOCbits.IOCB1                   // bit 1, shadows bit in IOCbits
2274 #define IOC1                    IOCbits.IOC1                    // bit 1, shadows bit in IOCbits
2275 #define IOCB2                   IOCbits.IOCB2                   // bit 2, shadows bit in IOCbits
2276 #define IOC2                    IOCbits.IOC2                    // bit 2, shadows bit in IOCbits
2277 #define IOCB3                   IOCbits.IOCB3                   // bit 3, shadows bit in IOCbits
2278 #define IOC3                    IOCbits.IOC3                    // bit 3, shadows bit in IOCbits
2279 #define IOCB4                   IOCbits.IOCB4                   // bit 4, shadows bit in IOCbits
2280 #define IOC4                    IOCbits.IOC4                    // bit 4, shadows bit in IOCbits
2281 #define IOCB5                   IOCbits.IOCB5                   // bit 5, shadows bit in IOCbits
2282 #define IOC5                    IOCbits.IOC5                    // bit 5, shadows bit in IOCbits
2283 #define IOCB6                   IOCbits.IOCB6                   // bit 6, shadows bit in IOCbits
2284 #define IOC6                    IOCbits.IOC6                    // bit 6, shadows bit in IOCbits
2285 #define IOCB7                   IOCbits.IOCB7                   // bit 7, shadows bit in IOCbits
2286 #define IOC7                    IOCbits.IOC7                    // bit 7, shadows bit in IOCbits
2287 
2288 #define PS0                     OPTION_REGbits.PS0              // bit 0
2289 #define PS1                     OPTION_REGbits.PS1              // bit 1
2290 #define PS2                     OPTION_REGbits.PS2              // bit 2
2291 #define PSA                     OPTION_REGbits.PSA              // bit 3
2292 #define T0SE                    OPTION_REGbits.T0SE             // bit 4
2293 #define T0CS                    OPTION_REGbits.T0CS             // bit 5
2294 #define INTEDG                  OPTION_REGbits.INTEDG           // bit 6
2295 #define NOT_RBPU                OPTION_REGbits.NOT_RBPU         // bit 7
2296 
2297 #define ICSS                    OSCCONbits.ICSS                 // bit 2
2298 #define ICSL                    OSCCONbits.ICSL                 // bit 3
2299 #define IRCF0                   OSCCONbits.IRCF0                // bit 4
2300 #define IRCF1                   OSCCONbits.IRCF1                // bit 5
2301 
2302 #define TUN0                    OSCTUNEbits.TUN0                // bit 0
2303 #define TUN1                    OSCTUNEbits.TUN1                // bit 1
2304 #define TUN2                    OSCTUNEbits.TUN2                // bit 2
2305 #define TUN3                    OSCTUNEbits.TUN3                // bit 3
2306 #define TUN4                    OSCTUNEbits.TUN4                // bit 4
2307 #define TUN5                    OSCTUNEbits.TUN5                // bit 5
2308 
2309 #define NOT_BOR                 PCONbits.NOT_BOR                // bit 0, shadows bit in PCONbits
2310 #define NOT_BO                  PCONbits.NOT_BO                 // bit 0, shadows bit in PCONbits
2311 #define NOT_POR                 PCONbits.NOT_POR                // bit 1
2312 
2313 #define TMR1IE                  PIE1bits.TMR1IE                 // bit 0
2314 #define TMR2IE                  PIE1bits.TMR2IE                 // bit 1
2315 #define CCP1IE                  PIE1bits.CCP1IE                 // bit 2
2316 #define SSPIE                   PIE1bits.SSPIE                  // bit 3
2317 #define TXIE                    PIE1bits.TXIE                   // bit 4
2318 #define RCIE                    PIE1bits.RCIE                   // bit 5
2319 #define ADIE                    PIE1bits.ADIE                   // bit 6
2320 #define TMR1GIE                 PIE1bits.TMR1GIE                // bit 7
2321 
2322 #define CCP2IE                  PIE2bits.CCP2IE                 // bit 0
2323 
2324 #define TMR1IF                  PIR1bits.TMR1IF                 // bit 0
2325 #define TMR2IF                  PIR1bits.TMR2IF                 // bit 1
2326 #define CCP1IF                  PIR1bits.CCP1IF                 // bit 2
2327 #define SSPIF                   PIR1bits.SSPIF                  // bit 3
2328 #define TXIF                    PIR1bits.TXIF                   // bit 4
2329 #define RCIF                    PIR1bits.RCIF                   // bit 5
2330 #define ADIF                    PIR1bits.ADIF                   // bit 6
2331 #define TMR1GIF                 PIR1bits.TMR1GIF                // bit 7
2332 
2333 #define CCP2IF                  PIR2bits.CCP2IF                 // bit 0
2334 
2335 #define RD                      PMCON1bits.RD                   // bit 0, shadows bit in PMCON1bits
2336 #define PMRD                    PMCON1bits.PMRD                 // bit 0, shadows bit in PMCON1bits
2337 
2338 #define RA0                     PORTAbits.RA0                   // bit 0
2339 #define RA1                     PORTAbits.RA1                   // bit 1
2340 #define RA2                     PORTAbits.RA2                   // bit 2
2341 #define RA3                     PORTAbits.RA3                   // bit 3
2342 #define RA4                     PORTAbits.RA4                   // bit 4
2343 #define RA5                     PORTAbits.RA5                   // bit 5
2344 #define RA6                     PORTAbits.RA6                   // bit 6
2345 #define RA7                     PORTAbits.RA7                   // bit 7
2346 
2347 #define RB0                     PORTBbits.RB0                   // bit 0
2348 #define RB1                     PORTBbits.RB1                   // bit 1
2349 #define RB2                     PORTBbits.RB2                   // bit 2
2350 #define RB3                     PORTBbits.RB3                   // bit 3
2351 #define RB4                     PORTBbits.RB4                   // bit 4
2352 #define RB5                     PORTBbits.RB5                   // bit 5
2353 #define RB6                     PORTBbits.RB6                   // bit 6
2354 #define RB7                     PORTBbits.RB7                   // bit 7
2355 
2356 #define RC0                     PORTCbits.RC0                   // bit 0
2357 #define RC1                     PORTCbits.RC1                   // bit 1
2358 #define RC2                     PORTCbits.RC2                   // bit 2
2359 #define RC3                     PORTCbits.RC3                   // bit 3
2360 #define RC4                     PORTCbits.RC4                   // bit 4
2361 #define RC5                     PORTCbits.RC5                   // bit 5
2362 #define RC6                     PORTCbits.RC6                   // bit 6
2363 #define RC7                     PORTCbits.RC7                   // bit 7
2364 
2365 #define RD0                     PORTDbits.RD0                   // bit 0
2366 #define RD1                     PORTDbits.RD1                   // bit 1
2367 #define RD2                     PORTDbits.RD2                   // bit 2
2368 #define RD3                     PORTDbits.RD3                   // bit 3
2369 #define RD4                     PORTDbits.RD4                   // bit 4
2370 #define RD5                     PORTDbits.RD5                   // bit 5
2371 #define RD6                     PORTDbits.RD6                   // bit 6
2372 #define RD7                     PORTDbits.RD7                   // bit 7
2373 
2374 #define RE0                     PORTEbits.RE0                   // bit 0
2375 #define RE1                     PORTEbits.RE1                   // bit 1
2376 #define RE2                     PORTEbits.RE2                   // bit 2
2377 #define RE3                     PORTEbits.RE3                   // bit 3
2378 
2379 #define RX9D                    RCSTAbits.RX9D                  // bit 0, shadows bit in RCSTAbits
2380 #define RCD8                    RCSTAbits.RCD8                  // bit 0, shadows bit in RCSTAbits
2381 #define OERR                    RCSTAbits.OERR                  // bit 1
2382 #define FERR                    RCSTAbits.FERR                  // bit 2
2383 #define ADDEN                   RCSTAbits.ADDEN                 // bit 3
2384 #define CREN                    RCSTAbits.CREN                  // bit 4
2385 #define SREN                    RCSTAbits.SREN                  // bit 5
2386 #define RX9                     RCSTAbits.RX9                   // bit 6, shadows bit in RCSTAbits
2387 #define RC9                     RCSTAbits.RC9                   // bit 6, shadows bit in RCSTAbits
2388 #define NOT_RC8                 RCSTAbits.NOT_RC8               // bit 6, shadows bit in RCSTAbits
2389 #define RC8_9                   RCSTAbits.RC8_9                 // bit 6, shadows bit in RCSTAbits
2390 #define SPEN                    RCSTAbits.SPEN                  // bit 7
2391 
2392 #define SSPM0                   SSPCONbits.SSPM0                // bit 0
2393 #define SSPM1                   SSPCONbits.SSPM1                // bit 1
2394 #define SSPM2                   SSPCONbits.SSPM2                // bit 2
2395 #define SSPM3                   SSPCONbits.SSPM3                // bit 3
2396 #define CKP                     SSPCONbits.CKP                  // bit 4
2397 #define SSPEN                   SSPCONbits.SSPEN                // bit 5
2398 #define SSPOV                   SSPCONbits.SSPOV                // bit 6
2399 #define WCOL                    SSPCONbits.WCOL                 // bit 7
2400 
2401 #define BF                      SSPSTATbits.BF                  // bit 0
2402 #define UA                      SSPSTATbits.UA                  // bit 1
2403 #define R_NOT_W                 SSPSTATbits.R_NOT_W             // bit 2, shadows bit in SSPSTATbits
2404 #define R                       SSPSTATbits.R                   // bit 2, shadows bit in SSPSTATbits
2405 #define I2C_READ                SSPSTATbits.I2C_READ            // bit 2, shadows bit in SSPSTATbits
2406 #define NOT_W                   SSPSTATbits.NOT_W               // bit 2, shadows bit in SSPSTATbits
2407 #define NOT_WRITE               SSPSTATbits.NOT_WRITE           // bit 2, shadows bit in SSPSTATbits
2408 #define R_W                     SSPSTATbits.R_W                 // bit 2, shadows bit in SSPSTATbits
2409 #define READ_WRITE              SSPSTATbits.READ_WRITE          // bit 2, shadows bit in SSPSTATbits
2410 #define S                       SSPSTATbits.S                   // bit 3, shadows bit in SSPSTATbits
2411 #define I2C_START               SSPSTATbits.I2C_START           // bit 3, shadows bit in SSPSTATbits
2412 #define P                       SSPSTATbits.P                   // bit 4, shadows bit in SSPSTATbits
2413 #define I2C_STOP                SSPSTATbits.I2C_STOP            // bit 4, shadows bit in SSPSTATbits
2414 #define D_NOT_A                 SSPSTATbits.D_NOT_A             // bit 5, shadows bit in SSPSTATbits
2415 #define D                       SSPSTATbits.D                   // bit 5, shadows bit in SSPSTATbits
2416 #define I2C_DATA                SSPSTATbits.I2C_DATA            // bit 5, shadows bit in SSPSTATbits
2417 #define NOT_A                   SSPSTATbits.NOT_A               // bit 5, shadows bit in SSPSTATbits
2418 #define NOT_ADDRESS             SSPSTATbits.NOT_ADDRESS         // bit 5, shadows bit in SSPSTATbits
2419 #define D_A                     SSPSTATbits.D_A                 // bit 5, shadows bit in SSPSTATbits
2420 #define DATA_ADDRESS            SSPSTATbits.DATA_ADDRESS        // bit 5, shadows bit in SSPSTATbits
2421 #define CKE                     SSPSTATbits.CKE                 // bit 6
2422 #define SMP                     SSPSTATbits.SMP                 // bit 7
2423 
2424 #define C                       STATUSbits.C                    // bit 0
2425 #define DC                      STATUSbits.DC                   // bit 1
2426 #define Z                       STATUSbits.Z                    // bit 2
2427 #define NOT_PD                  STATUSbits.NOT_PD               // bit 3
2428 #define NOT_TO                  STATUSbits.NOT_TO               // bit 4
2429 #define RP0                     STATUSbits.RP0                  // bit 5
2430 #define RP1                     STATUSbits.RP1                  // bit 6
2431 #define IRP                     STATUSbits.IRP                  // bit 7
2432 
2433 #define TMR1ON                  T1CONbits.TMR1ON                // bit 0
2434 #define T1SYNC                  T1CONbits.T1SYNC                // bit 2, shadows bit in T1CONbits
2435 #define NOT_T1SYNC              T1CONbits.NOT_T1SYNC            // bit 2, shadows bit in T1CONbits
2436 #define T1INSYNC                T1CONbits.T1INSYNC              // bit 2, shadows bit in T1CONbits
2437 #define T1OSCEN                 T1CONbits.T1OSCEN               // bit 3
2438 #define T1CKPS0                 T1CONbits.T1CKPS0               // bit 4
2439 #define T1CKPS1                 T1CONbits.T1CKPS1               // bit 5
2440 #define TMR1CS0                 T1CONbits.TMR1CS0               // bit 6
2441 #define TMR1CS1                 T1CONbits.TMR1CS1               // bit 7
2442 
2443 #define T1GSS0                  T1GCONbits.T1GSS0               // bit 0
2444 #define T1GSS1                  T1GCONbits.T1GSS1               // bit 1
2445 #define T1GVAL                  T1GCONbits.T1GVAL               // bit 2
2446 #define T1GGO_NOT_DONE          T1GCONbits.T1GGO_NOT_DONE       // bit 3, shadows bit in T1GCONbits
2447 #define T1G_NOT_DONE            T1GCONbits.T1G_NOT_DONE         // bit 3, shadows bit in T1GCONbits
2448 #define T1GGO_DONE              T1GCONbits.T1GGO_DONE           // bit 3, shadows bit in T1GCONbits
2449 #define T1GGO                   T1GCONbits.T1GGO                // bit 3, shadows bit in T1GCONbits
2450 #define T1GSPM                  T1GCONbits.T1GSPM               // bit 4
2451 #define T1GTM                   T1GCONbits.T1GTM                // bit 5
2452 #define T1GPOL                  T1GCONbits.T1GPOL               // bit 6
2453 #define TMR1GE                  T1GCONbits.TMR1GE               // bit 7
2454 
2455 #define T2CKPS0                 T2CONbits.T2CKPS0               // bit 0
2456 #define T2CKPS1                 T2CONbits.T2CKPS1               // bit 1
2457 #define TMR2ON                  T2CONbits.TMR2ON                // bit 2
2458 #define TOUTPS0                 T2CONbits.TOUTPS0               // bit 3
2459 #define TOUTPS1                 T2CONbits.TOUTPS1               // bit 4
2460 #define TOUTPS2                 T2CONbits.TOUTPS2               // bit 5
2461 #define TOUTPS3                 T2CONbits.TOUTPS3               // bit 6
2462 
2463 #define TRISA0                  TRISAbits.TRISA0                // bit 0
2464 #define TRISA1                  TRISAbits.TRISA1                // bit 1
2465 #define TRISA2                  TRISAbits.TRISA2                // bit 2
2466 #define TRISA3                  TRISAbits.TRISA3                // bit 3
2467 #define TRISA4                  TRISAbits.TRISA4                // bit 4
2468 #define TRISA5                  TRISAbits.TRISA5                // bit 5
2469 #define TRISA6                  TRISAbits.TRISA6                // bit 6
2470 #define TRISA7                  TRISAbits.TRISA7                // bit 7
2471 
2472 #define TRISB0                  TRISBbits.TRISB0                // bit 0
2473 #define TRISB1                  TRISBbits.TRISB1                // bit 1
2474 #define TRISB2                  TRISBbits.TRISB2                // bit 2
2475 #define TRISB3                  TRISBbits.TRISB3                // bit 3
2476 #define TRISB4                  TRISBbits.TRISB4                // bit 4
2477 #define TRISB5                  TRISBbits.TRISB5                // bit 5
2478 #define TRISB6                  TRISBbits.TRISB6                // bit 6
2479 #define TRISB7                  TRISBbits.TRISB7                // bit 7
2480 
2481 #define TRISC0                  TRISCbits.TRISC0                // bit 0
2482 #define TRISC1                  TRISCbits.TRISC1                // bit 1
2483 #define TRISC2                  TRISCbits.TRISC2                // bit 2
2484 #define TRISC3                  TRISCbits.TRISC3                // bit 3
2485 #define TRISC4                  TRISCbits.TRISC4                // bit 4
2486 #define TRISC5                  TRISCbits.TRISC5                // bit 5
2487 #define TRISC6                  TRISCbits.TRISC6                // bit 6
2488 #define TRISC7                  TRISCbits.TRISC7                // bit 7
2489 
2490 #define TRISD0                  TRISDbits.TRISD0                // bit 0
2491 #define TRISD1                  TRISDbits.TRISD1                // bit 1
2492 #define TRISD2                  TRISDbits.TRISD2                // bit 2
2493 #define TRISD3                  TRISDbits.TRISD3                // bit 3
2494 #define TRISD4                  TRISDbits.TRISD4                // bit 4
2495 #define TRISD5                  TRISDbits.TRISD5                // bit 5
2496 #define TRISD6                  TRISDbits.TRISD6                // bit 6
2497 #define TRISD7                  TRISDbits.TRISD7                // bit 7
2498 
2499 #define TRISE0                  TRISEbits.TRISE0                // bit 0
2500 #define TRISE1                  TRISEbits.TRISE1                // bit 1
2501 #define TRISE2                  TRISEbits.TRISE2                // bit 2
2502 #define TRISE3                  TRISEbits.TRISE3                // bit 3
2503 
2504 #define TX9D                    TXSTAbits.TX9D                  // bit 0, shadows bit in TXSTAbits
2505 #define TXD8                    TXSTAbits.TXD8                  // bit 0, shadows bit in TXSTAbits
2506 #define TRMT                    TXSTAbits.TRMT                  // bit 1
2507 #define BRGH                    TXSTAbits.BRGH                  // bit 2
2508 #define SYNC                    TXSTAbits.SYNC                  // bit 4
2509 #define TXEN                    TXSTAbits.TXEN                  // bit 5
2510 #define TX9                     TXSTAbits.TX9                   // bit 6, shadows bit in TXSTAbits
2511 #define NOT_TX8                 TXSTAbits.NOT_TX8               // bit 6, shadows bit in TXSTAbits
2512 #define TX8_9                   TXSTAbits.TX8_9                 // bit 6, shadows bit in TXSTAbits
2513 #define CSRC                    TXSTAbits.CSRC                  // bit 7
2514 
2515 #define WPUB0                   WPUbits.WPUB0                   // bit 0, shadows bit in WPUbits
2516 #define WPU0                    WPUbits.WPU0                    // bit 0, shadows bit in WPUbits
2517 #define WPUB1                   WPUbits.WPUB1                   // bit 1, shadows bit in WPUbits
2518 #define WPU1                    WPUbits.WPU1                    // bit 1, shadows bit in WPUbits
2519 #define WPUB2                   WPUbits.WPUB2                   // bit 2, shadows bit in WPUbits
2520 #define WPU2                    WPUbits.WPU2                    // bit 2, shadows bit in WPUbits
2521 #define WPUB3                   WPUbits.WPUB3                   // bit 3, shadows bit in WPUbits
2522 #define WPU3                    WPUbits.WPU3                    // bit 3, shadows bit in WPUbits
2523 #define WPUB4                   WPUbits.WPUB4                   // bit 4, shadows bit in WPUbits
2524 #define WPU4                    WPUbits.WPU4                    // bit 4, shadows bit in WPUbits
2525 #define WPUB5                   WPUbits.WPUB5                   // bit 5, shadows bit in WPUbits
2526 #define WPU5                    WPUbits.WPU5                    // bit 5, shadows bit in WPUbits
2527 #define WPUB6                   WPUbits.WPUB6                   // bit 6, shadows bit in WPUbits
2528 #define WPU6                    WPUbits.WPU6                    // bit 6, shadows bit in WPUbits
2529 #define WPUB7                   WPUbits.WPUB7                   // bit 7, shadows bit in WPUbits
2530 #define WPU7                    WPUbits.WPU7                    // bit 7, shadows bit in WPUbits
2531 
2532 #endif // #ifndef NO_BIT_DEFINES
2533 
2534 #endif // #ifndef __PIC16LF727_H__
2535