struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / device / non-free / include / pic16 / pic18f66k90.h
blobfa4f894197e262e14f9467d1789157e63b87a4de
1 /*
2 * This declarations of the PIC18F66K90 MCU.
4 * This file is part of the GNU PIC library for SDCC, originally
5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:34 UTC.
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.
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.
22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
25 #ifndef __PIC18F66K90_H__
26 #define __PIC18F66K90_H__
28 //==============================================================================
30 //==============================================================================
32 // Register Definitions
34 //==============================================================================
37 //==============================================================================
38 // LCDCON Bits
40 extern __at(0x0EF4) __sfr LCDCON;
42 typedef union
44 struct
46 unsigned LMUX0 : 1;
47 unsigned LMUX1 : 1;
48 unsigned CS0 : 1;
49 unsigned CS1 : 1;
50 unsigned : 1;
51 unsigned WERR : 1;
52 unsigned SLPEN : 1;
53 unsigned LCDEN : 1;
56 struct
58 unsigned LMUX : 2;
59 unsigned : 6;
62 struct
64 unsigned : 2;
65 unsigned CS : 2;
66 unsigned : 4;
68 } __LCDCONbits_t;
70 extern __at(0x0EF4) volatile __LCDCONbits_t LCDCONbits;
72 #define _LMUX0 0x01
73 #define _LMUX1 0x02
74 #define _CS0 0x04
75 #define _CS1 0x08
76 #define _WERR 0x20
77 #define _SLPEN 0x40
78 #define _LCDEN 0x80
80 //==============================================================================
83 //==============================================================================
84 // LCDPS Bits
86 extern __at(0x0EF5) __sfr LCDPS;
88 typedef union
90 struct
92 unsigned LP0 : 1;
93 unsigned LP1 : 1;
94 unsigned LP2 : 1;
95 unsigned LP3 : 1;
96 unsigned WA : 1;
97 unsigned LCDA : 1;
98 unsigned BIASMD : 1;
99 unsigned WFT : 1;
102 struct
104 unsigned LP : 4;
105 unsigned : 4;
107 } __LCDPSbits_t;
109 extern __at(0x0EF5) volatile __LCDPSbits_t LCDPSbits;
111 #define _LP0 0x01
112 #define _LP1 0x02
113 #define _LP2 0x04
114 #define _LP3 0x08
115 #define _WA 0x10
116 #define _LCDA 0x20
117 #define _BIASMD 0x40
118 #define _WFT 0x80
120 //==============================================================================
123 //==============================================================================
124 // LCDSE0 Bits
126 extern __at(0x0EF6) __sfr LCDSE0;
128 typedef struct
130 unsigned SE00 : 1;
131 unsigned SE01 : 1;
132 unsigned SE02 : 1;
133 unsigned SE03 : 1;
134 unsigned SE04 : 1;
135 unsigned SE05 : 1;
136 unsigned SE06 : 1;
137 unsigned SE07 : 1;
138 } __LCDSE0bits_t;
140 extern __at(0x0EF6) volatile __LCDSE0bits_t LCDSE0bits;
142 #define _SE00 0x01
143 #define _SE01 0x02
144 #define _SE02 0x04
145 #define _SE03 0x08
146 #define _SE04 0x10
147 #define _SE05 0x20
148 #define _SE06 0x40
149 #define _SE07 0x80
151 //==============================================================================
154 //==============================================================================
155 // LCDSE1 Bits
157 extern __at(0x0EF7) __sfr LCDSE1;
159 typedef struct
161 unsigned SE08 : 1;
162 unsigned SE09 : 1;
163 unsigned SE10 : 1;
164 unsigned SE11 : 1;
165 unsigned SE12 : 1;
166 unsigned SE13 : 1;
167 unsigned SE14 : 1;
168 unsigned SE15 : 1;
169 } __LCDSE1bits_t;
171 extern __at(0x0EF7) volatile __LCDSE1bits_t LCDSE1bits;
173 #define _SE08 0x01
174 #define _SE09 0x02
175 #define _SE10 0x04
176 #define _SE11 0x08
177 #define _SE12 0x10
178 #define _SE13 0x20
179 #define _SE14 0x40
180 #define _SE15 0x80
182 //==============================================================================
185 //==============================================================================
186 // LCDSE2 Bits
188 extern __at(0x0EF8) __sfr LCDSE2;
190 typedef struct
192 unsigned SE16 : 1;
193 unsigned SE17 : 1;
194 unsigned SE18 : 1;
195 unsigned SE19 : 1;
196 unsigned SE20 : 1;
197 unsigned SE21 : 1;
198 unsigned SE22 : 1;
199 unsigned SE23 : 1;
200 } __LCDSE2bits_t;
202 extern __at(0x0EF8) volatile __LCDSE2bits_t LCDSE2bits;
204 #define _SE16 0x01
205 #define _SE17 0x02
206 #define _SE18 0x04
207 #define _SE19 0x08
208 #define _SE20 0x10
209 #define _SE21 0x20
210 #define _SE22 0x40
211 #define _SE23 0x80
213 //==============================================================================
216 //==============================================================================
217 // LCDSE3 Bits
219 extern __at(0x0EF9) __sfr LCDSE3;
221 typedef struct
223 unsigned SE24 : 1;
224 unsigned SE25 : 1;
225 unsigned SE26 : 1;
226 unsigned SE27 : 1;
227 unsigned SE28 : 1;
228 unsigned SE29 : 1;
229 unsigned SE30 : 1;
230 unsigned SE31 : 1;
231 } __LCDSE3bits_t;
233 extern __at(0x0EF9) volatile __LCDSE3bits_t LCDSE3bits;
235 #define _SE24 0x01
236 #define _SE25 0x02
237 #define _SE26 0x04
238 #define _SE27 0x08
239 #define _SE28 0x10
240 #define _SE29 0x20
241 #define _SE30 0x40
242 #define _SE31 0x80
244 //==============================================================================
247 //==============================================================================
248 // LCDSE4 Bits
250 extern __at(0x0EFA) __sfr LCDSE4;
252 typedef struct
254 unsigned SE32 : 1;
255 unsigned : 1;
256 unsigned : 1;
257 unsigned : 1;
258 unsigned : 1;
259 unsigned : 1;
260 unsigned : 1;
261 unsigned : 1;
262 } __LCDSE4bits_t;
264 extern __at(0x0EFA) volatile __LCDSE4bits_t LCDSE4bits;
266 #define _SE32 0x01
268 //==============================================================================
271 //==============================================================================
272 // LCDRL Bits
274 extern __at(0x0EFC) __sfr LCDRL;
276 typedef union
278 struct
280 unsigned LRLAT0 : 1;
281 unsigned LRLAT1 : 1;
282 unsigned LRLAT2 : 1;
283 unsigned LCDIRI : 1;
284 unsigned LRLBP0 : 1;
285 unsigned LRLBP1 : 1;
286 unsigned LRLAP0 : 1;
287 unsigned LRLAP1 : 1;
290 struct
292 unsigned LRLAT : 3;
293 unsigned : 5;
296 struct
298 unsigned : 4;
299 unsigned LRLBP : 2;
300 unsigned : 2;
303 struct
305 unsigned : 6;
306 unsigned LRLAP : 2;
308 } __LCDRLbits_t;
310 extern __at(0x0EFC) volatile __LCDRLbits_t LCDRLbits;
312 #define _LRLAT0 0x01
313 #define _LRLAT1 0x02
314 #define _LRLAT2 0x04
315 #define _LCDIRI 0x08
316 #define _LRLBP0 0x10
317 #define _LRLBP1 0x20
318 #define _LRLAP0 0x40
319 #define _LRLAP1 0x80
321 //==============================================================================
324 //==============================================================================
325 // LCDREF Bits
327 extern __at(0x0EFD) __sfr LCDREF;
329 typedef union
331 struct
333 unsigned VLCD1PE : 1;
334 unsigned VLCD2PE : 1;
335 unsigned VLCD3PE : 1;
336 unsigned LCDCST0 : 1;
337 unsigned LCDCST1 : 1;
338 unsigned LCDCST2 : 1;
339 unsigned LCDIRS : 1;
340 unsigned LCDIRE : 1;
343 struct
345 unsigned : 3;
346 unsigned LCDCST : 3;
347 unsigned : 2;
349 } __LCDREFbits_t;
351 extern __at(0x0EFD) volatile __LCDREFbits_t LCDREFbits;
353 #define _VLCD1PE 0x01
354 #define _VLCD2PE 0x02
355 #define _VLCD3PE 0x04
356 #define _LCDCST0 0x08
357 #define _LCDCST1 0x10
358 #define _LCDCST2 0x20
359 #define _LCDIRS 0x40
360 #define _LCDIRE 0x80
362 //==============================================================================
365 //==============================================================================
366 // SSP2CON2 Bits
368 extern __at(0x0EFE) __sfr SSP2CON2;
370 typedef union
372 struct
374 unsigned SEN : 1;
375 unsigned RSEN : 1;
376 unsigned PEN : 1;
377 unsigned RCEN : 1;
378 unsigned ACKEN : 1;
379 unsigned ACKDT : 1;
380 unsigned ACKSTAT : 1;
381 unsigned GCEN : 1;
384 struct
386 unsigned : 1;
387 unsigned ADMSK1 : 1;
388 unsigned ADMSK2 : 1;
389 unsigned ADMSK3 : 1;
390 unsigned ADMSK4 : 1;
391 unsigned ADMSK5 : 1;
392 unsigned : 1;
393 unsigned : 1;
395 } __SSP2CON2bits_t;
397 extern __at(0x0EFE) volatile __SSP2CON2bits_t SSP2CON2bits;
399 #define _SSP2CON2_SEN 0x01
400 #define _SSP2CON2_RSEN 0x02
401 #define _SSP2CON2_ADMSK1 0x02
402 #define _SSP2CON2_PEN 0x04
403 #define _SSP2CON2_ADMSK2 0x04
404 #define _SSP2CON2_RCEN 0x08
405 #define _SSP2CON2_ADMSK3 0x08
406 #define _SSP2CON2_ACKEN 0x10
407 #define _SSP2CON2_ADMSK4 0x10
408 #define _SSP2CON2_ACKDT 0x20
409 #define _SSP2CON2_ADMSK5 0x20
410 #define _SSP2CON2_ACKSTAT 0x40
411 #define _SSP2CON2_GCEN 0x80
413 //==============================================================================
416 //==============================================================================
417 // SSP2CON1 Bits
419 extern __at(0x0EFF) __sfr SSP2CON1;
421 typedef union
423 struct
425 unsigned SSPM0 : 1;
426 unsigned SSPM1 : 1;
427 unsigned SSPM2 : 1;
428 unsigned SSPM3 : 1;
429 unsigned CKP : 1;
430 unsigned SSPEN : 1;
431 unsigned SSPOV : 1;
432 unsigned WCOL : 1;
435 struct
437 unsigned SSPM : 4;
438 unsigned : 4;
440 } __SSP2CON1bits_t;
442 extern __at(0x0EFF) volatile __SSP2CON1bits_t SSP2CON1bits;
444 #define _SSP2CON1_SSPM0 0x01
445 #define _SSP2CON1_SSPM1 0x02
446 #define _SSP2CON1_SSPM2 0x04
447 #define _SSP2CON1_SSPM3 0x08
448 #define _SSP2CON1_CKP 0x10
449 #define _SSP2CON1_SSPEN 0x20
450 #define _SSP2CON1_SSPOV 0x40
451 #define _SSP2CON1_WCOL 0x80
453 //==============================================================================
456 //==============================================================================
457 // SSP2STAT Bits
459 extern __at(0x0F00) __sfr SSP2STAT;
461 typedef union
463 struct
465 unsigned BF : 1;
466 unsigned UA : 1;
467 unsigned R_NOT_W : 1;
468 unsigned S : 1;
469 unsigned P : 1;
470 unsigned D_NOT_A : 1;
471 unsigned CKE : 1;
472 unsigned SMP : 1;
475 struct
477 unsigned : 1;
478 unsigned : 1;
479 unsigned R : 1;
480 unsigned I2C_START : 1;
481 unsigned I2C_STOP : 1;
482 unsigned D : 1;
483 unsigned : 1;
484 unsigned : 1;
487 struct
489 unsigned : 1;
490 unsigned : 1;
491 unsigned R_W : 1;
492 unsigned : 1;
493 unsigned : 1;
494 unsigned D_A : 1;
495 unsigned : 1;
496 unsigned : 1;
499 struct
501 unsigned : 1;
502 unsigned : 1;
503 unsigned NOT_W : 1;
504 unsigned : 1;
505 unsigned : 1;
506 unsigned NOT_A : 1;
507 unsigned : 1;
508 unsigned : 1;
511 struct
513 unsigned : 1;
514 unsigned : 1;
515 unsigned NOT_WRITE : 1;
516 unsigned : 1;
517 unsigned : 1;
518 unsigned NOT_ADDRESS : 1;
519 unsigned : 1;
520 unsigned : 1;
523 struct
525 unsigned : 1;
526 unsigned : 1;
527 unsigned READ_WRITE : 1;
528 unsigned : 1;
529 unsigned : 1;
530 unsigned DATA_ADDRESS : 1;
531 unsigned : 1;
532 unsigned : 1;
535 struct
537 unsigned : 1;
538 unsigned : 1;
539 unsigned I2C_READ : 1;
540 unsigned : 1;
541 unsigned : 1;
542 unsigned I2C_DAT : 1;
543 unsigned : 1;
544 unsigned : 1;
546 } __SSP2STATbits_t;
548 extern __at(0x0F00) volatile __SSP2STATbits_t SSP2STATbits;
550 #define _SSP2STAT_BF 0x01
551 #define _SSP2STAT_UA 0x02
552 #define _SSP2STAT_R_NOT_W 0x04
553 #define _SSP2STAT_R 0x04
554 #define _SSP2STAT_R_W 0x04
555 #define _SSP2STAT_NOT_W 0x04
556 #define _SSP2STAT_NOT_WRITE 0x04
557 #define _SSP2STAT_READ_WRITE 0x04
558 #define _SSP2STAT_I2C_READ 0x04
559 #define _SSP2STAT_S 0x08
560 #define _SSP2STAT_I2C_START 0x08
561 #define _SSP2STAT_P 0x10
562 #define _SSP2STAT_I2C_STOP 0x10
563 #define _SSP2STAT_D_NOT_A 0x20
564 #define _SSP2STAT_D 0x20
565 #define _SSP2STAT_D_A 0x20
566 #define _SSP2STAT_NOT_A 0x20
567 #define _SSP2STAT_NOT_ADDRESS 0x20
568 #define _SSP2STAT_DATA_ADDRESS 0x20
569 #define _SSP2STAT_I2C_DAT 0x20
570 #define _SSP2STAT_CKE 0x40
571 #define _SSP2STAT_SMP 0x80
573 //==============================================================================
576 //==============================================================================
577 // SSP2ADD Bits
579 extern __at(0x0F01) __sfr SSP2ADD;
581 typedef struct
583 unsigned MSK0 : 1;
584 unsigned MSK1 : 1;
585 unsigned MSK2 : 1;
586 unsigned MSK3 : 1;
587 unsigned MSK4 : 1;
588 unsigned MSK5 : 1;
589 unsigned MSK6 : 1;
590 unsigned MSK7 : 1;
591 } __SSP2ADDbits_t;
593 extern __at(0x0F01) volatile __SSP2ADDbits_t SSP2ADDbits;
595 #define _SSP2ADD_MSK0 0x01
596 #define _SSP2ADD_MSK1 0x02
597 #define _SSP2ADD_MSK2 0x04
598 #define _SSP2ADD_MSK3 0x08
599 #define _SSP2ADD_MSK4 0x10
600 #define _SSP2ADD_MSK5 0x20
601 #define _SSP2ADD_MSK6 0x40
602 #define _SSP2ADD_MSK7 0x80
604 //==============================================================================
606 extern __at(0x0F02) __sfr SSP2BUF;
608 //==============================================================================
609 // T4CON Bits
611 extern __at(0x0F03) __sfr T4CON;
613 typedef union
615 struct
617 unsigned T4CKPS0 : 1;
618 unsigned T4CKPS1 : 1;
619 unsigned TMR4ON : 1;
620 unsigned T4OUTPS0 : 1;
621 unsigned T4OUTPS1 : 1;
622 unsigned T4OUTPS2 : 1;
623 unsigned T4OUTPS3 : 1;
624 unsigned : 1;
627 struct
629 unsigned T4CKPS : 2;
630 unsigned : 6;
633 struct
635 unsigned : 3;
636 unsigned T4OUTPS : 4;
637 unsigned : 1;
639 } __T4CONbits_t;
641 extern __at(0x0F03) volatile __T4CONbits_t T4CONbits;
643 #define _T4CKPS0 0x01
644 #define _T4CKPS1 0x02
645 #define _TMR4ON 0x04
646 #define _T4OUTPS0 0x08
647 #define _T4OUTPS1 0x10
648 #define _T4OUTPS2 0x20
649 #define _T4OUTPS3 0x40
651 //==============================================================================
653 extern __at(0x0F04) __sfr PR4;
654 extern __at(0x0F05) __sfr TMR4;
656 //==============================================================================
657 // CCP7CON Bits
659 extern __at(0x0F06) __sfr CCP7CON;
661 typedef union
663 struct
665 unsigned CCP7M0 : 1;
666 unsigned CCP7M1 : 1;
667 unsigned CCP7M2 : 1;
668 unsigned CCP7M3 : 1;
669 unsigned DC7B0 : 1;
670 unsigned DC7B1 : 1;
671 unsigned : 1;
672 unsigned : 1;
675 struct
677 unsigned : 1;
678 unsigned : 1;
679 unsigned : 1;
680 unsigned : 1;
681 unsigned CCP7Y : 1;
682 unsigned CCP7X : 1;
683 unsigned : 1;
684 unsigned : 1;
687 struct
689 unsigned CCP7M : 4;
690 unsigned : 4;
693 struct
695 unsigned : 4;
696 unsigned DC7B : 2;
697 unsigned : 2;
699 } __CCP7CONbits_t;
701 extern __at(0x0F06) volatile __CCP7CONbits_t CCP7CONbits;
703 #define _CCP7M0 0x01
704 #define _CCP7M1 0x02
705 #define _CCP7M2 0x04
706 #define _CCP7M3 0x08
707 #define _DC7B0 0x10
708 #define _CCP7Y 0x10
709 #define _DC7B1 0x20
710 #define _CCP7X 0x20
712 //==============================================================================
714 extern __at(0x0F07) __sfr CCPR7;
715 extern __at(0x0F07) __sfr CCPR7L;
716 extern __at(0x0F08) __sfr CCPR7H;
718 //==============================================================================
719 // CCP6CON Bits
721 extern __at(0x0F09) __sfr CCP6CON;
723 typedef union
725 struct
727 unsigned CCP6M0 : 1;
728 unsigned CCP6M1 : 1;
729 unsigned CCP6M2 : 1;
730 unsigned CCP6M3 : 1;
731 unsigned DC6B0 : 1;
732 unsigned DC6B1 : 1;
733 unsigned : 1;
734 unsigned : 1;
737 struct
739 unsigned : 1;
740 unsigned : 1;
741 unsigned : 1;
742 unsigned : 1;
743 unsigned CCP6Y : 1;
744 unsigned CCP6X : 1;
745 unsigned : 1;
746 unsigned : 1;
749 struct
751 unsigned CCP6M : 4;
752 unsigned : 4;
755 struct
757 unsigned : 4;
758 unsigned DC6B : 2;
759 unsigned : 2;
761 } __CCP6CONbits_t;
763 extern __at(0x0F09) volatile __CCP6CONbits_t CCP6CONbits;
765 #define _CCP6M0 0x01
766 #define _CCP6M1 0x02
767 #define _CCP6M2 0x04
768 #define _CCP6M3 0x08
769 #define _DC6B0 0x10
770 #define _CCP6Y 0x10
771 #define _DC6B1 0x20
772 #define _CCP6X 0x20
774 //==============================================================================
776 extern __at(0x0F0A) __sfr CCPR6;
777 extern __at(0x0F0A) __sfr CCPR6L;
778 extern __at(0x0F0B) __sfr CCPR6H;
780 //==============================================================================
781 // CCP5CON Bits
783 extern __at(0x0F0C) __sfr CCP5CON;
785 typedef union
787 struct
789 unsigned CCP5M0 : 1;
790 unsigned CCP5M1 : 1;
791 unsigned CCP5M2 : 1;
792 unsigned CCP5M3 : 1;
793 unsigned DC5B0 : 1;
794 unsigned DC5B1 : 1;
795 unsigned : 1;
796 unsigned : 1;
799 struct
801 unsigned : 1;
802 unsigned : 1;
803 unsigned : 1;
804 unsigned : 1;
805 unsigned CCP5Y : 1;
806 unsigned CCP5X : 1;
807 unsigned : 1;
808 unsigned : 1;
811 struct
813 unsigned CCP5M : 4;
814 unsigned : 4;
817 struct
819 unsigned : 4;
820 unsigned DC5B : 2;
821 unsigned : 2;
823 } __CCP5CONbits_t;
825 extern __at(0x0F0C) volatile __CCP5CONbits_t CCP5CONbits;
827 #define _CCP5M0 0x01
828 #define _CCP5M1 0x02
829 #define _CCP5M2 0x04
830 #define _CCP5M3 0x08
831 #define _DC5B0 0x10
832 #define _CCP5Y 0x10
833 #define _DC5B1 0x20
834 #define _CCP5X 0x20
836 //==============================================================================
838 extern __at(0x0F0D) __sfr CCPR5;
839 extern __at(0x0F0D) __sfr CCPR5L;
840 extern __at(0x0F0E) __sfr CCPR5H;
842 //==============================================================================
843 // CCP4CON Bits
845 extern __at(0x0F0F) __sfr CCP4CON;
847 typedef union
849 struct
851 unsigned CCP4M0 : 1;
852 unsigned CCP4M1 : 1;
853 unsigned CCP4M2 : 1;
854 unsigned CCP4M3 : 1;
855 unsigned DC4B0 : 1;
856 unsigned DC4B1 : 1;
857 unsigned : 1;
858 unsigned : 1;
861 struct
863 unsigned : 1;
864 unsigned : 1;
865 unsigned : 1;
866 unsigned : 1;
867 unsigned CCP4Y : 1;
868 unsigned CCP4X : 1;
869 unsigned : 1;
870 unsigned : 1;
873 struct
875 unsigned CCP4M : 4;
876 unsigned : 4;
879 struct
881 unsigned : 4;
882 unsigned DC4B : 2;
883 unsigned : 2;
885 } __CCP4CONbits_t;
887 extern __at(0x0F0F) volatile __CCP4CONbits_t CCP4CONbits;
889 #define _CCP4M0 0x01
890 #define _CCP4M1 0x02
891 #define _CCP4M2 0x04
892 #define _CCP4M3 0x08
893 #define _DC4B0 0x10
894 #define _CCP4Y 0x10
895 #define _DC4B1 0x20
896 #define _CCP4X 0x20
898 //==============================================================================
900 extern __at(0x0F10) __sfr CCPR4;
901 extern __at(0x0F10) __sfr CCPR4L;
902 extern __at(0x0F11) __sfr CCPR4H;
904 //==============================================================================
905 // T5GCON Bits
907 extern __at(0x0F12) __sfr T5GCON;
909 typedef union
911 struct
913 unsigned T5GSS0 : 1;
914 unsigned T5GSS1 : 1;
915 unsigned T5GVAL : 1;
916 unsigned T5GGO_NOT_T5DONE : 1;
917 unsigned T5GSPM : 1;
918 unsigned T5GTM : 1;
919 unsigned T5GPOL : 1;
920 unsigned TMR5GE : 1;
923 struct
925 unsigned : 1;
926 unsigned : 1;
927 unsigned : 1;
928 unsigned T5GGO : 1;
929 unsigned : 1;
930 unsigned : 1;
931 unsigned : 1;
932 unsigned : 1;
935 struct
937 unsigned : 1;
938 unsigned : 1;
939 unsigned : 1;
940 unsigned NOT_T5DONE : 1;
941 unsigned : 1;
942 unsigned : 1;
943 unsigned : 1;
944 unsigned : 1;
947 struct
949 unsigned T5GSS : 2;
950 unsigned : 6;
952 } __T5GCONbits_t;
954 extern __at(0x0F12) volatile __T5GCONbits_t T5GCONbits;
956 #define _T5GSS0 0x01
957 #define _T5GSS1 0x02
958 #define _T5GVAL 0x04
959 #define _T5GGO_NOT_T5DONE 0x08
960 #define _T5GGO 0x08
961 #define _NOT_T5DONE 0x08
962 #define _T5GSPM 0x10
963 #define _T5GTM 0x20
964 #define _T5GPOL 0x40
965 #define _TMR5GE 0x80
967 //==============================================================================
970 //==============================================================================
971 // T5CON Bits
973 extern __at(0x0F13) __sfr T5CON;
975 typedef union
977 struct
979 unsigned TMR5ON : 1;
980 unsigned RD16 : 1;
981 unsigned NOT_T5SYNC : 1;
982 unsigned SOSCEN : 1;
983 unsigned T5CKPS0 : 1;
984 unsigned T5CKPS1 : 1;
985 unsigned TMR5CS0 : 1;
986 unsigned TMR5CS1 : 1;
989 struct
991 unsigned : 4;
992 unsigned T5CKPS : 2;
993 unsigned : 2;
996 struct
998 unsigned : 6;
999 unsigned TMR5CS : 2;
1001 } __T5CONbits_t;
1003 extern __at(0x0F13) volatile __T5CONbits_t T5CONbits;
1005 #define _T5CON_TMR5ON 0x01
1006 #define _T5CON_RD16 0x02
1007 #define _T5CON_NOT_T5SYNC 0x04
1008 #define _T5CON_SOSCEN 0x08
1009 #define _T5CON_T5CKPS0 0x10
1010 #define _T5CON_T5CKPS1 0x20
1011 #define _T5CON_TMR5CS0 0x40
1012 #define _T5CON_TMR5CS1 0x80
1014 //==============================================================================
1016 extern __at(0x0F14) __sfr TMR5;
1017 extern __at(0x0F14) __sfr TMR5L;
1018 extern __at(0x0F15) __sfr TMR5H;
1020 //==============================================================================
1021 // PMD3 Bits
1023 extern __at(0x0F16) __sfr PMD3;
1025 typedef struct
1027 unsigned TMR12MD : 1;
1028 unsigned CCP4MD : 1;
1029 unsigned CCP5MD : 1;
1030 unsigned CCP6MD : 1;
1031 unsigned CCP7MD : 1;
1032 unsigned CCP8MD : 1;
1033 unsigned CCP9MD : 1;
1034 unsigned CCP10MD : 1;
1035 } __PMD3bits_t;
1037 extern __at(0x0F16) volatile __PMD3bits_t PMD3bits;
1039 #define _TMR12MD 0x01
1040 #define _CCP4MD 0x02
1041 #define _CCP5MD 0x04
1042 #define _CCP6MD 0x08
1043 #define _CCP7MD 0x10
1044 #define _CCP8MD 0x20
1045 #define _CCP9MD 0x40
1046 #define _CCP10MD 0x80
1048 //==============================================================================
1051 //==============================================================================
1052 // PMD2 Bits
1054 extern __at(0x0F17) __sfr PMD2;
1056 typedef struct
1058 unsigned CMP1MD : 1;
1059 unsigned CMP2MD : 1;
1060 unsigned CMP3MD : 1;
1061 unsigned TMR5MD : 1;
1062 unsigned TMR6MD : 1;
1063 unsigned TMR7MD : 1;
1064 unsigned TMR8MD : 1;
1065 unsigned TMR10MD : 1;
1066 } __PMD2bits_t;
1068 extern __at(0x0F17) volatile __PMD2bits_t PMD2bits;
1070 #define _CMP1MD 0x01
1071 #define _CMP2MD 0x02
1072 #define _CMP3MD 0x04
1073 #define _TMR5MD 0x08
1074 #define _TMR6MD 0x10
1075 #define _TMR7MD 0x20
1076 #define _TMR8MD 0x40
1077 #define _TMR10MD 0x80
1079 //==============================================================================
1082 //==============================================================================
1083 // PMD1 Bits
1085 extern __at(0x0F18) __sfr PMD1;
1087 typedef struct
1089 unsigned : 1;
1090 unsigned TMR1MD : 1;
1091 unsigned TMR2MD : 1;
1092 unsigned TMR3MD : 1;
1093 unsigned TMR4MD : 1;
1094 unsigned RTCCMD : 1;
1095 unsigned CTMUMD : 1;
1096 unsigned : 1;
1097 } __PMD1bits_t;
1099 extern __at(0x0F18) volatile __PMD1bits_t PMD1bits;
1101 #define _TMR1MD 0x02
1102 #define _TMR2MD 0x04
1103 #define _TMR3MD 0x08
1104 #define _TMR4MD 0x10
1105 #define _RTCCMD 0x20
1106 #define _CTMUMD 0x40
1108 //==============================================================================
1111 //==============================================================================
1112 // PMD0 Bits
1114 extern __at(0x0F19) __sfr PMD0;
1116 typedef struct
1118 unsigned ADCMD : 1;
1119 unsigned SSP1MD : 1;
1120 unsigned SSP2MD : 1;
1121 unsigned UART1MD : 1;
1122 unsigned UART2MD : 1;
1123 unsigned CCP1MD : 1;
1124 unsigned CCP2MD : 1;
1125 unsigned CCP3MD : 1;
1126 } __PMD0bits_t;
1128 extern __at(0x0F19) volatile __PMD0bits_t PMD0bits;
1130 #define _ADCMD 0x01
1131 #define _SSP1MD 0x02
1132 #define _SSP2MD 0x04
1133 #define _UART1MD 0x08
1134 #define _UART2MD 0x10
1135 #define _CCP1MD 0x20
1136 #define _CCP2MD 0x40
1137 #define _CCP3MD 0x80
1139 //==============================================================================
1142 //==============================================================================
1143 // PSTR3CON Bits
1145 extern __at(0x0F1A) __sfr PSTR3CON;
1147 typedef union
1149 struct
1151 unsigned STRA : 1;
1152 unsigned STRB : 1;
1153 unsigned STRC : 1;
1154 unsigned STRD : 1;
1155 unsigned STRSYNC : 1;
1156 unsigned : 1;
1157 unsigned CMPL0 : 1;
1158 unsigned CMPL1 : 1;
1161 struct
1163 unsigned : 6;
1164 unsigned CMPL : 2;
1166 } __PSTR3CONbits_t;
1168 extern __at(0x0F1A) volatile __PSTR3CONbits_t PSTR3CONbits;
1170 #define _PSTR3CON_STRA 0x01
1171 #define _PSTR3CON_STRB 0x02
1172 #define _PSTR3CON_STRC 0x04
1173 #define _PSTR3CON_STRD 0x08
1174 #define _PSTR3CON_STRSYNC 0x10
1175 #define _PSTR3CON_CMPL0 0x40
1176 #define _PSTR3CON_CMPL1 0x80
1178 //==============================================================================
1181 //==============================================================================
1182 // PSTR2CON Bits
1184 extern __at(0x0F1B) __sfr PSTR2CON;
1186 typedef union
1188 struct
1190 unsigned STRA : 1;
1191 unsigned STRB : 1;
1192 unsigned STRC : 1;
1193 unsigned STRD : 1;
1194 unsigned STRSYNC : 1;
1195 unsigned : 1;
1196 unsigned CMPL0 : 1;
1197 unsigned CMPL1 : 1;
1200 struct
1202 unsigned : 6;
1203 unsigned CMPL : 2;
1205 } __PSTR2CONbits_t;
1207 extern __at(0x0F1B) volatile __PSTR2CONbits_t PSTR2CONbits;
1209 #define _PSTR2CON_STRA 0x01
1210 #define _PSTR2CON_STRB 0x02
1211 #define _PSTR2CON_STRC 0x04
1212 #define _PSTR2CON_STRD 0x08
1213 #define _PSTR2CON_STRSYNC 0x10
1214 #define _PSTR2CON_CMPL0 0x40
1215 #define _PSTR2CON_CMPL1 0x80
1217 //==============================================================================
1219 extern __at(0x0F1C) __sfr TXREG2;
1220 extern __at(0x0F1D) __sfr RCREG2;
1221 extern __at(0x0F1E) __sfr SPBRG2;
1222 extern __at(0x0F1F) __sfr SPBRGH2;
1224 //==============================================================================
1225 // BAUDCON2 Bits
1227 extern __at(0x0F20) __sfr BAUDCON2;
1229 typedef struct
1231 unsigned ABDEN : 1;
1232 unsigned WUE : 1;
1233 unsigned : 1;
1234 unsigned BRG16 : 1;
1235 unsigned TXCKP : 1;
1236 unsigned RXDTP : 1;
1237 unsigned RCIDL : 1;
1238 unsigned ABDOVF : 1;
1239 } __BAUDCON2bits_t;
1241 extern __at(0x0F20) volatile __BAUDCON2bits_t BAUDCON2bits;
1243 #define _BAUDCON2_ABDEN 0x01
1244 #define _BAUDCON2_WUE 0x02
1245 #define _BAUDCON2_BRG16 0x08
1246 #define _BAUDCON2_TXCKP 0x10
1247 #define _BAUDCON2_RXDTP 0x20
1248 #define _BAUDCON2_RCIDL 0x40
1249 #define _BAUDCON2_ABDOVF 0x80
1251 //==============================================================================
1254 //==============================================================================
1255 // TXSTA2 Bits
1257 extern __at(0x0F21) __sfr TXSTA2;
1259 typedef union
1261 struct
1263 unsigned TX9D : 1;
1264 unsigned TRMT : 1;
1265 unsigned BRGH : 1;
1266 unsigned SENDB : 1;
1267 unsigned SYNC : 1;
1268 unsigned TXEN : 1;
1269 unsigned TX9 : 1;
1270 unsigned CSRC : 1;
1273 struct
1275 unsigned TX9D2 : 1;
1276 unsigned TRMT2 : 1;
1277 unsigned BRGH2 : 1;
1278 unsigned SENDB2 : 1;
1279 unsigned SYNC2 : 1;
1280 unsigned TXEN2 : 1;
1281 unsigned TX92 : 1;
1282 unsigned CSRC2 : 1;
1284 } __TXSTA2bits_t;
1286 extern __at(0x0F21) volatile __TXSTA2bits_t TXSTA2bits;
1288 #define _TXSTA2_TX9D 0x01
1289 #define _TXSTA2_TX9D2 0x01
1290 #define _TXSTA2_TRMT 0x02
1291 #define _TXSTA2_TRMT2 0x02
1292 #define _TXSTA2_BRGH 0x04
1293 #define _TXSTA2_BRGH2 0x04
1294 #define _TXSTA2_SENDB 0x08
1295 #define _TXSTA2_SENDB2 0x08
1296 #define _TXSTA2_SYNC 0x10
1297 #define _TXSTA2_SYNC2 0x10
1298 #define _TXSTA2_TXEN 0x20
1299 #define _TXSTA2_TXEN2 0x20
1300 #define _TXSTA2_TX9 0x40
1301 #define _TXSTA2_TX92 0x40
1302 #define _TXSTA2_CSRC 0x80
1303 #define _TXSTA2_CSRC2 0x80
1305 //==============================================================================
1308 //==============================================================================
1309 // RCSTA2 Bits
1311 extern __at(0x0F22) __sfr RCSTA2;
1313 typedef union
1315 struct
1317 unsigned RX9D : 1;
1318 unsigned OERR : 1;
1319 unsigned FERR : 1;
1320 unsigned ADDEN : 1;
1321 unsigned CREN : 1;
1322 unsigned SREN : 1;
1323 unsigned RX9 : 1;
1324 unsigned SPEN : 1;
1327 struct
1329 unsigned RX9D2 : 1;
1330 unsigned OERR2 : 1;
1331 unsigned FERR2 : 1;
1332 unsigned ADDEN2 : 1;
1333 unsigned CREN2 : 1;
1334 unsigned SREN2 : 1;
1335 unsigned RX92 : 1;
1336 unsigned SPEN2 : 1;
1338 } __RCSTA2bits_t;
1340 extern __at(0x0F22) volatile __RCSTA2bits_t RCSTA2bits;
1342 #define _RCSTA2_RX9D 0x01
1343 #define _RCSTA2_RX9D2 0x01
1344 #define _RCSTA2_OERR 0x02
1345 #define _RCSTA2_OERR2 0x02
1346 #define _RCSTA2_FERR 0x04
1347 #define _RCSTA2_FERR2 0x04
1348 #define _RCSTA2_ADDEN 0x08
1349 #define _RCSTA2_ADDEN2 0x08
1350 #define _RCSTA2_CREN 0x10
1351 #define _RCSTA2_CREN2 0x10
1352 #define _RCSTA2_SREN 0x20
1353 #define _RCSTA2_SREN2 0x20
1354 #define _RCSTA2_RX9 0x40
1355 #define _RCSTA2_RX92 0x40
1356 #define _RCSTA2_SPEN 0x80
1357 #define _RCSTA2_SPEN2 0x80
1359 //==============================================================================
1362 //==============================================================================
1363 // ANCON2 Bits
1365 extern __at(0x0F23) __sfr ANCON2;
1367 typedef struct
1369 unsigned ANSEL16 : 1;
1370 unsigned ANSEL17 : 1;
1371 unsigned ANSEL18 : 1;
1372 unsigned ANSEL19 : 1;
1373 unsigned : 1;
1374 unsigned : 1;
1375 unsigned : 1;
1376 unsigned : 1;
1377 } __ANCON2bits_t;
1379 extern __at(0x0F23) volatile __ANCON2bits_t ANCON2bits;
1381 #define _ANSEL16 0x01
1382 #define _ANSEL17 0x02
1383 #define _ANSEL18 0x04
1384 #define _ANSEL19 0x08
1386 //==============================================================================
1389 //==============================================================================
1390 // ANCON1 Bits
1392 extern __at(0x0F24) __sfr ANCON1;
1394 typedef struct
1396 unsigned ANSEL8 : 1;
1397 unsigned ANSEL9 : 1;
1398 unsigned ANSEL10 : 1;
1399 unsigned ANSEL11 : 1;
1400 unsigned : 1;
1401 unsigned : 1;
1402 unsigned : 1;
1403 unsigned : 1;
1404 } __ANCON1bits_t;
1406 extern __at(0x0F24) volatile __ANCON1bits_t ANCON1bits;
1408 #define _ANSEL8 0x01
1409 #define _ANSEL9 0x02
1410 #define _ANSEL10 0x04
1411 #define _ANSEL11 0x08
1413 //==============================================================================
1416 //==============================================================================
1417 // ANCON0 Bits
1419 extern __at(0x0F25) __sfr ANCON0;
1421 typedef struct
1423 unsigned ANSEL0 : 1;
1424 unsigned ANSEL1 : 1;
1425 unsigned ANSEL2 : 1;
1426 unsigned ANSEL3 : 1;
1427 unsigned ANSEL4 : 1;
1428 unsigned ANSEL5 : 1;
1429 unsigned ANSEL6 : 1;
1430 unsigned ANSEL7 : 1;
1431 } __ANCON0bits_t;
1433 extern __at(0x0F25) volatile __ANCON0bits_t ANCON0bits;
1435 #define _ANSEL0 0x01
1436 #define _ANSEL1 0x02
1437 #define _ANSEL2 0x04
1438 #define _ANSEL3 0x08
1439 #define _ANSEL4 0x10
1440 #define _ANSEL5 0x20
1441 #define _ANSEL6 0x40
1442 #define _ANSEL7 0x80
1444 //==============================================================================
1447 //==============================================================================
1448 // ODCON3 Bits
1450 extern __at(0x0F27) __sfr ODCON3;
1452 typedef struct
1454 unsigned CTMUDS : 1;
1455 unsigned : 1;
1456 unsigned : 1;
1457 unsigned : 1;
1458 unsigned : 1;
1459 unsigned : 1;
1460 unsigned U1OD : 1;
1461 unsigned U2OD : 1;
1462 } __ODCON3bits_t;
1464 extern __at(0x0F27) volatile __ODCON3bits_t ODCON3bits;
1466 #define _CTMUDS 0x01
1467 #define _U1OD 0x40
1468 #define _U2OD 0x80
1470 //==============================================================================
1473 //==============================================================================
1474 // ODCON2 Bits
1476 extern __at(0x0F28) __sfr ODCON2;
1478 typedef struct
1480 unsigned CCP3OD : 1;
1481 unsigned CCP4OD : 1;
1482 unsigned CCP5OD : 1;
1483 unsigned CCP6OD : 1;
1484 unsigned CCP7OD : 1;
1485 unsigned CCP8OD : 1;
1486 unsigned CCP9OD : 1;
1487 unsigned CCP10OD : 1;
1488 } __ODCON2bits_t;
1490 extern __at(0x0F28) volatile __ODCON2bits_t ODCON2bits;
1492 #define _CCP3OD 0x01
1493 #define _CCP4OD 0x02
1494 #define _CCP5OD 0x04
1495 #define _CCP6OD 0x08
1496 #define _CCP7OD 0x10
1497 #define _CCP8OD 0x20
1498 #define _CCP9OD 0x40
1499 #define _CCP10OD 0x80
1501 //==============================================================================
1504 //==============================================================================
1505 // ODCON1 Bits
1507 extern __at(0x0F29) __sfr ODCON1;
1509 typedef struct
1511 unsigned SPI2OD : 1;
1512 unsigned : 1;
1513 unsigned : 1;
1514 unsigned : 1;
1515 unsigned : 1;
1516 unsigned CCP1OD : 1;
1517 unsigned CCP2OD : 1;
1518 unsigned SPI1OD : 1;
1519 } __ODCON1bits_t;
1521 extern __at(0x0F29) volatile __ODCON1bits_t ODCON1bits;
1523 #define _SPI2OD 0x01
1524 #define _CCP1OD 0x20
1525 #define _CCP2OD 0x40
1526 #define _SPI1OD 0x80
1528 //==============================================================================
1531 //==============================================================================
1532 // REFOCON Bits
1534 extern __at(0x0F2A) __sfr REFOCON;
1536 typedef union
1538 struct
1540 unsigned RODIV0 : 1;
1541 unsigned RODIV1 : 1;
1542 unsigned RODIV2 : 1;
1543 unsigned RODIV3 : 1;
1544 unsigned ROSEL : 1;
1545 unsigned ROSSLP : 1;
1546 unsigned : 1;
1547 unsigned ROON : 1;
1550 struct
1552 unsigned RODIV : 4;
1553 unsigned : 4;
1555 } __REFOCONbits_t;
1557 extern __at(0x0F2A) volatile __REFOCONbits_t REFOCONbits;
1559 #define _RODIV0 0x01
1560 #define _RODIV1 0x02
1561 #define _RODIV2 0x04
1562 #define _RODIV3 0x08
1563 #define _ROSEL 0x10
1564 #define _ROSSLP 0x20
1565 #define _ROON 0x80
1567 //==============================================================================
1570 //==============================================================================
1571 // CCPTMRS2 Bits
1573 extern __at(0x0F2B) __sfr CCPTMRS2;
1575 typedef union
1577 struct
1579 unsigned C8TSEL0 : 1;
1580 unsigned C8TSEL1 : 1;
1581 unsigned C9TSEL0 : 1;
1582 unsigned : 1;
1583 unsigned C10TSEL0 : 1;
1584 unsigned : 1;
1585 unsigned : 1;
1586 unsigned : 1;
1589 struct
1591 unsigned C8TSEL : 2;
1592 unsigned : 6;
1594 } __CCPTMRS2bits_t;
1596 extern __at(0x0F2B) volatile __CCPTMRS2bits_t CCPTMRS2bits;
1598 #define _C8TSEL0 0x01
1599 #define _C8TSEL1 0x02
1600 #define _C9TSEL0 0x04
1601 #define _C10TSEL0 0x10
1603 //==============================================================================
1606 //==============================================================================
1607 // CCPTMRS1 Bits
1609 extern __at(0x0F2C) __sfr CCPTMRS1;
1611 typedef union
1613 struct
1615 unsigned C4TSEL0 : 1;
1616 unsigned C4TSEL1 : 1;
1617 unsigned C5TSEL0 : 1;
1618 unsigned : 1;
1619 unsigned C6TSEL0 : 1;
1620 unsigned : 1;
1621 unsigned C7TSEL0 : 1;
1622 unsigned C7TSEL1 : 1;
1625 struct
1627 unsigned C4TSEL : 2;
1628 unsigned : 6;
1631 struct
1633 unsigned : 6;
1634 unsigned C7TSEL : 2;
1636 } __CCPTMRS1bits_t;
1638 extern __at(0x0F2C) volatile __CCPTMRS1bits_t CCPTMRS1bits;
1640 #define _C4TSEL0 0x01
1641 #define _C4TSEL1 0x02
1642 #define _C5TSEL0 0x04
1643 #define _C6TSEL0 0x10
1644 #define _C7TSEL0 0x40
1645 #define _C7TSEL1 0x80
1647 //==============================================================================
1650 //==============================================================================
1651 // CCPTMRS0 Bits
1653 extern __at(0x0F2D) __sfr CCPTMRS0;
1655 typedef union
1657 struct
1659 unsigned C1TSEL0 : 1;
1660 unsigned C1TSEL1 : 1;
1661 unsigned C1TSEL2 : 1;
1662 unsigned C2TSEL0 : 1;
1663 unsigned C2TSEL1 : 1;
1664 unsigned C2TSEL2 : 1;
1665 unsigned C3TSEL0 : 1;
1666 unsigned C3TSEL1 : 1;
1669 struct
1671 unsigned C1TSEL : 3;
1672 unsigned : 5;
1675 struct
1677 unsigned : 3;
1678 unsigned C2TSEL : 3;
1679 unsigned : 2;
1682 struct
1684 unsigned : 6;
1685 unsigned C3TSEL : 2;
1687 } __CCPTMRS0bits_t;
1689 extern __at(0x0F2D) volatile __CCPTMRS0bits_t CCPTMRS0bits;
1691 #define _C1TSEL0 0x01
1692 #define _C1TSEL1 0x02
1693 #define _C1TSEL2 0x04
1694 #define _C2TSEL0 0x08
1695 #define _C2TSEL1 0x10
1696 #define _C2TSEL2 0x20
1697 #define _C3TSEL0 0x40
1698 #define _C3TSEL1 0x80
1700 //==============================================================================
1703 //==============================================================================
1704 // CM3CON Bits
1706 extern __at(0x0F2E) __sfr CM3CON;
1708 typedef union
1710 struct
1712 unsigned CCH0 : 1;
1713 unsigned CCH1 : 1;
1714 unsigned CREF : 1;
1715 unsigned EVPOL0 : 1;
1716 unsigned EVPOL1 : 1;
1717 unsigned CPOL : 1;
1718 unsigned COE : 1;
1719 unsigned CON : 1;
1722 struct
1724 unsigned CCH : 2;
1725 unsigned : 6;
1728 struct
1730 unsigned : 3;
1731 unsigned EVPOL : 2;
1732 unsigned : 3;
1734 } __CM3CONbits_t;
1736 extern __at(0x0F2E) volatile __CM3CONbits_t CM3CONbits;
1738 #define _CM3CON_CCH0 0x01
1739 #define _CM3CON_CCH1 0x02
1740 #define _CM3CON_CREF 0x04
1741 #define _CM3CON_EVPOL0 0x08
1742 #define _CM3CON_EVPOL1 0x10
1743 #define _CM3CON_CPOL 0x20
1744 #define _CM3CON_COE 0x40
1745 #define _CM3CON_CON 0x80
1747 //==============================================================================
1750 //==============================================================================
1751 // CM3CON1 Bits
1753 extern __at(0x0F2E) __sfr CM3CON1;
1755 typedef union
1757 struct
1759 unsigned CCH0 : 1;
1760 unsigned CCH1 : 1;
1761 unsigned CREF : 1;
1762 unsigned EVPOL0 : 1;
1763 unsigned EVPOL1 : 1;
1764 unsigned CPOL : 1;
1765 unsigned COE : 1;
1766 unsigned CON : 1;
1769 struct
1771 unsigned CCH : 2;
1772 unsigned : 6;
1775 struct
1777 unsigned : 3;
1778 unsigned EVPOL : 2;
1779 unsigned : 3;
1781 } __CM3CON1bits_t;
1783 extern __at(0x0F2E) volatile __CM3CON1bits_t CM3CON1bits;
1785 #define _CM3CON1_CCH0 0x01
1786 #define _CM3CON1_CCH1 0x02
1787 #define _CM3CON1_CREF 0x04
1788 #define _CM3CON1_EVPOL0 0x08
1789 #define _CM3CON1_EVPOL1 0x10
1790 #define _CM3CON1_CPOL 0x20
1791 #define _CM3CON1_COE 0x40
1792 #define _CM3CON1_CON 0x80
1794 //==============================================================================
1797 //==============================================================================
1798 // CM2CON Bits
1800 extern __at(0x0F2F) __sfr CM2CON;
1802 typedef union
1804 struct
1806 unsigned CCH0 : 1;
1807 unsigned CCH1 : 1;
1808 unsigned CREF : 1;
1809 unsigned EVPOL0 : 1;
1810 unsigned EVPOL1 : 1;
1811 unsigned CPOL : 1;
1812 unsigned COE : 1;
1813 unsigned CON : 1;
1816 struct
1818 unsigned CCH : 2;
1819 unsigned : 6;
1822 struct
1824 unsigned : 3;
1825 unsigned EVPOL : 2;
1826 unsigned : 3;
1828 } __CM2CONbits_t;
1830 extern __at(0x0F2F) volatile __CM2CONbits_t CM2CONbits;
1832 #define _CM2CON_CCH0 0x01
1833 #define _CM2CON_CCH1 0x02
1834 #define _CM2CON_CREF 0x04
1835 #define _CM2CON_EVPOL0 0x08
1836 #define _CM2CON_EVPOL1 0x10
1837 #define _CM2CON_CPOL 0x20
1838 #define _CM2CON_COE 0x40
1839 #define _CM2CON_CON 0x80
1841 //==============================================================================
1844 //==============================================================================
1845 // CM2CON1 Bits
1847 extern __at(0x0F2F) __sfr CM2CON1;
1849 typedef union
1851 struct
1853 unsigned CCH0 : 1;
1854 unsigned CCH1 : 1;
1855 unsigned CREF : 1;
1856 unsigned EVPOL0 : 1;
1857 unsigned EVPOL1 : 1;
1858 unsigned CPOL : 1;
1859 unsigned COE : 1;
1860 unsigned CON : 1;
1863 struct
1865 unsigned CCH : 2;
1866 unsigned : 6;
1869 struct
1871 unsigned : 3;
1872 unsigned EVPOL : 2;
1873 unsigned : 3;
1875 } __CM2CON1bits_t;
1877 extern __at(0x0F2F) volatile __CM2CON1bits_t CM2CON1bits;
1879 #define _CM2CON1_CCH0 0x01
1880 #define _CM2CON1_CCH1 0x02
1881 #define _CM2CON1_CREF 0x04
1882 #define _CM2CON1_EVPOL0 0x08
1883 #define _CM2CON1_EVPOL1 0x10
1884 #define _CM2CON1_CPOL 0x20
1885 #define _CM2CON1_COE 0x40
1886 #define _CM2CON1_CON 0x80
1888 //==============================================================================
1891 //==============================================================================
1892 // T12CON Bits
1894 extern __at(0x0F30) __sfr T12CON;
1896 typedef union
1898 struct
1900 unsigned T12CKPS0 : 1;
1901 unsigned T12CKPS1 : 1;
1902 unsigned TMR12ON : 1;
1903 unsigned T12OUTPS0 : 1;
1904 unsigned T12OUTPS1 : 1;
1905 unsigned T12OUTPS2 : 1;
1906 unsigned T12OUTPS3 : 1;
1907 unsigned : 1;
1910 struct
1912 unsigned T12CKPS : 2;
1913 unsigned : 6;
1916 struct
1918 unsigned : 3;
1919 unsigned T12OUTPS : 4;
1920 unsigned : 1;
1922 } __T12CONbits_t;
1924 extern __at(0x0F30) volatile __T12CONbits_t T12CONbits;
1926 #define _T12CKPS0 0x01
1927 #define _T12CKPS1 0x02
1928 #define _TMR12ON 0x04
1929 #define _T12OUTPS0 0x08
1930 #define _T12OUTPS1 0x10
1931 #define _T12OUTPS2 0x20
1932 #define _T12OUTPS3 0x40
1934 //==============================================================================
1936 extern __at(0x0F31) __sfr PR12;
1937 extern __at(0x0F32) __sfr TMR12;
1939 //==============================================================================
1940 // T10CON Bits
1942 extern __at(0x0F33) __sfr T10CON;
1944 typedef union
1946 struct
1948 unsigned T10CKPS0 : 1;
1949 unsigned T10CKPS1 : 1;
1950 unsigned TMR10ON : 1;
1951 unsigned T10OUTPS0 : 1;
1952 unsigned T10OUTPS1 : 1;
1953 unsigned T10OUTPS2 : 1;
1954 unsigned T10OUTPS3 : 1;
1955 unsigned : 1;
1958 struct
1960 unsigned T10CKPS : 2;
1961 unsigned : 6;
1964 struct
1966 unsigned : 3;
1967 unsigned T10OUTPS : 4;
1968 unsigned : 1;
1970 } __T10CONbits_t;
1972 extern __at(0x0F33) volatile __T10CONbits_t T10CONbits;
1974 #define _T10CKPS0 0x01
1975 #define _T10CKPS1 0x02
1976 #define _TMR10ON 0x04
1977 #define _T10OUTPS0 0x08
1978 #define _T10OUTPS1 0x10
1979 #define _T10OUTPS2 0x20
1980 #define _T10OUTPS3 0x40
1982 //==============================================================================
1984 extern __at(0x0F34) __sfr PR10;
1985 extern __at(0x0F35) __sfr TMR10;
1987 //==============================================================================
1988 // T8CON Bits
1990 extern __at(0x0F36) __sfr T8CON;
1992 typedef union
1994 struct
1996 unsigned T8CKPS0 : 1;
1997 unsigned T8CKPS1 : 1;
1998 unsigned TMR8ON : 1;
1999 unsigned T8OUTPS0 : 1;
2000 unsigned T8OUTPS1 : 1;
2001 unsigned T8OUTPS2 : 1;
2002 unsigned T8OUTPS3 : 1;
2003 unsigned : 1;
2006 struct
2008 unsigned T8CKPS : 2;
2009 unsigned : 6;
2012 struct
2014 unsigned : 3;
2015 unsigned T8OUTPS : 4;
2016 unsigned : 1;
2018 } __T8CONbits_t;
2020 extern __at(0x0F36) volatile __T8CONbits_t T8CONbits;
2022 #define _T8CKPS0 0x01
2023 #define _T8CKPS1 0x02
2024 #define _TMR8ON 0x04
2025 #define _T8OUTPS0 0x08
2026 #define _T8OUTPS1 0x10
2027 #define _T8OUTPS2 0x20
2028 #define _T8OUTPS3 0x40
2030 //==============================================================================
2032 extern __at(0x0F37) __sfr PR8;
2033 extern __at(0x0F38) __sfr TMR8;
2035 //==============================================================================
2036 // T6CON Bits
2038 extern __at(0x0F39) __sfr T6CON;
2040 typedef union
2042 struct
2044 unsigned T6CKPS0 : 1;
2045 unsigned T6CKPS1 : 1;
2046 unsigned TMR6ON : 1;
2047 unsigned T6OUTPS0 : 1;
2048 unsigned T6OUTPS1 : 1;
2049 unsigned T6OUTPS2 : 1;
2050 unsigned T6OUTPS3 : 1;
2051 unsigned : 1;
2054 struct
2056 unsigned T6CKPS : 2;
2057 unsigned : 6;
2060 struct
2062 unsigned : 3;
2063 unsigned T6OUTPS : 4;
2064 unsigned : 1;
2066 } __T6CONbits_t;
2068 extern __at(0x0F39) volatile __T6CONbits_t T6CONbits;
2070 #define _T6CKPS0 0x01
2071 #define _T6CKPS1 0x02
2072 #define _TMR6ON 0x04
2073 #define _T6OUTPS0 0x08
2074 #define _T6OUTPS1 0x10
2075 #define _T6OUTPS2 0x20
2076 #define _T6OUTPS3 0x40
2078 //==============================================================================
2080 extern __at(0x0F3A) __sfr PR6;
2081 extern __at(0x0F3B) __sfr TMR6;
2083 //==============================================================================
2084 // T7GCON Bits
2086 extern __at(0x0F3C) __sfr T7GCON;
2088 typedef union
2090 struct
2092 unsigned T7GSS0 : 1;
2093 unsigned T7GSS1 : 1;
2094 unsigned T7GVAL : 1;
2095 unsigned T7GGO_NOT_T7DONE : 1;
2096 unsigned T7GSPM : 1;
2097 unsigned T7GTM : 1;
2098 unsigned T7GPOL : 1;
2099 unsigned TMR7GE : 1;
2102 struct
2104 unsigned : 1;
2105 unsigned : 1;
2106 unsigned : 1;
2107 unsigned T7GGO : 1;
2108 unsigned : 1;
2109 unsigned : 1;
2110 unsigned : 1;
2111 unsigned : 1;
2114 struct
2116 unsigned : 1;
2117 unsigned : 1;
2118 unsigned : 1;
2119 unsigned NOT_T7DONE : 1;
2120 unsigned : 1;
2121 unsigned : 1;
2122 unsigned : 1;
2123 unsigned : 1;
2126 struct
2128 unsigned T7GSS : 2;
2129 unsigned : 6;
2131 } __T7GCONbits_t;
2133 extern __at(0x0F3C) volatile __T7GCONbits_t T7GCONbits;
2135 #define _T7GSS0 0x01
2136 #define _T7GSS1 0x02
2137 #define _T7GVAL 0x04
2138 #define _T7GGO_NOT_T7DONE 0x08
2139 #define _T7GGO 0x08
2140 #define _NOT_T7DONE 0x08
2141 #define _T7GSPM 0x10
2142 #define _T7GTM 0x20
2143 #define _T7GPOL 0x40
2144 #define _TMR7GE 0x80
2146 //==============================================================================
2149 //==============================================================================
2150 // T7CON Bits
2152 extern __at(0x0F3D) __sfr T7CON;
2154 typedef union
2156 struct
2158 unsigned TMR7ON : 1;
2159 unsigned RD16 : 1;
2160 unsigned NOT_T7SYNC : 1;
2161 unsigned SOSCEN : 1;
2162 unsigned T7CKPS0 : 1;
2163 unsigned T7CKPS1 : 1;
2164 unsigned TMR7CS0 : 1;
2165 unsigned TMR7CS1 : 1;
2168 struct
2170 unsigned : 4;
2171 unsigned T7CKPS : 2;
2172 unsigned : 2;
2175 struct
2177 unsigned : 6;
2178 unsigned TMR7CS : 2;
2180 } __T7CONbits_t;
2182 extern __at(0x0F3D) volatile __T7CONbits_t T7CONbits;
2184 #define _T7CON_TMR7ON 0x01
2185 #define _T7CON_RD16 0x02
2186 #define _T7CON_NOT_T7SYNC 0x04
2187 #define _T7CON_SOSCEN 0x08
2188 #define _T7CON_T7CKPS0 0x10
2189 #define _T7CON_T7CKPS1 0x20
2190 #define _T7CON_TMR7CS0 0x40
2191 #define _T7CON_TMR7CS1 0x80
2193 //==============================================================================
2195 extern __at(0x0F3E) __sfr TMR7;
2196 extern __at(0x0F3E) __sfr TMR7L;
2197 extern __at(0x0F3F) __sfr TMR7H;
2199 //==============================================================================
2200 // CCP10CON Bits
2202 extern __at(0x0F40) __sfr CCP10CON;
2204 typedef union
2206 struct
2208 unsigned CCP10M0 : 1;
2209 unsigned CCP10M1 : 1;
2210 unsigned CCP10M2 : 1;
2211 unsigned CCP10M3 : 1;
2212 unsigned DC10B0 : 1;
2213 unsigned DC10B1 : 1;
2214 unsigned : 1;
2215 unsigned : 1;
2218 struct
2220 unsigned : 1;
2221 unsigned : 1;
2222 unsigned : 1;
2223 unsigned : 1;
2224 unsigned CCP10Y : 1;
2225 unsigned CCP10X : 1;
2226 unsigned : 1;
2227 unsigned : 1;
2230 struct
2232 unsigned CCP10M : 4;
2233 unsigned : 4;
2236 struct
2238 unsigned : 4;
2239 unsigned DC10B : 2;
2240 unsigned : 2;
2242 } __CCP10CONbits_t;
2244 extern __at(0x0F40) volatile __CCP10CONbits_t CCP10CONbits;
2246 #define _CCP10M0 0x01
2247 #define _CCP10M1 0x02
2248 #define _CCP10M2 0x04
2249 #define _CCP10M3 0x08
2250 #define _DC10B0 0x10
2251 #define _CCP10Y 0x10
2252 #define _DC10B1 0x20
2253 #define _CCP10X 0x20
2255 //==============================================================================
2257 extern __at(0x0F41) __sfr CCPR10;
2258 extern __at(0x0F41) __sfr CCPR10L;
2259 extern __at(0x0F42) __sfr CCPR10H;
2261 //==============================================================================
2262 // CCP9CON Bits
2264 extern __at(0x0F43) __sfr CCP9CON;
2266 typedef union
2268 struct
2270 unsigned CCP9M0 : 1;
2271 unsigned CCP9M1 : 1;
2272 unsigned CCP9M2 : 1;
2273 unsigned CCP9M3 : 1;
2274 unsigned DC9B0 : 1;
2275 unsigned DC9B1 : 1;
2276 unsigned : 1;
2277 unsigned : 1;
2280 struct
2282 unsigned : 1;
2283 unsigned : 1;
2284 unsigned : 1;
2285 unsigned : 1;
2286 unsigned CCP9Y : 1;
2287 unsigned CCP9X : 1;
2288 unsigned : 1;
2289 unsigned : 1;
2292 struct
2294 unsigned CCP9M : 4;
2295 unsigned : 4;
2298 struct
2300 unsigned : 4;
2301 unsigned DC9B : 2;
2302 unsigned : 2;
2304 } __CCP9CONbits_t;
2306 extern __at(0x0F43) volatile __CCP9CONbits_t CCP9CONbits;
2308 #define _CCP9M0 0x01
2309 #define _CCP9M1 0x02
2310 #define _CCP9M2 0x04
2311 #define _CCP9M3 0x08
2312 #define _DC9B0 0x10
2313 #define _CCP9Y 0x10
2314 #define _DC9B1 0x20
2315 #define _CCP9X 0x20
2317 //==============================================================================
2319 extern __at(0x0F44) __sfr CCPR9;
2320 extern __at(0x0F44) __sfr CCPR9L;
2321 extern __at(0x0F45) __sfr CCPR9H;
2323 //==============================================================================
2324 // CCP8CON Bits
2326 extern __at(0x0F46) __sfr CCP8CON;
2328 typedef union
2330 struct
2332 unsigned CCP8M0 : 1;
2333 unsigned CCP8M1 : 1;
2334 unsigned CCP8M2 : 1;
2335 unsigned CCP8M3 : 1;
2336 unsigned DC8B0 : 1;
2337 unsigned DC8B1 : 1;
2338 unsigned : 1;
2339 unsigned : 1;
2342 struct
2344 unsigned : 1;
2345 unsigned : 1;
2346 unsigned : 1;
2347 unsigned : 1;
2348 unsigned CCP8Y : 1;
2349 unsigned CCP8X : 1;
2350 unsigned : 1;
2351 unsigned : 1;
2354 struct
2356 unsigned CCP8M : 4;
2357 unsigned : 4;
2360 struct
2362 unsigned : 4;
2363 unsigned DC8B : 2;
2364 unsigned : 2;
2366 } __CCP8CONbits_t;
2368 extern __at(0x0F46) volatile __CCP8CONbits_t CCP8CONbits;
2370 #define _CCP8M0 0x01
2371 #define _CCP8M1 0x02
2372 #define _CCP8M2 0x04
2373 #define _CCP8M3 0x08
2374 #define _DC8B0 0x10
2375 #define _CCP8Y 0x10
2376 #define _DC8B1 0x20
2377 #define _CCP8X 0x20
2379 //==============================================================================
2381 extern __at(0x0F47) __sfr CCPR8;
2382 extern __at(0x0F47) __sfr CCPR8L;
2383 extern __at(0x0F48) __sfr CCPR8H;
2385 //==============================================================================
2386 // CCP3CON Bits
2388 extern __at(0x0F49) __sfr CCP3CON;
2390 typedef union
2392 struct
2394 unsigned CCP3M0 : 1;
2395 unsigned CCP3M1 : 1;
2396 unsigned CCP3M2 : 1;
2397 unsigned CCP3M3 : 1;
2398 unsigned DC3B0 : 1;
2399 unsigned DC3B1 : 1;
2400 unsigned P3M0 : 1;
2401 unsigned P3M1 : 1;
2404 struct
2406 unsigned : 1;
2407 unsigned : 1;
2408 unsigned : 1;
2409 unsigned : 1;
2410 unsigned CCP3Y : 1;
2411 unsigned CCP3X : 1;
2412 unsigned : 1;
2413 unsigned : 1;
2416 struct
2418 unsigned CCP3M : 4;
2419 unsigned : 4;
2422 struct
2424 unsigned : 4;
2425 unsigned DC3B : 2;
2426 unsigned : 2;
2429 struct
2431 unsigned : 6;
2432 unsigned P3M : 2;
2434 } __CCP3CONbits_t;
2436 extern __at(0x0F49) volatile __CCP3CONbits_t CCP3CONbits;
2438 #define _CCP3M0 0x01
2439 #define _CCP3M1 0x02
2440 #define _CCP3M2 0x04
2441 #define _CCP3M3 0x08
2442 #define _DC3B0 0x10
2443 #define _CCP3Y 0x10
2444 #define _DC3B1 0x20
2445 #define _CCP3X 0x20
2446 #define _P3M0 0x40
2447 #define _P3M1 0x80
2449 //==============================================================================
2451 extern __at(0x0F4A) __sfr CCPR3;
2452 extern __at(0x0F4A) __sfr CCPR3L;
2453 extern __at(0x0F4B) __sfr CCPR3H;
2455 //==============================================================================
2456 // ECCP3DEL Bits
2458 extern __at(0x0F4C) __sfr ECCP3DEL;
2460 typedef union
2462 struct
2464 unsigned P3DC0 : 1;
2465 unsigned P3DC1 : 1;
2466 unsigned P3DC2 : 1;
2467 unsigned P3DC3 : 1;
2468 unsigned P3DC4 : 1;
2469 unsigned P3DC5 : 1;
2470 unsigned P3DC6 : 1;
2471 unsigned P3RSEN : 1;
2474 struct
2476 unsigned P3DC : 7;
2477 unsigned : 1;
2479 } __ECCP3DELbits_t;
2481 extern __at(0x0F4C) volatile __ECCP3DELbits_t ECCP3DELbits;
2483 #define _P3DC0 0x01
2484 #define _P3DC1 0x02
2485 #define _P3DC2 0x04
2486 #define _P3DC3 0x08
2487 #define _P3DC4 0x10
2488 #define _P3DC5 0x20
2489 #define _P3DC6 0x40
2490 #define _P3RSEN 0x80
2492 //==============================================================================
2495 //==============================================================================
2496 // PWM3CON Bits
2498 extern __at(0x0F4C) __sfr PWM3CON;
2500 typedef union
2502 struct
2504 unsigned P3DC0 : 1;
2505 unsigned P3DC1 : 1;
2506 unsigned P3DC2 : 1;
2507 unsigned P3DC3 : 1;
2508 unsigned P3DC4 : 1;
2509 unsigned P3DC5 : 1;
2510 unsigned P3DC6 : 1;
2511 unsigned P3RSEN : 1;
2514 struct
2516 unsigned P3DC : 7;
2517 unsigned : 1;
2519 } __PWM3CONbits_t;
2521 extern __at(0x0F4C) volatile __PWM3CONbits_t PWM3CONbits;
2523 #define _PWM3CON_P3DC0 0x01
2524 #define _PWM3CON_P3DC1 0x02
2525 #define _PWM3CON_P3DC2 0x04
2526 #define _PWM3CON_P3DC3 0x08
2527 #define _PWM3CON_P3DC4 0x10
2528 #define _PWM3CON_P3DC5 0x20
2529 #define _PWM3CON_P3DC6 0x40
2530 #define _PWM3CON_P3RSEN 0x80
2532 //==============================================================================
2535 //==============================================================================
2536 // ECCP3AS Bits
2538 extern __at(0x0F4D) __sfr ECCP3AS;
2540 typedef union
2542 struct
2544 unsigned PSS3BD0 : 1;
2545 unsigned PSS3BD1 : 1;
2546 unsigned PSS3AC0 : 1;
2547 unsigned PSS3AC1 : 1;
2548 unsigned ECCP3AS0 : 1;
2549 unsigned ECCP3AS1 : 1;
2550 unsigned ECCP3AS2 : 1;
2551 unsigned ECCP3ASE : 1;
2554 struct
2556 unsigned PSS3BD : 2;
2557 unsigned : 6;
2560 struct
2562 unsigned : 2;
2563 unsigned PSS3AC : 2;
2564 unsigned : 4;
2567 struct
2569 unsigned : 4;
2570 unsigned ECCP3AS : 3;
2571 unsigned : 1;
2573 } __ECCP3ASbits_t;
2575 extern __at(0x0F4D) volatile __ECCP3ASbits_t ECCP3ASbits;
2577 #define _PSS3BD0 0x01
2578 #define _PSS3BD1 0x02
2579 #define _PSS3AC0 0x04
2580 #define _PSS3AC1 0x08
2581 #define _ECCP3AS0 0x10
2582 #define _ECCP3AS1 0x20
2583 #define _ECCP3AS2 0x40
2584 #define _ECCP3ASE 0x80
2586 //==============================================================================
2589 //==============================================================================
2590 // CCP2CON Bits
2592 extern __at(0x0F4E) __sfr CCP2CON;
2594 typedef union
2596 struct
2598 unsigned CCP2M0 : 1;
2599 unsigned CCP2M1 : 1;
2600 unsigned CCP2M2 : 1;
2601 unsigned CCP2M3 : 1;
2602 unsigned DC2B0 : 1;
2603 unsigned DC2B1 : 1;
2604 unsigned P2M0 : 1;
2605 unsigned P2M1 : 1;
2608 struct
2610 unsigned : 1;
2611 unsigned : 1;
2612 unsigned : 1;
2613 unsigned : 1;
2614 unsigned CCP2Y : 1;
2615 unsigned CCP2X : 1;
2616 unsigned : 1;
2617 unsigned : 1;
2620 struct
2622 unsigned CCP2M : 4;
2623 unsigned : 4;
2626 struct
2628 unsigned : 4;
2629 unsigned DC2B : 2;
2630 unsigned : 2;
2633 struct
2635 unsigned : 6;
2636 unsigned P2M : 2;
2638 } __CCP2CONbits_t;
2640 extern __at(0x0F4E) volatile __CCP2CONbits_t CCP2CONbits;
2642 #define _CCP2M0 0x01
2643 #define _CCP2M1 0x02
2644 #define _CCP2M2 0x04
2645 #define _CCP2M3 0x08
2646 #define _DC2B0 0x10
2647 #define _CCP2Y 0x10
2648 #define _DC2B1 0x20
2649 #define _CCP2X 0x20
2650 #define _P2M0 0x40
2651 #define _P2M1 0x80
2653 //==============================================================================
2656 //==============================================================================
2657 // ECCP2CON Bits
2659 extern __at(0x0F4E) __sfr ECCP2CON;
2661 typedef union
2663 struct
2665 unsigned CCP2M0 : 1;
2666 unsigned CCP2M1 : 1;
2667 unsigned CCP2M2 : 1;
2668 unsigned CCP2M3 : 1;
2669 unsigned DC2B0 : 1;
2670 unsigned DC2B1 : 1;
2671 unsigned P2M0 : 1;
2672 unsigned P2M1 : 1;
2675 struct
2677 unsigned : 1;
2678 unsigned : 1;
2679 unsigned : 1;
2680 unsigned : 1;
2681 unsigned CCP2Y : 1;
2682 unsigned CCP2X : 1;
2683 unsigned : 1;
2684 unsigned : 1;
2687 struct
2689 unsigned CCP2M : 4;
2690 unsigned : 4;
2693 struct
2695 unsigned : 4;
2696 unsigned DC2B : 2;
2697 unsigned : 2;
2700 struct
2702 unsigned : 6;
2703 unsigned P2M : 2;
2705 } __ECCP2CONbits_t;
2707 extern __at(0x0F4E) volatile __ECCP2CONbits_t ECCP2CONbits;
2709 #define _ECCP2CON_CCP2M0 0x01
2710 #define _ECCP2CON_CCP2M1 0x02
2711 #define _ECCP2CON_CCP2M2 0x04
2712 #define _ECCP2CON_CCP2M3 0x08
2713 #define _ECCP2CON_DC2B0 0x10
2714 #define _ECCP2CON_CCP2Y 0x10
2715 #define _ECCP2CON_DC2B1 0x20
2716 #define _ECCP2CON_CCP2X 0x20
2717 #define _ECCP2CON_P2M0 0x40
2718 #define _ECCP2CON_P2M1 0x80
2720 //==============================================================================
2722 extern __at(0x0F4F) __sfr CCPR2;
2723 extern __at(0x0F4F) __sfr CCPR2L;
2724 extern __at(0x0F50) __sfr CCPR2H;
2726 //==============================================================================
2727 // ECCP2DEL Bits
2729 extern __at(0x0F51) __sfr ECCP2DEL;
2731 typedef union
2733 struct
2735 unsigned P2DC0 : 1;
2736 unsigned P2DC1 : 1;
2737 unsigned P2DC2 : 1;
2738 unsigned P2DC3 : 1;
2739 unsigned P2DC4 : 1;
2740 unsigned P2DC5 : 1;
2741 unsigned P2DC6 : 1;
2742 unsigned P2RSEN : 1;
2745 struct
2747 unsigned P2DC : 7;
2748 unsigned : 1;
2750 } __ECCP2DELbits_t;
2752 extern __at(0x0F51) volatile __ECCP2DELbits_t ECCP2DELbits;
2754 #define _P2DC0 0x01
2755 #define _P2DC1 0x02
2756 #define _P2DC2 0x04
2757 #define _P2DC3 0x08
2758 #define _P2DC4 0x10
2759 #define _P2DC5 0x20
2760 #define _P2DC6 0x40
2761 #define _P2RSEN 0x80
2763 //==============================================================================
2766 //==============================================================================
2767 // PWM2CON Bits
2769 extern __at(0x0F51) __sfr PWM2CON;
2771 typedef union
2773 struct
2775 unsigned P2DC0 : 1;
2776 unsigned P2DC1 : 1;
2777 unsigned P2DC2 : 1;
2778 unsigned P2DC3 : 1;
2779 unsigned P2DC4 : 1;
2780 unsigned P2DC5 : 1;
2781 unsigned P2DC6 : 1;
2782 unsigned P2RSEN : 1;
2785 struct
2787 unsigned P2DC : 7;
2788 unsigned : 1;
2790 } __PWM2CONbits_t;
2792 extern __at(0x0F51) volatile __PWM2CONbits_t PWM2CONbits;
2794 #define _PWM2CON_P2DC0 0x01
2795 #define _PWM2CON_P2DC1 0x02
2796 #define _PWM2CON_P2DC2 0x04
2797 #define _PWM2CON_P2DC3 0x08
2798 #define _PWM2CON_P2DC4 0x10
2799 #define _PWM2CON_P2DC5 0x20
2800 #define _PWM2CON_P2DC6 0x40
2801 #define _PWM2CON_P2RSEN 0x80
2803 //==============================================================================
2806 //==============================================================================
2807 // ECCP2AS Bits
2809 extern __at(0x0F52) __sfr ECCP2AS;
2811 typedef union
2813 struct
2815 unsigned PSS2BD0 : 1;
2816 unsigned PSS2BD1 : 1;
2817 unsigned PSS2AC0 : 1;
2818 unsigned PSS2AC1 : 1;
2819 unsigned ECCP2AS0 : 1;
2820 unsigned ECCP2AS1 : 1;
2821 unsigned ECCP2AS2 : 1;
2822 unsigned ECCP2ASE : 1;
2825 struct
2827 unsigned PSS2BD : 2;
2828 unsigned : 6;
2831 struct
2833 unsigned : 2;
2834 unsigned PSS2AC : 2;
2835 unsigned : 4;
2838 struct
2840 unsigned : 4;
2841 unsigned ECCP2AS : 3;
2842 unsigned : 1;
2844 } __ECCP2ASbits_t;
2846 extern __at(0x0F52) volatile __ECCP2ASbits_t ECCP2ASbits;
2848 #define _PSS2BD0 0x01
2849 #define _PSS2BD1 0x02
2850 #define _PSS2AC0 0x04
2851 #define _PSS2AC1 0x08
2852 #define _ECCP2AS0 0x10
2853 #define _ECCP2AS1 0x20
2854 #define _ECCP2AS2 0x40
2855 #define _ECCP2ASE 0x80
2857 //==============================================================================
2860 //==============================================================================
2861 // PADCFG1 Bits
2863 extern __at(0x0F53) __sfr PADCFG1;
2865 typedef union
2867 struct
2869 unsigned : 1;
2870 unsigned RTSECSEL0 : 1;
2871 unsigned RTSECSEL1 : 1;
2872 unsigned : 1;
2873 unsigned : 1;
2874 unsigned : 1;
2875 unsigned REPU : 1;
2876 unsigned RDPU : 1;
2879 struct
2881 unsigned : 1;
2882 unsigned RTSECSEL : 2;
2883 unsigned : 5;
2885 } __PADCFG1bits_t;
2887 extern __at(0x0F53) volatile __PADCFG1bits_t PADCFG1bits;
2889 #define _RTSECSEL0 0x02
2890 #define _RTSECSEL1 0x04
2891 #define _REPU 0x40
2892 #define _RDPU 0x80
2894 //==============================================================================
2897 //==============================================================================
2898 // CM1CON Bits
2900 extern __at(0x0F54) __sfr CM1CON;
2902 typedef union
2904 struct
2906 unsigned CCH0 : 1;
2907 unsigned CCH1 : 1;
2908 unsigned CREF : 1;
2909 unsigned EVPOL0 : 1;
2910 unsigned EVPOL1 : 1;
2911 unsigned CPOL : 1;
2912 unsigned COE : 1;
2913 unsigned CON : 1;
2916 struct
2918 unsigned CCH : 2;
2919 unsigned : 6;
2922 struct
2924 unsigned : 3;
2925 unsigned EVPOL : 2;
2926 unsigned : 3;
2928 } __CM1CONbits_t;
2930 extern __at(0x0F54) volatile __CM1CONbits_t CM1CONbits;
2932 #define _CCH0 0x01
2933 #define _CCH1 0x02
2934 #define _CREF 0x04
2935 #define _EVPOL0 0x08
2936 #define _EVPOL1 0x10
2937 #define _CPOL 0x20
2938 #define _COE 0x40
2939 #define _CON 0x80
2941 //==============================================================================
2944 //==============================================================================
2945 // CM1CON1 Bits
2947 extern __at(0x0F54) __sfr CM1CON1;
2949 typedef union
2951 struct
2953 unsigned CCH0 : 1;
2954 unsigned CCH1 : 1;
2955 unsigned CREF : 1;
2956 unsigned EVPOL0 : 1;
2957 unsigned EVPOL1 : 1;
2958 unsigned CPOL : 1;
2959 unsigned COE : 1;
2960 unsigned CON : 1;
2963 struct
2965 unsigned CCH : 2;
2966 unsigned : 6;
2969 struct
2971 unsigned : 3;
2972 unsigned EVPOL : 2;
2973 unsigned : 3;
2975 } __CM1CON1bits_t;
2977 extern __at(0x0F54) volatile __CM1CON1bits_t CM1CON1bits;
2979 #define _CM1CON1_CCH0 0x01
2980 #define _CM1CON1_CCH1 0x02
2981 #define _CM1CON1_CREF 0x04
2982 #define _CM1CON1_EVPOL0 0x08
2983 #define _CM1CON1_EVPOL1 0x10
2984 #define _CM1CON1_CPOL 0x20
2985 #define _CM1CON1_COE 0x40
2986 #define _CM1CON1_CON 0x80
2988 //==============================================================================
2991 //==============================================================================
2992 // CTMUICON Bits
2994 extern __at(0x0F55) __sfr CTMUICON;
2996 typedef union
2998 struct
3000 unsigned IRNG0 : 1;
3001 unsigned IRNG1 : 1;
3002 unsigned ITRIM0 : 1;
3003 unsigned ITRIM1 : 1;
3004 unsigned ITRIM2 : 1;
3005 unsigned ITRIM3 : 1;
3006 unsigned ITRIM4 : 1;
3007 unsigned ITRIM5 : 1;
3010 struct
3012 unsigned IRNG : 2;
3013 unsigned : 6;
3016 struct
3018 unsigned : 2;
3019 unsigned ITRIM : 6;
3021 } __CTMUICONbits_t;
3023 extern __at(0x0F55) volatile __CTMUICONbits_t CTMUICONbits;
3025 #define _IRNG0 0x01
3026 #define _IRNG1 0x02
3027 #define _ITRIM0 0x04
3028 #define _ITRIM1 0x08
3029 #define _ITRIM2 0x10
3030 #define _ITRIM3 0x20
3031 #define _ITRIM4 0x40
3032 #define _ITRIM5 0x80
3034 //==============================================================================
3037 //==============================================================================
3038 // CTMUCONL Bits
3040 extern __at(0x0F56) __sfr CTMUCONL;
3042 typedef union
3044 struct
3046 unsigned EDG1STAT : 1;
3047 unsigned EDG2STAT : 1;
3048 unsigned EDG1SEL0 : 1;
3049 unsigned EDG1SEL1 : 1;
3050 unsigned EDG1POL : 1;
3051 unsigned EDG2SEL0 : 1;
3052 unsigned EDG2SEL1 : 1;
3053 unsigned EDG2POL : 1;
3056 struct
3058 unsigned : 2;
3059 unsigned EDG1SEL : 2;
3060 unsigned : 4;
3063 struct
3065 unsigned : 5;
3066 unsigned EDG2SEL : 2;
3067 unsigned : 1;
3069 } __CTMUCONLbits_t;
3071 extern __at(0x0F56) volatile __CTMUCONLbits_t CTMUCONLbits;
3073 #define _EDG1STAT 0x01
3074 #define _EDG2STAT 0x02
3075 #define _EDG1SEL0 0x04
3076 #define _EDG1SEL1 0x08
3077 #define _EDG1POL 0x10
3078 #define _EDG2SEL0 0x20
3079 #define _EDG2SEL1 0x40
3080 #define _EDG2POL 0x80
3082 //==============================================================================
3085 //==============================================================================
3086 // CTMUCONH Bits
3088 extern __at(0x0F57) __sfr CTMUCONH;
3090 typedef struct
3092 unsigned CTTRIG : 1;
3093 unsigned IDISSEN : 1;
3094 unsigned EDGSEQEN : 1;
3095 unsigned EDGEN : 1;
3096 unsigned TGEN : 1;
3097 unsigned CTMUSIDL : 1;
3098 unsigned : 1;
3099 unsigned CTMUEN : 1;
3100 } __CTMUCONHbits_t;
3102 extern __at(0x0F57) volatile __CTMUCONHbits_t CTMUCONHbits;
3104 #define _CTTRIG 0x01
3105 #define _IDISSEN 0x02
3106 #define _EDGSEQEN 0x04
3107 #define _EDGEN 0x08
3108 #define _TGEN 0x10
3109 #define _CTMUSIDL 0x20
3110 #define _CTMUEN 0x80
3112 //==============================================================================
3114 extern __at(0x0F58) __sfr ALRMVAL;
3115 extern __at(0x0F58) __sfr ALRMVALL;
3116 extern __at(0x0F59) __sfr ALRMVALH;
3118 //==============================================================================
3119 // ALRMRPT Bits
3121 extern __at(0x0F5A) __sfr ALRMRPT;
3123 typedef struct
3125 unsigned ARPT0 : 1;
3126 unsigned ARPT1 : 1;
3127 unsigned ARPT2 : 1;
3128 unsigned ARPT3 : 1;
3129 unsigned ARPT4 : 1;
3130 unsigned ARPT5 : 1;
3131 unsigned ARPT6 : 1;
3132 unsigned ARPT7 : 1;
3133 } __ALRMRPTbits_t;
3135 extern __at(0x0F5A) volatile __ALRMRPTbits_t ALRMRPTbits;
3137 #define _ARPT0 0x01
3138 #define _ARPT1 0x02
3139 #define _ARPT2 0x04
3140 #define _ARPT3 0x08
3141 #define _ARPT4 0x10
3142 #define _ARPT5 0x20
3143 #define _ARPT6 0x40
3144 #define _ARPT7 0x80
3146 //==============================================================================
3149 //==============================================================================
3150 // ALRMCFG Bits
3152 extern __at(0x0F5B) __sfr ALRMCFG;
3154 typedef union
3156 struct
3158 unsigned ALRMPTR0 : 1;
3159 unsigned ALRMPTR1 : 1;
3160 unsigned AMASK0 : 1;
3161 unsigned AMASK1 : 1;
3162 unsigned AMASK2 : 1;
3163 unsigned AMASK3 : 1;
3164 unsigned CHIME : 1;
3165 unsigned ALRMEN : 1;
3168 struct
3170 unsigned ALRMPTR : 2;
3171 unsigned : 6;
3174 struct
3176 unsigned : 2;
3177 unsigned AMASK : 4;
3178 unsigned : 2;
3180 } __ALRMCFGbits_t;
3182 extern __at(0x0F5B) volatile __ALRMCFGbits_t ALRMCFGbits;
3184 #define _ALRMPTR0 0x01
3185 #define _ALRMPTR1 0x02
3186 #define _AMASK0 0x04
3187 #define _AMASK1 0x08
3188 #define _AMASK2 0x10
3189 #define _AMASK3 0x20
3190 #define _CHIME 0x40
3191 #define _ALRMEN 0x80
3193 //==============================================================================
3195 extern __at(0x0F5C) __sfr RTCVAL;
3196 extern __at(0x0F5C) __sfr RTCVALL;
3198 //==============================================================================
3199 // RTCVALH Bits
3201 extern __at(0x0F5D) __sfr RTCVALH;
3203 typedef union
3205 struct
3207 unsigned WAITE0 : 1;
3208 unsigned WAITE1 : 1;
3209 unsigned WAITM0 : 1;
3210 unsigned WAITM1 : 1;
3211 unsigned WAITM2 : 1;
3212 unsigned WAITM3 : 1;
3213 unsigned WAITB0 : 1;
3214 unsigned WAITB1 : 1;
3217 struct
3219 unsigned WAITE : 2;
3220 unsigned : 6;
3223 struct
3225 unsigned : 2;
3226 unsigned WAITM : 4;
3227 unsigned : 2;
3230 struct
3232 unsigned : 6;
3233 unsigned WAITB : 2;
3235 } __RTCVALHbits_t;
3237 extern __at(0x0F5D) volatile __RTCVALHbits_t RTCVALHbits;
3239 #define _WAITE0 0x01
3240 #define _WAITE1 0x02
3241 #define _WAITM0 0x04
3242 #define _WAITM1 0x08
3243 #define _WAITM2 0x10
3244 #define _WAITM3 0x20
3245 #define _WAITB0 0x40
3246 #define _WAITB1 0x80
3248 //==============================================================================
3251 //==============================================================================
3252 // RTCCAL Bits
3254 extern __at(0x0F5E) __sfr RTCCAL;
3256 typedef struct
3258 unsigned CAL0 : 1;
3259 unsigned CAL1 : 1;
3260 unsigned CAL2 : 1;
3261 unsigned CAL3 : 1;
3262 unsigned CAL4 : 1;
3263 unsigned CAL5 : 1;
3264 unsigned CAL6 : 1;
3265 unsigned CAL7 : 1;
3266 } __RTCCALbits_t;
3268 extern __at(0x0F5E) volatile __RTCCALbits_t RTCCALbits;
3270 #define _CAL0 0x01
3271 #define _CAL1 0x02
3272 #define _CAL2 0x04
3273 #define _CAL3 0x08
3274 #define _CAL4 0x10
3275 #define _CAL5 0x20
3276 #define _CAL6 0x40
3277 #define _CAL7 0x80
3279 //==============================================================================
3282 //==============================================================================
3283 // RTCCFG Bits
3285 extern __at(0x0F5F) __sfr RTCCFG;
3287 typedef union
3289 struct
3291 unsigned RTCPTR0 : 1;
3292 unsigned RTCPTR1 : 1;
3293 unsigned RTCOE : 1;
3294 unsigned HALFSEC : 1;
3295 unsigned RTCSYNC : 1;
3296 unsigned RTCWREN : 1;
3297 unsigned : 1;
3298 unsigned RTCEN : 1;
3301 struct
3303 unsigned RTCPTR : 2;
3304 unsigned : 6;
3306 } __RTCCFGbits_t;
3308 extern __at(0x0F5F) volatile __RTCCFGbits_t RTCCFGbits;
3310 #define _RTCPTR0 0x01
3311 #define _RTCPTR1 0x02
3312 #define _RTCOE 0x04
3313 #define _HALFSEC 0x08
3314 #define _RTCSYNC 0x10
3315 #define _RTCWREN 0x20
3316 #define _RTCEN 0x80
3318 //==============================================================================
3321 //==============================================================================
3322 // PIE6 Bits
3324 extern __at(0x0F60) __sfr PIE6;
3326 typedef struct
3328 unsigned CMP1IE : 1;
3329 unsigned CMP2IE : 1;
3330 unsigned CMP3IE : 1;
3331 unsigned : 1;
3332 unsigned EEIE : 1;
3333 unsigned : 1;
3334 unsigned : 1;
3335 unsigned : 1;
3336 } __PIE6bits_t;
3338 extern __at(0x0F60) volatile __PIE6bits_t PIE6bits;
3340 #define _CMP1IE 0x01
3341 #define _CMP2IE 0x02
3342 #define _CMP3IE 0x04
3343 #define _EEIE 0x10
3345 //==============================================================================
3347 extern __at(0x0F61) __sfr EEDATA;
3348 extern __at(0x0F62) __sfr EEADR;
3349 extern __at(0x0F63) __sfr EEADRH;
3351 //==============================================================================
3352 // OSCCON2 Bits
3354 extern __at(0x0F64) __sfr OSCCON2;
3356 typedef struct
3358 unsigned MFIOSEL : 1;
3359 unsigned MFIOFS : 1;
3360 unsigned : 1;
3361 unsigned SOSCGO : 1;
3362 unsigned : 1;
3363 unsigned : 1;
3364 unsigned SOSCRUN : 1;
3365 unsigned : 1;
3366 } __OSCCON2bits_t;
3368 extern __at(0x0F64) volatile __OSCCON2bits_t OSCCON2bits;
3370 #define _MFIOSEL 0x01
3371 #define _MFIOFS 0x02
3372 #define _SOSCGO 0x08
3373 #define _SOSCRUN 0x40
3375 //==============================================================================
3378 //==============================================================================
3379 // BAUDCON Bits
3381 extern __at(0x0F65) __sfr BAUDCON;
3383 typedef struct
3385 unsigned ABDEN : 1;
3386 unsigned WUE : 1;
3387 unsigned : 1;
3388 unsigned BRG16 : 1;
3389 unsigned TXCKP : 1;
3390 unsigned RXDTP : 1;
3391 unsigned RCIDL : 1;
3392 unsigned ABDOVF : 1;
3393 } __BAUDCONbits_t;
3395 extern __at(0x0F65) volatile __BAUDCONbits_t BAUDCONbits;
3397 #define _ABDEN 0x01
3398 #define _WUE 0x02
3399 #define _BRG16 0x08
3400 #define _TXCKP 0x10
3401 #define _RXDTP 0x20
3402 #define _RCIDL 0x40
3403 #define _ABDOVF 0x80
3405 //==============================================================================
3408 //==============================================================================
3409 // BAUDCON1 Bits
3411 extern __at(0x0F65) __sfr BAUDCON1;
3413 typedef struct
3415 unsigned ABDEN : 1;
3416 unsigned WUE : 1;
3417 unsigned : 1;
3418 unsigned BRG16 : 1;
3419 unsigned TXCKP : 1;
3420 unsigned RXDTP : 1;
3421 unsigned RCIDL : 1;
3422 unsigned ABDOVF : 1;
3423 } __BAUDCON1bits_t;
3425 extern __at(0x0F65) volatile __BAUDCON1bits_t BAUDCON1bits;
3427 #define _BAUDCON1_ABDEN 0x01
3428 #define _BAUDCON1_WUE 0x02
3429 #define _BAUDCON1_BRG16 0x08
3430 #define _BAUDCON1_TXCKP 0x10
3431 #define _BAUDCON1_RXDTP 0x20
3432 #define _BAUDCON1_RCIDL 0x40
3433 #define _BAUDCON1_ABDOVF 0x80
3435 //==============================================================================
3438 //==============================================================================
3439 // BAUDCTL Bits
3441 extern __at(0x0F65) __sfr BAUDCTL;
3443 typedef struct
3445 unsigned ABDEN : 1;
3446 unsigned WUE : 1;
3447 unsigned : 1;
3448 unsigned BRG16 : 1;
3449 unsigned TXCKP : 1;
3450 unsigned RXDTP : 1;
3451 unsigned RCIDL : 1;
3452 unsigned ABDOVF : 1;
3453 } __BAUDCTLbits_t;
3455 extern __at(0x0F65) volatile __BAUDCTLbits_t BAUDCTLbits;
3457 #define _BAUDCTL_ABDEN 0x01
3458 #define _BAUDCTL_WUE 0x02
3459 #define _BAUDCTL_BRG16 0x08
3460 #define _BAUDCTL_TXCKP 0x10
3461 #define _BAUDCTL_RXDTP 0x20
3462 #define _BAUDCTL_RCIDL 0x40
3463 #define _BAUDCTL_ABDOVF 0x80
3465 //==============================================================================
3468 //==============================================================================
3469 // LCDDATA0 Bits
3471 extern __at(0x0F66) __sfr LCDDATA0;
3473 typedef struct
3475 unsigned S00C0 : 1;
3476 unsigned S01C0 : 1;
3477 unsigned S02C0 : 1;
3478 unsigned S03C0 : 1;
3479 unsigned S04C0 : 1;
3480 unsigned S05C0 : 1;
3481 unsigned S06C0 : 1;
3482 unsigned S07C0 : 1;
3483 } __LCDDATA0bits_t;
3485 extern __at(0x0F66) volatile __LCDDATA0bits_t LCDDATA0bits;
3487 #define _S00C0 0x01
3488 #define _S01C0 0x02
3489 #define _S02C0 0x04
3490 #define _S03C0 0x08
3491 #define _S04C0 0x10
3492 #define _S05C0 0x20
3493 #define _S06C0 0x40
3494 #define _S07C0 0x80
3496 //==============================================================================
3499 //==============================================================================
3500 // LCDDATA1 Bits
3502 extern __at(0x0F67) __sfr LCDDATA1;
3504 typedef struct
3506 unsigned S08C0 : 1;
3507 unsigned S09C0 : 1;
3508 unsigned S10C0 : 1;
3509 unsigned S11C0 : 1;
3510 unsigned S12C0 : 1;
3511 unsigned S13C0 : 1;
3512 unsigned S14C0 : 1;
3513 unsigned S15C0 : 1;
3514 } __LCDDATA1bits_t;
3516 extern __at(0x0F67) volatile __LCDDATA1bits_t LCDDATA1bits;
3518 #define _S08C0 0x01
3519 #define _S09C0 0x02
3520 #define _S10C0 0x04
3521 #define _S11C0 0x08
3522 #define _S12C0 0x10
3523 #define _S13C0 0x20
3524 #define _S14C0 0x40
3525 #define _S15C0 0x80
3527 //==============================================================================
3530 //==============================================================================
3531 // LCDDATA2 Bits
3533 extern __at(0x0F68) __sfr LCDDATA2;
3535 typedef struct
3537 unsigned S16C0 : 1;
3538 unsigned S17C0 : 1;
3539 unsigned S18C0 : 1;
3540 unsigned S19C0 : 1;
3541 unsigned S20C0 : 1;
3542 unsigned S21C0 : 1;
3543 unsigned S22C0 : 1;
3544 unsigned S23C0 : 1;
3545 } __LCDDATA2bits_t;
3547 extern __at(0x0F68) volatile __LCDDATA2bits_t LCDDATA2bits;
3549 #define _S16C0 0x01
3550 #define _S17C0 0x02
3551 #define _S18C0 0x04
3552 #define _S19C0 0x08
3553 #define _S20C0 0x10
3554 #define _S21C0 0x20
3555 #define _S22C0 0x40
3556 #define _S23C0 0x80
3558 //==============================================================================
3561 //==============================================================================
3562 // LCDDATA3 Bits
3564 extern __at(0x0F69) __sfr LCDDATA3;
3566 typedef struct
3568 unsigned S24C0 : 1;
3569 unsigned S25C0 : 1;
3570 unsigned S26C0 : 1;
3571 unsigned S27C0 : 1;
3572 unsigned S28C0 : 1;
3573 unsigned S29C0 : 1;
3574 unsigned S30C0 : 1;
3575 unsigned S31C0 : 1;
3576 } __LCDDATA3bits_t;
3578 extern __at(0x0F69) volatile __LCDDATA3bits_t LCDDATA3bits;
3580 #define _S24C0 0x01
3581 #define _S25C0 0x02
3582 #define _S26C0 0x04
3583 #define _S27C0 0x08
3584 #define _S28C0 0x10
3585 #define _S29C0 0x20
3586 #define _S30C0 0x40
3587 #define _S31C0 0x80
3589 //==============================================================================
3592 //==============================================================================
3593 // LCDDATA4 Bits
3595 extern __at(0x0F6A) __sfr LCDDATA4;
3597 typedef struct
3599 unsigned S32C0 : 1;
3600 unsigned : 1;
3601 unsigned : 1;
3602 unsigned : 1;
3603 unsigned : 1;
3604 unsigned : 1;
3605 unsigned : 1;
3606 unsigned : 1;
3607 } __LCDDATA4bits_t;
3609 extern __at(0x0F6A) volatile __LCDDATA4bits_t LCDDATA4bits;
3611 #define _S32C0 0x01
3613 //==============================================================================
3616 //==============================================================================
3617 // LCDDATA6 Bits
3619 extern __at(0x0F6C) __sfr LCDDATA6;
3621 typedef struct
3623 unsigned S00C1 : 1;
3624 unsigned S01C1 : 1;
3625 unsigned S02C1 : 1;
3626 unsigned S03C1 : 1;
3627 unsigned S04C1 : 1;
3628 unsigned S05C1 : 1;
3629 unsigned S06C1 : 1;
3630 unsigned S07C1 : 1;
3631 } __LCDDATA6bits_t;
3633 extern __at(0x0F6C) volatile __LCDDATA6bits_t LCDDATA6bits;
3635 #define _S00C1 0x01
3636 #define _S01C1 0x02
3637 #define _S02C1 0x04
3638 #define _S03C1 0x08
3639 #define _S04C1 0x10
3640 #define _S05C1 0x20
3641 #define _S06C1 0x40
3642 #define _S07C1 0x80
3644 //==============================================================================
3647 //==============================================================================
3648 // LCDDATA7 Bits
3650 extern __at(0x0F6D) __sfr LCDDATA7;
3652 typedef struct
3654 unsigned S08C1 : 1;
3655 unsigned S09C1 : 1;
3656 unsigned S10C1 : 1;
3657 unsigned S11C1 : 1;
3658 unsigned S12C1 : 1;
3659 unsigned S13C1 : 1;
3660 unsigned S14C1 : 1;
3661 unsigned S15C1 : 1;
3662 } __LCDDATA7bits_t;
3664 extern __at(0x0F6D) volatile __LCDDATA7bits_t LCDDATA7bits;
3666 #define _S08C1 0x01
3667 #define _S09C1 0x02
3668 #define _S10C1 0x04
3669 #define _S11C1 0x08
3670 #define _S12C1 0x10
3671 #define _S13C1 0x20
3672 #define _S14C1 0x40
3673 #define _S15C1 0x80
3675 //==============================================================================
3678 //==============================================================================
3679 // LCDDATA8 Bits
3681 extern __at(0x0F6E) __sfr LCDDATA8;
3683 typedef struct
3685 unsigned S16C1 : 1;
3686 unsigned S17C1 : 1;
3687 unsigned S18C1 : 1;
3688 unsigned S19C1 : 1;
3689 unsigned S20C1 : 1;
3690 unsigned S21C1 : 1;
3691 unsigned S22C1 : 1;
3692 unsigned S23C1 : 1;
3693 } __LCDDATA8bits_t;
3695 extern __at(0x0F6E) volatile __LCDDATA8bits_t LCDDATA8bits;
3697 #define _S16C1 0x01
3698 #define _S17C1 0x02
3699 #define _S18C1 0x04
3700 #define _S19C1 0x08
3701 #define _S20C1 0x10
3702 #define _S21C1 0x20
3703 #define _S22C1 0x40
3704 #define _S23C1 0x80
3706 //==============================================================================
3709 //==============================================================================
3710 // LCDDATA9 Bits
3712 extern __at(0x0F6F) __sfr LCDDATA9;
3714 typedef struct
3716 unsigned S24C1 : 1;
3717 unsigned S25C1 : 1;
3718 unsigned S26C1 : 1;
3719 unsigned S27C1 : 1;
3720 unsigned S28C1 : 1;
3721 unsigned S29C1 : 1;
3722 unsigned S30C1 : 1;
3723 unsigned S31C1 : 1;
3724 } __LCDDATA9bits_t;
3726 extern __at(0x0F6F) volatile __LCDDATA9bits_t LCDDATA9bits;
3728 #define _S24C1 0x01
3729 #define _S25C1 0x02
3730 #define _S26C1 0x04
3731 #define _S27C1 0x08
3732 #define _S28C1 0x10
3733 #define _S29C1 0x20
3734 #define _S30C1 0x40
3735 #define _S31C1 0x80
3737 //==============================================================================
3740 //==============================================================================
3741 // LCDDATA10 Bits
3743 extern __at(0x0F70) __sfr LCDDATA10;
3745 typedef struct
3747 unsigned S32C1 : 1;
3748 unsigned : 1;
3749 unsigned : 1;
3750 unsigned : 1;
3751 unsigned : 1;
3752 unsigned : 1;
3753 unsigned : 1;
3754 unsigned : 1;
3755 } __LCDDATA10bits_t;
3757 extern __at(0x0F70) volatile __LCDDATA10bits_t LCDDATA10bits;
3759 #define _S32C1 0x01
3761 //==============================================================================
3764 //==============================================================================
3765 // LCDDATA12 Bits
3767 extern __at(0x0F72) __sfr LCDDATA12;
3769 typedef struct
3771 unsigned S00C2 : 1;
3772 unsigned S01C2 : 1;
3773 unsigned S02C2 : 1;
3774 unsigned S03C2 : 1;
3775 unsigned S04C2 : 1;
3776 unsigned S05C2 : 1;
3777 unsigned S06C2 : 1;
3778 unsigned S07C2 : 1;
3779 } __LCDDATA12bits_t;
3781 extern __at(0x0F72) volatile __LCDDATA12bits_t LCDDATA12bits;
3783 #define _S00C2 0x01
3784 #define _S01C2 0x02
3785 #define _S02C2 0x04
3786 #define _S03C2 0x08
3787 #define _S04C2 0x10
3788 #define _S05C2 0x20
3789 #define _S06C2 0x40
3790 #define _S07C2 0x80
3792 //==============================================================================
3795 //==============================================================================
3796 // LCDDATA13 Bits
3798 extern __at(0x0F73) __sfr LCDDATA13;
3800 typedef struct
3802 unsigned S08C2 : 1;
3803 unsigned S09C2 : 1;
3804 unsigned S10C2 : 1;
3805 unsigned S11C2 : 1;
3806 unsigned S12C2 : 1;
3807 unsigned S13C2 : 1;
3808 unsigned S14C2 : 1;
3809 unsigned S15C2 : 1;
3810 } __LCDDATA13bits_t;
3812 extern __at(0x0F73) volatile __LCDDATA13bits_t LCDDATA13bits;
3814 #define _S08C2 0x01
3815 #define _S09C2 0x02
3816 #define _S10C2 0x04
3817 #define _S11C2 0x08
3818 #define _S12C2 0x10
3819 #define _S13C2 0x20
3820 #define _S14C2 0x40
3821 #define _S15C2 0x80
3823 //==============================================================================
3826 //==============================================================================
3827 // LCDDATA14 Bits
3829 extern __at(0x0F74) __sfr LCDDATA14;
3831 typedef struct
3833 unsigned S16C2 : 1;
3834 unsigned S17C2 : 1;
3835 unsigned S18C2 : 1;
3836 unsigned S19C2 : 1;
3837 unsigned S20C2 : 1;
3838 unsigned S21C2 : 1;
3839 unsigned S22C2 : 1;
3840 unsigned S23C2 : 1;
3841 } __LCDDATA14bits_t;
3843 extern __at(0x0F74) volatile __LCDDATA14bits_t LCDDATA14bits;
3845 #define _S16C2 0x01
3846 #define _S17C2 0x02
3847 #define _S18C2 0x04
3848 #define _S19C2 0x08
3849 #define _S20C2 0x10
3850 #define _S21C2 0x20
3851 #define _S22C2 0x40
3852 #define _S23C2 0x80
3854 //==============================================================================
3857 //==============================================================================
3858 // LCDDATA15 Bits
3860 extern __at(0x0F75) __sfr LCDDATA15;
3862 typedef struct
3864 unsigned S24C2 : 1;
3865 unsigned S25C2 : 1;
3866 unsigned S26C2 : 1;
3867 unsigned S27C2 : 1;
3868 unsigned S28C2 : 1;
3869 unsigned S29C2 : 1;
3870 unsigned S30C2 : 1;
3871 unsigned S31C2 : 1;
3872 } __LCDDATA15bits_t;
3874 extern __at(0x0F75) volatile __LCDDATA15bits_t LCDDATA15bits;
3876 #define _S24C2 0x01
3877 #define _S25C2 0x02
3878 #define _S26C2 0x04
3879 #define _S27C2 0x08
3880 #define _S28C2 0x10
3881 #define _S29C2 0x20
3882 #define _S30C2 0x40
3883 #define _S31C2 0x80
3885 //==============================================================================
3888 //==============================================================================
3889 // LCDDATA16 Bits
3891 extern __at(0x0F76) __sfr LCDDATA16;
3893 typedef struct
3895 unsigned S32C2 : 1;
3896 unsigned : 1;
3897 unsigned : 1;
3898 unsigned : 1;
3899 unsigned : 1;
3900 unsigned : 1;
3901 unsigned : 1;
3902 unsigned : 1;
3903 } __LCDDATA16bits_t;
3905 extern __at(0x0F76) volatile __LCDDATA16bits_t LCDDATA16bits;
3907 #define _S32C2 0x01
3909 //==============================================================================
3912 //==============================================================================
3913 // LCDDATA18 Bits
3915 extern __at(0x0F78) __sfr LCDDATA18;
3917 typedef struct
3919 unsigned S00C3 : 1;
3920 unsigned S01C3 : 1;
3921 unsigned S02C3 : 1;
3922 unsigned S03C3 : 1;
3923 unsigned S04C3 : 1;
3924 unsigned S05C3 : 1;
3925 unsigned S06C3 : 1;
3926 unsigned S07C3 : 1;
3927 } __LCDDATA18bits_t;
3929 extern __at(0x0F78) volatile __LCDDATA18bits_t LCDDATA18bits;
3931 #define _S00C3 0x01
3932 #define _S01C3 0x02
3933 #define _S02C3 0x04
3934 #define _S03C3 0x08
3935 #define _S04C3 0x10
3936 #define _S05C3 0x20
3937 #define _S06C3 0x40
3938 #define _S07C3 0x80
3940 //==============================================================================
3943 //==============================================================================
3944 // LCDDATA19 Bits
3946 extern __at(0x0F79) __sfr LCDDATA19;
3948 typedef struct
3950 unsigned S08C3 : 1;
3951 unsigned S09C3 : 1;
3952 unsigned S10C3 : 1;
3953 unsigned S11C3 : 1;
3954 unsigned S12C3 : 1;
3955 unsigned S13C3 : 1;
3956 unsigned S14C3 : 1;
3957 unsigned S15C3 : 1;
3958 } __LCDDATA19bits_t;
3960 extern __at(0x0F79) volatile __LCDDATA19bits_t LCDDATA19bits;
3962 #define _S08C3 0x01
3963 #define _S09C3 0x02
3964 #define _S10C3 0x04
3965 #define _S11C3 0x08
3966 #define _S12C3 0x10
3967 #define _S13C3 0x20
3968 #define _S14C3 0x40
3969 #define _S15C3 0x80
3971 //==============================================================================
3974 //==============================================================================
3975 // LCDDATA20 Bits
3977 extern __at(0x0F7A) __sfr LCDDATA20;
3979 typedef struct
3981 unsigned S16C3 : 1;
3982 unsigned S17C3 : 1;
3983 unsigned S18C3 : 1;
3984 unsigned S19C3 : 1;
3985 unsigned S20C3 : 1;
3986 unsigned S21C3 : 1;
3987 unsigned S22C3 : 1;
3988 unsigned S23C3 : 1;
3989 } __LCDDATA20bits_t;
3991 extern __at(0x0F7A) volatile __LCDDATA20bits_t LCDDATA20bits;
3993 #define _S16C3 0x01
3994 #define _S17C3 0x02
3995 #define _S18C3 0x04
3996 #define _S19C3 0x08
3997 #define _S20C3 0x10
3998 #define _S21C3 0x20
3999 #define _S22C3 0x40
4000 #define _S23C3 0x80
4002 //==============================================================================
4005 //==============================================================================
4006 // LCDDATA21 Bits
4008 extern __at(0x0F7B) __sfr LCDDATA21;
4010 typedef struct
4012 unsigned S24C3 : 1;
4013 unsigned S25C3 : 1;
4014 unsigned S26C3 : 1;
4015 unsigned S27C3 : 1;
4016 unsigned S28C3 : 1;
4017 unsigned S29C3 : 1;
4018 unsigned S30C3 : 1;
4019 unsigned S31C3 : 1;
4020 } __LCDDATA21bits_t;
4022 extern __at(0x0F7B) volatile __LCDDATA21bits_t LCDDATA21bits;
4024 #define _S24C3 0x01
4025 #define _S25C3 0x02
4026 #define _S26C3 0x04
4027 #define _S27C3 0x08
4028 #define _S28C3 0x10
4029 #define _S29C3 0x20
4030 #define _S30C3 0x40
4031 #define _S31C3 0x80
4033 //==============================================================================
4036 //==============================================================================
4037 // LCDDATA22 Bits
4039 extern __at(0x0F7C) __sfr LCDDATA22;
4041 typedef struct
4043 unsigned S32C3 : 1;
4044 unsigned : 1;
4045 unsigned : 1;
4046 unsigned : 1;
4047 unsigned : 1;
4048 unsigned : 1;
4049 unsigned : 1;
4050 unsigned : 1;
4051 } __LCDDATA22bits_t;
4053 extern __at(0x0F7C) volatile __LCDDATA22bits_t LCDDATA22bits;
4055 #define _S32C3 0x01
4057 //==============================================================================
4059 extern __at(0x0F7E) __sfr EECON2;
4061 //==============================================================================
4062 // EECON1 Bits
4064 extern __at(0x0F7F) __sfr EECON1;
4066 typedef struct
4068 unsigned RD : 1;
4069 unsigned WR : 1;
4070 unsigned WREN : 1;
4071 unsigned WRERR : 1;
4072 unsigned FREE : 1;
4073 unsigned : 1;
4074 unsigned CFGS : 1;
4075 unsigned EEPGD : 1;
4076 } __EECON1bits_t;
4078 extern __at(0x0F7F) volatile __EECON1bits_t EECON1bits;
4080 #define _RD 0x01
4081 #define _WR 0x02
4082 #define _WREN 0x04
4083 #define _WRERR 0x08
4084 #define _FREE 0x10
4085 #define _CFGS 0x40
4086 #define _EEPGD 0x80
4088 //==============================================================================
4091 //==============================================================================
4092 // PORTA Bits
4094 extern __at(0x0F80) __sfr PORTA;
4096 typedef union
4098 struct
4100 unsigned RA0 : 1;
4101 unsigned RA1 : 1;
4102 unsigned RA2 : 1;
4103 unsigned RA3 : 1;
4104 unsigned RA4 : 1;
4105 unsigned RA5 : 1;
4106 unsigned RA6 : 1;
4107 unsigned RA7 : 1;
4110 struct
4112 unsigned AN0 : 1;
4113 unsigned AN1 : 1;
4114 unsigned AN2 : 1;
4115 unsigned AN3 : 1;
4116 unsigned SEG14 : 1;
4117 unsigned AN4 : 1;
4118 unsigned OSC2 : 1;
4119 unsigned OSC1 : 1;
4122 struct
4124 unsigned ULPWUIN : 1;
4125 unsigned SEG18 : 1;
4126 unsigned VREF_MINUS : 1;
4127 unsigned VREF_PLUS : 1;
4128 unsigned T0CKI : 1;
4129 unsigned SEG15 : 1;
4130 unsigned CLKO : 1;
4131 unsigned CLKI : 1;
4134 struct
4136 unsigned : 1;
4137 unsigned : 1;
4138 unsigned : 1;
4139 unsigned : 1;
4140 unsigned : 1;
4141 unsigned T1CKI : 1;
4142 unsigned : 1;
4143 unsigned : 1;
4146 struct
4148 unsigned : 1;
4149 unsigned : 1;
4150 unsigned : 1;
4151 unsigned : 1;
4152 unsigned : 1;
4153 unsigned T3G : 1;
4154 unsigned : 1;
4155 unsigned : 1;
4158 struct
4160 unsigned : 1;
4161 unsigned : 1;
4162 unsigned : 1;
4163 unsigned : 1;
4164 unsigned : 1;
4165 unsigned LVDIN : 1;
4166 unsigned : 1;
4167 unsigned : 1;
4169 } __PORTAbits_t;
4171 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits;
4173 #define _RA0 0x01
4174 #define _AN0 0x01
4175 #define _ULPWUIN 0x01
4176 #define _RA1 0x02
4177 #define _AN1 0x02
4178 #define _SEG18 0x02
4179 #define _RA2 0x04
4180 #define _AN2 0x04
4181 #define _VREF_MINUS 0x04
4182 #define _RA3 0x08
4183 #define _AN3 0x08
4184 #define _VREF_PLUS 0x08
4185 #define _RA4 0x10
4186 #define _SEG14 0x10
4187 #define _T0CKI 0x10
4188 #define _RA5 0x20
4189 #define _AN4 0x20
4190 #define _SEG15 0x20
4191 #define _T1CKI 0x20
4192 #define _T3G 0x20
4193 #define _LVDIN 0x20
4194 #define _RA6 0x40
4195 #define _OSC2 0x40
4196 #define _CLKO 0x40
4197 #define _RA7 0x80
4198 #define _OSC1 0x80
4199 #define _CLKI 0x80
4201 //==============================================================================
4204 //==============================================================================
4205 // PORTB Bits
4207 extern __at(0x0F81) __sfr PORTB;
4209 typedef union
4211 struct
4213 unsigned RB0 : 1;
4214 unsigned RB1 : 1;
4215 unsigned RB2 : 1;
4216 unsigned RB3 : 1;
4217 unsigned RB4 : 1;
4218 unsigned RB5 : 1;
4219 unsigned RB6 : 1;
4220 unsigned RB7 : 1;
4223 struct
4225 unsigned INT0 : 1;
4226 unsigned INT1 : 1;
4227 unsigned INT2 : 1;
4228 unsigned INT3 : 1;
4229 unsigned KBI0 : 1;
4230 unsigned KBI1 : 1;
4231 unsigned KBI2 : 1;
4232 unsigned KBI3 : 1;
4235 struct
4237 unsigned SEG30 : 1;
4238 unsigned SEG8 : 1;
4239 unsigned SEG9 : 1;
4240 unsigned SEG10 : 1;
4241 unsigned SEG11 : 1;
4242 unsigned SEG29 : 1;
4243 unsigned PGC : 1;
4244 unsigned PGD : 1;
4247 struct
4249 unsigned FLT0 : 1;
4250 unsigned : 1;
4251 unsigned CTED1 : 1;
4252 unsigned CTED2 : 1;
4253 unsigned : 1;
4254 unsigned T3CKI : 1;
4255 unsigned : 1;
4256 unsigned : 1;
4259 struct
4261 unsigned : 1;
4262 unsigned : 1;
4263 unsigned : 1;
4264 unsigned CCP2_PA2 : 1;
4265 unsigned : 1;
4266 unsigned T1G : 1;
4267 unsigned : 1;
4268 unsigned : 1;
4271 struct
4273 unsigned : 1;
4274 unsigned : 1;
4275 unsigned : 1;
4276 unsigned : 1;
4277 unsigned : 1;
4278 unsigned PGM : 1;
4279 unsigned : 1;
4280 unsigned : 1;
4283 struct
4285 unsigned INT : 4;
4286 unsigned : 4;
4289 struct
4291 unsigned : 4;
4292 unsigned KBI : 4;
4294 } __PORTBbits_t;
4296 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits;
4298 #define _RB0 0x01
4299 #define _INT0 0x01
4300 #define _SEG30 0x01
4301 #define _FLT0 0x01
4302 #define _RB1 0x02
4303 #define _INT1 0x02
4304 #define _SEG8 0x02
4305 #define _RB2 0x04
4306 #define _INT2 0x04
4307 #define _SEG9 0x04
4308 #define _CTED1 0x04
4309 #define _RB3 0x08
4310 #define _INT3 0x08
4311 #define _SEG10 0x08
4312 #define _CTED2 0x08
4313 #define _CCP2_PA2 0x08
4314 #define _RB4 0x10
4315 #define _KBI0 0x10
4316 #define _SEG11 0x10
4317 #define _RB5 0x20
4318 #define _KBI1 0x20
4319 #define _SEG29 0x20
4320 #define _T3CKI 0x20
4321 #define _T1G 0x20
4322 #define _PGM 0x20
4323 #define _RB6 0x40
4324 #define _KBI2 0x40
4325 #define _PGC 0x40
4326 #define _RB7 0x80
4327 #define _KBI3 0x80
4328 #define _PGD 0x80
4330 //==============================================================================
4333 //==============================================================================
4334 // PORTC Bits
4336 extern __at(0x0F82) __sfr PORTC;
4338 typedef union
4340 struct
4342 unsigned RC0 : 1;
4343 unsigned RC1 : 1;
4344 unsigned RC2 : 1;
4345 unsigned RC3 : 1;
4346 unsigned RC4 : 1;
4347 unsigned RC5 : 1;
4348 unsigned RC6 : 1;
4349 unsigned RC7 : 1;
4352 struct
4354 unsigned SOSCO : 1;
4355 unsigned SEG32 : 1;
4356 unsigned SEG13 : 1;
4357 unsigned SEG17 : 1;
4358 unsigned SEG16 : 1;
4359 unsigned SEG12 : 1;
4360 unsigned SEG27 : 1;
4361 unsigned SEG28 : 1;
4364 struct
4366 unsigned SCKLI : 1;
4367 unsigned SOSCI : 1;
4368 unsigned CCP1 : 1;
4369 unsigned SCK1 : 1;
4370 unsigned SDI1 : 1;
4371 unsigned SDO1 : 1;
4372 unsigned TX1 : 1;
4373 unsigned RX1 : 1;
4376 struct
4378 unsigned : 1;
4379 unsigned CCP2 : 1;
4380 unsigned PA1 : 1;
4381 unsigned SCL1 : 1;
4382 unsigned SDA1 : 1;
4383 unsigned : 1;
4384 unsigned CK1 : 1;
4385 unsigned DT1 : 1;
4388 struct
4390 unsigned : 1;
4391 unsigned PA2 : 1;
4392 unsigned : 1;
4393 unsigned : 1;
4394 unsigned : 1;
4395 unsigned : 1;
4396 unsigned : 1;
4397 unsigned : 1;
4399 } __PORTCbits_t;
4401 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits;
4403 #define _RC0 0x01
4404 #define _SOSCO 0x01
4405 #define _SCKLI 0x01
4406 #define _RC1 0x02
4407 #define _SEG32 0x02
4408 #define _SOSCI 0x02
4409 #define _CCP2 0x02
4410 #define _PA2 0x02
4411 #define _RC2 0x04
4412 #define _SEG13 0x04
4413 #define _CCP1 0x04
4414 #define _PA1 0x04
4415 #define _RC3 0x08
4416 #define _SEG17 0x08
4417 #define _SCK1 0x08
4418 #define _SCL1 0x08
4419 #define _RC4 0x10
4420 #define _SEG16 0x10
4421 #define _SDI1 0x10
4422 #define _SDA1 0x10
4423 #define _RC5 0x20
4424 #define _SEG12 0x20
4425 #define _SDO1 0x20
4426 #define _RC6 0x40
4427 #define _SEG27 0x40
4428 #define _TX1 0x40
4429 #define _CK1 0x40
4430 #define _RC7 0x80
4431 #define _SEG28 0x80
4432 #define _RX1 0x80
4433 #define _DT1 0x80
4435 //==============================================================================
4438 //==============================================================================
4439 // PORTD Bits
4441 extern __at(0x0F83) __sfr PORTD;
4443 typedef union
4445 struct
4447 unsigned RD0 : 1;
4448 unsigned RD1 : 1;
4449 unsigned RD2 : 1;
4450 unsigned RD3 : 1;
4451 unsigned RD4 : 1;
4452 unsigned RD5 : 1;
4453 unsigned RD6 : 1;
4454 unsigned RD7 : 1;
4457 struct
4459 unsigned AD0 : 1;
4460 unsigned AD1 : 1;
4461 unsigned AD2 : 1;
4462 unsigned AD3 : 1;
4463 unsigned AD4 : 1;
4464 unsigned AD5 : 1;
4465 unsigned AD6 : 1;
4466 unsigned AD7 : 1;
4469 struct
4471 unsigned PSP0 : 1;
4472 unsigned PSP1 : 1;
4473 unsigned PSP2 : 1;
4474 unsigned PSP3 : 1;
4475 unsigned PSP4 : 1;
4476 unsigned PSP5 : 1;
4477 unsigned PSP6 : 1;
4478 unsigned PSP7 : 1;
4481 struct
4483 unsigned SEG0 : 1;
4484 unsigned SEG1 : 1;
4485 unsigned SEG2 : 1;
4486 unsigned SEG3 : 1;
4487 unsigned SEG4 : 1;
4488 unsigned SEG5 : 1;
4489 unsigned SEG6 : 1;
4490 unsigned SEG7 : 1;
4493 struct
4495 unsigned CTPLS : 1;
4496 unsigned T5CKI : 1;
4497 unsigned : 1;
4498 unsigned : 1;
4499 unsigned SDO2 : 1;
4500 unsigned SDI2 : 1;
4501 unsigned SCK2 : 1;
4502 unsigned SS2 : 1;
4505 struct
4507 unsigned : 1;
4508 unsigned T7G : 1;
4509 unsigned : 1;
4510 unsigned : 1;
4511 unsigned : 1;
4512 unsigned SDA2 : 1;
4513 unsigned SCL2 : 1;
4514 unsigned : 1;
4516 } __PORTDbits_t;
4518 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits;
4520 #define _RD0 0x01
4521 #define _AD0 0x01
4522 #define _PSP0 0x01
4523 #define _SEG0 0x01
4524 #define _CTPLS 0x01
4525 #define _RD1 0x02
4526 #define _AD1 0x02
4527 #define _PSP1 0x02
4528 #define _SEG1 0x02
4529 #define _T5CKI 0x02
4530 #define _T7G 0x02
4531 #define _RD2 0x04
4532 #define _AD2 0x04
4533 #define _PSP2 0x04
4534 #define _SEG2 0x04
4535 #define _RD3 0x08
4536 #define _AD3 0x08
4537 #define _PSP3 0x08
4538 #define _SEG3 0x08
4539 #define _RD4 0x10
4540 #define _AD4 0x10
4541 #define _PSP4 0x10
4542 #define _SEG4 0x10
4543 #define _SDO2 0x10
4544 #define _RD5 0x20
4545 #define _AD5 0x20
4546 #define _PSP5 0x20
4547 #define _SEG5 0x20
4548 #define _SDI2 0x20
4549 #define _SDA2 0x20
4550 #define _RD6 0x40
4551 #define _AD6 0x40
4552 #define _PSP6 0x40
4553 #define _SEG6 0x40
4554 #define _SCK2 0x40
4555 #define _SCL2 0x40
4556 #define _RD7 0x80
4557 #define _AD7 0x80
4558 #define _PSP7 0x80
4559 #define _SEG7 0x80
4560 #define _SS2 0x80
4562 //==============================================================================
4565 //==============================================================================
4566 // PORTE Bits
4568 extern __at(0x0F84) __sfr PORTE;
4570 typedef union
4572 struct
4574 unsigned RE0 : 1;
4575 unsigned RE1 : 1;
4576 unsigned RE2 : 1;
4577 unsigned RE3 : 1;
4578 unsigned RE4 : 1;
4579 unsigned RE5 : 1;
4580 unsigned RE6 : 1;
4581 unsigned RE7 : 1;
4584 struct
4586 unsigned AD8 : 1;
4587 unsigned AD9 : 1;
4588 unsigned AD10 : 1;
4589 unsigned AD11 : 1;
4590 unsigned AD12 : 1;
4591 unsigned AD13 : 1;
4592 unsigned AD14 : 1;
4593 unsigned AD15 : 1;
4596 struct
4598 unsigned PD2 : 1;
4599 unsigned PC2 : 1;
4600 unsigned PB2 : 1;
4601 unsigned PC3 : 1;
4602 unsigned PB3 : 1;
4603 unsigned PC1 : 1;
4604 unsigned PB1 : 1;
4605 unsigned PA2 : 1;
4608 struct
4610 unsigned RD : 1;
4611 unsigned WR : 1;
4612 unsigned CCP10 : 1;
4613 unsigned CCP9 : 1;
4614 unsigned CCP8 : 1;
4615 unsigned CCP7 : 1;
4616 unsigned CCP6 : 1;
4617 unsigned CCP2 : 1;
4620 struct
4622 unsigned LCDBIAS1 : 1;
4623 unsigned LCDBIAS2 : 1;
4624 unsigned CS : 1;
4625 unsigned COM0 : 1;
4626 unsigned COM1 : 1;
4627 unsigned COM2 : 1;
4628 unsigned COM3 : 1;
4629 unsigned SEG31 : 1;
4632 struct
4634 unsigned : 1;
4635 unsigned : 1;
4636 unsigned LCDBIAS3 : 1;
4637 unsigned : 1;
4638 unsigned REFO : 1;
4639 unsigned : 1;
4640 unsigned : 1;
4641 unsigned : 1;
4644 struct
4646 unsigned : 3;
4647 unsigned COM : 4;
4648 unsigned : 1;
4650 } __PORTEbits_t;
4652 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits;
4654 #define _PORTE_RE0 0x01
4655 #define _PORTE_AD8 0x01
4656 #define _PORTE_PD2 0x01
4657 #define _PORTE_RD 0x01
4658 #define _PORTE_LCDBIAS1 0x01
4659 #define _PORTE_RE1 0x02
4660 #define _PORTE_AD9 0x02
4661 #define _PORTE_PC2 0x02
4662 #define _PORTE_WR 0x02
4663 #define _PORTE_LCDBIAS2 0x02
4664 #define _PORTE_RE2 0x04
4665 #define _PORTE_AD10 0x04
4666 #define _PORTE_PB2 0x04
4667 #define _PORTE_CCP10 0x04
4668 #define _PORTE_CS 0x04
4669 #define _PORTE_LCDBIAS3 0x04
4670 #define _PORTE_RE3 0x08
4671 #define _PORTE_AD11 0x08
4672 #define _PORTE_PC3 0x08
4673 #define _PORTE_CCP9 0x08
4674 #define _PORTE_COM0 0x08
4675 #define _PORTE_RE4 0x10
4676 #define _PORTE_AD12 0x10
4677 #define _PORTE_PB3 0x10
4678 #define _PORTE_CCP8 0x10
4679 #define _PORTE_COM1 0x10
4680 #define _PORTE_REFO 0x10
4681 #define _PORTE_RE5 0x20
4682 #define _PORTE_AD13 0x20
4683 #define _PORTE_PC1 0x20
4684 #define _PORTE_CCP7 0x20
4685 #define _PORTE_COM2 0x20
4686 #define _PORTE_RE6 0x40
4687 #define _PORTE_AD14 0x40
4688 #define _PORTE_PB1 0x40
4689 #define _PORTE_CCP6 0x40
4690 #define _PORTE_COM3 0x40
4691 #define _PORTE_RE7 0x80
4692 #define _PORTE_AD15 0x80
4693 #define _PORTE_PA2 0x80
4694 #define _PORTE_CCP2 0x80
4695 #define _PORTE_SEG31 0x80
4697 //==============================================================================
4700 //==============================================================================
4701 // PORTF Bits
4703 extern __at(0x0F85) __sfr PORTF;
4705 typedef union
4707 struct
4709 unsigned : 1;
4710 unsigned RF1 : 1;
4711 unsigned RF2 : 1;
4712 unsigned RF3 : 1;
4713 unsigned RF4 : 1;
4714 unsigned RF5 : 1;
4715 unsigned RF6 : 1;
4716 unsigned RF7 : 1;
4719 struct
4721 unsigned : 1;
4722 unsigned AN6 : 1;
4723 unsigned AN7 : 1;
4724 unsigned AN8 : 1;
4725 unsigned AN9 : 1;
4726 unsigned AN10 : 1;
4727 unsigned AN11 : 1;
4728 unsigned AN5 : 1;
4731 struct
4733 unsigned : 1;
4734 unsigned SEG19 : 1;
4735 unsigned SEG20 : 1;
4736 unsigned SEG21 : 1;
4737 unsigned SEG22 : 1;
4738 unsigned SEG23 : 1;
4739 unsigned SEG24 : 1;
4740 unsigned SEG25 : 1;
4743 struct
4745 unsigned : 1;
4746 unsigned C2OUT : 1;
4747 unsigned C1OUT : 1;
4748 unsigned C2INB : 1;
4749 unsigned C2INA : 1;
4750 unsigned C1INB : 1;
4751 unsigned C1INA : 1;
4752 unsigned SS1 : 1;
4755 struct
4757 unsigned : 1;
4758 unsigned CTDIN : 1;
4759 unsigned : 1;
4760 unsigned CTMUI : 1;
4761 unsigned : 1;
4762 unsigned CVREF : 1;
4763 unsigned : 1;
4764 unsigned : 1;
4766 } __PORTFbits_t;
4768 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits;
4770 #define _PORTF_RF1 0x02
4771 #define _PORTF_AN6 0x02
4772 #define _PORTF_SEG19 0x02
4773 #define _PORTF_C2OUT 0x02
4774 #define _PORTF_CTDIN 0x02
4775 #define _PORTF_RF2 0x04
4776 #define _PORTF_AN7 0x04
4777 #define _PORTF_SEG20 0x04
4778 #define _PORTF_C1OUT 0x04
4779 #define _PORTF_RF3 0x08
4780 #define _PORTF_AN8 0x08
4781 #define _PORTF_SEG21 0x08
4782 #define _PORTF_C2INB 0x08
4783 #define _PORTF_CTMUI 0x08
4784 #define _PORTF_RF4 0x10
4785 #define _PORTF_AN9 0x10
4786 #define _PORTF_SEG22 0x10
4787 #define _PORTF_C2INA 0x10
4788 #define _PORTF_RF5 0x20
4789 #define _PORTF_AN10 0x20
4790 #define _PORTF_SEG23 0x20
4791 #define _PORTF_C1INB 0x20
4792 #define _PORTF_CVREF 0x20
4793 #define _PORTF_RF6 0x40
4794 #define _PORTF_AN11 0x40
4795 #define _PORTF_SEG24 0x40
4796 #define _PORTF_C1INA 0x40
4797 #define _PORTF_RF7 0x80
4798 #define _PORTF_AN5 0x80
4799 #define _PORTF_SEG25 0x80
4800 #define _PORTF_SS1 0x80
4802 //==============================================================================
4805 //==============================================================================
4806 // PORTG Bits
4808 extern __at(0x0F86) __sfr PORTG;
4810 typedef union
4812 struct
4814 unsigned RG0 : 1;
4815 unsigned RG1 : 1;
4816 unsigned RG2 : 1;
4817 unsigned RG3 : 1;
4818 unsigned RG4 : 1;
4819 unsigned RG5 : 1;
4820 unsigned : 1;
4821 unsigned : 1;
4824 struct
4826 unsigned CCP3 : 1;
4827 unsigned C3OUT : 1;
4828 unsigned C3INA : 1;
4829 unsigned C3INB : 1;
4830 unsigned C3INC : 1;
4831 unsigned : 1;
4832 unsigned : 1;
4833 unsigned : 1;
4836 struct
4838 unsigned PA3 : 1;
4839 unsigned TX2 : 1;
4840 unsigned RX2 : 1;
4841 unsigned PD3 : 1;
4842 unsigned PD1 : 1;
4843 unsigned : 1;
4844 unsigned : 1;
4845 unsigned : 1;
4848 struct
4850 unsigned : 1;
4851 unsigned AN19 : 1;
4852 unsigned AN18 : 1;
4853 unsigned AN17 : 1;
4854 unsigned AN16 : 1;
4855 unsigned : 1;
4856 unsigned : 1;
4857 unsigned : 1;
4860 struct
4862 unsigned : 1;
4863 unsigned CK2 : 1;
4864 unsigned DT2 : 1;
4865 unsigned CCP4 : 1;
4866 unsigned CCP5 : 1;
4867 unsigned : 1;
4868 unsigned : 1;
4869 unsigned : 1;
4872 struct
4874 unsigned : 1;
4875 unsigned : 1;
4876 unsigned : 1;
4877 unsigned : 1;
4878 unsigned SEG26 : 1;
4879 unsigned : 1;
4880 unsigned : 1;
4881 unsigned : 1;
4884 struct
4886 unsigned : 1;
4887 unsigned : 1;
4888 unsigned : 1;
4889 unsigned : 1;
4890 unsigned T7CKI : 1;
4891 unsigned : 1;
4892 unsigned : 1;
4893 unsigned : 1;
4896 struct
4898 unsigned : 1;
4899 unsigned : 1;
4900 unsigned : 1;
4901 unsigned : 1;
4902 unsigned T5G : 1;
4903 unsigned : 1;
4904 unsigned : 1;
4905 unsigned : 1;
4908 struct
4910 unsigned : 1;
4911 unsigned : 1;
4912 unsigned : 1;
4913 unsigned : 1;
4914 unsigned RTCC : 1;
4915 unsigned : 1;
4916 unsigned : 1;
4917 unsigned : 1;
4920 struct
4922 unsigned RG : 6;
4923 unsigned : 2;
4925 } __PORTGbits_t;
4927 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits;
4929 #define _PORTG_RG0 0x01
4930 #define _PORTG_CCP3 0x01
4931 #define _PORTG_PA3 0x01
4932 #define _PORTG_RG1 0x02
4933 #define _PORTG_C3OUT 0x02
4934 #define _PORTG_TX2 0x02
4935 #define _PORTG_AN19 0x02
4936 #define _PORTG_CK2 0x02
4937 #define _PORTG_RG2 0x04
4938 #define _PORTG_C3INA 0x04
4939 #define _PORTG_RX2 0x04
4940 #define _PORTG_AN18 0x04
4941 #define _PORTG_DT2 0x04
4942 #define _PORTG_RG3 0x08
4943 #define _PORTG_C3INB 0x08
4944 #define _PORTG_PD3 0x08
4945 #define _PORTG_AN17 0x08
4946 #define _PORTG_CCP4 0x08
4947 #define _PORTG_RG4 0x10
4948 #define _PORTG_C3INC 0x10
4949 #define _PORTG_PD1 0x10
4950 #define _PORTG_AN16 0x10
4951 #define _PORTG_CCP5 0x10
4952 #define _PORTG_SEG26 0x10
4953 #define _PORTG_T7CKI 0x10
4954 #define _PORTG_T5G 0x10
4955 #define _PORTG_RTCC 0x10
4956 #define _PORTG_RG5 0x20
4958 //==============================================================================
4961 //==============================================================================
4962 // LATA Bits
4964 extern __at(0x0F89) __sfr LATA;
4966 typedef struct
4968 unsigned LATA0 : 1;
4969 unsigned LATA1 : 1;
4970 unsigned LATA2 : 1;
4971 unsigned LATA3 : 1;
4972 unsigned LATA4 : 1;
4973 unsigned LATA5 : 1;
4974 unsigned LATA6 : 1;
4975 unsigned LATA7 : 1;
4976 } __LATAbits_t;
4978 extern __at(0x0F89) volatile __LATAbits_t LATAbits;
4980 #define _LATA0 0x01
4981 #define _LATA1 0x02
4982 #define _LATA2 0x04
4983 #define _LATA3 0x08
4984 #define _LATA4 0x10
4985 #define _LATA5 0x20
4986 #define _LATA6 0x40
4987 #define _LATA7 0x80
4989 //==============================================================================
4992 //==============================================================================
4993 // LATB Bits
4995 extern __at(0x0F8A) __sfr LATB;
4997 typedef struct
4999 unsigned LATB0 : 1;
5000 unsigned LATB1 : 1;
5001 unsigned LATB2 : 1;
5002 unsigned LATB3 : 1;
5003 unsigned LATB4 : 1;
5004 unsigned LATB5 : 1;
5005 unsigned LATB6 : 1;
5006 unsigned LATB7 : 1;
5007 } __LATBbits_t;
5009 extern __at(0x0F8A) volatile __LATBbits_t LATBbits;
5011 #define _LATB0 0x01
5012 #define _LATB1 0x02
5013 #define _LATB2 0x04
5014 #define _LATB3 0x08
5015 #define _LATB4 0x10
5016 #define _LATB5 0x20
5017 #define _LATB6 0x40
5018 #define _LATB7 0x80
5020 //==============================================================================
5023 //==============================================================================
5024 // LATC Bits
5026 extern __at(0x0F8B) __sfr LATC;
5028 typedef struct
5030 unsigned LATC0 : 1;
5031 unsigned LATC1 : 1;
5032 unsigned LATC2 : 1;
5033 unsigned LATC3 : 1;
5034 unsigned LATC4 : 1;
5035 unsigned LATC5 : 1;
5036 unsigned LATC6 : 1;
5037 unsigned LATC7 : 1;
5038 } __LATCbits_t;
5040 extern __at(0x0F8B) volatile __LATCbits_t LATCbits;
5042 #define _LATC0 0x01
5043 #define _LATC1 0x02
5044 #define _LATC2 0x04
5045 #define _LATC3 0x08
5046 #define _LATC4 0x10
5047 #define _LATC5 0x20
5048 #define _LATC6 0x40
5049 #define _LATC7 0x80
5051 //==============================================================================
5054 //==============================================================================
5055 // LATD Bits
5057 extern __at(0x0F8C) __sfr LATD;
5059 typedef struct
5061 unsigned LATD0 : 1;
5062 unsigned LATD1 : 1;
5063 unsigned LATD2 : 1;
5064 unsigned LATD3 : 1;
5065 unsigned LATD4 : 1;
5066 unsigned LATD5 : 1;
5067 unsigned LATD6 : 1;
5068 unsigned LATD7 : 1;
5069 } __LATDbits_t;
5071 extern __at(0x0F8C) volatile __LATDbits_t LATDbits;
5073 #define _LATD0 0x01
5074 #define _LATD1 0x02
5075 #define _LATD2 0x04
5076 #define _LATD3 0x08
5077 #define _LATD4 0x10
5078 #define _LATD5 0x20
5079 #define _LATD6 0x40
5080 #define _LATD7 0x80
5082 //==============================================================================
5085 //==============================================================================
5086 // LATE Bits
5088 extern __at(0x0F8D) __sfr LATE;
5090 typedef struct
5092 unsigned LATE0 : 1;
5093 unsigned LATE1 : 1;
5094 unsigned LATE2 : 1;
5095 unsigned LATE3 : 1;
5096 unsigned LATE4 : 1;
5097 unsigned LATE5 : 1;
5098 unsigned LATE6 : 1;
5099 unsigned LATE7 : 1;
5100 } __LATEbits_t;
5102 extern __at(0x0F8D) volatile __LATEbits_t LATEbits;
5104 #define _LATE0 0x01
5105 #define _LATE1 0x02
5106 #define _LATE2 0x04
5107 #define _LATE3 0x08
5108 #define _LATE4 0x10
5109 #define _LATE5 0x20
5110 #define _LATE6 0x40
5111 #define _LATE7 0x80
5113 //==============================================================================
5116 //==============================================================================
5117 // LATF Bits
5119 extern __at(0x0F8E) __sfr LATF;
5121 typedef struct
5123 unsigned : 1;
5124 unsigned LATF1 : 1;
5125 unsigned LATF2 : 1;
5126 unsigned LATF3 : 1;
5127 unsigned LATF4 : 1;
5128 unsigned LATF5 : 1;
5129 unsigned LATF6 : 1;
5130 unsigned LATF7 : 1;
5131 } __LATFbits_t;
5133 extern __at(0x0F8E) volatile __LATFbits_t LATFbits;
5135 #define _LATF1 0x02
5136 #define _LATF2 0x04
5137 #define _LATF3 0x08
5138 #define _LATF4 0x10
5139 #define _LATF5 0x20
5140 #define _LATF6 0x40
5141 #define _LATF7 0x80
5143 //==============================================================================
5146 //==============================================================================
5147 // LATG Bits
5149 extern __at(0x0F8F) __sfr LATG;
5151 typedef union
5153 struct
5155 unsigned LATG0 : 1;
5156 unsigned LATG1 : 1;
5157 unsigned LATG2 : 1;
5158 unsigned LATG3 : 1;
5159 unsigned LATG4 : 1;
5160 unsigned : 1;
5161 unsigned : 1;
5162 unsigned : 1;
5165 struct
5167 unsigned LATG : 5;
5168 unsigned : 3;
5170 } __LATGbits_t;
5172 extern __at(0x0F8F) volatile __LATGbits_t LATGbits;
5174 #define _LATG0 0x01
5175 #define _LATG1 0x02
5176 #define _LATG2 0x04
5177 #define _LATG3 0x08
5178 #define _LATG4 0x10
5180 //==============================================================================
5183 //==============================================================================
5184 // TRISA Bits
5186 extern __at(0x0F92) __sfr TRISA;
5188 typedef struct
5190 unsigned TRISA0 : 1;
5191 unsigned TRISA1 : 1;
5192 unsigned TRISA2 : 1;
5193 unsigned TRISA3 : 1;
5194 unsigned TRISA4 : 1;
5195 unsigned TRISA5 : 1;
5196 unsigned TRISA6 : 1;
5197 unsigned TRISA7 : 1;
5198 } __TRISAbits_t;
5200 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits;
5202 #define _TRISA0 0x01
5203 #define _TRISA1 0x02
5204 #define _TRISA2 0x04
5205 #define _TRISA3 0x08
5206 #define _TRISA4 0x10
5207 #define _TRISA5 0x20
5208 #define _TRISA6 0x40
5209 #define _TRISA7 0x80
5211 //==============================================================================
5214 //==============================================================================
5215 // TRISB Bits
5217 extern __at(0x0F93) __sfr TRISB;
5219 typedef struct
5221 unsigned TRISB0 : 1;
5222 unsigned TRISB1 : 1;
5223 unsigned TRISB2 : 1;
5224 unsigned TRISB3 : 1;
5225 unsigned TRISB4 : 1;
5226 unsigned TRISB5 : 1;
5227 unsigned TRISB6 : 1;
5228 unsigned TRISB7 : 1;
5229 } __TRISBbits_t;
5231 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits;
5233 #define _TRISB0 0x01
5234 #define _TRISB1 0x02
5235 #define _TRISB2 0x04
5236 #define _TRISB3 0x08
5237 #define _TRISB4 0x10
5238 #define _TRISB5 0x20
5239 #define _TRISB6 0x40
5240 #define _TRISB7 0x80
5242 //==============================================================================
5245 //==============================================================================
5246 // TRISC Bits
5248 extern __at(0x0F94) __sfr TRISC;
5250 typedef struct
5252 unsigned TRISC0 : 1;
5253 unsigned TRISC1 : 1;
5254 unsigned TRISC2 : 1;
5255 unsigned TRISC3 : 1;
5256 unsigned TRISC4 : 1;
5257 unsigned TRISC5 : 1;
5258 unsigned TRISC6 : 1;
5259 unsigned TRISC7 : 1;
5260 } __TRISCbits_t;
5262 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits;
5264 #define _TRISC0 0x01
5265 #define _TRISC1 0x02
5266 #define _TRISC2 0x04
5267 #define _TRISC3 0x08
5268 #define _TRISC4 0x10
5269 #define _TRISC5 0x20
5270 #define _TRISC6 0x40
5271 #define _TRISC7 0x80
5273 //==============================================================================
5276 //==============================================================================
5277 // TRISD Bits
5279 extern __at(0x0F95) __sfr TRISD;
5281 typedef struct
5283 unsigned TRISD0 : 1;
5284 unsigned TRISD1 : 1;
5285 unsigned TRISD2 : 1;
5286 unsigned TRISD3 : 1;
5287 unsigned TRISD4 : 1;
5288 unsigned TRISD5 : 1;
5289 unsigned TRISD6 : 1;
5290 unsigned TRISD7 : 1;
5291 } __TRISDbits_t;
5293 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits;
5295 #define _TRISD0 0x01
5296 #define _TRISD1 0x02
5297 #define _TRISD2 0x04
5298 #define _TRISD3 0x08
5299 #define _TRISD4 0x10
5300 #define _TRISD5 0x20
5301 #define _TRISD6 0x40
5302 #define _TRISD7 0x80
5304 //==============================================================================
5307 //==============================================================================
5308 // TRISE Bits
5310 extern __at(0x0F96) __sfr TRISE;
5312 typedef struct
5314 unsigned TRISE0 : 1;
5315 unsigned TRISE1 : 1;
5316 unsigned TRISE2 : 1;
5317 unsigned TRISE3 : 1;
5318 unsigned TRISE4 : 1;
5319 unsigned TRISE5 : 1;
5320 unsigned TRISE6 : 1;
5321 unsigned TRISE7 : 1;
5322 } __TRISEbits_t;
5324 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits;
5326 #define _TRISE0 0x01
5327 #define _TRISE1 0x02
5328 #define _TRISE2 0x04
5329 #define _TRISE3 0x08
5330 #define _TRISE4 0x10
5331 #define _TRISE5 0x20
5332 #define _TRISE6 0x40
5333 #define _TRISE7 0x80
5335 //==============================================================================
5338 //==============================================================================
5339 // TRISF Bits
5341 extern __at(0x0F97) __sfr TRISF;
5343 typedef struct
5345 unsigned : 1;
5346 unsigned TRISF1 : 1;
5347 unsigned TRISF2 : 1;
5348 unsigned TRISF3 : 1;
5349 unsigned TRISF4 : 1;
5350 unsigned TRISF5 : 1;
5351 unsigned TRISF6 : 1;
5352 unsigned TRISF7 : 1;
5353 } __TRISFbits_t;
5355 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits;
5357 #define _TRISF1 0x02
5358 #define _TRISF2 0x04
5359 #define _TRISF3 0x08
5360 #define _TRISF4 0x10
5361 #define _TRISF5 0x20
5362 #define _TRISF6 0x40
5363 #define _TRISF7 0x80
5365 //==============================================================================
5368 //==============================================================================
5369 // TRISG Bits
5371 extern __at(0x0F98) __sfr TRISG;
5373 typedef union
5375 struct
5377 unsigned TRISG0 : 1;
5378 unsigned TRISG1 : 1;
5379 unsigned TRISG2 : 1;
5380 unsigned TRISG3 : 1;
5381 unsigned TRISG4 : 1;
5382 unsigned : 1;
5383 unsigned : 1;
5384 unsigned : 1;
5387 struct
5389 unsigned TRISG : 5;
5390 unsigned : 3;
5392 } __TRISGbits_t;
5394 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits;
5396 #define _TRISG0 0x01
5397 #define _TRISG1 0x02
5398 #define _TRISG2 0x04
5399 #define _TRISG3 0x08
5400 #define _TRISG4 0x10
5402 //==============================================================================
5405 //==============================================================================
5406 // OSCTUNE Bits
5408 extern __at(0x0F9B) __sfr OSCTUNE;
5410 typedef union
5412 struct
5414 unsigned TUN0 : 1;
5415 unsigned TUN1 : 1;
5416 unsigned TUN2 : 1;
5417 unsigned TUN3 : 1;
5418 unsigned TUN4 : 1;
5419 unsigned TUN5 : 1;
5420 unsigned PLLEN : 1;
5421 unsigned INTSRC : 1;
5424 struct
5426 unsigned TUN : 6;
5427 unsigned : 2;
5429 } __OSCTUNEbits_t;
5431 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits;
5433 #define _TUN0 0x01
5434 #define _TUN1 0x02
5435 #define _TUN2 0x04
5436 #define _TUN3 0x08
5437 #define _TUN4 0x10
5438 #define _TUN5 0x20
5439 #define _PLLEN 0x40
5440 #define _INTSRC 0x80
5442 //==============================================================================
5445 //==============================================================================
5446 // PSTR1CON Bits
5448 extern __at(0x0F9C) __sfr PSTR1CON;
5450 typedef union
5452 struct
5454 unsigned STRA : 1;
5455 unsigned STRB : 1;
5456 unsigned STRC : 1;
5457 unsigned STRD : 1;
5458 unsigned STRSYNC : 1;
5459 unsigned : 1;
5460 unsigned CMPL0 : 1;
5461 unsigned CMPL1 : 1;
5464 struct
5466 unsigned : 6;
5467 unsigned CMPL : 2;
5469 } __PSTR1CONbits_t;
5471 extern __at(0x0F9C) volatile __PSTR1CONbits_t PSTR1CONbits;
5473 #define _STRA 0x01
5474 #define _STRB 0x02
5475 #define _STRC 0x04
5476 #define _STRD 0x08
5477 #define _STRSYNC 0x10
5478 #define _CMPL0 0x40
5479 #define _CMPL1 0x80
5481 //==============================================================================
5484 //==============================================================================
5485 // PIE1 Bits
5487 extern __at(0x0F9D) __sfr PIE1;
5489 typedef union
5491 struct
5493 unsigned TMR1IE : 1;
5494 unsigned TMR2IE : 1;
5495 unsigned TMR1GIE : 1;
5496 unsigned SSP1IE : 1;
5497 unsigned TX1IE : 1;
5498 unsigned RC1IE : 1;
5499 unsigned ADIE : 1;
5500 unsigned : 1;
5503 struct
5505 unsigned : 1;
5506 unsigned : 1;
5507 unsigned : 1;
5508 unsigned SSPIE : 1;
5509 unsigned TXIE : 1;
5510 unsigned RCIE : 1;
5511 unsigned : 1;
5512 unsigned : 1;
5514 } __PIE1bits_t;
5516 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits;
5518 #define _TMR1IE 0x01
5519 #define _TMR2IE 0x02
5520 #define _TMR1GIE 0x04
5521 #define _SSP1IE 0x08
5522 #define _SSPIE 0x08
5523 #define _TX1IE 0x10
5524 #define _TXIE 0x10
5525 #define _RC1IE 0x20
5526 #define _RCIE 0x20
5527 #define _ADIE 0x40
5529 //==============================================================================
5532 //==============================================================================
5533 // PIR1 Bits
5535 extern __at(0x0F9E) __sfr PIR1;
5537 typedef union
5539 struct
5541 unsigned TMR1IF : 1;
5542 unsigned TMR2IF : 1;
5543 unsigned TMR1GIF : 1;
5544 unsigned SSP1IF : 1;
5545 unsigned TX1IF : 1;
5546 unsigned RC1IF : 1;
5547 unsigned ADIF : 1;
5548 unsigned : 1;
5551 struct
5553 unsigned : 1;
5554 unsigned : 1;
5555 unsigned : 1;
5556 unsigned SSPIF : 1;
5557 unsigned TXIF : 1;
5558 unsigned RCIF : 1;
5559 unsigned : 1;
5560 unsigned : 1;
5562 } __PIR1bits_t;
5564 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits;
5566 #define _TMR1IF 0x01
5567 #define _TMR2IF 0x02
5568 #define _TMR1GIF 0x04
5569 #define _SSP1IF 0x08
5570 #define _SSPIF 0x08
5571 #define _TX1IF 0x10
5572 #define _TXIF 0x10
5573 #define _RC1IF 0x20
5574 #define _RCIF 0x20
5575 #define _ADIF 0x40
5577 //==============================================================================
5580 //==============================================================================
5581 // IPR1 Bits
5583 extern __at(0x0F9F) __sfr IPR1;
5585 typedef union
5587 struct
5589 unsigned TMR1IP : 1;
5590 unsigned TMR2IP : 1;
5591 unsigned TMR1GIP : 1;
5592 unsigned SSP1IP : 1;
5593 unsigned TX1IP : 1;
5594 unsigned RC1IP : 1;
5595 unsigned ADIP : 1;
5596 unsigned : 1;
5599 struct
5601 unsigned : 1;
5602 unsigned : 1;
5603 unsigned : 1;
5604 unsigned SSPIP : 1;
5605 unsigned TXIP : 1;
5606 unsigned RCIP : 1;
5607 unsigned : 1;
5608 unsigned : 1;
5610 } __IPR1bits_t;
5612 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits;
5614 #define _TMR1IP 0x01
5615 #define _TMR2IP 0x02
5616 #define _TMR1GIP 0x04
5617 #define _SSP1IP 0x08
5618 #define _SSPIP 0x08
5619 #define _TX1IP 0x10
5620 #define _TXIP 0x10
5621 #define _RC1IP 0x20
5622 #define _RCIP 0x20
5623 #define _ADIP 0x40
5625 //==============================================================================
5628 //==============================================================================
5629 // PIE2 Bits
5631 extern __at(0x0FA0) __sfr PIE2;
5633 typedef union
5635 struct
5637 unsigned TMR3GIE : 1;
5638 unsigned TMR3IE : 1;
5639 unsigned HLVDIE : 1;
5640 unsigned BCL1IE : 1;
5641 unsigned BCL2IE : 1;
5642 unsigned SSP2IE : 1;
5643 unsigned : 1;
5644 unsigned OSCFIE : 1;
5647 struct
5649 unsigned : 1;
5650 unsigned : 1;
5651 unsigned LVDIE : 1;
5652 unsigned BCLIE : 1;
5653 unsigned : 1;
5654 unsigned : 1;
5655 unsigned : 1;
5656 unsigned : 1;
5658 } __PIE2bits_t;
5660 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits;
5662 #define _TMR3GIE 0x01
5663 #define _TMR3IE 0x02
5664 #define _HLVDIE 0x04
5665 #define _LVDIE 0x04
5666 #define _BCL1IE 0x08
5667 #define _BCLIE 0x08
5668 #define _BCL2IE 0x10
5669 #define _SSP2IE 0x20
5670 #define _OSCFIE 0x80
5672 //==============================================================================
5675 //==============================================================================
5676 // PIR2 Bits
5678 extern __at(0x0FA1) __sfr PIR2;
5680 typedef union
5682 struct
5684 unsigned TMR3GIF : 1;
5685 unsigned TMR3IF : 1;
5686 unsigned HLVDIF : 1;
5687 unsigned BCL1IF : 1;
5688 unsigned BCL2IF : 1;
5689 unsigned SSP2IF : 1;
5690 unsigned : 1;
5691 unsigned OSCFIF : 1;
5694 struct
5696 unsigned : 1;
5697 unsigned : 1;
5698 unsigned LVDIF : 1;
5699 unsigned BCLIF : 1;
5700 unsigned : 1;
5701 unsigned : 1;
5702 unsigned : 1;
5703 unsigned : 1;
5705 } __PIR2bits_t;
5707 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits;
5709 #define _TMR3GIF 0x01
5710 #define _TMR3IF 0x02
5711 #define _HLVDIF 0x04
5712 #define _LVDIF 0x04
5713 #define _BCL1IF 0x08
5714 #define _BCLIF 0x08
5715 #define _BCL2IF 0x10
5716 #define _SSP2IF 0x20
5717 #define _OSCFIF 0x80
5719 //==============================================================================
5722 //==============================================================================
5723 // IPR2 Bits
5725 extern __at(0x0FA2) __sfr IPR2;
5727 typedef union
5729 struct
5731 unsigned TMR3GIP : 1;
5732 unsigned TMR3IP : 1;
5733 unsigned HLVDIP : 1;
5734 unsigned BCL1IP : 1;
5735 unsigned BCL2IP : 1;
5736 unsigned SSP2IP : 1;
5737 unsigned : 1;
5738 unsigned OSCFIP : 1;
5741 struct
5743 unsigned : 1;
5744 unsigned : 1;
5745 unsigned LVDIP : 1;
5746 unsigned BCLIP : 1;
5747 unsigned : 1;
5748 unsigned : 1;
5749 unsigned : 1;
5750 unsigned : 1;
5752 } __IPR2bits_t;
5754 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits;
5756 #define _TMR3GIP 0x01
5757 #define _TMR3IP 0x02
5758 #define _HLVDIP 0x04
5759 #define _LVDIP 0x04
5760 #define _BCL1IP 0x08
5761 #define _BCLIP 0x08
5762 #define _BCL2IP 0x10
5763 #define _SSP2IP 0x20
5764 #define _OSCFIP 0x80
5766 //==============================================================================
5769 //==============================================================================
5770 // PIE3 Bits
5772 extern __at(0x0FA3) __sfr PIE3;
5774 typedef struct
5776 unsigned RTCCIE : 1;
5777 unsigned CCP1IE : 1;
5778 unsigned CCP2IE : 1;
5779 unsigned CTMUIE : 1;
5780 unsigned TX2IE : 1;
5781 unsigned RC2IE : 1;
5782 unsigned LCDIE : 1;
5783 unsigned TMR5GIE : 1;
5784 } __PIE3bits_t;
5786 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits;
5788 #define _RTCCIE 0x01
5789 #define _CCP1IE 0x02
5790 #define _CCP2IE 0x04
5791 #define _CTMUIE 0x08
5792 #define _TX2IE 0x10
5793 #define _RC2IE 0x20
5794 #define _LCDIE 0x40
5795 #define _TMR5GIE 0x80
5797 //==============================================================================
5800 //==============================================================================
5801 // PIR3 Bits
5803 extern __at(0x0FA4) __sfr PIR3;
5805 typedef struct
5807 unsigned RTCCIF : 1;
5808 unsigned CCP1IF : 1;
5809 unsigned CCP2IF : 1;
5810 unsigned CTMUIF : 1;
5811 unsigned TX2IF : 1;
5812 unsigned RC2IF : 1;
5813 unsigned LCDIF : 1;
5814 unsigned TMR5GIF : 1;
5815 } __PIR3bits_t;
5817 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits;
5819 #define _RTCCIF 0x01
5820 #define _CCP1IF 0x02
5821 #define _CCP2IF 0x04
5822 #define _CTMUIF 0x08
5823 #define _TX2IF 0x10
5824 #define _RC2IF 0x20
5825 #define _LCDIF 0x40
5826 #define _TMR5GIF 0x80
5828 //==============================================================================
5831 //==============================================================================
5832 // IPR3 Bits
5834 extern __at(0x0FA5) __sfr IPR3;
5836 typedef struct
5838 unsigned RTCCIP : 1;
5839 unsigned CCP1IP : 1;
5840 unsigned CCP2IP : 1;
5841 unsigned CTMUIP : 1;
5842 unsigned TX2IP : 1;
5843 unsigned RC2IP : 1;
5844 unsigned LCDIP : 1;
5845 unsigned TMR5GIP : 1;
5846 } __IPR3bits_t;
5848 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits;
5850 #define _RTCCIP 0x01
5851 #define _CCP1IP 0x02
5852 #define _CCP2IP 0x04
5853 #define _CTMUIP 0x08
5854 #define _TX2IP 0x10
5855 #define _RC2IP 0x20
5856 #define _LCDIP 0x40
5857 #define _TMR5GIP 0x80
5859 //==============================================================================
5862 //==============================================================================
5863 // PIR6 Bits
5865 extern __at(0x0FA6) __sfr PIR6;
5867 typedef struct
5869 unsigned CMP1IF : 1;
5870 unsigned CMP2IF : 1;
5871 unsigned CMP3IF : 1;
5872 unsigned : 1;
5873 unsigned EEIF : 1;
5874 unsigned : 1;
5875 unsigned : 1;
5876 unsigned : 1;
5877 } __PIR6bits_t;
5879 extern __at(0x0FA6) volatile __PIR6bits_t PIR6bits;
5881 #define _CMP1IF 0x01
5882 #define _CMP2IF 0x02
5883 #define _CMP3IF 0x04
5884 #define _EEIF 0x10
5886 //==============================================================================
5889 //==============================================================================
5890 // HLVDCON Bits
5892 extern __at(0x0FA8) __sfr HLVDCON;
5894 typedef union
5896 struct
5898 unsigned HLVDL0 : 1;
5899 unsigned HLVDL1 : 1;
5900 unsigned HLVDL2 : 1;
5901 unsigned HLVDL3 : 1;
5902 unsigned HLVDEN : 1;
5903 unsigned IRVST : 1;
5904 unsigned BGVST : 1;
5905 unsigned VDIRMAG : 1;
5908 struct
5910 unsigned HLVDL : 4;
5911 unsigned : 4;
5913 } __HLVDCONbits_t;
5915 extern __at(0x0FA8) volatile __HLVDCONbits_t HLVDCONbits;
5917 #define _HLVDL0 0x01
5918 #define _HLVDL1 0x02
5919 #define _HLVDL2 0x04
5920 #define _HLVDL3 0x08
5921 #define _HLVDEN 0x10
5922 #define _IRVST 0x20
5923 #define _BGVST 0x40
5924 #define _VDIRMAG 0x80
5926 //==============================================================================
5929 //==============================================================================
5930 // IPR6 Bits
5932 extern __at(0x0FA9) __sfr IPR6;
5934 typedef struct
5936 unsigned CMP1IP : 1;
5937 unsigned CMP2IP : 1;
5938 unsigned CMP3IP : 1;
5939 unsigned : 1;
5940 unsigned EEIP : 1;
5941 unsigned : 1;
5942 unsigned : 1;
5943 unsigned : 1;
5944 } __IPR6bits_t;
5946 extern __at(0x0FA9) volatile __IPR6bits_t IPR6bits;
5948 #define _CMP1IP 0x01
5949 #define _CMP2IP 0x02
5950 #define _CMP3IP 0x04
5951 #define _EEIP 0x10
5953 //==============================================================================
5956 //==============================================================================
5957 // T1GCON Bits
5959 extern __at(0x0FAA) __sfr T1GCON;
5961 typedef union
5963 struct
5965 unsigned T1GSS0 : 1;
5966 unsigned T1GSS1 : 1;
5967 unsigned T1GVAL : 1;
5968 unsigned T1GGO_NOT_T1DONE : 1;
5969 unsigned T1GSPM : 1;
5970 unsigned T1GTM : 1;
5971 unsigned T1GPOL : 1;
5972 unsigned TMR1GE : 1;
5975 struct
5977 unsigned : 1;
5978 unsigned : 1;
5979 unsigned : 1;
5980 unsigned T1GGO : 1;
5981 unsigned : 1;
5982 unsigned : 1;
5983 unsigned : 1;
5984 unsigned : 1;
5987 struct
5989 unsigned : 1;
5990 unsigned : 1;
5991 unsigned : 1;
5992 unsigned NOT_T1DONE : 1;
5993 unsigned : 1;
5994 unsigned : 1;
5995 unsigned : 1;
5996 unsigned : 1;
5999 struct
6001 unsigned T1GSS : 2;
6002 unsigned : 6;
6004 } __T1GCONbits_t;
6006 extern __at(0x0FAA) volatile __T1GCONbits_t T1GCONbits;
6008 #define _T1GSS0 0x01
6009 #define _T1GSS1 0x02
6010 #define _T1GVAL 0x04
6011 #define _T1GGO_NOT_T1DONE 0x08
6012 #define _T1GGO 0x08
6013 #define _NOT_T1DONE 0x08
6014 #define _T1GSPM 0x10
6015 #define _T1GTM 0x20
6016 #define _T1GPOL 0x40
6017 #define _TMR1GE 0x80
6019 //==============================================================================
6022 //==============================================================================
6023 // RCSTA Bits
6025 extern __at(0x0FAB) __sfr RCSTA;
6027 typedef union
6029 struct
6031 unsigned RX9D : 1;
6032 unsigned OERR : 1;
6033 unsigned FERR : 1;
6034 unsigned ADDEN : 1;
6035 unsigned CREN : 1;
6036 unsigned SREN : 1;
6037 unsigned RX9 : 1;
6038 unsigned SPEN : 1;
6041 struct
6043 unsigned RCD8 : 1;
6044 unsigned OERR1 : 1;
6045 unsigned FERR1 : 1;
6046 unsigned ADEN : 1;
6047 unsigned CREN1 : 1;
6048 unsigned SREN1 : 1;
6049 unsigned RC9 : 1;
6050 unsigned SPEN1 : 1;
6053 struct
6055 unsigned RX9D1 : 1;
6056 unsigned : 1;
6057 unsigned : 1;
6058 unsigned ADDEN1 : 1;
6059 unsigned : 1;
6060 unsigned : 1;
6061 unsigned NOT_RC8 : 1;
6062 unsigned : 1;
6065 struct
6067 unsigned : 1;
6068 unsigned : 1;
6069 unsigned : 1;
6070 unsigned : 1;
6071 unsigned : 1;
6072 unsigned : 1;
6073 unsigned RC8_9 : 1;
6074 unsigned : 1;
6077 struct
6079 unsigned : 1;
6080 unsigned : 1;
6081 unsigned : 1;
6082 unsigned : 1;
6083 unsigned : 1;
6084 unsigned : 1;
6085 unsigned RX91 : 1;
6086 unsigned : 1;
6088 } __RCSTAbits_t;
6090 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits;
6092 #define _RX9D 0x01
6093 #define _RCD8 0x01
6094 #define _RX9D1 0x01
6095 #define _OERR 0x02
6096 #define _OERR1 0x02
6097 #define _FERR 0x04
6098 #define _FERR1 0x04
6099 #define _ADDEN 0x08
6100 #define _ADEN 0x08
6101 #define _ADDEN1 0x08
6102 #define _CREN 0x10
6103 #define _CREN1 0x10
6104 #define _SREN 0x20
6105 #define _SREN1 0x20
6106 #define _RX9 0x40
6107 #define _RC9 0x40
6108 #define _NOT_RC8 0x40
6109 #define _RC8_9 0x40
6110 #define _RX91 0x40
6111 #define _SPEN 0x80
6112 #define _SPEN1 0x80
6114 //==============================================================================
6117 //==============================================================================
6118 // RCSTA1 Bits
6120 extern __at(0x0FAB) __sfr RCSTA1;
6122 typedef union
6124 struct
6126 unsigned RX9D : 1;
6127 unsigned OERR : 1;
6128 unsigned FERR : 1;
6129 unsigned ADDEN : 1;
6130 unsigned CREN : 1;
6131 unsigned SREN : 1;
6132 unsigned RX9 : 1;
6133 unsigned SPEN : 1;
6136 struct
6138 unsigned RCD8 : 1;
6139 unsigned OERR1 : 1;
6140 unsigned FERR1 : 1;
6141 unsigned ADEN : 1;
6142 unsigned CREN1 : 1;
6143 unsigned SREN1 : 1;
6144 unsigned RC9 : 1;
6145 unsigned SPEN1 : 1;
6148 struct
6150 unsigned RX9D1 : 1;
6151 unsigned : 1;
6152 unsigned : 1;
6153 unsigned ADDEN1 : 1;
6154 unsigned : 1;
6155 unsigned : 1;
6156 unsigned NOT_RC8 : 1;
6157 unsigned : 1;
6160 struct
6162 unsigned : 1;
6163 unsigned : 1;
6164 unsigned : 1;
6165 unsigned : 1;
6166 unsigned : 1;
6167 unsigned : 1;
6168 unsigned RC8_9 : 1;
6169 unsigned : 1;
6172 struct
6174 unsigned : 1;
6175 unsigned : 1;
6176 unsigned : 1;
6177 unsigned : 1;
6178 unsigned : 1;
6179 unsigned : 1;
6180 unsigned RX91 : 1;
6181 unsigned : 1;
6183 } __RCSTA1bits_t;
6185 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits;
6187 #define _RCSTA1_RX9D 0x01
6188 #define _RCSTA1_RCD8 0x01
6189 #define _RCSTA1_RX9D1 0x01
6190 #define _RCSTA1_OERR 0x02
6191 #define _RCSTA1_OERR1 0x02
6192 #define _RCSTA1_FERR 0x04
6193 #define _RCSTA1_FERR1 0x04
6194 #define _RCSTA1_ADDEN 0x08
6195 #define _RCSTA1_ADEN 0x08
6196 #define _RCSTA1_ADDEN1 0x08
6197 #define _RCSTA1_CREN 0x10
6198 #define _RCSTA1_CREN1 0x10
6199 #define _RCSTA1_SREN 0x20
6200 #define _RCSTA1_SREN1 0x20
6201 #define _RCSTA1_RX9 0x40
6202 #define _RCSTA1_RC9 0x40
6203 #define _RCSTA1_NOT_RC8 0x40
6204 #define _RCSTA1_RC8_9 0x40
6205 #define _RCSTA1_RX91 0x40
6206 #define _RCSTA1_SPEN 0x80
6207 #define _RCSTA1_SPEN1 0x80
6209 //==============================================================================
6212 //==============================================================================
6213 // TXSTA Bits
6215 extern __at(0x0FAC) __sfr TXSTA;
6217 typedef union
6219 struct
6221 unsigned TX9D : 1;
6222 unsigned TRMT : 1;
6223 unsigned BRGH : 1;
6224 unsigned SENDB : 1;
6225 unsigned SYNC : 1;
6226 unsigned TXEN : 1;
6227 unsigned TX9 : 1;
6228 unsigned CSRC : 1;
6231 struct
6233 unsigned TXD8 : 1;
6234 unsigned TRMT1 : 1;
6235 unsigned BRGH1 : 1;
6236 unsigned SENDB1 : 1;
6237 unsigned SYNC1 : 1;
6238 unsigned TXEN1 : 1;
6239 unsigned TX8_9 : 1;
6240 unsigned CSRC1 : 1;
6243 struct
6245 unsigned TX9D1 : 1;
6246 unsigned : 1;
6247 unsigned : 1;
6248 unsigned : 1;
6249 unsigned : 1;
6250 unsigned : 1;
6251 unsigned NOT_TX8 : 1;
6252 unsigned : 1;
6255 struct
6257 unsigned : 1;
6258 unsigned : 1;
6259 unsigned : 1;
6260 unsigned : 1;
6261 unsigned : 1;
6262 unsigned : 1;
6263 unsigned TX91 : 1;
6264 unsigned : 1;
6266 } __TXSTAbits_t;
6268 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits;
6270 #define _TX9D 0x01
6271 #define _TXD8 0x01
6272 #define _TX9D1 0x01
6273 #define _TRMT 0x02
6274 #define _TRMT1 0x02
6275 #define _BRGH 0x04
6276 #define _BRGH1 0x04
6277 #define _SENDB 0x08
6278 #define _SENDB1 0x08
6279 #define _SYNC 0x10
6280 #define _SYNC1 0x10
6281 #define _TXEN 0x20
6282 #define _TXEN1 0x20
6283 #define _TX9 0x40
6284 #define _TX8_9 0x40
6285 #define _NOT_TX8 0x40
6286 #define _TX91 0x40
6287 #define _CSRC 0x80
6288 #define _CSRC1 0x80
6290 //==============================================================================
6293 //==============================================================================
6294 // TXSTA1 Bits
6296 extern __at(0x0FAC) __sfr TXSTA1;
6298 typedef union
6300 struct
6302 unsigned TX9D : 1;
6303 unsigned TRMT : 1;
6304 unsigned BRGH : 1;
6305 unsigned SENDB : 1;
6306 unsigned SYNC : 1;
6307 unsigned TXEN : 1;
6308 unsigned TX9 : 1;
6309 unsigned CSRC : 1;
6312 struct
6314 unsigned TXD8 : 1;
6315 unsigned TRMT1 : 1;
6316 unsigned BRGH1 : 1;
6317 unsigned SENDB1 : 1;
6318 unsigned SYNC1 : 1;
6319 unsigned TXEN1 : 1;
6320 unsigned TX8_9 : 1;
6321 unsigned CSRC1 : 1;
6324 struct
6326 unsigned TX9D1 : 1;
6327 unsigned : 1;
6328 unsigned : 1;
6329 unsigned : 1;
6330 unsigned : 1;
6331 unsigned : 1;
6332 unsigned NOT_TX8 : 1;
6333 unsigned : 1;
6336 struct
6338 unsigned : 1;
6339 unsigned : 1;
6340 unsigned : 1;
6341 unsigned : 1;
6342 unsigned : 1;
6343 unsigned : 1;
6344 unsigned TX91 : 1;
6345 unsigned : 1;
6347 } __TXSTA1bits_t;
6349 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits;
6351 #define _TXSTA1_TX9D 0x01
6352 #define _TXSTA1_TXD8 0x01
6353 #define _TXSTA1_TX9D1 0x01
6354 #define _TXSTA1_TRMT 0x02
6355 #define _TXSTA1_TRMT1 0x02
6356 #define _TXSTA1_BRGH 0x04
6357 #define _TXSTA1_BRGH1 0x04
6358 #define _TXSTA1_SENDB 0x08
6359 #define _TXSTA1_SENDB1 0x08
6360 #define _TXSTA1_SYNC 0x10
6361 #define _TXSTA1_SYNC1 0x10
6362 #define _TXSTA1_TXEN 0x20
6363 #define _TXSTA1_TXEN1 0x20
6364 #define _TXSTA1_TX9 0x40
6365 #define _TXSTA1_TX8_9 0x40
6366 #define _TXSTA1_NOT_TX8 0x40
6367 #define _TXSTA1_TX91 0x40
6368 #define _TXSTA1_CSRC 0x80
6369 #define _TXSTA1_CSRC1 0x80
6371 //==============================================================================
6373 extern __at(0x0FAD) __sfr TXREG;
6374 extern __at(0x0FAD) __sfr TXREG1;
6375 extern __at(0x0FAE) __sfr RCREG;
6376 extern __at(0x0FAE) __sfr RCREG1;
6377 extern __at(0x0FAF) __sfr SPBRG;
6378 extern __at(0x0FAF) __sfr SPBRG1;
6380 //==============================================================================
6381 // T3GCON Bits
6383 extern __at(0x0FB0) __sfr T3GCON;
6385 typedef union
6387 struct
6389 unsigned T3GSS0 : 1;
6390 unsigned T3GSS1 : 1;
6391 unsigned T3GVAL : 1;
6392 unsigned T3GGO_NOT_T3DONE : 1;
6393 unsigned T3GSPM : 1;
6394 unsigned T3GTM : 1;
6395 unsigned T3GPOL : 1;
6396 unsigned TMR3GE : 1;
6399 struct
6401 unsigned : 1;
6402 unsigned : 1;
6403 unsigned : 1;
6404 unsigned T3GGO : 1;
6405 unsigned : 1;
6406 unsigned : 1;
6407 unsigned : 1;
6408 unsigned : 1;
6411 struct
6413 unsigned : 1;
6414 unsigned : 1;
6415 unsigned : 1;
6416 unsigned NOT_T3DONE : 1;
6417 unsigned : 1;
6418 unsigned : 1;
6419 unsigned : 1;
6420 unsigned : 1;
6423 struct
6425 unsigned T3GSS : 2;
6426 unsigned : 6;
6428 } __T3GCONbits_t;
6430 extern __at(0x0FB0) volatile __T3GCONbits_t T3GCONbits;
6432 #define _T3GSS0 0x01
6433 #define _T3GSS1 0x02
6434 #define _T3GVAL 0x04
6435 #define _T3GGO_NOT_T3DONE 0x08
6436 #define _T3GGO 0x08
6437 #define _NOT_T3DONE 0x08
6438 #define _T3GSPM 0x10
6439 #define _T3GTM 0x20
6440 #define _T3GPOL 0x40
6441 #define _TMR3GE 0x80
6443 //==============================================================================
6446 //==============================================================================
6447 // T3CON Bits
6449 extern __at(0x0FB1) __sfr T3CON;
6451 typedef union
6453 struct
6455 unsigned TMR3ON : 1;
6456 unsigned RD16 : 1;
6457 unsigned NOT_T3SYNC : 1;
6458 unsigned SOSCEN : 1;
6459 unsigned T3CKPS0 : 1;
6460 unsigned T3CKPS1 : 1;
6461 unsigned TMR3CS0 : 1;
6462 unsigned TMR3CS1 : 1;
6465 struct
6467 unsigned : 4;
6468 unsigned T3CKPS : 2;
6469 unsigned : 2;
6472 struct
6474 unsigned : 6;
6475 unsigned TMR3CS : 2;
6477 } __T3CONbits_t;
6479 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits;
6481 #define _T3CON_TMR3ON 0x01
6482 #define _T3CON_RD16 0x02
6483 #define _T3CON_NOT_T3SYNC 0x04
6484 #define _T3CON_SOSCEN 0x08
6485 #define _T3CON_T3CKPS0 0x10
6486 #define _T3CON_T3CKPS1 0x20
6487 #define _T3CON_TMR3CS0 0x40
6488 #define _T3CON_TMR3CS1 0x80
6490 //==============================================================================
6492 extern __at(0x0FB2) __sfr TMR3;
6493 extern __at(0x0FB2) __sfr TMR3L;
6494 extern __at(0x0FB3) __sfr TMR3H;
6496 //==============================================================================
6497 // CMSTAT Bits
6499 extern __at(0x0FB4) __sfr CMSTAT;
6501 typedef union
6503 struct
6505 unsigned : 1;
6506 unsigned : 1;
6507 unsigned : 1;
6508 unsigned : 1;
6509 unsigned : 1;
6510 unsigned CMP1OUT : 1;
6511 unsigned CMP2OUT : 1;
6512 unsigned CMP3OUT : 1;
6515 struct
6517 unsigned : 1;
6518 unsigned : 1;
6519 unsigned : 1;
6520 unsigned : 1;
6521 unsigned : 1;
6522 unsigned C1OUT : 1;
6523 unsigned C2OUT : 1;
6524 unsigned C3OUT : 1;
6526 } __CMSTATbits_t;
6528 extern __at(0x0FB4) volatile __CMSTATbits_t CMSTATbits;
6530 #define _CMP1OUT 0x20
6531 #define _C1OUT 0x20
6532 #define _CMP2OUT 0x40
6533 #define _C2OUT 0x40
6534 #define _CMP3OUT 0x80
6535 #define _C3OUT 0x80
6537 //==============================================================================
6540 //==============================================================================
6541 // CMSTATUS Bits
6543 extern __at(0x0FB4) __sfr CMSTATUS;
6545 typedef union
6547 struct
6549 unsigned : 1;
6550 unsigned : 1;
6551 unsigned : 1;
6552 unsigned : 1;
6553 unsigned : 1;
6554 unsigned CMP1OUT : 1;
6555 unsigned CMP2OUT : 1;
6556 unsigned CMP3OUT : 1;
6559 struct
6561 unsigned : 1;
6562 unsigned : 1;
6563 unsigned : 1;
6564 unsigned : 1;
6565 unsigned : 1;
6566 unsigned C1OUT : 1;
6567 unsigned C2OUT : 1;
6568 unsigned C3OUT : 1;
6570 } __CMSTATUSbits_t;
6572 extern __at(0x0FB4) volatile __CMSTATUSbits_t CMSTATUSbits;
6574 #define _CMSTATUS_CMP1OUT 0x20
6575 #define _CMSTATUS_C1OUT 0x20
6576 #define _CMSTATUS_CMP2OUT 0x40
6577 #define _CMSTATUS_C2OUT 0x40
6578 #define _CMSTATUS_CMP3OUT 0x80
6579 #define _CMSTATUS_C3OUT 0x80
6581 //==============================================================================
6584 //==============================================================================
6585 // CVRCON Bits
6587 extern __at(0x0FB5) __sfr CVRCON;
6589 typedef union
6591 struct
6593 unsigned CVR0 : 1;
6594 unsigned CVR1 : 1;
6595 unsigned CVR2 : 1;
6596 unsigned CVR3 : 1;
6597 unsigned CVR4 : 1;
6598 unsigned CVRSS : 1;
6599 unsigned CVROE : 1;
6600 unsigned CVREN : 1;
6603 struct
6605 unsigned CVR : 5;
6606 unsigned : 3;
6608 } __CVRCONbits_t;
6610 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits;
6612 #define _CVR0 0x01
6613 #define _CVR1 0x02
6614 #define _CVR2 0x04
6615 #define _CVR3 0x08
6616 #define _CVR4 0x10
6617 #define _CVRSS 0x20
6618 #define _CVROE 0x40
6619 #define _CVREN 0x80
6621 //==============================================================================
6624 //==============================================================================
6625 // PIE4 Bits
6627 extern __at(0x0FB6) __sfr PIE4;
6629 typedef struct
6631 unsigned CCP3IE : 1;
6632 unsigned CCP4IE : 1;
6633 unsigned CCP5IE : 1;
6634 unsigned CCP6IE : 1;
6635 unsigned CCP7IE : 1;
6636 unsigned CCP8IE : 1;
6637 unsigned CCP9IE : 1;
6638 unsigned CCP10IE : 1;
6639 } __PIE4bits_t;
6641 extern __at(0x0FB6) volatile __PIE4bits_t PIE4bits;
6643 #define _CCP3IE 0x01
6644 #define _CCP4IE 0x02
6645 #define _CCP5IE 0x04
6646 #define _CCP6IE 0x08
6647 #define _CCP7IE 0x10
6648 #define _CCP8IE 0x20
6649 #define _CCP9IE 0x40
6650 #define _CCP10IE 0x80
6652 //==============================================================================
6655 //==============================================================================
6656 // PIR4 Bits
6658 extern __at(0x0FB7) __sfr PIR4;
6660 typedef struct
6662 unsigned CCP3IF : 1;
6663 unsigned CCP4IF : 1;
6664 unsigned CCP5IF : 1;
6665 unsigned CCP6IF : 1;
6666 unsigned CCP7IF : 1;
6667 unsigned CCP8IF : 1;
6668 unsigned CCP9IF : 1;
6669 unsigned CCP10IF : 1;
6670 } __PIR4bits_t;
6672 extern __at(0x0FB7) volatile __PIR4bits_t PIR4bits;
6674 #define _CCP3IF 0x01
6675 #define _CCP4IF 0x02
6676 #define _CCP5IF 0x04
6677 #define _CCP6IF 0x08
6678 #define _CCP7IF 0x10
6679 #define _CCP8IF 0x20
6680 #define _CCP9IF 0x40
6681 #define _CCP10IF 0x80
6683 //==============================================================================
6686 //==============================================================================
6687 // IPR4 Bits
6689 extern __at(0x0FB8) __sfr IPR4;
6691 typedef struct
6693 unsigned CCP3IP : 1;
6694 unsigned CCP4IP : 1;
6695 unsigned CCP5IP : 1;
6696 unsigned CCP6IP : 1;
6697 unsigned CCP7IP : 1;
6698 unsigned CCP8IP : 1;
6699 unsigned CCP9IP : 1;
6700 unsigned CCP10IP : 1;
6701 } __IPR4bits_t;
6703 extern __at(0x0FB8) volatile __IPR4bits_t IPR4bits;
6705 #define _CCP3IP 0x01
6706 #define _CCP4IP 0x02
6707 #define _CCP5IP 0x04
6708 #define _CCP6IP 0x08
6709 #define _CCP7IP 0x10
6710 #define _CCP8IP 0x20
6711 #define _CCP9IP 0x40
6712 #define _CCP10IP 0x80
6714 //==============================================================================
6717 //==============================================================================
6718 // PIE5 Bits
6720 extern __at(0x0FB9) __sfr PIE5;
6722 typedef struct
6724 unsigned TMR4IE : 1;
6725 unsigned TMR5IE : 1;
6726 unsigned TMR6IE : 1;
6727 unsigned TMR7IE : 1;
6728 unsigned TMR8IE : 1;
6729 unsigned TMR10IE : 1;
6730 unsigned TMR12IE : 1;
6731 unsigned TMR7GIE : 1;
6732 } __PIE5bits_t;
6734 extern __at(0x0FB9) volatile __PIE5bits_t PIE5bits;
6736 #define _TMR4IE 0x01
6737 #define _TMR5IE 0x02
6738 #define _TMR6IE 0x04
6739 #define _TMR7IE 0x08
6740 #define _TMR8IE 0x10
6741 #define _TMR10IE 0x20
6742 #define _TMR12IE 0x40
6743 #define _TMR7GIE 0x80
6745 //==============================================================================
6748 //==============================================================================
6749 // PIR5 Bits
6751 extern __at(0x0FBA) __sfr PIR5;
6753 typedef struct
6755 unsigned TMR4IF : 1;
6756 unsigned TMR5IF : 1;
6757 unsigned TMR6IF : 1;
6758 unsigned TMR7IF : 1;
6759 unsigned TMR8IF : 1;
6760 unsigned TMR10IF : 1;
6761 unsigned TMR12IF : 1;
6762 unsigned TMR7GIF : 1;
6763 } __PIR5bits_t;
6765 extern __at(0x0FBA) volatile __PIR5bits_t PIR5bits;
6767 #define _TMR4IF 0x01
6768 #define _TMR5IF 0x02
6769 #define _TMR6IF 0x04
6770 #define _TMR7IF 0x08
6771 #define _TMR8IF 0x10
6772 #define _TMR10IF 0x20
6773 #define _TMR12IF 0x40
6774 #define _TMR7GIF 0x80
6776 //==============================================================================
6779 //==============================================================================
6780 // CCP1CON Bits
6782 extern __at(0x0FBB) __sfr CCP1CON;
6784 typedef union
6786 struct
6788 unsigned CCP1M0 : 1;
6789 unsigned CCP1M1 : 1;
6790 unsigned CCP1M2 : 1;
6791 unsigned CCP1M3 : 1;
6792 unsigned DC1B0 : 1;
6793 unsigned DC1B1 : 1;
6794 unsigned P1M0 : 1;
6795 unsigned P1M1 : 1;
6798 struct
6800 unsigned : 1;
6801 unsigned : 1;
6802 unsigned : 1;
6803 unsigned : 1;
6804 unsigned CCP1Y : 1;
6805 unsigned CCP1X : 1;
6806 unsigned : 1;
6807 unsigned : 1;
6810 struct
6812 unsigned CCP1M : 4;
6813 unsigned : 4;
6816 struct
6818 unsigned : 4;
6819 unsigned DC1B : 2;
6820 unsigned : 2;
6823 struct
6825 unsigned : 6;
6826 unsigned P1M : 2;
6828 } __CCP1CONbits_t;
6830 extern __at(0x0FBB) volatile __CCP1CONbits_t CCP1CONbits;
6832 #define _CCP1M0 0x01
6833 #define _CCP1M1 0x02
6834 #define _CCP1M2 0x04
6835 #define _CCP1M3 0x08
6836 #define _DC1B0 0x10
6837 #define _CCP1Y 0x10
6838 #define _DC1B1 0x20
6839 #define _CCP1X 0x20
6840 #define _P1M0 0x40
6841 #define _P1M1 0x80
6843 //==============================================================================
6846 //==============================================================================
6847 // ECCP1CON Bits
6849 extern __at(0x0FBB) __sfr ECCP1CON;
6851 typedef union
6853 struct
6855 unsigned CCP1M0 : 1;
6856 unsigned CCP1M1 : 1;
6857 unsigned CCP1M2 : 1;
6858 unsigned CCP1M3 : 1;
6859 unsigned DC1B0 : 1;
6860 unsigned DC1B1 : 1;
6861 unsigned P1M0 : 1;
6862 unsigned P1M1 : 1;
6865 struct
6867 unsigned : 1;
6868 unsigned : 1;
6869 unsigned : 1;
6870 unsigned : 1;
6871 unsigned CCP1Y : 1;
6872 unsigned CCP1X : 1;
6873 unsigned : 1;
6874 unsigned : 1;
6877 struct
6879 unsigned CCP1M : 4;
6880 unsigned : 4;
6883 struct
6885 unsigned : 4;
6886 unsigned DC1B : 2;
6887 unsigned : 2;
6890 struct
6892 unsigned : 6;
6893 unsigned P1M : 2;
6895 } __ECCP1CONbits_t;
6897 extern __at(0x0FBB) volatile __ECCP1CONbits_t ECCP1CONbits;
6899 #define _ECCP1CON_CCP1M0 0x01
6900 #define _ECCP1CON_CCP1M1 0x02
6901 #define _ECCP1CON_CCP1M2 0x04
6902 #define _ECCP1CON_CCP1M3 0x08
6903 #define _ECCP1CON_DC1B0 0x10
6904 #define _ECCP1CON_CCP1Y 0x10
6905 #define _ECCP1CON_DC1B1 0x20
6906 #define _ECCP1CON_CCP1X 0x20
6907 #define _ECCP1CON_P1M0 0x40
6908 #define _ECCP1CON_P1M1 0x80
6910 //==============================================================================
6912 extern __at(0x0FBC) __sfr CCPR1;
6913 extern __at(0x0FBC) __sfr CCPR1L;
6914 extern __at(0x0FBD) __sfr CCPR1H;
6916 //==============================================================================
6917 // ECCP1DEL Bits
6919 extern __at(0x0FBE) __sfr ECCP1DEL;
6921 typedef union
6923 struct
6925 unsigned P1DC0 : 1;
6926 unsigned P1DC1 : 1;
6927 unsigned P1DC2 : 1;
6928 unsigned P1DC3 : 1;
6929 unsigned P1DC4 : 1;
6930 unsigned P1DC5 : 1;
6931 unsigned P1DC6 : 1;
6932 unsigned P1RSEN : 1;
6935 struct
6937 unsigned P1DC : 7;
6938 unsigned : 1;
6940 } __ECCP1DELbits_t;
6942 extern __at(0x0FBE) volatile __ECCP1DELbits_t ECCP1DELbits;
6944 #define _P1DC0 0x01
6945 #define _P1DC1 0x02
6946 #define _P1DC2 0x04
6947 #define _P1DC3 0x08
6948 #define _P1DC4 0x10
6949 #define _P1DC5 0x20
6950 #define _P1DC6 0x40
6951 #define _P1RSEN 0x80
6953 //==============================================================================
6956 //==============================================================================
6957 // PWM1CON Bits
6959 extern __at(0x0FBE) __sfr PWM1CON;
6961 typedef union
6963 struct
6965 unsigned P1DC0 : 1;
6966 unsigned P1DC1 : 1;
6967 unsigned P1DC2 : 1;
6968 unsigned P1DC3 : 1;
6969 unsigned P1DC4 : 1;
6970 unsigned P1DC5 : 1;
6971 unsigned P1DC6 : 1;
6972 unsigned P1RSEN : 1;
6975 struct
6977 unsigned P1DC : 7;
6978 unsigned : 1;
6980 } __PWM1CONbits_t;
6982 extern __at(0x0FBE) volatile __PWM1CONbits_t PWM1CONbits;
6984 #define _PWM1CON_P1DC0 0x01
6985 #define _PWM1CON_P1DC1 0x02
6986 #define _PWM1CON_P1DC2 0x04
6987 #define _PWM1CON_P1DC3 0x08
6988 #define _PWM1CON_P1DC4 0x10
6989 #define _PWM1CON_P1DC5 0x20
6990 #define _PWM1CON_P1DC6 0x40
6991 #define _PWM1CON_P1RSEN 0x80
6993 //==============================================================================
6996 //==============================================================================
6997 // ECCP1AS Bits
6999 extern __at(0x0FBF) __sfr ECCP1AS;
7001 typedef union
7003 struct
7005 unsigned PSS1BD0 : 1;
7006 unsigned PSS1BD1 : 1;
7007 unsigned PSS1AC0 : 1;
7008 unsigned PSS1AC1 : 1;
7009 unsigned ECCP1AS0 : 1;
7010 unsigned ECCP1AS1 : 1;
7011 unsigned ECCP1AS2 : 1;
7012 unsigned ECCP1ASE : 1;
7015 struct
7017 unsigned PSS1BD : 2;
7018 unsigned : 6;
7021 struct
7023 unsigned : 2;
7024 unsigned PSS1AC : 2;
7025 unsigned : 4;
7028 struct
7030 unsigned : 4;
7031 unsigned ECCP1AS : 3;
7032 unsigned : 1;
7034 } __ECCP1ASbits_t;
7036 extern __at(0x0FBF) volatile __ECCP1ASbits_t ECCP1ASbits;
7038 #define _PSS1BD0 0x01
7039 #define _PSS1BD1 0x02
7040 #define _PSS1AC0 0x04
7041 #define _PSS1AC1 0x08
7042 #define _ECCP1AS0 0x10
7043 #define _ECCP1AS1 0x20
7044 #define _ECCP1AS2 0x40
7045 #define _ECCP1ASE 0x80
7047 //==============================================================================
7050 //==============================================================================
7051 // ADCON2 Bits
7053 extern __at(0x0FC0) __sfr ADCON2;
7055 typedef union
7057 struct
7059 unsigned ADCS0 : 1;
7060 unsigned ADCS1 : 1;
7061 unsigned ADCS2 : 1;
7062 unsigned ACQT0 : 1;
7063 unsigned ACQT1 : 1;
7064 unsigned ACQT2 : 1;
7065 unsigned : 1;
7066 unsigned ADFM : 1;
7069 struct
7071 unsigned ADCS : 3;
7072 unsigned : 5;
7075 struct
7077 unsigned : 3;
7078 unsigned ACQT : 3;
7079 unsigned : 2;
7081 } __ADCON2bits_t;
7083 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits;
7085 #define _ADCS0 0x01
7086 #define _ADCS1 0x02
7087 #define _ADCS2 0x04
7088 #define _ACQT0 0x08
7089 #define _ACQT1 0x10
7090 #define _ACQT2 0x20
7091 #define _ADFM 0x80
7093 //==============================================================================
7096 //==============================================================================
7097 // ADCON1 Bits
7099 extern __at(0x0FC1) __sfr ADCON1;
7101 typedef union
7103 struct
7105 unsigned CHSN0 : 1;
7106 unsigned CHSN1 : 1;
7107 unsigned CHSN2 : 1;
7108 unsigned VNCFG : 1;
7109 unsigned VCFG0 : 1;
7110 unsigned VCFG1 : 1;
7111 unsigned TRIGSEL0 : 1;
7112 unsigned TRIGSEL1 : 1;
7115 struct
7117 unsigned CHSN : 3;
7118 unsigned : 5;
7121 struct
7123 unsigned : 4;
7124 unsigned VCFG : 2;
7125 unsigned : 2;
7128 struct
7130 unsigned : 6;
7131 unsigned TRIGSEL : 2;
7133 } __ADCON1bits_t;
7135 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits;
7137 #define _CHSN0 0x01
7138 #define _CHSN1 0x02
7139 #define _CHSN2 0x04
7140 #define _VNCFG 0x08
7141 #define _VCFG0 0x10
7142 #define _VCFG1 0x20
7143 #define _TRIGSEL0 0x40
7144 #define _TRIGSEL1 0x80
7146 //==============================================================================
7149 //==============================================================================
7150 // ADCON0 Bits
7152 extern __at(0x0FC2) __sfr ADCON0;
7154 typedef union
7156 struct
7158 unsigned ADON : 1;
7159 unsigned GO_NOT_DONE : 1;
7160 unsigned CHS0 : 1;
7161 unsigned CHS1 : 1;
7162 unsigned CHS2 : 1;
7163 unsigned CHS3 : 1;
7164 unsigned CHS4 : 1;
7165 unsigned : 1;
7168 struct
7170 unsigned : 1;
7171 unsigned DONE : 1;
7172 unsigned : 1;
7173 unsigned : 1;
7174 unsigned : 1;
7175 unsigned : 1;
7176 unsigned : 1;
7177 unsigned : 1;
7180 struct
7182 unsigned : 1;
7183 unsigned GO : 1;
7184 unsigned : 1;
7185 unsigned : 1;
7186 unsigned : 1;
7187 unsigned : 1;
7188 unsigned : 1;
7189 unsigned : 1;
7192 struct
7194 unsigned : 1;
7195 unsigned NOT_DONE : 1;
7196 unsigned : 1;
7197 unsigned : 1;
7198 unsigned : 1;
7199 unsigned : 1;
7200 unsigned : 1;
7201 unsigned : 1;
7204 struct
7206 unsigned : 2;
7207 unsigned CHS : 5;
7208 unsigned : 1;
7210 } __ADCON0bits_t;
7212 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits;
7214 #define _ADON 0x01
7215 #define _GO_NOT_DONE 0x02
7216 #define _DONE 0x02
7217 #define _GO 0x02
7218 #define _NOT_DONE 0x02
7219 #define _CHS0 0x04
7220 #define _CHS1 0x08
7221 #define _CHS2 0x10
7222 #define _CHS3 0x20
7223 #define _CHS4 0x40
7225 //==============================================================================
7227 extern __at(0x0FC3) __sfr ADRES;
7228 extern __at(0x0FC3) __sfr ADRESL;
7229 extern __at(0x0FC4) __sfr ADRESH;
7231 //==============================================================================
7232 // SSP1CON2 Bits
7234 extern __at(0x0FC5) __sfr SSP1CON2;
7236 typedef union
7238 struct
7240 unsigned SEN : 1;
7241 unsigned RSEN : 1;
7242 unsigned PEN : 1;
7243 unsigned RCEN : 1;
7244 unsigned ACKEN : 1;
7245 unsigned ACKDT : 1;
7246 unsigned ACKSTAT : 1;
7247 unsigned GCEN : 1;
7250 struct
7252 unsigned : 1;
7253 unsigned ADMSK1 : 1;
7254 unsigned ADMSK2 : 1;
7255 unsigned ADMSK3 : 1;
7256 unsigned ADMSK4 : 1;
7257 unsigned ADMSK5 : 1;
7258 unsigned : 1;
7259 unsigned : 1;
7261 } __SSP1CON2bits_t;
7263 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits;
7265 #define _SEN 0x01
7266 #define _RSEN 0x02
7267 #define _ADMSK1 0x02
7268 #define _PEN 0x04
7269 #define _ADMSK2 0x04
7270 #define _RCEN 0x08
7271 #define _ADMSK3 0x08
7272 #define _ACKEN 0x10
7273 #define _ADMSK4 0x10
7274 #define _ACKDT 0x20
7275 #define _ADMSK5 0x20
7276 #define _ACKSTAT 0x40
7277 #define _GCEN 0x80
7279 //==============================================================================
7282 //==============================================================================
7283 // SSPCON2 Bits
7285 extern __at(0x0FC5) __sfr SSPCON2;
7287 typedef union
7289 struct
7291 unsigned SEN : 1;
7292 unsigned RSEN : 1;
7293 unsigned PEN : 1;
7294 unsigned RCEN : 1;
7295 unsigned ACKEN : 1;
7296 unsigned ACKDT : 1;
7297 unsigned ACKSTAT : 1;
7298 unsigned GCEN : 1;
7301 struct
7303 unsigned : 1;
7304 unsigned ADMSK1 : 1;
7305 unsigned ADMSK2 : 1;
7306 unsigned ADMSK3 : 1;
7307 unsigned ADMSK4 : 1;
7308 unsigned ADMSK5 : 1;
7309 unsigned : 1;
7310 unsigned : 1;
7312 } __SSPCON2bits_t;
7314 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits;
7316 #define _SSPCON2_SEN 0x01
7317 #define _SSPCON2_RSEN 0x02
7318 #define _SSPCON2_ADMSK1 0x02
7319 #define _SSPCON2_PEN 0x04
7320 #define _SSPCON2_ADMSK2 0x04
7321 #define _SSPCON2_RCEN 0x08
7322 #define _SSPCON2_ADMSK3 0x08
7323 #define _SSPCON2_ACKEN 0x10
7324 #define _SSPCON2_ADMSK4 0x10
7325 #define _SSPCON2_ACKDT 0x20
7326 #define _SSPCON2_ADMSK5 0x20
7327 #define _SSPCON2_ACKSTAT 0x40
7328 #define _SSPCON2_GCEN 0x80
7330 //==============================================================================
7333 //==============================================================================
7334 // SSP1CON1 Bits
7336 extern __at(0x0FC6) __sfr SSP1CON1;
7338 typedef union
7340 struct
7342 unsigned SSPM0 : 1;
7343 unsigned SSPM1 : 1;
7344 unsigned SSPM2 : 1;
7345 unsigned SSPM3 : 1;
7346 unsigned CKP : 1;
7347 unsigned SSPEN : 1;
7348 unsigned SSPOV : 1;
7349 unsigned WCOL : 1;
7352 struct
7354 unsigned SSPM : 4;
7355 unsigned : 4;
7357 } __SSP1CON1bits_t;
7359 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits;
7361 #define _SSPM0 0x01
7362 #define _SSPM1 0x02
7363 #define _SSPM2 0x04
7364 #define _SSPM3 0x08
7365 #define _CKP 0x10
7366 #define _SSPEN 0x20
7367 #define _SSPOV 0x40
7368 #define _WCOL 0x80
7370 //==============================================================================
7373 //==============================================================================
7374 // SSPCON1 Bits
7376 extern __at(0x0FC6) __sfr SSPCON1;
7378 typedef union
7380 struct
7382 unsigned SSPM0 : 1;
7383 unsigned SSPM1 : 1;
7384 unsigned SSPM2 : 1;
7385 unsigned SSPM3 : 1;
7386 unsigned CKP : 1;
7387 unsigned SSPEN : 1;
7388 unsigned SSPOV : 1;
7389 unsigned WCOL : 1;
7392 struct
7394 unsigned SSPM : 4;
7395 unsigned : 4;
7397 } __SSPCON1bits_t;
7399 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits;
7401 #define _SSPCON1_SSPM0 0x01
7402 #define _SSPCON1_SSPM1 0x02
7403 #define _SSPCON1_SSPM2 0x04
7404 #define _SSPCON1_SSPM3 0x08
7405 #define _SSPCON1_CKP 0x10
7406 #define _SSPCON1_SSPEN 0x20
7407 #define _SSPCON1_SSPOV 0x40
7408 #define _SSPCON1_WCOL 0x80
7410 //==============================================================================
7413 //==============================================================================
7414 // SSP1STAT Bits
7416 extern __at(0x0FC7) __sfr SSP1STAT;
7418 typedef union
7420 struct
7422 unsigned BF : 1;
7423 unsigned UA : 1;
7424 unsigned R_NOT_W : 1;
7425 unsigned S : 1;
7426 unsigned P : 1;
7427 unsigned D_NOT_A : 1;
7428 unsigned CKE : 1;
7429 unsigned SMP : 1;
7432 struct
7434 unsigned : 1;
7435 unsigned : 1;
7436 unsigned R : 1;
7437 unsigned I2C_START : 1;
7438 unsigned I2C_STOP : 1;
7439 unsigned D : 1;
7440 unsigned : 1;
7441 unsigned : 1;
7444 struct
7446 unsigned : 1;
7447 unsigned : 1;
7448 unsigned R_W : 1;
7449 unsigned : 1;
7450 unsigned : 1;
7451 unsigned D_A : 1;
7452 unsigned : 1;
7453 unsigned : 1;
7456 struct
7458 unsigned : 1;
7459 unsigned : 1;
7460 unsigned NOT_W : 1;
7461 unsigned : 1;
7462 unsigned : 1;
7463 unsigned NOT_A : 1;
7464 unsigned : 1;
7465 unsigned : 1;
7468 struct
7470 unsigned : 1;
7471 unsigned : 1;
7472 unsigned NOT_WRITE : 1;
7473 unsigned : 1;
7474 unsigned : 1;
7475 unsigned NOT_ADDRESS : 1;
7476 unsigned : 1;
7477 unsigned : 1;
7480 struct
7482 unsigned : 1;
7483 unsigned : 1;
7484 unsigned READ_WRITE : 1;
7485 unsigned : 1;
7486 unsigned : 1;
7487 unsigned DATA_ADDRESS : 1;
7488 unsigned : 1;
7489 unsigned : 1;
7492 struct
7494 unsigned : 1;
7495 unsigned : 1;
7496 unsigned I2C_READ : 1;
7497 unsigned : 1;
7498 unsigned : 1;
7499 unsigned I2C_DAT : 1;
7500 unsigned : 1;
7501 unsigned : 1;
7503 } __SSP1STATbits_t;
7505 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits;
7507 #define _BF 0x01
7508 #define _UA 0x02
7509 #define _R_NOT_W 0x04
7510 #define _R 0x04
7511 #define _R_W 0x04
7512 #define _NOT_W 0x04
7513 #define _NOT_WRITE 0x04
7514 #define _READ_WRITE 0x04
7515 #define _I2C_READ 0x04
7516 #define _S 0x08
7517 #define _I2C_START 0x08
7518 #define _P 0x10
7519 #define _I2C_STOP 0x10
7520 #define _D_NOT_A 0x20
7521 #define _D 0x20
7522 #define _D_A 0x20
7523 #define _NOT_A 0x20
7524 #define _NOT_ADDRESS 0x20
7525 #define _DATA_ADDRESS 0x20
7526 #define _I2C_DAT 0x20
7527 #define _CKE 0x40
7528 #define _SMP 0x80
7530 //==============================================================================
7533 //==============================================================================
7534 // SSPSTAT Bits
7536 extern __at(0x0FC7) __sfr SSPSTAT;
7538 typedef union
7540 struct
7542 unsigned BF : 1;
7543 unsigned UA : 1;
7544 unsigned R_NOT_W : 1;
7545 unsigned S : 1;
7546 unsigned P : 1;
7547 unsigned D_NOT_A : 1;
7548 unsigned CKE : 1;
7549 unsigned SMP : 1;
7552 struct
7554 unsigned : 1;
7555 unsigned : 1;
7556 unsigned R : 1;
7557 unsigned I2C_START : 1;
7558 unsigned I2C_STOP : 1;
7559 unsigned D : 1;
7560 unsigned : 1;
7561 unsigned : 1;
7564 struct
7566 unsigned : 1;
7567 unsigned : 1;
7568 unsigned R_W : 1;
7569 unsigned : 1;
7570 unsigned : 1;
7571 unsigned D_A : 1;
7572 unsigned : 1;
7573 unsigned : 1;
7576 struct
7578 unsigned : 1;
7579 unsigned : 1;
7580 unsigned NOT_W : 1;
7581 unsigned : 1;
7582 unsigned : 1;
7583 unsigned NOT_A : 1;
7584 unsigned : 1;
7585 unsigned : 1;
7588 struct
7590 unsigned : 1;
7591 unsigned : 1;
7592 unsigned NOT_WRITE : 1;
7593 unsigned : 1;
7594 unsigned : 1;
7595 unsigned NOT_ADDRESS : 1;
7596 unsigned : 1;
7597 unsigned : 1;
7600 struct
7602 unsigned : 1;
7603 unsigned : 1;
7604 unsigned READ_WRITE : 1;
7605 unsigned : 1;
7606 unsigned : 1;
7607 unsigned DATA_ADDRESS : 1;
7608 unsigned : 1;
7609 unsigned : 1;
7612 struct
7614 unsigned : 1;
7615 unsigned : 1;
7616 unsigned I2C_READ : 1;
7617 unsigned : 1;
7618 unsigned : 1;
7619 unsigned I2C_DAT : 1;
7620 unsigned : 1;
7621 unsigned : 1;
7623 } __SSPSTATbits_t;
7625 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits;
7627 #define _SSPSTAT_BF 0x01
7628 #define _SSPSTAT_UA 0x02
7629 #define _SSPSTAT_R_NOT_W 0x04
7630 #define _SSPSTAT_R 0x04
7631 #define _SSPSTAT_R_W 0x04
7632 #define _SSPSTAT_NOT_W 0x04
7633 #define _SSPSTAT_NOT_WRITE 0x04
7634 #define _SSPSTAT_READ_WRITE 0x04
7635 #define _SSPSTAT_I2C_READ 0x04
7636 #define _SSPSTAT_S 0x08
7637 #define _SSPSTAT_I2C_START 0x08
7638 #define _SSPSTAT_P 0x10
7639 #define _SSPSTAT_I2C_STOP 0x10
7640 #define _SSPSTAT_D_NOT_A 0x20
7641 #define _SSPSTAT_D 0x20
7642 #define _SSPSTAT_D_A 0x20
7643 #define _SSPSTAT_NOT_A 0x20
7644 #define _SSPSTAT_NOT_ADDRESS 0x20
7645 #define _SSPSTAT_DATA_ADDRESS 0x20
7646 #define _SSPSTAT_I2C_DAT 0x20
7647 #define _SSPSTAT_CKE 0x40
7648 #define _SSPSTAT_SMP 0x80
7650 //==============================================================================
7653 //==============================================================================
7654 // SSP1ADD Bits
7656 extern __at(0x0FC8) __sfr SSP1ADD;
7658 typedef struct
7660 unsigned MSK0 : 1;
7661 unsigned MSK1 : 1;
7662 unsigned MSK2 : 1;
7663 unsigned MSK3 : 1;
7664 unsigned MSK4 : 1;
7665 unsigned MSK5 : 1;
7666 unsigned MSK6 : 1;
7667 unsigned MSK7 : 1;
7668 } __SSP1ADDbits_t;
7670 extern __at(0x0FC8) volatile __SSP1ADDbits_t SSP1ADDbits;
7672 #define _MSK0 0x01
7673 #define _MSK1 0x02
7674 #define _MSK2 0x04
7675 #define _MSK3 0x08
7676 #define _MSK4 0x10
7677 #define _MSK5 0x20
7678 #define _MSK6 0x40
7679 #define _MSK7 0x80
7681 //==============================================================================
7684 //==============================================================================
7685 // SSPADD Bits
7687 extern __at(0x0FC8) __sfr SSPADD;
7689 typedef struct
7691 unsigned MSK0 : 1;
7692 unsigned MSK1 : 1;
7693 unsigned MSK2 : 1;
7694 unsigned MSK3 : 1;
7695 unsigned MSK4 : 1;
7696 unsigned MSK5 : 1;
7697 unsigned MSK6 : 1;
7698 unsigned MSK7 : 1;
7699 } __SSPADDbits_t;
7701 extern __at(0x0FC8) volatile __SSPADDbits_t SSPADDbits;
7703 #define _SSPADD_MSK0 0x01
7704 #define _SSPADD_MSK1 0x02
7705 #define _SSPADD_MSK2 0x04
7706 #define _SSPADD_MSK3 0x08
7707 #define _SSPADD_MSK4 0x10
7708 #define _SSPADD_MSK5 0x20
7709 #define _SSPADD_MSK6 0x40
7710 #define _SSPADD_MSK7 0x80
7712 //==============================================================================
7714 extern __at(0x0FC9) __sfr SSP1BUF;
7715 extern __at(0x0FC9) __sfr SSPBUF;
7717 //==============================================================================
7718 // T2CON Bits
7720 extern __at(0x0FCA) __sfr T2CON;
7722 typedef union
7724 struct
7726 unsigned T2CKPS0 : 1;
7727 unsigned T2CKPS1 : 1;
7728 unsigned TMR2ON : 1;
7729 unsigned T2OUTPS0 : 1;
7730 unsigned T2OUTPS1 : 1;
7731 unsigned T2OUTPS2 : 1;
7732 unsigned T2OUTPS3 : 1;
7733 unsigned : 1;
7736 struct
7738 unsigned T2CKPS : 2;
7739 unsigned : 6;
7742 struct
7744 unsigned : 3;
7745 unsigned T2OUTPS : 4;
7746 unsigned : 1;
7748 } __T2CONbits_t;
7750 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits;
7752 #define _T2CKPS0 0x01
7753 #define _T2CKPS1 0x02
7754 #define _TMR2ON 0x04
7755 #define _T2OUTPS0 0x08
7756 #define _T2OUTPS1 0x10
7757 #define _T2OUTPS2 0x20
7758 #define _T2OUTPS3 0x40
7760 //==============================================================================
7762 extern __at(0x0FCB) __sfr PR2;
7763 extern __at(0x0FCC) __sfr TMR2;
7765 //==============================================================================
7766 // T1CON Bits
7768 extern __at(0x0FCD) __sfr T1CON;
7770 typedef union
7772 struct
7774 unsigned TMR1ON : 1;
7775 unsigned RD16 : 1;
7776 unsigned NOT_T1SYNC : 1;
7777 unsigned SOSCEN : 1;
7778 unsigned T1CKPS0 : 1;
7779 unsigned T1CKPS1 : 1;
7780 unsigned TMR1CS0 : 1;
7781 unsigned TMR1CS1 : 1;
7784 struct
7786 unsigned : 4;
7787 unsigned T1CKPS : 2;
7788 unsigned : 2;
7791 struct
7793 unsigned : 6;
7794 unsigned TMR1CS : 2;
7796 } __T1CONbits_t;
7798 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits;
7800 #define _TMR1ON 0x01
7801 #define _RD16 0x02
7802 #define _NOT_T1SYNC 0x04
7803 #define _SOSCEN 0x08
7804 #define _T1CKPS0 0x10
7805 #define _T1CKPS1 0x20
7806 #define _TMR1CS0 0x40
7807 #define _TMR1CS1 0x80
7809 //==============================================================================
7811 extern __at(0x0FCE) __sfr TMR1;
7812 extern __at(0x0FCE) __sfr TMR1L;
7813 extern __at(0x0FCF) __sfr TMR1H;
7815 //==============================================================================
7816 // RCON Bits
7818 extern __at(0x0FD0) __sfr RCON;
7820 typedef union
7822 struct
7824 unsigned NOT_BOR : 1;
7825 unsigned NOT_POR : 1;
7826 unsigned NOT_PD : 1;
7827 unsigned NOT_TO : 1;
7828 unsigned NOT_RI : 1;
7829 unsigned NOT_CM : 1;
7830 unsigned SBOREN : 1;
7831 unsigned IPEN : 1;
7834 struct
7836 unsigned BOR : 1;
7837 unsigned POR : 1;
7838 unsigned PD : 1;
7839 unsigned TO : 1;
7840 unsigned RI : 1;
7841 unsigned CM : 1;
7842 unsigned : 1;
7843 unsigned : 1;
7845 } __RCONbits_t;
7847 extern __at(0x0FD0) volatile __RCONbits_t RCONbits;
7849 #define _NOT_BOR 0x01
7850 #define _BOR 0x01
7851 #define _NOT_POR 0x02
7852 #define _POR 0x02
7853 #define _NOT_PD 0x04
7854 #define _PD 0x04
7855 #define _NOT_TO 0x08
7856 #define _TO 0x08
7857 #define _NOT_RI 0x10
7858 #define _RI 0x10
7859 #define _NOT_CM 0x20
7860 #define _CM 0x20
7861 #define _SBOREN 0x40
7862 #define _IPEN 0x80
7864 //==============================================================================
7867 //==============================================================================
7868 // WDTCON Bits
7870 extern __at(0x0FD1) __sfr WDTCON;
7872 typedef union
7874 struct
7876 unsigned SWDTEN : 1;
7877 unsigned ULPSINK : 1;
7878 unsigned ULPEN : 1;
7879 unsigned : 1;
7880 unsigned SRETEN : 1;
7881 unsigned ULPLVL : 1;
7882 unsigned : 1;
7883 unsigned REGSLP : 1;
7886 struct
7888 unsigned SWDTE : 1;
7889 unsigned : 1;
7890 unsigned : 1;
7891 unsigned : 1;
7892 unsigned : 1;
7893 unsigned : 1;
7894 unsigned : 1;
7895 unsigned : 1;
7897 } __WDTCONbits_t;
7899 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits;
7901 #define _SWDTEN 0x01
7902 #define _SWDTE 0x01
7903 #define _ULPSINK 0x02
7904 #define _ULPEN 0x04
7905 #define _SRETEN 0x10
7906 #define _ULPLVL 0x20
7907 #define _REGSLP 0x80
7909 //==============================================================================
7912 //==============================================================================
7913 // IPR5 Bits
7915 extern __at(0x0FD2) __sfr IPR5;
7917 typedef struct
7919 unsigned TMR4IP : 1;
7920 unsigned TMR5IP : 1;
7921 unsigned TMR6IP : 1;
7922 unsigned TMR7IP : 1;
7923 unsigned TMR8IP : 1;
7924 unsigned TMR10IP : 1;
7925 unsigned TMR12IP : 1;
7926 unsigned TMR7GIP : 1;
7927 } __IPR5bits_t;
7929 extern __at(0x0FD2) volatile __IPR5bits_t IPR5bits;
7931 #define _TMR4IP 0x01
7932 #define _TMR5IP 0x02
7933 #define _TMR6IP 0x04
7934 #define _TMR7IP 0x08
7935 #define _TMR8IP 0x10
7936 #define _TMR10IP 0x20
7937 #define _TMR12IP 0x40
7938 #define _TMR7GIP 0x80
7940 //==============================================================================
7943 //==============================================================================
7944 // OSCCON Bits
7946 extern __at(0x0FD3) __sfr OSCCON;
7948 typedef union
7950 struct
7952 unsigned SCS0 : 1;
7953 unsigned SCS1 : 1;
7954 unsigned HFIOFS : 1;
7955 unsigned OSTS : 1;
7956 unsigned IRCF0 : 1;
7957 unsigned IRCF1 : 1;
7958 unsigned IRCF2 : 1;
7959 unsigned IDLEN : 1;
7962 struct
7964 unsigned SCS : 2;
7965 unsigned : 6;
7968 struct
7970 unsigned : 4;
7971 unsigned IRCF : 3;
7972 unsigned : 1;
7974 } __OSCCONbits_t;
7976 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits;
7978 #define _SCS0 0x01
7979 #define _SCS1 0x02
7980 #define _HFIOFS 0x04
7981 #define _OSTS 0x08
7982 #define _IRCF0 0x10
7983 #define _IRCF1 0x20
7984 #define _IRCF2 0x40
7985 #define _IDLEN 0x80
7987 //==============================================================================
7989 extern __at(0x0FD4) __sfr SPBRGH1;
7991 //==============================================================================
7992 // T0CON Bits
7994 extern __at(0x0FD5) __sfr T0CON;
7996 typedef union
7998 struct
8000 unsigned T0PS0 : 1;
8001 unsigned T0PS1 : 1;
8002 unsigned T0PS2 : 1;
8003 unsigned PSA : 1;
8004 unsigned T0SE : 1;
8005 unsigned T0CS : 1;
8006 unsigned T08BIT : 1;
8007 unsigned TMR0ON : 1;
8010 struct
8012 unsigned T0PS : 3;
8013 unsigned : 5;
8015 } __T0CONbits_t;
8017 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits;
8019 #define _T0PS0 0x01
8020 #define _T0PS1 0x02
8021 #define _T0PS2 0x04
8022 #define _PSA 0x08
8023 #define _T0SE 0x10
8024 #define _T0CS 0x20
8025 #define _T08BIT 0x40
8026 #define _TMR0ON 0x80
8028 //==============================================================================
8030 extern __at(0x0FD6) __sfr TMR0;
8031 extern __at(0x0FD6) __sfr TMR0L;
8032 extern __at(0x0FD7) __sfr TMR0H;
8034 //==============================================================================
8035 // STATUS Bits
8037 extern __at(0x0FD8) __sfr STATUS;
8039 typedef struct
8041 unsigned C : 1;
8042 unsigned DC : 1;
8043 unsigned Z : 1;
8044 unsigned OV : 1;
8045 unsigned N : 1;
8046 unsigned : 1;
8047 unsigned : 1;
8048 unsigned : 1;
8049 } __STATUSbits_t;
8051 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits;
8053 #define _C 0x01
8054 #define _DC 0x02
8055 #define _Z 0x04
8056 #define _OV 0x08
8057 #define _N 0x10
8059 //==============================================================================
8061 extern __at(0x0FD9) __sfr FSR2L;
8062 extern __at(0x0FDA) __sfr FSR2H;
8063 extern __at(0x0FDB) __sfr PLUSW2;
8064 extern __at(0x0FDC) __sfr PREINC2;
8065 extern __at(0x0FDD) __sfr POSTDEC2;
8066 extern __at(0x0FDE) __sfr POSTINC2;
8067 extern __at(0x0FDF) __sfr INDF2;
8068 extern __at(0x0FE0) __sfr BSR;
8069 extern __at(0x0FE1) __sfr FSR1L;
8070 extern __at(0x0FE2) __sfr FSR1H;
8071 extern __at(0x0FE3) __sfr PLUSW1;
8072 extern __at(0x0FE4) __sfr PREINC1;
8073 extern __at(0x0FE5) __sfr POSTDEC1;
8074 extern __at(0x0FE6) __sfr POSTINC1;
8075 extern __at(0x0FE7) __sfr INDF1;
8076 extern __at(0x0FE8) __sfr WREG;
8077 extern __at(0x0FE9) __sfr FSR0L;
8078 extern __at(0x0FEA) __sfr FSR0H;
8079 extern __at(0x0FEB) __sfr PLUSW0;
8080 extern __at(0x0FEC) __sfr PREINC0;
8081 extern __at(0x0FED) __sfr POSTDEC0;
8082 extern __at(0x0FEE) __sfr POSTINC0;
8083 extern __at(0x0FEF) __sfr INDF0;
8085 //==============================================================================
8086 // INTCON3 Bits
8088 extern __at(0x0FF0) __sfr INTCON3;
8090 typedef union
8092 struct
8094 unsigned INT1IF : 1;
8095 unsigned INT2IF : 1;
8096 unsigned INT3IF : 1;
8097 unsigned INT1IE : 1;
8098 unsigned INT2IE : 1;
8099 unsigned INT3IE : 1;
8100 unsigned INT1IP : 1;
8101 unsigned INT2IP : 1;
8104 struct
8106 unsigned INT1F : 1;
8107 unsigned INT2F : 1;
8108 unsigned INT3F : 1;
8109 unsigned INT1E : 1;
8110 unsigned INT2E : 1;
8111 unsigned INT3E : 1;
8112 unsigned INT1P : 1;
8113 unsigned INT2P : 1;
8115 } __INTCON3bits_t;
8117 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits;
8119 #define _INT1IF 0x01
8120 #define _INT1F 0x01
8121 #define _INT2IF 0x02
8122 #define _INT2F 0x02
8123 #define _INT3IF 0x04
8124 #define _INT3F 0x04
8125 #define _INT1IE 0x08
8126 #define _INT1E 0x08
8127 #define _INT2IE 0x10
8128 #define _INT2E 0x10
8129 #define _INT3IE 0x20
8130 #define _INT3E 0x20
8131 #define _INT1IP 0x40
8132 #define _INT1P 0x40
8133 #define _INT2IP 0x80
8134 #define _INT2P 0x80
8136 //==============================================================================
8139 //==============================================================================
8140 // INTCON2 Bits
8142 extern __at(0x0FF1) __sfr INTCON2;
8144 typedef union
8146 struct
8148 unsigned RBIP : 1;
8149 unsigned INT3IP : 1;
8150 unsigned TMR0IP : 1;
8151 unsigned INTEDG3 : 1;
8152 unsigned INTEDG2 : 1;
8153 unsigned INTEDG1 : 1;
8154 unsigned INTEDG0 : 1;
8155 unsigned NOT_RBPU : 1;
8158 struct
8160 unsigned : 1;
8161 unsigned INT3P : 1;
8162 unsigned T0IP : 1;
8163 unsigned : 1;
8164 unsigned : 1;
8165 unsigned : 1;
8166 unsigned : 1;
8167 unsigned RBPU : 1;
8169 } __INTCON2bits_t;
8171 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits;
8173 #define _RBIP 0x01
8174 #define _INT3IP 0x02
8175 #define _INT3P 0x02
8176 #define _TMR0IP 0x04
8177 #define _T0IP 0x04
8178 #define _INTEDG3 0x08
8179 #define _INTEDG2 0x10
8180 #define _INTEDG1 0x20
8181 #define _INTEDG0 0x40
8182 #define _NOT_RBPU 0x80
8183 #define _RBPU 0x80
8185 //==============================================================================
8188 //==============================================================================
8189 // INTCON Bits
8191 extern __at(0x0FF2) __sfr INTCON;
8193 typedef union
8195 struct
8197 unsigned RBIF : 1;
8198 unsigned INT0IF : 1;
8199 unsigned TMR0IF : 1;
8200 unsigned RBIE : 1;
8201 unsigned INT0IE : 1;
8202 unsigned TMR0IE : 1;
8203 unsigned PEIE_GIEL : 1;
8204 unsigned GIE_GIEH : 1;
8207 struct
8209 unsigned : 1;
8210 unsigned INT0F : 1;
8211 unsigned T0IF : 1;
8212 unsigned : 1;
8213 unsigned INT0E : 1;
8214 unsigned T0IE : 1;
8215 unsigned PEIE : 1;
8216 unsigned GIE : 1;
8219 struct
8221 unsigned : 1;
8222 unsigned : 1;
8223 unsigned : 1;
8224 unsigned : 1;
8225 unsigned : 1;
8226 unsigned : 1;
8227 unsigned GIEL : 1;
8228 unsigned GIEH : 1;
8230 } __INTCONbits_t;
8232 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits;
8234 #define _RBIF 0x01
8235 #define _INT0IF 0x02
8236 #define _INT0F 0x02
8237 #define _TMR0IF 0x04
8238 #define _T0IF 0x04
8239 #define _RBIE 0x08
8240 #define _INT0IE 0x10
8241 #define _INT0E 0x10
8242 #define _TMR0IE 0x20
8243 #define _T0IE 0x20
8244 #define _PEIE_GIEL 0x40
8245 #define _PEIE 0x40
8246 #define _GIEL 0x40
8247 #define _GIE_GIEH 0x80
8248 #define _GIE 0x80
8249 #define _GIEH 0x80
8251 //==============================================================================
8253 extern __at(0x0FF3) __sfr PROD;
8254 extern __at(0x0FF3) __sfr PRODL;
8255 extern __at(0x0FF4) __sfr PRODH;
8256 extern __at(0x0FF5) __sfr TABLAT;
8257 extern __at(0x0FF6) __sfr TBLPTR;
8258 extern __at(0x0FF6) __sfr TBLPTRL;
8259 extern __at(0x0FF7) __sfr TBLPTRH;
8260 extern __at(0x0FF8) __sfr TBLPTRU;
8261 extern __at(0x0FF9) __sfr PC;
8262 extern __at(0x0FF9) __sfr PCL;
8263 extern __at(0x0FFA) __sfr PCLATH;
8264 extern __at(0x0FFB) __sfr PCLATU;
8266 //==============================================================================
8267 // STKPTR Bits
8269 extern __at(0x0FFC) __sfr STKPTR;
8271 typedef union
8273 struct
8275 unsigned SP0 : 1;
8276 unsigned SP1 : 1;
8277 unsigned SP2 : 1;
8278 unsigned SP3 : 1;
8279 unsigned SP4 : 1;
8280 unsigned : 1;
8281 unsigned STKUNF : 1;
8282 unsigned STKFUL : 1;
8285 struct
8287 unsigned : 1;
8288 unsigned : 1;
8289 unsigned : 1;
8290 unsigned : 1;
8291 unsigned : 1;
8292 unsigned : 1;
8293 unsigned : 1;
8294 unsigned STKOVF : 1;
8297 struct
8299 unsigned SP : 5;
8300 unsigned : 3;
8302 } __STKPTRbits_t;
8304 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits;
8306 #define _SP0 0x01
8307 #define _SP1 0x02
8308 #define _SP2 0x04
8309 #define _SP3 0x08
8310 #define _SP4 0x10
8311 #define _STKUNF 0x40
8312 #define _STKFUL 0x80
8313 #define _STKOVF 0x80
8315 //==============================================================================
8317 extern __at(0x0FFD) __sfr TOS;
8318 extern __at(0x0FFD) __sfr TOSL;
8319 extern __at(0x0FFE) __sfr TOSH;
8320 extern __at(0x0FFF) __sfr TOSU;
8322 //==============================================================================
8324 // Configuration Bits
8326 //==============================================================================
8328 #define __CONFIG1L 0x300000
8329 #define __CONFIG1H 0x300001
8330 #define __CONFIG2L 0x300002
8331 #define __CONFIG2H 0x300003
8332 #define __CONFIG3L 0x300004
8333 #define __CONFIG3H 0x300005
8334 #define __CONFIG4L 0x300006
8335 #define __CONFIG5L 0x300008
8336 #define __CONFIG5H 0x300009
8337 #define __CONFIG6L 0x30000A
8338 #define __CONFIG6H 0x30000B
8339 #define __CONFIG7L 0x30000C
8340 #define __CONFIG7H 0x30000D
8342 //----------------------------- CONFIG1L Options -------------------------------
8344 #define _RETEN_OFF_1L 0xFE // Disabled - Controlled by SRETEN bit.
8345 #define _RETEN_ON_1L 0xFF // Enabled.
8346 #define _INTOSCSEL_LOW_1L 0xFB // LF-INTOSC in Low-power mode during Sleep.
8347 #define _INTOSCSEL_HIGH_1L 0xFF // LF-INTOSC in High-power mode during Sleep.
8348 #define _SOSCSEL_LOW_1L 0xEF // Low Power SOSC circuit selected.
8349 #define _SOSCSEL_DIG_1L 0xF7 // Digital (SCLKI) mode.
8350 #define _SOSCSEL_HIGH_1L 0xFF // High Power SOSC circuit selected.
8351 #define _XINST_OFF_1L 0xBF // Disabled.
8352 #define _XINST_ON_1L 0xFF // Enabled.
8354 //----------------------------- CONFIG1H Options -------------------------------
8356 #define _FOSC_LP_1H 0xF0 // LP oscillator.
8357 #define _FOSC_XT_1H 0xF1 // XT oscillator.
8358 #define _FOSC_HS2_1H 0xF2 // HS oscillator (High power, 16 MHz - 25 MHz).
8359 #define _FOSC_HS1_1H 0xF3 // HS oscillator (Medium power, 4 MHz - 16 MHz).
8360 #define _FOSC_EC3IO_1H 0xF4 // EC oscillator, CLKOUT function on OSC2 (High power, 16 MHz - 64 MHz).
8361 #define _FOSC_EC3_1H 0xF5 // EC oscillator (High power, 16 MHz - 64 MHz).
8362 #define _FOSC_RC_1H 0xF6 // External RC oscillator, CLKOUT function on OSC2.
8363 #define _FOSC_RCIO_1H 0xF7 // External RC oscillator.
8364 #define _FOSC_INTIO2_1H 0xF8 // Internal RC oscillator.
8365 #define _FOSC_INTIO1_1H 0xF9 // Internal RC oscillator, CLKOUT function on OSC2.
8366 #define _FOSC_EC2IO_1H 0xFA // EC oscillator, CLKOUT function on OSC2 (Medium power, 160 kHz - 16 MHz).
8367 #define _FOSC_EC2_1H 0xFB // EC oscillator (Medium power, 160 kHz - 16 MHz).
8368 #define _FOSC_EC1IO_1H 0xFC // EC oscillator, CLKOUT function on OSC2 (Low power, DC - 160 kHz).
8369 #define _FOSC_EC1_1H 0xFD // EC oscillator (Low power, DC - 160 kHz).
8370 #define _PLLCFG_OFF_1H 0xEF // Disabled.
8371 #define _PLLCFG_ON_1H 0xFF // Enabled.
8372 #define _FCMEN_OFF_1H 0xBF // Disabled.
8373 #define _FCMEN_ON_1H 0xFF // Enabled.
8374 #define _IESO_OFF_1H 0x7F // Disabled.
8375 #define _IESO_ON_1H 0xFF // Enabled.
8377 //----------------------------- CONFIG2L Options -------------------------------
8379 #define _PWRTEN_ON_2L 0xFE // Enabled.
8380 #define _PWRTEN_OFF_2L 0xFF // Disabled.
8381 #define _BOREN_OFF_2L 0xF9 // Disabled in hardware, SBOREN disabled.
8382 #define _BOREN_ON_2L 0xFB // Controlled with SBOREN bit.
8383 #define _BOREN_NOSLP_2L 0xFD // Enabled while active, disabled in SLEEP, SBOREN disabled.
8384 #define _BOREN_SBORDIS_2L 0xFF // Enabled in hardware, SBOREN disabled.
8385 #define _BORV_0_2L 0xE7 // 3.0V.
8386 #define _BORV_1_2L 0xEF // 2.7V.
8387 #define _BORV_2_2L 0xF7 // 2.0V.
8388 #define _BORV_3_2L 0xFF // 1.8V.
8389 #define _BORPWR_LOW_2L 0x9F // BORMV set to low power level.
8390 #define _BORPWR_MEDIUM_2L 0xBF // BORMV set to medium power level.
8391 #define _BORPWR_HIGH_2L 0xDF // BORMV set to high power level.
8392 #define _BORPWR_ZPBORMV_2L 0xFF // ZPBORMV instead of BORMV is selected.
8394 //----------------------------- CONFIG2H Options -------------------------------
8396 #define _WDTEN_OFF_2H 0xFC // WDT disabled in hardware; SWDTEN bit disabled.
8397 #define _WDTEN_NOSLP_2H 0xFD // WDT enabled only while device is active and disabled in Sleep mode; SWDTEN bit disabled.
8398 #define _WDTEN_ON_2H 0xFE // WDT controlled by SWDTEN bit setting.
8399 #define _WDTEN_SWDTDIS_2H 0xFF // WDT enabled in hardware; SWDTEN bit disabled.
8400 #define _WDTPS_1_2H 0x83 // 1:1.
8401 #define _WDTPS_2_2H 0x87 // 1:2.
8402 #define _WDTPS_4_2H 0x8B // 1:4.
8403 #define _WDTPS_8_2H 0x8F // 1:8.
8404 #define _WDTPS_16_2H 0x93 // 1:16.
8405 #define _WDTPS_32_2H 0x97 // 1:32.
8406 #define _WDTPS_64_2H 0x9B // 1:64.
8407 #define _WDTPS_128_2H 0x9F // 1:128.
8408 #define _WDTPS_256_2H 0xA3 // 1:256.
8409 #define _WDTPS_512_2H 0xA7 // 1:512.
8410 #define _WDTPS_1024_2H 0xAB // 1:1024.
8411 #define _WDTPS_2048_2H 0xAF // 1:2048.
8412 #define _WDTPS_4096_2H 0xB3 // 1:4096.
8413 #define _WDTPS_8192_2H 0xB7 // 1:8192.
8414 #define _WDTPS_16384_2H 0xBB // 1:16384.
8415 #define _WDTPS_32768_2H 0xBF // 1:32768.
8416 #define _WDTPS_65536_2H 0xC3 // 1:65536.
8417 #define _WDTPS_131072_2H 0xC7 // 1:131072.
8418 #define _WDTPS_262144_2H 0xCB // 1:262144.
8419 #define _WDTPS_524288_2H 0xCF // 1:524288.
8420 #define _WDTPS_1048576_2H 0xFF // 1:1048576.
8422 //----------------------------- CONFIG3L Options -------------------------------
8424 #define _RTCOSC_INTOSCREF_3L 0xFE // RTCC uses INTRC.
8425 #define _RTCOSC_SOSCREF_3L 0xFF // RTCC uses SOSC.
8427 //----------------------------- CONFIG3H Options -------------------------------
8429 #define _CCP2MX_PORTBE_3H 0xFE // RE7-Microcontroller Mode/RB3-All other modes.
8430 #define _CCP2MX_PORTC_3H 0xFF // RC1.
8431 #define _MSSPMSK_MSK5_3H 0xF7 // 5 bit address masking mode.
8432 #define _MSSPMSK_MSK7_3H 0xFF // 7 Bit address masking mode.
8433 #define _MCLRE_OFF_3H 0x7F // MCLR Disabled, RG5 Enabled.
8434 #define _MCLRE_ON_3H 0xFF // MCLR Enabled, RG5 Disabled.
8436 //----------------------------- CONFIG4L Options -------------------------------
8438 #define _STVREN_OFF_4L 0xFE // Disabled.
8439 #define _STVREN_ON_4L 0xFF // Enabled.
8440 #define _BBSIZ_BB1K_4L 0xEF // 1K word Boot Block size.
8441 #define _BBSIZ_BB2K_4L 0xFF // 2K word Boot Block size.
8442 #define _DEBUG_ON_4L 0x7F // Enabled.
8443 #define _DEBUG_OFF_4L 0xFF // Disabled.
8445 //----------------------------- CONFIG5L Options -------------------------------
8447 #define _CP0_ON_5L 0xFE // Enabled.
8448 #define _CP0_OFF_5L 0xFF // Disabled.
8449 #define _CP1_ON_5L 0xFD // Enabled.
8450 #define _CP1_OFF_5L 0xFF // Disabled.
8451 #define _CP2_ON_5L 0xFB // Enabled.
8452 #define _CP2_OFF_5L 0xFF // Disabled.
8453 #define _CP3_ON_5L 0xF7 // Enabled.
8454 #define _CP3_OFF_5L 0xFF // Disabled.
8456 //----------------------------- CONFIG5H Options -------------------------------
8458 #define _CPB_ON_5H 0xBF // Enabled.
8459 #define _CPB_OFF_5H 0xFF // Disabled.
8460 #define _CPD_ON_5H 0x7F // Enabled.
8461 #define _CPD_OFF_5H 0xFF // Disabled.
8463 //----------------------------- CONFIG6L Options -------------------------------
8465 #define _WRT0_ON_6L 0xFE // Enabled.
8466 #define _WRT0_OFF_6L 0xFF // Disabled.
8467 #define _WRT1_ON_6L 0xFD // Enabled.
8468 #define _WRT1_OFF_6L 0xFF // Disabled.
8469 #define _WRT2_ON_6L 0xFB // Enabled.
8470 #define _WRT2_OFF_6L 0xFF // Disabled.
8471 #define _WRT3_ON_6L 0xF7 // Enabled.
8472 #define _WRT3_OFF_6L 0xFF // Disabled.
8474 //----------------------------- CONFIG6H Options -------------------------------
8476 #define _WRTC_ON_6H 0xDF // Enabled.
8477 #define _WRTC_OFF_6H 0xFF // Disabled.
8478 #define _WRTB_ON_6H 0xBF // Enabled.
8479 #define _WRTB_OFF_6H 0xFF // Disabled.
8480 #define _WRTD_ON_6H 0x7F // Enabled.
8481 #define _WRTD_OFF_6H 0xFF // Disabled.
8483 //----------------------------- CONFIG7L Options -------------------------------
8485 #define _EBRT0_ON_7L 0xFE // Enabled.
8486 #define _EBRT0_OFF_7L 0xFF // Disabled.
8487 #define _EBRT1_ON_7L 0xFD // Enabled.
8488 #define _EBRT1_OFF_7L 0xFF // Disabled.
8489 #define _EBRT2_ON_7L 0xFB // Enabled.
8490 #define _EBRT2_OFF_7L 0xFF // Disabled.
8491 #define _EBRT3_ON_7L 0xF7 // Enabled.
8492 #define _EBRT3_OFF_7L 0xFF // Disabled.
8494 //----------------------------- CONFIG7H Options -------------------------------
8496 #define _EBRTB_ON_7H 0xBF // Enabled.
8497 #define _EBRTB_OFF_7H 0xFF // Disabled.
8499 //==============================================================================
8501 #define __DEVID1 0x3FFFFE
8502 #define __DEVID2 0x3FFFFF
8504 #define __IDLOC0 0x200000
8505 #define __IDLOC1 0x200001
8506 #define __IDLOC2 0x200002
8507 #define __IDLOC3 0x200003
8508 #define __IDLOC4 0x200004
8509 #define __IDLOC5 0x200005
8510 #define __IDLOC6 0x200006
8511 #define __IDLOC7 0x200007
8513 #endif // #ifndef __PIC18F66K90_H__