1 /* 2 * This declarations of the PIC18F97J60 MCU. 3 * 4 * This file is part of the GNU PIC library for SDCC, originally 5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016. 6 * 7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:41 UTC. 8 * 9 * SDCC is licensed under the GNU Public license (GPL) v2. Note that 10 * this license covers the code to the compiler and other executables, 11 * but explicitly does not cover any code or objects generated by sdcc. 12 * 13 * For pic device libraries and header files which are derived from 14 * Microchip header (.inc) and linker script (.lkr) files Microchip 15 * requires that "The header files should state that they are only to be 16 * used with authentic Microchip devices" which makes them incompatible 17 * with the GPL. Pic device libraries and header files are located at 18 * non-free/lib and non-free/include directories respectively. 19 * Sdcc should be run with the --use-non-free command line option in 20 * order to include non-free header files and libraries. 21 * 22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc. 23 */ 24 25 #ifndef __PIC18F97J60_H__ 26 #define __PIC18F97J60_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 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; 42 43 //============================================================================== 44 // MISTAT Bits 45 46 extern __at(0x0E8A) __sfr MISTAT; 47 48 typedef struct 49 { 50 unsigned BUSY : 1; 51 unsigned SCAN : 1; 52 unsigned NVALID : 1; 53 unsigned : 1; 54 unsigned : 1; 55 unsigned : 1; 56 unsigned : 1; 57 unsigned : 1; 58 } __MISTATbits_t; 59 60 extern __at(0x0E8A) volatile __MISTATbits_t MISTATbits; 61 62 #define _BUSY 0x01 63 #define _SCAN 0x02 64 #define _NVALID 0x04 65 66 //============================================================================== 67 68 69 //============================================================================== 70 // EFLOCON Bits 71 72 extern __at(0x0E97) __sfr EFLOCON; 73 74 typedef union 75 { 76 struct 77 { 78 unsigned FCEN0 : 1; 79 unsigned FCEN1 : 1; 80 unsigned FULDPXS : 1; 81 unsigned : 1; 82 unsigned : 1; 83 unsigned : 1; 84 unsigned : 1; 85 unsigned : 1; 86 }; 87 88 struct 89 { 90 unsigned FCEN : 2; 91 unsigned : 6; 92 }; 93 } __EFLOCONbits_t; 94 95 extern __at(0x0E97) volatile __EFLOCONbits_t EFLOCONbits; 96 97 #define _FCEN0 0x01 98 #define _FCEN1 0x02 99 #define _FULDPXS 0x04 100 101 //============================================================================== 102 103 extern __at(0x0E98) __sfr EPAUS; 104 extern __at(0x0E98) __sfr EPAUSL; 105 extern __at(0x0E99) __sfr EPAUSH; 106 107 //============================================================================== 108 // MACON1 Bits 109 110 extern __at(0x0EA0) __sfr MACON1; 111 112 typedef struct 113 { 114 unsigned MARXEN : 1; 115 unsigned PASSALL : 1; 116 unsigned RXPAUS : 1; 117 unsigned TXPAUS : 1; 118 unsigned : 1; 119 unsigned : 1; 120 unsigned : 1; 121 unsigned : 1; 122 } __MACON1bits_t; 123 124 extern __at(0x0EA0) volatile __MACON1bits_t MACON1bits; 125 126 #define _MARXEN 0x01 127 #define _PASSALL 0x02 128 #define _RXPAUS 0x04 129 #define _TXPAUS 0x08 130 131 //============================================================================== 132 133 134 //============================================================================== 135 // MACON3 Bits 136 137 extern __at(0x0EA2) __sfr MACON3; 138 139 typedef union 140 { 141 struct 142 { 143 unsigned FULDPX : 1; 144 unsigned FRMLNEN : 1; 145 unsigned HFRMEN : 1; 146 unsigned PHDREN : 1; 147 unsigned TXCRCEN : 1; 148 unsigned PADCFG0 : 1; 149 unsigned PADCFG1 : 1; 150 unsigned PADCFG2 : 1; 151 }; 152 153 struct 154 { 155 unsigned : 5; 156 unsigned PADCFG : 3; 157 }; 158 } __MACON3bits_t; 159 160 extern __at(0x0EA2) volatile __MACON3bits_t MACON3bits; 161 162 #define _FULDPX 0x01 163 #define _FRMLNEN 0x02 164 #define _HFRMEN 0x04 165 #define _PHDREN 0x08 166 #define _TXCRCEN 0x10 167 #define _PADCFG0 0x20 168 #define _PADCFG1 0x40 169 #define _PADCFG2 0x80 170 171 //============================================================================== 172 173 174 //============================================================================== 175 // MACON4 Bits 176 177 extern __at(0x0EA3) __sfr MACON4; 178 179 typedef struct 180 { 181 unsigned : 1; 182 unsigned : 1; 183 unsigned : 1; 184 unsigned : 1; 185 unsigned : 1; 186 unsigned : 1; 187 unsigned DEFER : 1; 188 unsigned : 1; 189 } __MACON4bits_t; 190 191 extern __at(0x0EA3) volatile __MACON4bits_t MACON4bits; 192 193 #define _DEFER 0x40 194 195 //============================================================================== 196 197 198 //============================================================================== 199 // MABBIPG Bits 200 201 extern __at(0x0EA4) __sfr MABBIPG; 202 203 typedef union 204 { 205 struct 206 { 207 unsigned BBIPG0 : 1; 208 unsigned BBIPG1 : 1; 209 unsigned BBIPG2 : 1; 210 unsigned BBIPG3 : 1; 211 unsigned BBIPG4 : 1; 212 unsigned BBIPG5 : 1; 213 unsigned BBIPG6 : 1; 214 unsigned : 1; 215 }; 216 217 struct 218 { 219 unsigned BBIPG : 7; 220 unsigned : 1; 221 }; 222 } __MABBIPGbits_t; 223 224 extern __at(0x0EA4) volatile __MABBIPGbits_t MABBIPGbits; 225 226 #define _BBIPG0 0x01 227 #define _BBIPG1 0x02 228 #define _BBIPG2 0x04 229 #define _BBIPG3 0x08 230 #define _BBIPG4 0x10 231 #define _BBIPG5 0x20 232 #define _BBIPG6 0x40 233 234 //============================================================================== 235 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; 242 243 //============================================================================== 244 // MICMD Bits 245 246 extern __at(0x0EB2) __sfr MICMD; 247 248 typedef struct 249 { 250 unsigned MIIRD : 1; 251 unsigned MIISCAN : 1; 252 unsigned : 1; 253 unsigned : 1; 254 unsigned : 1; 255 unsigned : 1; 256 unsigned : 1; 257 unsigned : 1; 258 } __MICMDbits_t; 259 260 extern __at(0x0EB2) volatile __MICMDbits_t MICMDbits; 261 262 #define _MIIRD 0x01 263 #define _MIISCAN 0x02 264 265 //============================================================================== 266 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; 296 297 //============================================================================== 298 // ERXFCON Bits 299 300 extern __at(0x0ED8) __sfr ERXFCON; 301 302 typedef struct 303 { 304 unsigned BCEN : 1; 305 unsigned MCEN : 1; 306 unsigned HTEN : 1; 307 unsigned MPEN : 1; 308 unsigned PMEN : 1; 309 unsigned CRCEN : 1; 310 unsigned ANDOR : 1; 311 unsigned UCEN : 1; 312 } __ERXFCONbits_t; 313 314 extern __at(0x0ED8) volatile __ERXFCONbits_t ERXFCONbits; 315 316 #define _BCEN 0x01 317 #define _MCEN 0x02 318 #define _HTEN 0x04 319 #define _MPEN 0x08 320 #define _PMEN 0x10 321 #define _CRCEN 0x20 322 #define _ANDOR 0x40 323 #define _UCEN 0x80 324 325 //============================================================================== 326 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; 361 362 //============================================================================== 363 // EIE Bits 364 365 extern __at(0x0EFB) __sfr EIE; 366 367 typedef union 368 { 369 struct 370 { 371 unsigned RXERIE : 1; 372 unsigned TXERIE : 1; 373 unsigned : 1; 374 unsigned TXIE : 1; 375 unsigned LINKIE : 1; 376 unsigned DMAIE : 1; 377 unsigned PKTIE : 1; 378 unsigned : 1; 379 }; 380 381 struct 382 { 383 unsigned : 1; 384 unsigned : 1; 385 unsigned : 1; 386 unsigned ETXIE : 1; 387 unsigned : 1; 388 unsigned : 1; 389 unsigned : 1; 390 unsigned : 1; 391 }; 392 } __EIEbits_t; 393 394 extern __at(0x0EFB) volatile __EIEbits_t EIEbits; 395 396 #define _RXERIE 0x01 397 #define _TXERIE 0x02 398 #define _TXIE 0x08 399 #define _ETXIE 0x08 400 #define _LINKIE 0x10 401 #define _DMAIE 0x20 402 #define _PKTIE 0x40 403 404 //============================================================================== 405 406 407 //============================================================================== 408 // ESTAT Bits 409 410 extern __at(0x0EFD) __sfr ESTAT; 411 412 typedef struct 413 { 414 unsigned PHYRDY : 1; 415 unsigned TXABRT : 1; 416 unsigned RXBUSY : 1; 417 unsigned : 1; 418 unsigned : 1; 419 unsigned : 1; 420 unsigned BUFER : 1; 421 unsigned : 1; 422 } __ESTATbits_t; 423 424 extern __at(0x0EFD) volatile __ESTATbits_t ESTATbits; 425 426 #define _PHYRDY 0x01 427 #define _TXABRT 0x02 428 #define _RXBUSY 0x04 429 #define _BUFER 0x40 430 431 //============================================================================== 432 433 434 //============================================================================== 435 // ECON2 Bits 436 437 extern __at(0x0EFE) __sfr ECON2; 438 439 typedef struct 440 { 441 unsigned : 1; 442 unsigned : 1; 443 unsigned : 1; 444 unsigned : 1; 445 unsigned : 1; 446 unsigned ETHEN : 1; 447 unsigned PKTDEC : 1; 448 unsigned AUTOINC : 1; 449 } __ECON2bits_t; 450 451 extern __at(0x0EFE) volatile __ECON2bits_t ECON2bits; 452 453 #define _ETHEN 0x20 454 #define _PKTDEC 0x40 455 #define _AUTOINC 0x80 456 457 //============================================================================== 458 459 460 //============================================================================== 461 // EIR Bits 462 463 extern __at(0x0F60) __sfr EIR; 464 465 typedef struct 466 { 467 unsigned RXERIF : 1; 468 unsigned TXERIF : 1; 469 unsigned : 1; 470 unsigned TXIF : 1; 471 unsigned LINKIF : 1; 472 unsigned DMAIF : 1; 473 unsigned PKTIF : 1; 474 unsigned : 1; 475 } __EIRbits_t; 476 477 extern __at(0x0F60) volatile __EIRbits_t EIRbits; 478 479 #define _RXERIF 0x01 480 #define _TXERIF 0x02 481 #define _TXIF 0x08 482 #define _LINKIF 0x10 483 #define _DMAIF 0x20 484 #define _PKTIF 0x40 485 486 //============================================================================== 487 488 489 //============================================================================== 490 // EDATA Bits 491 492 extern __at(0x0F61) __sfr EDATA; 493 494 typedef struct 495 { 496 unsigned EDATA0 : 1; 497 unsigned EDATA1 : 1; 498 unsigned EDATA2 : 1; 499 unsigned EDATA3 : 1; 500 unsigned EDATA4 : 1; 501 unsigned EDATA5 : 1; 502 unsigned EDATA6 : 1; 503 unsigned EDATA7 : 1; 504 } __EDATAbits_t; 505 506 extern __at(0x0F61) volatile __EDATAbits_t EDATAbits; 507 508 #define _EDATA0 0x01 509 #define _EDATA1 0x02 510 #define _EDATA2 0x04 511 #define _EDATA3 0x08 512 #define _EDATA4 0x10 513 #define _EDATA5 0x20 514 #define _EDATA6 0x40 515 #define _EDATA7 0x80 516 517 //============================================================================== 518 519 520 //============================================================================== 521 // SSP2CON2 Bits 522 523 extern __at(0x0F62) __sfr SSP2CON2; 524 525 typedef union 526 { 527 struct 528 { 529 unsigned SEN : 1; 530 unsigned RSEN : 1; 531 unsigned PEN : 1; 532 unsigned RCEN : 1; 533 unsigned ACKEN : 1; 534 unsigned ACKDT : 1; 535 unsigned ACKSTAT : 1; 536 unsigned GCEN : 1; 537 }; 538 539 struct 540 { 541 unsigned SEN2 : 1; 542 unsigned ADMSK1 : 1; 543 unsigned ADMSK2 : 1; 544 unsigned ADMSK3 : 1; 545 unsigned ADMSK4 : 1; 546 unsigned ADMSK5 : 1; 547 unsigned ACKSTAT2 : 1; 548 unsigned GCEN2 : 1; 549 }; 550 551 struct 552 { 553 unsigned : 1; 554 unsigned RSEN2 : 1; 555 unsigned PEN2 : 1; 556 unsigned RCEN2 : 1; 557 unsigned ACKEN2 : 1; 558 unsigned ACKDT2 : 1; 559 unsigned : 1; 560 unsigned : 1; 561 }; 562 563 struct 564 { 565 unsigned : 1; 566 unsigned ADMSK12 : 1; 567 unsigned ADMSK22 : 1; 568 unsigned ADMSK32 : 1; 569 unsigned ADMSK42 : 1; 570 unsigned ADMSK52 : 1; 571 unsigned : 1; 572 unsigned : 1; 573 }; 574 } __SSP2CON2bits_t; 575 576 extern __at(0x0F62) volatile __SSP2CON2bits_t SSP2CON2bits; 577 578 #define _SSP2CON2_SEN 0x01 579 #define _SSP2CON2_SEN2 0x01 580 #define _SSP2CON2_RSEN 0x02 581 #define _SSP2CON2_ADMSK1 0x02 582 #define _SSP2CON2_RSEN2 0x02 583 #define _SSP2CON2_ADMSK12 0x02 584 #define _SSP2CON2_PEN 0x04 585 #define _SSP2CON2_ADMSK2 0x04 586 #define _SSP2CON2_PEN2 0x04 587 #define _SSP2CON2_ADMSK22 0x04 588 #define _SSP2CON2_RCEN 0x08 589 #define _SSP2CON2_ADMSK3 0x08 590 #define _SSP2CON2_RCEN2 0x08 591 #define _SSP2CON2_ADMSK32 0x08 592 #define _SSP2CON2_ACKEN 0x10 593 #define _SSP2CON2_ADMSK4 0x10 594 #define _SSP2CON2_ACKEN2 0x10 595 #define _SSP2CON2_ADMSK42 0x10 596 #define _SSP2CON2_ACKDT 0x20 597 #define _SSP2CON2_ADMSK5 0x20 598 #define _SSP2CON2_ACKDT2 0x20 599 #define _SSP2CON2_ADMSK52 0x20 600 #define _SSP2CON2_ACKSTAT 0x40 601 #define _SSP2CON2_ACKSTAT2 0x40 602 #define _SSP2CON2_GCEN 0x80 603 #define _SSP2CON2_GCEN2 0x80 604 605 //============================================================================== 606 607 608 //============================================================================== 609 // SSP2CON1 Bits 610 611 extern __at(0x0F63) __sfr SSP2CON1; 612 613 typedef union 614 { 615 struct 616 { 617 unsigned SSPM0 : 1; 618 unsigned SSPM1 : 1; 619 unsigned SSPM2 : 1; 620 unsigned SSPM3 : 1; 621 unsigned CKP : 1; 622 unsigned SSPEN : 1; 623 unsigned SSPOV : 1; 624 unsigned WCOL : 1; 625 }; 626 627 struct 628 { 629 unsigned SSPM02 : 1; 630 unsigned SSPM12 : 1; 631 unsigned SSPM22 : 1; 632 unsigned SSPM32 : 1; 633 unsigned CKP2 : 1; 634 unsigned SSPEN2 : 1; 635 unsigned SSPOV2 : 1; 636 unsigned WCOL2 : 1; 637 }; 638 } __SSP2CON1bits_t; 639 640 extern __at(0x0F63) volatile __SSP2CON1bits_t SSP2CON1bits; 641 642 #define _SSP2CON1_SSPM0 0x01 643 #define _SSP2CON1_SSPM02 0x01 644 #define _SSP2CON1_SSPM1 0x02 645 #define _SSP2CON1_SSPM12 0x02 646 #define _SSP2CON1_SSPM2 0x04 647 #define _SSP2CON1_SSPM22 0x04 648 #define _SSP2CON1_SSPM3 0x08 649 #define _SSP2CON1_SSPM32 0x08 650 #define _SSP2CON1_CKP 0x10 651 #define _SSP2CON1_CKP2 0x10 652 #define _SSP2CON1_SSPEN 0x20 653 #define _SSP2CON1_SSPEN2 0x20 654 #define _SSP2CON1_SSPOV 0x40 655 #define _SSP2CON1_SSPOV2 0x40 656 #define _SSP2CON1_WCOL 0x80 657 #define _SSP2CON1_WCOL2 0x80 658 659 //============================================================================== 660 661 662 //============================================================================== 663 // SSP2STAT Bits 664 665 extern __at(0x0F64) __sfr SSP2STAT; 666 667 typedef union 668 { 669 struct 670 { 671 unsigned BF : 1; 672 unsigned UA : 1; 673 unsigned R_NOT_W : 1; 674 unsigned S : 1; 675 unsigned P : 1; 676 unsigned D_NOT_A : 1; 677 unsigned CKE : 1; 678 unsigned SMP : 1; 679 }; 680 681 struct 682 { 683 unsigned BF2 : 1; 684 unsigned UA2 : 1; 685 unsigned R_W : 1; 686 unsigned I2C_START : 1; 687 unsigned I2C_STOP : 1; 688 unsigned D_A : 1; 689 unsigned CKE2 : 1; 690 unsigned SMP2 : 1; 691 }; 692 693 struct 694 { 695 unsigned : 1; 696 unsigned : 1; 697 unsigned I2C_READ : 1; 698 unsigned START2 : 1; 699 unsigned STOP2 : 1; 700 unsigned I2C_DAT : 1; 701 unsigned : 1; 702 unsigned : 1; 703 }; 704 705 struct 706 { 707 unsigned : 1; 708 unsigned : 1; 709 unsigned NOT_W : 1; 710 unsigned : 1; 711 unsigned : 1; 712 unsigned NOT_A : 1; 713 unsigned : 1; 714 unsigned : 1; 715 }; 716 717 struct 718 { 719 unsigned : 1; 720 unsigned : 1; 721 unsigned NOT_WRITE : 1; 722 unsigned : 1; 723 unsigned : 1; 724 unsigned NOT_ADDRESS : 1; 725 unsigned : 1; 726 unsigned : 1; 727 }; 728 729 struct 730 { 731 unsigned : 1; 732 unsigned : 1; 733 unsigned READ_WRITE : 1; 734 unsigned : 1; 735 unsigned : 1; 736 unsigned DATA_ADDRESS : 1; 737 unsigned : 1; 738 unsigned : 1; 739 }; 740 741 struct 742 { 743 unsigned : 1; 744 unsigned : 1; 745 unsigned R : 1; 746 unsigned : 1; 747 unsigned : 1; 748 unsigned D : 1; 749 unsigned : 1; 750 unsigned : 1; 751 }; 752 753 struct 754 { 755 unsigned : 1; 756 unsigned : 1; 757 unsigned RW2 : 1; 758 unsigned : 1; 759 unsigned : 1; 760 unsigned DA2 : 1; 761 unsigned : 1; 762 unsigned : 1; 763 }; 764 } __SSP2STATbits_t; 765 766 extern __at(0x0F64) volatile __SSP2STATbits_t SSP2STATbits; 767 768 #define _SSP2STAT_BF 0x01 769 #define _SSP2STAT_BF2 0x01 770 #define _SSP2STAT_UA 0x02 771 #define _SSP2STAT_UA2 0x02 772 #define _SSP2STAT_R_NOT_W 0x04 773 #define _SSP2STAT_R_W 0x04 774 #define _SSP2STAT_I2C_READ 0x04 775 #define _SSP2STAT_NOT_W 0x04 776 #define _SSP2STAT_NOT_WRITE 0x04 777 #define _SSP2STAT_READ_WRITE 0x04 778 #define _SSP2STAT_R 0x04 779 #define _SSP2STAT_RW2 0x04 780 #define _SSP2STAT_S 0x08 781 #define _SSP2STAT_I2C_START 0x08 782 #define _SSP2STAT_START2 0x08 783 #define _SSP2STAT_P 0x10 784 #define _SSP2STAT_I2C_STOP 0x10 785 #define _SSP2STAT_STOP2 0x10 786 #define _SSP2STAT_D_NOT_A 0x20 787 #define _SSP2STAT_D_A 0x20 788 #define _SSP2STAT_I2C_DAT 0x20 789 #define _SSP2STAT_NOT_A 0x20 790 #define _SSP2STAT_NOT_ADDRESS 0x20 791 #define _SSP2STAT_DATA_ADDRESS 0x20 792 #define _SSP2STAT_D 0x20 793 #define _SSP2STAT_DA2 0x20 794 #define _SSP2STAT_CKE 0x40 795 #define _SSP2STAT_CKE2 0x40 796 #define _SSP2STAT_SMP 0x80 797 #define _SSP2STAT_SMP2 0x80 798 799 //============================================================================== 800 801 extern __at(0x0F65) __sfr SSP2ADD; 802 extern __at(0x0F66) __sfr SSP2BUF; 803 804 //============================================================================== 805 // ECCP2DEL Bits 806 807 extern __at(0x0F67) __sfr ECCP2DEL; 808 809 typedef union 810 { 811 struct 812 { 813 unsigned PDC0 : 1; 814 unsigned PDC1 : 1; 815 unsigned PDC2 : 1; 816 unsigned PDC3 : 1; 817 unsigned PDC4 : 1; 818 unsigned PDC5 : 1; 819 unsigned PDC6 : 1; 820 unsigned PRSEN : 1; 821 }; 822 823 struct 824 { 825 unsigned P2DC0 : 1; 826 unsigned P2DC1 : 1; 827 unsigned P2DC2 : 1; 828 unsigned P2DC3 : 1; 829 unsigned P2DC4 : 1; 830 unsigned P2DC5 : 1; 831 unsigned P2DC6 : 1; 832 unsigned P2RSEN : 1; 833 }; 834 835 struct 836 { 837 unsigned PDC : 7; 838 unsigned : 1; 839 }; 840 841 struct 842 { 843 unsigned P2DC : 7; 844 unsigned : 1; 845 }; 846 } __ECCP2DELbits_t; 847 848 extern __at(0x0F67) volatile __ECCP2DELbits_t ECCP2DELbits; 849 850 #define _ECCP2DEL_PDC0 0x01 851 #define _ECCP2DEL_P2DC0 0x01 852 #define _ECCP2DEL_PDC1 0x02 853 #define _ECCP2DEL_P2DC1 0x02 854 #define _ECCP2DEL_PDC2 0x04 855 #define _ECCP2DEL_P2DC2 0x04 856 #define _ECCP2DEL_PDC3 0x08 857 #define _ECCP2DEL_P2DC3 0x08 858 #define _ECCP2DEL_PDC4 0x10 859 #define _ECCP2DEL_P2DC4 0x10 860 #define _ECCP2DEL_PDC5 0x20 861 #define _ECCP2DEL_P2DC5 0x20 862 #define _ECCP2DEL_PDC6 0x40 863 #define _ECCP2DEL_P2DC6 0x40 864 #define _ECCP2DEL_PRSEN 0x80 865 #define _ECCP2DEL_P2RSEN 0x80 866 867 //============================================================================== 868 869 870 //============================================================================== 871 // ECCP2AS Bits 872 873 extern __at(0x0F68) __sfr ECCP2AS; 874 875 typedef union 876 { 877 struct 878 { 879 unsigned PSSBD0 : 1; 880 unsigned PSSBD1 : 1; 881 unsigned PSSAC0 : 1; 882 unsigned PSSAC1 : 1; 883 unsigned ECCPAS0 : 1; 884 unsigned ECCPAS1 : 1; 885 unsigned ECCPAS2 : 1; 886 unsigned ECCPASE : 1; 887 }; 888 889 struct 890 { 891 unsigned PSS2BD0 : 1; 892 unsigned PSS2BD1 : 1; 893 unsigned PSS2AC0 : 1; 894 unsigned PSS2AC1 : 1; 895 unsigned ECCP2AS0 : 1; 896 unsigned ECCP2AS1 : 1; 897 unsigned ECCP2AS2 : 1; 898 unsigned ECCP2ASE : 1; 899 }; 900 901 struct 902 { 903 unsigned PSSBD : 2; 904 unsigned : 6; 905 }; 906 907 struct 908 { 909 unsigned PSS2BD : 2; 910 unsigned : 6; 911 }; 912 913 struct 914 { 915 unsigned : 2; 916 unsigned PSSAC : 2; 917 unsigned : 4; 918 }; 919 920 struct 921 { 922 unsigned : 2; 923 unsigned PSS2AC : 2; 924 unsigned : 4; 925 }; 926 927 struct 928 { 929 unsigned : 4; 930 unsigned ECCP2AS : 3; 931 unsigned : 1; 932 }; 933 934 struct 935 { 936 unsigned : 4; 937 unsigned ECCPAS : 3; 938 unsigned : 1; 939 }; 940 } __ECCP2ASbits_t; 941 942 extern __at(0x0F68) volatile __ECCP2ASbits_t ECCP2ASbits; 943 944 #define _ECCP2AS_PSSBD0 0x01 945 #define _ECCP2AS_PSS2BD0 0x01 946 #define _ECCP2AS_PSSBD1 0x02 947 #define _ECCP2AS_PSS2BD1 0x02 948 #define _ECCP2AS_PSSAC0 0x04 949 #define _ECCP2AS_PSS2AC0 0x04 950 #define _ECCP2AS_PSSAC1 0x08 951 #define _ECCP2AS_PSS2AC1 0x08 952 #define _ECCP2AS_ECCPAS0 0x10 953 #define _ECCP2AS_ECCP2AS0 0x10 954 #define _ECCP2AS_ECCPAS1 0x20 955 #define _ECCP2AS_ECCP2AS1 0x20 956 #define _ECCP2AS_ECCPAS2 0x40 957 #define _ECCP2AS_ECCP2AS2 0x40 958 #define _ECCP2AS_ECCPASE 0x80 959 #define _ECCP2AS_ECCP2ASE 0x80 960 961 //============================================================================== 962 963 964 //============================================================================== 965 // ECCP3DEL Bits 966 967 extern __at(0x0F69) __sfr ECCP3DEL; 968 969 typedef union 970 { 971 struct 972 { 973 unsigned PDC0 : 1; 974 unsigned PDC1 : 1; 975 unsigned PDC2 : 1; 976 unsigned PDC3 : 1; 977 unsigned PDC4 : 1; 978 unsigned PDC5 : 1; 979 unsigned PDC6 : 1; 980 unsigned PRSEN : 1; 981 }; 982 983 struct 984 { 985 unsigned P3DC0 : 1; 986 unsigned P3DC1 : 1; 987 unsigned P3DC2 : 1; 988 unsigned P3DC3 : 1; 989 unsigned P3DC4 : 1; 990 unsigned P3DC5 : 1; 991 unsigned P3DC6 : 1; 992 unsigned P3RSEN : 1; 993 }; 994 995 struct 996 { 997 unsigned PDC : 7; 998 unsigned : 1; 999 }; 1000 1001 struct 1002 { 1003 unsigned P3DC : 7; 1004 unsigned : 1; 1005 }; 1006 } __ECCP3DELbits_t; 1007 1008 extern __at(0x0F69) volatile __ECCP3DELbits_t ECCP3DELbits; 1009 1010 #define _ECCP3DEL_PDC0 0x01 1011 #define _ECCP3DEL_P3DC0 0x01 1012 #define _ECCP3DEL_PDC1 0x02 1013 #define _ECCP3DEL_P3DC1 0x02 1014 #define _ECCP3DEL_PDC2 0x04 1015 #define _ECCP3DEL_P3DC2 0x04 1016 #define _ECCP3DEL_PDC3 0x08 1017 #define _ECCP3DEL_P3DC3 0x08 1018 #define _ECCP3DEL_PDC4 0x10 1019 #define _ECCP3DEL_P3DC4 0x10 1020 #define _ECCP3DEL_PDC5 0x20 1021 #define _ECCP3DEL_P3DC5 0x20 1022 #define _ECCP3DEL_PDC6 0x40 1023 #define _ECCP3DEL_P3DC6 0x40 1024 #define _ECCP3DEL_PRSEN 0x80 1025 #define _ECCP3DEL_P3RSEN 0x80 1026 1027 //============================================================================== 1028 1029 1030 //============================================================================== 1031 // ECCP3AS Bits 1032 1033 extern __at(0x0F6A) __sfr ECCP3AS; 1034 1035 typedef union 1036 { 1037 struct 1038 { 1039 unsigned PSSBD0 : 1; 1040 unsigned PSSBD1 : 1; 1041 unsigned PSSAC0 : 1; 1042 unsigned PSSAC1 : 1; 1043 unsigned ECCPAS0 : 1; 1044 unsigned ECCPAS1 : 1; 1045 unsigned ECCPAS2 : 1; 1046 unsigned ECCPASE : 1; 1047 }; 1048 1049 struct 1050 { 1051 unsigned PSS3BD0 : 1; 1052 unsigned PSS3BD1 : 1; 1053 unsigned PSS3AC0 : 1; 1054 unsigned PSS3AC1 : 1; 1055 unsigned ECCP3AS0 : 1; 1056 unsigned ECCP3AS1 : 1; 1057 unsigned ECCP3AS2 : 1; 1058 unsigned ECCP3ASE : 1; 1059 }; 1060 1061 struct 1062 { 1063 unsigned PSSBD : 2; 1064 unsigned : 6; 1065 }; 1066 1067 struct 1068 { 1069 unsigned PSS3BD : 2; 1070 unsigned : 6; 1071 }; 1072 1073 struct 1074 { 1075 unsigned : 2; 1076 unsigned PSSAC : 2; 1077 unsigned : 4; 1078 }; 1079 1080 struct 1081 { 1082 unsigned : 2; 1083 unsigned PSS3AC : 2; 1084 unsigned : 4; 1085 }; 1086 1087 struct 1088 { 1089 unsigned : 4; 1090 unsigned ECCP3AS : 3; 1091 unsigned : 1; 1092 }; 1093 1094 struct 1095 { 1096 unsigned : 4; 1097 unsigned ECCPAS : 3; 1098 unsigned : 1; 1099 }; 1100 } __ECCP3ASbits_t; 1101 1102 extern __at(0x0F6A) volatile __ECCP3ASbits_t ECCP3ASbits; 1103 1104 #define _ECCP3AS_PSSBD0 0x01 1105 #define _ECCP3AS_PSS3BD0 0x01 1106 #define _ECCP3AS_PSSBD1 0x02 1107 #define _ECCP3AS_PSS3BD1 0x02 1108 #define _ECCP3AS_PSSAC0 0x04 1109 #define _ECCP3AS_PSS3AC0 0x04 1110 #define _ECCP3AS_PSSAC1 0x08 1111 #define _ECCP3AS_PSS3AC1 0x08 1112 #define _ECCP3AS_ECCPAS0 0x10 1113 #define _ECCP3AS_ECCP3AS0 0x10 1114 #define _ECCP3AS_ECCPAS1 0x20 1115 #define _ECCP3AS_ECCP3AS1 0x20 1116 #define _ECCP3AS_ECCPAS2 0x40 1117 #define _ECCP3AS_ECCP3AS2 0x40 1118 #define _ECCP3AS_ECCPASE 0x80 1119 #define _ECCP3AS_ECCP3ASE 0x80 1120 1121 //============================================================================== 1122 1123 1124 //============================================================================== 1125 // RCSTA2 Bits 1126 1127 extern __at(0x0F6B) __sfr RCSTA2; 1128 1129 typedef union 1130 { 1131 struct 1132 { 1133 unsigned RX9D : 1; 1134 unsigned OERR : 1; 1135 unsigned FERR : 1; 1136 unsigned ADDEN : 1; 1137 unsigned CREN : 1; 1138 unsigned SREN : 1; 1139 unsigned RX9 : 1; 1140 unsigned SPEN : 1; 1141 }; 1142 1143 struct 1144 { 1145 unsigned RCD8 : 1; 1146 unsigned OERR2 : 1; 1147 unsigned FERR2 : 1; 1148 unsigned ADDEN2 : 1; 1149 unsigned CREN2 : 1; 1150 unsigned SREN2 : 1; 1151 unsigned RC9 : 1; 1152 unsigned SPEN2 : 1; 1153 }; 1154 1155 struct 1156 { 1157 unsigned RX9D2 : 1; 1158 unsigned : 1; 1159 unsigned : 1; 1160 unsigned : 1; 1161 unsigned : 1; 1162 unsigned : 1; 1163 unsigned NOT_RC8 : 1; 1164 unsigned : 1; 1165 }; 1166 1167 struct 1168 { 1169 unsigned : 1; 1170 unsigned : 1; 1171 unsigned : 1; 1172 unsigned : 1; 1173 unsigned : 1; 1174 unsigned : 1; 1175 unsigned RC8_9 : 1; 1176 unsigned : 1; 1177 }; 1178 1179 struct 1180 { 1181 unsigned : 1; 1182 unsigned : 1; 1183 unsigned : 1; 1184 unsigned : 1; 1185 unsigned : 1; 1186 unsigned : 1; 1187 unsigned RX92 : 1; 1188 unsigned : 1; 1189 }; 1190 } __RCSTA2bits_t; 1191 1192 extern __at(0x0F6B) volatile __RCSTA2bits_t RCSTA2bits; 1193 1194 #define _RCSTA2_RX9D 0x01 1195 #define _RCSTA2_RCD8 0x01 1196 #define _RCSTA2_RX9D2 0x01 1197 #define _RCSTA2_OERR 0x02 1198 #define _RCSTA2_OERR2 0x02 1199 #define _RCSTA2_FERR 0x04 1200 #define _RCSTA2_FERR2 0x04 1201 #define _RCSTA2_ADDEN 0x08 1202 #define _RCSTA2_ADDEN2 0x08 1203 #define _RCSTA2_CREN 0x10 1204 #define _RCSTA2_CREN2 0x10 1205 #define _RCSTA2_SREN 0x20 1206 #define _RCSTA2_SREN2 0x20 1207 #define _RCSTA2_RX9 0x40 1208 #define _RCSTA2_RC9 0x40 1209 #define _RCSTA2_NOT_RC8 0x40 1210 #define _RCSTA2_RC8_9 0x40 1211 #define _RCSTA2_RX92 0x40 1212 #define _RCSTA2_SPEN 0x80 1213 #define _RCSTA2_SPEN2 0x80 1214 1215 //============================================================================== 1216 1217 1218 //============================================================================== 1219 // TXSTA2 Bits 1220 1221 extern __at(0x0F6C) __sfr TXSTA2; 1222 1223 typedef union 1224 { 1225 struct 1226 { 1227 unsigned TX9D : 1; 1228 unsigned TRMT : 1; 1229 unsigned BRGH : 1; 1230 unsigned SENDB : 1; 1231 unsigned SYNC : 1; 1232 unsigned TXEN : 1; 1233 unsigned TX9 : 1; 1234 unsigned CSRC : 1; 1235 }; 1236 1237 struct 1238 { 1239 unsigned TXD8 : 1; 1240 unsigned TRMT2 : 1; 1241 unsigned BRGH2 : 1; 1242 unsigned SENDB2 : 1; 1243 unsigned SYNC2 : 1; 1244 unsigned TXEN2 : 1; 1245 unsigned TX8_9 : 1; 1246 unsigned CSRC2 : 1; 1247 }; 1248 1249 struct 1250 { 1251 unsigned TX9D2 : 1; 1252 unsigned : 1; 1253 unsigned : 1; 1254 unsigned : 1; 1255 unsigned : 1; 1256 unsigned : 1; 1257 unsigned NOT_TX8 : 1; 1258 unsigned : 1; 1259 }; 1260 1261 struct 1262 { 1263 unsigned : 1; 1264 unsigned : 1; 1265 unsigned : 1; 1266 unsigned : 1; 1267 unsigned : 1; 1268 unsigned : 1; 1269 unsigned TX92 : 1; 1270 unsigned : 1; 1271 }; 1272 } __TXSTA2bits_t; 1273 1274 extern __at(0x0F6C) volatile __TXSTA2bits_t TXSTA2bits; 1275 1276 #define _TXSTA2_TX9D 0x01 1277 #define _TXSTA2_TXD8 0x01 1278 #define _TXSTA2_TX9D2 0x01 1279 #define _TXSTA2_TRMT 0x02 1280 #define _TXSTA2_TRMT2 0x02 1281 #define _TXSTA2_BRGH 0x04 1282 #define _TXSTA2_BRGH2 0x04 1283 #define _TXSTA2_SENDB 0x08 1284 #define _TXSTA2_SENDB2 0x08 1285 #define _TXSTA2_SYNC 0x10 1286 #define _TXSTA2_SYNC2 0x10 1287 #define _TXSTA2_TXEN 0x20 1288 #define _TXSTA2_TXEN2 0x20 1289 #define _TXSTA2_TX9 0x40 1290 #define _TXSTA2_TX8_9 0x40 1291 #define _TXSTA2_NOT_TX8 0x40 1292 #define _TXSTA2_TX92 0x40 1293 #define _TXSTA2_CSRC 0x80 1294 #define _TXSTA2_CSRC2 0x80 1295 1296 //============================================================================== 1297 1298 extern __at(0x0F6D) __sfr TXREG2; 1299 extern __at(0x0F6E) __sfr RCREG2; 1300 extern __at(0x0F6F) __sfr SPBRG2; 1301 1302 //============================================================================== 1303 // CCP5CON Bits 1304 1305 extern __at(0x0F70) __sfr CCP5CON; 1306 1307 typedef union 1308 { 1309 struct 1310 { 1311 unsigned CCP5M0 : 1; 1312 unsigned CCP5M1 : 1; 1313 unsigned CCP5M2 : 1; 1314 unsigned CCP5M3 : 1; 1315 unsigned CCP5Y : 1; 1316 unsigned CCP5X : 1; 1317 unsigned : 1; 1318 unsigned : 1; 1319 }; 1320 1321 struct 1322 { 1323 unsigned : 1; 1324 unsigned : 1; 1325 unsigned : 1; 1326 unsigned : 1; 1327 unsigned DC5B0 : 1; 1328 unsigned DC5B1 : 1; 1329 unsigned : 1; 1330 unsigned : 1; 1331 }; 1332 1333 struct 1334 { 1335 unsigned CCP5M : 4; 1336 unsigned : 4; 1337 }; 1338 1339 struct 1340 { 1341 unsigned : 4; 1342 unsigned DC5B : 2; 1343 unsigned : 2; 1344 }; 1345 } __CCP5CONbits_t; 1346 1347 extern __at(0x0F70) volatile __CCP5CONbits_t CCP5CONbits; 1348 1349 #define _CCP5M0 0x01 1350 #define _CCP5M1 0x02 1351 #define _CCP5M2 0x04 1352 #define _CCP5M3 0x08 1353 #define _CCP5Y 0x10 1354 #define _DC5B0 0x10 1355 #define _CCP5X 0x20 1356 #define _DC5B1 0x20 1357 1358 //============================================================================== 1359 1360 extern __at(0x0F71) __sfr CCPR5; 1361 extern __at(0x0F71) __sfr CCPR5L; 1362 extern __at(0x0F72) __sfr CCPR5H; 1363 1364 //============================================================================== 1365 // CCP4CON Bits 1366 1367 extern __at(0x0F73) __sfr CCP4CON; 1368 1369 typedef union 1370 { 1371 struct 1372 { 1373 unsigned CCP4M0 : 1; 1374 unsigned CCP4M1 : 1; 1375 unsigned CCP4M2 : 1; 1376 unsigned CCP4M3 : 1; 1377 unsigned DC4B0 : 1; 1378 unsigned DC4B1 : 1; 1379 unsigned : 1; 1380 unsigned : 1; 1381 }; 1382 1383 struct 1384 { 1385 unsigned : 1; 1386 unsigned : 1; 1387 unsigned : 1; 1388 unsigned : 1; 1389 unsigned CCP4Y : 1; 1390 unsigned CCP4X : 1; 1391 unsigned : 1; 1392 unsigned : 1; 1393 }; 1394 1395 struct 1396 { 1397 unsigned CCP4M : 4; 1398 unsigned : 4; 1399 }; 1400 1401 struct 1402 { 1403 unsigned : 4; 1404 unsigned DC4B : 2; 1405 unsigned : 2; 1406 }; 1407 } __CCP4CONbits_t; 1408 1409 extern __at(0x0F73) volatile __CCP4CONbits_t CCP4CONbits; 1410 1411 #define _CCP4M0 0x01 1412 #define _CCP4M1 0x02 1413 #define _CCP4M2 0x04 1414 #define _CCP4M3 0x08 1415 #define _DC4B0 0x10 1416 #define _CCP4Y 0x10 1417 #define _DC4B1 0x20 1418 #define _CCP4X 0x20 1419 1420 //============================================================================== 1421 1422 extern __at(0x0F74) __sfr CCPR4; 1423 extern __at(0x0F74) __sfr CCPR4L; 1424 extern __at(0x0F75) __sfr CCPR4H; 1425 1426 //============================================================================== 1427 // T4CON Bits 1428 1429 extern __at(0x0F76) __sfr T4CON; 1430 1431 typedef union 1432 { 1433 struct 1434 { 1435 unsigned T4CKPS0 : 1; 1436 unsigned T4CKPS1 : 1; 1437 unsigned TMR4ON : 1; 1438 unsigned T4OUTPS0 : 1; 1439 unsigned T4OUTPS1 : 1; 1440 unsigned T4OUTPS2 : 1; 1441 unsigned T4OUTPS3 : 1; 1442 unsigned : 1; 1443 }; 1444 1445 struct 1446 { 1447 unsigned T4CKPS : 2; 1448 unsigned : 6; 1449 }; 1450 1451 struct 1452 { 1453 unsigned : 3; 1454 unsigned T4OUTPS : 4; 1455 unsigned : 1; 1456 }; 1457 } __T4CONbits_t; 1458 1459 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits; 1460 1461 #define _T4CKPS0 0x01 1462 #define _T4CKPS1 0x02 1463 #define _TMR4ON 0x04 1464 #define _T4OUTPS0 0x08 1465 #define _T4OUTPS1 0x10 1466 #define _T4OUTPS2 0x20 1467 #define _T4OUTPS3 0x40 1468 1469 //============================================================================== 1470 1471 extern __at(0x0F77) __sfr PR4; 1472 extern __at(0x0F78) __sfr TMR4; 1473 1474 //============================================================================== 1475 // ECCP1DEL Bits 1476 1477 extern __at(0x0F79) __sfr ECCP1DEL; 1478 1479 typedef union 1480 { 1481 struct 1482 { 1483 unsigned PDC0 : 1; 1484 unsigned PDC1 : 1; 1485 unsigned PDC2 : 1; 1486 unsigned PDC3 : 1; 1487 unsigned PDC4 : 1; 1488 unsigned PDC5 : 1; 1489 unsigned PDC6 : 1; 1490 unsigned PRSEN : 1; 1491 }; 1492 1493 struct 1494 { 1495 unsigned P1DC0 : 1; 1496 unsigned P1DC1 : 1; 1497 unsigned P1DC2 : 1; 1498 unsigned P1DC3 : 1; 1499 unsigned P1DC4 : 1; 1500 unsigned P1DC5 : 1; 1501 unsigned P1DC6 : 1; 1502 unsigned P1RSEN : 1; 1503 }; 1504 1505 struct 1506 { 1507 unsigned P1DC : 7; 1508 unsigned : 1; 1509 }; 1510 1511 struct 1512 { 1513 unsigned PDC : 7; 1514 unsigned : 1; 1515 }; 1516 } __ECCP1DELbits_t; 1517 1518 extern __at(0x0F79) volatile __ECCP1DELbits_t ECCP1DELbits; 1519 1520 #define _PDC0 0x01 1521 #define _P1DC0 0x01 1522 #define _PDC1 0x02 1523 #define _P1DC1 0x02 1524 #define _PDC2 0x04 1525 #define _P1DC2 0x04 1526 #define _PDC3 0x08 1527 #define _P1DC3 0x08 1528 #define _PDC4 0x10 1529 #define _P1DC4 0x10 1530 #define _PDC5 0x20 1531 #define _P1DC5 0x20 1532 #define _PDC6 0x40 1533 #define _P1DC6 0x40 1534 #define _PRSEN 0x80 1535 #define _P1RSEN 0x80 1536 1537 //============================================================================== 1538 1539 extern __at(0x0F7A) __sfr ERDPT; 1540 extern __at(0x0F7A) __sfr ERDPTL; 1541 extern __at(0x0F7B) __sfr ERDPTH; 1542 1543 //============================================================================== 1544 // BAUDCON2 Bits 1545 1546 extern __at(0x0F7C) __sfr BAUDCON2; 1547 1548 typedef union 1549 { 1550 struct 1551 { 1552 unsigned ABDEN : 1; 1553 unsigned WUE : 1; 1554 unsigned : 1; 1555 unsigned BRG16 : 1; 1556 unsigned TXCKP : 1; 1557 unsigned RXDTP : 1; 1558 unsigned RCIDL : 1; 1559 unsigned ABDOVF : 1; 1560 }; 1561 1562 struct 1563 { 1564 unsigned ABDEN2 : 1; 1565 unsigned WUE2 : 1; 1566 unsigned : 1; 1567 unsigned BRG162 : 1; 1568 unsigned SCKP : 1; 1569 unsigned RXDTP2 : 1; 1570 unsigned RCMT : 1; 1571 unsigned ABDOVF2 : 1; 1572 }; 1573 1574 struct 1575 { 1576 unsigned : 1; 1577 unsigned : 1; 1578 unsigned : 1; 1579 unsigned : 1; 1580 unsigned TXCKP2 : 1; 1581 unsigned : 1; 1582 unsigned RCIDL2 : 1; 1583 unsigned : 1; 1584 }; 1585 } __BAUDCON2bits_t; 1586 1587 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits; 1588 1589 #define _BAUDCON2_ABDEN 0x01 1590 #define _BAUDCON2_ABDEN2 0x01 1591 #define _BAUDCON2_WUE 0x02 1592 #define _BAUDCON2_WUE2 0x02 1593 #define _BAUDCON2_BRG16 0x08 1594 #define _BAUDCON2_BRG162 0x08 1595 #define _BAUDCON2_TXCKP 0x10 1596 #define _BAUDCON2_SCKP 0x10 1597 #define _BAUDCON2_TXCKP2 0x10 1598 #define _BAUDCON2_RXDTP 0x20 1599 #define _BAUDCON2_RXDTP2 0x20 1600 #define _BAUDCON2_RCIDL 0x40 1601 #define _BAUDCON2_RCMT 0x40 1602 #define _BAUDCON2_RCIDL2 0x40 1603 #define _BAUDCON2_ABDOVF 0x80 1604 #define _BAUDCON2_ABDOVF2 0x80 1605 1606 //============================================================================== 1607 1608 1609 //============================================================================== 1610 // BAUDCTL2 Bits 1611 1612 extern __at(0x0F7C) __sfr BAUDCTL2; 1613 1614 typedef union 1615 { 1616 struct 1617 { 1618 unsigned ABDEN : 1; 1619 unsigned WUE : 1; 1620 unsigned : 1; 1621 unsigned BRG16 : 1; 1622 unsigned TXCKP : 1; 1623 unsigned RXDTP : 1; 1624 unsigned RCIDL : 1; 1625 unsigned ABDOVF : 1; 1626 }; 1627 1628 struct 1629 { 1630 unsigned ABDEN2 : 1; 1631 unsigned WUE2 : 1; 1632 unsigned : 1; 1633 unsigned BRG162 : 1; 1634 unsigned SCKP : 1; 1635 unsigned RXDTP2 : 1; 1636 unsigned RCMT : 1; 1637 unsigned ABDOVF2 : 1; 1638 }; 1639 1640 struct 1641 { 1642 unsigned : 1; 1643 unsigned : 1; 1644 unsigned : 1; 1645 unsigned : 1; 1646 unsigned TXCKP2 : 1; 1647 unsigned : 1; 1648 unsigned RCIDL2 : 1; 1649 unsigned : 1; 1650 }; 1651 } __BAUDCTL2bits_t; 1652 1653 extern __at(0x0F7C) volatile __BAUDCTL2bits_t BAUDCTL2bits; 1654 1655 #define _BAUDCTL2_ABDEN 0x01 1656 #define _BAUDCTL2_ABDEN2 0x01 1657 #define _BAUDCTL2_WUE 0x02 1658 #define _BAUDCTL2_WUE2 0x02 1659 #define _BAUDCTL2_BRG16 0x08 1660 #define _BAUDCTL2_BRG162 0x08 1661 #define _BAUDCTL2_TXCKP 0x10 1662 #define _BAUDCTL2_SCKP 0x10 1663 #define _BAUDCTL2_TXCKP2 0x10 1664 #define _BAUDCTL2_RXDTP 0x20 1665 #define _BAUDCTL2_RXDTP2 0x20 1666 #define _BAUDCTL2_RCIDL 0x40 1667 #define _BAUDCTL2_RCMT 0x40 1668 #define _BAUDCTL2_RCIDL2 0x40 1669 #define _BAUDCTL2_ABDOVF 0x80 1670 #define _BAUDCTL2_ABDOVF2 0x80 1671 1672 //============================================================================== 1673 1674 extern __at(0x0F7D) __sfr SPBRGH2; 1675 1676 //============================================================================== 1677 // BAUDCON Bits 1678 1679 extern __at(0x0F7E) __sfr BAUDCON; 1680 1681 typedef union 1682 { 1683 struct 1684 { 1685 unsigned ABDEN : 1; 1686 unsigned WUE : 1; 1687 unsigned : 1; 1688 unsigned BRG16 : 1; 1689 unsigned TXCKP : 1; 1690 unsigned RXDTP : 1; 1691 unsigned RCIDL : 1; 1692 unsigned ABDOVF : 1; 1693 }; 1694 1695 struct 1696 { 1697 unsigned : 1; 1698 unsigned : 1; 1699 unsigned : 1; 1700 unsigned : 1; 1701 unsigned SCKP : 1; 1702 unsigned : 1; 1703 unsigned RCMT : 1; 1704 unsigned : 1; 1705 }; 1706 } __BAUDCONbits_t; 1707 1708 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits; 1709 1710 #define _ABDEN 0x01 1711 #define _WUE 0x02 1712 #define _BRG16 0x08 1713 #define _TXCKP 0x10 1714 #define _SCKP 0x10 1715 #define _RXDTP 0x20 1716 #define _RCIDL 0x40 1717 #define _RCMT 0x40 1718 #define _ABDOVF 0x80 1719 1720 //============================================================================== 1721 1722 1723 //============================================================================== 1724 // BAUDCON1 Bits 1725 1726 extern __at(0x0F7E) __sfr BAUDCON1; 1727 1728 typedef union 1729 { 1730 struct 1731 { 1732 unsigned ABDEN : 1; 1733 unsigned WUE : 1; 1734 unsigned : 1; 1735 unsigned BRG16 : 1; 1736 unsigned TXCKP : 1; 1737 unsigned RXDTP : 1; 1738 unsigned RCIDL : 1; 1739 unsigned ABDOVF : 1; 1740 }; 1741 1742 struct 1743 { 1744 unsigned : 1; 1745 unsigned : 1; 1746 unsigned : 1; 1747 unsigned : 1; 1748 unsigned SCKP : 1; 1749 unsigned : 1; 1750 unsigned RCMT : 1; 1751 unsigned : 1; 1752 }; 1753 } __BAUDCON1bits_t; 1754 1755 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 1756 1757 #define _BAUDCON1_ABDEN 0x01 1758 #define _BAUDCON1_WUE 0x02 1759 #define _BAUDCON1_BRG16 0x08 1760 #define _BAUDCON1_TXCKP 0x10 1761 #define _BAUDCON1_SCKP 0x10 1762 #define _BAUDCON1_RXDTP 0x20 1763 #define _BAUDCON1_RCIDL 0x40 1764 #define _BAUDCON1_RCMT 0x40 1765 #define _BAUDCON1_ABDOVF 0x80 1766 1767 //============================================================================== 1768 1769 1770 //============================================================================== 1771 // BAUDCTL Bits 1772 1773 extern __at(0x0F7E) __sfr BAUDCTL; 1774 1775 typedef union 1776 { 1777 struct 1778 { 1779 unsigned ABDEN : 1; 1780 unsigned WUE : 1; 1781 unsigned : 1; 1782 unsigned BRG16 : 1; 1783 unsigned TXCKP : 1; 1784 unsigned RXDTP : 1; 1785 unsigned RCIDL : 1; 1786 unsigned ABDOVF : 1; 1787 }; 1788 1789 struct 1790 { 1791 unsigned : 1; 1792 unsigned : 1; 1793 unsigned : 1; 1794 unsigned : 1; 1795 unsigned SCKP : 1; 1796 unsigned : 1; 1797 unsigned RCMT : 1; 1798 unsigned : 1; 1799 }; 1800 } __BAUDCTLbits_t; 1801 1802 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits; 1803 1804 #define _BAUDCTL_ABDEN 0x01 1805 #define _BAUDCTL_WUE 0x02 1806 #define _BAUDCTL_BRG16 0x08 1807 #define _BAUDCTL_TXCKP 0x10 1808 #define _BAUDCTL_SCKP 0x10 1809 #define _BAUDCTL_RXDTP 0x20 1810 #define _BAUDCTL_RCIDL 0x40 1811 #define _BAUDCTL_RCMT 0x40 1812 #define _BAUDCTL_ABDOVF 0x80 1813 1814 //============================================================================== 1815 1816 1817 //============================================================================== 1818 // BAUDCTL1 Bits 1819 1820 extern __at(0x0F7E) __sfr BAUDCTL1; 1821 1822 typedef union 1823 { 1824 struct 1825 { 1826 unsigned ABDEN : 1; 1827 unsigned WUE : 1; 1828 unsigned : 1; 1829 unsigned BRG16 : 1; 1830 unsigned TXCKP : 1; 1831 unsigned RXDTP : 1; 1832 unsigned RCIDL : 1; 1833 unsigned ABDOVF : 1; 1834 }; 1835 1836 struct 1837 { 1838 unsigned : 1; 1839 unsigned : 1; 1840 unsigned : 1; 1841 unsigned : 1; 1842 unsigned SCKP : 1; 1843 unsigned : 1; 1844 unsigned RCMT : 1; 1845 unsigned : 1; 1846 }; 1847 } __BAUDCTL1bits_t; 1848 1849 extern __at(0x0F7E) volatile __BAUDCTL1bits_t BAUDCTL1bits; 1850 1851 #define _BAUDCTL1_ABDEN 0x01 1852 #define _BAUDCTL1_WUE 0x02 1853 #define _BAUDCTL1_BRG16 0x08 1854 #define _BAUDCTL1_TXCKP 0x10 1855 #define _BAUDCTL1_SCKP 0x10 1856 #define _BAUDCTL1_RXDTP 0x20 1857 #define _BAUDCTL1_RCIDL 0x40 1858 #define _BAUDCTL1_RCMT 0x40 1859 #define _BAUDCTL1_ABDOVF 0x80 1860 1861 //============================================================================== 1862 1863 extern __at(0x0F7F) __sfr SPBRGH; 1864 extern __at(0x0F7F) __sfr SPBRGH1; 1865 1866 //============================================================================== 1867 // PORTA Bits 1868 1869 extern __at(0x0F80) __sfr PORTA; 1870 1871 typedef union 1872 { 1873 struct 1874 { 1875 unsigned RA0 : 1; 1876 unsigned RA1 : 1; 1877 unsigned RA2 : 1; 1878 unsigned RA3 : 1; 1879 unsigned RA4 : 1; 1880 unsigned RA5 : 1; 1881 unsigned : 1; 1882 unsigned RJPU : 1; 1883 }; 1884 1885 struct 1886 { 1887 unsigned AN0 : 1; 1888 unsigned AN1 : 1; 1889 unsigned AN2 : 1; 1890 unsigned AN3 : 1; 1891 unsigned T0CKI : 1; 1892 unsigned AN4 : 1; 1893 unsigned : 1; 1894 unsigned : 1; 1895 }; 1896 1897 struct 1898 { 1899 unsigned LEDA : 1; 1900 unsigned LEDB : 1; 1901 unsigned VREFM : 1; 1902 unsigned VREFP : 1; 1903 unsigned : 1; 1904 unsigned : 1; 1905 unsigned : 1; 1906 unsigned : 1; 1907 }; 1908 1909 struct 1910 { 1911 unsigned RA : 6; 1912 unsigned : 2; 1913 }; 1914 } __PORTAbits_t; 1915 1916 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 1917 1918 #define _PORTA_RA0 0x01 1919 #define _PORTA_AN0 0x01 1920 #define _PORTA_LEDA 0x01 1921 #define _PORTA_RA1 0x02 1922 #define _PORTA_AN1 0x02 1923 #define _PORTA_LEDB 0x02 1924 #define _PORTA_RA2 0x04 1925 #define _PORTA_AN2 0x04 1926 #define _PORTA_VREFM 0x04 1927 #define _PORTA_RA3 0x08 1928 #define _PORTA_AN3 0x08 1929 #define _PORTA_VREFP 0x08 1930 #define _PORTA_RA4 0x10 1931 #define _PORTA_T0CKI 0x10 1932 #define _PORTA_RA5 0x20 1933 #define _PORTA_AN4 0x20 1934 #define _PORTA_RJPU 0x80 1935 1936 //============================================================================== 1937 1938 1939 //============================================================================== 1940 // PORTB Bits 1941 1942 extern __at(0x0F81) __sfr PORTB; 1943 1944 typedef union 1945 { 1946 struct 1947 { 1948 unsigned RB0 : 1; 1949 unsigned RB1 : 1; 1950 unsigned RB2 : 1; 1951 unsigned RB3 : 1; 1952 unsigned RB4 : 1; 1953 unsigned RB5 : 1; 1954 unsigned RB6 : 1; 1955 unsigned RB7 : 1; 1956 }; 1957 1958 struct 1959 { 1960 unsigned INT0 : 1; 1961 unsigned INT1 : 1; 1962 unsigned INT2 : 1; 1963 unsigned INT3 : 1; 1964 unsigned KBI0 : 1; 1965 unsigned KBI1 : 1; 1966 unsigned KBI2 : 1; 1967 unsigned KBI3 : 1; 1968 }; 1969 1970 struct 1971 { 1972 unsigned FLT0 : 1; 1973 unsigned : 1; 1974 unsigned : 1; 1975 unsigned CCP2 : 1; 1976 unsigned : 1; 1977 unsigned : 1; 1978 unsigned PGC : 1; 1979 unsigned PGD : 1; 1980 }; 1981 1982 struct 1983 { 1984 unsigned : 1; 1985 unsigned : 1; 1986 unsigned : 1; 1987 unsigned ECCP2 : 1; 1988 unsigned : 1; 1989 unsigned : 1; 1990 unsigned : 1; 1991 unsigned : 1; 1992 }; 1993 1994 struct 1995 { 1996 unsigned INT : 4; 1997 unsigned : 4; 1998 }; 1999 2000 struct 2001 { 2002 unsigned : 4; 2003 unsigned KBI : 4; 2004 }; 2005 } __PORTBbits_t; 2006 2007 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 2008 2009 #define _PORTB_RB0 0x01 2010 #define _PORTB_INT0 0x01 2011 #define _PORTB_FLT0 0x01 2012 #define _PORTB_RB1 0x02 2013 #define _PORTB_INT1 0x02 2014 #define _PORTB_RB2 0x04 2015 #define _PORTB_INT2 0x04 2016 #define _PORTB_RB3 0x08 2017 #define _PORTB_INT3 0x08 2018 #define _PORTB_CCP2 0x08 2019 #define _PORTB_ECCP2 0x08 2020 #define _PORTB_RB4 0x10 2021 #define _PORTB_KBI0 0x10 2022 #define _PORTB_RB5 0x20 2023 #define _PORTB_KBI1 0x20 2024 #define _PORTB_RB6 0x40 2025 #define _PORTB_KBI2 0x40 2026 #define _PORTB_PGC 0x40 2027 #define _PORTB_RB7 0x80 2028 #define _PORTB_KBI3 0x80 2029 #define _PORTB_PGD 0x80 2030 2031 //============================================================================== 2032 2033 2034 //============================================================================== 2035 // PORTC Bits 2036 2037 extern __at(0x0F82) __sfr PORTC; 2038 2039 typedef union 2040 { 2041 struct 2042 { 2043 unsigned RC0 : 1; 2044 unsigned RC1 : 1; 2045 unsigned RC2 : 1; 2046 unsigned RC3 : 1; 2047 unsigned RC4 : 1; 2048 unsigned RC5 : 1; 2049 unsigned RC6 : 1; 2050 unsigned RC7 : 1; 2051 }; 2052 2053 struct 2054 { 2055 unsigned T1OSO : 1; 2056 unsigned T1OSI : 1; 2057 unsigned CCP1 : 1; 2058 unsigned SCK : 1; 2059 unsigned SDI : 1; 2060 unsigned SDO : 1; 2061 unsigned TX : 1; 2062 unsigned RX : 1; 2063 }; 2064 2065 struct 2066 { 2067 unsigned T13CKI : 1; 2068 unsigned CCP2 : 1; 2069 unsigned ECCP1 : 1; 2070 unsigned SCL : 1; 2071 unsigned SDA : 1; 2072 unsigned SDO1 : 1; 2073 unsigned CK : 1; 2074 unsigned RX1 : 1; 2075 }; 2076 2077 struct 2078 { 2079 unsigned : 1; 2080 unsigned ECCP2 : 1; 2081 unsigned : 1; 2082 unsigned SCK1 : 1; 2083 unsigned SDI1 : 1; 2084 unsigned : 1; 2085 unsigned TX1 : 1; 2086 unsigned DT1 : 1; 2087 }; 2088 2089 struct 2090 { 2091 unsigned : 1; 2092 unsigned : 1; 2093 unsigned : 1; 2094 unsigned SCL1 : 1; 2095 unsigned SDA1 : 1; 2096 unsigned : 1; 2097 unsigned CK1 : 1; 2098 unsigned : 1; 2099 }; 2100 } __PORTCbits_t; 2101 2102 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 2103 2104 #define _PORTC_RC0 0x01 2105 #define _PORTC_T1OSO 0x01 2106 #define _PORTC_T13CKI 0x01 2107 #define _PORTC_RC1 0x02 2108 #define _PORTC_T1OSI 0x02 2109 #define _PORTC_CCP2 0x02 2110 #define _PORTC_ECCP2 0x02 2111 #define _PORTC_RC2 0x04 2112 #define _PORTC_CCP1 0x04 2113 #define _PORTC_ECCP1 0x04 2114 #define _PORTC_RC3 0x08 2115 #define _PORTC_SCK 0x08 2116 #define _PORTC_SCL 0x08 2117 #define _PORTC_SCK1 0x08 2118 #define _PORTC_SCL1 0x08 2119 #define _PORTC_RC4 0x10 2120 #define _PORTC_SDI 0x10 2121 #define _PORTC_SDA 0x10 2122 #define _PORTC_SDI1 0x10 2123 #define _PORTC_SDA1 0x10 2124 #define _PORTC_RC5 0x20 2125 #define _PORTC_SDO 0x20 2126 #define _PORTC_SDO1 0x20 2127 #define _PORTC_RC6 0x40 2128 #define _PORTC_TX 0x40 2129 #define _PORTC_CK 0x40 2130 #define _PORTC_TX1 0x40 2131 #define _PORTC_CK1 0x40 2132 #define _PORTC_RC7 0x80 2133 #define _PORTC_RX 0x80 2134 #define _PORTC_RX1 0x80 2135 #define _PORTC_DT1 0x80 2136 2137 //============================================================================== 2138 2139 2140 //============================================================================== 2141 // PORTD Bits 2142 2143 extern __at(0x0F83) __sfr PORTD; 2144 2145 typedef union 2146 { 2147 struct 2148 { 2149 unsigned RD0 : 1; 2150 unsigned RD1 : 1; 2151 unsigned RD2 : 1; 2152 unsigned RD3 : 1; 2153 unsigned RD4 : 1; 2154 unsigned RD5 : 1; 2155 unsigned RD6 : 1; 2156 unsigned RD7 : 1; 2157 }; 2158 2159 struct 2160 { 2161 unsigned PSP0 : 1; 2162 unsigned PSP1 : 1; 2163 unsigned PSP2 : 1; 2164 unsigned PSP3 : 1; 2165 unsigned PSP4 : 1; 2166 unsigned PSP5 : 1; 2167 unsigned PSP6 : 1; 2168 unsigned PSP7 : 1; 2169 }; 2170 2171 struct 2172 { 2173 unsigned AD0 : 1; 2174 unsigned AD1 : 1; 2175 unsigned AD2 : 1; 2176 unsigned AD3 : 1; 2177 unsigned AD4 : 1; 2178 unsigned AD5 : 1; 2179 unsigned AD6 : 1; 2180 unsigned AD7 : 1; 2181 }; 2182 2183 struct 2184 { 2185 unsigned : 1; 2186 unsigned : 1; 2187 unsigned : 1; 2188 unsigned : 1; 2189 unsigned SDO2 : 1; 2190 unsigned SDA2 : 1; 2191 unsigned SCL2 : 1; 2192 unsigned SS2 : 1; 2193 }; 2194 2195 struct 2196 { 2197 unsigned : 1; 2198 unsigned : 1; 2199 unsigned : 1; 2200 unsigned : 1; 2201 unsigned : 1; 2202 unsigned SDI2 : 1; 2203 unsigned SCK2 : 1; 2204 unsigned NOT_SS2 : 1; 2205 }; 2206 } __PORTDbits_t; 2207 2208 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 2209 2210 #define _PORTD_RD0 0x01 2211 #define _PORTD_PSP0 0x01 2212 #define _PORTD_AD0 0x01 2213 #define _PORTD_RD1 0x02 2214 #define _PORTD_PSP1 0x02 2215 #define _PORTD_AD1 0x02 2216 #define _PORTD_RD2 0x04 2217 #define _PORTD_PSP2 0x04 2218 #define _PORTD_AD2 0x04 2219 #define _PORTD_RD3 0x08 2220 #define _PORTD_PSP3 0x08 2221 #define _PORTD_AD3 0x08 2222 #define _PORTD_RD4 0x10 2223 #define _PORTD_PSP4 0x10 2224 #define _PORTD_AD4 0x10 2225 #define _PORTD_SDO2 0x10 2226 #define _PORTD_RD5 0x20 2227 #define _PORTD_PSP5 0x20 2228 #define _PORTD_AD5 0x20 2229 #define _PORTD_SDA2 0x20 2230 #define _PORTD_SDI2 0x20 2231 #define _PORTD_RD6 0x40 2232 #define _PORTD_PSP6 0x40 2233 #define _PORTD_AD6 0x40 2234 #define _PORTD_SCL2 0x40 2235 #define _PORTD_SCK2 0x40 2236 #define _PORTD_RD7 0x80 2237 #define _PORTD_PSP7 0x80 2238 #define _PORTD_AD7 0x80 2239 #define _PORTD_SS2 0x80 2240 #define _PORTD_NOT_SS2 0x80 2241 2242 //============================================================================== 2243 2244 2245 //============================================================================== 2246 // PORTE Bits 2247 2248 extern __at(0x0F84) __sfr PORTE; 2249 2250 typedef union 2251 { 2252 struct 2253 { 2254 unsigned RE0 : 1; 2255 unsigned RE1 : 1; 2256 unsigned RE2 : 1; 2257 unsigned RE3 : 1; 2258 unsigned RE4 : 1; 2259 unsigned RE5 : 1; 2260 unsigned RE6 : 1; 2261 unsigned RE7 : 1; 2262 }; 2263 2264 struct 2265 { 2266 unsigned RD : 1; 2267 unsigned WR : 1; 2268 unsigned CS : 1; 2269 unsigned AD11 : 1; 2270 unsigned AD12 : 1; 2271 unsigned AD13 : 1; 2272 unsigned AD14 : 1; 2273 unsigned CCP2 : 1; 2274 }; 2275 2276 struct 2277 { 2278 unsigned AD8 : 1; 2279 unsigned AD9 : 1; 2280 unsigned AD10 : 1; 2281 unsigned : 1; 2282 unsigned : 1; 2283 unsigned : 1; 2284 unsigned : 1; 2285 unsigned AD15 : 1; 2286 }; 2287 2288 struct 2289 { 2290 unsigned NOT_RD : 1; 2291 unsigned NOT_WR : 1; 2292 unsigned NOT_CS : 1; 2293 unsigned : 1; 2294 unsigned : 1; 2295 unsigned : 1; 2296 unsigned : 1; 2297 unsigned ECCP2 : 1; 2298 }; 2299 } __PORTEbits_t; 2300 2301 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 2302 2303 #define _PORTE_RE0 0x01 2304 #define _PORTE_RD 0x01 2305 #define _PORTE_AD8 0x01 2306 #define _PORTE_NOT_RD 0x01 2307 #define _PORTE_RE1 0x02 2308 #define _PORTE_WR 0x02 2309 #define _PORTE_AD9 0x02 2310 #define _PORTE_NOT_WR 0x02 2311 #define _PORTE_RE2 0x04 2312 #define _PORTE_CS 0x04 2313 #define _PORTE_AD10 0x04 2314 #define _PORTE_NOT_CS 0x04 2315 #define _PORTE_RE3 0x08 2316 #define _PORTE_AD11 0x08 2317 #define _PORTE_RE4 0x10 2318 #define _PORTE_AD12 0x10 2319 #define _PORTE_RE5 0x20 2320 #define _PORTE_AD13 0x20 2321 #define _PORTE_RE6 0x40 2322 #define _PORTE_AD14 0x40 2323 #define _PORTE_RE7 0x80 2324 #define _PORTE_CCP2 0x80 2325 #define _PORTE_AD15 0x80 2326 #define _PORTE_ECCP2 0x80 2327 2328 //============================================================================== 2329 2330 2331 //============================================================================== 2332 // PORTF Bits 2333 2334 extern __at(0x0F85) __sfr PORTF; 2335 2336 typedef union 2337 { 2338 struct 2339 { 2340 unsigned RF0 : 1; 2341 unsigned RF1 : 1; 2342 unsigned RF2 : 1; 2343 unsigned RF3 : 1; 2344 unsigned RF4 : 1; 2345 unsigned RF5 : 1; 2346 unsigned RF6 : 1; 2347 unsigned RF7 : 1; 2348 }; 2349 2350 struct 2351 { 2352 unsigned AN5 : 1; 2353 unsigned AN6 : 1; 2354 unsigned AN7 : 1; 2355 unsigned AN8 : 1; 2356 unsigned AN9 : 1; 2357 unsigned AN10 : 1; 2358 unsigned AN11 : 1; 2359 unsigned SS : 1; 2360 }; 2361 2362 struct 2363 { 2364 unsigned : 1; 2365 unsigned : 1; 2366 unsigned : 1; 2367 unsigned : 1; 2368 unsigned : 1; 2369 unsigned CVREF : 1; 2370 unsigned : 1; 2371 unsigned NOT_SS : 1; 2372 }; 2373 2374 struct 2375 { 2376 unsigned : 1; 2377 unsigned : 1; 2378 unsigned : 1; 2379 unsigned : 1; 2380 unsigned : 1; 2381 unsigned : 1; 2382 unsigned : 1; 2383 unsigned SS1 : 1; 2384 }; 2385 2386 struct 2387 { 2388 unsigned : 1; 2389 unsigned : 1; 2390 unsigned : 1; 2391 unsigned : 1; 2392 unsigned : 1; 2393 unsigned : 1; 2394 unsigned : 1; 2395 unsigned NOT_SS1 : 1; 2396 }; 2397 } __PORTFbits_t; 2398 2399 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits; 2400 2401 #define _PORTF_RF0 0x01 2402 #define _PORTF_AN5 0x01 2403 #define _PORTF_RF1 0x02 2404 #define _PORTF_AN6 0x02 2405 #define _PORTF_RF2 0x04 2406 #define _PORTF_AN7 0x04 2407 #define _PORTF_RF3 0x08 2408 #define _PORTF_AN8 0x08 2409 #define _PORTF_RF4 0x10 2410 #define _PORTF_AN9 0x10 2411 #define _PORTF_RF5 0x20 2412 #define _PORTF_AN10 0x20 2413 #define _PORTF_CVREF 0x20 2414 #define _PORTF_RF6 0x40 2415 #define _PORTF_AN11 0x40 2416 #define _PORTF_RF7 0x80 2417 #define _PORTF_SS 0x80 2418 #define _PORTF_NOT_SS 0x80 2419 #define _PORTF_SS1 0x80 2420 #define _PORTF_NOT_SS1 0x80 2421 2422 //============================================================================== 2423 2424 2425 //============================================================================== 2426 // PORTG Bits 2427 2428 extern __at(0x0F86) __sfr PORTG; 2429 2430 typedef union 2431 { 2432 struct 2433 { 2434 unsigned RG0 : 1; 2435 unsigned RG1 : 1; 2436 unsigned RG2 : 1; 2437 unsigned RG3 : 1; 2438 unsigned RG4 : 1; 2439 unsigned RG5 : 1; 2440 unsigned RG6 : 1; 2441 unsigned RG7 : 1; 2442 }; 2443 2444 struct 2445 { 2446 unsigned CCP3 : 1; 2447 unsigned TX2 : 1; 2448 unsigned RX2 : 1; 2449 unsigned CCP4 : 1; 2450 unsigned CCP5 : 1; 2451 unsigned : 1; 2452 unsigned : 1; 2453 unsigned : 1; 2454 }; 2455 2456 struct 2457 { 2458 unsigned ECCP3 : 1; 2459 unsigned CK2 : 1; 2460 unsigned DT2 : 1; 2461 unsigned : 1; 2462 unsigned : 1; 2463 unsigned : 1; 2464 unsigned : 1; 2465 unsigned : 1; 2466 }; 2467 } __PORTGbits_t; 2468 2469 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits; 2470 2471 #define _PORTG_RG0 0x01 2472 #define _PORTG_CCP3 0x01 2473 #define _PORTG_ECCP3 0x01 2474 #define _PORTG_RG1 0x02 2475 #define _PORTG_TX2 0x02 2476 #define _PORTG_CK2 0x02 2477 #define _PORTG_RG2 0x04 2478 #define _PORTG_RX2 0x04 2479 #define _PORTG_DT2 0x04 2480 #define _PORTG_RG3 0x08 2481 #define _PORTG_CCP4 0x08 2482 #define _PORTG_RG4 0x10 2483 #define _PORTG_CCP5 0x10 2484 #define _PORTG_RG5 0x20 2485 #define _PORTG_RG6 0x40 2486 #define _PORTG_RG7 0x80 2487 2488 //============================================================================== 2489 2490 2491 //============================================================================== 2492 // PORTH Bits 2493 2494 extern __at(0x0F87) __sfr PORTH; 2495 2496 typedef union 2497 { 2498 struct 2499 { 2500 unsigned RH0 : 1; 2501 unsigned RH1 : 1; 2502 unsigned RH2 : 1; 2503 unsigned RH3 : 1; 2504 unsigned RH4 : 1; 2505 unsigned RH5 : 1; 2506 unsigned RH6 : 1; 2507 unsigned RH7 : 1; 2508 }; 2509 2510 struct 2511 { 2512 unsigned AD16 : 1; 2513 unsigned AD17 : 1; 2514 unsigned AD18 : 1; 2515 unsigned AD19 : 1; 2516 unsigned AN12 : 1; 2517 unsigned AN13 : 1; 2518 unsigned AN14 : 1; 2519 unsigned AN15 : 1; 2520 }; 2521 } __PORTHbits_t; 2522 2523 extern __at(0x0F87) volatile __PORTHbits_t PORTHbits; 2524 2525 #define _PORTH_RH0 0x01 2526 #define _PORTH_AD16 0x01 2527 #define _PORTH_RH1 0x02 2528 #define _PORTH_AD17 0x02 2529 #define _PORTH_RH2 0x04 2530 #define _PORTH_AD18 0x04 2531 #define _PORTH_RH3 0x08 2532 #define _PORTH_AD19 0x08 2533 #define _PORTH_RH4 0x10 2534 #define _PORTH_AN12 0x10 2535 #define _PORTH_RH5 0x20 2536 #define _PORTH_AN13 0x20 2537 #define _PORTH_RH6 0x40 2538 #define _PORTH_AN14 0x40 2539 #define _PORTH_RH7 0x80 2540 #define _PORTH_AN15 0x80 2541 2542 //============================================================================== 2543 2544 2545 //============================================================================== 2546 // PORTJ Bits 2547 2548 extern __at(0x0F88) __sfr PORTJ; 2549 2550 typedef union 2551 { 2552 struct 2553 { 2554 unsigned RJ0 : 1; 2555 unsigned RJ1 : 1; 2556 unsigned RJ2 : 1; 2557 unsigned RJ3 : 1; 2558 unsigned RJ4 : 1; 2559 unsigned RJ5 : 1; 2560 unsigned RJ6 : 1; 2561 unsigned RJ7 : 1; 2562 }; 2563 2564 struct 2565 { 2566 unsigned ALE : 1; 2567 unsigned OE : 1; 2568 unsigned WRL : 1; 2569 unsigned WRH : 1; 2570 unsigned BA0 : 1; 2571 unsigned CE : 1; 2572 unsigned LB : 1; 2573 unsigned UB : 1; 2574 }; 2575 2576 struct 2577 { 2578 unsigned : 1; 2579 unsigned NOT_OE : 1; 2580 unsigned NOT_WRL : 1; 2581 unsigned NOT_WRH : 1; 2582 unsigned : 1; 2583 unsigned NOT_CE : 1; 2584 unsigned NOT_LB : 1; 2585 unsigned NOT_UB : 1; 2586 }; 2587 } __PORTJbits_t; 2588 2589 extern __at(0x0F88) volatile __PORTJbits_t PORTJbits; 2590 2591 #define _PORTJ_RJ0 0x01 2592 #define _PORTJ_ALE 0x01 2593 #define _PORTJ_RJ1 0x02 2594 #define _PORTJ_OE 0x02 2595 #define _PORTJ_NOT_OE 0x02 2596 #define _PORTJ_RJ2 0x04 2597 #define _PORTJ_WRL 0x04 2598 #define _PORTJ_NOT_WRL 0x04 2599 #define _PORTJ_RJ3 0x08 2600 #define _PORTJ_WRH 0x08 2601 #define _PORTJ_NOT_WRH 0x08 2602 #define _PORTJ_RJ4 0x10 2603 #define _PORTJ_BA0 0x10 2604 #define _PORTJ_RJ5 0x20 2605 #define _PORTJ_CE 0x20 2606 #define _PORTJ_NOT_CE 0x20 2607 #define _PORTJ_RJ6 0x40 2608 #define _PORTJ_LB 0x40 2609 #define _PORTJ_NOT_LB 0x40 2610 #define _PORTJ_RJ7 0x80 2611 #define _PORTJ_UB 0x80 2612 #define _PORTJ_NOT_UB 0x80 2613 2614 //============================================================================== 2615 2616 2617 //============================================================================== 2618 // LATA Bits 2619 2620 extern __at(0x0F89) __sfr LATA; 2621 2622 typedef union 2623 { 2624 struct 2625 { 2626 unsigned LATA0 : 1; 2627 unsigned LATA1 : 1; 2628 unsigned LATA2 : 1; 2629 unsigned LATA3 : 1; 2630 unsigned LATA4 : 1; 2631 unsigned LATA5 : 1; 2632 unsigned REPU : 1; 2633 unsigned RDPU : 1; 2634 }; 2635 2636 struct 2637 { 2638 unsigned LATA : 6; 2639 unsigned : 2; 2640 }; 2641 } __LATAbits_t; 2642 2643 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 2644 2645 #define _LATA0 0x01 2646 #define _LATA1 0x02 2647 #define _LATA2 0x04 2648 #define _LATA3 0x08 2649 #define _LATA4 0x10 2650 #define _LATA5 0x20 2651 #define _REPU 0x40 2652 #define _RDPU 0x80 2653 2654 //============================================================================== 2655 2656 2657 //============================================================================== 2658 // LATB Bits 2659 2660 extern __at(0x0F8A) __sfr LATB; 2661 2662 typedef struct 2663 { 2664 unsigned LATB0 : 1; 2665 unsigned LATB1 : 1; 2666 unsigned LATB2 : 1; 2667 unsigned LATB3 : 1; 2668 unsigned LATB4 : 1; 2669 unsigned LATB5 : 1; 2670 unsigned LATB6 : 1; 2671 unsigned LATB7 : 1; 2672 } __LATBbits_t; 2673 2674 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 2675 2676 #define _LATB0 0x01 2677 #define _LATB1 0x02 2678 #define _LATB2 0x04 2679 #define _LATB3 0x08 2680 #define _LATB4 0x10 2681 #define _LATB5 0x20 2682 #define _LATB6 0x40 2683 #define _LATB7 0x80 2684 2685 //============================================================================== 2686 2687 2688 //============================================================================== 2689 // LATC Bits 2690 2691 extern __at(0x0F8B) __sfr LATC; 2692 2693 typedef struct 2694 { 2695 unsigned LATC0 : 1; 2696 unsigned LATC1 : 1; 2697 unsigned LATC2 : 1; 2698 unsigned LATC3 : 1; 2699 unsigned LATC4 : 1; 2700 unsigned LATC5 : 1; 2701 unsigned LATC6 : 1; 2702 unsigned LATC7 : 1; 2703 } __LATCbits_t; 2704 2705 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 2706 2707 #define _LATC0 0x01 2708 #define _LATC1 0x02 2709 #define _LATC2 0x04 2710 #define _LATC3 0x08 2711 #define _LATC4 0x10 2712 #define _LATC5 0x20 2713 #define _LATC6 0x40 2714 #define _LATC7 0x80 2715 2716 //============================================================================== 2717 2718 2719 //============================================================================== 2720 // LATD Bits 2721 2722 extern __at(0x0F8C) __sfr LATD; 2723 2724 typedef struct 2725 { 2726 unsigned LATD0 : 1; 2727 unsigned LATD1 : 1; 2728 unsigned LATD2 : 1; 2729 unsigned LATD3 : 1; 2730 unsigned LATD4 : 1; 2731 unsigned LATD5 : 1; 2732 unsigned LATD6 : 1; 2733 unsigned LATD7 : 1; 2734 } __LATDbits_t; 2735 2736 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 2737 2738 #define _LATD0 0x01 2739 #define _LATD1 0x02 2740 #define _LATD2 0x04 2741 #define _LATD3 0x08 2742 #define _LATD4 0x10 2743 #define _LATD5 0x20 2744 #define _LATD6 0x40 2745 #define _LATD7 0x80 2746 2747 //============================================================================== 2748 2749 2750 //============================================================================== 2751 // LATE Bits 2752 2753 extern __at(0x0F8D) __sfr LATE; 2754 2755 typedef struct 2756 { 2757 unsigned LATE0 : 1; 2758 unsigned LATE1 : 1; 2759 unsigned LATE2 : 1; 2760 unsigned LATE3 : 1; 2761 unsigned LATE4 : 1; 2762 unsigned LATE5 : 1; 2763 unsigned LATE6 : 1; 2764 unsigned LATE7 : 1; 2765 } __LATEbits_t; 2766 2767 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 2768 2769 #define _LATE0 0x01 2770 #define _LATE1 0x02 2771 #define _LATE2 0x04 2772 #define _LATE3 0x08 2773 #define _LATE4 0x10 2774 #define _LATE5 0x20 2775 #define _LATE6 0x40 2776 #define _LATE7 0x80 2777 2778 //============================================================================== 2779 2780 2781 //============================================================================== 2782 // LATF Bits 2783 2784 extern __at(0x0F8E) __sfr LATF; 2785 2786 typedef struct 2787 { 2788 unsigned LATF0 : 1; 2789 unsigned LATF1 : 1; 2790 unsigned LATF2 : 1; 2791 unsigned LATF3 : 1; 2792 unsigned LATF4 : 1; 2793 unsigned LATF5 : 1; 2794 unsigned LATF6 : 1; 2795 unsigned LATF7 : 1; 2796 } __LATFbits_t; 2797 2798 extern __at(0x0F8E) volatile __LATFbits_t LATFbits; 2799 2800 #define _LATF0 0x01 2801 #define _LATF1 0x02 2802 #define _LATF2 0x04 2803 #define _LATF3 0x08 2804 #define _LATF4 0x10 2805 #define _LATF5 0x20 2806 #define _LATF6 0x40 2807 #define _LATF7 0x80 2808 2809 //============================================================================== 2810 2811 2812 //============================================================================== 2813 // LATG Bits 2814 2815 extern __at(0x0F8F) __sfr LATG; 2816 2817 typedef struct 2818 { 2819 unsigned LATG0 : 1; 2820 unsigned LATG1 : 1; 2821 unsigned LATG2 : 1; 2822 unsigned LATG3 : 1; 2823 unsigned LATG4 : 1; 2824 unsigned LATG5 : 1; 2825 unsigned LATG6 : 1; 2826 unsigned LATG7 : 1; 2827 } __LATGbits_t; 2828 2829 extern __at(0x0F8F) volatile __LATGbits_t LATGbits; 2830 2831 #define _LATG0 0x01 2832 #define _LATG1 0x02 2833 #define _LATG2 0x04 2834 #define _LATG3 0x08 2835 #define _LATG4 0x10 2836 #define _LATG5 0x20 2837 #define _LATG6 0x40 2838 #define _LATG7 0x80 2839 2840 //============================================================================== 2841 2842 2843 //============================================================================== 2844 // LATH Bits 2845 2846 extern __at(0x0F90) __sfr LATH; 2847 2848 typedef struct 2849 { 2850 unsigned LATH0 : 1; 2851 unsigned LATH1 : 1; 2852 unsigned LATH2 : 1; 2853 unsigned LATH3 : 1; 2854 unsigned LATH4 : 1; 2855 unsigned LATH5 : 1; 2856 unsigned LATH6 : 1; 2857 unsigned LATH7 : 1; 2858 } __LATHbits_t; 2859 2860 extern __at(0x0F90) volatile __LATHbits_t LATHbits; 2861 2862 #define _LATH0 0x01 2863 #define _LATH1 0x02 2864 #define _LATH2 0x04 2865 #define _LATH3 0x08 2866 #define _LATH4 0x10 2867 #define _LATH5 0x20 2868 #define _LATH6 0x40 2869 #define _LATH7 0x80 2870 2871 //============================================================================== 2872 2873 2874 //============================================================================== 2875 // LATJ Bits 2876 2877 extern __at(0x0F91) __sfr LATJ; 2878 2879 typedef struct 2880 { 2881 unsigned LATJ0 : 1; 2882 unsigned LATJ1 : 1; 2883 unsigned LATJ2 : 1; 2884 unsigned LATJ3 : 1; 2885 unsigned LATJ4 : 1; 2886 unsigned LATJ5 : 1; 2887 unsigned LATJ6 : 1; 2888 unsigned LATJ7 : 1; 2889 } __LATJbits_t; 2890 2891 extern __at(0x0F91) volatile __LATJbits_t LATJbits; 2892 2893 #define _LATJ0 0x01 2894 #define _LATJ1 0x02 2895 #define _LATJ2 0x04 2896 #define _LATJ3 0x08 2897 #define _LATJ4 0x10 2898 #define _LATJ5 0x20 2899 #define _LATJ6 0x40 2900 #define _LATJ7 0x80 2901 2902 //============================================================================== 2903 2904 2905 //============================================================================== 2906 // DDRA Bits 2907 2908 extern __at(0x0F92) __sfr DDRA; 2909 2910 typedef union 2911 { 2912 struct 2913 { 2914 unsigned TRISA0 : 1; 2915 unsigned TRISA1 : 1; 2916 unsigned TRISA2 : 1; 2917 unsigned TRISA3 : 1; 2918 unsigned TRISA4 : 1; 2919 unsigned TRISA5 : 1; 2920 unsigned : 1; 2921 unsigned : 1; 2922 }; 2923 2924 struct 2925 { 2926 unsigned RA0 : 1; 2927 unsigned RA1 : 1; 2928 unsigned RA2 : 1; 2929 unsigned RA3 : 1; 2930 unsigned RA4 : 1; 2931 unsigned RA5 : 1; 2932 unsigned : 1; 2933 unsigned : 1; 2934 }; 2935 2936 struct 2937 { 2938 unsigned RA : 6; 2939 unsigned : 2; 2940 }; 2941 2942 struct 2943 { 2944 unsigned TRISA : 6; 2945 unsigned : 2; 2946 }; 2947 } __DDRAbits_t; 2948 2949 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 2950 2951 #define _TRISA0 0x01 2952 #define _RA0 0x01 2953 #define _TRISA1 0x02 2954 #define _RA1 0x02 2955 #define _TRISA2 0x04 2956 #define _RA2 0x04 2957 #define _TRISA3 0x08 2958 #define _RA3 0x08 2959 #define _TRISA4 0x10 2960 #define _RA4 0x10 2961 #define _TRISA5 0x20 2962 #define _RA5 0x20 2963 2964 //============================================================================== 2965 2966 2967 //============================================================================== 2968 // TRISA Bits 2969 2970 extern __at(0x0F92) __sfr TRISA; 2971 2972 typedef union 2973 { 2974 struct 2975 { 2976 unsigned TRISA0 : 1; 2977 unsigned TRISA1 : 1; 2978 unsigned TRISA2 : 1; 2979 unsigned TRISA3 : 1; 2980 unsigned TRISA4 : 1; 2981 unsigned TRISA5 : 1; 2982 unsigned : 1; 2983 unsigned : 1; 2984 }; 2985 2986 struct 2987 { 2988 unsigned RA0 : 1; 2989 unsigned RA1 : 1; 2990 unsigned RA2 : 1; 2991 unsigned RA3 : 1; 2992 unsigned RA4 : 1; 2993 unsigned RA5 : 1; 2994 unsigned : 1; 2995 unsigned : 1; 2996 }; 2997 2998 struct 2999 { 3000 unsigned RA : 6; 3001 unsigned : 2; 3002 }; 3003 3004 struct 3005 { 3006 unsigned TRISA : 6; 3007 unsigned : 2; 3008 }; 3009 } __TRISAbits_t; 3010 3011 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 3012 3013 #define _TRISA_TRISA0 0x01 3014 #define _TRISA_RA0 0x01 3015 #define _TRISA_TRISA1 0x02 3016 #define _TRISA_RA1 0x02 3017 #define _TRISA_TRISA2 0x04 3018 #define _TRISA_RA2 0x04 3019 #define _TRISA_TRISA3 0x08 3020 #define _TRISA_RA3 0x08 3021 #define _TRISA_TRISA4 0x10 3022 #define _TRISA_RA4 0x10 3023 #define _TRISA_TRISA5 0x20 3024 #define _TRISA_RA5 0x20 3025 3026 //============================================================================== 3027 3028 3029 //============================================================================== 3030 // DDRB Bits 3031 3032 extern __at(0x0F93) __sfr DDRB; 3033 3034 typedef union 3035 { 3036 struct 3037 { 3038 unsigned TRISB0 : 1; 3039 unsigned TRISB1 : 1; 3040 unsigned TRISB2 : 1; 3041 unsigned TRISB3 : 1; 3042 unsigned TRISB4 : 1; 3043 unsigned TRISB5 : 1; 3044 unsigned TRISB6 : 1; 3045 unsigned TRISB7 : 1; 3046 }; 3047 3048 struct 3049 { 3050 unsigned RB0 : 1; 3051 unsigned RB1 : 1; 3052 unsigned RB2 : 1; 3053 unsigned RB3 : 1; 3054 unsigned RB4 : 1; 3055 unsigned RB5 : 1; 3056 unsigned RB6 : 1; 3057 unsigned RB7 : 1; 3058 }; 3059 } __DDRBbits_t; 3060 3061 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 3062 3063 #define _TRISB0 0x01 3064 #define _RB0 0x01 3065 #define _TRISB1 0x02 3066 #define _RB1 0x02 3067 #define _TRISB2 0x04 3068 #define _RB2 0x04 3069 #define _TRISB3 0x08 3070 #define _RB3 0x08 3071 #define _TRISB4 0x10 3072 #define _RB4 0x10 3073 #define _TRISB5 0x20 3074 #define _RB5 0x20 3075 #define _TRISB6 0x40 3076 #define _RB6 0x40 3077 #define _TRISB7 0x80 3078 #define _RB7 0x80 3079 3080 //============================================================================== 3081 3082 3083 //============================================================================== 3084 // TRISB Bits 3085 3086 extern __at(0x0F93) __sfr TRISB; 3087 3088 typedef union 3089 { 3090 struct 3091 { 3092 unsigned TRISB0 : 1; 3093 unsigned TRISB1 : 1; 3094 unsigned TRISB2 : 1; 3095 unsigned TRISB3 : 1; 3096 unsigned TRISB4 : 1; 3097 unsigned TRISB5 : 1; 3098 unsigned TRISB6 : 1; 3099 unsigned TRISB7 : 1; 3100 }; 3101 3102 struct 3103 { 3104 unsigned RB0 : 1; 3105 unsigned RB1 : 1; 3106 unsigned RB2 : 1; 3107 unsigned RB3 : 1; 3108 unsigned RB4 : 1; 3109 unsigned RB5 : 1; 3110 unsigned RB6 : 1; 3111 unsigned RB7 : 1; 3112 }; 3113 } __TRISBbits_t; 3114 3115 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 3116 3117 #define _TRISB_TRISB0 0x01 3118 #define _TRISB_RB0 0x01 3119 #define _TRISB_TRISB1 0x02 3120 #define _TRISB_RB1 0x02 3121 #define _TRISB_TRISB2 0x04 3122 #define _TRISB_RB2 0x04 3123 #define _TRISB_TRISB3 0x08 3124 #define _TRISB_RB3 0x08 3125 #define _TRISB_TRISB4 0x10 3126 #define _TRISB_RB4 0x10 3127 #define _TRISB_TRISB5 0x20 3128 #define _TRISB_RB5 0x20 3129 #define _TRISB_TRISB6 0x40 3130 #define _TRISB_RB6 0x40 3131 #define _TRISB_TRISB7 0x80 3132 #define _TRISB_RB7 0x80 3133 3134 //============================================================================== 3135 3136 3137 //============================================================================== 3138 // DDRC Bits 3139 3140 extern __at(0x0F94) __sfr DDRC; 3141 3142 typedef union 3143 { 3144 struct 3145 { 3146 unsigned TRISC0 : 1; 3147 unsigned TRISC1 : 1; 3148 unsigned TRISC2 : 1; 3149 unsigned TRISC3 : 1; 3150 unsigned TRISC4 : 1; 3151 unsigned TRISC5 : 1; 3152 unsigned TRISC6 : 1; 3153 unsigned TRISC7 : 1; 3154 }; 3155 3156 struct 3157 { 3158 unsigned RC0 : 1; 3159 unsigned RC1 : 1; 3160 unsigned RC2 : 1; 3161 unsigned RC3 : 1; 3162 unsigned RC4 : 1; 3163 unsigned RC5 : 1; 3164 unsigned RC6 : 1; 3165 unsigned RC7 : 1; 3166 }; 3167 } __DDRCbits_t; 3168 3169 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 3170 3171 #define _TRISC0 0x01 3172 #define _RC0 0x01 3173 #define _TRISC1 0x02 3174 #define _RC1 0x02 3175 #define _TRISC2 0x04 3176 #define _RC2 0x04 3177 #define _TRISC3 0x08 3178 #define _RC3 0x08 3179 #define _TRISC4 0x10 3180 #define _RC4 0x10 3181 #define _TRISC5 0x20 3182 #define _RC5 0x20 3183 #define _TRISC6 0x40 3184 #define _RC6 0x40 3185 #define _TRISC7 0x80 3186 #define _RC7 0x80 3187 3188 //============================================================================== 3189 3190 3191 //============================================================================== 3192 // TRISC Bits 3193 3194 extern __at(0x0F94) __sfr TRISC; 3195 3196 typedef union 3197 { 3198 struct 3199 { 3200 unsigned TRISC0 : 1; 3201 unsigned TRISC1 : 1; 3202 unsigned TRISC2 : 1; 3203 unsigned TRISC3 : 1; 3204 unsigned TRISC4 : 1; 3205 unsigned TRISC5 : 1; 3206 unsigned TRISC6 : 1; 3207 unsigned TRISC7 : 1; 3208 }; 3209 3210 struct 3211 { 3212 unsigned RC0 : 1; 3213 unsigned RC1 : 1; 3214 unsigned RC2 : 1; 3215 unsigned RC3 : 1; 3216 unsigned RC4 : 1; 3217 unsigned RC5 : 1; 3218 unsigned RC6 : 1; 3219 unsigned RC7 : 1; 3220 }; 3221 } __TRISCbits_t; 3222 3223 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 3224 3225 #define _TRISC_TRISC0 0x01 3226 #define _TRISC_RC0 0x01 3227 #define _TRISC_TRISC1 0x02 3228 #define _TRISC_RC1 0x02 3229 #define _TRISC_TRISC2 0x04 3230 #define _TRISC_RC2 0x04 3231 #define _TRISC_TRISC3 0x08 3232 #define _TRISC_RC3 0x08 3233 #define _TRISC_TRISC4 0x10 3234 #define _TRISC_RC4 0x10 3235 #define _TRISC_TRISC5 0x20 3236 #define _TRISC_RC5 0x20 3237 #define _TRISC_TRISC6 0x40 3238 #define _TRISC_RC6 0x40 3239 #define _TRISC_TRISC7 0x80 3240 #define _TRISC_RC7 0x80 3241 3242 //============================================================================== 3243 3244 3245 //============================================================================== 3246 // DDRD Bits 3247 3248 extern __at(0x0F95) __sfr DDRD; 3249 3250 typedef union 3251 { 3252 struct 3253 { 3254 unsigned TRISD0 : 1; 3255 unsigned TRISD1 : 1; 3256 unsigned TRISD2 : 1; 3257 unsigned TRISD3 : 1; 3258 unsigned TRISD4 : 1; 3259 unsigned TRISD5 : 1; 3260 unsigned TRISD6 : 1; 3261 unsigned TRISD7 : 1; 3262 }; 3263 3264 struct 3265 { 3266 unsigned RD0 : 1; 3267 unsigned RD1 : 1; 3268 unsigned RD2 : 1; 3269 unsigned RD3 : 1; 3270 unsigned RD4 : 1; 3271 unsigned RD5 : 1; 3272 unsigned RD6 : 1; 3273 unsigned RD7 : 1; 3274 }; 3275 } __DDRDbits_t; 3276 3277 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 3278 3279 #define _TRISD0 0x01 3280 #define _RD0 0x01 3281 #define _TRISD1 0x02 3282 #define _RD1 0x02 3283 #define _TRISD2 0x04 3284 #define _RD2 0x04 3285 #define _TRISD3 0x08 3286 #define _RD3 0x08 3287 #define _TRISD4 0x10 3288 #define _RD4 0x10 3289 #define _TRISD5 0x20 3290 #define _RD5 0x20 3291 #define _TRISD6 0x40 3292 #define _RD6 0x40 3293 #define _TRISD7 0x80 3294 #define _RD7 0x80 3295 3296 //============================================================================== 3297 3298 3299 //============================================================================== 3300 // TRISD Bits 3301 3302 extern __at(0x0F95) __sfr TRISD; 3303 3304 typedef union 3305 { 3306 struct 3307 { 3308 unsigned TRISD0 : 1; 3309 unsigned TRISD1 : 1; 3310 unsigned TRISD2 : 1; 3311 unsigned TRISD3 : 1; 3312 unsigned TRISD4 : 1; 3313 unsigned TRISD5 : 1; 3314 unsigned TRISD6 : 1; 3315 unsigned TRISD7 : 1; 3316 }; 3317 3318 struct 3319 { 3320 unsigned RD0 : 1; 3321 unsigned RD1 : 1; 3322 unsigned RD2 : 1; 3323 unsigned RD3 : 1; 3324 unsigned RD4 : 1; 3325 unsigned RD5 : 1; 3326 unsigned RD6 : 1; 3327 unsigned RD7 : 1; 3328 }; 3329 } __TRISDbits_t; 3330 3331 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 3332 3333 #define _TRISD_TRISD0 0x01 3334 #define _TRISD_RD0 0x01 3335 #define _TRISD_TRISD1 0x02 3336 #define _TRISD_RD1 0x02 3337 #define _TRISD_TRISD2 0x04 3338 #define _TRISD_RD2 0x04 3339 #define _TRISD_TRISD3 0x08 3340 #define _TRISD_RD3 0x08 3341 #define _TRISD_TRISD4 0x10 3342 #define _TRISD_RD4 0x10 3343 #define _TRISD_TRISD5 0x20 3344 #define _TRISD_RD5 0x20 3345 #define _TRISD_TRISD6 0x40 3346 #define _TRISD_RD6 0x40 3347 #define _TRISD_TRISD7 0x80 3348 #define _TRISD_RD7 0x80 3349 3350 //============================================================================== 3351 3352 3353 //============================================================================== 3354 // DDRE Bits 3355 3356 extern __at(0x0F96) __sfr DDRE; 3357 3358 typedef union 3359 { 3360 struct 3361 { 3362 unsigned TRISE0 : 1; 3363 unsigned TRISE1 : 1; 3364 unsigned TRISE2 : 1; 3365 unsigned TRISE3 : 1; 3366 unsigned TRISE4 : 1; 3367 unsigned TRISE5 : 1; 3368 unsigned TRISE6 : 1; 3369 unsigned TRISE7 : 1; 3370 }; 3371 3372 struct 3373 { 3374 unsigned RE0 : 1; 3375 unsigned RE1 : 1; 3376 unsigned RE2 : 1; 3377 unsigned RE3 : 1; 3378 unsigned RE4 : 1; 3379 unsigned RE5 : 1; 3380 unsigned RE6 : 1; 3381 unsigned RE7 : 1; 3382 }; 3383 } __DDREbits_t; 3384 3385 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 3386 3387 #define _TRISE0 0x01 3388 #define _RE0 0x01 3389 #define _TRISE1 0x02 3390 #define _RE1 0x02 3391 #define _TRISE2 0x04 3392 #define _RE2 0x04 3393 #define _TRISE3 0x08 3394 #define _RE3 0x08 3395 #define _TRISE4 0x10 3396 #define _RE4 0x10 3397 #define _TRISE5 0x20 3398 #define _RE5 0x20 3399 #define _TRISE6 0x40 3400 #define _RE6 0x40 3401 #define _TRISE7 0x80 3402 #define _RE7 0x80 3403 3404 //============================================================================== 3405 3406 3407 //============================================================================== 3408 // TRISE Bits 3409 3410 extern __at(0x0F96) __sfr TRISE; 3411 3412 typedef union 3413 { 3414 struct 3415 { 3416 unsigned TRISE0 : 1; 3417 unsigned TRISE1 : 1; 3418 unsigned TRISE2 : 1; 3419 unsigned TRISE3 : 1; 3420 unsigned TRISE4 : 1; 3421 unsigned TRISE5 : 1; 3422 unsigned TRISE6 : 1; 3423 unsigned TRISE7 : 1; 3424 }; 3425 3426 struct 3427 { 3428 unsigned RE0 : 1; 3429 unsigned RE1 : 1; 3430 unsigned RE2 : 1; 3431 unsigned RE3 : 1; 3432 unsigned RE4 : 1; 3433 unsigned RE5 : 1; 3434 unsigned RE6 : 1; 3435 unsigned RE7 : 1; 3436 }; 3437 } __TRISEbits_t; 3438 3439 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 3440 3441 #define _TRISE_TRISE0 0x01 3442 #define _TRISE_RE0 0x01 3443 #define _TRISE_TRISE1 0x02 3444 #define _TRISE_RE1 0x02 3445 #define _TRISE_TRISE2 0x04 3446 #define _TRISE_RE2 0x04 3447 #define _TRISE_TRISE3 0x08 3448 #define _TRISE_RE3 0x08 3449 #define _TRISE_TRISE4 0x10 3450 #define _TRISE_RE4 0x10 3451 #define _TRISE_TRISE5 0x20 3452 #define _TRISE_RE5 0x20 3453 #define _TRISE_TRISE6 0x40 3454 #define _TRISE_RE6 0x40 3455 #define _TRISE_TRISE7 0x80 3456 #define _TRISE_RE7 0x80 3457 3458 //============================================================================== 3459 3460 3461 //============================================================================== 3462 // DDRF Bits 3463 3464 extern __at(0x0F97) __sfr DDRF; 3465 3466 typedef union 3467 { 3468 struct 3469 { 3470 unsigned TRISF0 : 1; 3471 unsigned TRISF1 : 1; 3472 unsigned TRISF2 : 1; 3473 unsigned TRISF3 : 1; 3474 unsigned TRISF4 : 1; 3475 unsigned TRISF5 : 1; 3476 unsigned TRISF6 : 1; 3477 unsigned TRISF7 : 1; 3478 }; 3479 3480 struct 3481 { 3482 unsigned RF0 : 1; 3483 unsigned RF1 : 1; 3484 unsigned RF2 : 1; 3485 unsigned RF3 : 1; 3486 unsigned RF4 : 1; 3487 unsigned RF5 : 1; 3488 unsigned RF6 : 1; 3489 unsigned RF7 : 1; 3490 }; 3491 } __DDRFbits_t; 3492 3493 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits; 3494 3495 #define _TRISF0 0x01 3496 #define _RF0 0x01 3497 #define _TRISF1 0x02 3498 #define _RF1 0x02 3499 #define _TRISF2 0x04 3500 #define _RF2 0x04 3501 #define _TRISF3 0x08 3502 #define _RF3 0x08 3503 #define _TRISF4 0x10 3504 #define _RF4 0x10 3505 #define _TRISF5 0x20 3506 #define _RF5 0x20 3507 #define _TRISF6 0x40 3508 #define _RF6 0x40 3509 #define _TRISF7 0x80 3510 #define _RF7 0x80 3511 3512 //============================================================================== 3513 3514 3515 //============================================================================== 3516 // TRISF Bits 3517 3518 extern __at(0x0F97) __sfr TRISF; 3519 3520 typedef union 3521 { 3522 struct 3523 { 3524 unsigned TRISF0 : 1; 3525 unsigned TRISF1 : 1; 3526 unsigned TRISF2 : 1; 3527 unsigned TRISF3 : 1; 3528 unsigned TRISF4 : 1; 3529 unsigned TRISF5 : 1; 3530 unsigned TRISF6 : 1; 3531 unsigned TRISF7 : 1; 3532 }; 3533 3534 struct 3535 { 3536 unsigned RF0 : 1; 3537 unsigned RF1 : 1; 3538 unsigned RF2 : 1; 3539 unsigned RF3 : 1; 3540 unsigned RF4 : 1; 3541 unsigned RF5 : 1; 3542 unsigned RF6 : 1; 3543 unsigned RF7 : 1; 3544 }; 3545 } __TRISFbits_t; 3546 3547 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits; 3548 3549 #define _TRISF_TRISF0 0x01 3550 #define _TRISF_RF0 0x01 3551 #define _TRISF_TRISF1 0x02 3552 #define _TRISF_RF1 0x02 3553 #define _TRISF_TRISF2 0x04 3554 #define _TRISF_RF2 0x04 3555 #define _TRISF_TRISF3 0x08 3556 #define _TRISF_RF3 0x08 3557 #define _TRISF_TRISF4 0x10 3558 #define _TRISF_RF4 0x10 3559 #define _TRISF_TRISF5 0x20 3560 #define _TRISF_RF5 0x20 3561 #define _TRISF_TRISF6 0x40 3562 #define _TRISF_RF6 0x40 3563 #define _TRISF_TRISF7 0x80 3564 #define _TRISF_RF7 0x80 3565 3566 //============================================================================== 3567 3568 3569 //============================================================================== 3570 // DDRG Bits 3571 3572 extern __at(0x0F98) __sfr DDRG; 3573 3574 typedef union 3575 { 3576 struct 3577 { 3578 unsigned TRISG0 : 1; 3579 unsigned TRISG1 : 1; 3580 unsigned TRISG2 : 1; 3581 unsigned TRISG3 : 1; 3582 unsigned TRISG4 : 1; 3583 unsigned TRISG5 : 1; 3584 unsigned TRISG6 : 1; 3585 unsigned TRISG7 : 1; 3586 }; 3587 3588 struct 3589 { 3590 unsigned RG0 : 1; 3591 unsigned RG1 : 1; 3592 unsigned RG2 : 1; 3593 unsigned RG3 : 1; 3594 unsigned RG4 : 1; 3595 unsigned RG5 : 1; 3596 unsigned RG6 : 1; 3597 unsigned RG7 : 1; 3598 }; 3599 } __DDRGbits_t; 3600 3601 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits; 3602 3603 #define _TRISG0 0x01 3604 #define _RG0 0x01 3605 #define _TRISG1 0x02 3606 #define _RG1 0x02 3607 #define _TRISG2 0x04 3608 #define _RG2 0x04 3609 #define _TRISG3 0x08 3610 #define _RG3 0x08 3611 #define _TRISG4 0x10 3612 #define _RG4 0x10 3613 #define _TRISG5 0x20 3614 #define _RG5 0x20 3615 #define _TRISG6 0x40 3616 #define _RG6 0x40 3617 #define _TRISG7 0x80 3618 #define _RG7 0x80 3619 3620 //============================================================================== 3621 3622 3623 //============================================================================== 3624 // TRISG Bits 3625 3626 extern __at(0x0F98) __sfr TRISG; 3627 3628 typedef union 3629 { 3630 struct 3631 { 3632 unsigned TRISG0 : 1; 3633 unsigned TRISG1 : 1; 3634 unsigned TRISG2 : 1; 3635 unsigned TRISG3 : 1; 3636 unsigned TRISG4 : 1; 3637 unsigned TRISG5 : 1; 3638 unsigned TRISG6 : 1; 3639 unsigned TRISG7 : 1; 3640 }; 3641 3642 struct 3643 { 3644 unsigned RG0 : 1; 3645 unsigned RG1 : 1; 3646 unsigned RG2 : 1; 3647 unsigned RG3 : 1; 3648 unsigned RG4 : 1; 3649 unsigned RG5 : 1; 3650 unsigned RG6 : 1; 3651 unsigned RG7 : 1; 3652 }; 3653 } __TRISGbits_t; 3654 3655 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits; 3656 3657 #define _TRISG_TRISG0 0x01 3658 #define _TRISG_RG0 0x01 3659 #define _TRISG_TRISG1 0x02 3660 #define _TRISG_RG1 0x02 3661 #define _TRISG_TRISG2 0x04 3662 #define _TRISG_RG2 0x04 3663 #define _TRISG_TRISG3 0x08 3664 #define _TRISG_RG3 0x08 3665 #define _TRISG_TRISG4 0x10 3666 #define _TRISG_RG4 0x10 3667 #define _TRISG_TRISG5 0x20 3668 #define _TRISG_RG5 0x20 3669 #define _TRISG_TRISG6 0x40 3670 #define _TRISG_RG6 0x40 3671 #define _TRISG_TRISG7 0x80 3672 #define _TRISG_RG7 0x80 3673 3674 //============================================================================== 3675 3676 3677 //============================================================================== 3678 // DDRH Bits 3679 3680 extern __at(0x0F99) __sfr DDRH; 3681 3682 typedef union 3683 { 3684 struct 3685 { 3686 unsigned TRISH0 : 1; 3687 unsigned TRISH1 : 1; 3688 unsigned TRISH2 : 1; 3689 unsigned TRISH3 : 1; 3690 unsigned TRISH4 : 1; 3691 unsigned TRISH5 : 1; 3692 unsigned TRISH6 : 1; 3693 unsigned TRISH7 : 1; 3694 }; 3695 3696 struct 3697 { 3698 unsigned RH0 : 1; 3699 unsigned RH1 : 1; 3700 unsigned RH2 : 1; 3701 unsigned RH3 : 1; 3702 unsigned RH4 : 1; 3703 unsigned RH5 : 1; 3704 unsigned RH6 : 1; 3705 unsigned RH7 : 1; 3706 }; 3707 } __DDRHbits_t; 3708 3709 extern __at(0x0F99) volatile __DDRHbits_t DDRHbits; 3710 3711 #define _TRISH0 0x01 3712 #define _RH0 0x01 3713 #define _TRISH1 0x02 3714 #define _RH1 0x02 3715 #define _TRISH2 0x04 3716 #define _RH2 0x04 3717 #define _TRISH3 0x08 3718 #define _RH3 0x08 3719 #define _TRISH4 0x10 3720 #define _RH4 0x10 3721 #define _TRISH5 0x20 3722 #define _RH5 0x20 3723 #define _TRISH6 0x40 3724 #define _RH6 0x40 3725 #define _TRISH7 0x80 3726 #define _RH7 0x80 3727 3728 //============================================================================== 3729 3730 3731 //============================================================================== 3732 // TRISH Bits 3733 3734 extern __at(0x0F99) __sfr TRISH; 3735 3736 typedef union 3737 { 3738 struct 3739 { 3740 unsigned TRISH0 : 1; 3741 unsigned TRISH1 : 1; 3742 unsigned TRISH2 : 1; 3743 unsigned TRISH3 : 1; 3744 unsigned TRISH4 : 1; 3745 unsigned TRISH5 : 1; 3746 unsigned TRISH6 : 1; 3747 unsigned TRISH7 : 1; 3748 }; 3749 3750 struct 3751 { 3752 unsigned RH0 : 1; 3753 unsigned RH1 : 1; 3754 unsigned RH2 : 1; 3755 unsigned RH3 : 1; 3756 unsigned RH4 : 1; 3757 unsigned RH5 : 1; 3758 unsigned RH6 : 1; 3759 unsigned RH7 : 1; 3760 }; 3761 } __TRISHbits_t; 3762 3763 extern __at(0x0F99) volatile __TRISHbits_t TRISHbits; 3764 3765 #define _TRISH_TRISH0 0x01 3766 #define _TRISH_RH0 0x01 3767 #define _TRISH_TRISH1 0x02 3768 #define _TRISH_RH1 0x02 3769 #define _TRISH_TRISH2 0x04 3770 #define _TRISH_RH2 0x04 3771 #define _TRISH_TRISH3 0x08 3772 #define _TRISH_RH3 0x08 3773 #define _TRISH_TRISH4 0x10 3774 #define _TRISH_RH4 0x10 3775 #define _TRISH_TRISH5 0x20 3776 #define _TRISH_RH5 0x20 3777 #define _TRISH_TRISH6 0x40 3778 #define _TRISH_RH6 0x40 3779 #define _TRISH_TRISH7 0x80 3780 #define _TRISH_RH7 0x80 3781 3782 //============================================================================== 3783 3784 3785 //============================================================================== 3786 // DDRJ Bits 3787 3788 extern __at(0x0F9A) __sfr DDRJ; 3789 3790 typedef union 3791 { 3792 struct 3793 { 3794 unsigned TRISJ0 : 1; 3795 unsigned TRISJ1 : 1; 3796 unsigned TRISJ2 : 1; 3797 unsigned TRISJ3 : 1; 3798 unsigned TRISJ4 : 1; 3799 unsigned TRISJ5 : 1; 3800 unsigned TRISJ6 : 1; 3801 unsigned TRISJ7 : 1; 3802 }; 3803 3804 struct 3805 { 3806 unsigned RJ0 : 1; 3807 unsigned RJ1 : 1; 3808 unsigned RJ2 : 1; 3809 unsigned RJ3 : 1; 3810 unsigned RJ4 : 1; 3811 unsigned RJ5 : 1; 3812 unsigned RJ6 : 1; 3813 unsigned RJ7 : 1; 3814 }; 3815 } __DDRJbits_t; 3816 3817 extern __at(0x0F9A) volatile __DDRJbits_t DDRJbits; 3818 3819 #define _TRISJ0 0x01 3820 #define _RJ0 0x01 3821 #define _TRISJ1 0x02 3822 #define _RJ1 0x02 3823 #define _TRISJ2 0x04 3824 #define _RJ2 0x04 3825 #define _TRISJ3 0x08 3826 #define _RJ3 0x08 3827 #define _TRISJ4 0x10 3828 #define _RJ4 0x10 3829 #define _TRISJ5 0x20 3830 #define _RJ5 0x20 3831 #define _TRISJ6 0x40 3832 #define _RJ6 0x40 3833 #define _TRISJ7 0x80 3834 #define _RJ7 0x80 3835 3836 //============================================================================== 3837 3838 3839 //============================================================================== 3840 // TRISJ Bits 3841 3842 extern __at(0x0F9A) __sfr TRISJ; 3843 3844 typedef union 3845 { 3846 struct 3847 { 3848 unsigned TRISJ0 : 1; 3849 unsigned TRISJ1 : 1; 3850 unsigned TRISJ2 : 1; 3851 unsigned TRISJ3 : 1; 3852 unsigned TRISJ4 : 1; 3853 unsigned TRISJ5 : 1; 3854 unsigned TRISJ6 : 1; 3855 unsigned TRISJ7 : 1; 3856 }; 3857 3858 struct 3859 { 3860 unsigned RJ0 : 1; 3861 unsigned RJ1 : 1; 3862 unsigned RJ2 : 1; 3863 unsigned RJ3 : 1; 3864 unsigned RJ4 : 1; 3865 unsigned RJ5 : 1; 3866 unsigned RJ6 : 1; 3867 unsigned RJ7 : 1; 3868 }; 3869 } __TRISJbits_t; 3870 3871 extern __at(0x0F9A) volatile __TRISJbits_t TRISJbits; 3872 3873 #define _TRISJ_TRISJ0 0x01 3874 #define _TRISJ_RJ0 0x01 3875 #define _TRISJ_TRISJ1 0x02 3876 #define _TRISJ_RJ1 0x02 3877 #define _TRISJ_TRISJ2 0x04 3878 #define _TRISJ_RJ2 0x04 3879 #define _TRISJ_TRISJ3 0x08 3880 #define _TRISJ_RJ3 0x08 3881 #define _TRISJ_TRISJ4 0x10 3882 #define _TRISJ_RJ4 0x10 3883 #define _TRISJ_TRISJ5 0x20 3884 #define _TRISJ_RJ5 0x20 3885 #define _TRISJ_TRISJ6 0x40 3886 #define _TRISJ_RJ6 0x40 3887 #define _TRISJ_TRISJ7 0x80 3888 #define _TRISJ_RJ7 0x80 3889 3890 //============================================================================== 3891 3892 3893 //============================================================================== 3894 // OSCTUNE Bits 3895 3896 extern __at(0x0F9B) __sfr OSCTUNE; 3897 3898 typedef struct 3899 { 3900 unsigned : 1; 3901 unsigned : 1; 3902 unsigned : 1; 3903 unsigned : 1; 3904 unsigned PPRE : 1; 3905 unsigned PPST0 : 1; 3906 unsigned PLLEN : 1; 3907 unsigned PPST1 : 1; 3908 } __OSCTUNEbits_t; 3909 3910 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 3911 3912 #define _PPRE 0x10 3913 #define _PPST0 0x20 3914 #define _PLLEN 0x40 3915 #define _PPST1 0x80 3916 3917 //============================================================================== 3918 3919 3920 //============================================================================== 3921 // MEMCON Bits 3922 3923 extern __at(0x0F9C) __sfr MEMCON; 3924 3925 typedef union 3926 { 3927 struct 3928 { 3929 unsigned WM0 : 1; 3930 unsigned WM1 : 1; 3931 unsigned : 1; 3932 unsigned : 1; 3933 unsigned WAIT0 : 1; 3934 unsigned WAIT1 : 1; 3935 unsigned : 1; 3936 unsigned EBDIS : 1; 3937 }; 3938 3939 struct 3940 { 3941 unsigned WM : 2; 3942 unsigned : 6; 3943 }; 3944 3945 struct 3946 { 3947 unsigned : 4; 3948 unsigned WAIT : 2; 3949 unsigned : 2; 3950 }; 3951 } __MEMCONbits_t; 3952 3953 extern __at(0x0F9C) volatile __MEMCONbits_t MEMCONbits; 3954 3955 #define _WM0 0x01 3956 #define _WM1 0x02 3957 #define _WAIT0 0x10 3958 #define _WAIT1 0x20 3959 #define _EBDIS 0x80 3960 3961 //============================================================================== 3962 3963 3964 //============================================================================== 3965 // PIE1 Bits 3966 3967 extern __at(0x0F9D) __sfr PIE1; 3968 3969 typedef union 3970 { 3971 struct 3972 { 3973 unsigned TMR1IE : 1; 3974 unsigned TMR2IE : 1; 3975 unsigned CCP1IE : 1; 3976 unsigned SSP1IE : 1; 3977 unsigned TX1IE : 1; 3978 unsigned RC1IE : 1; 3979 unsigned ADIE : 1; 3980 unsigned PSPIE : 1; 3981 }; 3982 3983 struct 3984 { 3985 unsigned : 1; 3986 unsigned : 1; 3987 unsigned : 1; 3988 unsigned SSPIE : 1; 3989 unsigned TXIE : 1; 3990 unsigned RCIE : 1; 3991 unsigned : 1; 3992 unsigned : 1; 3993 }; 3994 } __PIE1bits_t; 3995 3996 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 3997 3998 #define _PIE1_TMR1IE 0x01 3999 #define _PIE1_TMR2IE 0x02 4000 #define _PIE1_CCP1IE 0x04 4001 #define _PIE1_SSP1IE 0x08 4002 #define _PIE1_SSPIE 0x08 4003 #define _PIE1_TX1IE 0x10 4004 #define _PIE1_TXIE 0x10 4005 #define _PIE1_RC1IE 0x20 4006 #define _PIE1_RCIE 0x20 4007 #define _PIE1_ADIE 0x40 4008 #define _PIE1_PSPIE 0x80 4009 4010 //============================================================================== 4011 4012 4013 //============================================================================== 4014 // PIR1 Bits 4015 4016 extern __at(0x0F9E) __sfr PIR1; 4017 4018 typedef union 4019 { 4020 struct 4021 { 4022 unsigned TMR1IF : 1; 4023 unsigned TMR2IF : 1; 4024 unsigned CCP1IF : 1; 4025 unsigned SSP1IF : 1; 4026 unsigned TX1IF : 1; 4027 unsigned RC1IF : 1; 4028 unsigned ADIF : 1; 4029 unsigned PSPIF : 1; 4030 }; 4031 4032 struct 4033 { 4034 unsigned : 1; 4035 unsigned : 1; 4036 unsigned : 1; 4037 unsigned SSPIF : 1; 4038 unsigned TXIF : 1; 4039 unsigned RCIF : 1; 4040 unsigned : 1; 4041 unsigned : 1; 4042 }; 4043 } __PIR1bits_t; 4044 4045 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 4046 4047 #define _PIR1_TMR1IF 0x01 4048 #define _PIR1_TMR2IF 0x02 4049 #define _PIR1_CCP1IF 0x04 4050 #define _PIR1_SSP1IF 0x08 4051 #define _PIR1_SSPIF 0x08 4052 #define _PIR1_TX1IF 0x10 4053 #define _PIR1_TXIF 0x10 4054 #define _PIR1_RC1IF 0x20 4055 #define _PIR1_RCIF 0x20 4056 #define _PIR1_ADIF 0x40 4057 #define _PIR1_PSPIF 0x80 4058 4059 //============================================================================== 4060 4061 4062 //============================================================================== 4063 // IPR1 Bits 4064 4065 extern __at(0x0F9F) __sfr IPR1; 4066 4067 typedef union 4068 { 4069 struct 4070 { 4071 unsigned TMR1IP : 1; 4072 unsigned TMR2IP : 1; 4073 unsigned CCP1IP : 1; 4074 unsigned SSP1IP : 1; 4075 unsigned TX1IP : 1; 4076 unsigned RC1IP : 1; 4077 unsigned ADIP : 1; 4078 unsigned PSPIP : 1; 4079 }; 4080 4081 struct 4082 { 4083 unsigned : 1; 4084 unsigned : 1; 4085 unsigned : 1; 4086 unsigned SSPIP : 1; 4087 unsigned TXIP : 1; 4088 unsigned RCIP : 1; 4089 unsigned : 1; 4090 unsigned : 1; 4091 }; 4092 } __IPR1bits_t; 4093 4094 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 4095 4096 #define _TMR1IP 0x01 4097 #define _TMR2IP 0x02 4098 #define _CCP1IP 0x04 4099 #define _SSP1IP 0x08 4100 #define _SSPIP 0x08 4101 #define _TX1IP 0x10 4102 #define _TXIP 0x10 4103 #define _RC1IP 0x20 4104 #define _RCIP 0x20 4105 #define _ADIP 0x40 4106 #define _PSPIP 0x80 4107 4108 //============================================================================== 4109 4110 4111 //============================================================================== 4112 // PIE2 Bits 4113 4114 extern __at(0x0FA0) __sfr PIE2; 4115 4116 typedef union 4117 { 4118 struct 4119 { 4120 unsigned CCP2IE : 1; 4121 unsigned TMR3IE : 1; 4122 unsigned : 1; 4123 unsigned BCL1IE : 1; 4124 unsigned : 1; 4125 unsigned ETHIE : 1; 4126 unsigned CMIE : 1; 4127 unsigned OSCFIE : 1; 4128 }; 4129 4130 struct 4131 { 4132 unsigned : 1; 4133 unsigned : 1; 4134 unsigned : 1; 4135 unsigned BCLIE : 1; 4136 unsigned : 1; 4137 unsigned : 1; 4138 unsigned : 1; 4139 unsigned : 1; 4140 }; 4141 } __PIE2bits_t; 4142 4143 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 4144 4145 #define _CCP2IE 0x01 4146 #define _TMR3IE 0x02 4147 #define _BCL1IE 0x08 4148 #define _BCLIE 0x08 4149 #define _ETHIE 0x20 4150 #define _CMIE 0x40 4151 #define _OSCFIE 0x80 4152 4153 //============================================================================== 4154 4155 4156 //============================================================================== 4157 // PIR2 Bits 4158 4159 extern __at(0x0FA1) __sfr PIR2; 4160 4161 typedef union 4162 { 4163 struct 4164 { 4165 unsigned CCP2IF : 1; 4166 unsigned TMR3IF : 1; 4167 unsigned : 1; 4168 unsigned BCL1IF : 1; 4169 unsigned : 1; 4170 unsigned ETHIF : 1; 4171 unsigned CMIF : 1; 4172 unsigned OSCFIF : 1; 4173 }; 4174 4175 struct 4176 { 4177 unsigned : 1; 4178 unsigned : 1; 4179 unsigned : 1; 4180 unsigned BCLIF : 1; 4181 unsigned : 1; 4182 unsigned : 1; 4183 unsigned : 1; 4184 unsigned : 1; 4185 }; 4186 } __PIR2bits_t; 4187 4188 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 4189 4190 #define _CCP2IF 0x01 4191 #define _TMR3IF 0x02 4192 #define _BCL1IF 0x08 4193 #define _BCLIF 0x08 4194 #define _ETHIF 0x20 4195 #define _CMIF 0x40 4196 #define _OSCFIF 0x80 4197 4198 //============================================================================== 4199 4200 4201 //============================================================================== 4202 // IPR2 Bits 4203 4204 extern __at(0x0FA2) __sfr IPR2; 4205 4206 typedef union 4207 { 4208 struct 4209 { 4210 unsigned CCP2IP : 1; 4211 unsigned TMR3IP : 1; 4212 unsigned : 1; 4213 unsigned BCL1IP : 1; 4214 unsigned : 1; 4215 unsigned ETHIP : 1; 4216 unsigned CMIP : 1; 4217 unsigned OSCFIP : 1; 4218 }; 4219 4220 struct 4221 { 4222 unsigned : 1; 4223 unsigned : 1; 4224 unsigned : 1; 4225 unsigned BCLIP : 1; 4226 unsigned : 1; 4227 unsigned : 1; 4228 unsigned : 1; 4229 unsigned : 1; 4230 }; 4231 } __IPR2bits_t; 4232 4233 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 4234 4235 #define _CCP2IP 0x01 4236 #define _TMR3IP 0x02 4237 #define _BCL1IP 0x08 4238 #define _BCLIP 0x08 4239 #define _ETHIP 0x20 4240 #define _CMIP 0x40 4241 #define _OSCFIP 0x80 4242 4243 //============================================================================== 4244 4245 4246 //============================================================================== 4247 // PIE3 Bits 4248 4249 extern __at(0x0FA3) __sfr PIE3; 4250 4251 typedef struct 4252 { 4253 unsigned CCP3IE : 1; 4254 unsigned CCP4IE : 1; 4255 unsigned CCP5IE : 1; 4256 unsigned TMR4IE : 1; 4257 unsigned TX2IE : 1; 4258 unsigned RC2IE : 1; 4259 unsigned BCL2IE : 1; 4260 unsigned SSP2IE : 1; 4261 } __PIE3bits_t; 4262 4263 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 4264 4265 #define _CCP3IE 0x01 4266 #define _CCP4IE 0x02 4267 #define _CCP5IE 0x04 4268 #define _TMR4IE 0x08 4269 #define _TX2IE 0x10 4270 #define _RC2IE 0x20 4271 #define _BCL2IE 0x40 4272 #define _SSP2IE 0x80 4273 4274 //============================================================================== 4275 4276 4277 //============================================================================== 4278 // PIR3 Bits 4279 4280 extern __at(0x0FA4) __sfr PIR3; 4281 4282 typedef struct 4283 { 4284 unsigned CCP3IF : 1; 4285 unsigned CCP4IF : 1; 4286 unsigned CCP5IF : 1; 4287 unsigned TMR4IF : 1; 4288 unsigned TX2IF : 1; 4289 unsigned RC2IF : 1; 4290 unsigned BCL2IF : 1; 4291 unsigned SSP2IF : 1; 4292 } __PIR3bits_t; 4293 4294 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 4295 4296 #define _CCP3IF 0x01 4297 #define _CCP4IF 0x02 4298 #define _CCP5IF 0x04 4299 #define _TMR4IF 0x08 4300 #define _TX2IF 0x10 4301 #define _RC2IF 0x20 4302 #define _BCL2IF 0x40 4303 #define _SSP2IF 0x80 4304 4305 //============================================================================== 4306 4307 4308 //============================================================================== 4309 // IPR3 Bits 4310 4311 extern __at(0x0FA5) __sfr IPR3; 4312 4313 typedef struct 4314 { 4315 unsigned CCP3IP : 1; 4316 unsigned CCP4IP : 1; 4317 unsigned CCP5IP : 1; 4318 unsigned TMR4IP : 1; 4319 unsigned TX2IP : 1; 4320 unsigned RC2IP : 1; 4321 unsigned BCL2IP : 1; 4322 unsigned SSP2IP : 1; 4323 } __IPR3bits_t; 4324 4325 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 4326 4327 #define _CCP3IP 0x01 4328 #define _CCP4IP 0x02 4329 #define _CCP5IP 0x04 4330 #define _TMR4IP 0x08 4331 #define _TX2IP 0x10 4332 #define _RC2IP 0x20 4333 #define _BCL2IP 0x40 4334 #define _SSP2IP 0x80 4335 4336 //============================================================================== 4337 4338 4339 //============================================================================== 4340 // EECON1 Bits 4341 4342 extern __at(0x0FA6) __sfr EECON1; 4343 4344 typedef struct 4345 { 4346 unsigned : 1; 4347 unsigned WR : 1; 4348 unsigned WREN : 1; 4349 unsigned WRERR : 1; 4350 unsigned FREE : 1; 4351 unsigned : 1; 4352 unsigned : 1; 4353 unsigned : 1; 4354 } __EECON1bits_t; 4355 4356 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 4357 4358 #define _WR 0x02 4359 #define _WREN 0x04 4360 #define _WRERR 0x08 4361 #define _FREE 0x10 4362 4363 //============================================================================== 4364 4365 extern __at(0x0FA7) __sfr EECON2; 4366 4367 //============================================================================== 4368 // RCSTA Bits 4369 4370 extern __at(0x0FAB) __sfr RCSTA; 4371 4372 typedef union 4373 { 4374 struct 4375 { 4376 unsigned RX9D : 1; 4377 unsigned OERR : 1; 4378 unsigned FERR : 1; 4379 unsigned ADDEN : 1; 4380 unsigned CREN : 1; 4381 unsigned SREN : 1; 4382 unsigned RX9 : 1; 4383 unsigned SPEN : 1; 4384 }; 4385 4386 struct 4387 { 4388 unsigned RCD8 : 1; 4389 unsigned OERR1 : 1; 4390 unsigned FERR1 : 1; 4391 unsigned ADDEN1 : 1; 4392 unsigned CREN1 : 1; 4393 unsigned SREN1 : 1; 4394 unsigned RC9 : 1; 4395 unsigned SPEN1 : 1; 4396 }; 4397 4398 struct 4399 { 4400 unsigned RX9D1 : 1; 4401 unsigned : 1; 4402 unsigned : 1; 4403 unsigned : 1; 4404 unsigned : 1; 4405 unsigned : 1; 4406 unsigned NOT_RC8 : 1; 4407 unsigned : 1; 4408 }; 4409 4410 struct 4411 { 4412 unsigned : 1; 4413 unsigned : 1; 4414 unsigned : 1; 4415 unsigned : 1; 4416 unsigned : 1; 4417 unsigned : 1; 4418 unsigned RC8_9 : 1; 4419 unsigned : 1; 4420 }; 4421 4422 struct 4423 { 4424 unsigned : 1; 4425 unsigned : 1; 4426 unsigned : 1; 4427 unsigned : 1; 4428 unsigned : 1; 4429 unsigned : 1; 4430 unsigned RX91 : 1; 4431 unsigned : 1; 4432 }; 4433 } __RCSTAbits_t; 4434 4435 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 4436 4437 #define _RX9D 0x01 4438 #define _RCD8 0x01 4439 #define _RX9D1 0x01 4440 #define _OERR 0x02 4441 #define _OERR1 0x02 4442 #define _FERR 0x04 4443 #define _FERR1 0x04 4444 #define _ADDEN 0x08 4445 #define _ADDEN1 0x08 4446 #define _CREN 0x10 4447 #define _CREN1 0x10 4448 #define _SREN 0x20 4449 #define _SREN1 0x20 4450 #define _RX9 0x40 4451 #define _RC9 0x40 4452 #define _NOT_RC8 0x40 4453 #define _RC8_9 0x40 4454 #define _RX91 0x40 4455 #define _SPEN 0x80 4456 #define _SPEN1 0x80 4457 4458 //============================================================================== 4459 4460 4461 //============================================================================== 4462 // RCSTA1 Bits 4463 4464 extern __at(0x0FAB) __sfr RCSTA1; 4465 4466 typedef union 4467 { 4468 struct 4469 { 4470 unsigned RX9D : 1; 4471 unsigned OERR : 1; 4472 unsigned FERR : 1; 4473 unsigned ADDEN : 1; 4474 unsigned CREN : 1; 4475 unsigned SREN : 1; 4476 unsigned RX9 : 1; 4477 unsigned SPEN : 1; 4478 }; 4479 4480 struct 4481 { 4482 unsigned RCD8 : 1; 4483 unsigned OERR1 : 1; 4484 unsigned FERR1 : 1; 4485 unsigned ADDEN1 : 1; 4486 unsigned CREN1 : 1; 4487 unsigned SREN1 : 1; 4488 unsigned RC9 : 1; 4489 unsigned SPEN1 : 1; 4490 }; 4491 4492 struct 4493 { 4494 unsigned RX9D1 : 1; 4495 unsigned : 1; 4496 unsigned : 1; 4497 unsigned : 1; 4498 unsigned : 1; 4499 unsigned : 1; 4500 unsigned NOT_RC8 : 1; 4501 unsigned : 1; 4502 }; 4503 4504 struct 4505 { 4506 unsigned : 1; 4507 unsigned : 1; 4508 unsigned : 1; 4509 unsigned : 1; 4510 unsigned : 1; 4511 unsigned : 1; 4512 unsigned RC8_9 : 1; 4513 unsigned : 1; 4514 }; 4515 4516 struct 4517 { 4518 unsigned : 1; 4519 unsigned : 1; 4520 unsigned : 1; 4521 unsigned : 1; 4522 unsigned : 1; 4523 unsigned : 1; 4524 unsigned RX91 : 1; 4525 unsigned : 1; 4526 }; 4527 } __RCSTA1bits_t; 4528 4529 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits; 4530 4531 #define _RCSTA1_RX9D 0x01 4532 #define _RCSTA1_RCD8 0x01 4533 #define _RCSTA1_RX9D1 0x01 4534 #define _RCSTA1_OERR 0x02 4535 #define _RCSTA1_OERR1 0x02 4536 #define _RCSTA1_FERR 0x04 4537 #define _RCSTA1_FERR1 0x04 4538 #define _RCSTA1_ADDEN 0x08 4539 #define _RCSTA1_ADDEN1 0x08 4540 #define _RCSTA1_CREN 0x10 4541 #define _RCSTA1_CREN1 0x10 4542 #define _RCSTA1_SREN 0x20 4543 #define _RCSTA1_SREN1 0x20 4544 #define _RCSTA1_RX9 0x40 4545 #define _RCSTA1_RC9 0x40 4546 #define _RCSTA1_NOT_RC8 0x40 4547 #define _RCSTA1_RC8_9 0x40 4548 #define _RCSTA1_RX91 0x40 4549 #define _RCSTA1_SPEN 0x80 4550 #define _RCSTA1_SPEN1 0x80 4551 4552 //============================================================================== 4553 4554 4555 //============================================================================== 4556 // TXSTA Bits 4557 4558 extern __at(0x0FAC) __sfr TXSTA; 4559 4560 typedef union 4561 { 4562 struct 4563 { 4564 unsigned TX9D : 1; 4565 unsigned TRMT : 1; 4566 unsigned BRGH : 1; 4567 unsigned SENDB : 1; 4568 unsigned SYNC : 1; 4569 unsigned TXEN : 1; 4570 unsigned TX9 : 1; 4571 unsigned CSRC : 1; 4572 }; 4573 4574 struct 4575 { 4576 unsigned TXD8 : 1; 4577 unsigned TRMT1 : 1; 4578 unsigned BRGH1 : 1; 4579 unsigned SENDB1 : 1; 4580 unsigned SYNC1 : 1; 4581 unsigned TXEN1 : 1; 4582 unsigned TX8_9 : 1; 4583 unsigned CSRC1 : 1; 4584 }; 4585 4586 struct 4587 { 4588 unsigned TX9D1 : 1; 4589 unsigned : 1; 4590 unsigned : 1; 4591 unsigned : 1; 4592 unsigned : 1; 4593 unsigned : 1; 4594 unsigned NOT_TX8 : 1; 4595 unsigned : 1; 4596 }; 4597 4598 struct 4599 { 4600 unsigned : 1; 4601 unsigned : 1; 4602 unsigned : 1; 4603 unsigned : 1; 4604 unsigned : 1; 4605 unsigned : 1; 4606 unsigned TX91 : 1; 4607 unsigned : 1; 4608 }; 4609 } __TXSTAbits_t; 4610 4611 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 4612 4613 #define _TX9D 0x01 4614 #define _TXD8 0x01 4615 #define _TX9D1 0x01 4616 #define _TRMT 0x02 4617 #define _TRMT1 0x02 4618 #define _BRGH 0x04 4619 #define _BRGH1 0x04 4620 #define _SENDB 0x08 4621 #define _SENDB1 0x08 4622 #define _SYNC 0x10 4623 #define _SYNC1 0x10 4624 #define _TXEN 0x20 4625 #define _TXEN1 0x20 4626 #define _TX9 0x40 4627 #define _TX8_9 0x40 4628 #define _NOT_TX8 0x40 4629 #define _TX91 0x40 4630 #define _CSRC 0x80 4631 #define _CSRC1 0x80 4632 4633 //============================================================================== 4634 4635 4636 //============================================================================== 4637 // TXSTA1 Bits 4638 4639 extern __at(0x0FAC) __sfr TXSTA1; 4640 4641 typedef union 4642 { 4643 struct 4644 { 4645 unsigned TX9D : 1; 4646 unsigned TRMT : 1; 4647 unsigned BRGH : 1; 4648 unsigned SENDB : 1; 4649 unsigned SYNC : 1; 4650 unsigned TXEN : 1; 4651 unsigned TX9 : 1; 4652 unsigned CSRC : 1; 4653 }; 4654 4655 struct 4656 { 4657 unsigned TXD8 : 1; 4658 unsigned TRMT1 : 1; 4659 unsigned BRGH1 : 1; 4660 unsigned SENDB1 : 1; 4661 unsigned SYNC1 : 1; 4662 unsigned TXEN1 : 1; 4663 unsigned TX8_9 : 1; 4664 unsigned CSRC1 : 1; 4665 }; 4666 4667 struct 4668 { 4669 unsigned TX9D1 : 1; 4670 unsigned : 1; 4671 unsigned : 1; 4672 unsigned : 1; 4673 unsigned : 1; 4674 unsigned : 1; 4675 unsigned NOT_TX8 : 1; 4676 unsigned : 1; 4677 }; 4678 4679 struct 4680 { 4681 unsigned : 1; 4682 unsigned : 1; 4683 unsigned : 1; 4684 unsigned : 1; 4685 unsigned : 1; 4686 unsigned : 1; 4687 unsigned TX91 : 1; 4688 unsigned : 1; 4689 }; 4690 } __TXSTA1bits_t; 4691 4692 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits; 4693 4694 #define _TXSTA1_TX9D 0x01 4695 #define _TXSTA1_TXD8 0x01 4696 #define _TXSTA1_TX9D1 0x01 4697 #define _TXSTA1_TRMT 0x02 4698 #define _TXSTA1_TRMT1 0x02 4699 #define _TXSTA1_BRGH 0x04 4700 #define _TXSTA1_BRGH1 0x04 4701 #define _TXSTA1_SENDB 0x08 4702 #define _TXSTA1_SENDB1 0x08 4703 #define _TXSTA1_SYNC 0x10 4704 #define _TXSTA1_SYNC1 0x10 4705 #define _TXSTA1_TXEN 0x20 4706 #define _TXSTA1_TXEN1 0x20 4707 #define _TXSTA1_TX9 0x40 4708 #define _TXSTA1_TX8_9 0x40 4709 #define _TXSTA1_NOT_TX8 0x40 4710 #define _TXSTA1_TX91 0x40 4711 #define _TXSTA1_CSRC 0x80 4712 #define _TXSTA1_CSRC1 0x80 4713 4714 //============================================================================== 4715 4716 extern __at(0x0FAD) __sfr TXREG; 4717 extern __at(0x0FAD) __sfr TXREG1; 4718 extern __at(0x0FAE) __sfr RCREG; 4719 extern __at(0x0FAE) __sfr RCREG1; 4720 extern __at(0x0FAF) __sfr SPBRG; 4721 extern __at(0x0FAF) __sfr SPBRG1; 4722 4723 //============================================================================== 4724 // PSPCON Bits 4725 4726 extern __at(0x0FB0) __sfr PSPCON; 4727 4728 typedef struct 4729 { 4730 unsigned : 1; 4731 unsigned : 1; 4732 unsigned : 1; 4733 unsigned : 1; 4734 unsigned PSPMODE : 1; 4735 unsigned IBOV : 1; 4736 unsigned OBF : 1; 4737 unsigned IBF : 1; 4738 } __PSPCONbits_t; 4739 4740 extern __at(0x0FB0) volatile __PSPCONbits_t PSPCONbits; 4741 4742 #define _PSPMODE 0x10 4743 #define _IBOV 0x20 4744 #define _OBF 0x40 4745 #define _IBF 0x80 4746 4747 //============================================================================== 4748 4749 4750 //============================================================================== 4751 // T3CON Bits 4752 4753 extern __at(0x0FB1) __sfr T3CON; 4754 4755 typedef union 4756 { 4757 struct 4758 { 4759 unsigned TMR3ON : 1; 4760 unsigned TMR3CS : 1; 4761 unsigned NOT_T3SYNC : 1; 4762 unsigned T3CCP1 : 1; 4763 unsigned T3CKPS0 : 1; 4764 unsigned T3CKPS1 : 1; 4765 unsigned T3CCP2 : 1; 4766 unsigned RD16 : 1; 4767 }; 4768 4769 struct 4770 { 4771 unsigned : 1; 4772 unsigned : 1; 4773 unsigned T3SYNC : 1; 4774 unsigned : 1; 4775 unsigned : 1; 4776 unsigned : 1; 4777 unsigned : 1; 4778 unsigned : 1; 4779 }; 4780 4781 struct 4782 { 4783 unsigned : 1; 4784 unsigned : 1; 4785 unsigned T3INSYNC : 1; 4786 unsigned : 1; 4787 unsigned : 1; 4788 unsigned : 1; 4789 unsigned : 1; 4790 unsigned : 1; 4791 }; 4792 4793 struct 4794 { 4795 unsigned : 4; 4796 unsigned T3CKPS : 2; 4797 unsigned : 2; 4798 }; 4799 } __T3CONbits_t; 4800 4801 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 4802 4803 #define _T3CON_TMR3ON 0x01 4804 #define _T3CON_TMR3CS 0x02 4805 #define _T3CON_NOT_T3SYNC 0x04 4806 #define _T3CON_T3SYNC 0x04 4807 #define _T3CON_T3INSYNC 0x04 4808 #define _T3CON_T3CCP1 0x08 4809 #define _T3CON_T3CKPS0 0x10 4810 #define _T3CON_T3CKPS1 0x20 4811 #define _T3CON_T3CCP2 0x40 4812 #define _T3CON_RD16 0x80 4813 4814 //============================================================================== 4815 4816 extern __at(0x0FB2) __sfr TMR3; 4817 extern __at(0x0FB2) __sfr TMR3L; 4818 extern __at(0x0FB3) __sfr TMR3H; 4819 4820 //============================================================================== 4821 // CMCON Bits 4822 4823 extern __at(0x0FB4) __sfr CMCON; 4824 4825 typedef union 4826 { 4827 struct 4828 { 4829 unsigned CM0 : 1; 4830 unsigned CM1 : 1; 4831 unsigned CM2 : 1; 4832 unsigned CIS : 1; 4833 unsigned C1INV : 1; 4834 unsigned C2INV : 1; 4835 unsigned C1OUT : 1; 4836 unsigned C2OUT : 1; 4837 }; 4838 4839 struct 4840 { 4841 unsigned CM : 3; 4842 unsigned : 5; 4843 }; 4844 } __CMCONbits_t; 4845 4846 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits; 4847 4848 #define _CM0 0x01 4849 #define _CM1 0x02 4850 #define _CM2 0x04 4851 #define _CIS 0x08 4852 #define _C1INV 0x10 4853 #define _C2INV 0x20 4854 #define _C1OUT 0x40 4855 #define _C2OUT 0x80 4856 4857 //============================================================================== 4858 4859 4860 //============================================================================== 4861 // CVRCON Bits 4862 4863 extern __at(0x0FB5) __sfr CVRCON; 4864 4865 typedef union 4866 { 4867 struct 4868 { 4869 unsigned CVR0 : 1; 4870 unsigned CVR1 : 1; 4871 unsigned CVR2 : 1; 4872 unsigned CVR3 : 1; 4873 unsigned CVRSS : 1; 4874 unsigned CVRR : 1; 4875 unsigned CVROE : 1; 4876 unsigned CVREN : 1; 4877 }; 4878 4879 struct 4880 { 4881 unsigned CVR : 4; 4882 unsigned : 4; 4883 }; 4884 } __CVRCONbits_t; 4885 4886 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits; 4887 4888 #define _CVR0 0x01 4889 #define _CVR1 0x02 4890 #define _CVR2 0x04 4891 #define _CVR3 0x08 4892 #define _CVRSS 0x10 4893 #define _CVRR 0x20 4894 #define _CVROE 0x40 4895 #define _CVREN 0x80 4896 4897 //============================================================================== 4898 4899 4900 //============================================================================== 4901 // ECCP1AS Bits 4902 4903 extern __at(0x0FB6) __sfr ECCP1AS; 4904 4905 typedef union 4906 { 4907 struct 4908 { 4909 unsigned PSSBD0 : 1; 4910 unsigned PSSBD1 : 1; 4911 unsigned PSSAC0 : 1; 4912 unsigned PSSAC1 : 1; 4913 unsigned ECCPAS0 : 1; 4914 unsigned ECCPAS1 : 1; 4915 unsigned ECCPAS2 : 1; 4916 unsigned ECCPASE : 1; 4917 }; 4918 4919 struct 4920 { 4921 unsigned PSS1BD0 : 1; 4922 unsigned PSS1BD1 : 1; 4923 unsigned PSS1AC0 : 1; 4924 unsigned PSS1AC1 : 1; 4925 unsigned ECCP1AS0 : 1; 4926 unsigned ECCP1AS1 : 1; 4927 unsigned ECCP1AS2 : 1; 4928 unsigned ECCP1ASE : 1; 4929 }; 4930 4931 struct 4932 { 4933 unsigned PSS1BD : 2; 4934 unsigned : 6; 4935 }; 4936 4937 struct 4938 { 4939 unsigned PSSBD : 2; 4940 unsigned : 6; 4941 }; 4942 4943 struct 4944 { 4945 unsigned : 2; 4946 unsigned PSSAC : 2; 4947 unsigned : 4; 4948 }; 4949 4950 struct 4951 { 4952 unsigned : 2; 4953 unsigned PSS1AC : 2; 4954 unsigned : 4; 4955 }; 4956 4957 struct 4958 { 4959 unsigned : 4; 4960 unsigned ECCPAS : 3; 4961 unsigned : 1; 4962 }; 4963 4964 struct 4965 { 4966 unsigned : 4; 4967 unsigned ECCP1AS : 3; 4968 unsigned : 1; 4969 }; 4970 } __ECCP1ASbits_t; 4971 4972 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits; 4973 4974 #define _PSSBD0 0x01 4975 #define _PSS1BD0 0x01 4976 #define _PSSBD1 0x02 4977 #define _PSS1BD1 0x02 4978 #define _PSSAC0 0x04 4979 #define _PSS1AC0 0x04 4980 #define _PSSAC1 0x08 4981 #define _PSS1AC1 0x08 4982 #define _ECCPAS0 0x10 4983 #define _ECCP1AS0 0x10 4984 #define _ECCPAS1 0x20 4985 #define _ECCP1AS1 0x20 4986 #define _ECCPAS2 0x40 4987 #define _ECCP1AS2 0x40 4988 #define _ECCPASE 0x80 4989 #define _ECCP1ASE 0x80 4990 4991 //============================================================================== 4992 4993 4994 //============================================================================== 4995 // CCP3CON Bits 4996 4997 extern __at(0x0FB7) __sfr CCP3CON; 4998 4999 typedef union 5000 { 5001 struct 5002 { 5003 unsigned CCP3M0 : 1; 5004 unsigned CCP3M1 : 1; 5005 unsigned CCP3M2 : 1; 5006 unsigned CCP3M3 : 1; 5007 unsigned DC3B0 : 1; 5008 unsigned DC3B1 : 1; 5009 unsigned P3M0 : 1; 5010 unsigned P3M1 : 1; 5011 }; 5012 5013 struct 5014 { 5015 unsigned : 1; 5016 unsigned : 1; 5017 unsigned : 1; 5018 unsigned : 1; 5019 unsigned CCP3Y : 1; 5020 unsigned CCP3X : 1; 5021 unsigned : 1; 5022 unsigned : 1; 5023 }; 5024 5025 struct 5026 { 5027 unsigned CCP3M : 4; 5028 unsigned : 4; 5029 }; 5030 5031 struct 5032 { 5033 unsigned : 4; 5034 unsigned DC3B : 2; 5035 unsigned : 2; 5036 }; 5037 5038 struct 5039 { 5040 unsigned : 6; 5041 unsigned P3M : 2; 5042 }; 5043 } __CCP3CONbits_t; 5044 5045 extern __at(0x0FB7) volatile __CCP3CONbits_t CCP3CONbits; 5046 5047 #define _CCP3M0 0x01 5048 #define _CCP3M1 0x02 5049 #define _CCP3M2 0x04 5050 #define _CCP3M3 0x08 5051 #define _DC3B0 0x10 5052 #define _CCP3Y 0x10 5053 #define _DC3B1 0x20 5054 #define _CCP3X 0x20 5055 #define _P3M0 0x40 5056 #define _P3M1 0x80 5057 5058 //============================================================================== 5059 5060 5061 //============================================================================== 5062 // ECCP3CON Bits 5063 5064 extern __at(0x0FB7) __sfr ECCP3CON; 5065 5066 typedef union 5067 { 5068 struct 5069 { 5070 unsigned CCP3M0 : 1; 5071 unsigned CCP3M1 : 1; 5072 unsigned CCP3M2 : 1; 5073 unsigned CCP3M3 : 1; 5074 unsigned DC3B0 : 1; 5075 unsigned DC3B1 : 1; 5076 unsigned P3M0 : 1; 5077 unsigned P3M1 : 1; 5078 }; 5079 5080 struct 5081 { 5082 unsigned : 1; 5083 unsigned : 1; 5084 unsigned : 1; 5085 unsigned : 1; 5086 unsigned CCP3Y : 1; 5087 unsigned CCP3X : 1; 5088 unsigned : 1; 5089 unsigned : 1; 5090 }; 5091 5092 struct 5093 { 5094 unsigned CCP3M : 4; 5095 unsigned : 4; 5096 }; 5097 5098 struct 5099 { 5100 unsigned : 4; 5101 unsigned DC3B : 2; 5102 unsigned : 2; 5103 }; 5104 5105 struct 5106 { 5107 unsigned : 6; 5108 unsigned P3M : 2; 5109 }; 5110 } __ECCP3CONbits_t; 5111 5112 extern __at(0x0FB7) volatile __ECCP3CONbits_t ECCP3CONbits; 5113 5114 #define _ECCP3CON_CCP3M0 0x01 5115 #define _ECCP3CON_CCP3M1 0x02 5116 #define _ECCP3CON_CCP3M2 0x04 5117 #define _ECCP3CON_CCP3M3 0x08 5118 #define _ECCP3CON_DC3B0 0x10 5119 #define _ECCP3CON_CCP3Y 0x10 5120 #define _ECCP3CON_DC3B1 0x20 5121 #define _ECCP3CON_CCP3X 0x20 5122 #define _ECCP3CON_P3M0 0x40 5123 #define _ECCP3CON_P3M1 0x80 5124 5125 //============================================================================== 5126 5127 extern __at(0x0FB8) __sfr CCPR3; 5128 extern __at(0x0FB8) __sfr CCPR3L; 5129 extern __at(0x0FB9) __sfr CCPR3H; 5130 5131 //============================================================================== 5132 // CCP2CON Bits 5133 5134 extern __at(0x0FBA) __sfr CCP2CON; 5135 5136 typedef union 5137 { 5138 struct 5139 { 5140 unsigned CCP2M0 : 1; 5141 unsigned CCP2M1 : 1; 5142 unsigned CCP2M2 : 1; 5143 unsigned CCP2M3 : 1; 5144 unsigned DC2B0 : 1; 5145 unsigned DC2B1 : 1; 5146 unsigned P2M0 : 1; 5147 unsigned P2M1 : 1; 5148 }; 5149 5150 struct 5151 { 5152 unsigned : 1; 5153 unsigned : 1; 5154 unsigned : 1; 5155 unsigned : 1; 5156 unsigned CCP2Y : 1; 5157 unsigned CCP2X : 1; 5158 unsigned : 1; 5159 unsigned : 1; 5160 }; 5161 5162 struct 5163 { 5164 unsigned CCP2M : 4; 5165 unsigned : 4; 5166 }; 5167 5168 struct 5169 { 5170 unsigned : 4; 5171 unsigned DC2B : 2; 5172 unsigned : 2; 5173 }; 5174 5175 struct 5176 { 5177 unsigned : 6; 5178 unsigned P2M : 2; 5179 }; 5180 } __CCP2CONbits_t; 5181 5182 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits; 5183 5184 #define _CCP2M0 0x01 5185 #define _CCP2M1 0x02 5186 #define _CCP2M2 0x04 5187 #define _CCP2M3 0x08 5188 #define _DC2B0 0x10 5189 #define _CCP2Y 0x10 5190 #define _DC2B1 0x20 5191 #define _CCP2X 0x20 5192 #define _P2M0 0x40 5193 #define _P2M1 0x80 5194 5195 //============================================================================== 5196 5197 5198 //============================================================================== 5199 // ECCP2CON Bits 5200 5201 extern __at(0x0FBA) __sfr ECCP2CON; 5202 5203 typedef union 5204 { 5205 struct 5206 { 5207 unsigned CCP2M0 : 1; 5208 unsigned CCP2M1 : 1; 5209 unsigned CCP2M2 : 1; 5210 unsigned CCP2M3 : 1; 5211 unsigned DC2B0 : 1; 5212 unsigned DC2B1 : 1; 5213 unsigned P2M0 : 1; 5214 unsigned P2M1 : 1; 5215 }; 5216 5217 struct 5218 { 5219 unsigned : 1; 5220 unsigned : 1; 5221 unsigned : 1; 5222 unsigned : 1; 5223 unsigned CCP2Y : 1; 5224 unsigned CCP2X : 1; 5225 unsigned : 1; 5226 unsigned : 1; 5227 }; 5228 5229 struct 5230 { 5231 unsigned CCP2M : 4; 5232 unsigned : 4; 5233 }; 5234 5235 struct 5236 { 5237 unsigned : 4; 5238 unsigned DC2B : 2; 5239 unsigned : 2; 5240 }; 5241 5242 struct 5243 { 5244 unsigned : 6; 5245 unsigned P2M : 2; 5246 }; 5247 } __ECCP2CONbits_t; 5248 5249 extern __at(0x0FBA) volatile __ECCP2CONbits_t ECCP2CONbits; 5250 5251 #define _ECCP2CON_CCP2M0 0x01 5252 #define _ECCP2CON_CCP2M1 0x02 5253 #define _ECCP2CON_CCP2M2 0x04 5254 #define _ECCP2CON_CCP2M3 0x08 5255 #define _ECCP2CON_DC2B0 0x10 5256 #define _ECCP2CON_CCP2Y 0x10 5257 #define _ECCP2CON_DC2B1 0x20 5258 #define _ECCP2CON_CCP2X 0x20 5259 #define _ECCP2CON_P2M0 0x40 5260 #define _ECCP2CON_P2M1 0x80 5261 5262 //============================================================================== 5263 5264 extern __at(0x0FBB) __sfr CCPR2; 5265 extern __at(0x0FBB) __sfr CCPR2L; 5266 extern __at(0x0FBC) __sfr CCPR2H; 5267 5268 //============================================================================== 5269 // CCP1CON Bits 5270 5271 extern __at(0x0FBD) __sfr CCP1CON; 5272 5273 typedef union 5274 { 5275 struct 5276 { 5277 unsigned CCP1M0 : 1; 5278 unsigned CCP1M1 : 1; 5279 unsigned CCP1M2 : 1; 5280 unsigned CCP1M3 : 1; 5281 unsigned DC1B0 : 1; 5282 unsigned DC1B1 : 1; 5283 unsigned P1M0 : 1; 5284 unsigned P1M1 : 1; 5285 }; 5286 5287 struct 5288 { 5289 unsigned : 1; 5290 unsigned : 1; 5291 unsigned : 1; 5292 unsigned : 1; 5293 unsigned CCP1Y : 1; 5294 unsigned CCP1X : 1; 5295 unsigned : 1; 5296 unsigned : 1; 5297 }; 5298 5299 struct 5300 { 5301 unsigned CCP1M : 4; 5302 unsigned : 4; 5303 }; 5304 5305 struct 5306 { 5307 unsigned : 4; 5308 unsigned DC1B : 2; 5309 unsigned : 2; 5310 }; 5311 5312 struct 5313 { 5314 unsigned : 6; 5315 unsigned P1M : 2; 5316 }; 5317 } __CCP1CONbits_t; 5318 5319 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits; 5320 5321 #define _CCP1M0 0x01 5322 #define _CCP1M1 0x02 5323 #define _CCP1M2 0x04 5324 #define _CCP1M3 0x08 5325 #define _DC1B0 0x10 5326 #define _CCP1Y 0x10 5327 #define _DC1B1 0x20 5328 #define _CCP1X 0x20 5329 #define _P1M0 0x40 5330 #define _P1M1 0x80 5331 5332 //============================================================================== 5333 5334 5335 //============================================================================== 5336 // ECCP1CON Bits 5337 5338 extern __at(0x0FBD) __sfr ECCP1CON; 5339 5340 typedef union 5341 { 5342 struct 5343 { 5344 unsigned CCP1M0 : 1; 5345 unsigned CCP1M1 : 1; 5346 unsigned CCP1M2 : 1; 5347 unsigned CCP1M3 : 1; 5348 unsigned DC1B0 : 1; 5349 unsigned DC1B1 : 1; 5350 unsigned P1M0 : 1; 5351 unsigned P1M1 : 1; 5352 }; 5353 5354 struct 5355 { 5356 unsigned : 1; 5357 unsigned : 1; 5358 unsigned : 1; 5359 unsigned : 1; 5360 unsigned CCP1Y : 1; 5361 unsigned CCP1X : 1; 5362 unsigned : 1; 5363 unsigned : 1; 5364 }; 5365 5366 struct 5367 { 5368 unsigned CCP1M : 4; 5369 unsigned : 4; 5370 }; 5371 5372 struct 5373 { 5374 unsigned : 4; 5375 unsigned DC1B : 2; 5376 unsigned : 2; 5377 }; 5378 5379 struct 5380 { 5381 unsigned : 6; 5382 unsigned P1M : 2; 5383 }; 5384 } __ECCP1CONbits_t; 5385 5386 extern __at(0x0FBD) volatile __ECCP1CONbits_t ECCP1CONbits; 5387 5388 #define _ECCP1CON_CCP1M0 0x01 5389 #define _ECCP1CON_CCP1M1 0x02 5390 #define _ECCP1CON_CCP1M2 0x04 5391 #define _ECCP1CON_CCP1M3 0x08 5392 #define _ECCP1CON_DC1B0 0x10 5393 #define _ECCP1CON_CCP1Y 0x10 5394 #define _ECCP1CON_DC1B1 0x20 5395 #define _ECCP1CON_CCP1X 0x20 5396 #define _ECCP1CON_P1M0 0x40 5397 #define _ECCP1CON_P1M1 0x80 5398 5399 //============================================================================== 5400 5401 extern __at(0x0FBE) __sfr CCPR1; 5402 extern __at(0x0FBE) __sfr CCPR1L; 5403 extern __at(0x0FBF) __sfr CCPR1H; 5404 5405 //============================================================================== 5406 // ADCON2 Bits 5407 5408 extern __at(0x0FC0) __sfr ADCON2; 5409 5410 typedef union 5411 { 5412 struct 5413 { 5414 unsigned ADCS0 : 1; 5415 unsigned ADCS1 : 1; 5416 unsigned ADCS2 : 1; 5417 unsigned ACQT0 : 1; 5418 unsigned ACQT1 : 1; 5419 unsigned ACQT2 : 1; 5420 unsigned : 1; 5421 unsigned ADFM : 1; 5422 }; 5423 5424 struct 5425 { 5426 unsigned ADCS : 3; 5427 unsigned : 5; 5428 }; 5429 5430 struct 5431 { 5432 unsigned : 3; 5433 unsigned ACQT : 3; 5434 unsigned : 2; 5435 }; 5436 } __ADCON2bits_t; 5437 5438 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits; 5439 5440 #define _ADCS0 0x01 5441 #define _ADCS1 0x02 5442 #define _ADCS2 0x04 5443 #define _ACQT0 0x08 5444 #define _ACQT1 0x10 5445 #define _ACQT2 0x20 5446 #define _ADFM 0x80 5447 5448 //============================================================================== 5449 5450 5451 //============================================================================== 5452 // ADCON1 Bits 5453 5454 extern __at(0x0FC1) __sfr ADCON1; 5455 5456 typedef union 5457 { 5458 struct 5459 { 5460 unsigned PCFG0 : 1; 5461 unsigned PCFG1 : 1; 5462 unsigned PCFG2 : 1; 5463 unsigned PCFG3 : 1; 5464 unsigned VCFG0 : 1; 5465 unsigned VCFG1 : 1; 5466 unsigned : 1; 5467 unsigned : 1; 5468 }; 5469 5470 struct 5471 { 5472 unsigned PCFG : 4; 5473 unsigned : 4; 5474 }; 5475 5476 struct 5477 { 5478 unsigned : 4; 5479 unsigned VCFG : 2; 5480 unsigned : 2; 5481 }; 5482 } __ADCON1bits_t; 5483 5484 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 5485 5486 #define _PCFG0 0x01 5487 #define _PCFG1 0x02 5488 #define _PCFG2 0x04 5489 #define _PCFG3 0x08 5490 #define _VCFG0 0x10 5491 #define _VCFG1 0x20 5492 5493 //============================================================================== 5494 5495 5496 //============================================================================== 5497 // ADCON0 Bits 5498 5499 extern __at(0x0FC2) __sfr ADCON0; 5500 5501 typedef union 5502 { 5503 struct 5504 { 5505 unsigned ADON : 1; 5506 unsigned GO_NOT_DONE : 1; 5507 unsigned CHS0 : 1; 5508 unsigned CHS1 : 1; 5509 unsigned CHS2 : 1; 5510 unsigned CHS3 : 1; 5511 unsigned : 1; 5512 unsigned ADCAL : 1; 5513 }; 5514 5515 struct 5516 { 5517 unsigned : 1; 5518 unsigned DONE : 1; 5519 unsigned : 1; 5520 unsigned : 1; 5521 unsigned : 1; 5522 unsigned : 1; 5523 unsigned : 1; 5524 unsigned : 1; 5525 }; 5526 5527 struct 5528 { 5529 unsigned : 1; 5530 unsigned GO_DONE : 1; 5531 unsigned : 1; 5532 unsigned : 1; 5533 unsigned : 1; 5534 unsigned : 1; 5535 unsigned : 1; 5536 unsigned : 1; 5537 }; 5538 5539 struct 5540 { 5541 unsigned : 1; 5542 unsigned GO : 1; 5543 unsigned : 1; 5544 unsigned : 1; 5545 unsigned : 1; 5546 unsigned : 1; 5547 unsigned : 1; 5548 unsigned : 1; 5549 }; 5550 5551 struct 5552 { 5553 unsigned : 1; 5554 unsigned NOT_DONE : 1; 5555 unsigned : 1; 5556 unsigned : 1; 5557 unsigned : 1; 5558 unsigned : 1; 5559 unsigned : 1; 5560 unsigned : 1; 5561 }; 5562 5563 struct 5564 { 5565 unsigned : 2; 5566 unsigned CHS : 4; 5567 unsigned : 2; 5568 }; 5569 } __ADCON0bits_t; 5570 5571 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 5572 5573 #define _ADON 0x01 5574 #define _GO_NOT_DONE 0x02 5575 #define _DONE 0x02 5576 #define _GO_DONE 0x02 5577 #define _GO 0x02 5578 #define _NOT_DONE 0x02 5579 #define _CHS0 0x04 5580 #define _CHS1 0x08 5581 #define _CHS2 0x10 5582 #define _CHS3 0x20 5583 #define _ADCAL 0x80 5584 5585 //============================================================================== 5586 5587 extern __at(0x0FC3) __sfr ADRES; 5588 extern __at(0x0FC3) __sfr ADRESL; 5589 extern __at(0x0FC4) __sfr ADRESH; 5590 5591 //============================================================================== 5592 // SSP1CON2 Bits 5593 5594 extern __at(0x0FC5) __sfr SSP1CON2; 5595 5596 typedef union 5597 { 5598 struct 5599 { 5600 unsigned SEN : 1; 5601 unsigned RSEN : 1; 5602 unsigned PEN : 1; 5603 unsigned RCEN : 1; 5604 unsigned ACKEN : 1; 5605 unsigned ACKDT : 1; 5606 unsigned ACKSTAT : 1; 5607 unsigned GCEN : 1; 5608 }; 5609 5610 struct 5611 { 5612 unsigned : 1; 5613 unsigned ADMSK1 : 1; 5614 unsigned ADMSK2 : 1; 5615 unsigned ADMSK3 : 1; 5616 unsigned ADMSK4 : 1; 5617 unsigned ADMSK5 : 1; 5618 unsigned : 1; 5619 unsigned : 1; 5620 }; 5621 } __SSP1CON2bits_t; 5622 5623 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits; 5624 5625 #define _SEN 0x01 5626 #define _RSEN 0x02 5627 #define _ADMSK1 0x02 5628 #define _PEN 0x04 5629 #define _ADMSK2 0x04 5630 #define _RCEN 0x08 5631 #define _ADMSK3 0x08 5632 #define _ACKEN 0x10 5633 #define _ADMSK4 0x10 5634 #define _ACKDT 0x20 5635 #define _ADMSK5 0x20 5636 #define _ACKSTAT 0x40 5637 #define _GCEN 0x80 5638 5639 //============================================================================== 5640 5641 5642 //============================================================================== 5643 // SSPCON2 Bits 5644 5645 extern __at(0x0FC5) __sfr SSPCON2; 5646 5647 typedef union 5648 { 5649 struct 5650 { 5651 unsigned SEN : 1; 5652 unsigned RSEN : 1; 5653 unsigned PEN : 1; 5654 unsigned RCEN : 1; 5655 unsigned ACKEN : 1; 5656 unsigned ACKDT : 1; 5657 unsigned ACKSTAT : 1; 5658 unsigned GCEN : 1; 5659 }; 5660 5661 struct 5662 { 5663 unsigned : 1; 5664 unsigned ADMSK1 : 1; 5665 unsigned ADMSK2 : 1; 5666 unsigned ADMSK3 : 1; 5667 unsigned ADMSK4 : 1; 5668 unsigned ADMSK5 : 1; 5669 unsigned : 1; 5670 unsigned : 1; 5671 }; 5672 } __SSPCON2bits_t; 5673 5674 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 5675 5676 #define _SSPCON2_SEN 0x01 5677 #define _SSPCON2_RSEN 0x02 5678 #define _SSPCON2_ADMSK1 0x02 5679 #define _SSPCON2_PEN 0x04 5680 #define _SSPCON2_ADMSK2 0x04 5681 #define _SSPCON2_RCEN 0x08 5682 #define _SSPCON2_ADMSK3 0x08 5683 #define _SSPCON2_ACKEN 0x10 5684 #define _SSPCON2_ADMSK4 0x10 5685 #define _SSPCON2_ACKDT 0x20 5686 #define _SSPCON2_ADMSK5 0x20 5687 #define _SSPCON2_ACKSTAT 0x40 5688 #define _SSPCON2_GCEN 0x80 5689 5690 //============================================================================== 5691 5692 5693 //============================================================================== 5694 // SSP1CON1 Bits 5695 5696 extern __at(0x0FC6) __sfr SSP1CON1; 5697 5698 typedef union 5699 { 5700 struct 5701 { 5702 unsigned SSPM0 : 1; 5703 unsigned SSPM1 : 1; 5704 unsigned SSPM2 : 1; 5705 unsigned SSPM3 : 1; 5706 unsigned CKP : 1; 5707 unsigned SSPEN : 1; 5708 unsigned SSPOV : 1; 5709 unsigned WCOL : 1; 5710 }; 5711 5712 struct 5713 { 5714 unsigned SSPM : 4; 5715 unsigned : 4; 5716 }; 5717 } __SSP1CON1bits_t; 5718 5719 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits; 5720 5721 #define _SSPM0 0x01 5722 #define _SSPM1 0x02 5723 #define _SSPM2 0x04 5724 #define _SSPM3 0x08 5725 #define _CKP 0x10 5726 #define _SSPEN 0x20 5727 #define _SSPOV 0x40 5728 #define _WCOL 0x80 5729 5730 //============================================================================== 5731 5732 5733 //============================================================================== 5734 // SSPCON1 Bits 5735 5736 extern __at(0x0FC6) __sfr SSPCON1; 5737 5738 typedef union 5739 { 5740 struct 5741 { 5742 unsigned SSPM0 : 1; 5743 unsigned SSPM1 : 1; 5744 unsigned SSPM2 : 1; 5745 unsigned SSPM3 : 1; 5746 unsigned CKP : 1; 5747 unsigned SSPEN : 1; 5748 unsigned SSPOV : 1; 5749 unsigned WCOL : 1; 5750 }; 5751 5752 struct 5753 { 5754 unsigned SSPM : 4; 5755 unsigned : 4; 5756 }; 5757 } __SSPCON1bits_t; 5758 5759 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 5760 5761 #define _SSPCON1_SSPM0 0x01 5762 #define _SSPCON1_SSPM1 0x02 5763 #define _SSPCON1_SSPM2 0x04 5764 #define _SSPCON1_SSPM3 0x08 5765 #define _SSPCON1_CKP 0x10 5766 #define _SSPCON1_SSPEN 0x20 5767 #define _SSPCON1_SSPOV 0x40 5768 #define _SSPCON1_WCOL 0x80 5769 5770 //============================================================================== 5771 5772 5773 //============================================================================== 5774 // SSP1STAT Bits 5775 5776 extern __at(0x0FC7) __sfr SSP1STAT; 5777 5778 typedef union 5779 { 5780 struct 5781 { 5782 unsigned BF : 1; 5783 unsigned UA : 1; 5784 unsigned R_NOT_W : 1; 5785 unsigned S : 1; 5786 unsigned P : 1; 5787 unsigned D_NOT_A : 1; 5788 unsigned CKE : 1; 5789 unsigned SMP : 1; 5790 }; 5791 5792 struct 5793 { 5794 unsigned : 1; 5795 unsigned : 1; 5796 unsigned R_W : 1; 5797 unsigned I2C_START : 1; 5798 unsigned I2C_STOP : 1; 5799 unsigned D_A : 1; 5800 unsigned : 1; 5801 unsigned : 1; 5802 }; 5803 5804 struct 5805 { 5806 unsigned : 1; 5807 unsigned : 1; 5808 unsigned I2C_READ : 1; 5809 unsigned : 1; 5810 unsigned : 1; 5811 unsigned I2C_DAT : 1; 5812 unsigned : 1; 5813 unsigned : 1; 5814 }; 5815 5816 struct 5817 { 5818 unsigned : 1; 5819 unsigned : 1; 5820 unsigned NOT_W : 1; 5821 unsigned : 1; 5822 unsigned : 1; 5823 unsigned NOT_A : 1; 5824 unsigned : 1; 5825 unsigned : 1; 5826 }; 5827 5828 struct 5829 { 5830 unsigned : 1; 5831 unsigned : 1; 5832 unsigned NOT_WRITE : 1; 5833 unsigned : 1; 5834 unsigned : 1; 5835 unsigned NOT_ADDRESS : 1; 5836 unsigned : 1; 5837 unsigned : 1; 5838 }; 5839 5840 struct 5841 { 5842 unsigned : 1; 5843 unsigned : 1; 5844 unsigned READ_WRITE : 1; 5845 unsigned : 1; 5846 unsigned : 1; 5847 unsigned DATA_ADDRESS : 1; 5848 unsigned : 1; 5849 unsigned : 1; 5850 }; 5851 5852 struct 5853 { 5854 unsigned : 1; 5855 unsigned : 1; 5856 unsigned R : 1; 5857 unsigned : 1; 5858 unsigned : 1; 5859 unsigned D : 1; 5860 unsigned : 1; 5861 unsigned : 1; 5862 }; 5863 } __SSP1STATbits_t; 5864 5865 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits; 5866 5867 #define _BF 0x01 5868 #define _UA 0x02 5869 #define _R_NOT_W 0x04 5870 #define _R_W 0x04 5871 #define _I2C_READ 0x04 5872 #define _NOT_W 0x04 5873 #define _NOT_WRITE 0x04 5874 #define _READ_WRITE 0x04 5875 #define _R 0x04 5876 #define _S 0x08 5877 #define _I2C_START 0x08 5878 #define _P 0x10 5879 #define _I2C_STOP 0x10 5880 #define _D_NOT_A 0x20 5881 #define _D_A 0x20 5882 #define _I2C_DAT 0x20 5883 #define _NOT_A 0x20 5884 #define _NOT_ADDRESS 0x20 5885 #define _DATA_ADDRESS 0x20 5886 #define _D 0x20 5887 #define _CKE 0x40 5888 #define _SMP 0x80 5889 5890 //============================================================================== 5891 5892 5893 //============================================================================== 5894 // SSPSTAT Bits 5895 5896 extern __at(0x0FC7) __sfr SSPSTAT; 5897 5898 typedef union 5899 { 5900 struct 5901 { 5902 unsigned BF : 1; 5903 unsigned UA : 1; 5904 unsigned R_NOT_W : 1; 5905 unsigned S : 1; 5906 unsigned P : 1; 5907 unsigned D_NOT_A : 1; 5908 unsigned CKE : 1; 5909 unsigned SMP : 1; 5910 }; 5911 5912 struct 5913 { 5914 unsigned : 1; 5915 unsigned : 1; 5916 unsigned R_W : 1; 5917 unsigned I2C_START : 1; 5918 unsigned I2C_STOP : 1; 5919 unsigned D_A : 1; 5920 unsigned : 1; 5921 unsigned : 1; 5922 }; 5923 5924 struct 5925 { 5926 unsigned : 1; 5927 unsigned : 1; 5928 unsigned I2C_READ : 1; 5929 unsigned : 1; 5930 unsigned : 1; 5931 unsigned I2C_DAT : 1; 5932 unsigned : 1; 5933 unsigned : 1; 5934 }; 5935 5936 struct 5937 { 5938 unsigned : 1; 5939 unsigned : 1; 5940 unsigned NOT_W : 1; 5941 unsigned : 1; 5942 unsigned : 1; 5943 unsigned NOT_A : 1; 5944 unsigned : 1; 5945 unsigned : 1; 5946 }; 5947 5948 struct 5949 { 5950 unsigned : 1; 5951 unsigned : 1; 5952 unsigned NOT_WRITE : 1; 5953 unsigned : 1; 5954 unsigned : 1; 5955 unsigned NOT_ADDRESS : 1; 5956 unsigned : 1; 5957 unsigned : 1; 5958 }; 5959 5960 struct 5961 { 5962 unsigned : 1; 5963 unsigned : 1; 5964 unsigned READ_WRITE : 1; 5965 unsigned : 1; 5966 unsigned : 1; 5967 unsigned DATA_ADDRESS : 1; 5968 unsigned : 1; 5969 unsigned : 1; 5970 }; 5971 5972 struct 5973 { 5974 unsigned : 1; 5975 unsigned : 1; 5976 unsigned R : 1; 5977 unsigned : 1; 5978 unsigned : 1; 5979 unsigned D : 1; 5980 unsigned : 1; 5981 unsigned : 1; 5982 }; 5983 } __SSPSTATbits_t; 5984 5985 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 5986 5987 #define _SSPSTAT_BF 0x01 5988 #define _SSPSTAT_UA 0x02 5989 #define _SSPSTAT_R_NOT_W 0x04 5990 #define _SSPSTAT_R_W 0x04 5991 #define _SSPSTAT_I2C_READ 0x04 5992 #define _SSPSTAT_NOT_W 0x04 5993 #define _SSPSTAT_NOT_WRITE 0x04 5994 #define _SSPSTAT_READ_WRITE 0x04 5995 #define _SSPSTAT_R 0x04 5996 #define _SSPSTAT_S 0x08 5997 #define _SSPSTAT_I2C_START 0x08 5998 #define _SSPSTAT_P 0x10 5999 #define _SSPSTAT_I2C_STOP 0x10 6000 #define _SSPSTAT_D_NOT_A 0x20 6001 #define _SSPSTAT_D_A 0x20 6002 #define _SSPSTAT_I2C_DAT 0x20 6003 #define _SSPSTAT_NOT_A 0x20 6004 #define _SSPSTAT_NOT_ADDRESS 0x20 6005 #define _SSPSTAT_DATA_ADDRESS 0x20 6006 #define _SSPSTAT_D 0x20 6007 #define _SSPSTAT_CKE 0x40 6008 #define _SSPSTAT_SMP 0x80 6009 6010 //============================================================================== 6011 6012 extern __at(0x0FC8) __sfr SSP1ADD; 6013 extern __at(0x0FC8) __sfr SSPADD; 6014 extern __at(0x0FC9) __sfr SSP1BUF; 6015 extern __at(0x0FC9) __sfr SSPBUF; 6016 6017 //============================================================================== 6018 // T2CON Bits 6019 6020 extern __at(0x0FCA) __sfr T2CON; 6021 6022 typedef union 6023 { 6024 struct 6025 { 6026 unsigned T2CKPS0 : 1; 6027 unsigned T2CKPS1 : 1; 6028 unsigned TMR2ON : 1; 6029 unsigned T2OUTPS0 : 1; 6030 unsigned T2OUTPS1 : 1; 6031 unsigned T2OUTPS2 : 1; 6032 unsigned T2OUTPS3 : 1; 6033 unsigned : 1; 6034 }; 6035 6036 struct 6037 { 6038 unsigned T2CKPS : 2; 6039 unsigned : 6; 6040 }; 6041 6042 struct 6043 { 6044 unsigned : 3; 6045 unsigned T2OUTPS : 4; 6046 unsigned : 1; 6047 }; 6048 } __T2CONbits_t; 6049 6050 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 6051 6052 #define _T2CKPS0 0x01 6053 #define _T2CKPS1 0x02 6054 #define _TMR2ON 0x04 6055 #define _T2OUTPS0 0x08 6056 #define _T2OUTPS1 0x10 6057 #define _T2OUTPS2 0x20 6058 #define _T2OUTPS3 0x40 6059 6060 //============================================================================== 6061 6062 extern __at(0x0FCB) __sfr PR2; 6063 extern __at(0x0FCC) __sfr TMR2; 6064 6065 //============================================================================== 6066 // T1CON Bits 6067 6068 extern __at(0x0FCD) __sfr T1CON; 6069 6070 typedef union 6071 { 6072 struct 6073 { 6074 unsigned TMR1ON : 1; 6075 unsigned TMR1CS : 1; 6076 unsigned NOT_T1SYNC : 1; 6077 unsigned T1OSCEN : 1; 6078 unsigned T1CKPS0 : 1; 6079 unsigned T1CKPS1 : 1; 6080 unsigned T1RUN : 1; 6081 unsigned RD16 : 1; 6082 }; 6083 6084 struct 6085 { 6086 unsigned : 1; 6087 unsigned : 1; 6088 unsigned T1SYNC : 1; 6089 unsigned : 1; 6090 unsigned : 1; 6091 unsigned : 1; 6092 unsigned : 1; 6093 unsigned : 1; 6094 }; 6095 6096 struct 6097 { 6098 unsigned : 1; 6099 unsigned : 1; 6100 unsigned T1INSYNC : 1; 6101 unsigned : 1; 6102 unsigned : 1; 6103 unsigned : 1; 6104 unsigned : 1; 6105 unsigned : 1; 6106 }; 6107 6108 struct 6109 { 6110 unsigned : 4; 6111 unsigned T1CKPS : 2; 6112 unsigned : 2; 6113 }; 6114 } __T1CONbits_t; 6115 6116 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 6117 6118 #define _TMR1ON 0x01 6119 #define _TMR1CS 0x02 6120 #define _NOT_T1SYNC 0x04 6121 #define _T1SYNC 0x04 6122 #define _T1INSYNC 0x04 6123 #define _T1OSCEN 0x08 6124 #define _T1CKPS0 0x10 6125 #define _T1CKPS1 0x20 6126 #define _T1RUN 0x40 6127 #define _RD16 0x80 6128 6129 //============================================================================== 6130 6131 extern __at(0x0FCE) __sfr TMR1; 6132 extern __at(0x0FCE) __sfr TMR1L; 6133 extern __at(0x0FCF) __sfr TMR1H; 6134 6135 //============================================================================== 6136 // RCON Bits 6137 6138 extern __at(0x0FD0) __sfr RCON; 6139 6140 typedef union 6141 { 6142 struct 6143 { 6144 unsigned NOT_BOR : 1; 6145 unsigned NOT_POR : 1; 6146 unsigned NOT_PD : 1; 6147 unsigned NOT_TO : 1; 6148 unsigned NOT_RI : 1; 6149 unsigned NOT_CM : 1; 6150 unsigned : 1; 6151 unsigned IPEN : 1; 6152 }; 6153 6154 struct 6155 { 6156 unsigned BOR : 1; 6157 unsigned POR : 1; 6158 unsigned PD : 1; 6159 unsigned TO : 1; 6160 unsigned RI : 1; 6161 unsigned CM : 1; 6162 unsigned : 1; 6163 unsigned : 1; 6164 }; 6165 } __RCONbits_t; 6166 6167 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 6168 6169 #define _NOT_BOR 0x01 6170 #define _BOR 0x01 6171 #define _NOT_POR 0x02 6172 #define _POR 0x02 6173 #define _NOT_PD 0x04 6174 #define _PD 0x04 6175 #define _NOT_TO 0x08 6176 #define _TO 0x08 6177 #define _NOT_RI 0x10 6178 #define _RI 0x10 6179 #define _NOT_CM 0x20 6180 #define _CM 0x20 6181 #define _IPEN 0x80 6182 6183 //============================================================================== 6184 6185 6186 //============================================================================== 6187 // WDTCON Bits 6188 6189 extern __at(0x0FD1) __sfr WDTCON; 6190 6191 typedef union 6192 { 6193 struct 6194 { 6195 unsigned SWDTEN : 1; 6196 unsigned : 1; 6197 unsigned : 1; 6198 unsigned : 1; 6199 unsigned : 1; 6200 unsigned : 1; 6201 unsigned : 1; 6202 unsigned : 1; 6203 }; 6204 6205 struct 6206 { 6207 unsigned SWDTE : 1; 6208 unsigned : 1; 6209 unsigned : 1; 6210 unsigned : 1; 6211 unsigned : 1; 6212 unsigned : 1; 6213 unsigned : 1; 6214 unsigned : 1; 6215 }; 6216 } __WDTCONbits_t; 6217 6218 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 6219 6220 #define _SWDTEN 0x01 6221 #define _SWDTE 0x01 6222 6223 //============================================================================== 6224 6225 6226 //============================================================================== 6227 // ECON1 Bits 6228 6229 extern __at(0x0FD2) __sfr ECON1; 6230 6231 typedef struct 6232 { 6233 unsigned : 1; 6234 unsigned : 1; 6235 unsigned RXEN : 1; 6236 unsigned TXRTS : 1; 6237 unsigned CSUMEN : 1; 6238 unsigned DMAST : 1; 6239 unsigned RXRST : 1; 6240 unsigned TXRST : 1; 6241 } __ECON1bits_t; 6242 6243 extern __at(0x0FD2) volatile __ECON1bits_t ECON1bits; 6244 6245 #define _RXEN 0x04 6246 #define _TXRTS 0x08 6247 #define _CSUMEN 0x10 6248 #define _DMAST 0x20 6249 #define _RXRST 0x40 6250 #define _TXRST 0x80 6251 6252 //============================================================================== 6253 6254 6255 //============================================================================== 6256 // OSCCON Bits 6257 6258 extern __at(0x0FD3) __sfr OSCCON; 6259 6260 typedef union 6261 { 6262 struct 6263 { 6264 unsigned SCS0 : 1; 6265 unsigned SCS1 : 1; 6266 unsigned : 1; 6267 unsigned OSTS : 1; 6268 unsigned : 1; 6269 unsigned : 1; 6270 unsigned : 1; 6271 unsigned IDLEN : 1; 6272 }; 6273 6274 struct 6275 { 6276 unsigned SCS : 2; 6277 unsigned : 6; 6278 }; 6279 } __OSCCONbits_t; 6280 6281 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 6282 6283 #define _SCS0 0x01 6284 #define _SCS1 0x02 6285 #define _OSTS 0x08 6286 #define _IDLEN 0x80 6287 6288 //============================================================================== 6289 6290 6291 //============================================================================== 6292 // T0CON Bits 6293 6294 extern __at(0x0FD5) __sfr T0CON; 6295 6296 typedef union 6297 { 6298 struct 6299 { 6300 unsigned T0PS0 : 1; 6301 unsigned T0PS1 : 1; 6302 unsigned T0PS2 : 1; 6303 unsigned PSA : 1; 6304 unsigned T0SE : 1; 6305 unsigned T0CS : 1; 6306 unsigned T08BIT : 1; 6307 unsigned TMR0ON : 1; 6308 }; 6309 6310 struct 6311 { 6312 unsigned T0PS : 3; 6313 unsigned : 5; 6314 }; 6315 } __T0CONbits_t; 6316 6317 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 6318 6319 #define _T0PS0 0x01 6320 #define _T0PS1 0x02 6321 #define _T0PS2 0x04 6322 #define _PSA 0x08 6323 #define _T0SE 0x10 6324 #define _T0CS 0x20 6325 #define _T08BIT 0x40 6326 #define _TMR0ON 0x80 6327 6328 //============================================================================== 6329 6330 extern __at(0x0FD6) __sfr TMR0; 6331 extern __at(0x0FD6) __sfr TMR0L; 6332 extern __at(0x0FD7) __sfr TMR0H; 6333 6334 //============================================================================== 6335 // STATUS Bits 6336 6337 extern __at(0x0FD8) __sfr STATUS; 6338 6339 typedef struct 6340 { 6341 unsigned C : 1; 6342 unsigned DC : 1; 6343 unsigned Z : 1; 6344 unsigned OV : 1; 6345 unsigned N : 1; 6346 unsigned : 1; 6347 unsigned : 1; 6348 unsigned : 1; 6349 } __STATUSbits_t; 6350 6351 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 6352 6353 #define _C 0x01 6354 #define _DC 0x02 6355 #define _Z 0x04 6356 #define _OV 0x08 6357 #define _N 0x10 6358 6359 //============================================================================== 6360 6361 extern __at(0x0FD9) __sfr FSR2L; 6362 extern __at(0x0FDA) __sfr FSR2H; 6363 extern __at(0x0FDB) __sfr PLUSW2; 6364 extern __at(0x0FDC) __sfr PREINC2; 6365 extern __at(0x0FDD) __sfr POSTDEC2; 6366 extern __at(0x0FDE) __sfr POSTINC2; 6367 extern __at(0x0FDF) __sfr INDF2; 6368 extern __at(0x0FE0) __sfr BSR; 6369 extern __at(0x0FE1) __sfr FSR1L; 6370 extern __at(0x0FE2) __sfr FSR1H; 6371 extern __at(0x0FE3) __sfr PLUSW1; 6372 extern __at(0x0FE4) __sfr PREINC1; 6373 extern __at(0x0FE5) __sfr POSTDEC1; 6374 extern __at(0x0FE6) __sfr POSTINC1; 6375 extern __at(0x0FE7) __sfr INDF1; 6376 extern __at(0x0FE8) __sfr WREG; 6377 extern __at(0x0FE9) __sfr FSR0L; 6378 extern __at(0x0FEA) __sfr FSR0H; 6379 extern __at(0x0FEB) __sfr PLUSW0; 6380 extern __at(0x0FEC) __sfr PREINC0; 6381 extern __at(0x0FED) __sfr POSTDEC0; 6382 extern __at(0x0FEE) __sfr POSTINC0; 6383 extern __at(0x0FEF) __sfr INDF0; 6384 6385 //============================================================================== 6386 // INTCON3 Bits 6387 6388 extern __at(0x0FF0) __sfr INTCON3; 6389 6390 typedef union 6391 { 6392 struct 6393 { 6394 unsigned INT1IF : 1; 6395 unsigned INT2IF : 1; 6396 unsigned INT3IF : 1; 6397 unsigned INT1IE : 1; 6398 unsigned INT2IE : 1; 6399 unsigned INT3IE : 1; 6400 unsigned INT1IP : 1; 6401 unsigned INT2IP : 1; 6402 }; 6403 6404 struct 6405 { 6406 unsigned INT1F : 1; 6407 unsigned INT2F : 1; 6408 unsigned INT3F : 1; 6409 unsigned INT1E : 1; 6410 unsigned INT2E : 1; 6411 unsigned INT3E : 1; 6412 unsigned INT1P : 1; 6413 unsigned INT2P : 1; 6414 }; 6415 } __INTCON3bits_t; 6416 6417 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 6418 6419 #define _INT1IF 0x01 6420 #define _INT1F 0x01 6421 #define _INT2IF 0x02 6422 #define _INT2F 0x02 6423 #define _INT3IF 0x04 6424 #define _INT3F 0x04 6425 #define _INT1IE 0x08 6426 #define _INT1E 0x08 6427 #define _INT2IE 0x10 6428 #define _INT2E 0x10 6429 #define _INT3IE 0x20 6430 #define _INT3E 0x20 6431 #define _INT1IP 0x40 6432 #define _INT1P 0x40 6433 #define _INT2IP 0x80 6434 #define _INT2P 0x80 6435 6436 //============================================================================== 6437 6438 6439 //============================================================================== 6440 // INTCON2 Bits 6441 6442 extern __at(0x0FF1) __sfr INTCON2; 6443 6444 typedef union 6445 { 6446 struct 6447 { 6448 unsigned RBIP : 1; 6449 unsigned INT3IP : 1; 6450 unsigned TMR0IP : 1; 6451 unsigned INTEDG3 : 1; 6452 unsigned INTEDG2 : 1; 6453 unsigned INTEDG1 : 1; 6454 unsigned INTEDG0 : 1; 6455 unsigned NOT_RBPU : 1; 6456 }; 6457 6458 struct 6459 { 6460 unsigned : 1; 6461 unsigned : 1; 6462 unsigned T0IP : 1; 6463 unsigned : 1; 6464 unsigned : 1; 6465 unsigned : 1; 6466 unsigned : 1; 6467 unsigned RBPU : 1; 6468 }; 6469 } __INTCON2bits_t; 6470 6471 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 6472 6473 #define _RBIP 0x01 6474 #define _INT3IP 0x02 6475 #define _TMR0IP 0x04 6476 #define _T0IP 0x04 6477 #define _INTEDG3 0x08 6478 #define _INTEDG2 0x10 6479 #define _INTEDG1 0x20 6480 #define _INTEDG0 0x40 6481 #define _NOT_RBPU 0x80 6482 #define _RBPU 0x80 6483 6484 //============================================================================== 6485 6486 6487 //============================================================================== 6488 // INTCON Bits 6489 6490 extern __at(0x0FF2) __sfr INTCON; 6491 6492 typedef union 6493 { 6494 struct 6495 { 6496 unsigned RBIF : 1; 6497 unsigned INT0IF : 1; 6498 unsigned TMR0IF : 1; 6499 unsigned RBIE : 1; 6500 unsigned INT0IE : 1; 6501 unsigned TMR0IE : 1; 6502 unsigned PEIE_GIEL : 1; 6503 unsigned GIE_GIEH : 1; 6504 }; 6505 6506 struct 6507 { 6508 unsigned : 1; 6509 unsigned INT0F : 1; 6510 unsigned T0IF : 1; 6511 unsigned : 1; 6512 unsigned INT0E : 1; 6513 unsigned T0IE : 1; 6514 unsigned PEIE : 1; 6515 unsigned GIE : 1; 6516 }; 6517 6518 struct 6519 { 6520 unsigned : 1; 6521 unsigned : 1; 6522 unsigned : 1; 6523 unsigned : 1; 6524 unsigned : 1; 6525 unsigned : 1; 6526 unsigned GIEL : 1; 6527 unsigned GIEH : 1; 6528 }; 6529 } __INTCONbits_t; 6530 6531 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 6532 6533 #define _RBIF 0x01 6534 #define _INT0IF 0x02 6535 #define _INT0F 0x02 6536 #define _TMR0IF 0x04 6537 #define _T0IF 0x04 6538 #define _RBIE 0x08 6539 #define _INT0IE 0x10 6540 #define _INT0E 0x10 6541 #define _TMR0IE 0x20 6542 #define _T0IE 0x20 6543 #define _PEIE_GIEL 0x40 6544 #define _PEIE 0x40 6545 #define _GIEL 0x40 6546 #define _GIE_GIEH 0x80 6547 #define _GIE 0x80 6548 #define _GIEH 0x80 6549 6550 //============================================================================== 6551 6552 extern __at(0x0FF3) __sfr PROD; 6553 extern __at(0x0FF3) __sfr PRODL; 6554 extern __at(0x0FF4) __sfr PRODH; 6555 extern __at(0x0FF5) __sfr TABLAT; 6556 extern __at(0x0FF6) __sfr TBLPTR; 6557 extern __at(0x0FF6) __sfr TBLPTRL; 6558 extern __at(0x0FF7) __sfr TBLPTRH; 6559 extern __at(0x0FF8) __sfr TBLPTRU; 6560 extern __at(0x0FF9) __sfr PC; 6561 extern __at(0x0FF9) __sfr PCL; 6562 extern __at(0x0FFA) __sfr PCLATH; 6563 extern __at(0x0FFB) __sfr PCLATU; 6564 6565 //============================================================================== 6566 // STKPTR Bits 6567 6568 extern __at(0x0FFC) __sfr STKPTR; 6569 6570 typedef union 6571 { 6572 struct 6573 { 6574 unsigned STKPTR0 : 1; 6575 unsigned STKPTR1 : 1; 6576 unsigned STKPTR2 : 1; 6577 unsigned STKPTR3 : 1; 6578 unsigned STKPTR4 : 1; 6579 unsigned : 1; 6580 unsigned STKUNF : 1; 6581 unsigned STKFUL : 1; 6582 }; 6583 6584 struct 6585 { 6586 unsigned SP0 : 1; 6587 unsigned SP1 : 1; 6588 unsigned SP2 : 1; 6589 unsigned SP3 : 1; 6590 unsigned SP4 : 1; 6591 unsigned : 1; 6592 unsigned : 1; 6593 unsigned STKOVF : 1; 6594 }; 6595 6596 struct 6597 { 6598 unsigned STKPTR : 5; 6599 unsigned : 3; 6600 }; 6601 6602 struct 6603 { 6604 unsigned SP : 5; 6605 unsigned : 3; 6606 }; 6607 } __STKPTRbits_t; 6608 6609 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 6610 6611 #define _STKPTR0 0x01 6612 #define _SP0 0x01 6613 #define _STKPTR1 0x02 6614 #define _SP1 0x02 6615 #define _STKPTR2 0x04 6616 #define _SP2 0x04 6617 #define _STKPTR3 0x08 6618 #define _SP3 0x08 6619 #define _STKPTR4 0x10 6620 #define _SP4 0x10 6621 #define _STKUNF 0x40 6622 #define _STKFUL 0x80 6623 #define _STKOVF 0x80 6624 6625 //============================================================================== 6626 6627 extern __at(0x0FFD) __sfr TOS; 6628 extern __at(0x0FFD) __sfr TOSL; 6629 extern __at(0x0FFE) __sfr TOSH; 6630 extern __at(0x0FFF) __sfr TOSU; 6631 6632 //============================================================================== 6633 // 6634 // Configuration Addresses 6635 // 6636 //============================================================================== 6637 6638 #define __CONFIG1L 0x01FFF8 6639 #define __CONFIG1H 0x01FFF9 6640 #define __CONFIG2L 0x01FFFA 6641 #define __CONFIG2H 0x01FFFB 6642 #define __CONFIG3L 0x01FFFC 6643 #define __CONFIG3H 0x01FFFD 6644 6645 //============================================================================== 6646 6647 #endif // #ifndef __PIC18F97J60_H__ 6648