1 /* 2 * This declarations of the PIC18F65J10 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:32 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 __PIC18F65J10_H__ 26 #define __PIC18F65J10_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 37 //============================================================================== 38 // SSP2CON2 Bits 39 40 extern __at(0x0F62) __sfr SSP2CON2; 41 42 typedef union 43 { 44 struct 45 { 46 unsigned SEN : 1; 47 unsigned RSEN : 1; 48 unsigned PEN : 1; 49 unsigned RCEN : 1; 50 unsigned ACKEN : 1; 51 unsigned ACKDT : 1; 52 unsigned ACKSTAT : 1; 53 unsigned GCEN : 1; 54 }; 55 56 struct 57 { 58 unsigned : 1; 59 unsigned ADMSK1 : 1; 60 unsigned ADMSK2 : 1; 61 unsigned ADMSK3 : 1; 62 unsigned ADMSK4 : 1; 63 unsigned ADMSK5 : 1; 64 unsigned : 1; 65 unsigned : 1; 66 }; 67 } __SSP2CON2bits_t; 68 69 extern __at(0x0F62) volatile __SSP2CON2bits_t SSP2CON2bits; 70 71 #define _SSP2CON2_SEN 0x01 72 #define _SSP2CON2_RSEN 0x02 73 #define _SSP2CON2_ADMSK1 0x02 74 #define _SSP2CON2_PEN 0x04 75 #define _SSP2CON2_ADMSK2 0x04 76 #define _SSP2CON2_RCEN 0x08 77 #define _SSP2CON2_ADMSK3 0x08 78 #define _SSP2CON2_ACKEN 0x10 79 #define _SSP2CON2_ADMSK4 0x10 80 #define _SSP2CON2_ACKDT 0x20 81 #define _SSP2CON2_ADMSK5 0x20 82 #define _SSP2CON2_ACKSTAT 0x40 83 #define _SSP2CON2_GCEN 0x80 84 85 //============================================================================== 86 87 88 //============================================================================== 89 // SSP2CON1 Bits 90 91 extern __at(0x0F63) __sfr SSP2CON1; 92 93 typedef union 94 { 95 struct 96 { 97 unsigned SSPM0 : 1; 98 unsigned SSPM1 : 1; 99 unsigned SSPM2 : 1; 100 unsigned SSPM3 : 1; 101 unsigned CKP : 1; 102 unsigned SSPEN : 1; 103 unsigned SSPOV : 1; 104 unsigned WCOL : 1; 105 }; 106 107 struct 108 { 109 unsigned SSPM : 4; 110 unsigned : 4; 111 }; 112 } __SSP2CON1bits_t; 113 114 extern __at(0x0F63) volatile __SSP2CON1bits_t SSP2CON1bits; 115 116 #define _SSP2CON1_SSPM0 0x01 117 #define _SSP2CON1_SSPM1 0x02 118 #define _SSP2CON1_SSPM2 0x04 119 #define _SSP2CON1_SSPM3 0x08 120 #define _SSP2CON1_CKP 0x10 121 #define _SSP2CON1_SSPEN 0x20 122 #define _SSP2CON1_SSPOV 0x40 123 #define _SSP2CON1_WCOL 0x80 124 125 //============================================================================== 126 127 128 //============================================================================== 129 // SSP2STAT Bits 130 131 extern __at(0x0F64) __sfr SSP2STAT; 132 133 typedef union 134 { 135 struct 136 { 137 unsigned BF : 1; 138 unsigned UA : 1; 139 unsigned R_NOT_W : 1; 140 unsigned S : 1; 141 unsigned P : 1; 142 unsigned D_NOT_A : 1; 143 unsigned CKE : 1; 144 unsigned SMP : 1; 145 }; 146 147 struct 148 { 149 unsigned : 1; 150 unsigned : 1; 151 unsigned R_W : 1; 152 unsigned I2C_START : 1; 153 unsigned I2C_STOP : 1; 154 unsigned D_A : 1; 155 unsigned : 1; 156 unsigned : 1; 157 }; 158 159 struct 160 { 161 unsigned : 1; 162 unsigned : 1; 163 unsigned I2C_READ : 1; 164 unsigned : 1; 165 unsigned : 1; 166 unsigned I2C_DAT : 1; 167 unsigned : 1; 168 unsigned : 1; 169 }; 170 171 struct 172 { 173 unsigned : 1; 174 unsigned : 1; 175 unsigned NOT_W : 1; 176 unsigned : 1; 177 unsigned : 1; 178 unsigned NOT_A : 1; 179 unsigned : 1; 180 unsigned : 1; 181 }; 182 183 struct 184 { 185 unsigned : 1; 186 unsigned : 1; 187 unsigned NOT_WRITE : 1; 188 unsigned : 1; 189 unsigned : 1; 190 unsigned NOT_ADDRESS : 1; 191 unsigned : 1; 192 unsigned : 1; 193 }; 194 195 struct 196 { 197 unsigned : 1; 198 unsigned : 1; 199 unsigned READ_WRITE : 1; 200 unsigned : 1; 201 unsigned : 1; 202 unsigned DATA_ADDRESS : 1; 203 unsigned : 1; 204 unsigned : 1; 205 }; 206 207 struct 208 { 209 unsigned : 1; 210 unsigned : 1; 211 unsigned R : 1; 212 unsigned : 1; 213 unsigned : 1; 214 unsigned D : 1; 215 unsigned : 1; 216 unsigned : 1; 217 }; 218 } __SSP2STATbits_t; 219 220 extern __at(0x0F64) volatile __SSP2STATbits_t SSP2STATbits; 221 222 #define _SSP2STAT_BF 0x01 223 #define _SSP2STAT_UA 0x02 224 #define _SSP2STAT_R_NOT_W 0x04 225 #define _SSP2STAT_R_W 0x04 226 #define _SSP2STAT_I2C_READ 0x04 227 #define _SSP2STAT_NOT_W 0x04 228 #define _SSP2STAT_NOT_WRITE 0x04 229 #define _SSP2STAT_READ_WRITE 0x04 230 #define _SSP2STAT_R 0x04 231 #define _SSP2STAT_S 0x08 232 #define _SSP2STAT_I2C_START 0x08 233 #define _SSP2STAT_P 0x10 234 #define _SSP2STAT_I2C_STOP 0x10 235 #define _SSP2STAT_D_NOT_A 0x20 236 #define _SSP2STAT_D_A 0x20 237 #define _SSP2STAT_I2C_DAT 0x20 238 #define _SSP2STAT_NOT_A 0x20 239 #define _SSP2STAT_NOT_ADDRESS 0x20 240 #define _SSP2STAT_DATA_ADDRESS 0x20 241 #define _SSP2STAT_D 0x20 242 #define _SSP2STAT_CKE 0x40 243 #define _SSP2STAT_SMP 0x80 244 245 //============================================================================== 246 247 extern __at(0x0F65) __sfr SSP2ADD; 248 extern __at(0x0F66) __sfr SSP2BUF; 249 250 //============================================================================== 251 // ECCP2DEL Bits 252 253 extern __at(0x0F67) __sfr ECCP2DEL; 254 255 typedef union 256 { 257 struct 258 { 259 unsigned PDC0 : 1; 260 unsigned PDC1 : 1; 261 unsigned PDC2 : 1; 262 unsigned PDC3 : 1; 263 unsigned PDC4 : 1; 264 unsigned PDC5 : 1; 265 unsigned PDC6 : 1; 266 unsigned PRSEN : 1; 267 }; 268 269 struct 270 { 271 unsigned P2DC0 : 1; 272 unsigned P2DC1 : 1; 273 unsigned P2DC2 : 1; 274 unsigned P2DC3 : 1; 275 unsigned P2DC4 : 1; 276 unsigned P2DC5 : 1; 277 unsigned P2DC6 : 1; 278 unsigned P2RSEN : 1; 279 }; 280 281 struct 282 { 283 unsigned PDC : 7; 284 unsigned : 1; 285 }; 286 287 struct 288 { 289 unsigned P2DC : 7; 290 unsigned : 1; 291 }; 292 } __ECCP2DELbits_t; 293 294 extern __at(0x0F67) volatile __ECCP2DELbits_t ECCP2DELbits; 295 296 #define _ECCP2DEL_PDC0 0x01 297 #define _ECCP2DEL_P2DC0 0x01 298 #define _ECCP2DEL_PDC1 0x02 299 #define _ECCP2DEL_P2DC1 0x02 300 #define _ECCP2DEL_PDC2 0x04 301 #define _ECCP2DEL_P2DC2 0x04 302 #define _ECCP2DEL_PDC3 0x08 303 #define _ECCP2DEL_P2DC3 0x08 304 #define _ECCP2DEL_PDC4 0x10 305 #define _ECCP2DEL_P2DC4 0x10 306 #define _ECCP2DEL_PDC5 0x20 307 #define _ECCP2DEL_P2DC5 0x20 308 #define _ECCP2DEL_PDC6 0x40 309 #define _ECCP2DEL_P2DC6 0x40 310 #define _ECCP2DEL_PRSEN 0x80 311 #define _ECCP2DEL_P2RSEN 0x80 312 313 //============================================================================== 314 315 316 //============================================================================== 317 // ECCP2AS Bits 318 319 extern __at(0x0F68) __sfr ECCP2AS; 320 321 typedef union 322 { 323 struct 324 { 325 unsigned PSSBD0 : 1; 326 unsigned PSSBD1 : 1; 327 unsigned PSSAC0 : 1; 328 unsigned PSSAC1 : 1; 329 unsigned ECCPAS0 : 1; 330 unsigned ECCPAS1 : 1; 331 unsigned ECCPAS2 : 1; 332 unsigned ECCPASE : 1; 333 }; 334 335 struct 336 { 337 unsigned PSS2BD0 : 1; 338 unsigned PSS2BD1 : 1; 339 unsigned PSS2AC0 : 1; 340 unsigned PSS2AC1 : 1; 341 unsigned ECCP2AS0 : 1; 342 unsigned ECCP2AS1 : 1; 343 unsigned ECCP2AS2 : 1; 344 unsigned ECCP2ASE : 1; 345 }; 346 347 struct 348 { 349 unsigned PSSBD : 2; 350 unsigned : 6; 351 }; 352 353 struct 354 { 355 unsigned PSS2BD : 2; 356 unsigned : 6; 357 }; 358 359 struct 360 { 361 unsigned : 2; 362 unsigned PSS2AC : 2; 363 unsigned : 4; 364 }; 365 366 struct 367 { 368 unsigned : 2; 369 unsigned PSSAC : 2; 370 unsigned : 4; 371 }; 372 373 struct 374 { 375 unsigned : 4; 376 unsigned ECCPAS : 3; 377 unsigned : 1; 378 }; 379 380 struct 381 { 382 unsigned : 4; 383 unsigned ECCP2AS : 3; 384 unsigned : 1; 385 }; 386 } __ECCP2ASbits_t; 387 388 extern __at(0x0F68) volatile __ECCP2ASbits_t ECCP2ASbits; 389 390 #define _ECCP2AS_PSSBD0 0x01 391 #define _ECCP2AS_PSS2BD0 0x01 392 #define _ECCP2AS_PSSBD1 0x02 393 #define _ECCP2AS_PSS2BD1 0x02 394 #define _ECCP2AS_PSSAC0 0x04 395 #define _ECCP2AS_PSS2AC0 0x04 396 #define _ECCP2AS_PSSAC1 0x08 397 #define _ECCP2AS_PSS2AC1 0x08 398 #define _ECCP2AS_ECCPAS0 0x10 399 #define _ECCP2AS_ECCP2AS0 0x10 400 #define _ECCP2AS_ECCPAS1 0x20 401 #define _ECCP2AS_ECCP2AS1 0x20 402 #define _ECCP2AS_ECCPAS2 0x40 403 #define _ECCP2AS_ECCP2AS2 0x40 404 #define _ECCP2AS_ECCPASE 0x80 405 #define _ECCP2AS_ECCP2ASE 0x80 406 407 //============================================================================== 408 409 410 //============================================================================== 411 // ECCP3DEL Bits 412 413 extern __at(0x0F69) __sfr ECCP3DEL; 414 415 typedef union 416 { 417 struct 418 { 419 unsigned PDC0 : 1; 420 unsigned PDC1 : 1; 421 unsigned PDC2 : 1; 422 unsigned PDC3 : 1; 423 unsigned PDC4 : 1; 424 unsigned PDC5 : 1; 425 unsigned PDC6 : 1; 426 unsigned PRSEN : 1; 427 }; 428 429 struct 430 { 431 unsigned P3DC0 : 1; 432 unsigned P3DC1 : 1; 433 unsigned P3DC2 : 1; 434 unsigned P3DC3 : 1; 435 unsigned P3DC4 : 1; 436 unsigned P3DC5 : 1; 437 unsigned P3DC6 : 1; 438 unsigned P3RSEN : 1; 439 }; 440 441 struct 442 { 443 unsigned PDC : 7; 444 unsigned : 1; 445 }; 446 447 struct 448 { 449 unsigned P3DC : 7; 450 unsigned : 1; 451 }; 452 } __ECCP3DELbits_t; 453 454 extern __at(0x0F69) volatile __ECCP3DELbits_t ECCP3DELbits; 455 456 #define _ECCP3DEL_PDC0 0x01 457 #define _ECCP3DEL_P3DC0 0x01 458 #define _ECCP3DEL_PDC1 0x02 459 #define _ECCP3DEL_P3DC1 0x02 460 #define _ECCP3DEL_PDC2 0x04 461 #define _ECCP3DEL_P3DC2 0x04 462 #define _ECCP3DEL_PDC3 0x08 463 #define _ECCP3DEL_P3DC3 0x08 464 #define _ECCP3DEL_PDC4 0x10 465 #define _ECCP3DEL_P3DC4 0x10 466 #define _ECCP3DEL_PDC5 0x20 467 #define _ECCP3DEL_P3DC5 0x20 468 #define _ECCP3DEL_PDC6 0x40 469 #define _ECCP3DEL_P3DC6 0x40 470 #define _ECCP3DEL_PRSEN 0x80 471 #define _ECCP3DEL_P3RSEN 0x80 472 473 //============================================================================== 474 475 476 //============================================================================== 477 // ECCP3AS Bits 478 479 extern __at(0x0F6A) __sfr ECCP3AS; 480 481 typedef union 482 { 483 struct 484 { 485 unsigned PSSBD0 : 1; 486 unsigned PSSBD1 : 1; 487 unsigned PSSAC0 : 1; 488 unsigned PSSAC1 : 1; 489 unsigned ECCPAS0 : 1; 490 unsigned ECCPAS1 : 1; 491 unsigned ECCPAS2 : 1; 492 unsigned ECCPASE : 1; 493 }; 494 495 struct 496 { 497 unsigned PSS3BD0 : 1; 498 unsigned PSS3BD1 : 1; 499 unsigned PSS3AC0 : 1; 500 unsigned PSS3AC1 : 1; 501 unsigned ECCP3AS0 : 1; 502 unsigned ECCP3AS1 : 1; 503 unsigned ECCP3AS2 : 1; 504 unsigned ECCP3ASE : 1; 505 }; 506 507 struct 508 { 509 unsigned PSSBD : 2; 510 unsigned : 6; 511 }; 512 513 struct 514 { 515 unsigned PSS3BD : 2; 516 unsigned : 6; 517 }; 518 519 struct 520 { 521 unsigned : 2; 522 unsigned PSSAC : 2; 523 unsigned : 4; 524 }; 525 526 struct 527 { 528 unsigned : 2; 529 unsigned PSS3AC : 2; 530 unsigned : 4; 531 }; 532 533 struct 534 { 535 unsigned : 4; 536 unsigned ECCP3AS : 3; 537 unsigned : 1; 538 }; 539 540 struct 541 { 542 unsigned : 4; 543 unsigned ECCPAS : 3; 544 unsigned : 1; 545 }; 546 } __ECCP3ASbits_t; 547 548 extern __at(0x0F6A) volatile __ECCP3ASbits_t ECCP3ASbits; 549 550 #define _ECCP3AS_PSSBD0 0x01 551 #define _ECCP3AS_PSS3BD0 0x01 552 #define _ECCP3AS_PSSBD1 0x02 553 #define _ECCP3AS_PSS3BD1 0x02 554 #define _ECCP3AS_PSSAC0 0x04 555 #define _ECCP3AS_PSS3AC0 0x04 556 #define _ECCP3AS_PSSAC1 0x08 557 #define _ECCP3AS_PSS3AC1 0x08 558 #define _ECCP3AS_ECCPAS0 0x10 559 #define _ECCP3AS_ECCP3AS0 0x10 560 #define _ECCP3AS_ECCPAS1 0x20 561 #define _ECCP3AS_ECCP3AS1 0x20 562 #define _ECCP3AS_ECCPAS2 0x40 563 #define _ECCP3AS_ECCP3AS2 0x40 564 #define _ECCP3AS_ECCPASE 0x80 565 #define _ECCP3AS_ECCP3ASE 0x80 566 567 //============================================================================== 568 569 570 //============================================================================== 571 // RCSTA2 Bits 572 573 extern __at(0x0F6B) __sfr RCSTA2; 574 575 typedef union 576 { 577 struct 578 { 579 unsigned RX9D : 1; 580 unsigned OERR : 1; 581 unsigned FERR : 1; 582 unsigned ADDEN : 1; 583 unsigned CREN : 1; 584 unsigned SREN : 1; 585 unsigned RX9 : 1; 586 unsigned SPEN : 1; 587 }; 588 589 struct 590 { 591 unsigned RCD8 : 1; 592 unsigned OERR2 : 1; 593 unsigned FERR2 : 1; 594 unsigned ADDEN2 : 1; 595 unsigned CREN2 : 1; 596 unsigned SREN2 : 1; 597 unsigned RC9 : 1; 598 unsigned SPEN2 : 1; 599 }; 600 601 struct 602 { 603 unsigned RX9D2 : 1; 604 unsigned : 1; 605 unsigned : 1; 606 unsigned : 1; 607 unsigned : 1; 608 unsigned : 1; 609 unsigned NOT_RC8 : 1; 610 unsigned : 1; 611 }; 612 613 struct 614 { 615 unsigned : 1; 616 unsigned : 1; 617 unsigned : 1; 618 unsigned : 1; 619 unsigned : 1; 620 unsigned : 1; 621 unsigned RC8_9 : 1; 622 unsigned : 1; 623 }; 624 625 struct 626 { 627 unsigned : 1; 628 unsigned : 1; 629 unsigned : 1; 630 unsigned : 1; 631 unsigned : 1; 632 unsigned : 1; 633 unsigned RX92 : 1; 634 unsigned : 1; 635 }; 636 } __RCSTA2bits_t; 637 638 extern __at(0x0F6B) volatile __RCSTA2bits_t RCSTA2bits; 639 640 #define _RCSTA2_RX9D 0x01 641 #define _RCSTA2_RCD8 0x01 642 #define _RCSTA2_RX9D2 0x01 643 #define _RCSTA2_OERR 0x02 644 #define _RCSTA2_OERR2 0x02 645 #define _RCSTA2_FERR 0x04 646 #define _RCSTA2_FERR2 0x04 647 #define _RCSTA2_ADDEN 0x08 648 #define _RCSTA2_ADDEN2 0x08 649 #define _RCSTA2_CREN 0x10 650 #define _RCSTA2_CREN2 0x10 651 #define _RCSTA2_SREN 0x20 652 #define _RCSTA2_SREN2 0x20 653 #define _RCSTA2_RX9 0x40 654 #define _RCSTA2_RC9 0x40 655 #define _RCSTA2_NOT_RC8 0x40 656 #define _RCSTA2_RC8_9 0x40 657 #define _RCSTA2_RX92 0x40 658 #define _RCSTA2_SPEN 0x80 659 #define _RCSTA2_SPEN2 0x80 660 661 //============================================================================== 662 663 664 //============================================================================== 665 // TXSTA2 Bits 666 667 extern __at(0x0F6C) __sfr TXSTA2; 668 669 typedef union 670 { 671 struct 672 { 673 unsigned TX9D : 1; 674 unsigned TRMT : 1; 675 unsigned BRGH : 1; 676 unsigned SENDB : 1; 677 unsigned SYNC : 1; 678 unsigned TXEN : 1; 679 unsigned TX9 : 1; 680 unsigned CSRC : 1; 681 }; 682 683 struct 684 { 685 unsigned TXD8 : 1; 686 unsigned TRMT2 : 1; 687 unsigned BRGH2 : 1; 688 unsigned SENDB2 : 1; 689 unsigned SYNC2 : 1; 690 unsigned TXEN2 : 1; 691 unsigned TX8_9 : 1; 692 unsigned CSRC2 : 1; 693 }; 694 695 struct 696 { 697 unsigned TX9D2 : 1; 698 unsigned : 1; 699 unsigned : 1; 700 unsigned : 1; 701 unsigned : 1; 702 unsigned : 1; 703 unsigned NOT_TX8 : 1; 704 unsigned : 1; 705 }; 706 707 struct 708 { 709 unsigned : 1; 710 unsigned : 1; 711 unsigned : 1; 712 unsigned : 1; 713 unsigned : 1; 714 unsigned : 1; 715 unsigned TX92 : 1; 716 unsigned : 1; 717 }; 718 } __TXSTA2bits_t; 719 720 extern __at(0x0F6C) volatile __TXSTA2bits_t TXSTA2bits; 721 722 #define _TXSTA2_TX9D 0x01 723 #define _TXSTA2_TXD8 0x01 724 #define _TXSTA2_TX9D2 0x01 725 #define _TXSTA2_TRMT 0x02 726 #define _TXSTA2_TRMT2 0x02 727 #define _TXSTA2_BRGH 0x04 728 #define _TXSTA2_BRGH2 0x04 729 #define _TXSTA2_SENDB 0x08 730 #define _TXSTA2_SENDB2 0x08 731 #define _TXSTA2_SYNC 0x10 732 #define _TXSTA2_SYNC2 0x10 733 #define _TXSTA2_TXEN 0x20 734 #define _TXSTA2_TXEN2 0x20 735 #define _TXSTA2_TX9 0x40 736 #define _TXSTA2_TX8_9 0x40 737 #define _TXSTA2_NOT_TX8 0x40 738 #define _TXSTA2_TX92 0x40 739 #define _TXSTA2_CSRC 0x80 740 #define _TXSTA2_CSRC2 0x80 741 742 //============================================================================== 743 744 extern __at(0x0F6D) __sfr TXREG2; 745 extern __at(0x0F6E) __sfr RCREG2; 746 extern __at(0x0F6F) __sfr SPBRG2; 747 748 //============================================================================== 749 // CCP5CON Bits 750 751 extern __at(0x0F70) __sfr CCP5CON; 752 753 typedef union 754 { 755 struct 756 { 757 unsigned CCP5M0 : 1; 758 unsigned CCP5M1 : 1; 759 unsigned CCP5M2 : 1; 760 unsigned CCP5M3 : 1; 761 unsigned DCCP5Y : 1; 762 unsigned DCCP5X : 1; 763 unsigned : 1; 764 unsigned : 1; 765 }; 766 767 struct 768 { 769 unsigned : 1; 770 unsigned : 1; 771 unsigned : 1; 772 unsigned : 1; 773 unsigned DC5B0 : 1; 774 unsigned DC5B1 : 1; 775 unsigned : 1; 776 unsigned : 1; 777 }; 778 779 struct 780 { 781 unsigned CCP5M : 4; 782 unsigned : 4; 783 }; 784 785 struct 786 { 787 unsigned : 4; 788 unsigned DC5B : 2; 789 unsigned : 2; 790 }; 791 } __CCP5CONbits_t; 792 793 extern __at(0x0F70) volatile __CCP5CONbits_t CCP5CONbits; 794 795 #define _CCP5M0 0x01 796 #define _CCP5M1 0x02 797 #define _CCP5M2 0x04 798 #define _CCP5M3 0x08 799 #define _DCCP5Y 0x10 800 #define _DC5B0 0x10 801 #define _DCCP5X 0x20 802 #define _DC5B1 0x20 803 804 //============================================================================== 805 806 extern __at(0x0F71) __sfr CCPR5; 807 extern __at(0x0F71) __sfr CCPR5L; 808 extern __at(0x0F72) __sfr CCPR5H; 809 810 //============================================================================== 811 // CCP4CON Bits 812 813 extern __at(0x0F73) __sfr CCP4CON; 814 815 typedef union 816 { 817 struct 818 { 819 unsigned CCP4M0 : 1; 820 unsigned CCP4M1 : 1; 821 unsigned CCP4M2 : 1; 822 unsigned CCP4M3 : 1; 823 unsigned DCCP4Y : 1; 824 unsigned DCCP4X : 1; 825 unsigned : 1; 826 unsigned : 1; 827 }; 828 829 struct 830 { 831 unsigned : 1; 832 unsigned : 1; 833 unsigned : 1; 834 unsigned : 1; 835 unsigned DC4B0 : 1; 836 unsigned DC4B1 : 1; 837 unsigned : 1; 838 unsigned : 1; 839 }; 840 841 struct 842 { 843 unsigned CCP4M : 4; 844 unsigned : 4; 845 }; 846 847 struct 848 { 849 unsigned : 4; 850 unsigned DC4B : 2; 851 unsigned : 2; 852 }; 853 } __CCP4CONbits_t; 854 855 extern __at(0x0F73) volatile __CCP4CONbits_t CCP4CONbits; 856 857 #define _CCP4M0 0x01 858 #define _CCP4M1 0x02 859 #define _CCP4M2 0x04 860 #define _CCP4M3 0x08 861 #define _DCCP4Y 0x10 862 #define _DC4B0 0x10 863 #define _DCCP4X 0x20 864 #define _DC4B1 0x20 865 866 //============================================================================== 867 868 extern __at(0x0F74) __sfr CCPR4; 869 extern __at(0x0F74) __sfr CCPR4L; 870 extern __at(0x0F75) __sfr CCPR4H; 871 872 //============================================================================== 873 // T4CON Bits 874 875 extern __at(0x0F76) __sfr T4CON; 876 877 typedef union 878 { 879 struct 880 { 881 unsigned T4CKPS0 : 1; 882 unsigned T4CKPS1 : 1; 883 unsigned TMR4ON : 1; 884 unsigned T4OUTPS0 : 1; 885 unsigned T4OUTPS1 : 1; 886 unsigned T4OUTPS2 : 1; 887 unsigned T4OUTPS3 : 1; 888 unsigned : 1; 889 }; 890 891 struct 892 { 893 unsigned T4CKPS : 2; 894 unsigned : 6; 895 }; 896 897 struct 898 { 899 unsigned : 3; 900 unsigned T4OUTPS : 4; 901 unsigned : 1; 902 }; 903 } __T4CONbits_t; 904 905 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits; 906 907 #define _T4CKPS0 0x01 908 #define _T4CKPS1 0x02 909 #define _TMR4ON 0x04 910 #define _T4OUTPS0 0x08 911 #define _T4OUTPS1 0x10 912 #define _T4OUTPS2 0x20 913 #define _T4OUTPS3 0x40 914 915 //============================================================================== 916 917 extern __at(0x0F77) __sfr PR4; 918 extern __at(0x0F78) __sfr TMR4; 919 920 //============================================================================== 921 // ECCP1DEL Bits 922 923 extern __at(0x0F79) __sfr ECCP1DEL; 924 925 typedef union 926 { 927 struct 928 { 929 unsigned PDC0 : 1; 930 unsigned PDC1 : 1; 931 unsigned PDC2 : 1; 932 unsigned PDC3 : 1; 933 unsigned PDC4 : 1; 934 unsigned PDC5 : 1; 935 unsigned PDC6 : 1; 936 unsigned PRSEN : 1; 937 }; 938 939 struct 940 { 941 unsigned P1DC0 : 1; 942 unsigned P1DC1 : 1; 943 unsigned P1DC2 : 1; 944 unsigned P1DC3 : 1; 945 unsigned P1DC4 : 1; 946 unsigned P1DC5 : 1; 947 unsigned P1DC6 : 1; 948 unsigned P1RSEN : 1; 949 }; 950 951 struct 952 { 953 unsigned P1DC : 7; 954 unsigned : 1; 955 }; 956 957 struct 958 { 959 unsigned PDC : 7; 960 unsigned : 1; 961 }; 962 } __ECCP1DELbits_t; 963 964 extern __at(0x0F79) volatile __ECCP1DELbits_t ECCP1DELbits; 965 966 #define _PDC0 0x01 967 #define _P1DC0 0x01 968 #define _PDC1 0x02 969 #define _P1DC1 0x02 970 #define _PDC2 0x04 971 #define _P1DC2 0x04 972 #define _PDC3 0x08 973 #define _P1DC3 0x08 974 #define _PDC4 0x10 975 #define _P1DC4 0x10 976 #define _PDC5 0x20 977 #define _P1DC5 0x20 978 #define _PDC6 0x40 979 #define _P1DC6 0x40 980 #define _PRSEN 0x80 981 #define _P1RSEN 0x80 982 983 //============================================================================== 984 985 986 //============================================================================== 987 // BAUDCON2 Bits 988 989 extern __at(0x0F7C) __sfr BAUDCON2; 990 991 typedef union 992 { 993 struct 994 { 995 unsigned ABDEN : 1; 996 unsigned WUE : 1; 997 unsigned : 1; 998 unsigned BRG16 : 1; 999 unsigned SCKP : 1; 1000 unsigned : 1; 1001 unsigned RCMT : 1; 1002 unsigned ABDOVF : 1; 1003 }; 1004 1005 struct 1006 { 1007 unsigned : 1; 1008 unsigned : 1; 1009 unsigned : 1; 1010 unsigned : 1; 1011 unsigned : 1; 1012 unsigned : 1; 1013 unsigned RCIDL : 1; 1014 unsigned : 1; 1015 }; 1016 } __BAUDCON2bits_t; 1017 1018 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits; 1019 1020 #define _BAUDCON2_ABDEN 0x01 1021 #define _BAUDCON2_WUE 0x02 1022 #define _BAUDCON2_BRG16 0x08 1023 #define _BAUDCON2_SCKP 0x10 1024 #define _BAUDCON2_RCMT 0x40 1025 #define _BAUDCON2_RCIDL 0x40 1026 #define _BAUDCON2_ABDOVF 0x80 1027 1028 //============================================================================== 1029 1030 extern __at(0x0F7D) __sfr SPBRGH2; 1031 1032 //============================================================================== 1033 // BAUDCON Bits 1034 1035 extern __at(0x0F7E) __sfr BAUDCON; 1036 1037 typedef union 1038 { 1039 struct 1040 { 1041 unsigned ABDEN : 1; 1042 unsigned WUE : 1; 1043 unsigned : 1; 1044 unsigned BRG16 : 1; 1045 unsigned SCKP : 1; 1046 unsigned : 1; 1047 unsigned RCMT : 1; 1048 unsigned ABDOVF : 1; 1049 }; 1050 1051 struct 1052 { 1053 unsigned : 1; 1054 unsigned : 1; 1055 unsigned : 1; 1056 unsigned : 1; 1057 unsigned : 1; 1058 unsigned : 1; 1059 unsigned RCIDL : 1; 1060 unsigned : 1; 1061 }; 1062 } __BAUDCONbits_t; 1063 1064 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits; 1065 1066 #define _ABDEN 0x01 1067 #define _WUE 0x02 1068 #define _BRG16 0x08 1069 #define _SCKP 0x10 1070 #define _RCMT 0x40 1071 #define _RCIDL 0x40 1072 #define _ABDOVF 0x80 1073 1074 //============================================================================== 1075 1076 1077 //============================================================================== 1078 // BAUDCON1 Bits 1079 1080 extern __at(0x0F7E) __sfr BAUDCON1; 1081 1082 typedef union 1083 { 1084 struct 1085 { 1086 unsigned ABDEN : 1; 1087 unsigned WUE : 1; 1088 unsigned : 1; 1089 unsigned BRG16 : 1; 1090 unsigned SCKP : 1; 1091 unsigned : 1; 1092 unsigned RCMT : 1; 1093 unsigned ABDOVF : 1; 1094 }; 1095 1096 struct 1097 { 1098 unsigned : 1; 1099 unsigned : 1; 1100 unsigned : 1; 1101 unsigned : 1; 1102 unsigned : 1; 1103 unsigned : 1; 1104 unsigned RCIDL : 1; 1105 unsigned : 1; 1106 }; 1107 } __BAUDCON1bits_t; 1108 1109 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 1110 1111 #define _BAUDCON1_ABDEN 0x01 1112 #define _BAUDCON1_WUE 0x02 1113 #define _BAUDCON1_BRG16 0x08 1114 #define _BAUDCON1_SCKP 0x10 1115 #define _BAUDCON1_RCMT 0x40 1116 #define _BAUDCON1_RCIDL 0x40 1117 #define _BAUDCON1_ABDOVF 0x80 1118 1119 //============================================================================== 1120 1121 extern __at(0x0F7F) __sfr SPBRGH1; 1122 1123 //============================================================================== 1124 // PORTA Bits 1125 1126 extern __at(0x0F80) __sfr PORTA; 1127 1128 typedef union 1129 { 1130 struct 1131 { 1132 unsigned RA0 : 1; 1133 unsigned RA1 : 1; 1134 unsigned RA2 : 1; 1135 unsigned RA3 : 1; 1136 unsigned RA4 : 1; 1137 unsigned RA5 : 1; 1138 unsigned OSC2 : 1; 1139 unsigned : 1; 1140 }; 1141 1142 struct 1143 { 1144 unsigned AN0 : 1; 1145 unsigned AN1 : 1; 1146 unsigned AN2 : 1; 1147 unsigned AN3 : 1; 1148 unsigned T0CKI : 1; 1149 unsigned AN4 : 1; 1150 unsigned CLKO : 1; 1151 unsigned : 1; 1152 }; 1153 1154 struct 1155 { 1156 unsigned : 1; 1157 unsigned : 1; 1158 unsigned VREFM : 1; 1159 unsigned VREFP : 1; 1160 unsigned : 1; 1161 unsigned : 1; 1162 unsigned : 1; 1163 unsigned : 1; 1164 }; 1165 1166 struct 1167 { 1168 unsigned RA : 6; 1169 unsigned : 2; 1170 }; 1171 } __PORTAbits_t; 1172 1173 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 1174 1175 #define _PORTA_RA0 0x01 1176 #define _PORTA_AN0 0x01 1177 #define _PORTA_RA1 0x02 1178 #define _PORTA_AN1 0x02 1179 #define _PORTA_RA2 0x04 1180 #define _PORTA_AN2 0x04 1181 #define _PORTA_VREFM 0x04 1182 #define _PORTA_RA3 0x08 1183 #define _PORTA_AN3 0x08 1184 #define _PORTA_VREFP 0x08 1185 #define _PORTA_RA4 0x10 1186 #define _PORTA_T0CKI 0x10 1187 #define _PORTA_RA5 0x20 1188 #define _PORTA_AN4 0x20 1189 #define _PORTA_OSC2 0x40 1190 #define _PORTA_CLKO 0x40 1191 1192 //============================================================================== 1193 1194 1195 //============================================================================== 1196 // PORTB Bits 1197 1198 extern __at(0x0F81) __sfr PORTB; 1199 1200 typedef union 1201 { 1202 struct 1203 { 1204 unsigned RB0 : 1; 1205 unsigned RB1 : 1; 1206 unsigned RB2 : 1; 1207 unsigned RB3 : 1; 1208 unsigned RB4 : 1; 1209 unsigned RB5 : 1; 1210 unsigned RB6 : 1; 1211 unsigned RB7 : 1; 1212 }; 1213 1214 struct 1215 { 1216 unsigned INT0 : 1; 1217 unsigned INT1 : 1; 1218 unsigned INT2 : 1; 1219 unsigned INT3 : 1; 1220 unsigned KBI0 : 1; 1221 unsigned KBI1 : 1; 1222 unsigned KBI2 : 1; 1223 unsigned KBI3 : 1; 1224 }; 1225 1226 struct 1227 { 1228 unsigned : 1; 1229 unsigned : 1; 1230 unsigned : 1; 1231 unsigned : 1; 1232 unsigned : 1; 1233 unsigned : 1; 1234 unsigned PGC : 1; 1235 unsigned PGD : 1; 1236 }; 1237 1238 struct 1239 { 1240 unsigned INT : 4; 1241 unsigned : 4; 1242 }; 1243 1244 struct 1245 { 1246 unsigned : 4; 1247 unsigned KBI : 4; 1248 }; 1249 } __PORTBbits_t; 1250 1251 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 1252 1253 #define _PORTB_RB0 0x01 1254 #define _PORTB_INT0 0x01 1255 #define _PORTB_RB1 0x02 1256 #define _PORTB_INT1 0x02 1257 #define _PORTB_RB2 0x04 1258 #define _PORTB_INT2 0x04 1259 #define _PORTB_RB3 0x08 1260 #define _PORTB_INT3 0x08 1261 #define _PORTB_RB4 0x10 1262 #define _PORTB_KBI0 0x10 1263 #define _PORTB_RB5 0x20 1264 #define _PORTB_KBI1 0x20 1265 #define _PORTB_RB6 0x40 1266 #define _PORTB_KBI2 0x40 1267 #define _PORTB_PGC 0x40 1268 #define _PORTB_RB7 0x80 1269 #define _PORTB_KBI3 0x80 1270 #define _PORTB_PGD 0x80 1271 1272 //============================================================================== 1273 1274 1275 //============================================================================== 1276 // PORTC Bits 1277 1278 extern __at(0x0F82) __sfr PORTC; 1279 1280 typedef union 1281 { 1282 struct 1283 { 1284 unsigned RC0 : 1; 1285 unsigned RC1 : 1; 1286 unsigned RC2 : 1; 1287 unsigned RC3 : 1; 1288 unsigned RC4 : 1; 1289 unsigned RC5 : 1; 1290 unsigned RC6 : 1; 1291 unsigned RC7 : 1; 1292 }; 1293 1294 struct 1295 { 1296 unsigned T1OSO : 1; 1297 unsigned T1OSI : 1; 1298 unsigned CCP1 : 1; 1299 unsigned SCK : 1; 1300 unsigned SDI : 1; 1301 unsigned SDO : 1; 1302 unsigned TX : 1; 1303 unsigned RX : 1; 1304 }; 1305 1306 struct 1307 { 1308 unsigned T13CKI : 1; 1309 unsigned CCP2 : 1; 1310 unsigned : 1; 1311 unsigned SCL : 1; 1312 unsigned SDA : 1; 1313 unsigned : 1; 1314 unsigned CK : 1; 1315 unsigned : 1; 1316 }; 1317 } __PORTCbits_t; 1318 1319 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 1320 1321 #define _PORTC_RC0 0x01 1322 #define _PORTC_T1OSO 0x01 1323 #define _PORTC_T13CKI 0x01 1324 #define _PORTC_RC1 0x02 1325 #define _PORTC_T1OSI 0x02 1326 #define _PORTC_CCP2 0x02 1327 #define _PORTC_RC2 0x04 1328 #define _PORTC_CCP1 0x04 1329 #define _PORTC_RC3 0x08 1330 #define _PORTC_SCK 0x08 1331 #define _PORTC_SCL 0x08 1332 #define _PORTC_RC4 0x10 1333 #define _PORTC_SDI 0x10 1334 #define _PORTC_SDA 0x10 1335 #define _PORTC_RC5 0x20 1336 #define _PORTC_SDO 0x20 1337 #define _PORTC_RC6 0x40 1338 #define _PORTC_TX 0x40 1339 #define _PORTC_CK 0x40 1340 #define _PORTC_RC7 0x80 1341 #define _PORTC_RX 0x80 1342 1343 //============================================================================== 1344 1345 1346 //============================================================================== 1347 // PORTD Bits 1348 1349 extern __at(0x0F83) __sfr PORTD; 1350 1351 typedef union 1352 { 1353 struct 1354 { 1355 unsigned RD0 : 1; 1356 unsigned RD1 : 1; 1357 unsigned RD2 : 1; 1358 unsigned RD3 : 1; 1359 unsigned RD4 : 1; 1360 unsigned RD5 : 1; 1361 unsigned RD6 : 1; 1362 unsigned RD7 : 1; 1363 }; 1364 1365 struct 1366 { 1367 unsigned PSP0 : 1; 1368 unsigned PSP1 : 1; 1369 unsigned PSP2 : 1; 1370 unsigned PSP3 : 1; 1371 unsigned PSP4 : 1; 1372 unsigned PSP5 : 1; 1373 unsigned PSP6 : 1; 1374 unsigned PSP7 : 1; 1375 }; 1376 1377 struct 1378 { 1379 unsigned : 1; 1380 unsigned : 1; 1381 unsigned : 1; 1382 unsigned : 1; 1383 unsigned SDO2 : 1; 1384 unsigned SDA2 : 1; 1385 unsigned SCL2 : 1; 1386 unsigned SS2 : 1; 1387 }; 1388 1389 struct 1390 { 1391 unsigned : 1; 1392 unsigned : 1; 1393 unsigned : 1; 1394 unsigned : 1; 1395 unsigned : 1; 1396 unsigned SDI2 : 1; 1397 unsigned SCK2 : 1; 1398 unsigned : 1; 1399 }; 1400 } __PORTDbits_t; 1401 1402 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 1403 1404 #define _PORTD_RD0 0x01 1405 #define _PORTD_PSP0 0x01 1406 #define _PORTD_RD1 0x02 1407 #define _PORTD_PSP1 0x02 1408 #define _PORTD_RD2 0x04 1409 #define _PORTD_PSP2 0x04 1410 #define _PORTD_RD3 0x08 1411 #define _PORTD_PSP3 0x08 1412 #define _PORTD_RD4 0x10 1413 #define _PORTD_PSP4 0x10 1414 #define _PORTD_SDO2 0x10 1415 #define _PORTD_RD5 0x20 1416 #define _PORTD_PSP5 0x20 1417 #define _PORTD_SDA2 0x20 1418 #define _PORTD_SDI2 0x20 1419 #define _PORTD_RD6 0x40 1420 #define _PORTD_PSP6 0x40 1421 #define _PORTD_SCL2 0x40 1422 #define _PORTD_SCK2 0x40 1423 #define _PORTD_RD7 0x80 1424 #define _PORTD_PSP7 0x80 1425 #define _PORTD_SS2 0x80 1426 1427 //============================================================================== 1428 1429 1430 //============================================================================== 1431 // PORTE Bits 1432 1433 extern __at(0x0F84) __sfr PORTE; 1434 1435 typedef union 1436 { 1437 struct 1438 { 1439 unsigned RE0 : 1; 1440 unsigned RE1 : 1; 1441 unsigned RE2 : 1; 1442 unsigned RE3 : 1; 1443 unsigned RE4 : 1; 1444 unsigned RE5 : 1; 1445 unsigned RE6 : 1; 1446 unsigned RE7 : 1; 1447 }; 1448 1449 struct 1450 { 1451 unsigned RD : 1; 1452 unsigned WR : 1; 1453 unsigned CS : 1; 1454 unsigned : 1; 1455 unsigned : 1; 1456 unsigned : 1; 1457 unsigned : 1; 1458 unsigned : 1; 1459 }; 1460 } __PORTEbits_t; 1461 1462 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 1463 1464 #define _PORTE_RE0 0x01 1465 #define _PORTE_RD 0x01 1466 #define _PORTE_RE1 0x02 1467 #define _PORTE_WR 0x02 1468 #define _PORTE_RE2 0x04 1469 #define _PORTE_CS 0x04 1470 #define _PORTE_RE3 0x08 1471 #define _PORTE_RE4 0x10 1472 #define _PORTE_RE5 0x20 1473 #define _PORTE_RE6 0x40 1474 #define _PORTE_RE7 0x80 1475 1476 //============================================================================== 1477 1478 1479 //============================================================================== 1480 // PORTF Bits 1481 1482 extern __at(0x0F85) __sfr PORTF; 1483 1484 typedef union 1485 { 1486 struct 1487 { 1488 unsigned : 1; 1489 unsigned RF1 : 1; 1490 unsigned RF2 : 1; 1491 unsigned RF3 : 1; 1492 unsigned RF4 : 1; 1493 unsigned RF5 : 1; 1494 unsigned RF6 : 1; 1495 unsigned RF7 : 1; 1496 }; 1497 1498 struct 1499 { 1500 unsigned : 1; 1501 unsigned AN6 : 1; 1502 unsigned AN7 : 1; 1503 unsigned AN8 : 1; 1504 unsigned AN9 : 1; 1505 unsigned AN10 : 1; 1506 unsigned AN11 : 1; 1507 unsigned SS : 1; 1508 }; 1509 1510 struct 1511 { 1512 unsigned : 1; 1513 unsigned : 1; 1514 unsigned : 1; 1515 unsigned CVREF : 1; 1516 unsigned : 1; 1517 unsigned : 1; 1518 unsigned : 1; 1519 unsigned : 1; 1520 }; 1521 } __PORTFbits_t; 1522 1523 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits; 1524 1525 #define _PORTF_RF1 0x02 1526 #define _PORTF_AN6 0x02 1527 #define _PORTF_RF2 0x04 1528 #define _PORTF_AN7 0x04 1529 #define _PORTF_RF3 0x08 1530 #define _PORTF_AN8 0x08 1531 #define _PORTF_CVREF 0x08 1532 #define _PORTF_RF4 0x10 1533 #define _PORTF_AN9 0x10 1534 #define _PORTF_RF5 0x20 1535 #define _PORTF_AN10 0x20 1536 #define _PORTF_RF6 0x40 1537 #define _PORTF_AN11 0x40 1538 #define _PORTF_RF7 0x80 1539 #define _PORTF_SS 0x80 1540 1541 //============================================================================== 1542 1543 1544 //============================================================================== 1545 // PORTG Bits 1546 1547 extern __at(0x0F86) __sfr PORTG; 1548 1549 typedef union 1550 { 1551 struct 1552 { 1553 unsigned RG0 : 1; 1554 unsigned RG1 : 1; 1555 unsigned RG2 : 1; 1556 unsigned RG3 : 1; 1557 unsigned RG4 : 1; 1558 unsigned : 1; 1559 unsigned REPU : 1; 1560 unsigned RDPU : 1; 1561 }; 1562 1563 struct 1564 { 1565 unsigned CCP3 : 1; 1566 unsigned TX2 : 1; 1567 unsigned RX2 : 1; 1568 unsigned CCP4 : 1; 1569 unsigned CCP5 : 1; 1570 unsigned : 1; 1571 unsigned : 1; 1572 unsigned : 1; 1573 }; 1574 1575 struct 1576 { 1577 unsigned : 1; 1578 unsigned CK2 : 1; 1579 unsigned DT2 : 1; 1580 unsigned : 1; 1581 unsigned : 1; 1582 unsigned : 1; 1583 unsigned : 1; 1584 unsigned : 1; 1585 }; 1586 1587 struct 1588 { 1589 unsigned RG : 5; 1590 unsigned : 3; 1591 }; 1592 } __PORTGbits_t; 1593 1594 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits; 1595 1596 #define _PORTG_RG0 0x01 1597 #define _PORTG_CCP3 0x01 1598 #define _PORTG_RG1 0x02 1599 #define _PORTG_TX2 0x02 1600 #define _PORTG_CK2 0x02 1601 #define _PORTG_RG2 0x04 1602 #define _PORTG_RX2 0x04 1603 #define _PORTG_DT2 0x04 1604 #define _PORTG_RG3 0x08 1605 #define _PORTG_CCP4 0x08 1606 #define _PORTG_RG4 0x10 1607 #define _PORTG_CCP5 0x10 1608 #define _PORTG_REPU 0x40 1609 #define _PORTG_RDPU 0x80 1610 1611 //============================================================================== 1612 1613 1614 //============================================================================== 1615 // LATA Bits 1616 1617 extern __at(0x0F89) __sfr LATA; 1618 1619 typedef union 1620 { 1621 struct 1622 { 1623 unsigned LATA0 : 1; 1624 unsigned LATA1 : 1; 1625 unsigned LATA2 : 1; 1626 unsigned LATA3 : 1; 1627 unsigned LATA4 : 1; 1628 unsigned LATA5 : 1; 1629 unsigned : 1; 1630 unsigned : 1; 1631 }; 1632 1633 struct 1634 { 1635 unsigned LATA : 6; 1636 unsigned : 2; 1637 }; 1638 } __LATAbits_t; 1639 1640 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 1641 1642 #define _LATA0 0x01 1643 #define _LATA1 0x02 1644 #define _LATA2 0x04 1645 #define _LATA3 0x08 1646 #define _LATA4 0x10 1647 #define _LATA5 0x20 1648 1649 //============================================================================== 1650 1651 1652 //============================================================================== 1653 // LATB Bits 1654 1655 extern __at(0x0F8A) __sfr LATB; 1656 1657 typedef struct 1658 { 1659 unsigned LATB0 : 1; 1660 unsigned LATB1 : 1; 1661 unsigned LATB2 : 1; 1662 unsigned LATB3 : 1; 1663 unsigned LATB4 : 1; 1664 unsigned LATB5 : 1; 1665 unsigned LATB6 : 1; 1666 unsigned LATB7 : 1; 1667 } __LATBbits_t; 1668 1669 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 1670 1671 #define _LATB0 0x01 1672 #define _LATB1 0x02 1673 #define _LATB2 0x04 1674 #define _LATB3 0x08 1675 #define _LATB4 0x10 1676 #define _LATB5 0x20 1677 #define _LATB6 0x40 1678 #define _LATB7 0x80 1679 1680 //============================================================================== 1681 1682 1683 //============================================================================== 1684 // LATC Bits 1685 1686 extern __at(0x0F8B) __sfr LATC; 1687 1688 typedef struct 1689 { 1690 unsigned LATC0 : 1; 1691 unsigned LATC1 : 1; 1692 unsigned LATC2 : 1; 1693 unsigned LATC3 : 1; 1694 unsigned LATC4 : 1; 1695 unsigned LATC5 : 1; 1696 unsigned LATC6 : 1; 1697 unsigned LATC7 : 1; 1698 } __LATCbits_t; 1699 1700 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 1701 1702 #define _LATC0 0x01 1703 #define _LATC1 0x02 1704 #define _LATC2 0x04 1705 #define _LATC3 0x08 1706 #define _LATC4 0x10 1707 #define _LATC5 0x20 1708 #define _LATC6 0x40 1709 #define _LATC7 0x80 1710 1711 //============================================================================== 1712 1713 1714 //============================================================================== 1715 // LATD Bits 1716 1717 extern __at(0x0F8C) __sfr LATD; 1718 1719 typedef struct 1720 { 1721 unsigned LATD0 : 1; 1722 unsigned LATD1 : 1; 1723 unsigned LATD2 : 1; 1724 unsigned LATD3 : 1; 1725 unsigned LATD4 : 1; 1726 unsigned LATD5 : 1; 1727 unsigned LATD6 : 1; 1728 unsigned LATD7 : 1; 1729 } __LATDbits_t; 1730 1731 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 1732 1733 #define _LATD0 0x01 1734 #define _LATD1 0x02 1735 #define _LATD2 0x04 1736 #define _LATD3 0x08 1737 #define _LATD4 0x10 1738 #define _LATD5 0x20 1739 #define _LATD6 0x40 1740 #define _LATD7 0x80 1741 1742 //============================================================================== 1743 1744 1745 //============================================================================== 1746 // LATE Bits 1747 1748 extern __at(0x0F8D) __sfr LATE; 1749 1750 typedef struct 1751 { 1752 unsigned LATE0 : 1; 1753 unsigned LATE1 : 1; 1754 unsigned LATE2 : 1; 1755 unsigned LATE3 : 1; 1756 unsigned LATE4 : 1; 1757 unsigned LATE5 : 1; 1758 unsigned LATE6 : 1; 1759 unsigned LATE7 : 1; 1760 } __LATEbits_t; 1761 1762 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 1763 1764 #define _LATE0 0x01 1765 #define _LATE1 0x02 1766 #define _LATE2 0x04 1767 #define _LATE3 0x08 1768 #define _LATE4 0x10 1769 #define _LATE5 0x20 1770 #define _LATE6 0x40 1771 #define _LATE7 0x80 1772 1773 //============================================================================== 1774 1775 1776 //============================================================================== 1777 // LATF Bits 1778 1779 extern __at(0x0F8E) __sfr LATF; 1780 1781 typedef struct 1782 { 1783 unsigned : 1; 1784 unsigned LATF1 : 1; 1785 unsigned LATF2 : 1; 1786 unsigned LATF3 : 1; 1787 unsigned LATF4 : 1; 1788 unsigned LATF5 : 1; 1789 unsigned LATF6 : 1; 1790 unsigned LATF7 : 1; 1791 } __LATFbits_t; 1792 1793 extern __at(0x0F8E) volatile __LATFbits_t LATFbits; 1794 1795 #define _LATF1 0x02 1796 #define _LATF2 0x04 1797 #define _LATF3 0x08 1798 #define _LATF4 0x10 1799 #define _LATF5 0x20 1800 #define _LATF6 0x40 1801 #define _LATF7 0x80 1802 1803 //============================================================================== 1804 1805 1806 //============================================================================== 1807 // LATG Bits 1808 1809 extern __at(0x0F8F) __sfr LATG; 1810 1811 typedef union 1812 { 1813 struct 1814 { 1815 unsigned LATG0 : 1; 1816 unsigned LATG1 : 1; 1817 unsigned LATG2 : 1; 1818 unsigned LATG3 : 1; 1819 unsigned LATG4 : 1; 1820 unsigned : 1; 1821 unsigned : 1; 1822 unsigned : 1; 1823 }; 1824 1825 struct 1826 { 1827 unsigned LATG : 5; 1828 unsigned : 3; 1829 }; 1830 } __LATGbits_t; 1831 1832 extern __at(0x0F8F) volatile __LATGbits_t LATGbits; 1833 1834 #define _LATG0 0x01 1835 #define _LATG1 0x02 1836 #define _LATG2 0x04 1837 #define _LATG3 0x08 1838 #define _LATG4 0x10 1839 1840 //============================================================================== 1841 1842 1843 //============================================================================== 1844 // DDRA Bits 1845 1846 extern __at(0x0F92) __sfr DDRA; 1847 1848 typedef union 1849 { 1850 struct 1851 { 1852 unsigned TRISA0 : 1; 1853 unsigned TRISA1 : 1; 1854 unsigned TRISA2 : 1; 1855 unsigned TRISA3 : 1; 1856 unsigned TRISA4 : 1; 1857 unsigned TRISA5 : 1; 1858 unsigned : 1; 1859 unsigned : 1; 1860 }; 1861 1862 struct 1863 { 1864 unsigned RA0 : 1; 1865 unsigned RA1 : 1; 1866 unsigned RA2 : 1; 1867 unsigned RA3 : 1; 1868 unsigned RA4 : 1; 1869 unsigned RA5 : 1; 1870 unsigned : 1; 1871 unsigned : 1; 1872 }; 1873 1874 struct 1875 { 1876 unsigned TRISA : 6; 1877 unsigned : 2; 1878 }; 1879 1880 struct 1881 { 1882 unsigned RA : 6; 1883 unsigned : 2; 1884 }; 1885 } __DDRAbits_t; 1886 1887 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 1888 1889 #define _TRISA0 0x01 1890 #define _RA0 0x01 1891 #define _TRISA1 0x02 1892 #define _RA1 0x02 1893 #define _TRISA2 0x04 1894 #define _RA2 0x04 1895 #define _TRISA3 0x08 1896 #define _RA3 0x08 1897 #define _TRISA4 0x10 1898 #define _RA4 0x10 1899 #define _TRISA5 0x20 1900 #define _RA5 0x20 1901 1902 //============================================================================== 1903 1904 1905 //============================================================================== 1906 // TRISA Bits 1907 1908 extern __at(0x0F92) __sfr TRISA; 1909 1910 typedef union 1911 { 1912 struct 1913 { 1914 unsigned TRISA0 : 1; 1915 unsigned TRISA1 : 1; 1916 unsigned TRISA2 : 1; 1917 unsigned TRISA3 : 1; 1918 unsigned TRISA4 : 1; 1919 unsigned TRISA5 : 1; 1920 unsigned : 1; 1921 unsigned : 1; 1922 }; 1923 1924 struct 1925 { 1926 unsigned RA0 : 1; 1927 unsigned RA1 : 1; 1928 unsigned RA2 : 1; 1929 unsigned RA3 : 1; 1930 unsigned RA4 : 1; 1931 unsigned RA5 : 1; 1932 unsigned : 1; 1933 unsigned : 1; 1934 }; 1935 1936 struct 1937 { 1938 unsigned RA : 6; 1939 unsigned : 2; 1940 }; 1941 1942 struct 1943 { 1944 unsigned TRISA : 6; 1945 unsigned : 2; 1946 }; 1947 } __TRISAbits_t; 1948 1949 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 1950 1951 #define _TRISA_TRISA0 0x01 1952 #define _TRISA_RA0 0x01 1953 #define _TRISA_TRISA1 0x02 1954 #define _TRISA_RA1 0x02 1955 #define _TRISA_TRISA2 0x04 1956 #define _TRISA_RA2 0x04 1957 #define _TRISA_TRISA3 0x08 1958 #define _TRISA_RA3 0x08 1959 #define _TRISA_TRISA4 0x10 1960 #define _TRISA_RA4 0x10 1961 #define _TRISA_TRISA5 0x20 1962 #define _TRISA_RA5 0x20 1963 1964 //============================================================================== 1965 1966 1967 //============================================================================== 1968 // DDRB Bits 1969 1970 extern __at(0x0F93) __sfr DDRB; 1971 1972 typedef union 1973 { 1974 struct 1975 { 1976 unsigned TRISB0 : 1; 1977 unsigned TRISB1 : 1; 1978 unsigned TRISB2 : 1; 1979 unsigned TRISB3 : 1; 1980 unsigned TRISB4 : 1; 1981 unsigned TRISB5 : 1; 1982 unsigned TRISB6 : 1; 1983 unsigned TRISB7 : 1; 1984 }; 1985 1986 struct 1987 { 1988 unsigned RB0 : 1; 1989 unsigned RB1 : 1; 1990 unsigned RB2 : 1; 1991 unsigned RB3 : 1; 1992 unsigned RB4 : 1; 1993 unsigned RB5 : 1; 1994 unsigned RB6 : 1; 1995 unsigned RB7 : 1; 1996 }; 1997 } __DDRBbits_t; 1998 1999 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 2000 2001 #define _TRISB0 0x01 2002 #define _RB0 0x01 2003 #define _TRISB1 0x02 2004 #define _RB1 0x02 2005 #define _TRISB2 0x04 2006 #define _RB2 0x04 2007 #define _TRISB3 0x08 2008 #define _RB3 0x08 2009 #define _TRISB4 0x10 2010 #define _RB4 0x10 2011 #define _TRISB5 0x20 2012 #define _RB5 0x20 2013 #define _TRISB6 0x40 2014 #define _RB6 0x40 2015 #define _TRISB7 0x80 2016 #define _RB7 0x80 2017 2018 //============================================================================== 2019 2020 2021 //============================================================================== 2022 // TRISB Bits 2023 2024 extern __at(0x0F93) __sfr TRISB; 2025 2026 typedef union 2027 { 2028 struct 2029 { 2030 unsigned TRISB0 : 1; 2031 unsigned TRISB1 : 1; 2032 unsigned TRISB2 : 1; 2033 unsigned TRISB3 : 1; 2034 unsigned TRISB4 : 1; 2035 unsigned TRISB5 : 1; 2036 unsigned TRISB6 : 1; 2037 unsigned TRISB7 : 1; 2038 }; 2039 2040 struct 2041 { 2042 unsigned RB0 : 1; 2043 unsigned RB1 : 1; 2044 unsigned RB2 : 1; 2045 unsigned RB3 : 1; 2046 unsigned RB4 : 1; 2047 unsigned RB5 : 1; 2048 unsigned RB6 : 1; 2049 unsigned RB7 : 1; 2050 }; 2051 } __TRISBbits_t; 2052 2053 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 2054 2055 #define _TRISB_TRISB0 0x01 2056 #define _TRISB_RB0 0x01 2057 #define _TRISB_TRISB1 0x02 2058 #define _TRISB_RB1 0x02 2059 #define _TRISB_TRISB2 0x04 2060 #define _TRISB_RB2 0x04 2061 #define _TRISB_TRISB3 0x08 2062 #define _TRISB_RB3 0x08 2063 #define _TRISB_TRISB4 0x10 2064 #define _TRISB_RB4 0x10 2065 #define _TRISB_TRISB5 0x20 2066 #define _TRISB_RB5 0x20 2067 #define _TRISB_TRISB6 0x40 2068 #define _TRISB_RB6 0x40 2069 #define _TRISB_TRISB7 0x80 2070 #define _TRISB_RB7 0x80 2071 2072 //============================================================================== 2073 2074 2075 //============================================================================== 2076 // DDRC Bits 2077 2078 extern __at(0x0F94) __sfr DDRC; 2079 2080 typedef union 2081 { 2082 struct 2083 { 2084 unsigned TRISC0 : 1; 2085 unsigned TRISC1 : 1; 2086 unsigned TRISC2 : 1; 2087 unsigned TRISC3 : 1; 2088 unsigned TRISC4 : 1; 2089 unsigned TRISC5 : 1; 2090 unsigned TRISC6 : 1; 2091 unsigned TRISC7 : 1; 2092 }; 2093 2094 struct 2095 { 2096 unsigned RC0 : 1; 2097 unsigned RC1 : 1; 2098 unsigned RC2 : 1; 2099 unsigned RC3 : 1; 2100 unsigned RC4 : 1; 2101 unsigned RC5 : 1; 2102 unsigned RC6 : 1; 2103 unsigned RC7 : 1; 2104 }; 2105 } __DDRCbits_t; 2106 2107 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 2108 2109 #define _TRISC0 0x01 2110 #define _RC0 0x01 2111 #define _TRISC1 0x02 2112 #define _RC1 0x02 2113 #define _TRISC2 0x04 2114 #define _RC2 0x04 2115 #define _TRISC3 0x08 2116 #define _RC3 0x08 2117 #define _TRISC4 0x10 2118 #define _RC4 0x10 2119 #define _TRISC5 0x20 2120 #define _RC5 0x20 2121 #define _TRISC6 0x40 2122 #define _RC6 0x40 2123 #define _TRISC7 0x80 2124 #define _RC7 0x80 2125 2126 //============================================================================== 2127 2128 2129 //============================================================================== 2130 // TRISC Bits 2131 2132 extern __at(0x0F94) __sfr TRISC; 2133 2134 typedef union 2135 { 2136 struct 2137 { 2138 unsigned TRISC0 : 1; 2139 unsigned TRISC1 : 1; 2140 unsigned TRISC2 : 1; 2141 unsigned TRISC3 : 1; 2142 unsigned TRISC4 : 1; 2143 unsigned TRISC5 : 1; 2144 unsigned TRISC6 : 1; 2145 unsigned TRISC7 : 1; 2146 }; 2147 2148 struct 2149 { 2150 unsigned RC0 : 1; 2151 unsigned RC1 : 1; 2152 unsigned RC2 : 1; 2153 unsigned RC3 : 1; 2154 unsigned RC4 : 1; 2155 unsigned RC5 : 1; 2156 unsigned RC6 : 1; 2157 unsigned RC7 : 1; 2158 }; 2159 } __TRISCbits_t; 2160 2161 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 2162 2163 #define _TRISC_TRISC0 0x01 2164 #define _TRISC_RC0 0x01 2165 #define _TRISC_TRISC1 0x02 2166 #define _TRISC_RC1 0x02 2167 #define _TRISC_TRISC2 0x04 2168 #define _TRISC_RC2 0x04 2169 #define _TRISC_TRISC3 0x08 2170 #define _TRISC_RC3 0x08 2171 #define _TRISC_TRISC4 0x10 2172 #define _TRISC_RC4 0x10 2173 #define _TRISC_TRISC5 0x20 2174 #define _TRISC_RC5 0x20 2175 #define _TRISC_TRISC6 0x40 2176 #define _TRISC_RC6 0x40 2177 #define _TRISC_TRISC7 0x80 2178 #define _TRISC_RC7 0x80 2179 2180 //============================================================================== 2181 2182 2183 //============================================================================== 2184 // DDRD Bits 2185 2186 extern __at(0x0F95) __sfr DDRD; 2187 2188 typedef union 2189 { 2190 struct 2191 { 2192 unsigned TRISD0 : 1; 2193 unsigned TRISD1 : 1; 2194 unsigned TRISD2 : 1; 2195 unsigned TRISD3 : 1; 2196 unsigned TRISD4 : 1; 2197 unsigned TRISD5 : 1; 2198 unsigned TRISD6 : 1; 2199 unsigned TRISD7 : 1; 2200 }; 2201 2202 struct 2203 { 2204 unsigned RD0 : 1; 2205 unsigned RD1 : 1; 2206 unsigned RD2 : 1; 2207 unsigned RD3 : 1; 2208 unsigned RD4 : 1; 2209 unsigned RD5 : 1; 2210 unsigned RD6 : 1; 2211 unsigned RD7 : 1; 2212 }; 2213 } __DDRDbits_t; 2214 2215 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 2216 2217 #define _TRISD0 0x01 2218 #define _RD0 0x01 2219 #define _TRISD1 0x02 2220 #define _RD1 0x02 2221 #define _TRISD2 0x04 2222 #define _RD2 0x04 2223 #define _TRISD3 0x08 2224 #define _RD3 0x08 2225 #define _TRISD4 0x10 2226 #define _RD4 0x10 2227 #define _TRISD5 0x20 2228 #define _RD5 0x20 2229 #define _TRISD6 0x40 2230 #define _RD6 0x40 2231 #define _TRISD7 0x80 2232 #define _RD7 0x80 2233 2234 //============================================================================== 2235 2236 2237 //============================================================================== 2238 // TRISD Bits 2239 2240 extern __at(0x0F95) __sfr TRISD; 2241 2242 typedef union 2243 { 2244 struct 2245 { 2246 unsigned TRISD0 : 1; 2247 unsigned TRISD1 : 1; 2248 unsigned TRISD2 : 1; 2249 unsigned TRISD3 : 1; 2250 unsigned TRISD4 : 1; 2251 unsigned TRISD5 : 1; 2252 unsigned TRISD6 : 1; 2253 unsigned TRISD7 : 1; 2254 }; 2255 2256 struct 2257 { 2258 unsigned RD0 : 1; 2259 unsigned RD1 : 1; 2260 unsigned RD2 : 1; 2261 unsigned RD3 : 1; 2262 unsigned RD4 : 1; 2263 unsigned RD5 : 1; 2264 unsigned RD6 : 1; 2265 unsigned RD7 : 1; 2266 }; 2267 } __TRISDbits_t; 2268 2269 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 2270 2271 #define _TRISD_TRISD0 0x01 2272 #define _TRISD_RD0 0x01 2273 #define _TRISD_TRISD1 0x02 2274 #define _TRISD_RD1 0x02 2275 #define _TRISD_TRISD2 0x04 2276 #define _TRISD_RD2 0x04 2277 #define _TRISD_TRISD3 0x08 2278 #define _TRISD_RD3 0x08 2279 #define _TRISD_TRISD4 0x10 2280 #define _TRISD_RD4 0x10 2281 #define _TRISD_TRISD5 0x20 2282 #define _TRISD_RD5 0x20 2283 #define _TRISD_TRISD6 0x40 2284 #define _TRISD_RD6 0x40 2285 #define _TRISD_TRISD7 0x80 2286 #define _TRISD_RD7 0x80 2287 2288 //============================================================================== 2289 2290 2291 //============================================================================== 2292 // DDRE Bits 2293 2294 extern __at(0x0F96) __sfr DDRE; 2295 2296 typedef union 2297 { 2298 struct 2299 { 2300 unsigned TRISE0 : 1; 2301 unsigned TRISE1 : 1; 2302 unsigned TRISE2 : 1; 2303 unsigned TRISE3 : 1; 2304 unsigned TRISE4 : 1; 2305 unsigned TRISE5 : 1; 2306 unsigned TRISE6 : 1; 2307 unsigned TRISE7 : 1; 2308 }; 2309 2310 struct 2311 { 2312 unsigned RE0 : 1; 2313 unsigned RE1 : 1; 2314 unsigned RE2 : 1; 2315 unsigned RE3 : 1; 2316 unsigned RE4 : 1; 2317 unsigned RE5 : 1; 2318 unsigned RE6 : 1; 2319 unsigned RE7 : 1; 2320 }; 2321 } __DDREbits_t; 2322 2323 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 2324 2325 #define _TRISE0 0x01 2326 #define _RE0 0x01 2327 #define _TRISE1 0x02 2328 #define _RE1 0x02 2329 #define _TRISE2 0x04 2330 #define _RE2 0x04 2331 #define _TRISE3 0x08 2332 #define _RE3 0x08 2333 #define _TRISE4 0x10 2334 #define _RE4 0x10 2335 #define _TRISE5 0x20 2336 #define _RE5 0x20 2337 #define _TRISE6 0x40 2338 #define _RE6 0x40 2339 #define _TRISE7 0x80 2340 #define _RE7 0x80 2341 2342 //============================================================================== 2343 2344 2345 //============================================================================== 2346 // TRISE Bits 2347 2348 extern __at(0x0F96) __sfr TRISE; 2349 2350 typedef union 2351 { 2352 struct 2353 { 2354 unsigned TRISE0 : 1; 2355 unsigned TRISE1 : 1; 2356 unsigned TRISE2 : 1; 2357 unsigned TRISE3 : 1; 2358 unsigned TRISE4 : 1; 2359 unsigned TRISE5 : 1; 2360 unsigned TRISE6 : 1; 2361 unsigned TRISE7 : 1; 2362 }; 2363 2364 struct 2365 { 2366 unsigned RE0 : 1; 2367 unsigned RE1 : 1; 2368 unsigned RE2 : 1; 2369 unsigned RE3 : 1; 2370 unsigned RE4 : 1; 2371 unsigned RE5 : 1; 2372 unsigned RE6 : 1; 2373 unsigned RE7 : 1; 2374 }; 2375 } __TRISEbits_t; 2376 2377 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 2378 2379 #define _TRISE_TRISE0 0x01 2380 #define _TRISE_RE0 0x01 2381 #define _TRISE_TRISE1 0x02 2382 #define _TRISE_RE1 0x02 2383 #define _TRISE_TRISE2 0x04 2384 #define _TRISE_RE2 0x04 2385 #define _TRISE_TRISE3 0x08 2386 #define _TRISE_RE3 0x08 2387 #define _TRISE_TRISE4 0x10 2388 #define _TRISE_RE4 0x10 2389 #define _TRISE_TRISE5 0x20 2390 #define _TRISE_RE5 0x20 2391 #define _TRISE_TRISE6 0x40 2392 #define _TRISE_RE6 0x40 2393 #define _TRISE_TRISE7 0x80 2394 #define _TRISE_RE7 0x80 2395 2396 //============================================================================== 2397 2398 2399 //============================================================================== 2400 // DDRF Bits 2401 2402 extern __at(0x0F97) __sfr DDRF; 2403 2404 typedef union 2405 { 2406 struct 2407 { 2408 unsigned : 1; 2409 unsigned TRISF1 : 1; 2410 unsigned TRISF2 : 1; 2411 unsigned TRISF3 : 1; 2412 unsigned TRISF4 : 1; 2413 unsigned TRISF5 : 1; 2414 unsigned TRISF6 : 1; 2415 unsigned TRISF7 : 1; 2416 }; 2417 2418 struct 2419 { 2420 unsigned : 1; 2421 unsigned RF1 : 1; 2422 unsigned RF2 : 1; 2423 unsigned RF3 : 1; 2424 unsigned RF4 : 1; 2425 unsigned RF5 : 1; 2426 unsigned RF6 : 1; 2427 unsigned RF7 : 1; 2428 }; 2429 } __DDRFbits_t; 2430 2431 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits; 2432 2433 #define _TRISF1 0x02 2434 #define _RF1 0x02 2435 #define _TRISF2 0x04 2436 #define _RF2 0x04 2437 #define _TRISF3 0x08 2438 #define _RF3 0x08 2439 #define _TRISF4 0x10 2440 #define _RF4 0x10 2441 #define _TRISF5 0x20 2442 #define _RF5 0x20 2443 #define _TRISF6 0x40 2444 #define _RF6 0x40 2445 #define _TRISF7 0x80 2446 #define _RF7 0x80 2447 2448 //============================================================================== 2449 2450 2451 //============================================================================== 2452 // TRISF Bits 2453 2454 extern __at(0x0F97) __sfr TRISF; 2455 2456 typedef union 2457 { 2458 struct 2459 { 2460 unsigned : 1; 2461 unsigned TRISF1 : 1; 2462 unsigned TRISF2 : 1; 2463 unsigned TRISF3 : 1; 2464 unsigned TRISF4 : 1; 2465 unsigned TRISF5 : 1; 2466 unsigned TRISF6 : 1; 2467 unsigned TRISF7 : 1; 2468 }; 2469 2470 struct 2471 { 2472 unsigned : 1; 2473 unsigned RF1 : 1; 2474 unsigned RF2 : 1; 2475 unsigned RF3 : 1; 2476 unsigned RF4 : 1; 2477 unsigned RF5 : 1; 2478 unsigned RF6 : 1; 2479 unsigned RF7 : 1; 2480 }; 2481 } __TRISFbits_t; 2482 2483 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits; 2484 2485 #define _TRISF_TRISF1 0x02 2486 #define _TRISF_RF1 0x02 2487 #define _TRISF_TRISF2 0x04 2488 #define _TRISF_RF2 0x04 2489 #define _TRISF_TRISF3 0x08 2490 #define _TRISF_RF3 0x08 2491 #define _TRISF_TRISF4 0x10 2492 #define _TRISF_RF4 0x10 2493 #define _TRISF_TRISF5 0x20 2494 #define _TRISF_RF5 0x20 2495 #define _TRISF_TRISF6 0x40 2496 #define _TRISF_RF6 0x40 2497 #define _TRISF_TRISF7 0x80 2498 #define _TRISF_RF7 0x80 2499 2500 //============================================================================== 2501 2502 2503 //============================================================================== 2504 // DDRG Bits 2505 2506 extern __at(0x0F98) __sfr DDRG; 2507 2508 typedef union 2509 { 2510 struct 2511 { 2512 unsigned TRISG0 : 1; 2513 unsigned TRISG1 : 1; 2514 unsigned TRISG2 : 1; 2515 unsigned TRISG3 : 1; 2516 unsigned TRISG4 : 1; 2517 unsigned : 1; 2518 unsigned : 1; 2519 unsigned : 1; 2520 }; 2521 2522 struct 2523 { 2524 unsigned RG0 : 1; 2525 unsigned RG1 : 1; 2526 unsigned RG2 : 1; 2527 unsigned RG3 : 1; 2528 unsigned RG4 : 1; 2529 unsigned : 1; 2530 unsigned : 1; 2531 unsigned : 1; 2532 }; 2533 2534 struct 2535 { 2536 unsigned RG : 5; 2537 unsigned : 3; 2538 }; 2539 2540 struct 2541 { 2542 unsigned TRISG : 5; 2543 unsigned : 3; 2544 }; 2545 } __DDRGbits_t; 2546 2547 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits; 2548 2549 #define _TRISG0 0x01 2550 #define _RG0 0x01 2551 #define _TRISG1 0x02 2552 #define _RG1 0x02 2553 #define _TRISG2 0x04 2554 #define _RG2 0x04 2555 #define _TRISG3 0x08 2556 #define _RG3 0x08 2557 #define _TRISG4 0x10 2558 #define _RG4 0x10 2559 2560 //============================================================================== 2561 2562 2563 //============================================================================== 2564 // TRISG Bits 2565 2566 extern __at(0x0F98) __sfr TRISG; 2567 2568 typedef union 2569 { 2570 struct 2571 { 2572 unsigned TRISG0 : 1; 2573 unsigned TRISG1 : 1; 2574 unsigned TRISG2 : 1; 2575 unsigned TRISG3 : 1; 2576 unsigned TRISG4 : 1; 2577 unsigned : 1; 2578 unsigned : 1; 2579 unsigned : 1; 2580 }; 2581 2582 struct 2583 { 2584 unsigned RG0 : 1; 2585 unsigned RG1 : 1; 2586 unsigned RG2 : 1; 2587 unsigned RG3 : 1; 2588 unsigned RG4 : 1; 2589 unsigned : 1; 2590 unsigned : 1; 2591 unsigned : 1; 2592 }; 2593 2594 struct 2595 { 2596 unsigned RG : 5; 2597 unsigned : 3; 2598 }; 2599 2600 struct 2601 { 2602 unsigned TRISG : 5; 2603 unsigned : 3; 2604 }; 2605 } __TRISGbits_t; 2606 2607 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits; 2608 2609 #define _TRISG_TRISG0 0x01 2610 #define _TRISG_RG0 0x01 2611 #define _TRISG_TRISG1 0x02 2612 #define _TRISG_RG1 0x02 2613 #define _TRISG_TRISG2 0x04 2614 #define _TRISG_RG2 0x04 2615 #define _TRISG_TRISG3 0x08 2616 #define _TRISG_RG3 0x08 2617 #define _TRISG_TRISG4 0x10 2618 #define _TRISG_RG4 0x10 2619 2620 //============================================================================== 2621 2622 2623 //============================================================================== 2624 // OSCTUNE Bits 2625 2626 extern __at(0x0F9B) __sfr OSCTUNE; 2627 2628 typedef struct 2629 { 2630 unsigned : 1; 2631 unsigned : 1; 2632 unsigned : 1; 2633 unsigned : 1; 2634 unsigned : 1; 2635 unsigned : 1; 2636 unsigned PLLEN : 1; 2637 unsigned : 1; 2638 } __OSCTUNEbits_t; 2639 2640 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 2641 2642 #define _PLLEN 0x40 2643 2644 //============================================================================== 2645 2646 2647 //============================================================================== 2648 // PIE1 Bits 2649 2650 extern __at(0x0F9D) __sfr PIE1; 2651 2652 typedef union 2653 { 2654 struct 2655 { 2656 unsigned TMR1IE : 1; 2657 unsigned TMR2IE : 1; 2658 unsigned CCP1IE : 1; 2659 unsigned SSP1IE : 1; 2660 unsigned TX1IE : 1; 2661 unsigned RC1IE : 1; 2662 unsigned ADIE : 1; 2663 unsigned PSPIE : 1; 2664 }; 2665 2666 struct 2667 { 2668 unsigned : 1; 2669 unsigned : 1; 2670 unsigned CCPIE : 1; 2671 unsigned SSPIE : 1; 2672 unsigned TXIE : 1; 2673 unsigned RCIE : 1; 2674 unsigned : 1; 2675 unsigned : 1; 2676 }; 2677 } __PIE1bits_t; 2678 2679 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 2680 2681 #define _TMR1IE 0x01 2682 #define _TMR2IE 0x02 2683 #define _CCP1IE 0x04 2684 #define _CCPIE 0x04 2685 #define _SSP1IE 0x08 2686 #define _SSPIE 0x08 2687 #define _TX1IE 0x10 2688 #define _TXIE 0x10 2689 #define _RC1IE 0x20 2690 #define _RCIE 0x20 2691 #define _ADIE 0x40 2692 #define _PSPIE 0x80 2693 2694 //============================================================================== 2695 2696 2697 //============================================================================== 2698 // PIR1 Bits 2699 2700 extern __at(0x0F9E) __sfr PIR1; 2701 2702 typedef union 2703 { 2704 struct 2705 { 2706 unsigned TMR1IF : 1; 2707 unsigned TMR2IF : 1; 2708 unsigned CCP1IF : 1; 2709 unsigned SSP1IF : 1; 2710 unsigned TX1IF : 1; 2711 unsigned RC1IF : 1; 2712 unsigned ADIF : 1; 2713 unsigned PSPIF : 1; 2714 }; 2715 2716 struct 2717 { 2718 unsigned : 1; 2719 unsigned : 1; 2720 unsigned CCPIF : 1; 2721 unsigned SSPIF : 1; 2722 unsigned TXIF : 1; 2723 unsigned RCIF : 1; 2724 unsigned : 1; 2725 unsigned : 1; 2726 }; 2727 } __PIR1bits_t; 2728 2729 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 2730 2731 #define _TMR1IF 0x01 2732 #define _TMR2IF 0x02 2733 #define _CCP1IF 0x04 2734 #define _CCPIF 0x04 2735 #define _SSP1IF 0x08 2736 #define _SSPIF 0x08 2737 #define _TX1IF 0x10 2738 #define _TXIF 0x10 2739 #define _RC1IF 0x20 2740 #define _RCIF 0x20 2741 #define _ADIF 0x40 2742 #define _PSPIF 0x80 2743 2744 //============================================================================== 2745 2746 2747 //============================================================================== 2748 // IPR1 Bits 2749 2750 extern __at(0x0F9F) __sfr IPR1; 2751 2752 typedef union 2753 { 2754 struct 2755 { 2756 unsigned TMR1IP : 1; 2757 unsigned TMR2IP : 1; 2758 unsigned CCP1IP : 1; 2759 unsigned SSP1IP : 1; 2760 unsigned TX1IP : 1; 2761 unsigned RC1IP : 1; 2762 unsigned ADIP : 1; 2763 unsigned PSPIP : 1; 2764 }; 2765 2766 struct 2767 { 2768 unsigned : 1; 2769 unsigned : 1; 2770 unsigned CCPIP : 1; 2771 unsigned SSPIP : 1; 2772 unsigned TXIP : 1; 2773 unsigned RCIP : 1; 2774 unsigned : 1; 2775 unsigned : 1; 2776 }; 2777 } __IPR1bits_t; 2778 2779 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 2780 2781 #define _TMR1IP 0x01 2782 #define _TMR2IP 0x02 2783 #define _CCP1IP 0x04 2784 #define _CCPIP 0x04 2785 #define _SSP1IP 0x08 2786 #define _SSPIP 0x08 2787 #define _TX1IP 0x10 2788 #define _TXIP 0x10 2789 #define _RC1IP 0x20 2790 #define _RCIP 0x20 2791 #define _ADIP 0x40 2792 #define _PSPIP 0x80 2793 2794 //============================================================================== 2795 2796 2797 //============================================================================== 2798 // PIE2 Bits 2799 2800 extern __at(0x0FA0) __sfr PIE2; 2801 2802 typedef union 2803 { 2804 struct 2805 { 2806 unsigned CCP2IE : 1; 2807 unsigned TMR3IE : 1; 2808 unsigned : 1; 2809 unsigned BCL1IE : 1; 2810 unsigned : 1; 2811 unsigned : 1; 2812 unsigned CMIE : 1; 2813 unsigned OSCFIE : 1; 2814 }; 2815 2816 struct 2817 { 2818 unsigned : 1; 2819 unsigned : 1; 2820 unsigned : 1; 2821 unsigned BCLIE : 1; 2822 unsigned : 1; 2823 unsigned : 1; 2824 unsigned : 1; 2825 unsigned : 1; 2826 }; 2827 } __PIE2bits_t; 2828 2829 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 2830 2831 #define _CCP2IE 0x01 2832 #define _TMR3IE 0x02 2833 #define _BCL1IE 0x08 2834 #define _BCLIE 0x08 2835 #define _CMIE 0x40 2836 #define _OSCFIE 0x80 2837 2838 //============================================================================== 2839 2840 2841 //============================================================================== 2842 // PIR2 Bits 2843 2844 extern __at(0x0FA1) __sfr PIR2; 2845 2846 typedef union 2847 { 2848 struct 2849 { 2850 unsigned CCP2IF : 1; 2851 unsigned TMR3IF : 1; 2852 unsigned : 1; 2853 unsigned BCL1IF : 1; 2854 unsigned : 1; 2855 unsigned : 1; 2856 unsigned CMIF : 1; 2857 unsigned OSCFIF : 1; 2858 }; 2859 2860 struct 2861 { 2862 unsigned : 1; 2863 unsigned : 1; 2864 unsigned : 1; 2865 unsigned BCLIF : 1; 2866 unsigned : 1; 2867 unsigned : 1; 2868 unsigned : 1; 2869 unsigned : 1; 2870 }; 2871 } __PIR2bits_t; 2872 2873 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 2874 2875 #define _CCP2IF 0x01 2876 #define _TMR3IF 0x02 2877 #define _BCL1IF 0x08 2878 #define _BCLIF 0x08 2879 #define _CMIF 0x40 2880 #define _OSCFIF 0x80 2881 2882 //============================================================================== 2883 2884 2885 //============================================================================== 2886 // IPR2 Bits 2887 2888 extern __at(0x0FA2) __sfr IPR2; 2889 2890 typedef union 2891 { 2892 struct 2893 { 2894 unsigned CCP2IP : 1; 2895 unsigned TMR3IP : 1; 2896 unsigned : 1; 2897 unsigned BCL1IP : 1; 2898 unsigned : 1; 2899 unsigned : 1; 2900 unsigned CMIP : 1; 2901 unsigned OSCFIP : 1; 2902 }; 2903 2904 struct 2905 { 2906 unsigned : 1; 2907 unsigned : 1; 2908 unsigned : 1; 2909 unsigned BCLIP : 1; 2910 unsigned : 1; 2911 unsigned : 1; 2912 unsigned : 1; 2913 unsigned : 1; 2914 }; 2915 } __IPR2bits_t; 2916 2917 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 2918 2919 #define _CCP2IP 0x01 2920 #define _TMR3IP 0x02 2921 #define _BCL1IP 0x08 2922 #define _BCLIP 0x08 2923 #define _CMIP 0x40 2924 #define _OSCFIP 0x80 2925 2926 //============================================================================== 2927 2928 2929 //============================================================================== 2930 // PIE3 Bits 2931 2932 extern __at(0x0FA3) __sfr PIE3; 2933 2934 typedef struct 2935 { 2936 unsigned CCP3IE : 1; 2937 unsigned CCP4IE : 1; 2938 unsigned CCP5IE : 1; 2939 unsigned TMR4IE : 1; 2940 unsigned TX2IE : 1; 2941 unsigned RC2IE : 1; 2942 unsigned BCL2IE : 1; 2943 unsigned SSP2IE : 1; 2944 } __PIE3bits_t; 2945 2946 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 2947 2948 #define _CCP3IE 0x01 2949 #define _CCP4IE 0x02 2950 #define _CCP5IE 0x04 2951 #define _TMR4IE 0x08 2952 #define _TX2IE 0x10 2953 #define _RC2IE 0x20 2954 #define _BCL2IE 0x40 2955 #define _SSP2IE 0x80 2956 2957 //============================================================================== 2958 2959 2960 //============================================================================== 2961 // PIR3 Bits 2962 2963 extern __at(0x0FA4) __sfr PIR3; 2964 2965 typedef struct 2966 { 2967 unsigned CCP3IF : 1; 2968 unsigned CCP4IF : 1; 2969 unsigned CCP5IF : 1; 2970 unsigned TMR4IF : 1; 2971 unsigned TX2IF : 1; 2972 unsigned RC2IF : 1; 2973 unsigned BCL2IF : 1; 2974 unsigned SSP2IF : 1; 2975 } __PIR3bits_t; 2976 2977 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 2978 2979 #define _CCP3IF 0x01 2980 #define _CCP4IF 0x02 2981 #define _CCP5IF 0x04 2982 #define _TMR4IF 0x08 2983 #define _TX2IF 0x10 2984 #define _RC2IF 0x20 2985 #define _BCL2IF 0x40 2986 #define _SSP2IF 0x80 2987 2988 //============================================================================== 2989 2990 2991 //============================================================================== 2992 // IPR3 Bits 2993 2994 extern __at(0x0FA5) __sfr IPR3; 2995 2996 typedef struct 2997 { 2998 unsigned CCP3IP : 1; 2999 unsigned CCP4IP : 1; 3000 unsigned CCP5IP : 1; 3001 unsigned TMR4IP : 1; 3002 unsigned TX2IP : 1; 3003 unsigned RC2IP : 1; 3004 unsigned BCL2IP : 1; 3005 unsigned SSP2IP : 1; 3006 } __IPR3bits_t; 3007 3008 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 3009 3010 #define _CCP3IP 0x01 3011 #define _CCP4IP 0x02 3012 #define _CCP5IP 0x04 3013 #define _TMR4IP 0x08 3014 #define _TX2IP 0x10 3015 #define _RC2IP 0x20 3016 #define _BCL2IP 0x40 3017 #define _SSP2IP 0x80 3018 3019 //============================================================================== 3020 3021 3022 //============================================================================== 3023 // EECON1 Bits 3024 3025 extern __at(0x0FA6) __sfr EECON1; 3026 3027 typedef struct 3028 { 3029 unsigned : 1; 3030 unsigned WR : 1; 3031 unsigned WREN : 1; 3032 unsigned WRERR : 1; 3033 unsigned FREE : 1; 3034 unsigned : 1; 3035 unsigned : 1; 3036 unsigned : 1; 3037 } __EECON1bits_t; 3038 3039 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 3040 3041 #define _WR 0x02 3042 #define _WREN 0x04 3043 #define _WRERR 0x08 3044 #define _FREE 0x10 3045 3046 //============================================================================== 3047 3048 extern __at(0x0FA7) __sfr EECON2; 3049 3050 //============================================================================== 3051 // RCSTA Bits 3052 3053 extern __at(0x0FAB) __sfr RCSTA; 3054 3055 typedef union 3056 { 3057 struct 3058 { 3059 unsigned RX9D : 1; 3060 unsigned OERR : 1; 3061 unsigned FERR : 1; 3062 unsigned ADDEN : 1; 3063 unsigned CREN : 1; 3064 unsigned SREN : 1; 3065 unsigned RX9 : 1; 3066 unsigned SPEN : 1; 3067 }; 3068 3069 struct 3070 { 3071 unsigned RCD8 : 1; 3072 unsigned OERR1 : 1; 3073 unsigned FERR1 : 1; 3074 unsigned ADDEN1 : 1; 3075 unsigned CREN1 : 1; 3076 unsigned SREN1 : 1; 3077 unsigned RC9 : 1; 3078 unsigned SPEN1 : 1; 3079 }; 3080 3081 struct 3082 { 3083 unsigned RX9D1 : 1; 3084 unsigned : 1; 3085 unsigned : 1; 3086 unsigned : 1; 3087 unsigned : 1; 3088 unsigned : 1; 3089 unsigned NOT_RC8 : 1; 3090 unsigned : 1; 3091 }; 3092 3093 struct 3094 { 3095 unsigned : 1; 3096 unsigned : 1; 3097 unsigned : 1; 3098 unsigned : 1; 3099 unsigned : 1; 3100 unsigned : 1; 3101 unsigned RC8_9 : 1; 3102 unsigned : 1; 3103 }; 3104 3105 struct 3106 { 3107 unsigned : 1; 3108 unsigned : 1; 3109 unsigned : 1; 3110 unsigned : 1; 3111 unsigned : 1; 3112 unsigned : 1; 3113 unsigned RX91 : 1; 3114 unsigned : 1; 3115 }; 3116 } __RCSTAbits_t; 3117 3118 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 3119 3120 #define _RX9D 0x01 3121 #define _RCD8 0x01 3122 #define _RX9D1 0x01 3123 #define _OERR 0x02 3124 #define _OERR1 0x02 3125 #define _FERR 0x04 3126 #define _FERR1 0x04 3127 #define _ADDEN 0x08 3128 #define _ADDEN1 0x08 3129 #define _CREN 0x10 3130 #define _CREN1 0x10 3131 #define _SREN 0x20 3132 #define _SREN1 0x20 3133 #define _RX9 0x40 3134 #define _RC9 0x40 3135 #define _NOT_RC8 0x40 3136 #define _RC8_9 0x40 3137 #define _RX91 0x40 3138 #define _SPEN 0x80 3139 #define _SPEN1 0x80 3140 3141 //============================================================================== 3142 3143 3144 //============================================================================== 3145 // RCSTA1 Bits 3146 3147 extern __at(0x0FAB) __sfr RCSTA1; 3148 3149 typedef union 3150 { 3151 struct 3152 { 3153 unsigned RX9D : 1; 3154 unsigned OERR : 1; 3155 unsigned FERR : 1; 3156 unsigned ADDEN : 1; 3157 unsigned CREN : 1; 3158 unsigned SREN : 1; 3159 unsigned RX9 : 1; 3160 unsigned SPEN : 1; 3161 }; 3162 3163 struct 3164 { 3165 unsigned RCD8 : 1; 3166 unsigned OERR1 : 1; 3167 unsigned FERR1 : 1; 3168 unsigned ADDEN1 : 1; 3169 unsigned CREN1 : 1; 3170 unsigned SREN1 : 1; 3171 unsigned RC9 : 1; 3172 unsigned SPEN1 : 1; 3173 }; 3174 3175 struct 3176 { 3177 unsigned RX9D1 : 1; 3178 unsigned : 1; 3179 unsigned : 1; 3180 unsigned : 1; 3181 unsigned : 1; 3182 unsigned : 1; 3183 unsigned NOT_RC8 : 1; 3184 unsigned : 1; 3185 }; 3186 3187 struct 3188 { 3189 unsigned : 1; 3190 unsigned : 1; 3191 unsigned : 1; 3192 unsigned : 1; 3193 unsigned : 1; 3194 unsigned : 1; 3195 unsigned RC8_9 : 1; 3196 unsigned : 1; 3197 }; 3198 3199 struct 3200 { 3201 unsigned : 1; 3202 unsigned : 1; 3203 unsigned : 1; 3204 unsigned : 1; 3205 unsigned : 1; 3206 unsigned : 1; 3207 unsigned RX91 : 1; 3208 unsigned : 1; 3209 }; 3210 } __RCSTA1bits_t; 3211 3212 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits; 3213 3214 #define _RCSTA1_RX9D 0x01 3215 #define _RCSTA1_RCD8 0x01 3216 #define _RCSTA1_RX9D1 0x01 3217 #define _RCSTA1_OERR 0x02 3218 #define _RCSTA1_OERR1 0x02 3219 #define _RCSTA1_FERR 0x04 3220 #define _RCSTA1_FERR1 0x04 3221 #define _RCSTA1_ADDEN 0x08 3222 #define _RCSTA1_ADDEN1 0x08 3223 #define _RCSTA1_CREN 0x10 3224 #define _RCSTA1_CREN1 0x10 3225 #define _RCSTA1_SREN 0x20 3226 #define _RCSTA1_SREN1 0x20 3227 #define _RCSTA1_RX9 0x40 3228 #define _RCSTA1_RC9 0x40 3229 #define _RCSTA1_NOT_RC8 0x40 3230 #define _RCSTA1_RC8_9 0x40 3231 #define _RCSTA1_RX91 0x40 3232 #define _RCSTA1_SPEN 0x80 3233 #define _RCSTA1_SPEN1 0x80 3234 3235 //============================================================================== 3236 3237 3238 //============================================================================== 3239 // TXSTA Bits 3240 3241 extern __at(0x0FAC) __sfr TXSTA; 3242 3243 typedef union 3244 { 3245 struct 3246 { 3247 unsigned TX9D : 1; 3248 unsigned TRMT : 1; 3249 unsigned BRGH : 1; 3250 unsigned SENDB : 1; 3251 unsigned SYNC : 1; 3252 unsigned TXEN : 1; 3253 unsigned TX9 : 1; 3254 unsigned CSRC : 1; 3255 }; 3256 3257 struct 3258 { 3259 unsigned TXD8 : 1; 3260 unsigned TRMT1 : 1; 3261 unsigned BRGH1 : 1; 3262 unsigned SENDB1 : 1; 3263 unsigned SYNC1 : 1; 3264 unsigned TXEN1 : 1; 3265 unsigned TX8_9 : 1; 3266 unsigned CSRC1 : 1; 3267 }; 3268 3269 struct 3270 { 3271 unsigned TX9D1 : 1; 3272 unsigned : 1; 3273 unsigned : 1; 3274 unsigned : 1; 3275 unsigned : 1; 3276 unsigned : 1; 3277 unsigned NOT_TX8 : 1; 3278 unsigned : 1; 3279 }; 3280 3281 struct 3282 { 3283 unsigned : 1; 3284 unsigned : 1; 3285 unsigned : 1; 3286 unsigned : 1; 3287 unsigned : 1; 3288 unsigned : 1; 3289 unsigned TX91 : 1; 3290 unsigned : 1; 3291 }; 3292 } __TXSTAbits_t; 3293 3294 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 3295 3296 #define _TX9D 0x01 3297 #define _TXD8 0x01 3298 #define _TX9D1 0x01 3299 #define _TRMT 0x02 3300 #define _TRMT1 0x02 3301 #define _BRGH 0x04 3302 #define _BRGH1 0x04 3303 #define _SENDB 0x08 3304 #define _SENDB1 0x08 3305 #define _SYNC 0x10 3306 #define _SYNC1 0x10 3307 #define _TXEN 0x20 3308 #define _TXEN1 0x20 3309 #define _TX9 0x40 3310 #define _TX8_9 0x40 3311 #define _NOT_TX8 0x40 3312 #define _TX91 0x40 3313 #define _CSRC 0x80 3314 #define _CSRC1 0x80 3315 3316 //============================================================================== 3317 3318 3319 //============================================================================== 3320 // TXSTA1 Bits 3321 3322 extern __at(0x0FAC) __sfr TXSTA1; 3323 3324 typedef union 3325 { 3326 struct 3327 { 3328 unsigned TX9D : 1; 3329 unsigned TRMT : 1; 3330 unsigned BRGH : 1; 3331 unsigned SENDB : 1; 3332 unsigned SYNC : 1; 3333 unsigned TXEN : 1; 3334 unsigned TX9 : 1; 3335 unsigned CSRC : 1; 3336 }; 3337 3338 struct 3339 { 3340 unsigned TXD8 : 1; 3341 unsigned TRMT1 : 1; 3342 unsigned BRGH1 : 1; 3343 unsigned SENDB1 : 1; 3344 unsigned SYNC1 : 1; 3345 unsigned TXEN1 : 1; 3346 unsigned TX8_9 : 1; 3347 unsigned CSRC1 : 1; 3348 }; 3349 3350 struct 3351 { 3352 unsigned TX9D1 : 1; 3353 unsigned : 1; 3354 unsigned : 1; 3355 unsigned : 1; 3356 unsigned : 1; 3357 unsigned : 1; 3358 unsigned NOT_TX8 : 1; 3359 unsigned : 1; 3360 }; 3361 3362 struct 3363 { 3364 unsigned : 1; 3365 unsigned : 1; 3366 unsigned : 1; 3367 unsigned : 1; 3368 unsigned : 1; 3369 unsigned : 1; 3370 unsigned TX91 : 1; 3371 unsigned : 1; 3372 }; 3373 } __TXSTA1bits_t; 3374 3375 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits; 3376 3377 #define _TXSTA1_TX9D 0x01 3378 #define _TXSTA1_TXD8 0x01 3379 #define _TXSTA1_TX9D1 0x01 3380 #define _TXSTA1_TRMT 0x02 3381 #define _TXSTA1_TRMT1 0x02 3382 #define _TXSTA1_BRGH 0x04 3383 #define _TXSTA1_BRGH1 0x04 3384 #define _TXSTA1_SENDB 0x08 3385 #define _TXSTA1_SENDB1 0x08 3386 #define _TXSTA1_SYNC 0x10 3387 #define _TXSTA1_SYNC1 0x10 3388 #define _TXSTA1_TXEN 0x20 3389 #define _TXSTA1_TXEN1 0x20 3390 #define _TXSTA1_TX9 0x40 3391 #define _TXSTA1_TX8_9 0x40 3392 #define _TXSTA1_NOT_TX8 0x40 3393 #define _TXSTA1_TX91 0x40 3394 #define _TXSTA1_CSRC 0x80 3395 #define _TXSTA1_CSRC1 0x80 3396 3397 //============================================================================== 3398 3399 extern __at(0x0FAD) __sfr TXREG; 3400 extern __at(0x0FAD) __sfr TXREG1; 3401 extern __at(0x0FAE) __sfr RCREG; 3402 extern __at(0x0FAE) __sfr RCREG1; 3403 extern __at(0x0FAF) __sfr SPBRG; 3404 extern __at(0x0FAF) __sfr SPBRG1; 3405 3406 //============================================================================== 3407 // PSPCON Bits 3408 3409 extern __at(0x0FB0) __sfr PSPCON; 3410 3411 typedef struct 3412 { 3413 unsigned : 1; 3414 unsigned : 1; 3415 unsigned : 1; 3416 unsigned : 1; 3417 unsigned PSPMODE : 1; 3418 unsigned IBOV : 1; 3419 unsigned OBF : 1; 3420 unsigned IBF : 1; 3421 } __PSPCONbits_t; 3422 3423 extern __at(0x0FB0) volatile __PSPCONbits_t PSPCONbits; 3424 3425 #define _PSPMODE 0x10 3426 #define _IBOV 0x20 3427 #define _OBF 0x40 3428 #define _IBF 0x80 3429 3430 //============================================================================== 3431 3432 3433 //============================================================================== 3434 // T3CON Bits 3435 3436 extern __at(0x0FB1) __sfr T3CON; 3437 3438 typedef union 3439 { 3440 struct 3441 { 3442 unsigned TMR3ON : 1; 3443 unsigned TMR3CS : 1; 3444 unsigned NOT_T3SYNC : 1; 3445 unsigned T3CCP1 : 1; 3446 unsigned T3CKPS0 : 1; 3447 unsigned T3CKPS1 : 1; 3448 unsigned T3CCP2 : 1; 3449 unsigned RD16 : 1; 3450 }; 3451 3452 struct 3453 { 3454 unsigned : 1; 3455 unsigned : 1; 3456 unsigned T3SYNC : 1; 3457 unsigned : 1; 3458 unsigned : 1; 3459 unsigned : 1; 3460 unsigned : 1; 3461 unsigned : 1; 3462 }; 3463 3464 struct 3465 { 3466 unsigned : 1; 3467 unsigned : 1; 3468 unsigned T3INSYNC : 1; 3469 unsigned : 1; 3470 unsigned : 1; 3471 unsigned : 1; 3472 unsigned : 1; 3473 unsigned : 1; 3474 }; 3475 3476 struct 3477 { 3478 unsigned : 4; 3479 unsigned T3CKPS : 2; 3480 unsigned : 2; 3481 }; 3482 } __T3CONbits_t; 3483 3484 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 3485 3486 #define _T3CON_TMR3ON 0x01 3487 #define _T3CON_TMR3CS 0x02 3488 #define _T3CON_NOT_T3SYNC 0x04 3489 #define _T3CON_T3SYNC 0x04 3490 #define _T3CON_T3INSYNC 0x04 3491 #define _T3CON_T3CCP1 0x08 3492 #define _T3CON_T3CKPS0 0x10 3493 #define _T3CON_T3CKPS1 0x20 3494 #define _T3CON_T3CCP2 0x40 3495 #define _T3CON_RD16 0x80 3496 3497 //============================================================================== 3498 3499 extern __at(0x0FB2) __sfr TMR3; 3500 extern __at(0x0FB2) __sfr TMR3L; 3501 extern __at(0x0FB3) __sfr TMR3H; 3502 3503 //============================================================================== 3504 // CMCON Bits 3505 3506 extern __at(0x0FB4) __sfr CMCON; 3507 3508 typedef union 3509 { 3510 struct 3511 { 3512 unsigned CM0 : 1; 3513 unsigned CM1 : 1; 3514 unsigned CM2 : 1; 3515 unsigned CIS : 1; 3516 unsigned C1INV : 1; 3517 unsigned C2INV : 1; 3518 unsigned C1OUT : 1; 3519 unsigned C2OUT : 1; 3520 }; 3521 3522 struct 3523 { 3524 unsigned CM : 3; 3525 unsigned : 5; 3526 }; 3527 } __CMCONbits_t; 3528 3529 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits; 3530 3531 #define _CM0 0x01 3532 #define _CM1 0x02 3533 #define _CM2 0x04 3534 #define _CIS 0x08 3535 #define _C1INV 0x10 3536 #define _C2INV 0x20 3537 #define _C1OUT 0x40 3538 #define _C2OUT 0x80 3539 3540 //============================================================================== 3541 3542 3543 //============================================================================== 3544 // CVRCON Bits 3545 3546 extern __at(0x0FB5) __sfr CVRCON; 3547 3548 typedef union 3549 { 3550 struct 3551 { 3552 unsigned CVR0 : 1; 3553 unsigned CVR1 : 1; 3554 unsigned CVR2 : 1; 3555 unsigned CVR3 : 1; 3556 unsigned CVRSS : 1; 3557 unsigned CVRR : 1; 3558 unsigned CVROE : 1; 3559 unsigned CVREN : 1; 3560 }; 3561 3562 struct 3563 { 3564 unsigned CVR : 4; 3565 unsigned : 4; 3566 }; 3567 } __CVRCONbits_t; 3568 3569 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits; 3570 3571 #define _CVR0 0x01 3572 #define _CVR1 0x02 3573 #define _CVR2 0x04 3574 #define _CVR3 0x08 3575 #define _CVRSS 0x10 3576 #define _CVRR 0x20 3577 #define _CVROE 0x40 3578 #define _CVREN 0x80 3579 3580 //============================================================================== 3581 3582 3583 //============================================================================== 3584 // ECCP1AS Bits 3585 3586 extern __at(0x0FB6) __sfr ECCP1AS; 3587 3588 typedef union 3589 { 3590 struct 3591 { 3592 unsigned : 1; 3593 unsigned : 1; 3594 unsigned PSSAC0 : 1; 3595 unsigned PSSAC1 : 1; 3596 unsigned ECCPAS0 : 1; 3597 unsigned ECCPAS1 : 1; 3598 unsigned ECCPAS2 : 1; 3599 unsigned ECCPASE : 1; 3600 }; 3601 3602 struct 3603 { 3604 unsigned : 1; 3605 unsigned : 1; 3606 unsigned PSS1AC0 : 1; 3607 unsigned PSS1AC1 : 1; 3608 unsigned ECCP1AS0 : 1; 3609 unsigned ECCP1AS1 : 1; 3610 unsigned ECCP1AS2 : 1; 3611 unsigned ECCP1ASE : 1; 3612 }; 3613 3614 struct 3615 { 3616 unsigned : 2; 3617 unsigned PSS1AC : 2; 3618 unsigned : 4; 3619 }; 3620 3621 struct 3622 { 3623 unsigned : 2; 3624 unsigned PSSAC : 2; 3625 unsigned : 4; 3626 }; 3627 3628 struct 3629 { 3630 unsigned : 4; 3631 unsigned ECCP1AS : 3; 3632 unsigned : 1; 3633 }; 3634 3635 struct 3636 { 3637 unsigned : 4; 3638 unsigned ECCPAS : 3; 3639 unsigned : 1; 3640 }; 3641 } __ECCP1ASbits_t; 3642 3643 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits; 3644 3645 #define _PSSAC0 0x04 3646 #define _PSS1AC0 0x04 3647 #define _PSSAC1 0x08 3648 #define _PSS1AC1 0x08 3649 #define _ECCPAS0 0x10 3650 #define _ECCP1AS0 0x10 3651 #define _ECCPAS1 0x20 3652 #define _ECCP1AS1 0x20 3653 #define _ECCPAS2 0x40 3654 #define _ECCP1AS2 0x40 3655 #define _ECCPASE 0x80 3656 #define _ECCP1ASE 0x80 3657 3658 //============================================================================== 3659 3660 3661 //============================================================================== 3662 // CCP3CON Bits 3663 3664 extern __at(0x0FB7) __sfr CCP3CON; 3665 3666 typedef union 3667 { 3668 struct 3669 { 3670 unsigned CCP3M0 : 1; 3671 unsigned CCP3M1 : 1; 3672 unsigned CCP3M2 : 1; 3673 unsigned CCP3M3 : 1; 3674 unsigned DC3B0 : 1; 3675 unsigned DC3B1 : 1; 3676 unsigned P3M0 : 1; 3677 unsigned P3M1 : 1; 3678 }; 3679 3680 struct 3681 { 3682 unsigned : 1; 3683 unsigned : 1; 3684 unsigned : 1; 3685 unsigned : 1; 3686 unsigned CCP3Y : 1; 3687 unsigned CCP3X : 1; 3688 unsigned : 1; 3689 unsigned : 1; 3690 }; 3691 3692 struct 3693 { 3694 unsigned CCP3M : 4; 3695 unsigned : 4; 3696 }; 3697 3698 struct 3699 { 3700 unsigned : 4; 3701 unsigned DC3B : 2; 3702 unsigned : 2; 3703 }; 3704 3705 struct 3706 { 3707 unsigned : 6; 3708 unsigned P3M : 2; 3709 }; 3710 } __CCP3CONbits_t; 3711 3712 extern __at(0x0FB7) volatile __CCP3CONbits_t CCP3CONbits; 3713 3714 #define _CCP3M0 0x01 3715 #define _CCP3M1 0x02 3716 #define _CCP3M2 0x04 3717 #define _CCP3M3 0x08 3718 #define _DC3B0 0x10 3719 #define _CCP3Y 0x10 3720 #define _DC3B1 0x20 3721 #define _CCP3X 0x20 3722 #define _P3M0 0x40 3723 #define _P3M1 0x80 3724 3725 //============================================================================== 3726 3727 3728 //============================================================================== 3729 // ECCP3CON Bits 3730 3731 extern __at(0x0FB7) __sfr ECCP3CON; 3732 3733 typedef union 3734 { 3735 struct 3736 { 3737 unsigned CCP3M0 : 1; 3738 unsigned CCP3M1 : 1; 3739 unsigned CCP3M2 : 1; 3740 unsigned CCP3M3 : 1; 3741 unsigned DC3B0 : 1; 3742 unsigned DC3B1 : 1; 3743 unsigned P3M0 : 1; 3744 unsigned P3M1 : 1; 3745 }; 3746 3747 struct 3748 { 3749 unsigned : 1; 3750 unsigned : 1; 3751 unsigned : 1; 3752 unsigned : 1; 3753 unsigned CCP3Y : 1; 3754 unsigned CCP3X : 1; 3755 unsigned : 1; 3756 unsigned : 1; 3757 }; 3758 3759 struct 3760 { 3761 unsigned CCP3M : 4; 3762 unsigned : 4; 3763 }; 3764 3765 struct 3766 { 3767 unsigned : 4; 3768 unsigned DC3B : 2; 3769 unsigned : 2; 3770 }; 3771 3772 struct 3773 { 3774 unsigned : 6; 3775 unsigned P3M : 2; 3776 }; 3777 } __ECCP3CONbits_t; 3778 3779 extern __at(0x0FB7) volatile __ECCP3CONbits_t ECCP3CONbits; 3780 3781 #define _ECCP3CON_CCP3M0 0x01 3782 #define _ECCP3CON_CCP3M1 0x02 3783 #define _ECCP3CON_CCP3M2 0x04 3784 #define _ECCP3CON_CCP3M3 0x08 3785 #define _ECCP3CON_DC3B0 0x10 3786 #define _ECCP3CON_CCP3Y 0x10 3787 #define _ECCP3CON_DC3B1 0x20 3788 #define _ECCP3CON_CCP3X 0x20 3789 #define _ECCP3CON_P3M0 0x40 3790 #define _ECCP3CON_P3M1 0x80 3791 3792 //============================================================================== 3793 3794 extern __at(0x0FB8) __sfr CCPR3; 3795 extern __at(0x0FB8) __sfr CCPR3L; 3796 extern __at(0x0FB9) __sfr CCPR3H; 3797 3798 //============================================================================== 3799 // CCP2CON Bits 3800 3801 extern __at(0x0FBA) __sfr CCP2CON; 3802 3803 typedef union 3804 { 3805 struct 3806 { 3807 unsigned CCP2M0 : 1; 3808 unsigned CCP2M1 : 1; 3809 unsigned CCP2M2 : 1; 3810 unsigned CCP2M3 : 1; 3811 unsigned DC2B0 : 1; 3812 unsigned DC2B1 : 1; 3813 unsigned P2M0 : 1; 3814 unsigned P2M1 : 1; 3815 }; 3816 3817 struct 3818 { 3819 unsigned : 1; 3820 unsigned : 1; 3821 unsigned : 1; 3822 unsigned : 1; 3823 unsigned CCP2Y : 1; 3824 unsigned CCP2X : 1; 3825 unsigned : 1; 3826 unsigned : 1; 3827 }; 3828 3829 struct 3830 { 3831 unsigned CCP2M : 4; 3832 unsigned : 4; 3833 }; 3834 3835 struct 3836 { 3837 unsigned : 4; 3838 unsigned DC2B : 2; 3839 unsigned : 2; 3840 }; 3841 3842 struct 3843 { 3844 unsigned : 6; 3845 unsigned P2M : 2; 3846 }; 3847 } __CCP2CONbits_t; 3848 3849 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits; 3850 3851 #define _CCP2M0 0x01 3852 #define _CCP2M1 0x02 3853 #define _CCP2M2 0x04 3854 #define _CCP2M3 0x08 3855 #define _DC2B0 0x10 3856 #define _CCP2Y 0x10 3857 #define _DC2B1 0x20 3858 #define _CCP2X 0x20 3859 #define _P2M0 0x40 3860 #define _P2M1 0x80 3861 3862 //============================================================================== 3863 3864 3865 //============================================================================== 3866 // ECCP2CON Bits 3867 3868 extern __at(0x0FBA) __sfr ECCP2CON; 3869 3870 typedef union 3871 { 3872 struct 3873 { 3874 unsigned CCP2M0 : 1; 3875 unsigned CCP2M1 : 1; 3876 unsigned CCP2M2 : 1; 3877 unsigned CCP2M3 : 1; 3878 unsigned DC2B0 : 1; 3879 unsigned DC2B1 : 1; 3880 unsigned P2M0 : 1; 3881 unsigned P2M1 : 1; 3882 }; 3883 3884 struct 3885 { 3886 unsigned : 1; 3887 unsigned : 1; 3888 unsigned : 1; 3889 unsigned : 1; 3890 unsigned CCP2Y : 1; 3891 unsigned CCP2X : 1; 3892 unsigned : 1; 3893 unsigned : 1; 3894 }; 3895 3896 struct 3897 { 3898 unsigned CCP2M : 4; 3899 unsigned : 4; 3900 }; 3901 3902 struct 3903 { 3904 unsigned : 4; 3905 unsigned DC2B : 2; 3906 unsigned : 2; 3907 }; 3908 3909 struct 3910 { 3911 unsigned : 6; 3912 unsigned P2M : 2; 3913 }; 3914 } __ECCP2CONbits_t; 3915 3916 extern __at(0x0FBA) volatile __ECCP2CONbits_t ECCP2CONbits; 3917 3918 #define _ECCP2CON_CCP2M0 0x01 3919 #define _ECCP2CON_CCP2M1 0x02 3920 #define _ECCP2CON_CCP2M2 0x04 3921 #define _ECCP2CON_CCP2M3 0x08 3922 #define _ECCP2CON_DC2B0 0x10 3923 #define _ECCP2CON_CCP2Y 0x10 3924 #define _ECCP2CON_DC2B1 0x20 3925 #define _ECCP2CON_CCP2X 0x20 3926 #define _ECCP2CON_P2M0 0x40 3927 #define _ECCP2CON_P2M1 0x80 3928 3929 //============================================================================== 3930 3931 extern __at(0x0FBB) __sfr CCPR2; 3932 extern __at(0x0FBB) __sfr CCPR2L; 3933 extern __at(0x0FBC) __sfr CCPR2H; 3934 3935 //============================================================================== 3936 // CCP1CON Bits 3937 3938 extern __at(0x0FBD) __sfr CCP1CON; 3939 3940 typedef union 3941 { 3942 struct 3943 { 3944 unsigned CCP1M0 : 1; 3945 unsigned CCP1M1 : 1; 3946 unsigned CCP1M2 : 1; 3947 unsigned CCP1M3 : 1; 3948 unsigned DC1B0 : 1; 3949 unsigned DC1B1 : 1; 3950 unsigned P1M0 : 1; 3951 unsigned P1M1 : 1; 3952 }; 3953 3954 struct 3955 { 3956 unsigned : 1; 3957 unsigned : 1; 3958 unsigned : 1; 3959 unsigned : 1; 3960 unsigned CCP1Y : 1; 3961 unsigned CCP1X : 1; 3962 unsigned : 1; 3963 unsigned : 1; 3964 }; 3965 3966 struct 3967 { 3968 unsigned CCP1M : 4; 3969 unsigned : 4; 3970 }; 3971 3972 struct 3973 { 3974 unsigned : 4; 3975 unsigned DC1B : 2; 3976 unsigned : 2; 3977 }; 3978 3979 struct 3980 { 3981 unsigned : 6; 3982 unsigned P1M : 2; 3983 }; 3984 } __CCP1CONbits_t; 3985 3986 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits; 3987 3988 #define _CCP1M0 0x01 3989 #define _CCP1M1 0x02 3990 #define _CCP1M2 0x04 3991 #define _CCP1M3 0x08 3992 #define _DC1B0 0x10 3993 #define _CCP1Y 0x10 3994 #define _DC1B1 0x20 3995 #define _CCP1X 0x20 3996 #define _P1M0 0x40 3997 #define _P1M1 0x80 3998 3999 //============================================================================== 4000 4001 4002 //============================================================================== 4003 // ECCP1CON Bits 4004 4005 extern __at(0x0FBD) __sfr ECCP1CON; 4006 4007 typedef union 4008 { 4009 struct 4010 { 4011 unsigned CCP1M0 : 1; 4012 unsigned CCP1M1 : 1; 4013 unsigned CCP1M2 : 1; 4014 unsigned CCP1M3 : 1; 4015 unsigned DC1B0 : 1; 4016 unsigned DC1B1 : 1; 4017 unsigned P1M0 : 1; 4018 unsigned P1M1 : 1; 4019 }; 4020 4021 struct 4022 { 4023 unsigned : 1; 4024 unsigned : 1; 4025 unsigned : 1; 4026 unsigned : 1; 4027 unsigned CCP1Y : 1; 4028 unsigned CCP1X : 1; 4029 unsigned : 1; 4030 unsigned : 1; 4031 }; 4032 4033 struct 4034 { 4035 unsigned CCP1M : 4; 4036 unsigned : 4; 4037 }; 4038 4039 struct 4040 { 4041 unsigned : 4; 4042 unsigned DC1B : 2; 4043 unsigned : 2; 4044 }; 4045 4046 struct 4047 { 4048 unsigned : 6; 4049 unsigned P1M : 2; 4050 }; 4051 } __ECCP1CONbits_t; 4052 4053 extern __at(0x0FBD) volatile __ECCP1CONbits_t ECCP1CONbits; 4054 4055 #define _ECCP1CON_CCP1M0 0x01 4056 #define _ECCP1CON_CCP1M1 0x02 4057 #define _ECCP1CON_CCP1M2 0x04 4058 #define _ECCP1CON_CCP1M3 0x08 4059 #define _ECCP1CON_DC1B0 0x10 4060 #define _ECCP1CON_CCP1Y 0x10 4061 #define _ECCP1CON_DC1B1 0x20 4062 #define _ECCP1CON_CCP1X 0x20 4063 #define _ECCP1CON_P1M0 0x40 4064 #define _ECCP1CON_P1M1 0x80 4065 4066 //============================================================================== 4067 4068 extern __at(0x0FBE) __sfr CCPR1; 4069 extern __at(0x0FBE) __sfr CCPR1L; 4070 extern __at(0x0FBF) __sfr CCPR1H; 4071 4072 //============================================================================== 4073 // ADCON2 Bits 4074 4075 extern __at(0x0FC0) __sfr ADCON2; 4076 4077 typedef union 4078 { 4079 struct 4080 { 4081 unsigned ADCS0 : 1; 4082 unsigned ADCS1 : 1; 4083 unsigned ADCS2 : 1; 4084 unsigned ACQT0 : 1; 4085 unsigned ACQT1 : 1; 4086 unsigned ACQT2 : 1; 4087 unsigned : 1; 4088 unsigned ADFM : 1; 4089 }; 4090 4091 struct 4092 { 4093 unsigned ADCS : 3; 4094 unsigned : 5; 4095 }; 4096 4097 struct 4098 { 4099 unsigned : 3; 4100 unsigned ACQT : 3; 4101 unsigned : 2; 4102 }; 4103 } __ADCON2bits_t; 4104 4105 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits; 4106 4107 #define _ADCS0 0x01 4108 #define _ADCS1 0x02 4109 #define _ADCS2 0x04 4110 #define _ACQT0 0x08 4111 #define _ACQT1 0x10 4112 #define _ACQT2 0x20 4113 #define _ADFM 0x80 4114 4115 //============================================================================== 4116 4117 4118 //============================================================================== 4119 // ADCON1 Bits 4120 4121 extern __at(0x0FC1) __sfr ADCON1; 4122 4123 typedef union 4124 { 4125 struct 4126 { 4127 unsigned PCFG0 : 1; 4128 unsigned PCFG1 : 1; 4129 unsigned PCFG2 : 1; 4130 unsigned PCFG3 : 1; 4131 unsigned VCFG0 : 1; 4132 unsigned VCFG1 : 1; 4133 unsigned : 1; 4134 unsigned : 1; 4135 }; 4136 4137 struct 4138 { 4139 unsigned PCFG : 4; 4140 unsigned : 4; 4141 }; 4142 4143 struct 4144 { 4145 unsigned : 4; 4146 unsigned VCFG : 2; 4147 unsigned : 2; 4148 }; 4149 } __ADCON1bits_t; 4150 4151 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 4152 4153 #define _PCFG0 0x01 4154 #define _PCFG1 0x02 4155 #define _PCFG2 0x04 4156 #define _PCFG3 0x08 4157 #define _VCFG0 0x10 4158 #define _VCFG1 0x20 4159 4160 //============================================================================== 4161 4162 4163 //============================================================================== 4164 // ADCON0 Bits 4165 4166 extern __at(0x0FC2) __sfr ADCON0; 4167 4168 typedef union 4169 { 4170 struct 4171 { 4172 unsigned ADON : 1; 4173 unsigned GO_NOT_DONE : 1; 4174 unsigned CHS0 : 1; 4175 unsigned CHS1 : 1; 4176 unsigned CHS2 : 1; 4177 unsigned CHS3 : 1; 4178 unsigned : 1; 4179 unsigned ADCAL : 1; 4180 }; 4181 4182 struct 4183 { 4184 unsigned : 1; 4185 unsigned DONE : 1; 4186 unsigned : 1; 4187 unsigned : 1; 4188 unsigned : 1; 4189 unsigned : 1; 4190 unsigned : 1; 4191 unsigned : 1; 4192 }; 4193 4194 struct 4195 { 4196 unsigned : 1; 4197 unsigned GO_DONE : 1; 4198 unsigned : 1; 4199 unsigned : 1; 4200 unsigned : 1; 4201 unsigned : 1; 4202 unsigned : 1; 4203 unsigned : 1; 4204 }; 4205 4206 struct 4207 { 4208 unsigned : 1; 4209 unsigned GO : 1; 4210 unsigned : 1; 4211 unsigned : 1; 4212 unsigned : 1; 4213 unsigned : 1; 4214 unsigned : 1; 4215 unsigned : 1; 4216 }; 4217 4218 struct 4219 { 4220 unsigned : 1; 4221 unsigned NOT_DONE : 1; 4222 unsigned : 1; 4223 unsigned : 1; 4224 unsigned : 1; 4225 unsigned : 1; 4226 unsigned : 1; 4227 unsigned : 1; 4228 }; 4229 4230 struct 4231 { 4232 unsigned : 2; 4233 unsigned CHS : 4; 4234 unsigned : 2; 4235 }; 4236 } __ADCON0bits_t; 4237 4238 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 4239 4240 #define _ADON 0x01 4241 #define _GO_NOT_DONE 0x02 4242 #define _DONE 0x02 4243 #define _GO_DONE 0x02 4244 #define _GO 0x02 4245 #define _NOT_DONE 0x02 4246 #define _CHS0 0x04 4247 #define _CHS1 0x08 4248 #define _CHS2 0x10 4249 #define _CHS3 0x20 4250 #define _ADCAL 0x80 4251 4252 //============================================================================== 4253 4254 extern __at(0x0FC3) __sfr ADRES; 4255 extern __at(0x0FC3) __sfr ADRESL; 4256 extern __at(0x0FC4) __sfr ADRESH; 4257 4258 //============================================================================== 4259 // SSP1CON2 Bits 4260 4261 extern __at(0x0FC5) __sfr SSP1CON2; 4262 4263 typedef union 4264 { 4265 struct 4266 { 4267 unsigned SEN : 1; 4268 unsigned RSEN : 1; 4269 unsigned PEN : 1; 4270 unsigned RCEN : 1; 4271 unsigned ACKEN : 1; 4272 unsigned ACKDT : 1; 4273 unsigned ACKSTAT : 1; 4274 unsigned GCEN : 1; 4275 }; 4276 4277 struct 4278 { 4279 unsigned : 1; 4280 unsigned ADMSK1 : 1; 4281 unsigned ADMSK2 : 1; 4282 unsigned ADMSK3 : 1; 4283 unsigned ADMSK4 : 1; 4284 unsigned ADMSK5 : 1; 4285 unsigned : 1; 4286 unsigned : 1; 4287 }; 4288 } __SSP1CON2bits_t; 4289 4290 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits; 4291 4292 #define _SEN 0x01 4293 #define _RSEN 0x02 4294 #define _ADMSK1 0x02 4295 #define _PEN 0x04 4296 #define _ADMSK2 0x04 4297 #define _RCEN 0x08 4298 #define _ADMSK3 0x08 4299 #define _ACKEN 0x10 4300 #define _ADMSK4 0x10 4301 #define _ACKDT 0x20 4302 #define _ADMSK5 0x20 4303 #define _ACKSTAT 0x40 4304 #define _GCEN 0x80 4305 4306 //============================================================================== 4307 4308 4309 //============================================================================== 4310 // SSPCON2 Bits 4311 4312 extern __at(0x0FC5) __sfr SSPCON2; 4313 4314 typedef union 4315 { 4316 struct 4317 { 4318 unsigned SEN : 1; 4319 unsigned RSEN : 1; 4320 unsigned PEN : 1; 4321 unsigned RCEN : 1; 4322 unsigned ACKEN : 1; 4323 unsigned ACKDT : 1; 4324 unsigned ACKSTAT : 1; 4325 unsigned GCEN : 1; 4326 }; 4327 4328 struct 4329 { 4330 unsigned : 1; 4331 unsigned ADMSK1 : 1; 4332 unsigned ADMSK2 : 1; 4333 unsigned ADMSK3 : 1; 4334 unsigned ADMSK4 : 1; 4335 unsigned ADMSK5 : 1; 4336 unsigned : 1; 4337 unsigned : 1; 4338 }; 4339 } __SSPCON2bits_t; 4340 4341 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 4342 4343 #define _SSPCON2_SEN 0x01 4344 #define _SSPCON2_RSEN 0x02 4345 #define _SSPCON2_ADMSK1 0x02 4346 #define _SSPCON2_PEN 0x04 4347 #define _SSPCON2_ADMSK2 0x04 4348 #define _SSPCON2_RCEN 0x08 4349 #define _SSPCON2_ADMSK3 0x08 4350 #define _SSPCON2_ACKEN 0x10 4351 #define _SSPCON2_ADMSK4 0x10 4352 #define _SSPCON2_ACKDT 0x20 4353 #define _SSPCON2_ADMSK5 0x20 4354 #define _SSPCON2_ACKSTAT 0x40 4355 #define _SSPCON2_GCEN 0x80 4356 4357 //============================================================================== 4358 4359 4360 //============================================================================== 4361 // SSP1CON1 Bits 4362 4363 extern __at(0x0FC6) __sfr SSP1CON1; 4364 4365 typedef union 4366 { 4367 struct 4368 { 4369 unsigned SSPM0 : 1; 4370 unsigned SSPM1 : 1; 4371 unsigned SSPM2 : 1; 4372 unsigned SSPM3 : 1; 4373 unsigned CKP : 1; 4374 unsigned SSPEN : 1; 4375 unsigned SSPOV : 1; 4376 unsigned WCOL : 1; 4377 }; 4378 4379 struct 4380 { 4381 unsigned SSPM : 4; 4382 unsigned : 4; 4383 }; 4384 } __SSP1CON1bits_t; 4385 4386 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits; 4387 4388 #define _SSPM0 0x01 4389 #define _SSPM1 0x02 4390 #define _SSPM2 0x04 4391 #define _SSPM3 0x08 4392 #define _CKP 0x10 4393 #define _SSPEN 0x20 4394 #define _SSPOV 0x40 4395 #define _WCOL 0x80 4396 4397 //============================================================================== 4398 4399 4400 //============================================================================== 4401 // SSPCON1 Bits 4402 4403 extern __at(0x0FC6) __sfr SSPCON1; 4404 4405 typedef union 4406 { 4407 struct 4408 { 4409 unsigned SSPM0 : 1; 4410 unsigned SSPM1 : 1; 4411 unsigned SSPM2 : 1; 4412 unsigned SSPM3 : 1; 4413 unsigned CKP : 1; 4414 unsigned SSPEN : 1; 4415 unsigned SSPOV : 1; 4416 unsigned WCOL : 1; 4417 }; 4418 4419 struct 4420 { 4421 unsigned SSPM : 4; 4422 unsigned : 4; 4423 }; 4424 } __SSPCON1bits_t; 4425 4426 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 4427 4428 #define _SSPCON1_SSPM0 0x01 4429 #define _SSPCON1_SSPM1 0x02 4430 #define _SSPCON1_SSPM2 0x04 4431 #define _SSPCON1_SSPM3 0x08 4432 #define _SSPCON1_CKP 0x10 4433 #define _SSPCON1_SSPEN 0x20 4434 #define _SSPCON1_SSPOV 0x40 4435 #define _SSPCON1_WCOL 0x80 4436 4437 //============================================================================== 4438 4439 4440 //============================================================================== 4441 // SSP1STAT Bits 4442 4443 extern __at(0x0FC7) __sfr SSP1STAT; 4444 4445 typedef union 4446 { 4447 struct 4448 { 4449 unsigned BF : 1; 4450 unsigned UA : 1; 4451 unsigned R_NOT_W : 1; 4452 unsigned S : 1; 4453 unsigned P : 1; 4454 unsigned D_NOT_A : 1; 4455 unsigned CKE : 1; 4456 unsigned SMP : 1; 4457 }; 4458 4459 struct 4460 { 4461 unsigned : 1; 4462 unsigned : 1; 4463 unsigned R_W : 1; 4464 unsigned I2C_START : 1; 4465 unsigned I2C_STOP : 1; 4466 unsigned D_A : 1; 4467 unsigned : 1; 4468 unsigned : 1; 4469 }; 4470 4471 struct 4472 { 4473 unsigned : 1; 4474 unsigned : 1; 4475 unsigned I2C_READ : 1; 4476 unsigned : 1; 4477 unsigned : 1; 4478 unsigned I2C_DAT : 1; 4479 unsigned : 1; 4480 unsigned : 1; 4481 }; 4482 4483 struct 4484 { 4485 unsigned : 1; 4486 unsigned : 1; 4487 unsigned NOT_W : 1; 4488 unsigned : 1; 4489 unsigned : 1; 4490 unsigned NOT_A : 1; 4491 unsigned : 1; 4492 unsigned : 1; 4493 }; 4494 4495 struct 4496 { 4497 unsigned : 1; 4498 unsigned : 1; 4499 unsigned NOT_WRITE : 1; 4500 unsigned : 1; 4501 unsigned : 1; 4502 unsigned NOT_ADDRESS : 1; 4503 unsigned : 1; 4504 unsigned : 1; 4505 }; 4506 4507 struct 4508 { 4509 unsigned : 1; 4510 unsigned : 1; 4511 unsigned READ_WRITE : 1; 4512 unsigned : 1; 4513 unsigned : 1; 4514 unsigned DATA_ADDRESS : 1; 4515 unsigned : 1; 4516 unsigned : 1; 4517 }; 4518 4519 struct 4520 { 4521 unsigned : 1; 4522 unsigned : 1; 4523 unsigned R : 1; 4524 unsigned : 1; 4525 unsigned : 1; 4526 unsigned D : 1; 4527 unsigned : 1; 4528 unsigned : 1; 4529 }; 4530 } __SSP1STATbits_t; 4531 4532 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits; 4533 4534 #define _BF 0x01 4535 #define _UA 0x02 4536 #define _R_NOT_W 0x04 4537 #define _R_W 0x04 4538 #define _I2C_READ 0x04 4539 #define _NOT_W 0x04 4540 #define _NOT_WRITE 0x04 4541 #define _READ_WRITE 0x04 4542 #define _R 0x04 4543 #define _S 0x08 4544 #define _I2C_START 0x08 4545 #define _P 0x10 4546 #define _I2C_STOP 0x10 4547 #define _D_NOT_A 0x20 4548 #define _D_A 0x20 4549 #define _I2C_DAT 0x20 4550 #define _NOT_A 0x20 4551 #define _NOT_ADDRESS 0x20 4552 #define _DATA_ADDRESS 0x20 4553 #define _D 0x20 4554 #define _CKE 0x40 4555 #define _SMP 0x80 4556 4557 //============================================================================== 4558 4559 4560 //============================================================================== 4561 // SSPSTAT Bits 4562 4563 extern __at(0x0FC7) __sfr SSPSTAT; 4564 4565 typedef union 4566 { 4567 struct 4568 { 4569 unsigned BF : 1; 4570 unsigned UA : 1; 4571 unsigned R_NOT_W : 1; 4572 unsigned S : 1; 4573 unsigned P : 1; 4574 unsigned D_NOT_A : 1; 4575 unsigned CKE : 1; 4576 unsigned SMP : 1; 4577 }; 4578 4579 struct 4580 { 4581 unsigned : 1; 4582 unsigned : 1; 4583 unsigned R_W : 1; 4584 unsigned I2C_START : 1; 4585 unsigned I2C_STOP : 1; 4586 unsigned D_A : 1; 4587 unsigned : 1; 4588 unsigned : 1; 4589 }; 4590 4591 struct 4592 { 4593 unsigned : 1; 4594 unsigned : 1; 4595 unsigned I2C_READ : 1; 4596 unsigned : 1; 4597 unsigned : 1; 4598 unsigned I2C_DAT : 1; 4599 unsigned : 1; 4600 unsigned : 1; 4601 }; 4602 4603 struct 4604 { 4605 unsigned : 1; 4606 unsigned : 1; 4607 unsigned NOT_W : 1; 4608 unsigned : 1; 4609 unsigned : 1; 4610 unsigned NOT_A : 1; 4611 unsigned : 1; 4612 unsigned : 1; 4613 }; 4614 4615 struct 4616 { 4617 unsigned : 1; 4618 unsigned : 1; 4619 unsigned NOT_WRITE : 1; 4620 unsigned : 1; 4621 unsigned : 1; 4622 unsigned NOT_ADDRESS : 1; 4623 unsigned : 1; 4624 unsigned : 1; 4625 }; 4626 4627 struct 4628 { 4629 unsigned : 1; 4630 unsigned : 1; 4631 unsigned READ_WRITE : 1; 4632 unsigned : 1; 4633 unsigned : 1; 4634 unsigned DATA_ADDRESS : 1; 4635 unsigned : 1; 4636 unsigned : 1; 4637 }; 4638 4639 struct 4640 { 4641 unsigned : 1; 4642 unsigned : 1; 4643 unsigned R : 1; 4644 unsigned : 1; 4645 unsigned : 1; 4646 unsigned D : 1; 4647 unsigned : 1; 4648 unsigned : 1; 4649 }; 4650 } __SSPSTATbits_t; 4651 4652 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 4653 4654 #define _SSPSTAT_BF 0x01 4655 #define _SSPSTAT_UA 0x02 4656 #define _SSPSTAT_R_NOT_W 0x04 4657 #define _SSPSTAT_R_W 0x04 4658 #define _SSPSTAT_I2C_READ 0x04 4659 #define _SSPSTAT_NOT_W 0x04 4660 #define _SSPSTAT_NOT_WRITE 0x04 4661 #define _SSPSTAT_READ_WRITE 0x04 4662 #define _SSPSTAT_R 0x04 4663 #define _SSPSTAT_S 0x08 4664 #define _SSPSTAT_I2C_START 0x08 4665 #define _SSPSTAT_P 0x10 4666 #define _SSPSTAT_I2C_STOP 0x10 4667 #define _SSPSTAT_D_NOT_A 0x20 4668 #define _SSPSTAT_D_A 0x20 4669 #define _SSPSTAT_I2C_DAT 0x20 4670 #define _SSPSTAT_NOT_A 0x20 4671 #define _SSPSTAT_NOT_ADDRESS 0x20 4672 #define _SSPSTAT_DATA_ADDRESS 0x20 4673 #define _SSPSTAT_D 0x20 4674 #define _SSPSTAT_CKE 0x40 4675 #define _SSPSTAT_SMP 0x80 4676 4677 //============================================================================== 4678 4679 extern __at(0x0FC8) __sfr SSP1ADD; 4680 extern __at(0x0FC8) __sfr SSPADD; 4681 extern __at(0x0FC9) __sfr SSP1BUF; 4682 extern __at(0x0FC9) __sfr SSPBUF; 4683 4684 //============================================================================== 4685 // T2CON Bits 4686 4687 extern __at(0x0FCA) __sfr T2CON; 4688 4689 typedef union 4690 { 4691 struct 4692 { 4693 unsigned T2CKPS0 : 1; 4694 unsigned T2CKPS1 : 1; 4695 unsigned TMR2ON : 1; 4696 unsigned T2OUTPS0 : 1; 4697 unsigned T2OUTPS1 : 1; 4698 unsigned T2OUTPS2 : 1; 4699 unsigned T2OUTPS3 : 1; 4700 unsigned : 1; 4701 }; 4702 4703 struct 4704 { 4705 unsigned T2CKPS : 2; 4706 unsigned : 6; 4707 }; 4708 4709 struct 4710 { 4711 unsigned : 3; 4712 unsigned T2OUTPS : 4; 4713 unsigned : 1; 4714 }; 4715 } __T2CONbits_t; 4716 4717 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 4718 4719 #define _T2CKPS0 0x01 4720 #define _T2CKPS1 0x02 4721 #define _TMR2ON 0x04 4722 #define _T2OUTPS0 0x08 4723 #define _T2OUTPS1 0x10 4724 #define _T2OUTPS2 0x20 4725 #define _T2OUTPS3 0x40 4726 4727 //============================================================================== 4728 4729 extern __at(0x0FCB) __sfr PR2; 4730 extern __at(0x0FCC) __sfr TMR2; 4731 4732 //============================================================================== 4733 // T1CON Bits 4734 4735 extern __at(0x0FCD) __sfr T1CON; 4736 4737 typedef union 4738 { 4739 struct 4740 { 4741 unsigned TMR1ON : 1; 4742 unsigned TMR1CS : 1; 4743 unsigned NOT_T1SYNC : 1; 4744 unsigned T1OSCEN : 1; 4745 unsigned T1CKPS0 : 1; 4746 unsigned T1CKPS1 : 1; 4747 unsigned T1RUN : 1; 4748 unsigned RD16 : 1; 4749 }; 4750 4751 struct 4752 { 4753 unsigned : 1; 4754 unsigned : 1; 4755 unsigned T1SYNC : 1; 4756 unsigned : 1; 4757 unsigned : 1; 4758 unsigned : 1; 4759 unsigned : 1; 4760 unsigned : 1; 4761 }; 4762 4763 struct 4764 { 4765 unsigned : 1; 4766 unsigned : 1; 4767 unsigned T1INSYNC : 1; 4768 unsigned : 1; 4769 unsigned : 1; 4770 unsigned : 1; 4771 unsigned : 1; 4772 unsigned : 1; 4773 }; 4774 4775 struct 4776 { 4777 unsigned : 4; 4778 unsigned T1CKPS : 2; 4779 unsigned : 2; 4780 }; 4781 } __T1CONbits_t; 4782 4783 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 4784 4785 #define _TMR1ON 0x01 4786 #define _TMR1CS 0x02 4787 #define _NOT_T1SYNC 0x04 4788 #define _T1SYNC 0x04 4789 #define _T1INSYNC 0x04 4790 #define _T1OSCEN 0x08 4791 #define _T1CKPS0 0x10 4792 #define _T1CKPS1 0x20 4793 #define _T1RUN 0x40 4794 #define _RD16 0x80 4795 4796 //============================================================================== 4797 4798 extern __at(0x0FCE) __sfr TMR1; 4799 extern __at(0x0FCE) __sfr TMR1L; 4800 extern __at(0x0FCF) __sfr TMR1H; 4801 4802 //============================================================================== 4803 // RCON Bits 4804 4805 extern __at(0x0FD0) __sfr RCON; 4806 4807 typedef union 4808 { 4809 struct 4810 { 4811 unsigned NOT_BOR : 1; 4812 unsigned NOT_POR : 1; 4813 unsigned NOT_PD : 1; 4814 unsigned NOT_TO : 1; 4815 unsigned NOT_RI : 1; 4816 unsigned : 1; 4817 unsigned : 1; 4818 unsigned IPEN : 1; 4819 }; 4820 4821 struct 4822 { 4823 unsigned BOR : 1; 4824 unsigned POR : 1; 4825 unsigned PD : 1; 4826 unsigned TO : 1; 4827 unsigned RI : 1; 4828 unsigned : 1; 4829 unsigned : 1; 4830 unsigned : 1; 4831 }; 4832 } __RCONbits_t; 4833 4834 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 4835 4836 #define _NOT_BOR 0x01 4837 #define _BOR 0x01 4838 #define _NOT_POR 0x02 4839 #define _POR 0x02 4840 #define _NOT_PD 0x04 4841 #define _PD 0x04 4842 #define _NOT_TO 0x08 4843 #define _TO 0x08 4844 #define _NOT_RI 0x10 4845 #define _RI 0x10 4846 #define _IPEN 0x80 4847 4848 //============================================================================== 4849 4850 4851 //============================================================================== 4852 // WDTCON Bits 4853 4854 extern __at(0x0FD1) __sfr WDTCON; 4855 4856 typedef union 4857 { 4858 struct 4859 { 4860 unsigned SWDTEN : 1; 4861 unsigned : 1; 4862 unsigned : 1; 4863 unsigned : 1; 4864 unsigned : 1; 4865 unsigned : 1; 4866 unsigned : 1; 4867 unsigned : 1; 4868 }; 4869 4870 struct 4871 { 4872 unsigned SWDTE : 1; 4873 unsigned : 1; 4874 unsigned : 1; 4875 unsigned : 1; 4876 unsigned : 1; 4877 unsigned : 1; 4878 unsigned : 1; 4879 unsigned : 1; 4880 }; 4881 } __WDTCONbits_t; 4882 4883 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 4884 4885 #define _SWDTEN 0x01 4886 #define _SWDTE 0x01 4887 4888 //============================================================================== 4889 4890 4891 //============================================================================== 4892 // OSCCON Bits 4893 4894 extern __at(0x0FD3) __sfr OSCCON; 4895 4896 typedef union 4897 { 4898 struct 4899 { 4900 unsigned SCS0 : 1; 4901 unsigned SCS1 : 1; 4902 unsigned : 1; 4903 unsigned OSTS : 1; 4904 unsigned : 1; 4905 unsigned : 1; 4906 unsigned : 1; 4907 unsigned IDLEN : 1; 4908 }; 4909 4910 struct 4911 { 4912 unsigned SCS : 2; 4913 unsigned : 6; 4914 }; 4915 } __OSCCONbits_t; 4916 4917 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 4918 4919 #define _SCS0 0x01 4920 #define _SCS1 0x02 4921 #define _OSTS 0x08 4922 #define _IDLEN 0x80 4923 4924 //============================================================================== 4925 4926 4927 //============================================================================== 4928 // T0CON Bits 4929 4930 extern __at(0x0FD5) __sfr T0CON; 4931 4932 typedef union 4933 { 4934 struct 4935 { 4936 unsigned T0PS0 : 1; 4937 unsigned T0PS1 : 1; 4938 unsigned T0PS2 : 1; 4939 unsigned PSA : 1; 4940 unsigned T0SE : 1; 4941 unsigned T0CS : 1; 4942 unsigned T08BIT : 1; 4943 unsigned TMR0ON : 1; 4944 }; 4945 4946 struct 4947 { 4948 unsigned : 1; 4949 unsigned : 1; 4950 unsigned : 1; 4951 unsigned T0PS3 : 1; 4952 unsigned : 1; 4953 unsigned : 1; 4954 unsigned : 1; 4955 unsigned : 1; 4956 }; 4957 4958 struct 4959 { 4960 unsigned T0PS : 4; 4961 unsigned : 4; 4962 }; 4963 } __T0CONbits_t; 4964 4965 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 4966 4967 #define _T0PS0 0x01 4968 #define _T0PS1 0x02 4969 #define _T0PS2 0x04 4970 #define _PSA 0x08 4971 #define _T0PS3 0x08 4972 #define _T0SE 0x10 4973 #define _T0CS 0x20 4974 #define _T08BIT 0x40 4975 #define _TMR0ON 0x80 4976 4977 //============================================================================== 4978 4979 extern __at(0x0FD6) __sfr TMR0; 4980 extern __at(0x0FD6) __sfr TMR0L; 4981 extern __at(0x0FD7) __sfr TMR0H; 4982 4983 //============================================================================== 4984 // STATUS Bits 4985 4986 extern __at(0x0FD8) __sfr STATUS; 4987 4988 typedef struct 4989 { 4990 unsigned C : 1; 4991 unsigned DC : 1; 4992 unsigned Z : 1; 4993 unsigned OV : 1; 4994 unsigned N : 1; 4995 unsigned : 1; 4996 unsigned : 1; 4997 unsigned : 1; 4998 } __STATUSbits_t; 4999 5000 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 5001 5002 #define _C 0x01 5003 #define _DC 0x02 5004 #define _Z 0x04 5005 #define _OV 0x08 5006 #define _N 0x10 5007 5008 //============================================================================== 5009 5010 extern __at(0x0FD9) __sfr FSR2L; 5011 extern __at(0x0FDA) __sfr FSR2H; 5012 extern __at(0x0FDB) __sfr PLUSW2; 5013 extern __at(0x0FDC) __sfr PREINC2; 5014 extern __at(0x0FDD) __sfr POSTDEC2; 5015 extern __at(0x0FDE) __sfr POSTINC2; 5016 extern __at(0x0FDF) __sfr INDF2; 5017 extern __at(0x0FE0) __sfr BSR; 5018 extern __at(0x0FE1) __sfr FSR1L; 5019 extern __at(0x0FE2) __sfr FSR1H; 5020 extern __at(0x0FE3) __sfr PLUSW1; 5021 extern __at(0x0FE4) __sfr PREINC1; 5022 extern __at(0x0FE5) __sfr POSTDEC1; 5023 extern __at(0x0FE6) __sfr POSTINC1; 5024 extern __at(0x0FE7) __sfr INDF1; 5025 extern __at(0x0FE8) __sfr WREG; 5026 extern __at(0x0FE9) __sfr FSR0L; 5027 extern __at(0x0FEA) __sfr FSR0H; 5028 extern __at(0x0FEB) __sfr PLUSW0; 5029 extern __at(0x0FEC) __sfr PREINC0; 5030 extern __at(0x0FED) __sfr POSTDEC0; 5031 extern __at(0x0FEE) __sfr POSTINC0; 5032 extern __at(0x0FEF) __sfr INDF0; 5033 5034 //============================================================================== 5035 // INTCON3 Bits 5036 5037 extern __at(0x0FF0) __sfr INTCON3; 5038 5039 typedef union 5040 { 5041 struct 5042 { 5043 unsigned INT1IF : 1; 5044 unsigned INT2IF : 1; 5045 unsigned INT3IF : 1; 5046 unsigned INT1IE : 1; 5047 unsigned INT2IE : 1; 5048 unsigned INT3IE : 1; 5049 unsigned INT1IP : 1; 5050 unsigned INT2IP : 1; 5051 }; 5052 5053 struct 5054 { 5055 unsigned INT1F : 1; 5056 unsigned INT2F : 1; 5057 unsigned INT3F : 1; 5058 unsigned INT1E : 1; 5059 unsigned INT2E : 1; 5060 unsigned INT3E : 1; 5061 unsigned INT1P : 1; 5062 unsigned INT2P : 1; 5063 }; 5064 } __INTCON3bits_t; 5065 5066 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 5067 5068 #define _INT1IF 0x01 5069 #define _INT1F 0x01 5070 #define _INT2IF 0x02 5071 #define _INT2F 0x02 5072 #define _INT3IF 0x04 5073 #define _INT3F 0x04 5074 #define _INT1IE 0x08 5075 #define _INT1E 0x08 5076 #define _INT2IE 0x10 5077 #define _INT2E 0x10 5078 #define _INT3IE 0x20 5079 #define _INT3E 0x20 5080 #define _INT1IP 0x40 5081 #define _INT1P 0x40 5082 #define _INT2IP 0x80 5083 #define _INT2P 0x80 5084 5085 //============================================================================== 5086 5087 5088 //============================================================================== 5089 // INTCON2 Bits 5090 5091 extern __at(0x0FF1) __sfr INTCON2; 5092 5093 typedef union 5094 { 5095 struct 5096 { 5097 unsigned RBIP : 1; 5098 unsigned INT3IP : 1; 5099 unsigned TMR0IP : 1; 5100 unsigned INTEDG3 : 1; 5101 unsigned INTEDG2 : 1; 5102 unsigned INTEDG1 : 1; 5103 unsigned INTEDG0 : 1; 5104 unsigned NOT_RBPU : 1; 5105 }; 5106 5107 struct 5108 { 5109 unsigned : 1; 5110 unsigned INT3P : 1; 5111 unsigned T0IP : 1; 5112 unsigned : 1; 5113 unsigned : 1; 5114 unsigned : 1; 5115 unsigned : 1; 5116 unsigned RBPU : 1; 5117 }; 5118 } __INTCON2bits_t; 5119 5120 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 5121 5122 #define _RBIP 0x01 5123 #define _INT3IP 0x02 5124 #define _INT3P 0x02 5125 #define _TMR0IP 0x04 5126 #define _T0IP 0x04 5127 #define _INTEDG3 0x08 5128 #define _INTEDG2 0x10 5129 #define _INTEDG1 0x20 5130 #define _INTEDG0 0x40 5131 #define _NOT_RBPU 0x80 5132 #define _RBPU 0x80 5133 5134 //============================================================================== 5135 5136 5137 //============================================================================== 5138 // INTCON Bits 5139 5140 extern __at(0x0FF2) __sfr INTCON; 5141 5142 typedef union 5143 { 5144 struct 5145 { 5146 unsigned RBIF : 1; 5147 unsigned INT0IF : 1; 5148 unsigned TMR0IF : 1; 5149 unsigned RBIE : 1; 5150 unsigned INT0IE : 1; 5151 unsigned TMR0IE : 1; 5152 unsigned PEIE_GIEL : 1; 5153 unsigned GIE_GIEH : 1; 5154 }; 5155 5156 struct 5157 { 5158 unsigned : 1; 5159 unsigned INT0F : 1; 5160 unsigned T0IF : 1; 5161 unsigned : 1; 5162 unsigned INT0E : 1; 5163 unsigned T0IE : 1; 5164 unsigned PEIE : 1; 5165 unsigned GIE : 1; 5166 }; 5167 5168 struct 5169 { 5170 unsigned : 1; 5171 unsigned : 1; 5172 unsigned : 1; 5173 unsigned : 1; 5174 unsigned : 1; 5175 unsigned : 1; 5176 unsigned GIEL : 1; 5177 unsigned GIEH : 1; 5178 }; 5179 } __INTCONbits_t; 5180 5181 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 5182 5183 #define _RBIF 0x01 5184 #define _INT0IF 0x02 5185 #define _INT0F 0x02 5186 #define _TMR0IF 0x04 5187 #define _T0IF 0x04 5188 #define _RBIE 0x08 5189 #define _INT0IE 0x10 5190 #define _INT0E 0x10 5191 #define _TMR0IE 0x20 5192 #define _T0IE 0x20 5193 #define _PEIE_GIEL 0x40 5194 #define _PEIE 0x40 5195 #define _GIEL 0x40 5196 #define _GIE_GIEH 0x80 5197 #define _GIE 0x80 5198 #define _GIEH 0x80 5199 5200 //============================================================================== 5201 5202 extern __at(0x0FF3) __sfr PROD; 5203 extern __at(0x0FF3) __sfr PRODL; 5204 extern __at(0x0FF4) __sfr PRODH; 5205 extern __at(0x0FF5) __sfr TABLAT; 5206 extern __at(0x0FF6) __sfr TBLPTR; 5207 extern __at(0x0FF6) __sfr TBLPTRL; 5208 extern __at(0x0FF7) __sfr TBLPTRH; 5209 extern __at(0x0FF8) __sfr TBLPTRU; 5210 extern __at(0x0FF9) __sfr PC; 5211 extern __at(0x0FF9) __sfr PCL; 5212 extern __at(0x0FFA) __sfr PCLATH; 5213 extern __at(0x0FFB) __sfr PCLATU; 5214 5215 //============================================================================== 5216 // STKPTR Bits 5217 5218 extern __at(0x0FFC) __sfr STKPTR; 5219 5220 typedef union 5221 { 5222 struct 5223 { 5224 unsigned STKPTR0 : 1; 5225 unsigned STKPTR1 : 1; 5226 unsigned STKPTR2 : 1; 5227 unsigned STKPTR3 : 1; 5228 unsigned STKPTR4 : 1; 5229 unsigned : 1; 5230 unsigned STKUNF : 1; 5231 unsigned STKFUL : 1; 5232 }; 5233 5234 struct 5235 { 5236 unsigned SP0 : 1; 5237 unsigned SP1 : 1; 5238 unsigned SP2 : 1; 5239 unsigned SP3 : 1; 5240 unsigned SP4 : 1; 5241 unsigned : 1; 5242 unsigned : 1; 5243 unsigned STKOVF : 1; 5244 }; 5245 5246 struct 5247 { 5248 unsigned SP : 5; 5249 unsigned : 3; 5250 }; 5251 5252 struct 5253 { 5254 unsigned STKPTR : 5; 5255 unsigned : 3; 5256 }; 5257 } __STKPTRbits_t; 5258 5259 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 5260 5261 #define _STKPTR0 0x01 5262 #define _SP0 0x01 5263 #define _STKPTR1 0x02 5264 #define _SP1 0x02 5265 #define _STKPTR2 0x04 5266 #define _SP2 0x04 5267 #define _STKPTR3 0x08 5268 #define _SP3 0x08 5269 #define _STKPTR4 0x10 5270 #define _SP4 0x10 5271 #define _STKUNF 0x40 5272 #define _STKFUL 0x80 5273 #define _STKOVF 0x80 5274 5275 //============================================================================== 5276 5277 extern __at(0x0FFD) __sfr TOS; 5278 extern __at(0x0FFD) __sfr TOSL; 5279 extern __at(0x0FFE) __sfr TOSH; 5280 extern __at(0x0FFF) __sfr TOSU; 5281 5282 //============================================================================== 5283 // 5284 // Configuration Addresses 5285 // 5286 //============================================================================== 5287 5288 #define __CONFIG1L 0x007FF8 5289 #define __CONFIG1H 0x007FF9 5290 #define __CONFIG2L 0x007FFA 5291 #define __CONFIG2H 0x007FFB 5292 #define __CONFIG3L 0x007FFC 5293 #define __CONFIG3H 0x007FFD 5294 5295 //============================================================================== 5296 5297 #endif // #ifndef __PIC18F65J10_H__ 5298