2 * This declarations of the PIC18F86J60 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:38 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 __PIC18F86J60_H__
26 #define __PIC18F86J60_H__
28 //==============================================================================
30 //==============================================================================
32 // Register Definitions
34 //==============================================================================
36 extern __at(0x0E80) __sfr MAADR5
;
37 extern __at(0x0E81) __sfr MAADR6
;
38 extern __at(0x0E82) __sfr MAADR3
;
39 extern __at(0x0E83) __sfr MAADR4
;
40 extern __at(0x0E84) __sfr MAADR1
;
41 extern __at(0x0E85) __sfr MAADR2
;
43 //==============================================================================
46 extern __at(0x0E8A) __sfr MISTAT
;
60 extern __at(0x0E8A) volatile __MISTATbits_t MISTATbits
;
66 //==============================================================================
69 //==============================================================================
72 extern __at(0x0E97) __sfr EFLOCON
;
95 extern __at(0x0E97) volatile __EFLOCONbits_t EFLOCONbits
;
101 //==============================================================================
103 extern __at(0x0E98) __sfr EPAUS
;
104 extern __at(0x0E98) __sfr EPAUSL
;
105 extern __at(0x0E99) __sfr EPAUSH
;
107 //==============================================================================
110 extern __at(0x0EA0) __sfr MACON1
;
115 unsigned PASSALL
: 1;
124 extern __at(0x0EA0) volatile __MACON1bits_t MACON1bits
;
127 #define _PASSALL 0x02
131 //==============================================================================
134 //==============================================================================
137 extern __at(0x0EA2) __sfr MACON3
;
144 unsigned FRMLNEN
: 1;
147 unsigned TXCRCEN
: 1;
148 unsigned PADCFG0
: 1;
149 unsigned PADCFG1
: 1;
150 unsigned PADCFG2
: 1;
160 extern __at(0x0EA2) volatile __MACON3bits_t MACON3bits
;
163 #define _FRMLNEN 0x02
166 #define _TXCRCEN 0x10
167 #define _PADCFG0 0x20
168 #define _PADCFG1 0x40
169 #define _PADCFG2 0x80
171 //==============================================================================
174 //==============================================================================
177 extern __at(0x0EA3) __sfr MACON4
;
191 extern __at(0x0EA3) volatile __MACON4bits_t MACON4bits
;
195 //==============================================================================
198 //==============================================================================
201 extern __at(0x0EA4) __sfr MABBIPG
;
224 extern __at(0x0EA4) volatile __MABBIPGbits_t MABBIPGbits
;
234 //==============================================================================
236 extern __at(0x0EA6) __sfr MAIPG
;
237 extern __at(0x0EA6) __sfr MAIPGL
;
238 extern __at(0x0EA7) __sfr MAIPGH
;
239 extern __at(0x0EAA) __sfr MAMXFL
;
240 extern __at(0x0EAA) __sfr MAMXFLL
;
241 extern __at(0x0EAB) __sfr MAMXFLH
;
243 //==============================================================================
246 extern __at(0x0EB2) __sfr MICMD
;
251 unsigned MIISCAN
: 1;
260 extern __at(0x0EB2) volatile __MICMDbits_t MICMDbits
;
263 #define _MIISCAN 0x02
265 //==============================================================================
267 extern __at(0x0EB4) __sfr MIREGADR
;
268 extern __at(0x0EB6) __sfr MIWR
;
269 extern __at(0x0EB6) __sfr MIWRL
;
270 extern __at(0x0EB7) __sfr MIWRH
;
271 extern __at(0x0EB8) __sfr MIRD
;
272 extern __at(0x0EB8) __sfr MIRDL
;
273 extern __at(0x0EB9) __sfr MIRDH
;
274 extern __at(0x0EC0) __sfr EHT0
;
275 extern __at(0x0EC1) __sfr EHT1
;
276 extern __at(0x0EC2) __sfr EHT2
;
277 extern __at(0x0EC3) __sfr EHT3
;
278 extern __at(0x0EC4) __sfr EHT4
;
279 extern __at(0x0EC5) __sfr EHT5
;
280 extern __at(0x0EC6) __sfr EHT6
;
281 extern __at(0x0EC7) __sfr EHT7
;
282 extern __at(0x0EC8) __sfr EPMM0
;
283 extern __at(0x0EC9) __sfr EPMM1
;
284 extern __at(0x0ECA) __sfr EPMM2
;
285 extern __at(0x0ECB) __sfr EPMM3
;
286 extern __at(0x0ECC) __sfr EPMM4
;
287 extern __at(0x0ECD) __sfr EPMM5
;
288 extern __at(0x0ECE) __sfr EPMM6
;
289 extern __at(0x0ECF) __sfr EPMM7
;
290 extern __at(0x0ED0) __sfr EPMCS
;
291 extern __at(0x0ED0) __sfr EPMCSL
;
292 extern __at(0x0ED1) __sfr EPMCSH
;
293 extern __at(0x0ED4) __sfr EPMO
;
294 extern __at(0x0ED4) __sfr EPMOL
;
295 extern __at(0x0ED5) __sfr EPMOH
;
297 //==============================================================================
300 extern __at(0x0ED8) __sfr ERXFCON
;
314 extern __at(0x0ED8) volatile __ERXFCONbits_t ERXFCONbits
;
325 //==============================================================================
327 extern __at(0x0ED9) __sfr EPKTCNT
;
328 extern __at(0x0EE2) __sfr EWRPT
;
329 extern __at(0x0EE2) __sfr EWRPTL
;
330 extern __at(0x0EE3) __sfr EWRPTH
;
331 extern __at(0x0EE4) __sfr ETXST
;
332 extern __at(0x0EE4) __sfr ETXSTL
;
333 extern __at(0x0EE5) __sfr ETXSTH
;
334 extern __at(0x0EE6) __sfr ETXND
;
335 extern __at(0x0EE6) __sfr ETXNDL
;
336 extern __at(0x0EE7) __sfr ETXNDH
;
337 extern __at(0x0EE8) __sfr ERXST
;
338 extern __at(0x0EE8) __sfr ERXSTL
;
339 extern __at(0x0EE9) __sfr ERXSTH
;
340 extern __at(0x0EEA) __sfr ERXND
;
341 extern __at(0x0EEA) __sfr ERXNDL
;
342 extern __at(0x0EEB) __sfr ERXNDH
;
343 extern __at(0x0EEC) __sfr ERXRDPT
;
344 extern __at(0x0EEC) __sfr ERXRDPTL
;
345 extern __at(0x0EED) __sfr ERXRDPTH
;
346 extern __at(0x0EEE) __sfr ERXWRPT
;
347 extern __at(0x0EEE) __sfr ERXWRPTL
;
348 extern __at(0x0EEF) __sfr ERXWRPTH
;
349 extern __at(0x0EF0) __sfr EDMAST
;
350 extern __at(0x0EF0) __sfr EDMASTL
;
351 extern __at(0x0EF1) __sfr EDMASTH
;
352 extern __at(0x0EF2) __sfr EDMAND
;
353 extern __at(0x0EF2) __sfr EDMANDL
;
354 extern __at(0x0EF3) __sfr EDMANDH
;
355 extern __at(0x0EF4) __sfr EDMADST
;
356 extern __at(0x0EF4) __sfr EDMADSTL
;
357 extern __at(0x0EF5) __sfr EDMADSTH
;
358 extern __at(0x0EF6) __sfr EDMACS
;
359 extern __at(0x0EF6) __sfr EDMACSL
;
360 extern __at(0x0EF7) __sfr EDMACSH
;
362 //==============================================================================
365 extern __at(0x0EFB) __sfr EIE
;
394 extern __at(0x0EFB) volatile __EIEbits_t EIEbits
;
404 //==============================================================================
407 //==============================================================================
410 extern __at(0x0EFD) __sfr ESTAT
;
424 extern __at(0x0EFD) volatile __ESTATbits_t ESTATbits
;
431 //==============================================================================
434 //==============================================================================
437 extern __at(0x0EFE) __sfr ECON2
;
448 unsigned AUTOINC
: 1;
451 extern __at(0x0EFE) volatile __ECON2bits_t ECON2bits
;
455 #define _AUTOINC 0x80
457 //==============================================================================
460 //==============================================================================
463 extern __at(0x0F60) __sfr EIR
;
477 extern __at(0x0F60) volatile __EIRbits_t EIRbits
;
486 //==============================================================================
489 //==============================================================================
492 extern __at(0x0F61) __sfr EDATA
;
506 extern __at(0x0F61) volatile __EDATAbits_t EDATAbits
;
517 //==============================================================================
520 //==============================================================================
523 extern __at(0x0F67) __sfr ECCP2DEL
;
564 extern __at(0x0F67) volatile __ECCP2DELbits_t ECCP2DELbits
;
566 #define _ECCP2DEL_PDC0 0x01
567 #define _ECCP2DEL_P2DC0 0x01
568 #define _ECCP2DEL_PDC1 0x02
569 #define _ECCP2DEL_P2DC1 0x02
570 #define _ECCP2DEL_PDC2 0x04
571 #define _ECCP2DEL_P2DC2 0x04
572 #define _ECCP2DEL_PDC3 0x08
573 #define _ECCP2DEL_P2DC3 0x08
574 #define _ECCP2DEL_PDC4 0x10
575 #define _ECCP2DEL_P2DC4 0x10
576 #define _ECCP2DEL_PDC5 0x20
577 #define _ECCP2DEL_P2DC5 0x20
578 #define _ECCP2DEL_PDC6 0x40
579 #define _ECCP2DEL_P2DC6 0x40
580 #define _ECCP2DEL_PRSEN 0x80
581 #define _ECCP2DEL_P2RSEN 0x80
583 //==============================================================================
586 //==============================================================================
589 extern __at(0x0F68) __sfr ECCP2AS
;
599 unsigned ECCPAS0
: 1;
600 unsigned ECCPAS1
: 1;
601 unsigned ECCPAS2
: 1;
602 unsigned ECCPASE
: 1;
607 unsigned PSS2BD0
: 1;
608 unsigned PSS2BD1
: 1;
609 unsigned PSS2AC0
: 1;
610 unsigned PSS2AC1
: 1;
611 unsigned ECCP2AS0
: 1;
612 unsigned ECCP2AS1
: 1;
613 unsigned ECCP2AS2
: 1;
614 unsigned ECCP2ASE
: 1;
646 unsigned ECCP2AS
: 3;
658 extern __at(0x0F68) volatile __ECCP2ASbits_t ECCP2ASbits
;
660 #define _ECCP2AS_PSSBD0 0x01
661 #define _ECCP2AS_PSS2BD0 0x01
662 #define _ECCP2AS_PSSBD1 0x02
663 #define _ECCP2AS_PSS2BD1 0x02
664 #define _ECCP2AS_PSSAC0 0x04
665 #define _ECCP2AS_PSS2AC0 0x04
666 #define _ECCP2AS_PSSAC1 0x08
667 #define _ECCP2AS_PSS2AC1 0x08
668 #define _ECCP2AS_ECCPAS0 0x10
669 #define _ECCP2AS_ECCP2AS0 0x10
670 #define _ECCP2AS_ECCPAS1 0x20
671 #define _ECCP2AS_ECCP2AS1 0x20
672 #define _ECCP2AS_ECCPAS2 0x40
673 #define _ECCP2AS_ECCP2AS2 0x40
674 #define _ECCP2AS_ECCPASE 0x80
675 #define _ECCP2AS_ECCP2ASE 0x80
677 //==============================================================================
680 //==============================================================================
683 extern __at(0x0F69) __sfr ECCP3DEL
;
724 extern __at(0x0F69) volatile __ECCP3DELbits_t ECCP3DELbits
;
726 #define _ECCP3DEL_PDC0 0x01
727 #define _ECCP3DEL_P3DC0 0x01
728 #define _ECCP3DEL_PDC1 0x02
729 #define _ECCP3DEL_P3DC1 0x02
730 #define _ECCP3DEL_PDC2 0x04
731 #define _ECCP3DEL_P3DC2 0x04
732 #define _ECCP3DEL_PDC3 0x08
733 #define _ECCP3DEL_P3DC3 0x08
734 #define _ECCP3DEL_PDC4 0x10
735 #define _ECCP3DEL_P3DC4 0x10
736 #define _ECCP3DEL_PDC5 0x20
737 #define _ECCP3DEL_P3DC5 0x20
738 #define _ECCP3DEL_PDC6 0x40
739 #define _ECCP3DEL_P3DC6 0x40
740 #define _ECCP3DEL_PRSEN 0x80
741 #define _ECCP3DEL_P3RSEN 0x80
743 //==============================================================================
746 //==============================================================================
749 extern __at(0x0F6A) __sfr ECCP3AS
;
759 unsigned ECCPAS0
: 1;
760 unsigned ECCPAS1
: 1;
761 unsigned ECCPAS2
: 1;
762 unsigned ECCPASE
: 1;
767 unsigned PSS3BD0
: 1;
768 unsigned PSS3BD1
: 1;
769 unsigned PSS3AC0
: 1;
770 unsigned PSS3AC1
: 1;
771 unsigned ECCP3AS0
: 1;
772 unsigned ECCP3AS1
: 1;
773 unsigned ECCP3AS2
: 1;
774 unsigned ECCP3ASE
: 1;
813 unsigned ECCP3AS
: 3;
818 extern __at(0x0F6A) volatile __ECCP3ASbits_t ECCP3ASbits
;
820 #define _ECCP3AS_PSSBD0 0x01
821 #define _ECCP3AS_PSS3BD0 0x01
822 #define _ECCP3AS_PSSBD1 0x02
823 #define _ECCP3AS_PSS3BD1 0x02
824 #define _ECCP3AS_PSSAC0 0x04
825 #define _ECCP3AS_PSS3AC0 0x04
826 #define _ECCP3AS_PSSAC1 0x08
827 #define _ECCP3AS_PSS3AC1 0x08
828 #define _ECCP3AS_ECCPAS0 0x10
829 #define _ECCP3AS_ECCP3AS0 0x10
830 #define _ECCP3AS_ECCPAS1 0x20
831 #define _ECCP3AS_ECCP3AS1 0x20
832 #define _ECCP3AS_ECCPAS2 0x40
833 #define _ECCP3AS_ECCP3AS2 0x40
834 #define _ECCP3AS_ECCPASE 0x80
835 #define _ECCP3AS_ECCP3ASE 0x80
837 //==============================================================================
840 //==============================================================================
843 extern __at(0x0F6B) __sfr RCSTA2
;
879 unsigned NOT_RC8
: 1;
908 extern __at(0x0F6B) volatile __RCSTA2bits_t RCSTA2bits
;
910 #define _RCSTA2_RX9D 0x01
911 #define _RCSTA2_RCD8 0x01
912 #define _RCSTA2_RX9D2 0x01
913 #define _RCSTA2_OERR 0x02
914 #define _RCSTA2_OERR2 0x02
915 #define _RCSTA2_FERR 0x04
916 #define _RCSTA2_FERR2 0x04
917 #define _RCSTA2_ADDEN 0x08
918 #define _RCSTA2_ADDEN2 0x08
919 #define _RCSTA2_CREN 0x10
920 #define _RCSTA2_CREN2 0x10
921 #define _RCSTA2_SREN 0x20
922 #define _RCSTA2_SREN2 0x20
923 #define _RCSTA2_RX9 0x40
924 #define _RCSTA2_RC9 0x40
925 #define _RCSTA2_NOT_RC8 0x40
926 #define _RCSTA2_RC8_9 0x40
927 #define _RCSTA2_RX92 0x40
928 #define _RCSTA2_SPEN 0x80
929 #define _RCSTA2_SPEN2 0x80
931 //==============================================================================
934 //==============================================================================
937 extern __at(0x0F6C) __sfr TXSTA2
;
973 unsigned NOT_TX8
: 1;
990 extern __at(0x0F6C) volatile __TXSTA2bits_t TXSTA2bits
;
992 #define _TXSTA2_TX9D 0x01
993 #define _TXSTA2_TXD8 0x01
994 #define _TXSTA2_TX9D2 0x01
995 #define _TXSTA2_TRMT 0x02
996 #define _TXSTA2_TRMT2 0x02
997 #define _TXSTA2_BRGH 0x04
998 #define _TXSTA2_BRGH2 0x04
999 #define _TXSTA2_SENDB 0x08
1000 #define _TXSTA2_SENDB2 0x08
1001 #define _TXSTA2_SYNC 0x10
1002 #define _TXSTA2_SYNC2 0x10
1003 #define _TXSTA2_TXEN 0x20
1004 #define _TXSTA2_TXEN2 0x20
1005 #define _TXSTA2_TX9 0x40
1006 #define _TXSTA2_TX8_9 0x40
1007 #define _TXSTA2_NOT_TX8 0x40
1008 #define _TXSTA2_TX92 0x40
1009 #define _TXSTA2_CSRC 0x80
1010 #define _TXSTA2_CSRC2 0x80
1012 //==============================================================================
1014 extern __at(0x0F6D) __sfr TXREG2
;
1015 extern __at(0x0F6E) __sfr RCREG2
;
1016 extern __at(0x0F6F) __sfr SPBRG2
;
1018 //==============================================================================
1021 extern __at(0x0F70) __sfr CCP5CON
;
1027 unsigned CCP5M0
: 1;
1028 unsigned CCP5M1
: 1;
1029 unsigned CCP5M2
: 1;
1030 unsigned CCP5M3
: 1;
1063 extern __at(0x0F70) volatile __CCP5CONbits_t CCP5CONbits
;
1065 #define _CCP5M0 0x01
1066 #define _CCP5M1 0x02
1067 #define _CCP5M2 0x04
1068 #define _CCP5M3 0x08
1074 //==============================================================================
1076 extern __at(0x0F71) __sfr CCPR5
;
1077 extern __at(0x0F71) __sfr CCPR5L
;
1078 extern __at(0x0F72) __sfr CCPR5H
;
1080 //==============================================================================
1083 extern __at(0x0F73) __sfr CCP4CON
;
1089 unsigned CCP4M0
: 1;
1090 unsigned CCP4M1
: 1;
1091 unsigned CCP4M2
: 1;
1092 unsigned CCP4M3
: 1;
1125 extern __at(0x0F73) volatile __CCP4CONbits_t CCP4CONbits
;
1127 #define _CCP4M0 0x01
1128 #define _CCP4M1 0x02
1129 #define _CCP4M2 0x04
1130 #define _CCP4M3 0x08
1136 //==============================================================================
1138 extern __at(0x0F74) __sfr CCPR4
;
1139 extern __at(0x0F74) __sfr CCPR4L
;
1140 extern __at(0x0F75) __sfr CCPR4H
;
1142 //==============================================================================
1145 extern __at(0x0F76) __sfr T4CON
;
1151 unsigned T4CKPS0
: 1;
1152 unsigned T4CKPS1
: 1;
1153 unsigned TMR4ON
: 1;
1154 unsigned T4OUTPS0
: 1;
1155 unsigned T4OUTPS1
: 1;
1156 unsigned T4OUTPS2
: 1;
1157 unsigned T4OUTPS3
: 1;
1163 unsigned T4CKPS
: 2;
1170 unsigned T4OUTPS
: 4;
1175 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits
;
1177 #define _T4CKPS0 0x01
1178 #define _T4CKPS1 0x02
1179 #define _TMR4ON 0x04
1180 #define _T4OUTPS0 0x08
1181 #define _T4OUTPS1 0x10
1182 #define _T4OUTPS2 0x20
1183 #define _T4OUTPS3 0x40
1185 //==============================================================================
1187 extern __at(0x0F77) __sfr PR4
;
1188 extern __at(0x0F78) __sfr TMR4
;
1190 //==============================================================================
1193 extern __at(0x0F79) __sfr ECCP1DEL
;
1218 unsigned P1RSEN
: 1;
1234 extern __at(0x0F79) volatile __ECCP1DELbits_t ECCP1DELbits
;
1251 #define _P1RSEN 0x80
1253 //==============================================================================
1255 extern __at(0x0F7A) __sfr ERDPT
;
1256 extern __at(0x0F7A) __sfr ERDPTL
;
1257 extern __at(0x0F7B) __sfr ERDPTH
;
1259 //==============================================================================
1262 extern __at(0x0F7C) __sfr BAUDCON2
;
1275 unsigned ABDOVF
: 1;
1280 unsigned ABDEN2
: 1;
1283 unsigned BRG162
: 1;
1285 unsigned RXDTP2
: 1;
1287 unsigned ABDOVF2
: 1;
1296 unsigned TXCKP2
: 1;
1298 unsigned RCIDL2
: 1;
1303 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits
;
1305 #define _BAUDCON2_ABDEN 0x01
1306 #define _BAUDCON2_ABDEN2 0x01
1307 #define _BAUDCON2_WUE 0x02
1308 #define _BAUDCON2_WUE2 0x02
1309 #define _BAUDCON2_BRG16 0x08
1310 #define _BAUDCON2_BRG162 0x08
1311 #define _BAUDCON2_TXCKP 0x10
1312 #define _BAUDCON2_SCKP 0x10
1313 #define _BAUDCON2_TXCKP2 0x10
1314 #define _BAUDCON2_RXDTP 0x20
1315 #define _BAUDCON2_RXDTP2 0x20
1316 #define _BAUDCON2_RCIDL 0x40
1317 #define _BAUDCON2_RCMT 0x40
1318 #define _BAUDCON2_RCIDL2 0x40
1319 #define _BAUDCON2_ABDOVF 0x80
1320 #define _BAUDCON2_ABDOVF2 0x80
1322 //==============================================================================
1325 //==============================================================================
1328 extern __at(0x0F7C) __sfr BAUDCTL2
;
1341 unsigned ABDOVF
: 1;
1346 unsigned ABDEN2
: 1;
1349 unsigned BRG162
: 1;
1351 unsigned RXDTP2
: 1;
1353 unsigned ABDOVF2
: 1;
1362 unsigned TXCKP2
: 1;
1364 unsigned RCIDL2
: 1;
1369 extern __at(0x0F7C) volatile __BAUDCTL2bits_t BAUDCTL2bits
;
1371 #define _BAUDCTL2_ABDEN 0x01
1372 #define _BAUDCTL2_ABDEN2 0x01
1373 #define _BAUDCTL2_WUE 0x02
1374 #define _BAUDCTL2_WUE2 0x02
1375 #define _BAUDCTL2_BRG16 0x08
1376 #define _BAUDCTL2_BRG162 0x08
1377 #define _BAUDCTL2_TXCKP 0x10
1378 #define _BAUDCTL2_SCKP 0x10
1379 #define _BAUDCTL2_TXCKP2 0x10
1380 #define _BAUDCTL2_RXDTP 0x20
1381 #define _BAUDCTL2_RXDTP2 0x20
1382 #define _BAUDCTL2_RCIDL 0x40
1383 #define _BAUDCTL2_RCMT 0x40
1384 #define _BAUDCTL2_RCIDL2 0x40
1385 #define _BAUDCTL2_ABDOVF 0x80
1386 #define _BAUDCTL2_ABDOVF2 0x80
1388 //==============================================================================
1390 extern __at(0x0F7D) __sfr SPBRGH2
;
1392 //==============================================================================
1395 extern __at(0x0F7E) __sfr BAUDCON
;
1408 unsigned ABDOVF
: 1;
1424 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits
;
1434 #define _ABDOVF 0x80
1436 //==============================================================================
1439 //==============================================================================
1442 extern __at(0x0F7E) __sfr BAUDCON1
;
1455 unsigned ABDOVF
: 1;
1471 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits
;
1473 #define _BAUDCON1_ABDEN 0x01
1474 #define _BAUDCON1_WUE 0x02
1475 #define _BAUDCON1_BRG16 0x08
1476 #define _BAUDCON1_TXCKP 0x10
1477 #define _BAUDCON1_SCKP 0x10
1478 #define _BAUDCON1_RXDTP 0x20
1479 #define _BAUDCON1_RCIDL 0x40
1480 #define _BAUDCON1_RCMT 0x40
1481 #define _BAUDCON1_ABDOVF 0x80
1483 //==============================================================================
1486 //==============================================================================
1489 extern __at(0x0F7E) __sfr BAUDCTL
;
1502 unsigned ABDOVF
: 1;
1518 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits
;
1520 #define _BAUDCTL_ABDEN 0x01
1521 #define _BAUDCTL_WUE 0x02
1522 #define _BAUDCTL_BRG16 0x08
1523 #define _BAUDCTL_TXCKP 0x10
1524 #define _BAUDCTL_SCKP 0x10
1525 #define _BAUDCTL_RXDTP 0x20
1526 #define _BAUDCTL_RCIDL 0x40
1527 #define _BAUDCTL_RCMT 0x40
1528 #define _BAUDCTL_ABDOVF 0x80
1530 //==============================================================================
1533 //==============================================================================
1536 extern __at(0x0F7E) __sfr BAUDCTL1
;
1549 unsigned ABDOVF
: 1;
1565 extern __at(0x0F7E) volatile __BAUDCTL1bits_t BAUDCTL1bits
;
1567 #define _BAUDCTL1_ABDEN 0x01
1568 #define _BAUDCTL1_WUE 0x02
1569 #define _BAUDCTL1_BRG16 0x08
1570 #define _BAUDCTL1_TXCKP 0x10
1571 #define _BAUDCTL1_SCKP 0x10
1572 #define _BAUDCTL1_RXDTP 0x20
1573 #define _BAUDCTL1_RCIDL 0x40
1574 #define _BAUDCTL1_RCMT 0x40
1575 #define _BAUDCTL1_ABDOVF 0x80
1577 //==============================================================================
1579 extern __at(0x0F7F) __sfr SPBRGH
;
1580 extern __at(0x0F7F) __sfr SPBRGH1
;
1582 //==============================================================================
1585 extern __at(0x0F80) __sfr PORTA
;
1632 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits
;
1634 #define _PORTA_RA0 0x01
1635 #define _PORTA_AN0 0x01
1636 #define _PORTA_LEDA 0x01
1637 #define _PORTA_RA1 0x02
1638 #define _PORTA_AN1 0x02
1639 #define _PORTA_LEDB 0x02
1640 #define _PORTA_RA2 0x04
1641 #define _PORTA_AN2 0x04
1642 #define _PORTA_VREFM 0x04
1643 #define _PORTA_RA3 0x08
1644 #define _PORTA_AN3 0x08
1645 #define _PORTA_VREFP 0x08
1646 #define _PORTA_RA4 0x10
1647 #define _PORTA_T0CKI 0x10
1648 #define _PORTA_RA5 0x20
1649 #define _PORTA_AN4 0x20
1650 #define _PORTA_RJPU 0x80
1652 //==============================================================================
1655 //==============================================================================
1658 extern __at(0x0F81) __sfr PORTB
;
1711 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits
;
1713 #define _PORTB_RB0 0x01
1714 #define _PORTB_INT0 0x01
1715 #define _PORTB_FLT0 0x01
1716 #define _PORTB_RB1 0x02
1717 #define _PORTB_INT1 0x02
1718 #define _PORTB_RB2 0x04
1719 #define _PORTB_INT2 0x04
1720 #define _PORTB_RB3 0x08
1721 #define _PORTB_INT3 0x08
1722 #define _PORTB_RB4 0x10
1723 #define _PORTB_KBI0 0x10
1724 #define _PORTB_RB5 0x20
1725 #define _PORTB_KBI1 0x20
1726 #define _PORTB_RB6 0x40
1727 #define _PORTB_KBI2 0x40
1728 #define _PORTB_PGC 0x40
1729 #define _PORTB_RB7 0x80
1730 #define _PORTB_KBI3 0x80
1731 #define _PORTB_PGD 0x80
1733 //==============================================================================
1736 //==============================================================================
1739 extern __at(0x0F82) __sfr PORTC
;
1769 unsigned T13CKI
: 1;
1804 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits
;
1806 #define _PORTC_RC0 0x01
1807 #define _PORTC_T1OSO 0x01
1808 #define _PORTC_T13CKI 0x01
1809 #define _PORTC_RC1 0x02
1810 #define _PORTC_T1OSI 0x02
1811 #define _PORTC_CCP2 0x02
1812 #define _PORTC_ECCP2 0x02
1813 #define _PORTC_RC2 0x04
1814 #define _PORTC_CCP1 0x04
1815 #define _PORTC_ECCP1 0x04
1816 #define _PORTC_RC3 0x08
1817 #define _PORTC_SCK 0x08
1818 #define _PORTC_SCL 0x08
1819 #define _PORTC_SCK1 0x08
1820 #define _PORTC_SCL1 0x08
1821 #define _PORTC_RC4 0x10
1822 #define _PORTC_SDI 0x10
1823 #define _PORTC_SDA 0x10
1824 #define _PORTC_SDI1 0x10
1825 #define _PORTC_SDA1 0x10
1826 #define _PORTC_RC5 0x20
1827 #define _PORTC_SDO 0x20
1828 #define _PORTC_SDO1 0x20
1829 #define _PORTC_RC6 0x40
1830 #define _PORTC_TX 0x40
1831 #define _PORTC_CK 0x40
1832 #define _PORTC_TX1 0x40
1833 #define _PORTC_CK1 0x40
1834 #define _PORTC_RC7 0x80
1835 #define _PORTC_RX 0x80
1836 #define _PORTC_RX1 0x80
1837 #define _PORTC_DT1 0x80
1839 //==============================================================================
1842 //==============================================================================
1845 extern __at(0x0F83) __sfr PORTD
;
1868 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits
;
1870 #define _PORTD_RD0 0x01
1871 #define _PORTD_RD1 0x02
1872 #define _PORTD_RD2 0x04
1874 //==============================================================================
1877 //==============================================================================
1880 extern __at(0x0F84) __sfr PORTE
;
1921 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits
;
1923 #define _PORTE_RE0 0x01
1924 #define _PORTE_RE1 0x02
1925 #define _PORTE_RE2 0x04
1926 #define _PORTE_RE3 0x08
1927 #define _PORTE_RE4 0x10
1928 #define _PORTE_RE5 0x20
1929 #define _PORTE_RE6 0x40
1930 #define _PORTE_RE7 0x80
1931 #define _PORTE_CCP2 0x80
1932 #define _PORTE_ECCP2 0x80
1934 //==============================================================================
1937 //==============================================================================
1940 extern __at(0x0F85) __sfr PORTF
;
1977 unsigned NOT_SS
: 1;
2001 unsigned NOT_SS1
: 1;
2005 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits
;
2007 #define _PORTF_RF1 0x02
2008 #define _PORTF_AN6 0x02
2009 #define _PORTF_RF2 0x04
2010 #define _PORTF_AN7 0x04
2011 #define _PORTF_RF3 0x08
2012 #define _PORTF_AN8 0x08
2013 #define _PORTF_RF4 0x10
2014 #define _PORTF_AN9 0x10
2015 #define _PORTF_RF5 0x20
2016 #define _PORTF_AN10 0x20
2017 #define _PORTF_CVREF 0x20
2018 #define _PORTF_RF6 0x40
2019 #define _PORTF_AN11 0x40
2020 #define _PORTF_RF7 0x80
2021 #define _PORTF_SS 0x80
2022 #define _PORTF_NOT_SS 0x80
2023 #define _PORTF_SS1 0x80
2024 #define _PORTF_NOT_SS1 0x80
2026 //==============================================================================
2029 //==============================================================================
2032 extern __at(0x0F86) __sfr PORTG
;
2079 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits
;
2081 #define _PORTG_RG0 0x01
2082 #define _PORTG_CCP3 0x01
2083 #define _PORTG_ECCP3 0x01
2084 #define _PORTG_RG1 0x02
2085 #define _PORTG_TX2 0x02
2086 #define _PORTG_CK2 0x02
2087 #define _PORTG_RG2 0x04
2088 #define _PORTG_RX2 0x04
2089 #define _PORTG_DT2 0x04
2090 #define _PORTG_RG3 0x08
2091 #define _PORTG_CCP4 0x08
2092 #define _PORTG_RG4 0x10
2093 #define _PORTG_CCP5 0x10
2095 //==============================================================================
2098 //==============================================================================
2101 extern __at(0x0F87) __sfr PORTH
;
2130 extern __at(0x0F87) volatile __PORTHbits_t PORTHbits
;
2132 #define _PORTH_RH0 0x01
2133 #define _PORTH_RH1 0x02
2134 #define _PORTH_RH2 0x04
2135 #define _PORTH_RH3 0x08
2136 #define _PORTH_RH4 0x10
2137 #define _PORTH_AN12 0x10
2138 #define _PORTH_RH5 0x20
2139 #define _PORTH_AN13 0x20
2140 #define _PORTH_RH6 0x40
2141 #define _PORTH_AN14 0x40
2142 #define _PORTH_RH7 0x80
2143 #define _PORTH_AN15 0x80
2145 //==============================================================================
2148 //==============================================================================
2151 extern __at(0x0F88) __sfr PORTJ
;
2165 extern __at(0x0F88) volatile __PORTJbits_t PORTJbits
;
2167 #define _PORTJ_RJ4 0x10
2168 #define _PORTJ_RJ5 0x20
2170 //==============================================================================
2173 //==============================================================================
2176 extern __at(0x0F89) __sfr LATA
;
2199 extern __at(0x0F89) volatile __LATAbits_t LATAbits
;
2210 //==============================================================================
2213 //==============================================================================
2216 extern __at(0x0F8A) __sfr LATB
;
2230 extern __at(0x0F8A) volatile __LATBbits_t LATBbits
;
2241 //==============================================================================
2244 //==============================================================================
2247 extern __at(0x0F8B) __sfr LATC
;
2261 extern __at(0x0F8B) volatile __LATCbits_t LATCbits
;
2272 //==============================================================================
2275 //==============================================================================
2278 extern __at(0x0F8C) __sfr LATD
;
2301 extern __at(0x0F8C) volatile __LATDbits_t LATDbits
;
2307 //==============================================================================
2310 //==============================================================================
2313 extern __at(0x0F8D) __sfr LATE
;
2327 extern __at(0x0F8D) volatile __LATEbits_t LATEbits
;
2338 //==============================================================================
2341 //==============================================================================
2344 extern __at(0x0F8E) __sfr LATF
;
2358 extern __at(0x0F8E) volatile __LATFbits_t LATFbits
;
2368 //==============================================================================
2371 //==============================================================================
2374 extern __at(0x0F8F) __sfr LATG
;
2397 extern __at(0x0F8F) volatile __LATGbits_t LATGbits
;
2405 //==============================================================================
2408 //==============================================================================
2411 extern __at(0x0F90) __sfr LATH
;
2425 extern __at(0x0F90) volatile __LATHbits_t LATHbits
;
2436 //==============================================================================
2439 //==============================================================================
2442 extern __at(0x0F91) __sfr LATJ
;
2456 extern __at(0x0F91) volatile __LATJbits_t LATJbits
;
2461 //==============================================================================
2464 //==============================================================================
2467 extern __at(0x0F92) __sfr DDRA
;
2473 unsigned TRISA0
: 1;
2474 unsigned TRISA1
: 1;
2475 unsigned TRISA2
: 1;
2476 unsigned TRISA3
: 1;
2477 unsigned TRISA4
: 1;
2478 unsigned TRISA5
: 1;
2508 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits
;
2510 #define _TRISA0 0x01
2512 #define _TRISA1 0x02
2514 #define _TRISA2 0x04
2516 #define _TRISA3 0x08
2518 #define _TRISA4 0x10
2520 #define _TRISA5 0x20
2523 //==============================================================================
2526 //==============================================================================
2529 extern __at(0x0F92) __sfr TRISA
;
2535 unsigned TRISA0
: 1;
2536 unsigned TRISA1
: 1;
2537 unsigned TRISA2
: 1;
2538 unsigned TRISA3
: 1;
2539 unsigned TRISA4
: 1;
2540 unsigned TRISA5
: 1;
2570 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits
;
2572 #define _TRISA_TRISA0 0x01
2573 #define _TRISA_RA0 0x01
2574 #define _TRISA_TRISA1 0x02
2575 #define _TRISA_RA1 0x02
2576 #define _TRISA_TRISA2 0x04
2577 #define _TRISA_RA2 0x04
2578 #define _TRISA_TRISA3 0x08
2579 #define _TRISA_RA3 0x08
2580 #define _TRISA_TRISA4 0x10
2581 #define _TRISA_RA4 0x10
2582 #define _TRISA_TRISA5 0x20
2583 #define _TRISA_RA5 0x20
2585 //==============================================================================
2588 //==============================================================================
2591 extern __at(0x0F93) __sfr DDRB
;
2597 unsigned TRISB0
: 1;
2598 unsigned TRISB1
: 1;
2599 unsigned TRISB2
: 1;
2600 unsigned TRISB3
: 1;
2601 unsigned TRISB4
: 1;
2602 unsigned TRISB5
: 1;
2603 unsigned TRISB6
: 1;
2604 unsigned TRISB7
: 1;
2620 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits
;
2622 #define _TRISB0 0x01
2624 #define _TRISB1 0x02
2626 #define _TRISB2 0x04
2628 #define _TRISB3 0x08
2630 #define _TRISB4 0x10
2632 #define _TRISB5 0x20
2634 #define _TRISB6 0x40
2636 #define _TRISB7 0x80
2639 //==============================================================================
2642 //==============================================================================
2645 extern __at(0x0F93) __sfr TRISB
;
2651 unsigned TRISB0
: 1;
2652 unsigned TRISB1
: 1;
2653 unsigned TRISB2
: 1;
2654 unsigned TRISB3
: 1;
2655 unsigned TRISB4
: 1;
2656 unsigned TRISB5
: 1;
2657 unsigned TRISB6
: 1;
2658 unsigned TRISB7
: 1;
2674 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits
;
2676 #define _TRISB_TRISB0 0x01
2677 #define _TRISB_RB0 0x01
2678 #define _TRISB_TRISB1 0x02
2679 #define _TRISB_RB1 0x02
2680 #define _TRISB_TRISB2 0x04
2681 #define _TRISB_RB2 0x04
2682 #define _TRISB_TRISB3 0x08
2683 #define _TRISB_RB3 0x08
2684 #define _TRISB_TRISB4 0x10
2685 #define _TRISB_RB4 0x10
2686 #define _TRISB_TRISB5 0x20
2687 #define _TRISB_RB5 0x20
2688 #define _TRISB_TRISB6 0x40
2689 #define _TRISB_RB6 0x40
2690 #define _TRISB_TRISB7 0x80
2691 #define _TRISB_RB7 0x80
2693 //==============================================================================
2696 //==============================================================================
2699 extern __at(0x0F94) __sfr DDRC
;
2705 unsigned TRISC0
: 1;
2706 unsigned TRISC1
: 1;
2707 unsigned TRISC2
: 1;
2708 unsigned TRISC3
: 1;
2709 unsigned TRISC4
: 1;
2710 unsigned TRISC5
: 1;
2711 unsigned TRISC6
: 1;
2712 unsigned TRISC7
: 1;
2728 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits
;
2730 #define _TRISC0 0x01
2732 #define _TRISC1 0x02
2734 #define _TRISC2 0x04
2736 #define _TRISC3 0x08
2738 #define _TRISC4 0x10
2740 #define _TRISC5 0x20
2742 #define _TRISC6 0x40
2744 #define _TRISC7 0x80
2747 //==============================================================================
2750 //==============================================================================
2753 extern __at(0x0F94) __sfr TRISC
;
2759 unsigned TRISC0
: 1;
2760 unsigned TRISC1
: 1;
2761 unsigned TRISC2
: 1;
2762 unsigned TRISC3
: 1;
2763 unsigned TRISC4
: 1;
2764 unsigned TRISC5
: 1;
2765 unsigned TRISC6
: 1;
2766 unsigned TRISC7
: 1;
2782 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits
;
2784 #define _TRISC_TRISC0 0x01
2785 #define _TRISC_RC0 0x01
2786 #define _TRISC_TRISC1 0x02
2787 #define _TRISC_RC1 0x02
2788 #define _TRISC_TRISC2 0x04
2789 #define _TRISC_RC2 0x04
2790 #define _TRISC_TRISC3 0x08
2791 #define _TRISC_RC3 0x08
2792 #define _TRISC_TRISC4 0x10
2793 #define _TRISC_RC4 0x10
2794 #define _TRISC_TRISC5 0x20
2795 #define _TRISC_RC5 0x20
2796 #define _TRISC_TRISC6 0x40
2797 #define _TRISC_RC6 0x40
2798 #define _TRISC_TRISC7 0x80
2799 #define _TRISC_RC7 0x80
2801 //==============================================================================
2804 //==============================================================================
2807 extern __at(0x0F95) __sfr DDRD
;
2813 unsigned TRISD0
: 1;
2814 unsigned TRISD1
: 1;
2815 unsigned TRISD2
: 1;
2848 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits
;
2850 #define _TRISD0 0x01
2852 #define _TRISD1 0x02
2854 #define _TRISD2 0x04
2857 //==============================================================================
2860 //==============================================================================
2863 extern __at(0x0F95) __sfr TRISD
;
2869 unsigned TRISD0
: 1;
2870 unsigned TRISD1
: 1;
2871 unsigned TRISD2
: 1;
2904 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits
;
2906 #define _TRISD_TRISD0 0x01
2907 #define _TRISD_RD0 0x01
2908 #define _TRISD_TRISD1 0x02
2909 #define _TRISD_RD1 0x02
2910 #define _TRISD_TRISD2 0x04
2911 #define _TRISD_RD2 0x04
2913 //==============================================================================
2916 //==============================================================================
2919 extern __at(0x0F96) __sfr DDRE
;
2925 unsigned TRISE0
: 1;
2926 unsigned TRISE1
: 1;
2927 unsigned TRISE2
: 1;
2928 unsigned TRISE3
: 1;
2929 unsigned TRISE4
: 1;
2930 unsigned TRISE5
: 1;
2931 unsigned TRISE6
: 1;
2932 unsigned TRISE7
: 1;
2948 extern __at(0x0F96) volatile __DDREbits_t DDREbits
;
2950 #define _TRISE0 0x01
2952 #define _TRISE1 0x02
2954 #define _TRISE2 0x04
2956 #define _TRISE3 0x08
2958 #define _TRISE4 0x10
2960 #define _TRISE5 0x20
2962 #define _TRISE6 0x40
2964 #define _TRISE7 0x80
2967 //==============================================================================
2970 //==============================================================================
2973 extern __at(0x0F96) __sfr TRISE
;
2979 unsigned TRISE0
: 1;
2980 unsigned TRISE1
: 1;
2981 unsigned TRISE2
: 1;
2982 unsigned TRISE3
: 1;
2983 unsigned TRISE4
: 1;
2984 unsigned TRISE5
: 1;
2985 unsigned TRISE6
: 1;
2986 unsigned TRISE7
: 1;
3002 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits
;
3004 #define _TRISE_TRISE0 0x01
3005 #define _TRISE_RE0 0x01
3006 #define _TRISE_TRISE1 0x02
3007 #define _TRISE_RE1 0x02
3008 #define _TRISE_TRISE2 0x04
3009 #define _TRISE_RE2 0x04
3010 #define _TRISE_TRISE3 0x08
3011 #define _TRISE_RE3 0x08
3012 #define _TRISE_TRISE4 0x10
3013 #define _TRISE_RE4 0x10
3014 #define _TRISE_TRISE5 0x20
3015 #define _TRISE_RE5 0x20
3016 #define _TRISE_TRISE6 0x40
3017 #define _TRISE_RE6 0x40
3018 #define _TRISE_TRISE7 0x80
3019 #define _TRISE_RE7 0x80
3021 //==============================================================================
3024 //==============================================================================
3027 extern __at(0x0F97) __sfr DDRF
;
3034 unsigned TRISF1
: 1;
3035 unsigned TRISF2
: 1;
3036 unsigned TRISF3
: 1;
3037 unsigned TRISF4
: 1;
3038 unsigned TRISF5
: 1;
3039 unsigned TRISF6
: 1;
3040 unsigned TRISF7
: 1;
3056 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits
;
3058 #define _TRISF1 0x02
3060 #define _TRISF2 0x04
3062 #define _TRISF3 0x08
3064 #define _TRISF4 0x10
3066 #define _TRISF5 0x20
3068 #define _TRISF6 0x40
3070 #define _TRISF7 0x80
3073 //==============================================================================
3076 //==============================================================================
3079 extern __at(0x0F97) __sfr TRISF
;
3086 unsigned TRISF1
: 1;
3087 unsigned TRISF2
: 1;
3088 unsigned TRISF3
: 1;
3089 unsigned TRISF4
: 1;
3090 unsigned TRISF5
: 1;
3091 unsigned TRISF6
: 1;
3092 unsigned TRISF7
: 1;
3108 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits
;
3110 #define _TRISF_TRISF1 0x02
3111 #define _TRISF_RF1 0x02
3112 #define _TRISF_TRISF2 0x04
3113 #define _TRISF_RF2 0x04
3114 #define _TRISF_TRISF3 0x08
3115 #define _TRISF_RF3 0x08
3116 #define _TRISF_TRISF4 0x10
3117 #define _TRISF_RF4 0x10
3118 #define _TRISF_TRISF5 0x20
3119 #define _TRISF_RF5 0x20
3120 #define _TRISF_TRISF6 0x40
3121 #define _TRISF_RF6 0x40
3122 #define _TRISF_TRISF7 0x80
3123 #define _TRISF_RF7 0x80
3125 //==============================================================================
3128 //==============================================================================
3131 extern __at(0x0F98) __sfr DDRG
;
3137 unsigned TRISG0
: 1;
3138 unsigned TRISG1
: 1;
3139 unsigned TRISG2
: 1;
3140 unsigned TRISG3
: 1;
3141 unsigned TRISG4
: 1;
3172 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits
;
3174 #define _TRISG0 0x01
3176 #define _TRISG1 0x02
3178 #define _TRISG2 0x04
3180 #define _TRISG3 0x08
3182 #define _TRISG4 0x10
3185 //==============================================================================
3188 //==============================================================================
3191 extern __at(0x0F98) __sfr TRISG
;
3197 unsigned TRISG0
: 1;
3198 unsigned TRISG1
: 1;
3199 unsigned TRISG2
: 1;
3200 unsigned TRISG3
: 1;
3201 unsigned TRISG4
: 1;
3232 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits
;
3234 #define _TRISG_TRISG0 0x01
3235 #define _TRISG_RG0 0x01
3236 #define _TRISG_TRISG1 0x02
3237 #define _TRISG_RG1 0x02
3238 #define _TRISG_TRISG2 0x04
3239 #define _TRISG_RG2 0x04
3240 #define _TRISG_TRISG3 0x08
3241 #define _TRISG_RG3 0x08
3242 #define _TRISG_TRISG4 0x10
3243 #define _TRISG_RG4 0x10
3245 //==============================================================================
3248 //==============================================================================
3251 extern __at(0x0F99) __sfr DDRH
;
3257 unsigned TRISH0
: 1;
3258 unsigned TRISH1
: 1;
3259 unsigned TRISH2
: 1;
3260 unsigned TRISH3
: 1;
3261 unsigned TRISH4
: 1;
3262 unsigned TRISH5
: 1;
3263 unsigned TRISH6
: 1;
3264 unsigned TRISH7
: 1;
3280 extern __at(0x0F99) volatile __DDRHbits_t DDRHbits
;
3282 #define _TRISH0 0x01
3284 #define _TRISH1 0x02
3286 #define _TRISH2 0x04
3288 #define _TRISH3 0x08
3290 #define _TRISH4 0x10
3292 #define _TRISH5 0x20
3294 #define _TRISH6 0x40
3296 #define _TRISH7 0x80
3299 //==============================================================================
3302 //==============================================================================
3305 extern __at(0x0F99) __sfr TRISH
;
3311 unsigned TRISH0
: 1;
3312 unsigned TRISH1
: 1;
3313 unsigned TRISH2
: 1;
3314 unsigned TRISH3
: 1;
3315 unsigned TRISH4
: 1;
3316 unsigned TRISH5
: 1;
3317 unsigned TRISH6
: 1;
3318 unsigned TRISH7
: 1;
3334 extern __at(0x0F99) volatile __TRISHbits_t TRISHbits
;
3336 #define _TRISH_TRISH0 0x01
3337 #define _TRISH_RH0 0x01
3338 #define _TRISH_TRISH1 0x02
3339 #define _TRISH_RH1 0x02
3340 #define _TRISH_TRISH2 0x04
3341 #define _TRISH_RH2 0x04
3342 #define _TRISH_TRISH3 0x08
3343 #define _TRISH_RH3 0x08
3344 #define _TRISH_TRISH4 0x10
3345 #define _TRISH_RH4 0x10
3346 #define _TRISH_TRISH5 0x20
3347 #define _TRISH_RH5 0x20
3348 #define _TRISH_TRISH6 0x40
3349 #define _TRISH_RH6 0x40
3350 #define _TRISH_TRISH7 0x80
3351 #define _TRISH_RH7 0x80
3353 //==============================================================================
3356 //==============================================================================
3359 extern __at(0x0F9A) __sfr DDRJ
;
3369 unsigned TRISJ4
: 1;
3370 unsigned TRISJ5
: 1;
3388 extern __at(0x0F9A) volatile __DDRJbits_t DDRJbits
;
3390 #define _TRISJ4 0x10
3392 #define _TRISJ5 0x20
3395 //==============================================================================
3398 //==============================================================================
3401 extern __at(0x0F9A) __sfr TRISJ
;
3411 unsigned TRISJ4
: 1;
3412 unsigned TRISJ5
: 1;
3430 extern __at(0x0F9A) volatile __TRISJbits_t TRISJbits
;
3432 #define _TRISJ_TRISJ4 0x10
3433 #define _TRISJ_RJ4 0x10
3434 #define _TRISJ_TRISJ5 0x20
3435 #define _TRISJ_RJ5 0x20
3437 //==============================================================================
3440 //==============================================================================
3443 extern __at(0x0F9B) __sfr OSCTUNE
;
3457 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits
;
3464 //==============================================================================
3467 //==============================================================================
3470 extern __at(0x0F9D) __sfr PIE1
;
3476 unsigned TMR1IE
: 1;
3477 unsigned TMR2IE
: 1;
3478 unsigned CCP1IE
: 1;
3479 unsigned SSP1IE
: 1;
3499 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits
;
3501 #define _PIE1_TMR1IE 0x01
3502 #define _PIE1_TMR2IE 0x02
3503 #define _PIE1_CCP1IE 0x04
3504 #define _PIE1_SSP1IE 0x08
3505 #define _PIE1_SSPIE 0x08
3506 #define _PIE1_TX1IE 0x10
3507 #define _PIE1_TXIE 0x10
3508 #define _PIE1_RC1IE 0x20
3509 #define _PIE1_RCIE 0x20
3510 #define _PIE1_ADIE 0x40
3512 //==============================================================================
3515 //==============================================================================
3518 extern __at(0x0F9E) __sfr PIR1
;
3524 unsigned TMR1IF
: 1;
3525 unsigned TMR2IF
: 1;
3526 unsigned CCP1IF
: 1;
3527 unsigned SSP1IF
: 1;
3547 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits
;
3549 #define _PIR1_TMR1IF 0x01
3550 #define _PIR1_TMR2IF 0x02
3551 #define _PIR1_CCP1IF 0x04
3552 #define _PIR1_SSP1IF 0x08
3553 #define _PIR1_SSPIF 0x08
3554 #define _PIR1_TX1IF 0x10
3555 #define _PIR1_TXIF 0x10
3556 #define _PIR1_RC1IF 0x20
3557 #define _PIR1_RCIF 0x20
3558 #define _PIR1_ADIF 0x40
3560 //==============================================================================
3563 //==============================================================================
3566 extern __at(0x0F9F) __sfr IPR1
;
3572 unsigned TMR1IP
: 1;
3573 unsigned TMR2IP
: 1;
3574 unsigned CCP1IP
: 1;
3575 unsigned SSP1IP
: 1;
3595 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits
;
3597 #define _TMR1IP 0x01
3598 #define _TMR2IP 0x02
3599 #define _CCP1IP 0x04
3600 #define _SSP1IP 0x08
3608 //==============================================================================
3611 //==============================================================================
3614 extern __at(0x0FA0) __sfr PIE2
;
3620 unsigned CCP2IE
: 1;
3621 unsigned TMR3IE
: 1;
3623 unsigned BCL1IE
: 1;
3627 unsigned OSCFIE
: 1;
3643 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits
;
3645 #define _CCP2IE 0x01
3646 #define _TMR3IE 0x02
3647 #define _BCL1IE 0x08
3651 #define _OSCFIE 0x80
3653 //==============================================================================
3656 //==============================================================================
3659 extern __at(0x0FA1) __sfr PIR2
;
3665 unsigned CCP2IF
: 1;
3666 unsigned TMR3IF
: 1;
3668 unsigned BCL1IF
: 1;
3672 unsigned OSCFIF
: 1;
3688 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits
;
3690 #define _CCP2IF 0x01
3691 #define _TMR3IF 0x02
3692 #define _BCL1IF 0x08
3696 #define _OSCFIF 0x80
3698 //==============================================================================
3701 //==============================================================================
3704 extern __at(0x0FA2) __sfr IPR2
;
3710 unsigned CCP2IP
: 1;
3711 unsigned TMR3IP
: 1;
3713 unsigned BCL1IP
: 1;
3717 unsigned OSCFIP
: 1;
3733 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits
;
3735 #define _CCP2IP 0x01
3736 #define _TMR3IP 0x02
3737 #define _BCL1IP 0x08
3741 #define _OSCFIP 0x80
3743 //==============================================================================
3746 //==============================================================================
3749 extern __at(0x0FA3) __sfr PIE3
;
3753 unsigned CCP3IE
: 1;
3754 unsigned CCP4IE
: 1;
3755 unsigned CCP5IE
: 1;
3756 unsigned TMR4IE
: 1;
3763 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits
;
3765 #define _CCP3IE 0x01
3766 #define _CCP4IE 0x02
3767 #define _CCP5IE 0x04
3768 #define _TMR4IE 0x08
3772 //==============================================================================
3775 //==============================================================================
3778 extern __at(0x0FA4) __sfr PIR3
;
3782 unsigned CCP3IF
: 1;
3783 unsigned CCP4IF
: 1;
3784 unsigned CCP5IF
: 1;
3785 unsigned TMR4IF
: 1;
3792 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits
;
3794 #define _CCP3IF 0x01
3795 #define _CCP4IF 0x02
3796 #define _CCP5IF 0x04
3797 #define _TMR4IF 0x08
3801 //==============================================================================
3804 //==============================================================================
3807 extern __at(0x0FA5) __sfr IPR3
;
3811 unsigned CCP3IP
: 1;
3812 unsigned CCP4IP
: 1;
3813 unsigned CCP5IP
: 1;
3814 unsigned TMR4IP
: 1;
3821 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits
;
3823 #define _CCP3IP 0x01
3824 #define _CCP4IP 0x02
3825 #define _CCP5IP 0x04
3826 #define _TMR4IP 0x08
3830 //==============================================================================
3833 //==============================================================================
3836 extern __at(0x0FA6) __sfr EECON1
;
3850 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits
;
3857 //==============================================================================
3859 extern __at(0x0FA7) __sfr EECON2
;
3861 //==============================================================================
3864 extern __at(0x0FAB) __sfr RCSTA
;
3885 unsigned ADDEN1
: 1;
3900 unsigned NOT_RC8
: 1;
3929 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits
;
3939 #define _ADDEN1 0x08
3946 #define _NOT_RC8 0x40
3952 //==============================================================================
3955 //==============================================================================
3958 extern __at(0x0FAB) __sfr RCSTA1
;
3979 unsigned ADDEN1
: 1;
3994 unsigned NOT_RC8
: 1;
4023 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits
;
4025 #define _RCSTA1_RX9D 0x01
4026 #define _RCSTA1_RCD8 0x01
4027 #define _RCSTA1_RX9D1 0x01
4028 #define _RCSTA1_OERR 0x02
4029 #define _RCSTA1_OERR1 0x02
4030 #define _RCSTA1_FERR 0x04
4031 #define _RCSTA1_FERR1 0x04
4032 #define _RCSTA1_ADDEN 0x08
4033 #define _RCSTA1_ADDEN1 0x08
4034 #define _RCSTA1_CREN 0x10
4035 #define _RCSTA1_CREN1 0x10
4036 #define _RCSTA1_SREN 0x20
4037 #define _RCSTA1_SREN1 0x20
4038 #define _RCSTA1_RX9 0x40
4039 #define _RCSTA1_RC9 0x40
4040 #define _RCSTA1_NOT_RC8 0x40
4041 #define _RCSTA1_RC8_9 0x40
4042 #define _RCSTA1_RX91 0x40
4043 #define _RCSTA1_SPEN 0x80
4044 #define _RCSTA1_SPEN1 0x80
4046 //==============================================================================
4049 //==============================================================================
4052 extern __at(0x0FAC) __sfr TXSTA
;
4073 unsigned SENDB1
: 1;
4088 unsigned NOT_TX8
: 1;
4105 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits
;
4115 #define _SENDB1 0x08
4122 #define _NOT_TX8 0x40
4127 //==============================================================================
4130 //==============================================================================
4133 extern __at(0x0FAC) __sfr TXSTA1
;
4154 unsigned SENDB1
: 1;
4169 unsigned NOT_TX8
: 1;
4186 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits
;
4188 #define _TXSTA1_TX9D 0x01
4189 #define _TXSTA1_TXD8 0x01
4190 #define _TXSTA1_TX9D1 0x01
4191 #define _TXSTA1_TRMT 0x02
4192 #define _TXSTA1_TRMT1 0x02
4193 #define _TXSTA1_BRGH 0x04
4194 #define _TXSTA1_BRGH1 0x04
4195 #define _TXSTA1_SENDB 0x08
4196 #define _TXSTA1_SENDB1 0x08
4197 #define _TXSTA1_SYNC 0x10
4198 #define _TXSTA1_SYNC1 0x10
4199 #define _TXSTA1_TXEN 0x20
4200 #define _TXSTA1_TXEN1 0x20
4201 #define _TXSTA1_TX9 0x40
4202 #define _TXSTA1_TX8_9 0x40
4203 #define _TXSTA1_NOT_TX8 0x40
4204 #define _TXSTA1_TX91 0x40
4205 #define _TXSTA1_CSRC 0x80
4206 #define _TXSTA1_CSRC1 0x80
4208 //==============================================================================
4210 extern __at(0x0FAD) __sfr TXREG
;
4211 extern __at(0x0FAD) __sfr TXREG1
;
4212 extern __at(0x0FAE) __sfr RCREG
;
4213 extern __at(0x0FAE) __sfr RCREG1
;
4214 extern __at(0x0FAF) __sfr SPBRG
;
4215 extern __at(0x0FAF) __sfr SPBRG1
;
4217 //==============================================================================
4220 extern __at(0x0FB1) __sfr T3CON
;
4226 unsigned TMR3ON
: 1;
4227 unsigned TMR3CS
: 1;
4228 unsigned NOT_T3SYNC
: 1;
4229 unsigned T3CCP1
: 1;
4230 unsigned T3CKPS0
: 1;
4231 unsigned T3CKPS1
: 1;
4232 unsigned T3CCP2
: 1;
4240 unsigned T3SYNC
: 1;
4252 unsigned T3INSYNC
: 1;
4263 unsigned T3CKPS
: 2;
4268 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits
;
4270 #define _T3CON_TMR3ON 0x01
4271 #define _T3CON_TMR3CS 0x02
4272 #define _T3CON_NOT_T3SYNC 0x04
4273 #define _T3CON_T3SYNC 0x04
4274 #define _T3CON_T3INSYNC 0x04
4275 #define _T3CON_T3CCP1 0x08
4276 #define _T3CON_T3CKPS0 0x10
4277 #define _T3CON_T3CKPS1 0x20
4278 #define _T3CON_T3CCP2 0x40
4279 #define _T3CON_RD16 0x80
4281 //==============================================================================
4283 extern __at(0x0FB2) __sfr TMR3
;
4284 extern __at(0x0FB2) __sfr TMR3L
;
4285 extern __at(0x0FB3) __sfr TMR3H
;
4287 //==============================================================================
4290 extern __at(0x0FB4) __sfr CMCON
;
4313 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits
;
4324 //==============================================================================
4327 //==============================================================================
4330 extern __at(0x0FB5) __sfr CVRCON
;
4353 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits
;
4364 //==============================================================================
4367 //==============================================================================
4370 extern __at(0x0FB6) __sfr ECCP1AS
;
4376 unsigned PSSBD0
: 1;
4377 unsigned PSSBD1
: 1;
4378 unsigned PSSAC0
: 1;
4379 unsigned PSSAC1
: 1;
4380 unsigned ECCPAS0
: 1;
4381 unsigned ECCPAS1
: 1;
4382 unsigned ECCPAS2
: 1;
4383 unsigned ECCPASE
: 1;
4388 unsigned PSS1BD0
: 1;
4389 unsigned PSS1BD1
: 1;
4390 unsigned PSS1AC0
: 1;
4391 unsigned PSS1AC1
: 1;
4392 unsigned ECCP1AS0
: 1;
4393 unsigned ECCP1AS1
: 1;
4394 unsigned ECCP1AS2
: 1;
4395 unsigned ECCP1ASE
: 1;
4406 unsigned PSS1BD
: 2;
4420 unsigned PSS1AC
: 2;
4427 unsigned ECCP1AS
: 3;
4434 unsigned ECCPAS
: 3;
4439 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits
;
4441 #define _PSSBD0 0x01
4442 #define _PSS1BD0 0x01
4443 #define _PSSBD1 0x02
4444 #define _PSS1BD1 0x02
4445 #define _PSSAC0 0x04
4446 #define _PSS1AC0 0x04
4447 #define _PSSAC1 0x08
4448 #define _PSS1AC1 0x08
4449 #define _ECCPAS0 0x10
4450 #define _ECCP1AS0 0x10
4451 #define _ECCPAS1 0x20
4452 #define _ECCP1AS1 0x20
4453 #define _ECCPAS2 0x40
4454 #define _ECCP1AS2 0x40
4455 #define _ECCPASE 0x80
4456 #define _ECCP1ASE 0x80
4458 //==============================================================================
4461 //==============================================================================
4464 extern __at(0x0FB7) __sfr CCP3CON
;
4470 unsigned CCP3M0
: 1;
4471 unsigned CCP3M1
: 1;
4472 unsigned CCP3M2
: 1;
4473 unsigned CCP3M3
: 1;
4512 extern __at(0x0FB7) volatile __CCP3CONbits_t CCP3CONbits
;
4514 #define _CCP3M0 0x01
4515 #define _CCP3M1 0x02
4516 #define _CCP3M2 0x04
4517 #define _CCP3M3 0x08
4525 //==============================================================================
4528 //==============================================================================
4531 extern __at(0x0FB7) __sfr ECCP3CON
;
4537 unsigned CCP3M0
: 1;
4538 unsigned CCP3M1
: 1;
4539 unsigned CCP3M2
: 1;
4540 unsigned CCP3M3
: 1;
4579 extern __at(0x0FB7) volatile __ECCP3CONbits_t ECCP3CONbits
;
4581 #define _ECCP3CON_CCP3M0 0x01
4582 #define _ECCP3CON_CCP3M1 0x02
4583 #define _ECCP3CON_CCP3M2 0x04
4584 #define _ECCP3CON_CCP3M3 0x08
4585 #define _ECCP3CON_DC3B0 0x10
4586 #define _ECCP3CON_CCP3Y 0x10
4587 #define _ECCP3CON_DC3B1 0x20
4588 #define _ECCP3CON_CCP3X 0x20
4589 #define _ECCP3CON_P3M0 0x40
4590 #define _ECCP3CON_P3M1 0x80
4592 //==============================================================================
4594 extern __at(0x0FB8) __sfr CCPR3
;
4595 extern __at(0x0FB8) __sfr CCPR3L
;
4596 extern __at(0x0FB9) __sfr CCPR3H
;
4598 //==============================================================================
4601 extern __at(0x0FBA) __sfr CCP2CON
;
4607 unsigned CCP2M0
: 1;
4608 unsigned CCP2M1
: 1;
4609 unsigned CCP2M2
: 1;
4610 unsigned CCP2M3
: 1;
4649 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits
;
4651 #define _CCP2M0 0x01
4652 #define _CCP2M1 0x02
4653 #define _CCP2M2 0x04
4654 #define _CCP2M3 0x08
4662 //==============================================================================
4665 //==============================================================================
4668 extern __at(0x0FBA) __sfr ECCP2CON
;
4674 unsigned CCP2M0
: 1;
4675 unsigned CCP2M1
: 1;
4676 unsigned CCP2M2
: 1;
4677 unsigned CCP2M3
: 1;
4716 extern __at(0x0FBA) volatile __ECCP2CONbits_t ECCP2CONbits
;
4718 #define _ECCP2CON_CCP2M0 0x01
4719 #define _ECCP2CON_CCP2M1 0x02
4720 #define _ECCP2CON_CCP2M2 0x04
4721 #define _ECCP2CON_CCP2M3 0x08
4722 #define _ECCP2CON_DC2B0 0x10
4723 #define _ECCP2CON_CCP2Y 0x10
4724 #define _ECCP2CON_DC2B1 0x20
4725 #define _ECCP2CON_CCP2X 0x20
4726 #define _ECCP2CON_P2M0 0x40
4727 #define _ECCP2CON_P2M1 0x80
4729 //==============================================================================
4731 extern __at(0x0FBB) __sfr CCPR2
;
4732 extern __at(0x0FBB) __sfr CCPR2L
;
4733 extern __at(0x0FBC) __sfr CCPR2H
;
4735 //==============================================================================
4738 extern __at(0x0FBD) __sfr CCP1CON
;
4744 unsigned CCP1M0
: 1;
4745 unsigned CCP1M1
: 1;
4746 unsigned CCP1M2
: 1;
4747 unsigned CCP1M3
: 1;
4786 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits
;
4788 #define _CCP1M0 0x01
4789 #define _CCP1M1 0x02
4790 #define _CCP1M2 0x04
4791 #define _CCP1M3 0x08
4799 //==============================================================================
4802 //==============================================================================
4805 extern __at(0x0FBD) __sfr ECCP1CON
;
4811 unsigned CCP1M0
: 1;
4812 unsigned CCP1M1
: 1;
4813 unsigned CCP1M2
: 1;
4814 unsigned CCP1M3
: 1;
4853 extern __at(0x0FBD) volatile __ECCP1CONbits_t ECCP1CONbits
;
4855 #define _ECCP1CON_CCP1M0 0x01
4856 #define _ECCP1CON_CCP1M1 0x02
4857 #define _ECCP1CON_CCP1M2 0x04
4858 #define _ECCP1CON_CCP1M3 0x08
4859 #define _ECCP1CON_DC1B0 0x10
4860 #define _ECCP1CON_CCP1Y 0x10
4861 #define _ECCP1CON_DC1B1 0x20
4862 #define _ECCP1CON_CCP1X 0x20
4863 #define _ECCP1CON_P1M0 0x40
4864 #define _ECCP1CON_P1M1 0x80
4866 //==============================================================================
4868 extern __at(0x0FBE) __sfr CCPR1
;
4869 extern __at(0x0FBE) __sfr CCPR1L
;
4870 extern __at(0x0FBF) __sfr CCPR1H
;
4872 //==============================================================================
4875 extern __at(0x0FC0) __sfr ADCON2
;
4905 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits
;
4915 //==============================================================================
4918 //==============================================================================
4921 extern __at(0x0FC1) __sfr ADCON1
;
4951 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits
;
4960 //==============================================================================
4963 //==============================================================================
4966 extern __at(0x0FC2) __sfr ADCON0
;
4973 unsigned GO_NOT_DONE
: 1;
4997 unsigned GO_DONE
: 1;
5021 unsigned NOT_DONE
: 1;
5038 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits
;
5041 #define _GO_NOT_DONE 0x02
5043 #define _GO_DONE 0x02
5045 #define _NOT_DONE 0x02
5052 //==============================================================================
5054 extern __at(0x0FC3) __sfr ADRES
;
5055 extern __at(0x0FC3) __sfr ADRESL
;
5056 extern __at(0x0FC4) __sfr ADRESH
;
5058 //==============================================================================
5061 extern __at(0x0FC5) __sfr SSP1CON2
;
5073 unsigned ACKSTAT
: 1;
5080 unsigned ADMSK1
: 1;
5081 unsigned ADMSK2
: 1;
5082 unsigned ADMSK3
: 1;
5083 unsigned ADMSK4
: 1;
5084 unsigned ADMSK5
: 1;
5090 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits
;
5094 #define _ADMSK1 0x02
5096 #define _ADMSK2 0x04
5098 #define _ADMSK3 0x08
5100 #define _ADMSK4 0x10
5102 #define _ADMSK5 0x20
5103 #define _ACKSTAT 0x40
5106 //==============================================================================
5109 //==============================================================================
5112 extern __at(0x0FC5) __sfr SSPCON2
;
5124 unsigned ACKSTAT
: 1;
5131 unsigned ADMSK1
: 1;
5132 unsigned ADMSK2
: 1;
5133 unsigned ADMSK3
: 1;
5134 unsigned ADMSK4
: 1;
5135 unsigned ADMSK5
: 1;
5141 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits
;
5143 #define _SSPCON2_SEN 0x01
5144 #define _SSPCON2_RSEN 0x02
5145 #define _SSPCON2_ADMSK1 0x02
5146 #define _SSPCON2_PEN 0x04
5147 #define _SSPCON2_ADMSK2 0x04
5148 #define _SSPCON2_RCEN 0x08
5149 #define _SSPCON2_ADMSK3 0x08
5150 #define _SSPCON2_ACKEN 0x10
5151 #define _SSPCON2_ADMSK4 0x10
5152 #define _SSPCON2_ACKDT 0x20
5153 #define _SSPCON2_ADMSK5 0x20
5154 #define _SSPCON2_ACKSTAT 0x40
5155 #define _SSPCON2_GCEN 0x80
5157 //==============================================================================
5160 //==============================================================================
5163 extern __at(0x0FC6) __sfr SSP1CON1
;
5186 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits
;
5197 //==============================================================================
5200 //==============================================================================
5203 extern __at(0x0FC6) __sfr SSPCON1
;
5226 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits
;
5228 #define _SSPCON1_SSPM0 0x01
5229 #define _SSPCON1_SSPM1 0x02
5230 #define _SSPCON1_SSPM2 0x04
5231 #define _SSPCON1_SSPM3 0x08
5232 #define _SSPCON1_CKP 0x10
5233 #define _SSPCON1_SSPEN 0x20
5234 #define _SSPCON1_SSPOV 0x40
5235 #define _SSPCON1_WCOL 0x80
5237 //==============================================================================
5240 //==============================================================================
5243 extern __at(0x0FC7) __sfr SSP1STAT
;
5251 unsigned R_NOT_W
: 1;
5254 unsigned D_NOT_A
: 1;
5264 unsigned I2C_START
: 1;
5265 unsigned I2C_STOP
: 1;
5275 unsigned I2C_READ
: 1;
5278 unsigned I2C_DAT
: 1;
5299 unsigned NOT_WRITE
: 1;
5302 unsigned NOT_ADDRESS
: 1;
5311 unsigned READ_WRITE
: 1;
5314 unsigned DATA_ADDRESS
: 1;
5332 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits
;
5336 #define _R_NOT_W 0x04
5338 #define _I2C_READ 0x04
5340 #define _NOT_WRITE 0x04
5341 #define _READ_WRITE 0x04
5344 #define _I2C_START 0x08
5346 #define _I2C_STOP 0x10
5347 #define _D_NOT_A 0x20
5349 #define _I2C_DAT 0x20
5351 #define _NOT_ADDRESS 0x20
5352 #define _DATA_ADDRESS 0x20
5357 //==============================================================================
5360 //==============================================================================
5363 extern __at(0x0FC7) __sfr SSPSTAT
;
5371 unsigned R_NOT_W
: 1;
5374 unsigned D_NOT_A
: 1;
5384 unsigned I2C_START
: 1;
5385 unsigned I2C_STOP
: 1;
5395 unsigned I2C_READ
: 1;
5398 unsigned I2C_DAT
: 1;
5419 unsigned NOT_WRITE
: 1;
5422 unsigned NOT_ADDRESS
: 1;
5431 unsigned READ_WRITE
: 1;
5434 unsigned DATA_ADDRESS
: 1;
5452 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits
;
5454 #define _SSPSTAT_BF 0x01
5455 #define _SSPSTAT_UA 0x02
5456 #define _SSPSTAT_R_NOT_W 0x04
5457 #define _SSPSTAT_R_W 0x04
5458 #define _SSPSTAT_I2C_READ 0x04
5459 #define _SSPSTAT_NOT_W 0x04
5460 #define _SSPSTAT_NOT_WRITE 0x04
5461 #define _SSPSTAT_READ_WRITE 0x04
5462 #define _SSPSTAT_R 0x04
5463 #define _SSPSTAT_S 0x08
5464 #define _SSPSTAT_I2C_START 0x08
5465 #define _SSPSTAT_P 0x10
5466 #define _SSPSTAT_I2C_STOP 0x10
5467 #define _SSPSTAT_D_NOT_A 0x20
5468 #define _SSPSTAT_D_A 0x20
5469 #define _SSPSTAT_I2C_DAT 0x20
5470 #define _SSPSTAT_NOT_A 0x20
5471 #define _SSPSTAT_NOT_ADDRESS 0x20
5472 #define _SSPSTAT_DATA_ADDRESS 0x20
5473 #define _SSPSTAT_D 0x20
5474 #define _SSPSTAT_CKE 0x40
5475 #define _SSPSTAT_SMP 0x80
5477 //==============================================================================
5479 extern __at(0x0FC8) __sfr SSP1ADD
;
5480 extern __at(0x0FC8) __sfr SSPADD
;
5481 extern __at(0x0FC9) __sfr SSP1BUF
;
5482 extern __at(0x0FC9) __sfr SSPBUF
;
5484 //==============================================================================
5487 extern __at(0x0FCA) __sfr T2CON
;
5493 unsigned T2CKPS0
: 1;
5494 unsigned T2CKPS1
: 1;
5495 unsigned TMR2ON
: 1;
5496 unsigned T2OUTPS0
: 1;
5497 unsigned T2OUTPS1
: 1;
5498 unsigned T2OUTPS2
: 1;
5499 unsigned T2OUTPS3
: 1;
5505 unsigned T2CKPS
: 2;
5512 unsigned T2OUTPS
: 4;
5517 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits
;
5519 #define _T2CKPS0 0x01
5520 #define _T2CKPS1 0x02
5521 #define _TMR2ON 0x04
5522 #define _T2OUTPS0 0x08
5523 #define _T2OUTPS1 0x10
5524 #define _T2OUTPS2 0x20
5525 #define _T2OUTPS3 0x40
5527 //==============================================================================
5529 extern __at(0x0FCB) __sfr PR2
;
5530 extern __at(0x0FCC) __sfr TMR2
;
5532 //==============================================================================
5535 extern __at(0x0FCD) __sfr T1CON
;
5541 unsigned TMR1ON
: 1;
5542 unsigned TMR1CS
: 1;
5543 unsigned NOT_T1SYNC
: 1;
5544 unsigned T1OSCEN
: 1;
5545 unsigned T1CKPS0
: 1;
5546 unsigned T1CKPS1
: 1;
5555 unsigned T1SYNC
: 1;
5567 unsigned T1INSYNC
: 1;
5578 unsigned T1CKPS
: 2;
5583 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits
;
5585 #define _TMR1ON 0x01
5586 #define _TMR1CS 0x02
5587 #define _NOT_T1SYNC 0x04
5588 #define _T1SYNC 0x04
5589 #define _T1INSYNC 0x04
5590 #define _T1OSCEN 0x08
5591 #define _T1CKPS0 0x10
5592 #define _T1CKPS1 0x20
5596 //==============================================================================
5598 extern __at(0x0FCE) __sfr TMR1
;
5599 extern __at(0x0FCE) __sfr TMR1L
;
5600 extern __at(0x0FCF) __sfr TMR1H
;
5602 //==============================================================================
5605 extern __at(0x0FD0) __sfr RCON
;
5611 unsigned NOT_BOR
: 1;
5612 unsigned NOT_POR
: 1;
5613 unsigned NOT_PD
: 1;
5614 unsigned NOT_TO
: 1;
5615 unsigned NOT_RI
: 1;
5616 unsigned NOT_CM
: 1;
5634 extern __at(0x0FD0) volatile __RCONbits_t RCONbits
;
5636 #define _NOT_BOR 0x01
5638 #define _NOT_POR 0x02
5640 #define _NOT_PD 0x04
5642 #define _NOT_TO 0x08
5644 #define _NOT_RI 0x10
5646 #define _NOT_CM 0x20
5650 //==============================================================================
5653 //==============================================================================
5656 extern __at(0x0FD1) __sfr WDTCON
;
5662 unsigned SWDTEN
: 1;
5685 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits
;
5687 #define _SWDTEN 0x01
5690 //==============================================================================
5693 //==============================================================================
5696 extern __at(0x0FD2) __sfr ECON1
;
5704 unsigned CSUMEN
: 1;
5710 extern __at(0x0FD2) volatile __ECON1bits_t ECON1bits
;
5714 #define _CSUMEN 0x10
5719 //==============================================================================
5722 //==============================================================================
5725 extern __at(0x0FD3) __sfr OSCCON
;
5748 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits
;
5755 //==============================================================================
5758 //==============================================================================
5761 extern __at(0x0FD5) __sfr T0CON
;
5773 unsigned T08BIT
: 1;
5774 unsigned TMR0ON
: 1;
5784 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits
;
5792 #define _T08BIT 0x40
5793 #define _TMR0ON 0x80
5795 //==============================================================================
5797 extern __at(0x0FD6) __sfr TMR0
;
5798 extern __at(0x0FD6) __sfr TMR0L
;
5799 extern __at(0x0FD7) __sfr TMR0H
;
5801 //==============================================================================
5804 extern __at(0x0FD8) __sfr STATUS
;
5818 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits
;
5826 //==============================================================================
5828 extern __at(0x0FD9) __sfr FSR2L
;
5829 extern __at(0x0FDA) __sfr FSR2H
;
5830 extern __at(0x0FDB) __sfr PLUSW2
;
5831 extern __at(0x0FDC) __sfr PREINC2
;
5832 extern __at(0x0FDD) __sfr POSTDEC2
;
5833 extern __at(0x0FDE) __sfr POSTINC2
;
5834 extern __at(0x0FDF) __sfr INDF2
;
5835 extern __at(0x0FE0) __sfr BSR
;
5836 extern __at(0x0FE1) __sfr FSR1L
;
5837 extern __at(0x0FE2) __sfr FSR1H
;
5838 extern __at(0x0FE3) __sfr PLUSW1
;
5839 extern __at(0x0FE4) __sfr PREINC1
;
5840 extern __at(0x0FE5) __sfr POSTDEC1
;
5841 extern __at(0x0FE6) __sfr POSTINC1
;
5842 extern __at(0x0FE7) __sfr INDF1
;
5843 extern __at(0x0FE8) __sfr WREG
;
5844 extern __at(0x0FE9) __sfr FSR0L
;
5845 extern __at(0x0FEA) __sfr FSR0H
;
5846 extern __at(0x0FEB) __sfr PLUSW0
;
5847 extern __at(0x0FEC) __sfr PREINC0
;
5848 extern __at(0x0FED) __sfr POSTDEC0
;
5849 extern __at(0x0FEE) __sfr POSTINC0
;
5850 extern __at(0x0FEF) __sfr INDF0
;
5852 //==============================================================================
5855 extern __at(0x0FF0) __sfr INTCON3
;
5861 unsigned INT1IF
: 1;
5862 unsigned INT2IF
: 1;
5863 unsigned INT3IF
: 1;
5864 unsigned INT1IE
: 1;
5865 unsigned INT2IE
: 1;
5866 unsigned INT3IE
: 1;
5867 unsigned INT1IP
: 1;
5868 unsigned INT2IP
: 1;
5884 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits
;
5886 #define _INT1IF 0x01
5888 #define _INT2IF 0x02
5890 #define _INT3IF 0x04
5892 #define _INT1IE 0x08
5894 #define _INT2IE 0x10
5896 #define _INT3IE 0x20
5898 #define _INT1IP 0x40
5900 #define _INT2IP 0x80
5903 //==============================================================================
5906 //==============================================================================
5909 extern __at(0x0FF1) __sfr INTCON2
;
5916 unsigned INT3IP
: 1;
5917 unsigned TMR0IP
: 1;
5918 unsigned INTEDG3
: 1;
5919 unsigned INTEDG2
: 1;
5920 unsigned INTEDG1
: 1;
5921 unsigned INTEDG0
: 1;
5922 unsigned NOT_RBPU
: 1;
5938 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits
;
5941 #define _INT3IP 0x02
5942 #define _TMR0IP 0x04
5944 #define _INTEDG3 0x08
5945 #define _INTEDG2 0x10
5946 #define _INTEDG1 0x20
5947 #define _INTEDG0 0x40
5948 #define _NOT_RBPU 0x80
5951 //==============================================================================
5954 //==============================================================================
5957 extern __at(0x0FF2) __sfr INTCON
;
5964 unsigned INT0IF
: 1;
5965 unsigned TMR0IF
: 1;
5967 unsigned INT0IE
: 1;
5968 unsigned TMR0IE
: 1;
5969 unsigned PEIE_GIEL
: 1;
5970 unsigned GIE_GIEH
: 1;
5998 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits
;
6001 #define _INT0IF 0x02
6003 #define _TMR0IF 0x04
6006 #define _INT0IE 0x10
6008 #define _TMR0IE 0x20
6010 #define _PEIE_GIEL 0x40
6013 #define _GIE_GIEH 0x80
6017 //==============================================================================
6019 extern __at(0x0FF3) __sfr PROD
;
6020 extern __at(0x0FF3) __sfr PRODL
;
6021 extern __at(0x0FF4) __sfr PRODH
;
6022 extern __at(0x0FF5) __sfr TABLAT
;
6023 extern __at(0x0FF6) __sfr TBLPTR
;
6024 extern __at(0x0FF6) __sfr TBLPTRL
;
6025 extern __at(0x0FF7) __sfr TBLPTRH
;
6026 extern __at(0x0FF8) __sfr TBLPTRU
;
6027 extern __at(0x0FF9) __sfr PC
;
6028 extern __at(0x0FF9) __sfr PCL
;
6029 extern __at(0x0FFA) __sfr PCLATH
;
6030 extern __at(0x0FFB) __sfr PCLATU
;
6032 //==============================================================================
6035 extern __at(0x0FFC) __sfr STKPTR
;
6041 unsigned STKPTR0
: 1;
6042 unsigned STKPTR1
: 1;
6043 unsigned STKPTR2
: 1;
6044 unsigned STKPTR3
: 1;
6045 unsigned STKPTR4
: 1;
6047 unsigned STKUNF
: 1;
6048 unsigned STKFUL
: 1;
6060 unsigned STKOVF
: 1;
6065 unsigned STKPTR
: 5;
6076 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits
;
6078 #define _STKPTR0 0x01
6080 #define _STKPTR1 0x02
6082 #define _STKPTR2 0x04
6084 #define _STKPTR3 0x08
6086 #define _STKPTR4 0x10
6088 #define _STKUNF 0x40
6089 #define _STKFUL 0x80
6090 #define _STKOVF 0x80
6092 //==============================================================================
6094 extern __at(0x0FFD) __sfr TOS
;
6095 extern __at(0x0FFD) __sfr TOSL
;
6096 extern __at(0x0FFE) __sfr TOSH
;
6097 extern __at(0x0FFF) __sfr TOSU
;
6099 //==============================================================================
6101 // Configuration Addresses
6103 //==============================================================================
6105 #define __CONFIG1L 0x00FFF8
6106 #define __CONFIG1H 0x00FFF9
6107 #define __CONFIG2L 0x00FFFA
6108 #define __CONFIG2H 0x00FFFB
6109 #define __CONFIG3L 0x00FFFC
6110 #define __CONFIG3H 0x00FFFD
6112 //==============================================================================
6114 #endif // #ifndef __PIC18F86J60_H__