1 /* 2 * This declarations of the PIC18F83J90 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:36 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 __PIC18F83J90_H__ 26 #define __PIC18F83J90_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 37 //============================================================================== 38 // RCSTA2 Bits 39 40 extern __at(0x0F60) __sfr RCSTA2; 41 42 typedef union 43 { 44 struct 45 { 46 unsigned RX9D : 1; 47 unsigned OERR : 1; 48 unsigned FERR : 1; 49 unsigned ADDEN : 1; 50 unsigned CREN : 1; 51 unsigned SREN : 1; 52 unsigned RX9 : 1; 53 unsigned SPEN : 1; 54 }; 55 56 struct 57 { 58 unsigned RCD8 : 1; 59 unsigned OERR2 : 1; 60 unsigned FERR2 : 1; 61 unsigned ADDEN2 : 1; 62 unsigned CREN2 : 1; 63 unsigned SREN2 : 1; 64 unsigned RC9 : 1; 65 unsigned SPEN2 : 1; 66 }; 67 68 struct 69 { 70 unsigned RX9D2 : 1; 71 unsigned : 1; 72 unsigned : 1; 73 unsigned : 1; 74 unsigned : 1; 75 unsigned : 1; 76 unsigned NOT_RC8 : 1; 77 unsigned : 1; 78 }; 79 80 struct 81 { 82 unsigned : 1; 83 unsigned : 1; 84 unsigned : 1; 85 unsigned : 1; 86 unsigned : 1; 87 unsigned : 1; 88 unsigned RC8_9 : 1; 89 unsigned : 1; 90 }; 91 92 struct 93 { 94 unsigned : 1; 95 unsigned : 1; 96 unsigned : 1; 97 unsigned : 1; 98 unsigned : 1; 99 unsigned : 1; 100 unsigned RX92 : 1; 101 unsigned : 1; 102 }; 103 } __RCSTA2bits_t; 104 105 extern __at(0x0F60) volatile __RCSTA2bits_t RCSTA2bits; 106 107 #define _RCSTA2_RX9D 0x01 108 #define _RCSTA2_RCD8 0x01 109 #define _RCSTA2_RX9D2 0x01 110 #define _RCSTA2_OERR 0x02 111 #define _RCSTA2_OERR2 0x02 112 #define _RCSTA2_FERR 0x04 113 #define _RCSTA2_FERR2 0x04 114 #define _RCSTA2_ADDEN 0x08 115 #define _RCSTA2_ADDEN2 0x08 116 #define _RCSTA2_CREN 0x10 117 #define _RCSTA2_CREN2 0x10 118 #define _RCSTA2_SREN 0x20 119 #define _RCSTA2_SREN2 0x20 120 #define _RCSTA2_RX9 0x40 121 #define _RCSTA2_RC9 0x40 122 #define _RCSTA2_NOT_RC8 0x40 123 #define _RCSTA2_RC8_9 0x40 124 #define _RCSTA2_RX92 0x40 125 #define _RCSTA2_SPEN 0x80 126 #define _RCSTA2_SPEN2 0x80 127 128 //============================================================================== 129 130 131 //============================================================================== 132 // TXSTA2 Bits 133 134 extern __at(0x0F61) __sfr TXSTA2; 135 136 typedef union 137 { 138 struct 139 { 140 unsigned TX9D : 1; 141 unsigned TRMT : 1; 142 unsigned BRGH : 1; 143 unsigned SENDB2 : 1; 144 unsigned SYNC : 1; 145 unsigned TXEN : 1; 146 unsigned TX9 : 1; 147 unsigned CSRC : 1; 148 }; 149 150 struct 151 { 152 unsigned TXD8 : 1; 153 unsigned TRMT2 : 1; 154 unsigned BRGH2 : 1; 155 unsigned : 1; 156 unsigned SYNC2 : 1; 157 unsigned TXEN2 : 1; 158 unsigned TX8_9 : 1; 159 unsigned CSRC2 : 1; 160 }; 161 162 struct 163 { 164 unsigned TX9D2 : 1; 165 unsigned : 1; 166 unsigned : 1; 167 unsigned : 1; 168 unsigned : 1; 169 unsigned : 1; 170 unsigned NOT_TX8 : 1; 171 unsigned : 1; 172 }; 173 174 struct 175 { 176 unsigned : 1; 177 unsigned : 1; 178 unsigned : 1; 179 unsigned : 1; 180 unsigned : 1; 181 unsigned : 1; 182 unsigned TX92 : 1; 183 unsigned : 1; 184 }; 185 } __TXSTA2bits_t; 186 187 extern __at(0x0F61) volatile __TXSTA2bits_t TXSTA2bits; 188 189 #define _TXSTA2_TX9D 0x01 190 #define _TXSTA2_TXD8 0x01 191 #define _TXSTA2_TX9D2 0x01 192 #define _TXSTA2_TRMT 0x02 193 #define _TXSTA2_TRMT2 0x02 194 #define _TXSTA2_BRGH 0x04 195 #define _TXSTA2_BRGH2 0x04 196 #define _TXSTA2_SENDB2 0x08 197 #define _TXSTA2_SYNC 0x10 198 #define _TXSTA2_SYNC2 0x10 199 #define _TXSTA2_TXEN 0x20 200 #define _TXSTA2_TXEN2 0x20 201 #define _TXSTA2_TX9 0x40 202 #define _TXSTA2_TX8_9 0x40 203 #define _TXSTA2_NOT_TX8 0x40 204 #define _TXSTA2_TX92 0x40 205 #define _TXSTA2_CSRC 0x80 206 #define _TXSTA2_CSRC2 0x80 207 208 //============================================================================== 209 210 extern __at(0x0F62) __sfr TXREG2; 211 extern __at(0x0F63) __sfr RCREG2; 212 extern __at(0x0F64) __sfr SPBRG2; 213 214 //============================================================================== 215 // CCP2CON Bits 216 217 extern __at(0x0F65) __sfr CCP2CON; 218 219 typedef union 220 { 221 struct 222 { 223 unsigned CCP2M0 : 1; 224 unsigned CCP2M1 : 1; 225 unsigned CCP2M2 : 1; 226 unsigned CCP2M3 : 1; 227 unsigned DC2B0 : 1; 228 unsigned DC2B1 : 1; 229 unsigned : 1; 230 unsigned : 1; 231 }; 232 233 struct 234 { 235 unsigned : 1; 236 unsigned : 1; 237 unsigned : 1; 238 unsigned : 1; 239 unsigned DCCP2Y : 1; 240 unsigned DCCP2X : 1; 241 unsigned : 1; 242 unsigned : 1; 243 }; 244 245 struct 246 { 247 unsigned CCP2M : 4; 248 unsigned : 4; 249 }; 250 251 struct 252 { 253 unsigned : 4; 254 unsigned DC2B : 2; 255 unsigned : 2; 256 }; 257 } __CCP2CONbits_t; 258 259 extern __at(0x0F65) volatile __CCP2CONbits_t CCP2CONbits; 260 261 #define _CCP2M0 0x01 262 #define _CCP2M1 0x02 263 #define _CCP2M2 0x04 264 #define _CCP2M3 0x08 265 #define _DC2B0 0x10 266 #define _DCCP2Y 0x10 267 #define _DC2B1 0x20 268 #define _DCCP2X 0x20 269 270 //============================================================================== 271 272 extern __at(0x0F66) __sfr CCPR2; 273 extern __at(0x0F66) __sfr CCPR2L; 274 extern __at(0x0F67) __sfr CCPR2H; 275 276 //============================================================================== 277 // CCP1CON Bits 278 279 extern __at(0x0F68) __sfr CCP1CON; 280 281 typedef union 282 { 283 struct 284 { 285 unsigned CCP1M0 : 1; 286 unsigned CCP1M1 : 1; 287 unsigned CCP1M2 : 1; 288 unsigned CCP1M3 : 1; 289 unsigned DC1B0 : 1; 290 unsigned DC1B1 : 1; 291 unsigned : 1; 292 unsigned : 1; 293 }; 294 295 struct 296 { 297 unsigned : 1; 298 unsigned : 1; 299 unsigned : 1; 300 unsigned : 1; 301 unsigned DCCP1Y : 1; 302 unsigned DCCP1X : 1; 303 unsigned : 1; 304 unsigned : 1; 305 }; 306 307 struct 308 { 309 unsigned CCP1M : 4; 310 unsigned : 4; 311 }; 312 313 struct 314 { 315 unsigned : 4; 316 unsigned DC1B : 2; 317 unsigned : 2; 318 }; 319 } __CCP1CONbits_t; 320 321 extern __at(0x0F68) volatile __CCP1CONbits_t CCP1CONbits; 322 323 #define _CCP1M0 0x01 324 #define _CCP1M1 0x02 325 #define _CCP1M2 0x04 326 #define _CCP1M3 0x08 327 #define _DC1B0 0x10 328 #define _DCCP1Y 0x10 329 #define _DC1B1 0x20 330 #define _DCCP1X 0x20 331 332 //============================================================================== 333 334 extern __at(0x0F69) __sfr CCPR1; 335 extern __at(0x0F69) __sfr CCPR1L; 336 extern __at(0x0F6A) __sfr CCPR1H; 337 338 //============================================================================== 339 // LCDDATA5 Bits 340 341 extern __at(0x0F6B) __sfr LCDDATA5; 342 343 typedef union 344 { 345 struct 346 { 347 unsigned S40C0 : 1; 348 unsigned S41C0 : 1; 349 unsigned S42C0 : 1; 350 unsigned S43C0 : 1; 351 unsigned S44C0 : 1; 352 unsigned S45C0 : 1; 353 unsigned S46C0 : 1; 354 unsigned S47C0 : 1; 355 }; 356 357 struct 358 { 359 unsigned SEG40COM0 : 1; 360 unsigned SEG41COM0 : 1; 361 unsigned SEG42COM0 : 1; 362 unsigned SEG43COM0 : 1; 363 unsigned SEG44COM0 : 1; 364 unsigned SEG45COM0 : 1; 365 unsigned SEG46COM0 : 1; 366 unsigned SEG47COM0 : 1; 367 }; 368 } __LCDDATA5bits_t; 369 370 extern __at(0x0F6B) volatile __LCDDATA5bits_t LCDDATA5bits; 371 372 #define _S40C0 0x01 373 #define _SEG40COM0 0x01 374 #define _S41C0 0x02 375 #define _SEG41COM0 0x02 376 #define _S42C0 0x04 377 #define _SEG42COM0 0x04 378 #define _S43C0 0x08 379 #define _SEG43COM0 0x08 380 #define _S44C0 0x10 381 #define _SEG44COM0 0x10 382 #define _S45C0 0x20 383 #define _SEG45COM0 0x20 384 #define _S46C0 0x40 385 #define _SEG46COM0 0x40 386 #define _S47C0 0x80 387 #define _SEG47COM0 0x80 388 389 //============================================================================== 390 391 392 //============================================================================== 393 // LCDDATA6 Bits 394 395 extern __at(0x0F6C) __sfr LCDDATA6; 396 397 typedef union 398 { 399 struct 400 { 401 unsigned S00C1 : 1; 402 unsigned S01C1 : 1; 403 unsigned S02C1 : 1; 404 unsigned S03C1 : 1; 405 unsigned S04C1 : 1; 406 unsigned S05C1 : 1; 407 unsigned S06C1 : 1; 408 unsigned S07C1 : 1; 409 }; 410 411 struct 412 { 413 unsigned SEG0COM1 : 1; 414 unsigned SEG1COM1 : 1; 415 unsigned SEG2COM1 : 1; 416 unsigned SEG3COM1 : 1; 417 unsigned SEG4COM1 : 1; 418 unsigned SEG5COM1 : 1; 419 unsigned SEG6COM1 : 1; 420 unsigned SEG7COM1 : 1; 421 }; 422 423 struct 424 { 425 unsigned S0C1 : 1; 426 unsigned S1C1 : 1; 427 unsigned S2C1 : 1; 428 unsigned S3C1 : 1; 429 unsigned S4C1 : 1; 430 unsigned S5C1 : 1; 431 unsigned S6C1 : 1; 432 unsigned S7C1 : 1; 433 }; 434 } __LCDDATA6bits_t; 435 436 extern __at(0x0F6C) volatile __LCDDATA6bits_t LCDDATA6bits; 437 438 #define _S00C1 0x01 439 #define _SEG0COM1 0x01 440 #define _S0C1 0x01 441 #define _S01C1 0x02 442 #define _SEG1COM1 0x02 443 #define _S1C1 0x02 444 #define _S02C1 0x04 445 #define _SEG2COM1 0x04 446 #define _S2C1 0x04 447 #define _S03C1 0x08 448 #define _SEG3COM1 0x08 449 #define _S3C1 0x08 450 #define _S04C1 0x10 451 #define _SEG4COM1 0x10 452 #define _S4C1 0x10 453 #define _S05C1 0x20 454 #define _SEG5COM1 0x20 455 #define _S5C1 0x20 456 #define _S06C1 0x40 457 #define _SEG6COM1 0x40 458 #define _S6C1 0x40 459 #define _S07C1 0x80 460 #define _SEG7COM1 0x80 461 #define _S7C1 0x80 462 463 //============================================================================== 464 465 466 //============================================================================== 467 // LCDDATA7 Bits 468 469 extern __at(0x0F6D) __sfr LCDDATA7; 470 471 typedef union 472 { 473 struct 474 { 475 unsigned S8C1 : 1; 476 unsigned S9C1 : 1; 477 unsigned S10C1 : 1; 478 unsigned S11C1 : 1; 479 unsigned S12C1 : 1; 480 unsigned S13C1 : 1; 481 unsigned S14C1 : 1; 482 unsigned S15C1 : 1; 483 }; 484 485 struct 486 { 487 unsigned SEG8COM1 : 1; 488 unsigned SEG9COM1 : 1; 489 unsigned SEG10COM1 : 1; 490 unsigned SEG11COM1 : 1; 491 unsigned SEG12COM1 : 1; 492 unsigned SEG13COM1 : 1; 493 unsigned SEG14COM1 : 1; 494 unsigned SEG15COM1 : 1; 495 }; 496 497 struct 498 { 499 unsigned S08C1 : 1; 500 unsigned S09C1 : 1; 501 unsigned : 1; 502 unsigned : 1; 503 unsigned : 1; 504 unsigned : 1; 505 unsigned : 1; 506 unsigned : 1; 507 }; 508 } __LCDDATA7bits_t; 509 510 extern __at(0x0F6D) volatile __LCDDATA7bits_t LCDDATA7bits; 511 512 #define _S8C1 0x01 513 #define _SEG8COM1 0x01 514 #define _S08C1 0x01 515 #define _S9C1 0x02 516 #define _SEG9COM1 0x02 517 #define _S09C1 0x02 518 #define _S10C1 0x04 519 #define _SEG10COM1 0x04 520 #define _S11C1 0x08 521 #define _SEG11COM1 0x08 522 #define _S12C1 0x10 523 #define _SEG12COM1 0x10 524 #define _S13C1 0x20 525 #define _SEG13COM1 0x20 526 #define _S14C1 0x40 527 #define _SEG14COM1 0x40 528 #define _S15C1 0x80 529 #define _SEG15COM1 0x80 530 531 //============================================================================== 532 533 534 //============================================================================== 535 // LCDDATA8 Bits 536 537 extern __at(0x0F6E) __sfr LCDDATA8; 538 539 typedef union 540 { 541 struct 542 { 543 unsigned S16C1 : 1; 544 unsigned S17C1 : 1; 545 unsigned S18C1 : 1; 546 unsigned S19C1 : 1; 547 unsigned S20C1 : 1; 548 unsigned S21C1 : 1; 549 unsigned S22C1 : 1; 550 unsigned S23C1 : 1; 551 }; 552 553 struct 554 { 555 unsigned SEG16COM1 : 1; 556 unsigned SEG17COM1 : 1; 557 unsigned SEG18COM1 : 1; 558 unsigned SEG19COM1 : 1; 559 unsigned SEG20COM1 : 1; 560 unsigned SEG21COM1 : 1; 561 unsigned SEG22COM1 : 1; 562 unsigned SEG23COM1 : 1; 563 }; 564 } __LCDDATA8bits_t; 565 566 extern __at(0x0F6E) volatile __LCDDATA8bits_t LCDDATA8bits; 567 568 #define _S16C1 0x01 569 #define _SEG16COM1 0x01 570 #define _S17C1 0x02 571 #define _SEG17COM1 0x02 572 #define _S18C1 0x04 573 #define _SEG18COM1 0x04 574 #define _S19C1 0x08 575 #define _SEG19COM1 0x08 576 #define _S20C1 0x10 577 #define _SEG20COM1 0x10 578 #define _S21C1 0x20 579 #define _SEG21COM1 0x20 580 #define _S22C1 0x40 581 #define _SEG22COM1 0x40 582 #define _S23C1 0x80 583 #define _SEG23COM1 0x80 584 585 //============================================================================== 586 587 588 //============================================================================== 589 // LCDDATA9 Bits 590 591 extern __at(0x0F6F) __sfr LCDDATA9; 592 593 typedef union 594 { 595 struct 596 { 597 unsigned S24C1 : 1; 598 unsigned S25C1 : 1; 599 unsigned S26C1 : 1; 600 unsigned S27C1 : 1; 601 unsigned S28C1 : 1; 602 unsigned S29C1 : 1; 603 unsigned S30C1 : 1; 604 unsigned S31C1 : 1; 605 }; 606 607 struct 608 { 609 unsigned SEG24COM1 : 1; 610 unsigned SEG25COM1 : 1; 611 unsigned SEG26COM1 : 1; 612 unsigned SEG27COM1 : 1; 613 unsigned SEG28COM1 : 1; 614 unsigned SEG29COM1 : 1; 615 unsigned SEG30COM1 : 1; 616 unsigned SEG31COM1 : 1; 617 }; 618 } __LCDDATA9bits_t; 619 620 extern __at(0x0F6F) volatile __LCDDATA9bits_t LCDDATA9bits; 621 622 #define _S24C1 0x01 623 #define _SEG24COM1 0x01 624 #define _S25C1 0x02 625 #define _SEG25COM1 0x02 626 #define _S26C1 0x04 627 #define _SEG26COM1 0x04 628 #define _S27C1 0x08 629 #define _SEG27COM1 0x08 630 #define _S28C1 0x10 631 #define _SEG28COM1 0x10 632 #define _S29C1 0x20 633 #define _SEG29COM1 0x20 634 #define _S30C1 0x40 635 #define _SEG30COM1 0x40 636 #define _S31C1 0x80 637 #define _SEG31COM1 0x80 638 639 //============================================================================== 640 641 642 //============================================================================== 643 // LCDDATA10 Bits 644 645 extern __at(0x0F70) __sfr LCDDATA10; 646 647 typedef union 648 { 649 struct 650 { 651 unsigned S32C1 : 1; 652 unsigned S33C1 : 1; 653 unsigned S34C1 : 1; 654 unsigned S35C1 : 1; 655 unsigned S36C1 : 1; 656 unsigned S37C1 : 1; 657 unsigned S38C1 : 1; 658 unsigned S39C1 : 1; 659 }; 660 661 struct 662 { 663 unsigned SEG32COM1 : 1; 664 unsigned SEG33COM1 : 1; 665 unsigned SEG34COM1 : 1; 666 unsigned SEG35COM1 : 1; 667 unsigned SEG36COM1 : 1; 668 unsigned SEG37COM1 : 1; 669 unsigned SEG38COM1 : 1; 670 unsigned SEG39COM1 : 1; 671 }; 672 } __LCDDATA10bits_t; 673 674 extern __at(0x0F70) volatile __LCDDATA10bits_t LCDDATA10bits; 675 676 #define _S32C1 0x01 677 #define _SEG32COM1 0x01 678 #define _S33C1 0x02 679 #define _SEG33COM1 0x02 680 #define _S34C1 0x04 681 #define _SEG34COM1 0x04 682 #define _S35C1 0x08 683 #define _SEG35COM1 0x08 684 #define _S36C1 0x10 685 #define _SEG36COM1 0x10 686 #define _S37C1 0x20 687 #define _SEG37COM1 0x20 688 #define _S38C1 0x40 689 #define _SEG38COM1 0x40 690 #define _S39C1 0x80 691 #define _SEG39COM1 0x80 692 693 //============================================================================== 694 695 696 //============================================================================== 697 // LCDDATA11 Bits 698 699 extern __at(0x0F71) __sfr LCDDATA11; 700 701 typedef union 702 { 703 struct 704 { 705 unsigned S40C1 : 1; 706 unsigned S41C1 : 1; 707 unsigned S42C1 : 1; 708 unsigned S43C1 : 1; 709 unsigned S44C1 : 1; 710 unsigned S45C1 : 1; 711 unsigned S46C1 : 1; 712 unsigned S47C1 : 1; 713 }; 714 715 struct 716 { 717 unsigned SEG40COM1 : 1; 718 unsigned SEG41COM1 : 1; 719 unsigned SEG42COM1 : 1; 720 unsigned SEG43COM1 : 1; 721 unsigned SEG44COM1 : 1; 722 unsigned SEG45COM1 : 1; 723 unsigned SEG46COM1 : 1; 724 unsigned SEG47COM1 : 1; 725 }; 726 } __LCDDATA11bits_t; 727 728 extern __at(0x0F71) volatile __LCDDATA11bits_t LCDDATA11bits; 729 730 #define _S40C1 0x01 731 #define _SEG40COM1 0x01 732 #define _S41C1 0x02 733 #define _SEG41COM1 0x02 734 #define _S42C1 0x04 735 #define _SEG42COM1 0x04 736 #define _S43C1 0x08 737 #define _SEG43COM1 0x08 738 #define _S44C1 0x10 739 #define _SEG44COM1 0x10 740 #define _S45C1 0x20 741 #define _SEG45COM1 0x20 742 #define _S46C1 0x40 743 #define _SEG46COM1 0x40 744 #define _S47C1 0x80 745 #define _SEG47COM1 0x80 746 747 //============================================================================== 748 749 750 //============================================================================== 751 // LCDDATA12 Bits 752 753 extern __at(0x0F72) __sfr LCDDATA12; 754 755 typedef union 756 { 757 struct 758 { 759 unsigned S00C2 : 1; 760 unsigned S01C2 : 1; 761 unsigned S02C2 : 1; 762 unsigned S03C2 : 1; 763 unsigned S04C2 : 1; 764 unsigned S05C2 : 1; 765 unsigned S06C2 : 1; 766 unsigned S07C2 : 1; 767 }; 768 769 struct 770 { 771 unsigned SEG0COM2 : 1; 772 unsigned SEG1COM2 : 1; 773 unsigned SEG2COM2 : 1; 774 unsigned SEG3COM2 : 1; 775 unsigned SEG4COM2 : 1; 776 unsigned SEG5COM2 : 1; 777 unsigned SEG6COM2 : 1; 778 unsigned SEG7COM2 : 1; 779 }; 780 781 struct 782 { 783 unsigned S0C2 : 1; 784 unsigned S1C2 : 1; 785 unsigned S2C2 : 1; 786 unsigned S3C2 : 1; 787 unsigned S4C2 : 1; 788 unsigned S5C2 : 1; 789 unsigned S6C2 : 1; 790 unsigned S7C2 : 1; 791 }; 792 } __LCDDATA12bits_t; 793 794 extern __at(0x0F72) volatile __LCDDATA12bits_t LCDDATA12bits; 795 796 #define _S00C2 0x01 797 #define _SEG0COM2 0x01 798 #define _S0C2 0x01 799 #define _S01C2 0x02 800 #define _SEG1COM2 0x02 801 #define _S1C2 0x02 802 #define _S02C2 0x04 803 #define _SEG2COM2 0x04 804 #define _S2C2 0x04 805 #define _S03C2 0x08 806 #define _SEG3COM2 0x08 807 #define _S3C2 0x08 808 #define _S04C2 0x10 809 #define _SEG4COM2 0x10 810 #define _S4C2 0x10 811 #define _S05C2 0x20 812 #define _SEG5COM2 0x20 813 #define _S5C2 0x20 814 #define _S06C2 0x40 815 #define _SEG6COM2 0x40 816 #define _S6C2 0x40 817 #define _S07C2 0x80 818 #define _SEG7COM2 0x80 819 #define _S7C2 0x80 820 821 //============================================================================== 822 823 824 //============================================================================== 825 // LCDDATA13 Bits 826 827 extern __at(0x0F73) __sfr LCDDATA13; 828 829 typedef union 830 { 831 struct 832 { 833 unsigned S8C2 : 1; 834 unsigned S9C2 : 1; 835 unsigned S10C2 : 1; 836 unsigned S11C2 : 1; 837 unsigned S12C2 : 1; 838 unsigned S13C2 : 1; 839 unsigned S14C2 : 1; 840 unsigned S15C2 : 1; 841 }; 842 843 struct 844 { 845 unsigned SEG8COM2 : 1; 846 unsigned SEG9COM2 : 1; 847 unsigned SEG10COM2 : 1; 848 unsigned SEG11COM2 : 1; 849 unsigned SEG12COM2 : 1; 850 unsigned SEG13COM2 : 1; 851 unsigned SEG14COM2 : 1; 852 unsigned SEG15COM2 : 1; 853 }; 854 855 struct 856 { 857 unsigned S08C2 : 1; 858 unsigned S09C2 : 1; 859 unsigned : 1; 860 unsigned : 1; 861 unsigned : 1; 862 unsigned : 1; 863 unsigned : 1; 864 unsigned : 1; 865 }; 866 } __LCDDATA13bits_t; 867 868 extern __at(0x0F73) volatile __LCDDATA13bits_t LCDDATA13bits; 869 870 #define _S8C2 0x01 871 #define _SEG8COM2 0x01 872 #define _S08C2 0x01 873 #define _S9C2 0x02 874 #define _SEG9COM2 0x02 875 #define _S09C2 0x02 876 #define _S10C2 0x04 877 #define _SEG10COM2 0x04 878 #define _S11C2 0x08 879 #define _SEG11COM2 0x08 880 #define _S12C2 0x10 881 #define _SEG12COM2 0x10 882 #define _S13C2 0x20 883 #define _SEG13COM2 0x20 884 #define _S14C2 0x40 885 #define _SEG14COM2 0x40 886 #define _S15C2 0x80 887 #define _SEG15COM2 0x80 888 889 //============================================================================== 890 891 892 //============================================================================== 893 // LCDDATA14 Bits 894 895 extern __at(0x0F74) __sfr LCDDATA14; 896 897 typedef union 898 { 899 struct 900 { 901 unsigned S16C2 : 1; 902 unsigned S17C2 : 1; 903 unsigned S18C2 : 1; 904 unsigned S19C2 : 1; 905 unsigned S20C2 : 1; 906 unsigned S21C2 : 1; 907 unsigned S22C2 : 1; 908 unsigned S23C2 : 1; 909 }; 910 911 struct 912 { 913 unsigned SEG16COM2 : 1; 914 unsigned SEG17COM2 : 1; 915 unsigned SEG18COM2 : 1; 916 unsigned SEG19COM2 : 1; 917 unsigned SEG20COM2 : 1; 918 unsigned SEG21COM2 : 1; 919 unsigned SEG22COM2 : 1; 920 unsigned SEG23COM2 : 1; 921 }; 922 } __LCDDATA14bits_t; 923 924 extern __at(0x0F74) volatile __LCDDATA14bits_t LCDDATA14bits; 925 926 #define _S16C2 0x01 927 #define _SEG16COM2 0x01 928 #define _S17C2 0x02 929 #define _SEG17COM2 0x02 930 #define _S18C2 0x04 931 #define _SEG18COM2 0x04 932 #define _S19C2 0x08 933 #define _SEG19COM2 0x08 934 #define _S20C2 0x10 935 #define _SEG20COM2 0x10 936 #define _S21C2 0x20 937 #define _SEG21COM2 0x20 938 #define _S22C2 0x40 939 #define _SEG22COM2 0x40 940 #define _S23C2 0x80 941 #define _SEG23COM2 0x80 942 943 //============================================================================== 944 945 946 //============================================================================== 947 // LCDDATA15 Bits 948 949 extern __at(0x0F75) __sfr LCDDATA15; 950 951 typedef union 952 { 953 struct 954 { 955 unsigned S24C2 : 1; 956 unsigned S25C2 : 1; 957 unsigned S26C2 : 1; 958 unsigned S27C2 : 1; 959 unsigned S28C2 : 1; 960 unsigned S29C2 : 1; 961 unsigned S30C2 : 1; 962 unsigned S31C2 : 1; 963 }; 964 965 struct 966 { 967 unsigned SEG24COM2 : 1; 968 unsigned SEG25COM2 : 1; 969 unsigned SEG26COM2 : 1; 970 unsigned SEG27COM2 : 1; 971 unsigned SEG28COM2 : 1; 972 unsigned SEG29COM2 : 1; 973 unsigned SEG30COM2 : 1; 974 unsigned SEG31COM2 : 1; 975 }; 976 } __LCDDATA15bits_t; 977 978 extern __at(0x0F75) volatile __LCDDATA15bits_t LCDDATA15bits; 979 980 #define _S24C2 0x01 981 #define _SEG24COM2 0x01 982 #define _S25C2 0x02 983 #define _SEG25COM2 0x02 984 #define _S26C2 0x04 985 #define _SEG26COM2 0x04 986 #define _S27C2 0x08 987 #define _SEG27COM2 0x08 988 #define _S28C2 0x10 989 #define _SEG28COM2 0x10 990 #define _S29C2 0x20 991 #define _SEG29COM2 0x20 992 #define _S30C2 0x40 993 #define _SEG30COM2 0x40 994 #define _S31C2 0x80 995 #define _SEG31COM2 0x80 996 997 //============================================================================== 998 999 1000 //============================================================================== 1001 // LCDDATA16 Bits 1002 1003 extern __at(0x0F76) __sfr LCDDATA16; 1004 1005 typedef union 1006 { 1007 struct 1008 { 1009 unsigned S32C2 : 1; 1010 unsigned S33C2 : 1; 1011 unsigned S34C2 : 1; 1012 unsigned S35C2 : 1; 1013 unsigned S36C2 : 1; 1014 unsigned S37C2 : 1; 1015 unsigned S38C2 : 1; 1016 unsigned S39C2 : 1; 1017 }; 1018 1019 struct 1020 { 1021 unsigned SEG32COM2 : 1; 1022 unsigned SEG33COM2 : 1; 1023 unsigned SEG34COM2 : 1; 1024 unsigned SEG35COM2 : 1; 1025 unsigned SEG36COM2 : 1; 1026 unsigned SEG37COM2 : 1; 1027 unsigned SEG38COM2 : 1; 1028 unsigned SEG39COM2 : 1; 1029 }; 1030 } __LCDDATA16bits_t; 1031 1032 extern __at(0x0F76) volatile __LCDDATA16bits_t LCDDATA16bits; 1033 1034 #define _S32C2 0x01 1035 #define _SEG32COM2 0x01 1036 #define _S33C2 0x02 1037 #define _SEG33COM2 0x02 1038 #define _S34C2 0x04 1039 #define _SEG34COM2 0x04 1040 #define _S35C2 0x08 1041 #define _SEG35COM2 0x08 1042 #define _S36C2 0x10 1043 #define _SEG36COM2 0x10 1044 #define _S37C2 0x20 1045 #define _SEG37COM2 0x20 1046 #define _S38C2 0x40 1047 #define _SEG38COM2 0x40 1048 #define _S39C2 0x80 1049 #define _SEG39COM2 0x80 1050 1051 //============================================================================== 1052 1053 1054 //============================================================================== 1055 // LCDDATA17 Bits 1056 1057 extern __at(0x0F77) __sfr LCDDATA17; 1058 1059 typedef union 1060 { 1061 struct 1062 { 1063 unsigned S40C2 : 1; 1064 unsigned S41C2 : 1; 1065 unsigned S42C2 : 1; 1066 unsigned S43C2 : 1; 1067 unsigned S44C2 : 1; 1068 unsigned S45C2 : 1; 1069 unsigned S46C2 : 1; 1070 unsigned S47C2 : 1; 1071 }; 1072 1073 struct 1074 { 1075 unsigned SEG40COM2 : 1; 1076 unsigned SEG41COM2 : 1; 1077 unsigned SEG42COM2 : 1; 1078 unsigned SEG43COM2 : 1; 1079 unsigned SEG44COM2 : 1; 1080 unsigned SEG45COM2 : 1; 1081 unsigned SEG46COM2 : 1; 1082 unsigned SEG47COM2 : 1; 1083 }; 1084 } __LCDDATA17bits_t; 1085 1086 extern __at(0x0F77) volatile __LCDDATA17bits_t LCDDATA17bits; 1087 1088 #define _S40C2 0x01 1089 #define _SEG40COM2 0x01 1090 #define _S41C2 0x02 1091 #define _SEG41COM2 0x02 1092 #define _S42C2 0x04 1093 #define _SEG42COM2 0x04 1094 #define _S43C2 0x08 1095 #define _SEG43COM2 0x08 1096 #define _S44C2 0x10 1097 #define _SEG44COM2 0x10 1098 #define _S45C2 0x20 1099 #define _SEG45COM2 0x20 1100 #define _S46C2 0x40 1101 #define _SEG46COM2 0x40 1102 #define _S47C2 0x80 1103 #define _SEG47COM2 0x80 1104 1105 //============================================================================== 1106 1107 1108 //============================================================================== 1109 // LCDDATA18 Bits 1110 1111 extern __at(0x0F78) __sfr LCDDATA18; 1112 1113 typedef union 1114 { 1115 struct 1116 { 1117 unsigned S00C3 : 1; 1118 unsigned S01C3 : 1; 1119 unsigned S02C3 : 1; 1120 unsigned S03C3 : 1; 1121 unsigned S04C3 : 1; 1122 unsigned S05C3 : 1; 1123 unsigned S06C3 : 1; 1124 unsigned S07C3 : 1; 1125 }; 1126 1127 struct 1128 { 1129 unsigned SEG0COM3 : 1; 1130 unsigned SEG1COM3 : 1; 1131 unsigned SEG2COM3 : 1; 1132 unsigned SEG3COM3 : 1; 1133 unsigned SEG4COM3 : 1; 1134 unsigned SEG5COM3 : 1; 1135 unsigned SEG6COM3 : 1; 1136 unsigned SEG7COM3 : 1; 1137 }; 1138 1139 struct 1140 { 1141 unsigned S0C3 : 1; 1142 unsigned S1C3 : 1; 1143 unsigned S2C3 : 1; 1144 unsigned S3C3 : 1; 1145 unsigned S4C3 : 1; 1146 unsigned S5C3 : 1; 1147 unsigned S6C3 : 1; 1148 unsigned S7C3 : 1; 1149 }; 1150 } __LCDDATA18bits_t; 1151 1152 extern __at(0x0F78) volatile __LCDDATA18bits_t LCDDATA18bits; 1153 1154 #define _S00C3 0x01 1155 #define _SEG0COM3 0x01 1156 #define _S0C3 0x01 1157 #define _S01C3 0x02 1158 #define _SEG1COM3 0x02 1159 #define _S1C3 0x02 1160 #define _S02C3 0x04 1161 #define _SEG2COM3 0x04 1162 #define _S2C3 0x04 1163 #define _S03C3 0x08 1164 #define _SEG3COM3 0x08 1165 #define _S3C3 0x08 1166 #define _S04C3 0x10 1167 #define _SEG4COM3 0x10 1168 #define _S4C3 0x10 1169 #define _S05C3 0x20 1170 #define _SEG5COM3 0x20 1171 #define _S5C3 0x20 1172 #define _S06C3 0x40 1173 #define _SEG6COM3 0x40 1174 #define _S6C3 0x40 1175 #define _S07C3 0x80 1176 #define _SEG7COM3 0x80 1177 #define _S7C3 0x80 1178 1179 //============================================================================== 1180 1181 1182 //============================================================================== 1183 // LCDDATA19 Bits 1184 1185 extern __at(0x0F79) __sfr LCDDATA19; 1186 1187 typedef union 1188 { 1189 struct 1190 { 1191 unsigned S8C3 : 1; 1192 unsigned S9C3 : 1; 1193 unsigned S10C3 : 1; 1194 unsigned S11C3 : 1; 1195 unsigned S12C3 : 1; 1196 unsigned S13C3 : 1; 1197 unsigned S14C3 : 1; 1198 unsigned S15C3 : 1; 1199 }; 1200 1201 struct 1202 { 1203 unsigned SEG8COM3 : 1; 1204 unsigned SEG9COM3 : 1; 1205 unsigned SEG10COM3 : 1; 1206 unsigned SEG11COM3 : 1; 1207 unsigned SEG12COM3 : 1; 1208 unsigned SEG13COM3 : 1; 1209 unsigned SEG14COM3 : 1; 1210 unsigned SEG15COM3 : 1; 1211 }; 1212 1213 struct 1214 { 1215 unsigned S08C3 : 1; 1216 unsigned S09C3 : 1; 1217 unsigned : 1; 1218 unsigned : 1; 1219 unsigned : 1; 1220 unsigned : 1; 1221 unsigned : 1; 1222 unsigned : 1; 1223 }; 1224 } __LCDDATA19bits_t; 1225 1226 extern __at(0x0F79) volatile __LCDDATA19bits_t LCDDATA19bits; 1227 1228 #define _S8C3 0x01 1229 #define _SEG8COM3 0x01 1230 #define _S08C3 0x01 1231 #define _S9C3 0x02 1232 #define _SEG9COM3 0x02 1233 #define _S09C3 0x02 1234 #define _S10C3 0x04 1235 #define _SEG10COM3 0x04 1236 #define _S11C3 0x08 1237 #define _SEG11COM3 0x08 1238 #define _S12C3 0x10 1239 #define _SEG12COM3 0x10 1240 #define _S13C3 0x20 1241 #define _SEG13COM3 0x20 1242 #define _S14C3 0x40 1243 #define _SEG14COM3 0x40 1244 #define _S15C3 0x80 1245 #define _SEG15COM3 0x80 1246 1247 //============================================================================== 1248 1249 1250 //============================================================================== 1251 // LCDDATA20 Bits 1252 1253 extern __at(0x0F7A) __sfr LCDDATA20; 1254 1255 typedef union 1256 { 1257 struct 1258 { 1259 unsigned S16C3 : 1; 1260 unsigned S17C3 : 1; 1261 unsigned S18C3 : 1; 1262 unsigned S19C3 : 1; 1263 unsigned S20C3 : 1; 1264 unsigned S21C3 : 1; 1265 unsigned S22C3 : 1; 1266 unsigned S23C3 : 1; 1267 }; 1268 1269 struct 1270 { 1271 unsigned SEG16COM3 : 1; 1272 unsigned SEG17COM3 : 1; 1273 unsigned SEG18COM3 : 1; 1274 unsigned SEG19COM3 : 1; 1275 unsigned SEG20COM3 : 1; 1276 unsigned SEG21COM3 : 1; 1277 unsigned SEG22COM3 : 1; 1278 unsigned SEG23COM3 : 1; 1279 }; 1280 } __LCDDATA20bits_t; 1281 1282 extern __at(0x0F7A) volatile __LCDDATA20bits_t LCDDATA20bits; 1283 1284 #define _S16C3 0x01 1285 #define _SEG16COM3 0x01 1286 #define _S17C3 0x02 1287 #define _SEG17COM3 0x02 1288 #define _S18C3 0x04 1289 #define _SEG18COM3 0x04 1290 #define _S19C3 0x08 1291 #define _SEG19COM3 0x08 1292 #define _S20C3 0x10 1293 #define _SEG20COM3 0x10 1294 #define _S21C3 0x20 1295 #define _SEG21COM3 0x20 1296 #define _S22C3 0x40 1297 #define _SEG22COM3 0x40 1298 #define _S23C3 0x80 1299 #define _SEG23COM3 0x80 1300 1301 //============================================================================== 1302 1303 1304 //============================================================================== 1305 // LCDDATA21 Bits 1306 1307 extern __at(0x0F7B) __sfr LCDDATA21; 1308 1309 typedef union 1310 { 1311 struct 1312 { 1313 unsigned S24C3 : 1; 1314 unsigned S25C3 : 1; 1315 unsigned S26C3 : 1; 1316 unsigned S27C3 : 1; 1317 unsigned S28C3 : 1; 1318 unsigned S29C3 : 1; 1319 unsigned S30C3 : 1; 1320 unsigned S31C3 : 1; 1321 }; 1322 1323 struct 1324 { 1325 unsigned SEG24COM3 : 1; 1326 unsigned SEG25COM3 : 1; 1327 unsigned SEG26COM3 : 1; 1328 unsigned SEG27COM3 : 1; 1329 unsigned SEG28COM3 : 1; 1330 unsigned SEG29COM3 : 1; 1331 unsigned SEG30COM3 : 1; 1332 unsigned SEG31COM3 : 1; 1333 }; 1334 } __LCDDATA21bits_t; 1335 1336 extern __at(0x0F7B) volatile __LCDDATA21bits_t LCDDATA21bits; 1337 1338 #define _S24C3 0x01 1339 #define _SEG24COM3 0x01 1340 #define _S25C3 0x02 1341 #define _SEG25COM3 0x02 1342 #define _S26C3 0x04 1343 #define _SEG26COM3 0x04 1344 #define _S27C3 0x08 1345 #define _SEG27COM3 0x08 1346 #define _S28C3 0x10 1347 #define _SEG28COM3 0x10 1348 #define _S29C3 0x20 1349 #define _SEG29COM3 0x20 1350 #define _S30C3 0x40 1351 #define _SEG30COM3 0x40 1352 #define _S31C3 0x80 1353 #define _SEG31COM3 0x80 1354 1355 //============================================================================== 1356 1357 1358 //============================================================================== 1359 // LCDDATA22 Bits 1360 1361 extern __at(0x0F7C) __sfr LCDDATA22; 1362 1363 typedef union 1364 { 1365 struct 1366 { 1367 unsigned S32C3 : 1; 1368 unsigned S33C3 : 1; 1369 unsigned S34C3 : 1; 1370 unsigned S35C3 : 1; 1371 unsigned S36C3 : 1; 1372 unsigned S37C3 : 1; 1373 unsigned S38C3 : 1; 1374 unsigned S39C3 : 1; 1375 }; 1376 1377 struct 1378 { 1379 unsigned SEG32COM3 : 1; 1380 unsigned SEG33COM3 : 1; 1381 unsigned SEG34COM3 : 1; 1382 unsigned SEG35COM3 : 1; 1383 unsigned SEG36COM3 : 1; 1384 unsigned SEG37COM3 : 1; 1385 unsigned SEG38COM3 : 1; 1386 unsigned SEG39COM3 : 1; 1387 }; 1388 } __LCDDATA22bits_t; 1389 1390 extern __at(0x0F7C) volatile __LCDDATA22bits_t LCDDATA22bits; 1391 1392 #define _S32C3 0x01 1393 #define _SEG32COM3 0x01 1394 #define _S33C3 0x02 1395 #define _SEG33COM3 0x02 1396 #define _S34C3 0x04 1397 #define _SEG34COM3 0x04 1398 #define _S35C3 0x08 1399 #define _SEG35COM3 0x08 1400 #define _S36C3 0x10 1401 #define _SEG36COM3 0x10 1402 #define _S37C3 0x20 1403 #define _SEG37COM3 0x20 1404 #define _S38C3 0x40 1405 #define _SEG38COM3 0x40 1406 #define _S39C3 0x80 1407 #define _SEG39COM3 0x80 1408 1409 //============================================================================== 1410 1411 1412 //============================================================================== 1413 // LCDDATA23 Bits 1414 1415 extern __at(0x0F7D) __sfr LCDDATA23; 1416 1417 typedef union 1418 { 1419 struct 1420 { 1421 unsigned S40C3 : 1; 1422 unsigned S41C3 : 1; 1423 unsigned S42C3 : 1; 1424 unsigned S43C3 : 1; 1425 unsigned S44C3 : 1; 1426 unsigned S45C3 : 1; 1427 unsigned S46C3 : 1; 1428 unsigned S47C3 : 1; 1429 }; 1430 1431 struct 1432 { 1433 unsigned SEG40COM3 : 1; 1434 unsigned SEG41COM3 : 1; 1435 unsigned SEG42COM3 : 1; 1436 unsigned SEG43COM3 : 1; 1437 unsigned SEG44COM3 : 1; 1438 unsigned SEG45COM3 : 1; 1439 unsigned SEG46COM3 : 1; 1440 unsigned SEG47COM3 : 1; 1441 }; 1442 } __LCDDATA23bits_t; 1443 1444 extern __at(0x0F7D) volatile __LCDDATA23bits_t LCDDATA23bits; 1445 1446 #define _S40C3 0x01 1447 #define _SEG40COM3 0x01 1448 #define _S41C3 0x02 1449 #define _SEG41COM3 0x02 1450 #define _S42C3 0x04 1451 #define _SEG42COM3 0x04 1452 #define _S43C3 0x08 1453 #define _SEG43COM3 0x08 1454 #define _S44C3 0x10 1455 #define _SEG44COM3 0x10 1456 #define _S45C3 0x20 1457 #define _SEG45COM3 0x20 1458 #define _S46C3 0x40 1459 #define _SEG46COM3 0x40 1460 #define _S47C3 0x80 1461 #define _SEG47COM3 0x80 1462 1463 //============================================================================== 1464 1465 1466 //============================================================================== 1467 // BAUDCON1 Bits 1468 1469 extern __at(0x0F7E) __sfr BAUDCON1; 1470 1471 typedef union 1472 { 1473 struct 1474 { 1475 unsigned ABDEN : 1; 1476 unsigned WUE : 1; 1477 unsigned : 1; 1478 unsigned BRG16 : 1; 1479 unsigned TXCKP : 1; 1480 unsigned RXDTP : 1; 1481 unsigned RCIDL : 1; 1482 unsigned ABDOVF : 1; 1483 }; 1484 1485 struct 1486 { 1487 unsigned : 1; 1488 unsigned : 1; 1489 unsigned : 1; 1490 unsigned : 1; 1491 unsigned SCKP : 1; 1492 unsigned : 1; 1493 unsigned RCMT : 1; 1494 unsigned : 1; 1495 }; 1496 } __BAUDCON1bits_t; 1497 1498 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 1499 1500 #define _ABDEN 0x01 1501 #define _WUE 0x02 1502 #define _BRG16 0x08 1503 #define _TXCKP 0x10 1504 #define _SCKP 0x10 1505 #define _RXDTP 0x20 1506 #define _RCIDL 0x40 1507 #define _RCMT 0x40 1508 #define _ABDOVF 0x80 1509 1510 //============================================================================== 1511 1512 extern __at(0x0F7F) __sfr SPBRGH1; 1513 1514 //============================================================================== 1515 // PORTA Bits 1516 1517 extern __at(0x0F80) __sfr PORTA; 1518 1519 typedef union 1520 { 1521 struct 1522 { 1523 unsigned RA0 : 1; 1524 unsigned RA1 : 1; 1525 unsigned RA2 : 1; 1526 unsigned RA3 : 1; 1527 unsigned RA4 : 1; 1528 unsigned RA5 : 1; 1529 unsigned RA6 : 1; 1530 unsigned RA7 : 1; 1531 }; 1532 1533 struct 1534 { 1535 unsigned AN0 : 1; 1536 unsigned AN1 : 1; 1537 unsigned AN2 : 1; 1538 unsigned AN3 : 1; 1539 unsigned T0CKI : 1; 1540 unsigned AN4 : 1; 1541 unsigned OSC2 : 1; 1542 unsigned OSC1 : 1; 1543 }; 1544 1545 struct 1546 { 1547 unsigned : 1; 1548 unsigned SEG18 : 1; 1549 unsigned VREFM : 1; 1550 unsigned VREFP : 1; 1551 unsigned SEG14 : 1; 1552 unsigned SEG15 : 1; 1553 unsigned CLKO : 1; 1554 unsigned CLKI : 1; 1555 }; 1556 } __PORTAbits_t; 1557 1558 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 1559 1560 #define _PORTA_RA0 0x01 1561 #define _PORTA_AN0 0x01 1562 #define _PORTA_RA1 0x02 1563 #define _PORTA_AN1 0x02 1564 #define _PORTA_SEG18 0x02 1565 #define _PORTA_RA2 0x04 1566 #define _PORTA_AN2 0x04 1567 #define _PORTA_VREFM 0x04 1568 #define _PORTA_RA3 0x08 1569 #define _PORTA_AN3 0x08 1570 #define _PORTA_VREFP 0x08 1571 #define _PORTA_RA4 0x10 1572 #define _PORTA_T0CKI 0x10 1573 #define _PORTA_SEG14 0x10 1574 #define _PORTA_RA5 0x20 1575 #define _PORTA_AN4 0x20 1576 #define _PORTA_SEG15 0x20 1577 #define _PORTA_RA6 0x40 1578 #define _PORTA_OSC2 0x40 1579 #define _PORTA_CLKO 0x40 1580 #define _PORTA_RA7 0x80 1581 #define _PORTA_OSC1 0x80 1582 #define _PORTA_CLKI 0x80 1583 1584 //============================================================================== 1585 1586 1587 //============================================================================== 1588 // PORTB Bits 1589 1590 extern __at(0x0F81) __sfr PORTB; 1591 1592 typedef union 1593 { 1594 struct 1595 { 1596 unsigned RB0 : 1; 1597 unsigned RB1 : 1; 1598 unsigned RB2 : 1; 1599 unsigned RB3 : 1; 1600 unsigned RB4 : 1; 1601 unsigned RB5 : 1; 1602 unsigned RB6 : 1; 1603 unsigned RB7 : 1; 1604 }; 1605 1606 struct 1607 { 1608 unsigned INT0 : 1; 1609 unsigned INT1 : 1; 1610 unsigned INT2 : 1; 1611 unsigned INT3 : 1; 1612 unsigned KBI0 : 1; 1613 unsigned KBI1 : 1; 1614 unsigned KBI2 : 1; 1615 unsigned KBI3 : 1; 1616 }; 1617 1618 struct 1619 { 1620 unsigned SEG30 : 1; 1621 unsigned SEG8 : 1; 1622 unsigned SEG9 : 1; 1623 unsigned SEG10 : 1; 1624 unsigned SEG11 : 1; 1625 unsigned SEG29 : 1; 1626 unsigned PGC : 1; 1627 unsigned PGD : 1; 1628 }; 1629 1630 struct 1631 { 1632 unsigned INT : 4; 1633 unsigned : 4; 1634 }; 1635 1636 struct 1637 { 1638 unsigned : 4; 1639 unsigned KBI : 4; 1640 }; 1641 } __PORTBbits_t; 1642 1643 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 1644 1645 #define _PORTB_RB0 0x01 1646 #define _PORTB_INT0 0x01 1647 #define _PORTB_SEG30 0x01 1648 #define _PORTB_RB1 0x02 1649 #define _PORTB_INT1 0x02 1650 #define _PORTB_SEG8 0x02 1651 #define _PORTB_RB2 0x04 1652 #define _PORTB_INT2 0x04 1653 #define _PORTB_SEG9 0x04 1654 #define _PORTB_RB3 0x08 1655 #define _PORTB_INT3 0x08 1656 #define _PORTB_SEG10 0x08 1657 #define _PORTB_RB4 0x10 1658 #define _PORTB_KBI0 0x10 1659 #define _PORTB_SEG11 0x10 1660 #define _PORTB_RB5 0x20 1661 #define _PORTB_KBI1 0x20 1662 #define _PORTB_SEG29 0x20 1663 #define _PORTB_RB6 0x40 1664 #define _PORTB_KBI2 0x40 1665 #define _PORTB_PGC 0x40 1666 #define _PORTB_RB7 0x80 1667 #define _PORTB_KBI3 0x80 1668 #define _PORTB_PGD 0x80 1669 1670 //============================================================================== 1671 1672 1673 //============================================================================== 1674 // PORTC Bits 1675 1676 extern __at(0x0F82) __sfr PORTC; 1677 1678 typedef union 1679 { 1680 struct 1681 { 1682 unsigned RC0 : 1; 1683 unsigned RC1 : 1; 1684 unsigned RC2 : 1; 1685 unsigned RC3 : 1; 1686 unsigned RC4 : 1; 1687 unsigned RC5 : 1; 1688 unsigned RC6 : 1; 1689 unsigned RC7 : 1; 1690 }; 1691 1692 struct 1693 { 1694 unsigned T1OSO : 1; 1695 unsigned T1OSI : 1; 1696 unsigned CCP1 : 1; 1697 unsigned SCL : 1; 1698 unsigned SDA : 1; 1699 unsigned SDO : 1; 1700 unsigned CK1 : 1; 1701 unsigned DT1 : 1; 1702 }; 1703 1704 struct 1705 { 1706 unsigned T13CKI : 1; 1707 unsigned CCP2 : 1; 1708 unsigned SEG13 : 1; 1709 unsigned SCK : 1; 1710 unsigned SDI : 1; 1711 unsigned SEG12 : 1; 1712 unsigned TX1 : 1; 1713 unsigned RX1 : 1; 1714 }; 1715 1716 struct 1717 { 1718 unsigned : 1; 1719 unsigned SEG32 : 1; 1720 unsigned : 1; 1721 unsigned SEG17 : 1; 1722 unsigned SEG16 : 1; 1723 unsigned : 1; 1724 unsigned SEG27 : 1; 1725 unsigned SEG28 : 1; 1726 }; 1727 } __PORTCbits_t; 1728 1729 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 1730 1731 #define _PORTC_RC0 0x01 1732 #define _PORTC_T1OSO 0x01 1733 #define _PORTC_T13CKI 0x01 1734 #define _PORTC_RC1 0x02 1735 #define _PORTC_T1OSI 0x02 1736 #define _PORTC_CCP2 0x02 1737 #define _PORTC_SEG32 0x02 1738 #define _PORTC_RC2 0x04 1739 #define _PORTC_CCP1 0x04 1740 #define _PORTC_SEG13 0x04 1741 #define _PORTC_RC3 0x08 1742 #define _PORTC_SCL 0x08 1743 #define _PORTC_SCK 0x08 1744 #define _PORTC_SEG17 0x08 1745 #define _PORTC_RC4 0x10 1746 #define _PORTC_SDA 0x10 1747 #define _PORTC_SDI 0x10 1748 #define _PORTC_SEG16 0x10 1749 #define _PORTC_RC5 0x20 1750 #define _PORTC_SDO 0x20 1751 #define _PORTC_SEG12 0x20 1752 #define _PORTC_RC6 0x40 1753 #define _PORTC_CK1 0x40 1754 #define _PORTC_TX1 0x40 1755 #define _PORTC_SEG27 0x40 1756 #define _PORTC_RC7 0x80 1757 #define _PORTC_DT1 0x80 1758 #define _PORTC_RX1 0x80 1759 #define _PORTC_SEG28 0x80 1760 1761 //============================================================================== 1762 1763 1764 //============================================================================== 1765 // PORTD Bits 1766 1767 extern __at(0x0F83) __sfr PORTD; 1768 1769 typedef union 1770 { 1771 struct 1772 { 1773 unsigned RD0 : 1; 1774 unsigned RD1 : 1; 1775 unsigned RD2 : 1; 1776 unsigned RD3 : 1; 1777 unsigned RD4 : 1; 1778 unsigned RD5 : 1; 1779 unsigned RD6 : 1; 1780 unsigned RD7 : 1; 1781 }; 1782 1783 struct 1784 { 1785 unsigned SEG0 : 1; 1786 unsigned SEG1 : 1; 1787 unsigned SEG2 : 1; 1788 unsigned SEG3 : 1; 1789 unsigned SEG4 : 1; 1790 unsigned SEG5 : 1; 1791 unsigned SEG6 : 1; 1792 unsigned SEG7 : 1; 1793 }; 1794 } __PORTDbits_t; 1795 1796 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 1797 1798 #define _PORTD_RD0 0x01 1799 #define _PORTD_SEG0 0x01 1800 #define _PORTD_RD1 0x02 1801 #define _PORTD_SEG1 0x02 1802 #define _PORTD_RD2 0x04 1803 #define _PORTD_SEG2 0x04 1804 #define _PORTD_RD3 0x08 1805 #define _PORTD_SEG3 0x08 1806 #define _PORTD_RD4 0x10 1807 #define _PORTD_SEG4 0x10 1808 #define _PORTD_RD5 0x20 1809 #define _PORTD_SEG5 0x20 1810 #define _PORTD_RD6 0x40 1811 #define _PORTD_SEG6 0x40 1812 #define _PORTD_RD7 0x80 1813 #define _PORTD_SEG7 0x80 1814 1815 //============================================================================== 1816 1817 1818 //============================================================================== 1819 // PORTE Bits 1820 1821 extern __at(0x0F84) __sfr PORTE; 1822 1823 typedef union 1824 { 1825 struct 1826 { 1827 unsigned RE0 : 1; 1828 unsigned RE1 : 1; 1829 unsigned : 1; 1830 unsigned RE3 : 1; 1831 unsigned RE4 : 1; 1832 unsigned RE5 : 1; 1833 unsigned RE6 : 1; 1834 unsigned RE7 : 1; 1835 }; 1836 1837 struct 1838 { 1839 unsigned LCDBIAS1 : 1; 1840 unsigned LCDBIAS2 : 1; 1841 unsigned : 1; 1842 unsigned COM0 : 1; 1843 unsigned COM1 : 1; 1844 unsigned COM2 : 1; 1845 unsigned COM3 : 1; 1846 unsigned CCP2 : 1; 1847 }; 1848 1849 struct 1850 { 1851 unsigned : 1; 1852 unsigned : 1; 1853 unsigned : 1; 1854 unsigned : 1; 1855 unsigned : 1; 1856 unsigned : 1; 1857 unsigned : 1; 1858 unsigned SEG31 : 1; 1859 }; 1860 1861 struct 1862 { 1863 unsigned : 3; 1864 unsigned COM : 4; 1865 unsigned : 1; 1866 }; 1867 } __PORTEbits_t; 1868 1869 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 1870 1871 #define _PORTE_RE0 0x01 1872 #define _PORTE_LCDBIAS1 0x01 1873 #define _PORTE_RE1 0x02 1874 #define _PORTE_LCDBIAS2 0x02 1875 #define _PORTE_RE3 0x08 1876 #define _PORTE_COM0 0x08 1877 #define _PORTE_RE4 0x10 1878 #define _PORTE_COM1 0x10 1879 #define _PORTE_RE5 0x20 1880 #define _PORTE_COM2 0x20 1881 #define _PORTE_RE6 0x40 1882 #define _PORTE_COM3 0x40 1883 #define _PORTE_RE7 0x80 1884 #define _PORTE_CCP2 0x80 1885 #define _PORTE_SEG31 0x80 1886 1887 //============================================================================== 1888 1889 1890 //============================================================================== 1891 // PORTF Bits 1892 1893 extern __at(0x0F85) __sfr PORTF; 1894 1895 typedef union 1896 { 1897 struct 1898 { 1899 unsigned : 1; 1900 unsigned RF1 : 1; 1901 unsigned RF2 : 1; 1902 unsigned RF3 : 1; 1903 unsigned RF4 : 1; 1904 unsigned RF5 : 1; 1905 unsigned RF6 : 1; 1906 unsigned RF7 : 1; 1907 }; 1908 1909 struct 1910 { 1911 unsigned : 1; 1912 unsigned AN6 : 1; 1913 unsigned AN7 : 1; 1914 unsigned AN8 : 1; 1915 unsigned AN9 : 1; 1916 unsigned AN10 : 1; 1917 unsigned AN11 : 1; 1918 unsigned AN5 : 1; 1919 }; 1920 1921 struct 1922 { 1923 unsigned : 1; 1924 unsigned C2OUT : 1; 1925 unsigned C1OUT : 1; 1926 unsigned C2INB : 1; 1927 unsigned C2INA : 1; 1928 unsigned C1INB : 1; 1929 unsigned C1INA : 1; 1930 unsigned SS1 : 1; 1931 }; 1932 1933 struct 1934 { 1935 unsigned : 1; 1936 unsigned SEG19 : 1; 1937 unsigned SEG20 : 1; 1938 unsigned SEG21 : 1; 1939 unsigned SEG22 : 1; 1940 unsigned SEG23 : 1; 1941 unsigned SEG24 : 1; 1942 unsigned SEG25 : 1; 1943 }; 1944 1945 struct 1946 { 1947 unsigned : 1; 1948 unsigned : 1; 1949 unsigned : 1; 1950 unsigned : 1; 1951 unsigned : 1; 1952 unsigned CVREF : 1; 1953 unsigned : 1; 1954 unsigned : 1; 1955 }; 1956 } __PORTFbits_t; 1957 1958 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits; 1959 1960 #define _PORTF_RF1 0x02 1961 #define _PORTF_AN6 0x02 1962 #define _PORTF_C2OUT 0x02 1963 #define _PORTF_SEG19 0x02 1964 #define _PORTF_RF2 0x04 1965 #define _PORTF_AN7 0x04 1966 #define _PORTF_C1OUT 0x04 1967 #define _PORTF_SEG20 0x04 1968 #define _PORTF_RF3 0x08 1969 #define _PORTF_AN8 0x08 1970 #define _PORTF_C2INB 0x08 1971 #define _PORTF_SEG21 0x08 1972 #define _PORTF_RF4 0x10 1973 #define _PORTF_AN9 0x10 1974 #define _PORTF_C2INA 0x10 1975 #define _PORTF_SEG22 0x10 1976 #define _PORTF_RF5 0x20 1977 #define _PORTF_AN10 0x20 1978 #define _PORTF_C1INB 0x20 1979 #define _PORTF_SEG23 0x20 1980 #define _PORTF_CVREF 0x20 1981 #define _PORTF_RF6 0x40 1982 #define _PORTF_AN11 0x40 1983 #define _PORTF_C1INA 0x40 1984 #define _PORTF_SEG24 0x40 1985 #define _PORTF_RF7 0x80 1986 #define _PORTF_AN5 0x80 1987 #define _PORTF_SS1 0x80 1988 #define _PORTF_SEG25 0x80 1989 1990 //============================================================================== 1991 1992 1993 //============================================================================== 1994 // PORTG Bits 1995 1996 extern __at(0x0F86) __sfr PORTG; 1997 1998 typedef union 1999 { 2000 struct 2001 { 2002 unsigned RG0 : 1; 2003 unsigned RG1 : 1; 2004 unsigned RG2 : 1; 2005 unsigned RG3 : 1; 2006 unsigned RG4 : 1; 2007 unsigned RJPU : 1; 2008 unsigned REPU : 1; 2009 unsigned RDPU : 1; 2010 }; 2011 2012 struct 2013 { 2014 unsigned LCDBIAS0 : 1; 2015 unsigned CK2 : 1; 2016 unsigned DT2 : 1; 2017 unsigned VLCAP2 : 1; 2018 unsigned SEG26 : 1; 2019 unsigned : 1; 2020 unsigned : 1; 2021 unsigned : 1; 2022 }; 2023 2024 struct 2025 { 2026 unsigned : 1; 2027 unsigned TX2 : 1; 2028 unsigned RX2 : 1; 2029 unsigned : 1; 2030 unsigned : 1; 2031 unsigned : 1; 2032 unsigned : 1; 2033 unsigned : 1; 2034 }; 2035 2036 struct 2037 { 2038 unsigned : 1; 2039 unsigned : 1; 2040 unsigned VLCAP1 : 1; 2041 unsigned : 1; 2042 unsigned : 1; 2043 unsigned : 1; 2044 unsigned : 1; 2045 unsigned : 1; 2046 }; 2047 2048 struct 2049 { 2050 unsigned RG : 5; 2051 unsigned : 3; 2052 }; 2053 } __PORTGbits_t; 2054 2055 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits; 2056 2057 #define _PORTG_RG0 0x01 2058 #define _PORTG_LCDBIAS0 0x01 2059 #define _PORTG_RG1 0x02 2060 #define _PORTG_CK2 0x02 2061 #define _PORTG_TX2 0x02 2062 #define _PORTG_RG2 0x04 2063 #define _PORTG_DT2 0x04 2064 #define _PORTG_RX2 0x04 2065 #define _PORTG_VLCAP1 0x04 2066 #define _PORTG_RG3 0x08 2067 #define _PORTG_VLCAP2 0x08 2068 #define _PORTG_RG4 0x10 2069 #define _PORTG_SEG26 0x10 2070 #define _PORTG_RJPU 0x20 2071 #define _PORTG_REPU 0x40 2072 #define _PORTG_RDPU 0x80 2073 2074 //============================================================================== 2075 2076 2077 //============================================================================== 2078 // PORTH Bits 2079 2080 extern __at(0x0F87) __sfr PORTH; 2081 2082 typedef union 2083 { 2084 struct 2085 { 2086 unsigned RH0 : 1; 2087 unsigned RH1 : 1; 2088 unsigned RH2 : 1; 2089 unsigned RH3 : 1; 2090 unsigned RH4 : 1; 2091 unsigned RH5 : 1; 2092 unsigned RH6 : 1; 2093 unsigned RH7 : 1; 2094 }; 2095 2096 struct 2097 { 2098 unsigned SEG47 : 1; 2099 unsigned SEG46 : 1; 2100 unsigned SEG45 : 1; 2101 unsigned SEG44 : 1; 2102 unsigned SEG40 : 1; 2103 unsigned SEG41 : 1; 2104 unsigned SEG42 : 1; 2105 unsigned SEG43 : 1; 2106 }; 2107 } __PORTHbits_t; 2108 2109 extern __at(0x0F87) volatile __PORTHbits_t PORTHbits; 2110 2111 #define _PORTH_RH0 0x01 2112 #define _PORTH_SEG47 0x01 2113 #define _PORTH_RH1 0x02 2114 #define _PORTH_SEG46 0x02 2115 #define _PORTH_RH2 0x04 2116 #define _PORTH_SEG45 0x04 2117 #define _PORTH_RH3 0x08 2118 #define _PORTH_SEG44 0x08 2119 #define _PORTH_RH4 0x10 2120 #define _PORTH_SEG40 0x10 2121 #define _PORTH_RH5 0x20 2122 #define _PORTH_SEG41 0x20 2123 #define _PORTH_RH6 0x40 2124 #define _PORTH_SEG42 0x40 2125 #define _PORTH_RH7 0x80 2126 #define _PORTH_SEG43 0x80 2127 2128 //============================================================================== 2129 2130 2131 //============================================================================== 2132 // PORTJ Bits 2133 2134 extern __at(0x0F88) __sfr PORTJ; 2135 2136 typedef union 2137 { 2138 struct 2139 { 2140 unsigned RJ0 : 1; 2141 unsigned RJ1 : 1; 2142 unsigned RJ2 : 1; 2143 unsigned RJ3 : 1; 2144 unsigned RJ4 : 1; 2145 unsigned RJ5 : 1; 2146 unsigned RJ6 : 1; 2147 unsigned RJ7 : 1; 2148 }; 2149 2150 struct 2151 { 2152 unsigned : 1; 2153 unsigned SEG33 : 1; 2154 unsigned SEG34 : 1; 2155 unsigned SEG35 : 1; 2156 unsigned SEG39 : 1; 2157 unsigned SEG38 : 1; 2158 unsigned SEG37 : 1; 2159 unsigned SEG36 : 1; 2160 }; 2161 } __PORTJbits_t; 2162 2163 extern __at(0x0F88) volatile __PORTJbits_t PORTJbits; 2164 2165 #define _PORTJ_RJ0 0x01 2166 #define _PORTJ_RJ1 0x02 2167 #define _PORTJ_SEG33 0x02 2168 #define _PORTJ_RJ2 0x04 2169 #define _PORTJ_SEG34 0x04 2170 #define _PORTJ_RJ3 0x08 2171 #define _PORTJ_SEG35 0x08 2172 #define _PORTJ_RJ4 0x10 2173 #define _PORTJ_SEG39 0x10 2174 #define _PORTJ_RJ5 0x20 2175 #define _PORTJ_SEG38 0x20 2176 #define _PORTJ_RJ6 0x40 2177 #define _PORTJ_SEG37 0x40 2178 #define _PORTJ_RJ7 0x80 2179 #define _PORTJ_SEG36 0x80 2180 2181 //============================================================================== 2182 2183 2184 //============================================================================== 2185 // LATA Bits 2186 2187 extern __at(0x0F89) __sfr LATA; 2188 2189 typedef struct 2190 { 2191 unsigned LATA0 : 1; 2192 unsigned LATA1 : 1; 2193 unsigned LATA2 : 1; 2194 unsigned LATA3 : 1; 2195 unsigned LATA4 : 1; 2196 unsigned LATA5 : 1; 2197 unsigned LATA6 : 1; 2198 unsigned LATA7 : 1; 2199 } __LATAbits_t; 2200 2201 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 2202 2203 #define _LATA0 0x01 2204 #define _LATA1 0x02 2205 #define _LATA2 0x04 2206 #define _LATA3 0x08 2207 #define _LATA4 0x10 2208 #define _LATA5 0x20 2209 #define _LATA6 0x40 2210 #define _LATA7 0x80 2211 2212 //============================================================================== 2213 2214 2215 //============================================================================== 2216 // LATB Bits 2217 2218 extern __at(0x0F8A) __sfr LATB; 2219 2220 typedef struct 2221 { 2222 unsigned LATB0 : 1; 2223 unsigned LATB1 : 1; 2224 unsigned LATB2 : 1; 2225 unsigned LATB3 : 1; 2226 unsigned LATB4 : 1; 2227 unsigned LATB5 : 1; 2228 unsigned LATB6 : 1; 2229 unsigned LATB7 : 1; 2230 } __LATBbits_t; 2231 2232 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 2233 2234 #define _LATB0 0x01 2235 #define _LATB1 0x02 2236 #define _LATB2 0x04 2237 #define _LATB3 0x08 2238 #define _LATB4 0x10 2239 #define _LATB5 0x20 2240 #define _LATB6 0x40 2241 #define _LATB7 0x80 2242 2243 //============================================================================== 2244 2245 2246 //============================================================================== 2247 // LATC Bits 2248 2249 extern __at(0x0F8B) __sfr LATC; 2250 2251 typedef struct 2252 { 2253 unsigned LATC0 : 1; 2254 unsigned LATC1 : 1; 2255 unsigned LATC2 : 1; 2256 unsigned LATC3 : 1; 2257 unsigned LATC4 : 1; 2258 unsigned LATC5 : 1; 2259 unsigned LATC6 : 1; 2260 unsigned LATC7 : 1; 2261 } __LATCbits_t; 2262 2263 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 2264 2265 #define _LATC0 0x01 2266 #define _LATC1 0x02 2267 #define _LATC2 0x04 2268 #define _LATC3 0x08 2269 #define _LATC4 0x10 2270 #define _LATC5 0x20 2271 #define _LATC6 0x40 2272 #define _LATC7 0x80 2273 2274 //============================================================================== 2275 2276 2277 //============================================================================== 2278 // LATD Bits 2279 2280 extern __at(0x0F8C) __sfr LATD; 2281 2282 typedef struct 2283 { 2284 unsigned LATD0 : 1; 2285 unsigned LATD1 : 1; 2286 unsigned LATD2 : 1; 2287 unsigned LATD3 : 1; 2288 unsigned LATD4 : 1; 2289 unsigned LATD5 : 1; 2290 unsigned LATD6 : 1; 2291 unsigned LATD7 : 1; 2292 } __LATDbits_t; 2293 2294 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 2295 2296 #define _LATD0 0x01 2297 #define _LATD1 0x02 2298 #define _LATD2 0x04 2299 #define _LATD3 0x08 2300 #define _LATD4 0x10 2301 #define _LATD5 0x20 2302 #define _LATD6 0x40 2303 #define _LATD7 0x80 2304 2305 //============================================================================== 2306 2307 2308 //============================================================================== 2309 // LATE Bits 2310 2311 extern __at(0x0F8D) __sfr LATE; 2312 2313 typedef struct 2314 { 2315 unsigned LATE0 : 1; 2316 unsigned LATE1 : 1; 2317 unsigned : 1; 2318 unsigned LATE3 : 1; 2319 unsigned LATE4 : 1; 2320 unsigned LATE5 : 1; 2321 unsigned LATE6 : 1; 2322 unsigned LATE7 : 1; 2323 } __LATEbits_t; 2324 2325 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 2326 2327 #define _LATE0 0x01 2328 #define _LATE1 0x02 2329 #define _LATE3 0x08 2330 #define _LATE4 0x10 2331 #define _LATE5 0x20 2332 #define _LATE6 0x40 2333 #define _LATE7 0x80 2334 2335 //============================================================================== 2336 2337 2338 //============================================================================== 2339 // LATF Bits 2340 2341 extern __at(0x0F8E) __sfr LATF; 2342 2343 typedef struct 2344 { 2345 unsigned : 1; 2346 unsigned LATF1 : 1; 2347 unsigned LATF2 : 1; 2348 unsigned LATF3 : 1; 2349 unsigned LATF4 : 1; 2350 unsigned LATF5 : 1; 2351 unsigned LATF6 : 1; 2352 unsigned LATF7 : 1; 2353 } __LATFbits_t; 2354 2355 extern __at(0x0F8E) volatile __LATFbits_t LATFbits; 2356 2357 #define _LATF1 0x02 2358 #define _LATF2 0x04 2359 #define _LATF3 0x08 2360 #define _LATF4 0x10 2361 #define _LATF5 0x20 2362 #define _LATF6 0x40 2363 #define _LATF7 0x80 2364 2365 //============================================================================== 2366 2367 2368 //============================================================================== 2369 // LATG Bits 2370 2371 extern __at(0x0F8F) __sfr LATG; 2372 2373 typedef union 2374 { 2375 struct 2376 { 2377 unsigned LATG0 : 1; 2378 unsigned LATG1 : 1; 2379 unsigned LATG2 : 1; 2380 unsigned LATG3 : 1; 2381 unsigned LATG4 : 1; 2382 unsigned : 1; 2383 unsigned U1OD : 1; 2384 unsigned U2OD : 1; 2385 }; 2386 2387 struct 2388 { 2389 unsigned LATG : 5; 2390 unsigned : 3; 2391 }; 2392 } __LATGbits_t; 2393 2394 extern __at(0x0F8F) volatile __LATGbits_t LATGbits; 2395 2396 #define _LATG0 0x01 2397 #define _LATG1 0x02 2398 #define _LATG2 0x04 2399 #define _LATG3 0x08 2400 #define _LATG4 0x10 2401 #define _U1OD 0x40 2402 #define _U2OD 0x80 2403 2404 //============================================================================== 2405 2406 2407 //============================================================================== 2408 // LATH Bits 2409 2410 extern __at(0x0F90) __sfr LATH; 2411 2412 typedef struct 2413 { 2414 unsigned LATH0 : 1; 2415 unsigned LATH1 : 1; 2416 unsigned LATH2 : 1; 2417 unsigned LATH3 : 1; 2418 unsigned LATH4 : 1; 2419 unsigned LATH5 : 1; 2420 unsigned LATH6 : 1; 2421 unsigned LATH7 : 1; 2422 } __LATHbits_t; 2423 2424 extern __at(0x0F90) volatile __LATHbits_t LATHbits; 2425 2426 #define _LATH0 0x01 2427 #define _LATH1 0x02 2428 #define _LATH2 0x04 2429 #define _LATH3 0x08 2430 #define _LATH4 0x10 2431 #define _LATH5 0x20 2432 #define _LATH6 0x40 2433 #define _LATH7 0x80 2434 2435 //============================================================================== 2436 2437 2438 //============================================================================== 2439 // LATJ Bits 2440 2441 extern __at(0x0F91) __sfr LATJ; 2442 2443 typedef struct 2444 { 2445 unsigned LATJ0 : 1; 2446 unsigned LATJ1 : 1; 2447 unsigned LATJ2 : 1; 2448 unsigned LATJ3 : 1; 2449 unsigned LATJ4 : 1; 2450 unsigned LATJ5 : 1; 2451 unsigned LATJ6 : 1; 2452 unsigned LATJ7 : 1; 2453 } __LATJbits_t; 2454 2455 extern __at(0x0F91) volatile __LATJbits_t LATJbits; 2456 2457 #define _LATJ0 0x01 2458 #define _LATJ1 0x02 2459 #define _LATJ2 0x04 2460 #define _LATJ3 0x08 2461 #define _LATJ4 0x10 2462 #define _LATJ5 0x20 2463 #define _LATJ6 0x40 2464 #define _LATJ7 0x80 2465 2466 //============================================================================== 2467 2468 2469 //============================================================================== 2470 // DDRA Bits 2471 2472 extern __at(0x0F92) __sfr DDRA; 2473 2474 typedef union 2475 { 2476 struct 2477 { 2478 unsigned TRISA0 : 1; 2479 unsigned TRISA1 : 1; 2480 unsigned TRISA2 : 1; 2481 unsigned TRISA3 : 1; 2482 unsigned TRISA4 : 1; 2483 unsigned TRISA5 : 1; 2484 unsigned TRISA6 : 1; 2485 unsigned TRISA7 : 1; 2486 }; 2487 2488 struct 2489 { 2490 unsigned RA0 : 1; 2491 unsigned RA1 : 1; 2492 unsigned RA2 : 1; 2493 unsigned RA3 : 1; 2494 unsigned RA4 : 1; 2495 unsigned RA5 : 1; 2496 unsigned RA6 : 1; 2497 unsigned RA7 : 1; 2498 }; 2499 } __DDRAbits_t; 2500 2501 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 2502 2503 #define _TRISA0 0x01 2504 #define _RA0 0x01 2505 #define _TRISA1 0x02 2506 #define _RA1 0x02 2507 #define _TRISA2 0x04 2508 #define _RA2 0x04 2509 #define _TRISA3 0x08 2510 #define _RA3 0x08 2511 #define _TRISA4 0x10 2512 #define _RA4 0x10 2513 #define _TRISA5 0x20 2514 #define _RA5 0x20 2515 #define _TRISA6 0x40 2516 #define _RA6 0x40 2517 #define _TRISA7 0x80 2518 #define _RA7 0x80 2519 2520 //============================================================================== 2521 2522 2523 //============================================================================== 2524 // TRISA Bits 2525 2526 extern __at(0x0F92) __sfr TRISA; 2527 2528 typedef union 2529 { 2530 struct 2531 { 2532 unsigned TRISA0 : 1; 2533 unsigned TRISA1 : 1; 2534 unsigned TRISA2 : 1; 2535 unsigned TRISA3 : 1; 2536 unsigned TRISA4 : 1; 2537 unsigned TRISA5 : 1; 2538 unsigned TRISA6 : 1; 2539 unsigned TRISA7 : 1; 2540 }; 2541 2542 struct 2543 { 2544 unsigned RA0 : 1; 2545 unsigned RA1 : 1; 2546 unsigned RA2 : 1; 2547 unsigned RA3 : 1; 2548 unsigned RA4 : 1; 2549 unsigned RA5 : 1; 2550 unsigned RA6 : 1; 2551 unsigned RA7 : 1; 2552 }; 2553 } __TRISAbits_t; 2554 2555 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 2556 2557 #define _TRISA_TRISA0 0x01 2558 #define _TRISA_RA0 0x01 2559 #define _TRISA_TRISA1 0x02 2560 #define _TRISA_RA1 0x02 2561 #define _TRISA_TRISA2 0x04 2562 #define _TRISA_RA2 0x04 2563 #define _TRISA_TRISA3 0x08 2564 #define _TRISA_RA3 0x08 2565 #define _TRISA_TRISA4 0x10 2566 #define _TRISA_RA4 0x10 2567 #define _TRISA_TRISA5 0x20 2568 #define _TRISA_RA5 0x20 2569 #define _TRISA_TRISA6 0x40 2570 #define _TRISA_RA6 0x40 2571 #define _TRISA_TRISA7 0x80 2572 #define _TRISA_RA7 0x80 2573 2574 //============================================================================== 2575 2576 2577 //============================================================================== 2578 // DDRB Bits 2579 2580 extern __at(0x0F93) __sfr DDRB; 2581 2582 typedef union 2583 { 2584 struct 2585 { 2586 unsigned TRISB0 : 1; 2587 unsigned TRISB1 : 1; 2588 unsigned TRISB2 : 1; 2589 unsigned TRISB3 : 1; 2590 unsigned TRISB4 : 1; 2591 unsigned TRISB5 : 1; 2592 unsigned TRISB6 : 1; 2593 unsigned TRISB7 : 1; 2594 }; 2595 2596 struct 2597 { 2598 unsigned RB0 : 1; 2599 unsigned RB1 : 1; 2600 unsigned RB2 : 1; 2601 unsigned RB3 : 1; 2602 unsigned RB4 : 1; 2603 unsigned RB5 : 1; 2604 unsigned RB6 : 1; 2605 unsigned RB7 : 1; 2606 }; 2607 } __DDRBbits_t; 2608 2609 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 2610 2611 #define _TRISB0 0x01 2612 #define _RB0 0x01 2613 #define _TRISB1 0x02 2614 #define _RB1 0x02 2615 #define _TRISB2 0x04 2616 #define _RB2 0x04 2617 #define _TRISB3 0x08 2618 #define _RB3 0x08 2619 #define _TRISB4 0x10 2620 #define _RB4 0x10 2621 #define _TRISB5 0x20 2622 #define _RB5 0x20 2623 #define _TRISB6 0x40 2624 #define _RB6 0x40 2625 #define _TRISB7 0x80 2626 #define _RB7 0x80 2627 2628 //============================================================================== 2629 2630 2631 //============================================================================== 2632 // TRISB Bits 2633 2634 extern __at(0x0F93) __sfr TRISB; 2635 2636 typedef union 2637 { 2638 struct 2639 { 2640 unsigned TRISB0 : 1; 2641 unsigned TRISB1 : 1; 2642 unsigned TRISB2 : 1; 2643 unsigned TRISB3 : 1; 2644 unsigned TRISB4 : 1; 2645 unsigned TRISB5 : 1; 2646 unsigned TRISB6 : 1; 2647 unsigned TRISB7 : 1; 2648 }; 2649 2650 struct 2651 { 2652 unsigned RB0 : 1; 2653 unsigned RB1 : 1; 2654 unsigned RB2 : 1; 2655 unsigned RB3 : 1; 2656 unsigned RB4 : 1; 2657 unsigned RB5 : 1; 2658 unsigned RB6 : 1; 2659 unsigned RB7 : 1; 2660 }; 2661 } __TRISBbits_t; 2662 2663 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 2664 2665 #define _TRISB_TRISB0 0x01 2666 #define _TRISB_RB0 0x01 2667 #define _TRISB_TRISB1 0x02 2668 #define _TRISB_RB1 0x02 2669 #define _TRISB_TRISB2 0x04 2670 #define _TRISB_RB2 0x04 2671 #define _TRISB_TRISB3 0x08 2672 #define _TRISB_RB3 0x08 2673 #define _TRISB_TRISB4 0x10 2674 #define _TRISB_RB4 0x10 2675 #define _TRISB_TRISB5 0x20 2676 #define _TRISB_RB5 0x20 2677 #define _TRISB_TRISB6 0x40 2678 #define _TRISB_RB6 0x40 2679 #define _TRISB_TRISB7 0x80 2680 #define _TRISB_RB7 0x80 2681 2682 //============================================================================== 2683 2684 2685 //============================================================================== 2686 // DDRC Bits 2687 2688 extern __at(0x0F94) __sfr DDRC; 2689 2690 typedef union 2691 { 2692 struct 2693 { 2694 unsigned TRISC0 : 1; 2695 unsigned TRISC1 : 1; 2696 unsigned TRISC2 : 1; 2697 unsigned TRISC3 : 1; 2698 unsigned TRISC4 : 1; 2699 unsigned TRISC5 : 1; 2700 unsigned TRISC6 : 1; 2701 unsigned TRISC7 : 1; 2702 }; 2703 2704 struct 2705 { 2706 unsigned RC0 : 1; 2707 unsigned RC1 : 1; 2708 unsigned RC2 : 1; 2709 unsigned RC3 : 1; 2710 unsigned RC4 : 1; 2711 unsigned RC5 : 1; 2712 unsigned RC6 : 1; 2713 unsigned RC7 : 1; 2714 }; 2715 } __DDRCbits_t; 2716 2717 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 2718 2719 #define _TRISC0 0x01 2720 #define _RC0 0x01 2721 #define _TRISC1 0x02 2722 #define _RC1 0x02 2723 #define _TRISC2 0x04 2724 #define _RC2 0x04 2725 #define _TRISC3 0x08 2726 #define _RC3 0x08 2727 #define _TRISC4 0x10 2728 #define _RC4 0x10 2729 #define _TRISC5 0x20 2730 #define _RC5 0x20 2731 #define _TRISC6 0x40 2732 #define _RC6 0x40 2733 #define _TRISC7 0x80 2734 #define _RC7 0x80 2735 2736 //============================================================================== 2737 2738 2739 //============================================================================== 2740 // TRISC Bits 2741 2742 extern __at(0x0F94) __sfr TRISC; 2743 2744 typedef union 2745 { 2746 struct 2747 { 2748 unsigned TRISC0 : 1; 2749 unsigned TRISC1 : 1; 2750 unsigned TRISC2 : 1; 2751 unsigned TRISC3 : 1; 2752 unsigned TRISC4 : 1; 2753 unsigned TRISC5 : 1; 2754 unsigned TRISC6 : 1; 2755 unsigned TRISC7 : 1; 2756 }; 2757 2758 struct 2759 { 2760 unsigned RC0 : 1; 2761 unsigned RC1 : 1; 2762 unsigned RC2 : 1; 2763 unsigned RC3 : 1; 2764 unsigned RC4 : 1; 2765 unsigned RC5 : 1; 2766 unsigned RC6 : 1; 2767 unsigned RC7 : 1; 2768 }; 2769 } __TRISCbits_t; 2770 2771 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 2772 2773 #define _TRISC_TRISC0 0x01 2774 #define _TRISC_RC0 0x01 2775 #define _TRISC_TRISC1 0x02 2776 #define _TRISC_RC1 0x02 2777 #define _TRISC_TRISC2 0x04 2778 #define _TRISC_RC2 0x04 2779 #define _TRISC_TRISC3 0x08 2780 #define _TRISC_RC3 0x08 2781 #define _TRISC_TRISC4 0x10 2782 #define _TRISC_RC4 0x10 2783 #define _TRISC_TRISC5 0x20 2784 #define _TRISC_RC5 0x20 2785 #define _TRISC_TRISC6 0x40 2786 #define _TRISC_RC6 0x40 2787 #define _TRISC_TRISC7 0x80 2788 #define _TRISC_RC7 0x80 2789 2790 //============================================================================== 2791 2792 2793 //============================================================================== 2794 // DDRD Bits 2795 2796 extern __at(0x0F95) __sfr DDRD; 2797 2798 typedef union 2799 { 2800 struct 2801 { 2802 unsigned TRISD0 : 1; 2803 unsigned TRISD1 : 1; 2804 unsigned TRISD2 : 1; 2805 unsigned TRISD3 : 1; 2806 unsigned TRISD4 : 1; 2807 unsigned TRISD5 : 1; 2808 unsigned TRISD6 : 1; 2809 unsigned TRISD7 : 1; 2810 }; 2811 2812 struct 2813 { 2814 unsigned RD0 : 1; 2815 unsigned RD1 : 1; 2816 unsigned RD2 : 1; 2817 unsigned RD3 : 1; 2818 unsigned RD4 : 1; 2819 unsigned RD5 : 1; 2820 unsigned RD6 : 1; 2821 unsigned RD7 : 1; 2822 }; 2823 } __DDRDbits_t; 2824 2825 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 2826 2827 #define _TRISD0 0x01 2828 #define _RD0 0x01 2829 #define _TRISD1 0x02 2830 #define _RD1 0x02 2831 #define _TRISD2 0x04 2832 #define _RD2 0x04 2833 #define _TRISD3 0x08 2834 #define _RD3 0x08 2835 #define _TRISD4 0x10 2836 #define _RD4 0x10 2837 #define _TRISD5 0x20 2838 #define _RD5 0x20 2839 #define _TRISD6 0x40 2840 #define _RD6 0x40 2841 #define _TRISD7 0x80 2842 #define _RD7 0x80 2843 2844 //============================================================================== 2845 2846 2847 //============================================================================== 2848 // TRISD Bits 2849 2850 extern __at(0x0F95) __sfr TRISD; 2851 2852 typedef union 2853 { 2854 struct 2855 { 2856 unsigned TRISD0 : 1; 2857 unsigned TRISD1 : 1; 2858 unsigned TRISD2 : 1; 2859 unsigned TRISD3 : 1; 2860 unsigned TRISD4 : 1; 2861 unsigned TRISD5 : 1; 2862 unsigned TRISD6 : 1; 2863 unsigned TRISD7 : 1; 2864 }; 2865 2866 struct 2867 { 2868 unsigned RD0 : 1; 2869 unsigned RD1 : 1; 2870 unsigned RD2 : 1; 2871 unsigned RD3 : 1; 2872 unsigned RD4 : 1; 2873 unsigned RD5 : 1; 2874 unsigned RD6 : 1; 2875 unsigned RD7 : 1; 2876 }; 2877 } __TRISDbits_t; 2878 2879 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 2880 2881 #define _TRISD_TRISD0 0x01 2882 #define _TRISD_RD0 0x01 2883 #define _TRISD_TRISD1 0x02 2884 #define _TRISD_RD1 0x02 2885 #define _TRISD_TRISD2 0x04 2886 #define _TRISD_RD2 0x04 2887 #define _TRISD_TRISD3 0x08 2888 #define _TRISD_RD3 0x08 2889 #define _TRISD_TRISD4 0x10 2890 #define _TRISD_RD4 0x10 2891 #define _TRISD_TRISD5 0x20 2892 #define _TRISD_RD5 0x20 2893 #define _TRISD_TRISD6 0x40 2894 #define _TRISD_RD6 0x40 2895 #define _TRISD_TRISD7 0x80 2896 #define _TRISD_RD7 0x80 2897 2898 //============================================================================== 2899 2900 2901 //============================================================================== 2902 // DDRE Bits 2903 2904 extern __at(0x0F96) __sfr DDRE; 2905 2906 typedef union 2907 { 2908 struct 2909 { 2910 unsigned TRISE0 : 1; 2911 unsigned TRISE1 : 1; 2912 unsigned : 1; 2913 unsigned TRISE3 : 1; 2914 unsigned TRISE4 : 1; 2915 unsigned TRISE5 : 1; 2916 unsigned TRISE6 : 1; 2917 unsigned TRISE7 : 1; 2918 }; 2919 2920 struct 2921 { 2922 unsigned RE0 : 1; 2923 unsigned RE1 : 1; 2924 unsigned : 1; 2925 unsigned RE3 : 1; 2926 unsigned RE4 : 1; 2927 unsigned RE5 : 1; 2928 unsigned RE6 : 1; 2929 unsigned RE7 : 1; 2930 }; 2931 } __DDREbits_t; 2932 2933 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 2934 2935 #define _TRISE0 0x01 2936 #define _RE0 0x01 2937 #define _TRISE1 0x02 2938 #define _RE1 0x02 2939 #define _TRISE3 0x08 2940 #define _RE3 0x08 2941 #define _TRISE4 0x10 2942 #define _RE4 0x10 2943 #define _TRISE5 0x20 2944 #define _RE5 0x20 2945 #define _TRISE6 0x40 2946 #define _RE6 0x40 2947 #define _TRISE7 0x80 2948 #define _RE7 0x80 2949 2950 //============================================================================== 2951 2952 2953 //============================================================================== 2954 // TRISE Bits 2955 2956 extern __at(0x0F96) __sfr TRISE; 2957 2958 typedef union 2959 { 2960 struct 2961 { 2962 unsigned TRISE0 : 1; 2963 unsigned TRISE1 : 1; 2964 unsigned : 1; 2965 unsigned TRISE3 : 1; 2966 unsigned TRISE4 : 1; 2967 unsigned TRISE5 : 1; 2968 unsigned TRISE6 : 1; 2969 unsigned TRISE7 : 1; 2970 }; 2971 2972 struct 2973 { 2974 unsigned RE0 : 1; 2975 unsigned RE1 : 1; 2976 unsigned : 1; 2977 unsigned RE3 : 1; 2978 unsigned RE4 : 1; 2979 unsigned RE5 : 1; 2980 unsigned RE6 : 1; 2981 unsigned RE7 : 1; 2982 }; 2983 } __TRISEbits_t; 2984 2985 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 2986 2987 #define _TRISE_TRISE0 0x01 2988 #define _TRISE_RE0 0x01 2989 #define _TRISE_TRISE1 0x02 2990 #define _TRISE_RE1 0x02 2991 #define _TRISE_TRISE3 0x08 2992 #define _TRISE_RE3 0x08 2993 #define _TRISE_TRISE4 0x10 2994 #define _TRISE_RE4 0x10 2995 #define _TRISE_TRISE5 0x20 2996 #define _TRISE_RE5 0x20 2997 #define _TRISE_TRISE6 0x40 2998 #define _TRISE_RE6 0x40 2999 #define _TRISE_TRISE7 0x80 3000 #define _TRISE_RE7 0x80 3001 3002 //============================================================================== 3003 3004 3005 //============================================================================== 3006 // DDRF Bits 3007 3008 extern __at(0x0F97) __sfr DDRF; 3009 3010 typedef union 3011 { 3012 struct 3013 { 3014 unsigned : 1; 3015 unsigned TRISF1 : 1; 3016 unsigned TRISF2 : 1; 3017 unsigned TRISF3 : 1; 3018 unsigned TRISF4 : 1; 3019 unsigned TRISF5 : 1; 3020 unsigned TRISF6 : 1; 3021 unsigned TRISF7 : 1; 3022 }; 3023 3024 struct 3025 { 3026 unsigned : 1; 3027 unsigned RF1 : 1; 3028 unsigned RF2 : 1; 3029 unsigned RF3 : 1; 3030 unsigned RF4 : 1; 3031 unsigned RF5 : 1; 3032 unsigned RF6 : 1; 3033 unsigned RF7 : 1; 3034 }; 3035 } __DDRFbits_t; 3036 3037 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits; 3038 3039 #define _TRISF1 0x02 3040 #define _RF1 0x02 3041 #define _TRISF2 0x04 3042 #define _RF2 0x04 3043 #define _TRISF3 0x08 3044 #define _RF3 0x08 3045 #define _TRISF4 0x10 3046 #define _RF4 0x10 3047 #define _TRISF5 0x20 3048 #define _RF5 0x20 3049 #define _TRISF6 0x40 3050 #define _RF6 0x40 3051 #define _TRISF7 0x80 3052 #define _RF7 0x80 3053 3054 //============================================================================== 3055 3056 3057 //============================================================================== 3058 // TRISF Bits 3059 3060 extern __at(0x0F97) __sfr TRISF; 3061 3062 typedef union 3063 { 3064 struct 3065 { 3066 unsigned : 1; 3067 unsigned TRISF1 : 1; 3068 unsigned TRISF2 : 1; 3069 unsigned TRISF3 : 1; 3070 unsigned TRISF4 : 1; 3071 unsigned TRISF5 : 1; 3072 unsigned TRISF6 : 1; 3073 unsigned TRISF7 : 1; 3074 }; 3075 3076 struct 3077 { 3078 unsigned : 1; 3079 unsigned RF1 : 1; 3080 unsigned RF2 : 1; 3081 unsigned RF3 : 1; 3082 unsigned RF4 : 1; 3083 unsigned RF5 : 1; 3084 unsigned RF6 : 1; 3085 unsigned RF7 : 1; 3086 }; 3087 } __TRISFbits_t; 3088 3089 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits; 3090 3091 #define _TRISF_TRISF1 0x02 3092 #define _TRISF_RF1 0x02 3093 #define _TRISF_TRISF2 0x04 3094 #define _TRISF_RF2 0x04 3095 #define _TRISF_TRISF3 0x08 3096 #define _TRISF_RF3 0x08 3097 #define _TRISF_TRISF4 0x10 3098 #define _TRISF_RF4 0x10 3099 #define _TRISF_TRISF5 0x20 3100 #define _TRISF_RF5 0x20 3101 #define _TRISF_TRISF6 0x40 3102 #define _TRISF_RF6 0x40 3103 #define _TRISF_TRISF7 0x80 3104 #define _TRISF_RF7 0x80 3105 3106 //============================================================================== 3107 3108 3109 //============================================================================== 3110 // DDRG Bits 3111 3112 extern __at(0x0F98) __sfr DDRG; 3113 3114 typedef union 3115 { 3116 struct 3117 { 3118 unsigned TRISG0 : 1; 3119 unsigned TRISG1 : 1; 3120 unsigned TRISG2 : 1; 3121 unsigned TRISG3 : 1; 3122 unsigned TRISG4 : 1; 3123 unsigned CCP1OD : 1; 3124 unsigned CCP2OD : 1; 3125 unsigned SPIOD : 1; 3126 }; 3127 3128 struct 3129 { 3130 unsigned RG0 : 1; 3131 unsigned RG1 : 1; 3132 unsigned RG2 : 1; 3133 unsigned RG3 : 1; 3134 unsigned RG4 : 1; 3135 unsigned : 1; 3136 unsigned : 1; 3137 unsigned : 1; 3138 }; 3139 3140 struct 3141 { 3142 unsigned RG : 5; 3143 unsigned : 3; 3144 }; 3145 3146 struct 3147 { 3148 unsigned TRISG : 5; 3149 unsigned : 3; 3150 }; 3151 } __DDRGbits_t; 3152 3153 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits; 3154 3155 #define _TRISG0 0x01 3156 #define _RG0 0x01 3157 #define _TRISG1 0x02 3158 #define _RG1 0x02 3159 #define _TRISG2 0x04 3160 #define _RG2 0x04 3161 #define _TRISG3 0x08 3162 #define _RG3 0x08 3163 #define _TRISG4 0x10 3164 #define _RG4 0x10 3165 #define _CCP1OD 0x20 3166 #define _CCP2OD 0x40 3167 #define _SPIOD 0x80 3168 3169 //============================================================================== 3170 3171 3172 //============================================================================== 3173 // TRISG Bits 3174 3175 extern __at(0x0F98) __sfr TRISG; 3176 3177 typedef union 3178 { 3179 struct 3180 { 3181 unsigned TRISG0 : 1; 3182 unsigned TRISG1 : 1; 3183 unsigned TRISG2 : 1; 3184 unsigned TRISG3 : 1; 3185 unsigned TRISG4 : 1; 3186 unsigned CCP1OD : 1; 3187 unsigned CCP2OD : 1; 3188 unsigned SPIOD : 1; 3189 }; 3190 3191 struct 3192 { 3193 unsigned RG0 : 1; 3194 unsigned RG1 : 1; 3195 unsigned RG2 : 1; 3196 unsigned RG3 : 1; 3197 unsigned RG4 : 1; 3198 unsigned : 1; 3199 unsigned : 1; 3200 unsigned : 1; 3201 }; 3202 3203 struct 3204 { 3205 unsigned TRISG : 5; 3206 unsigned : 3; 3207 }; 3208 3209 struct 3210 { 3211 unsigned RG : 5; 3212 unsigned : 3; 3213 }; 3214 } __TRISGbits_t; 3215 3216 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits; 3217 3218 #define _TRISG_TRISG0 0x01 3219 #define _TRISG_RG0 0x01 3220 #define _TRISG_TRISG1 0x02 3221 #define _TRISG_RG1 0x02 3222 #define _TRISG_TRISG2 0x04 3223 #define _TRISG_RG2 0x04 3224 #define _TRISG_TRISG3 0x08 3225 #define _TRISG_RG3 0x08 3226 #define _TRISG_TRISG4 0x10 3227 #define _TRISG_RG4 0x10 3228 #define _TRISG_CCP1OD 0x20 3229 #define _TRISG_CCP2OD 0x40 3230 #define _TRISG_SPIOD 0x80 3231 3232 //============================================================================== 3233 3234 3235 //============================================================================== 3236 // DDRH Bits 3237 3238 extern __at(0x0F99) __sfr DDRH; 3239 3240 typedef union 3241 { 3242 struct 3243 { 3244 unsigned TRISH0 : 1; 3245 unsigned TRISH1 : 1; 3246 unsigned TRISH2 : 1; 3247 unsigned TRISH3 : 1; 3248 unsigned TRISH4 : 1; 3249 unsigned TRISH5 : 1; 3250 unsigned TRISH6 : 1; 3251 unsigned TRISH7 : 1; 3252 }; 3253 3254 struct 3255 { 3256 unsigned RH0 : 1; 3257 unsigned RH1 : 1; 3258 unsigned RH2 : 1; 3259 unsigned RH3 : 1; 3260 unsigned RH4 : 1; 3261 unsigned RH5 : 1; 3262 unsigned RH6 : 1; 3263 unsigned RH7 : 1; 3264 }; 3265 } __DDRHbits_t; 3266 3267 extern __at(0x0F99) volatile __DDRHbits_t DDRHbits; 3268 3269 #define _TRISH0 0x01 3270 #define _RH0 0x01 3271 #define _TRISH1 0x02 3272 #define _RH1 0x02 3273 #define _TRISH2 0x04 3274 #define _RH2 0x04 3275 #define _TRISH3 0x08 3276 #define _RH3 0x08 3277 #define _TRISH4 0x10 3278 #define _RH4 0x10 3279 #define _TRISH5 0x20 3280 #define _RH5 0x20 3281 #define _TRISH6 0x40 3282 #define _RH6 0x40 3283 #define _TRISH7 0x80 3284 #define _RH7 0x80 3285 3286 //============================================================================== 3287 3288 3289 //============================================================================== 3290 // TRISH Bits 3291 3292 extern __at(0x0F99) __sfr TRISH; 3293 3294 typedef union 3295 { 3296 struct 3297 { 3298 unsigned TRISH0 : 1; 3299 unsigned TRISH1 : 1; 3300 unsigned TRISH2 : 1; 3301 unsigned TRISH3 : 1; 3302 unsigned TRISH4 : 1; 3303 unsigned TRISH5 : 1; 3304 unsigned TRISH6 : 1; 3305 unsigned TRISH7 : 1; 3306 }; 3307 3308 struct 3309 { 3310 unsigned RH0 : 1; 3311 unsigned RH1 : 1; 3312 unsigned RH2 : 1; 3313 unsigned RH3 : 1; 3314 unsigned RH4 : 1; 3315 unsigned RH5 : 1; 3316 unsigned RH6 : 1; 3317 unsigned RH7 : 1; 3318 }; 3319 } __TRISHbits_t; 3320 3321 extern __at(0x0F99) volatile __TRISHbits_t TRISHbits; 3322 3323 #define _TRISH_TRISH0 0x01 3324 #define _TRISH_RH0 0x01 3325 #define _TRISH_TRISH1 0x02 3326 #define _TRISH_RH1 0x02 3327 #define _TRISH_TRISH2 0x04 3328 #define _TRISH_RH2 0x04 3329 #define _TRISH_TRISH3 0x08 3330 #define _TRISH_RH3 0x08 3331 #define _TRISH_TRISH4 0x10 3332 #define _TRISH_RH4 0x10 3333 #define _TRISH_TRISH5 0x20 3334 #define _TRISH_RH5 0x20 3335 #define _TRISH_TRISH6 0x40 3336 #define _TRISH_RH6 0x40 3337 #define _TRISH_TRISH7 0x80 3338 #define _TRISH_RH7 0x80 3339 3340 //============================================================================== 3341 3342 3343 //============================================================================== 3344 // DDRJ Bits 3345 3346 extern __at(0x0F9A) __sfr DDRJ; 3347 3348 typedef union 3349 { 3350 struct 3351 { 3352 unsigned TRISJ0 : 1; 3353 unsigned TRISJ1 : 1; 3354 unsigned TRISJ2 : 1; 3355 unsigned TRISJ3 : 1; 3356 unsigned TRISJ4 : 1; 3357 unsigned TRISJ5 : 1; 3358 unsigned TRISJ6 : 1; 3359 unsigned TRISJ7 : 1; 3360 }; 3361 3362 struct 3363 { 3364 unsigned RJ0 : 1; 3365 unsigned RJ1 : 1; 3366 unsigned RJ2 : 1; 3367 unsigned RJ3 : 1; 3368 unsigned RJ4 : 1; 3369 unsigned RJ5 : 1; 3370 unsigned RJ6 : 1; 3371 unsigned RJ7 : 1; 3372 }; 3373 } __DDRJbits_t; 3374 3375 extern __at(0x0F9A) volatile __DDRJbits_t DDRJbits; 3376 3377 #define _TRISJ0 0x01 3378 #define _RJ0 0x01 3379 #define _TRISJ1 0x02 3380 #define _RJ1 0x02 3381 #define _TRISJ2 0x04 3382 #define _RJ2 0x04 3383 #define _TRISJ3 0x08 3384 #define _RJ3 0x08 3385 #define _TRISJ4 0x10 3386 #define _RJ4 0x10 3387 #define _TRISJ5 0x20 3388 #define _RJ5 0x20 3389 #define _TRISJ6 0x40 3390 #define _RJ6 0x40 3391 #define _TRISJ7 0x80 3392 #define _RJ7 0x80 3393 3394 //============================================================================== 3395 3396 3397 //============================================================================== 3398 // TRISJ Bits 3399 3400 extern __at(0x0F9A) __sfr TRISJ; 3401 3402 typedef union 3403 { 3404 struct 3405 { 3406 unsigned TRISJ0 : 1; 3407 unsigned TRISJ1 : 1; 3408 unsigned TRISJ2 : 1; 3409 unsigned TRISJ3 : 1; 3410 unsigned TRISJ4 : 1; 3411 unsigned TRISJ5 : 1; 3412 unsigned TRISJ6 : 1; 3413 unsigned TRISJ7 : 1; 3414 }; 3415 3416 struct 3417 { 3418 unsigned RJ0 : 1; 3419 unsigned RJ1 : 1; 3420 unsigned RJ2 : 1; 3421 unsigned RJ3 : 1; 3422 unsigned RJ4 : 1; 3423 unsigned RJ5 : 1; 3424 unsigned RJ6 : 1; 3425 unsigned RJ7 : 1; 3426 }; 3427 } __TRISJbits_t; 3428 3429 extern __at(0x0F9A) volatile __TRISJbits_t TRISJbits; 3430 3431 #define _TRISJ_TRISJ0 0x01 3432 #define _TRISJ_RJ0 0x01 3433 #define _TRISJ_TRISJ1 0x02 3434 #define _TRISJ_RJ1 0x02 3435 #define _TRISJ_TRISJ2 0x04 3436 #define _TRISJ_RJ2 0x04 3437 #define _TRISJ_TRISJ3 0x08 3438 #define _TRISJ_RJ3 0x08 3439 #define _TRISJ_TRISJ4 0x10 3440 #define _TRISJ_RJ4 0x10 3441 #define _TRISJ_TRISJ5 0x20 3442 #define _TRISJ_RJ5 0x20 3443 #define _TRISJ_TRISJ6 0x40 3444 #define _TRISJ_RJ6 0x40 3445 #define _TRISJ_TRISJ7 0x80 3446 #define _TRISJ_RJ7 0x80 3447 3448 //============================================================================== 3449 3450 3451 //============================================================================== 3452 // OSCTUNE Bits 3453 3454 extern __at(0x0F9B) __sfr OSCTUNE; 3455 3456 typedef union 3457 { 3458 struct 3459 { 3460 unsigned TUN0 : 1; 3461 unsigned TUN1 : 1; 3462 unsigned TUN2 : 1; 3463 unsigned TUN3 : 1; 3464 unsigned TUN4 : 1; 3465 unsigned TUN5 : 1; 3466 unsigned PLLEN : 1; 3467 unsigned INTSRC : 1; 3468 }; 3469 3470 struct 3471 { 3472 unsigned TUN : 6; 3473 unsigned : 2; 3474 }; 3475 } __OSCTUNEbits_t; 3476 3477 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 3478 3479 #define _TUN0 0x01 3480 #define _TUN1 0x02 3481 #define _TUN2 0x04 3482 #define _TUN3 0x08 3483 #define _TUN4 0x10 3484 #define _TUN5 0x20 3485 #define _PLLEN 0x40 3486 #define _INTSRC 0x80 3487 3488 //============================================================================== 3489 3490 3491 //============================================================================== 3492 // PIE1 Bits 3493 3494 extern __at(0x0F9D) __sfr PIE1; 3495 3496 typedef union 3497 { 3498 struct 3499 { 3500 unsigned TMR1IE : 1; 3501 unsigned TMR2IE : 1; 3502 unsigned : 1; 3503 unsigned SSPIE : 1; 3504 unsigned TX1IE : 1; 3505 unsigned RC1IE : 1; 3506 unsigned ADIE : 1; 3507 unsigned : 1; 3508 }; 3509 3510 struct 3511 { 3512 unsigned : 1; 3513 unsigned : 1; 3514 unsigned : 1; 3515 unsigned SSP1IE : 1; 3516 unsigned TXIE : 1; 3517 unsigned RCIE : 1; 3518 unsigned : 1; 3519 unsigned : 1; 3520 }; 3521 } __PIE1bits_t; 3522 3523 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 3524 3525 #define _TMR1IE 0x01 3526 #define _TMR2IE 0x02 3527 #define _SSPIE 0x08 3528 #define _SSP1IE 0x08 3529 #define _TX1IE 0x10 3530 #define _TXIE 0x10 3531 #define _RC1IE 0x20 3532 #define _RCIE 0x20 3533 #define _ADIE 0x40 3534 3535 //============================================================================== 3536 3537 3538 //============================================================================== 3539 // PIR1 Bits 3540 3541 extern __at(0x0F9E) __sfr PIR1; 3542 3543 typedef union 3544 { 3545 struct 3546 { 3547 unsigned TMR1IF : 1; 3548 unsigned TMR2IF : 1; 3549 unsigned : 1; 3550 unsigned SSPIF : 1; 3551 unsigned TX1IF : 1; 3552 unsigned RC1IF : 1; 3553 unsigned ADIF : 1; 3554 unsigned : 1; 3555 }; 3556 3557 struct 3558 { 3559 unsigned : 1; 3560 unsigned : 1; 3561 unsigned : 1; 3562 unsigned SSP1IF : 1; 3563 unsigned TXIF : 1; 3564 unsigned RCIF : 1; 3565 unsigned : 1; 3566 unsigned : 1; 3567 }; 3568 } __PIR1bits_t; 3569 3570 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 3571 3572 #define _TMR1IF 0x01 3573 #define _TMR2IF 0x02 3574 #define _SSPIF 0x08 3575 #define _SSP1IF 0x08 3576 #define _TX1IF 0x10 3577 #define _TXIF 0x10 3578 #define _RC1IF 0x20 3579 #define _RCIF 0x20 3580 #define _ADIF 0x40 3581 3582 //============================================================================== 3583 3584 3585 //============================================================================== 3586 // IPR1 Bits 3587 3588 extern __at(0x0F9F) __sfr IPR1; 3589 3590 typedef union 3591 { 3592 struct 3593 { 3594 unsigned TMR1IP : 1; 3595 unsigned TMR2IP : 1; 3596 unsigned : 1; 3597 unsigned SSPIP : 1; 3598 unsigned TX1IP : 1; 3599 unsigned RC1IP : 1; 3600 unsigned ADIP : 1; 3601 unsigned : 1; 3602 }; 3603 3604 struct 3605 { 3606 unsigned : 1; 3607 unsigned : 1; 3608 unsigned : 1; 3609 unsigned SSP1IP : 1; 3610 unsigned TXIP : 1; 3611 unsigned RCIP : 1; 3612 unsigned : 1; 3613 unsigned : 1; 3614 }; 3615 } __IPR1bits_t; 3616 3617 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 3618 3619 #define _TMR1IP 0x01 3620 #define _TMR2IP 0x02 3621 #define _SSPIP 0x08 3622 #define _SSP1IP 0x08 3623 #define _TX1IP 0x10 3624 #define _TXIP 0x10 3625 #define _RC1IP 0x20 3626 #define _RCIP 0x20 3627 #define _ADIP 0x40 3628 3629 //============================================================================== 3630 3631 3632 //============================================================================== 3633 // PIE2 Bits 3634 3635 extern __at(0x0FA0) __sfr PIE2; 3636 3637 typedef union 3638 { 3639 struct 3640 { 3641 unsigned : 1; 3642 unsigned TMR3IE : 1; 3643 unsigned LVDIE : 1; 3644 unsigned BCLIE : 1; 3645 unsigned : 1; 3646 unsigned : 1; 3647 unsigned CMIE : 1; 3648 unsigned OSCFIE : 1; 3649 }; 3650 3651 struct 3652 { 3653 unsigned : 1; 3654 unsigned : 1; 3655 unsigned : 1; 3656 unsigned BCL1IE : 1; 3657 unsigned : 1; 3658 unsigned : 1; 3659 unsigned : 1; 3660 unsigned : 1; 3661 }; 3662 } __PIE2bits_t; 3663 3664 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 3665 3666 #define _TMR3IE 0x02 3667 #define _LVDIE 0x04 3668 #define _BCLIE 0x08 3669 #define _BCL1IE 0x08 3670 #define _CMIE 0x40 3671 #define _OSCFIE 0x80 3672 3673 //============================================================================== 3674 3675 3676 //============================================================================== 3677 // PIR2 Bits 3678 3679 extern __at(0x0FA1) __sfr PIR2; 3680 3681 typedef union 3682 { 3683 struct 3684 { 3685 unsigned : 1; 3686 unsigned TMR3IF : 1; 3687 unsigned LVDIF : 1; 3688 unsigned BCLIF : 1; 3689 unsigned : 1; 3690 unsigned : 1; 3691 unsigned CMIF : 1; 3692 unsigned OSCFIF : 1; 3693 }; 3694 3695 struct 3696 { 3697 unsigned : 1; 3698 unsigned : 1; 3699 unsigned : 1; 3700 unsigned BCL1IF : 1; 3701 unsigned : 1; 3702 unsigned : 1; 3703 unsigned : 1; 3704 unsigned : 1; 3705 }; 3706 } __PIR2bits_t; 3707 3708 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 3709 3710 #define _TMR3IF 0x02 3711 #define _LVDIF 0x04 3712 #define _BCLIF 0x08 3713 #define _BCL1IF 0x08 3714 #define _CMIF 0x40 3715 #define _OSCFIF 0x80 3716 3717 //============================================================================== 3718 3719 3720 //============================================================================== 3721 // IPR2 Bits 3722 3723 extern __at(0x0FA2) __sfr IPR2; 3724 3725 typedef union 3726 { 3727 struct 3728 { 3729 unsigned : 1; 3730 unsigned TMR3IP : 1; 3731 unsigned LVDIP : 1; 3732 unsigned BCLIP : 1; 3733 unsigned : 1; 3734 unsigned : 1; 3735 unsigned CMIP : 1; 3736 unsigned OSCFIP : 1; 3737 }; 3738 3739 struct 3740 { 3741 unsigned : 1; 3742 unsigned : 1; 3743 unsigned : 1; 3744 unsigned BCL1IP : 1; 3745 unsigned : 1; 3746 unsigned : 1; 3747 unsigned : 1; 3748 unsigned : 1; 3749 }; 3750 } __IPR2bits_t; 3751 3752 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 3753 3754 #define _TMR3IP 0x02 3755 #define _LVDIP 0x04 3756 #define _BCLIP 0x08 3757 #define _BCL1IP 0x08 3758 #define _CMIP 0x40 3759 #define _OSCFIP 0x80 3760 3761 //============================================================================== 3762 3763 3764 //============================================================================== 3765 // PIE3 Bits 3766 3767 extern __at(0x0FA3) __sfr PIE3; 3768 3769 typedef struct 3770 { 3771 unsigned : 1; 3772 unsigned CCP1IE : 1; 3773 unsigned CCP2IE : 1; 3774 unsigned : 1; 3775 unsigned TX2IE : 1; 3776 unsigned RC2IE : 1; 3777 unsigned LCDIE : 1; 3778 unsigned : 1; 3779 } __PIE3bits_t; 3780 3781 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 3782 3783 #define _CCP1IE 0x02 3784 #define _CCP2IE 0x04 3785 #define _TX2IE 0x10 3786 #define _RC2IE 0x20 3787 #define _LCDIE 0x40 3788 3789 //============================================================================== 3790 3791 3792 //============================================================================== 3793 // PIR3 Bits 3794 3795 extern __at(0x0FA4) __sfr PIR3; 3796 3797 typedef struct 3798 { 3799 unsigned : 1; 3800 unsigned CCP1IF : 1; 3801 unsigned CCP2IF : 1; 3802 unsigned : 1; 3803 unsigned TX2IF : 1; 3804 unsigned RC2IF : 1; 3805 unsigned LCDIF : 1; 3806 unsigned : 1; 3807 } __PIR3bits_t; 3808 3809 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 3810 3811 #define _CCP1IF 0x02 3812 #define _CCP2IF 0x04 3813 #define _TX2IF 0x10 3814 #define _RC2IF 0x20 3815 #define _LCDIF 0x40 3816 3817 //============================================================================== 3818 3819 3820 //============================================================================== 3821 // IPR3 Bits 3822 3823 extern __at(0x0FA5) __sfr IPR3; 3824 3825 typedef struct 3826 { 3827 unsigned : 1; 3828 unsigned CCP1IP : 1; 3829 unsigned CCP2IP : 1; 3830 unsigned : 1; 3831 unsigned TX2IP : 1; 3832 unsigned RC2IP : 1; 3833 unsigned LCDIP : 1; 3834 unsigned : 1; 3835 } __IPR3bits_t; 3836 3837 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 3838 3839 #define _CCP1IP 0x02 3840 #define _CCP2IP 0x04 3841 #define _TX2IP 0x10 3842 #define _RC2IP 0x20 3843 #define _LCDIP 0x40 3844 3845 //============================================================================== 3846 3847 3848 //============================================================================== 3849 // EECON1 Bits 3850 3851 extern __at(0x0FA6) __sfr EECON1; 3852 3853 typedef struct 3854 { 3855 unsigned : 1; 3856 unsigned WR : 1; 3857 unsigned WREN : 1; 3858 unsigned WRERR : 1; 3859 unsigned FREE : 1; 3860 unsigned : 1; 3861 unsigned : 1; 3862 unsigned : 1; 3863 } __EECON1bits_t; 3864 3865 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 3866 3867 #define _WR 0x02 3868 #define _WREN 0x04 3869 #define _WRERR 0x08 3870 #define _FREE 0x10 3871 3872 //============================================================================== 3873 3874 extern __at(0x0FA7) __sfr EECON2; 3875 3876 //============================================================================== 3877 // LCDCON Bits 3878 3879 extern __at(0x0FA8) __sfr LCDCON; 3880 3881 typedef union 3882 { 3883 struct 3884 { 3885 unsigned LMUX0 : 1; 3886 unsigned LMUX1 : 1; 3887 unsigned LCDCS0 : 1; 3888 unsigned LCDCS1 : 1; 3889 unsigned : 1; 3890 unsigned WERR : 1; 3891 unsigned SLPEN : 1; 3892 unsigned LCDEN : 1; 3893 }; 3894 3895 struct 3896 { 3897 unsigned : 1; 3898 unsigned : 1; 3899 unsigned CS0 : 1; 3900 unsigned CS1 : 1; 3901 unsigned : 1; 3902 unsigned LCDWERR : 1; 3903 unsigned LCDSLPEN : 1; 3904 unsigned : 1; 3905 }; 3906 3907 struct 3908 { 3909 unsigned LMUX : 2; 3910 unsigned : 6; 3911 }; 3912 3913 struct 3914 { 3915 unsigned : 2; 3916 unsigned LCDCS : 2; 3917 unsigned : 4; 3918 }; 3919 3920 struct 3921 { 3922 unsigned : 2; 3923 unsigned CS : 2; 3924 unsigned : 4; 3925 }; 3926 } __LCDCONbits_t; 3927 3928 extern __at(0x0FA8) volatile __LCDCONbits_t LCDCONbits; 3929 3930 #define _LMUX0 0x01 3931 #define _LMUX1 0x02 3932 #define _LCDCS0 0x04 3933 #define _CS0 0x04 3934 #define _LCDCS1 0x08 3935 #define _CS1 0x08 3936 #define _WERR 0x20 3937 #define _LCDWERR 0x20 3938 #define _SLPEN 0x40 3939 #define _LCDSLPEN 0x40 3940 #define _LCDEN 0x80 3941 3942 //============================================================================== 3943 3944 3945 //============================================================================== 3946 // LCDSE0 Bits 3947 3948 extern __at(0x0FA9) __sfr LCDSE0; 3949 3950 typedef union 3951 { 3952 struct 3953 { 3954 unsigned SE0 : 1; 3955 unsigned SE1 : 1; 3956 unsigned SE2 : 1; 3957 unsigned SE3 : 1; 3958 unsigned SE4 : 1; 3959 unsigned SE5 : 1; 3960 unsigned SE6 : 1; 3961 unsigned SE7 : 1; 3962 }; 3963 3964 struct 3965 { 3966 unsigned SEGEN0 : 1; 3967 unsigned SEGEN1 : 1; 3968 unsigned SEGEN2 : 1; 3969 unsigned SEGEN3 : 1; 3970 unsigned SEGEN4 : 1; 3971 unsigned SEGEN5 : 1; 3972 unsigned SEGEN6 : 1; 3973 unsigned SEGEN7 : 1; 3974 }; 3975 3976 struct 3977 { 3978 unsigned SE00 : 1; 3979 unsigned SE01 : 1; 3980 unsigned SE02 : 1; 3981 unsigned SE03 : 1; 3982 unsigned SE04 : 1; 3983 unsigned SE05 : 1; 3984 unsigned SE06 : 1; 3985 unsigned SE07 : 1; 3986 }; 3987 } __LCDSE0bits_t; 3988 3989 extern __at(0x0FA9) volatile __LCDSE0bits_t LCDSE0bits; 3990 3991 #define _SE0 0x01 3992 #define _SEGEN0 0x01 3993 #define _SE00 0x01 3994 #define _SE1 0x02 3995 #define _SEGEN1 0x02 3996 #define _SE01 0x02 3997 #define _SE2 0x04 3998 #define _SEGEN2 0x04 3999 #define _SE02 0x04 4000 #define _SE3 0x08 4001 #define _SEGEN3 0x08 4002 #define _SE03 0x08 4003 #define _SE4 0x10 4004 #define _SEGEN4 0x10 4005 #define _SE04 0x10 4006 #define _SE5 0x20 4007 #define _SEGEN5 0x20 4008 #define _SE05 0x20 4009 #define _SE6 0x40 4010 #define _SEGEN6 0x40 4011 #define _SE06 0x40 4012 #define _SE7 0x80 4013 #define _SEGEN7 0x80 4014 #define _SE07 0x80 4015 4016 //============================================================================== 4017 4018 4019 //============================================================================== 4020 // LCDPS Bits 4021 4022 extern __at(0x0FAA) __sfr LCDPS; 4023 4024 typedef union 4025 { 4026 struct 4027 { 4028 unsigned LCDPS0 : 1; 4029 unsigned LCDPS1 : 1; 4030 unsigned LCDPS2 : 1; 4031 unsigned LCDPS3 : 1; 4032 unsigned WA : 1; 4033 unsigned LCDA : 1; 4034 unsigned BIASMD : 1; 4035 unsigned WFT : 1; 4036 }; 4037 4038 struct 4039 { 4040 unsigned LP0 : 1; 4041 unsigned LP1 : 1; 4042 unsigned LP2 : 1; 4043 unsigned LP3 : 1; 4044 unsigned : 1; 4045 unsigned : 1; 4046 unsigned : 1; 4047 unsigned : 1; 4048 }; 4049 4050 struct 4051 { 4052 unsigned LCDPS : 4; 4053 unsigned : 4; 4054 }; 4055 4056 struct 4057 { 4058 unsigned LP : 4; 4059 unsigned : 4; 4060 }; 4061 } __LCDPSbits_t; 4062 4063 extern __at(0x0FAA) volatile __LCDPSbits_t LCDPSbits; 4064 4065 #define _LCDPS0 0x01 4066 #define _LP0 0x01 4067 #define _LCDPS1 0x02 4068 #define _LP1 0x02 4069 #define _LCDPS2 0x04 4070 #define _LP2 0x04 4071 #define _LCDPS3 0x08 4072 #define _LP3 0x08 4073 #define _WA 0x10 4074 #define _LCDA 0x20 4075 #define _BIASMD 0x40 4076 #define _WFT 0x80 4077 4078 //============================================================================== 4079 4080 4081 //============================================================================== 4082 // RCSTA Bits 4083 4084 extern __at(0x0FAB) __sfr RCSTA; 4085 4086 typedef union 4087 { 4088 struct 4089 { 4090 unsigned RX9D : 1; 4091 unsigned OERR : 1; 4092 unsigned FERR : 1; 4093 unsigned ADDEN : 1; 4094 unsigned CREN : 1; 4095 unsigned SREN : 1; 4096 unsigned RX9 : 1; 4097 unsigned SPEN : 1; 4098 }; 4099 4100 struct 4101 { 4102 unsigned RCD8 : 1; 4103 unsigned OERR1 : 1; 4104 unsigned FERR1 : 1; 4105 unsigned ADDEN1 : 1; 4106 unsigned CREN1 : 1; 4107 unsigned SREN1 : 1; 4108 unsigned RC9 : 1; 4109 unsigned SPEN1 : 1; 4110 }; 4111 4112 struct 4113 { 4114 unsigned RX9D1 : 1; 4115 unsigned : 1; 4116 unsigned : 1; 4117 unsigned : 1; 4118 unsigned : 1; 4119 unsigned : 1; 4120 unsigned NOT_RC8 : 1; 4121 unsigned : 1; 4122 }; 4123 4124 struct 4125 { 4126 unsigned : 1; 4127 unsigned : 1; 4128 unsigned : 1; 4129 unsigned : 1; 4130 unsigned : 1; 4131 unsigned : 1; 4132 unsigned RC8_9 : 1; 4133 unsigned : 1; 4134 }; 4135 4136 struct 4137 { 4138 unsigned : 1; 4139 unsigned : 1; 4140 unsigned : 1; 4141 unsigned : 1; 4142 unsigned : 1; 4143 unsigned : 1; 4144 unsigned RX91 : 1; 4145 unsigned : 1; 4146 }; 4147 } __RCSTAbits_t; 4148 4149 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 4150 4151 #define _RX9D 0x01 4152 #define _RCD8 0x01 4153 #define _RX9D1 0x01 4154 #define _OERR 0x02 4155 #define _OERR1 0x02 4156 #define _FERR 0x04 4157 #define _FERR1 0x04 4158 #define _ADDEN 0x08 4159 #define _ADDEN1 0x08 4160 #define _CREN 0x10 4161 #define _CREN1 0x10 4162 #define _SREN 0x20 4163 #define _SREN1 0x20 4164 #define _RX9 0x40 4165 #define _RC9 0x40 4166 #define _NOT_RC8 0x40 4167 #define _RC8_9 0x40 4168 #define _RX91 0x40 4169 #define _SPEN 0x80 4170 #define _SPEN1 0x80 4171 4172 //============================================================================== 4173 4174 4175 //============================================================================== 4176 // RCSTA1 Bits 4177 4178 extern __at(0x0FAB) __sfr RCSTA1; 4179 4180 typedef union 4181 { 4182 struct 4183 { 4184 unsigned RX9D : 1; 4185 unsigned OERR : 1; 4186 unsigned FERR : 1; 4187 unsigned ADDEN : 1; 4188 unsigned CREN : 1; 4189 unsigned SREN : 1; 4190 unsigned RX9 : 1; 4191 unsigned SPEN : 1; 4192 }; 4193 4194 struct 4195 { 4196 unsigned RCD8 : 1; 4197 unsigned OERR1 : 1; 4198 unsigned FERR1 : 1; 4199 unsigned ADDEN1 : 1; 4200 unsigned CREN1 : 1; 4201 unsigned SREN1 : 1; 4202 unsigned RC9 : 1; 4203 unsigned SPEN1 : 1; 4204 }; 4205 4206 struct 4207 { 4208 unsigned RX9D1 : 1; 4209 unsigned : 1; 4210 unsigned : 1; 4211 unsigned : 1; 4212 unsigned : 1; 4213 unsigned : 1; 4214 unsigned NOT_RC8 : 1; 4215 unsigned : 1; 4216 }; 4217 4218 struct 4219 { 4220 unsigned : 1; 4221 unsigned : 1; 4222 unsigned : 1; 4223 unsigned : 1; 4224 unsigned : 1; 4225 unsigned : 1; 4226 unsigned RC8_9 : 1; 4227 unsigned : 1; 4228 }; 4229 4230 struct 4231 { 4232 unsigned : 1; 4233 unsigned : 1; 4234 unsigned : 1; 4235 unsigned : 1; 4236 unsigned : 1; 4237 unsigned : 1; 4238 unsigned RX91 : 1; 4239 unsigned : 1; 4240 }; 4241 } __RCSTA1bits_t; 4242 4243 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits; 4244 4245 #define _RCSTA1_RX9D 0x01 4246 #define _RCSTA1_RCD8 0x01 4247 #define _RCSTA1_RX9D1 0x01 4248 #define _RCSTA1_OERR 0x02 4249 #define _RCSTA1_OERR1 0x02 4250 #define _RCSTA1_FERR 0x04 4251 #define _RCSTA1_FERR1 0x04 4252 #define _RCSTA1_ADDEN 0x08 4253 #define _RCSTA1_ADDEN1 0x08 4254 #define _RCSTA1_CREN 0x10 4255 #define _RCSTA1_CREN1 0x10 4256 #define _RCSTA1_SREN 0x20 4257 #define _RCSTA1_SREN1 0x20 4258 #define _RCSTA1_RX9 0x40 4259 #define _RCSTA1_RC9 0x40 4260 #define _RCSTA1_NOT_RC8 0x40 4261 #define _RCSTA1_RC8_9 0x40 4262 #define _RCSTA1_RX91 0x40 4263 #define _RCSTA1_SPEN 0x80 4264 #define _RCSTA1_SPEN1 0x80 4265 4266 //============================================================================== 4267 4268 4269 //============================================================================== 4270 // TXSTA Bits 4271 4272 extern __at(0x0FAC) __sfr TXSTA; 4273 4274 typedef union 4275 { 4276 struct 4277 { 4278 unsigned TX9D : 1; 4279 unsigned TRMT : 1; 4280 unsigned BRGH : 1; 4281 unsigned SENDB : 1; 4282 unsigned SYNC : 1; 4283 unsigned TXEN : 1; 4284 unsigned TX9 : 1; 4285 unsigned CSRC : 1; 4286 }; 4287 4288 struct 4289 { 4290 unsigned TXD8 : 1; 4291 unsigned TRMT1 : 1; 4292 unsigned BRGH1 : 1; 4293 unsigned SENDB1 : 1; 4294 unsigned SYNC1 : 1; 4295 unsigned TXEN1 : 1; 4296 unsigned TX8_9 : 1; 4297 unsigned CSRC1 : 1; 4298 }; 4299 4300 struct 4301 { 4302 unsigned TX9D1 : 1; 4303 unsigned : 1; 4304 unsigned : 1; 4305 unsigned : 1; 4306 unsigned : 1; 4307 unsigned : 1; 4308 unsigned NOT_TX8 : 1; 4309 unsigned : 1; 4310 }; 4311 4312 struct 4313 { 4314 unsigned : 1; 4315 unsigned : 1; 4316 unsigned : 1; 4317 unsigned : 1; 4318 unsigned : 1; 4319 unsigned : 1; 4320 unsigned TX91 : 1; 4321 unsigned : 1; 4322 }; 4323 } __TXSTAbits_t; 4324 4325 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 4326 4327 #define _TX9D 0x01 4328 #define _TXD8 0x01 4329 #define _TX9D1 0x01 4330 #define _TRMT 0x02 4331 #define _TRMT1 0x02 4332 #define _BRGH 0x04 4333 #define _BRGH1 0x04 4334 #define _SENDB 0x08 4335 #define _SENDB1 0x08 4336 #define _SYNC 0x10 4337 #define _SYNC1 0x10 4338 #define _TXEN 0x20 4339 #define _TXEN1 0x20 4340 #define _TX9 0x40 4341 #define _TX8_9 0x40 4342 #define _NOT_TX8 0x40 4343 #define _TX91 0x40 4344 #define _CSRC 0x80 4345 #define _CSRC1 0x80 4346 4347 //============================================================================== 4348 4349 4350 //============================================================================== 4351 // TXSTA1 Bits 4352 4353 extern __at(0x0FAC) __sfr TXSTA1; 4354 4355 typedef union 4356 { 4357 struct 4358 { 4359 unsigned TX9D : 1; 4360 unsigned TRMT : 1; 4361 unsigned BRGH : 1; 4362 unsigned SENDB : 1; 4363 unsigned SYNC : 1; 4364 unsigned TXEN : 1; 4365 unsigned TX9 : 1; 4366 unsigned CSRC : 1; 4367 }; 4368 4369 struct 4370 { 4371 unsigned TXD8 : 1; 4372 unsigned TRMT1 : 1; 4373 unsigned BRGH1 : 1; 4374 unsigned SENDB1 : 1; 4375 unsigned SYNC1 : 1; 4376 unsigned TXEN1 : 1; 4377 unsigned TX8_9 : 1; 4378 unsigned CSRC1 : 1; 4379 }; 4380 4381 struct 4382 { 4383 unsigned TX9D1 : 1; 4384 unsigned : 1; 4385 unsigned : 1; 4386 unsigned : 1; 4387 unsigned : 1; 4388 unsigned : 1; 4389 unsigned NOT_TX8 : 1; 4390 unsigned : 1; 4391 }; 4392 4393 struct 4394 { 4395 unsigned : 1; 4396 unsigned : 1; 4397 unsigned : 1; 4398 unsigned : 1; 4399 unsigned : 1; 4400 unsigned : 1; 4401 unsigned TX91 : 1; 4402 unsigned : 1; 4403 }; 4404 } __TXSTA1bits_t; 4405 4406 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits; 4407 4408 #define _TXSTA1_TX9D 0x01 4409 #define _TXSTA1_TXD8 0x01 4410 #define _TXSTA1_TX9D1 0x01 4411 #define _TXSTA1_TRMT 0x02 4412 #define _TXSTA1_TRMT1 0x02 4413 #define _TXSTA1_BRGH 0x04 4414 #define _TXSTA1_BRGH1 0x04 4415 #define _TXSTA1_SENDB 0x08 4416 #define _TXSTA1_SENDB1 0x08 4417 #define _TXSTA1_SYNC 0x10 4418 #define _TXSTA1_SYNC1 0x10 4419 #define _TXSTA1_TXEN 0x20 4420 #define _TXSTA1_TXEN1 0x20 4421 #define _TXSTA1_TX9 0x40 4422 #define _TXSTA1_TX8_9 0x40 4423 #define _TXSTA1_NOT_TX8 0x40 4424 #define _TXSTA1_TX91 0x40 4425 #define _TXSTA1_CSRC 0x80 4426 #define _TXSTA1_CSRC1 0x80 4427 4428 //============================================================================== 4429 4430 extern __at(0x0FAD) __sfr TXREG; 4431 extern __at(0x0FAD) __sfr TXREG1; 4432 extern __at(0x0FAE) __sfr RCREG; 4433 extern __at(0x0FAE) __sfr RCREG1; 4434 extern __at(0x0FAF) __sfr SPBRG; 4435 extern __at(0x0FAF) __sfr SPBRG1; 4436 4437 //============================================================================== 4438 // T3CON Bits 4439 4440 extern __at(0x0FB1) __sfr T3CON; 4441 4442 typedef union 4443 { 4444 struct 4445 { 4446 unsigned TMR3ON : 1; 4447 unsigned TMR3CS : 1; 4448 unsigned NOT_T3SYNC : 1; 4449 unsigned T3CCP1 : 1; 4450 unsigned T3CKPS0 : 1; 4451 unsigned T3CKPS1 : 1; 4452 unsigned T3CCP2 : 1; 4453 unsigned RD16 : 1; 4454 }; 4455 4456 struct 4457 { 4458 unsigned : 1; 4459 unsigned : 1; 4460 unsigned T3SYNC : 1; 4461 unsigned : 1; 4462 unsigned : 1; 4463 unsigned : 1; 4464 unsigned : 1; 4465 unsigned : 1; 4466 }; 4467 4468 struct 4469 { 4470 unsigned : 1; 4471 unsigned : 1; 4472 unsigned T3INSYNC : 1; 4473 unsigned : 1; 4474 unsigned : 1; 4475 unsigned : 1; 4476 unsigned : 1; 4477 unsigned : 1; 4478 }; 4479 4480 struct 4481 { 4482 unsigned : 4; 4483 unsigned T3CKPS : 2; 4484 unsigned : 2; 4485 }; 4486 } __T3CONbits_t; 4487 4488 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 4489 4490 #define _T3CON_TMR3ON 0x01 4491 #define _T3CON_TMR3CS 0x02 4492 #define _T3CON_NOT_T3SYNC 0x04 4493 #define _T3CON_T3SYNC 0x04 4494 #define _T3CON_T3INSYNC 0x04 4495 #define _T3CON_T3CCP1 0x08 4496 #define _T3CON_T3CKPS0 0x10 4497 #define _T3CON_T3CKPS1 0x20 4498 #define _T3CON_T3CCP2 0x40 4499 #define _T3CON_RD16 0x80 4500 4501 //============================================================================== 4502 4503 extern __at(0x0FB2) __sfr TMR3; 4504 extern __at(0x0FB2) __sfr TMR3L; 4505 extern __at(0x0FB3) __sfr TMR3H; 4506 4507 //============================================================================== 4508 // CMCON Bits 4509 4510 extern __at(0x0FB4) __sfr CMCON; 4511 4512 typedef union 4513 { 4514 struct 4515 { 4516 unsigned CM0 : 1; 4517 unsigned CM1 : 1; 4518 unsigned CM2 : 1; 4519 unsigned CIS : 1; 4520 unsigned C1INV : 1; 4521 unsigned C2INV : 1; 4522 unsigned C1OUT : 1; 4523 unsigned C2OUT : 1; 4524 }; 4525 4526 struct 4527 { 4528 unsigned CM : 3; 4529 unsigned : 5; 4530 }; 4531 } __CMCONbits_t; 4532 4533 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits; 4534 4535 #define _CM0 0x01 4536 #define _CM1 0x02 4537 #define _CM2 0x04 4538 #define _CIS 0x08 4539 #define _C1INV 0x10 4540 #define _C2INV 0x20 4541 #define _C1OUT 0x40 4542 #define _C2OUT 0x80 4543 4544 //============================================================================== 4545 4546 4547 //============================================================================== 4548 // CVRCON Bits 4549 4550 extern __at(0x0FB5) __sfr CVRCON; 4551 4552 typedef union 4553 { 4554 struct 4555 { 4556 unsigned CVR0 : 1; 4557 unsigned CVR1 : 1; 4558 unsigned CVR2 : 1; 4559 unsigned CVR3 : 1; 4560 unsigned CVRSS : 1; 4561 unsigned CVRR : 1; 4562 unsigned CVROE : 1; 4563 unsigned CVREN : 1; 4564 }; 4565 4566 struct 4567 { 4568 unsigned CVR : 4; 4569 unsigned : 4; 4570 }; 4571 } __CVRCONbits_t; 4572 4573 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits; 4574 4575 #define _CVR0 0x01 4576 #define _CVR1 0x02 4577 #define _CVR2 0x04 4578 #define _CVR3 0x08 4579 #define _CVRSS 0x10 4580 #define _CVRR 0x20 4581 #define _CVROE 0x40 4582 #define _CVREN 0x80 4583 4584 //============================================================================== 4585 4586 4587 //============================================================================== 4588 // LCDSE1 Bits 4589 4590 extern __at(0x0FB6) __sfr LCDSE1; 4591 4592 typedef union 4593 { 4594 struct 4595 { 4596 unsigned SE8 : 1; 4597 unsigned SE9 : 1; 4598 unsigned SE10 : 1; 4599 unsigned SE11 : 1; 4600 unsigned SE12 : 1; 4601 unsigned SE13 : 1; 4602 unsigned SE14 : 1; 4603 unsigned SE15 : 1; 4604 }; 4605 4606 struct 4607 { 4608 unsigned SEGEN8 : 1; 4609 unsigned SEGEN9 : 1; 4610 unsigned SEGEN10 : 1; 4611 unsigned SEGEN11 : 1; 4612 unsigned SEGEN12 : 1; 4613 unsigned SEGEN13 : 1; 4614 unsigned SEGEN14 : 1; 4615 unsigned SEGEN15 : 1; 4616 }; 4617 4618 struct 4619 { 4620 unsigned SE08 : 1; 4621 unsigned SE09 : 1; 4622 unsigned : 1; 4623 unsigned : 1; 4624 unsigned : 1; 4625 unsigned : 1; 4626 unsigned : 1; 4627 unsigned : 1; 4628 }; 4629 } __LCDSE1bits_t; 4630 4631 extern __at(0x0FB6) volatile __LCDSE1bits_t LCDSE1bits; 4632 4633 #define _SE8 0x01 4634 #define _SEGEN8 0x01 4635 #define _SE08 0x01 4636 #define _SE9 0x02 4637 #define _SEGEN9 0x02 4638 #define _SE09 0x02 4639 #define _SE10 0x04 4640 #define _SEGEN10 0x04 4641 #define _SE11 0x08 4642 #define _SEGEN11 0x08 4643 #define _SE12 0x10 4644 #define _SEGEN12 0x10 4645 #define _SE13 0x20 4646 #define _SEGEN13 0x20 4647 #define _SE14 0x40 4648 #define _SEGEN14 0x40 4649 #define _SE15 0x80 4650 #define _SEGEN15 0x80 4651 4652 //============================================================================== 4653 4654 4655 //============================================================================== 4656 // LCDSE2 Bits 4657 4658 extern __at(0x0FB7) __sfr LCDSE2; 4659 4660 typedef union 4661 { 4662 struct 4663 { 4664 unsigned SE16 : 1; 4665 unsigned SE17 : 1; 4666 unsigned SE18 : 1; 4667 unsigned SE19 : 1; 4668 unsigned SE20 : 1; 4669 unsigned SE21 : 1; 4670 unsigned SE22 : 1; 4671 unsigned SE23 : 1; 4672 }; 4673 4674 struct 4675 { 4676 unsigned SEGEN16 : 1; 4677 unsigned SEGEN17 : 1; 4678 unsigned SEGEN18 : 1; 4679 unsigned SEGEN19 : 1; 4680 unsigned SEGEN20 : 1; 4681 unsigned SEGEN21 : 1; 4682 unsigned SEGEN22 : 1; 4683 unsigned SEGEN23 : 1; 4684 }; 4685 } __LCDSE2bits_t; 4686 4687 extern __at(0x0FB7) volatile __LCDSE2bits_t LCDSE2bits; 4688 4689 #define _SE16 0x01 4690 #define _SEGEN16 0x01 4691 #define _SE17 0x02 4692 #define _SEGEN17 0x02 4693 #define _SE18 0x04 4694 #define _SEGEN18 0x04 4695 #define _SE19 0x08 4696 #define _SEGEN19 0x08 4697 #define _SE20 0x10 4698 #define _SEGEN20 0x10 4699 #define _SE21 0x20 4700 #define _SEGEN21 0x20 4701 #define _SE22 0x40 4702 #define _SEGEN22 0x40 4703 #define _SE23 0x80 4704 #define _SEGEN23 0x80 4705 4706 //============================================================================== 4707 4708 4709 //============================================================================== 4710 // LCDSE3 Bits 4711 4712 extern __at(0x0FB8) __sfr LCDSE3; 4713 4714 typedef union 4715 { 4716 struct 4717 { 4718 unsigned SE24 : 1; 4719 unsigned SE25 : 1; 4720 unsigned SE26 : 1; 4721 unsigned SE27 : 1; 4722 unsigned SE28 : 1; 4723 unsigned SE29 : 1; 4724 unsigned SE30 : 1; 4725 unsigned SE31 : 1; 4726 }; 4727 4728 struct 4729 { 4730 unsigned SEGEN24 : 1; 4731 unsigned SEGEN25 : 1; 4732 unsigned SEGEN26 : 1; 4733 unsigned SEGEN27 : 1; 4734 unsigned SEGEN28 : 1; 4735 unsigned SEGEN29 : 1; 4736 unsigned SEGEN30 : 1; 4737 unsigned SEGEN31 : 1; 4738 }; 4739 } __LCDSE3bits_t; 4740 4741 extern __at(0x0FB8) volatile __LCDSE3bits_t LCDSE3bits; 4742 4743 #define _SE24 0x01 4744 #define _SEGEN24 0x01 4745 #define _SE25 0x02 4746 #define _SEGEN25 0x02 4747 #define _SE26 0x04 4748 #define _SEGEN26 0x04 4749 #define _SE27 0x08 4750 #define _SEGEN27 0x08 4751 #define _SE28 0x10 4752 #define _SEGEN28 0x10 4753 #define _SE29 0x20 4754 #define _SEGEN29 0x20 4755 #define _SE30 0x40 4756 #define _SEGEN30 0x40 4757 #define _SE31 0x80 4758 #define _SEGEN31 0x80 4759 4760 //============================================================================== 4761 4762 4763 //============================================================================== 4764 // LCDSE4 Bits 4765 4766 extern __at(0x0FB9) __sfr LCDSE4; 4767 4768 typedef union 4769 { 4770 struct 4771 { 4772 unsigned SE32 : 1; 4773 unsigned SE33 : 1; 4774 unsigned SE34 : 1; 4775 unsigned SE35 : 1; 4776 unsigned SE36 : 1; 4777 unsigned SE37 : 1; 4778 unsigned SE38 : 1; 4779 unsigned SE39 : 1; 4780 }; 4781 4782 struct 4783 { 4784 unsigned SEGEN32 : 1; 4785 unsigned SEGEN33 : 1; 4786 unsigned SEGEN34 : 1; 4787 unsigned SEGEN35 : 1; 4788 unsigned SEGEN36 : 1; 4789 unsigned SEGEN37 : 1; 4790 unsigned SEGEN38 : 1; 4791 unsigned SEGEN39 : 1; 4792 }; 4793 } __LCDSE4bits_t; 4794 4795 extern __at(0x0FB9) volatile __LCDSE4bits_t LCDSE4bits; 4796 4797 #define _SE32 0x01 4798 #define _SEGEN32 0x01 4799 #define _SE33 0x02 4800 #define _SEGEN33 0x02 4801 #define _SE34 0x04 4802 #define _SEGEN34 0x04 4803 #define _SE35 0x08 4804 #define _SEGEN35 0x08 4805 #define _SE36 0x10 4806 #define _SEGEN36 0x10 4807 #define _SE37 0x20 4808 #define _SEGEN37 0x20 4809 #define _SE38 0x40 4810 #define _SEGEN38 0x40 4811 #define _SE39 0x80 4812 #define _SEGEN39 0x80 4813 4814 //============================================================================== 4815 4816 4817 //============================================================================== 4818 // LCDSE5 Bits 4819 4820 extern __at(0x0FBA) __sfr LCDSE5; 4821 4822 typedef union 4823 { 4824 struct 4825 { 4826 unsigned SE40 : 1; 4827 unsigned SE41 : 1; 4828 unsigned SE42 : 1; 4829 unsigned SE43 : 1; 4830 unsigned SE44 : 1; 4831 unsigned SE45 : 1; 4832 unsigned SE46 : 1; 4833 unsigned SE47 : 1; 4834 }; 4835 4836 struct 4837 { 4838 unsigned SEGEN40 : 1; 4839 unsigned SEGEN41 : 1; 4840 unsigned SEGEN42 : 1; 4841 unsigned SEGEN43 : 1; 4842 unsigned SEGEN44 : 1; 4843 unsigned SEGEN45 : 1; 4844 unsigned SEGEN46 : 1; 4845 unsigned SEGEN47 : 1; 4846 }; 4847 } __LCDSE5bits_t; 4848 4849 extern __at(0x0FBA) volatile __LCDSE5bits_t LCDSE5bits; 4850 4851 #define _SE40 0x01 4852 #define _SEGEN40 0x01 4853 #define _SE41 0x02 4854 #define _SEGEN41 0x02 4855 #define _SE42 0x04 4856 #define _SEGEN42 0x04 4857 #define _SE43 0x08 4858 #define _SEGEN43 0x08 4859 #define _SE44 0x10 4860 #define _SEGEN44 0x10 4861 #define _SE45 0x20 4862 #define _SEGEN45 0x20 4863 #define _SE46 0x40 4864 #define _SEGEN46 0x40 4865 #define _SE47 0x80 4866 #define _SEGEN47 0x80 4867 4868 //============================================================================== 4869 4870 4871 //============================================================================== 4872 // LCDDATA0 Bits 4873 4874 extern __at(0x0FBB) __sfr LCDDATA0; 4875 4876 typedef union 4877 { 4878 struct 4879 { 4880 unsigned S0C0 : 1; 4881 unsigned S1C0 : 1; 4882 unsigned S2C0 : 1; 4883 unsigned S3C0 : 1; 4884 unsigned S4C0 : 1; 4885 unsigned S5C0 : 1; 4886 unsigned S6C0 : 1; 4887 unsigned S7C0 : 1; 4888 }; 4889 4890 struct 4891 { 4892 unsigned SEG0COM0 : 1; 4893 unsigned SEG1COM0 : 1; 4894 unsigned SEG2COM0 : 1; 4895 unsigned SEG3COM0 : 1; 4896 unsigned SEG4COM0 : 1; 4897 unsigned SEG5COM0 : 1; 4898 unsigned SEG6COM0 : 1; 4899 unsigned SEG7COM0 : 1; 4900 }; 4901 4902 struct 4903 { 4904 unsigned S00C0 : 1; 4905 unsigned S01C0 : 1; 4906 unsigned S02C0 : 1; 4907 unsigned S03C0 : 1; 4908 unsigned S04C0 : 1; 4909 unsigned S05C0 : 1; 4910 unsigned S06C0 : 1; 4911 unsigned S07C0 : 1; 4912 }; 4913 } __LCDDATA0bits_t; 4914 4915 extern __at(0x0FBB) volatile __LCDDATA0bits_t LCDDATA0bits; 4916 4917 #define _S0C0 0x01 4918 #define _SEG0COM0 0x01 4919 #define _S00C0 0x01 4920 #define _S1C0 0x02 4921 #define _SEG1COM0 0x02 4922 #define _S01C0 0x02 4923 #define _S2C0 0x04 4924 #define _SEG2COM0 0x04 4925 #define _S02C0 0x04 4926 #define _S3C0 0x08 4927 #define _SEG3COM0 0x08 4928 #define _S03C0 0x08 4929 #define _S4C0 0x10 4930 #define _SEG4COM0 0x10 4931 #define _S04C0 0x10 4932 #define _S5C0 0x20 4933 #define _SEG5COM0 0x20 4934 #define _S05C0 0x20 4935 #define _S6C0 0x40 4936 #define _SEG6COM0 0x40 4937 #define _S06C0 0x40 4938 #define _S7C0 0x80 4939 #define _SEG7COM0 0x80 4940 #define _S07C0 0x80 4941 4942 //============================================================================== 4943 4944 4945 //============================================================================== 4946 // LCDDATA1 Bits 4947 4948 extern __at(0x0FBC) __sfr LCDDATA1; 4949 4950 typedef union 4951 { 4952 struct 4953 { 4954 unsigned S8C0 : 1; 4955 unsigned S9C0 : 1; 4956 unsigned S10C0 : 1; 4957 unsigned S11C0 : 1; 4958 unsigned S12C0 : 1; 4959 unsigned S13C0 : 1; 4960 unsigned S14C0 : 1; 4961 unsigned S15C0 : 1; 4962 }; 4963 4964 struct 4965 { 4966 unsigned SEG8COM0 : 1; 4967 unsigned SEG9COM0 : 1; 4968 unsigned SEG10COM0 : 1; 4969 unsigned SEG11COM0 : 1; 4970 unsigned SEG12COM0 : 1; 4971 unsigned SEG13COM0 : 1; 4972 unsigned SEG14COM0 : 1; 4973 unsigned SEG15COM0 : 1; 4974 }; 4975 4976 struct 4977 { 4978 unsigned S08C0 : 1; 4979 unsigned S09C0 : 1; 4980 unsigned : 1; 4981 unsigned : 1; 4982 unsigned : 1; 4983 unsigned : 1; 4984 unsigned : 1; 4985 unsigned : 1; 4986 }; 4987 } __LCDDATA1bits_t; 4988 4989 extern __at(0x0FBC) volatile __LCDDATA1bits_t LCDDATA1bits; 4990 4991 #define _S8C0 0x01 4992 #define _SEG8COM0 0x01 4993 #define _S08C0 0x01 4994 #define _S9C0 0x02 4995 #define _SEG9COM0 0x02 4996 #define _S09C0 0x02 4997 #define _S10C0 0x04 4998 #define _SEG10COM0 0x04 4999 #define _S11C0 0x08 5000 #define _SEG11COM0 0x08 5001 #define _S12C0 0x10 5002 #define _SEG12COM0 0x10 5003 #define _S13C0 0x20 5004 #define _SEG13COM0 0x20 5005 #define _S14C0 0x40 5006 #define _SEG14COM0 0x40 5007 #define _S15C0 0x80 5008 #define _SEG15COM0 0x80 5009 5010 //============================================================================== 5011 5012 5013 //============================================================================== 5014 // LCDDATA2 Bits 5015 5016 extern __at(0x0FBD) __sfr LCDDATA2; 5017 5018 typedef union 5019 { 5020 struct 5021 { 5022 unsigned S16C0 : 1; 5023 unsigned S17C0 : 1; 5024 unsigned S18C0 : 1; 5025 unsigned S19C0 : 1; 5026 unsigned S20C0 : 1; 5027 unsigned S21C0 : 1; 5028 unsigned S22C0 : 1; 5029 unsigned S23C0 : 1; 5030 }; 5031 5032 struct 5033 { 5034 unsigned SEG16COM0 : 1; 5035 unsigned SEG17COM0 : 1; 5036 unsigned SEG18COM0 : 1; 5037 unsigned SEG19COM0 : 1; 5038 unsigned SEG20COM0 : 1; 5039 unsigned SEG21COM0 : 1; 5040 unsigned SEG22COM0 : 1; 5041 unsigned SEG23COM0 : 1; 5042 }; 5043 } __LCDDATA2bits_t; 5044 5045 extern __at(0x0FBD) volatile __LCDDATA2bits_t LCDDATA2bits; 5046 5047 #define _S16C0 0x01 5048 #define _SEG16COM0 0x01 5049 #define _S17C0 0x02 5050 #define _SEG17COM0 0x02 5051 #define _S18C0 0x04 5052 #define _SEG18COM0 0x04 5053 #define _S19C0 0x08 5054 #define _SEG19COM0 0x08 5055 #define _S20C0 0x10 5056 #define _SEG20COM0 0x10 5057 #define _S21C0 0x20 5058 #define _SEG21COM0 0x20 5059 #define _S22C0 0x40 5060 #define _SEG22COM0 0x40 5061 #define _S23C0 0x80 5062 #define _SEG23COM0 0x80 5063 5064 //============================================================================== 5065 5066 5067 //============================================================================== 5068 // LCDDATA3 Bits 5069 5070 extern __at(0x0FBE) __sfr LCDDATA3; 5071 5072 typedef union 5073 { 5074 struct 5075 { 5076 unsigned S24C0 : 1; 5077 unsigned S25C0 : 1; 5078 unsigned S26C0 : 1; 5079 unsigned S27C0 : 1; 5080 unsigned S28C0 : 1; 5081 unsigned S29C0 : 1; 5082 unsigned S30C0 : 1; 5083 unsigned S31C0 : 1; 5084 }; 5085 5086 struct 5087 { 5088 unsigned SEG24COM0 : 1; 5089 unsigned SEG25COM0 : 1; 5090 unsigned SEG26COM0 : 1; 5091 unsigned SEG27COM0 : 1; 5092 unsigned SEG28COM0 : 1; 5093 unsigned SEG29COM0 : 1; 5094 unsigned SEG30COM0 : 1; 5095 unsigned SEG31COM0 : 1; 5096 }; 5097 } __LCDDATA3bits_t; 5098 5099 extern __at(0x0FBE) volatile __LCDDATA3bits_t LCDDATA3bits; 5100 5101 #define _S24C0 0x01 5102 #define _SEG24COM0 0x01 5103 #define _S25C0 0x02 5104 #define _SEG25COM0 0x02 5105 #define _S26C0 0x04 5106 #define _SEG26COM0 0x04 5107 #define _S27C0 0x08 5108 #define _SEG27COM0 0x08 5109 #define _S28C0 0x10 5110 #define _SEG28COM0 0x10 5111 #define _S29C0 0x20 5112 #define _SEG29COM0 0x20 5113 #define _S30C0 0x40 5114 #define _SEG30COM0 0x40 5115 #define _S31C0 0x80 5116 #define _SEG31COM0 0x80 5117 5118 //============================================================================== 5119 5120 5121 //============================================================================== 5122 // LCDDATA4 Bits 5123 5124 extern __at(0x0FBF) __sfr LCDDATA4; 5125 5126 typedef union 5127 { 5128 struct 5129 { 5130 unsigned S32C0 : 1; 5131 unsigned S33C0 : 1; 5132 unsigned S34C0 : 1; 5133 unsigned S35C0 : 1; 5134 unsigned S36C0 : 1; 5135 unsigned S37C0 : 1; 5136 unsigned S38C0 : 1; 5137 unsigned S39C0 : 1; 5138 }; 5139 5140 struct 5141 { 5142 unsigned SEG32COM0 : 1; 5143 unsigned SEG33COM0 : 1; 5144 unsigned SEG34COM0 : 1; 5145 unsigned SEG35COM0 : 1; 5146 unsigned SEG36COM0 : 1; 5147 unsigned SEG37COM0 : 1; 5148 unsigned SEG38COM0 : 1; 5149 unsigned SEG39COM0 : 1; 5150 }; 5151 } __LCDDATA4bits_t; 5152 5153 extern __at(0x0FBF) volatile __LCDDATA4bits_t LCDDATA4bits; 5154 5155 #define _S32C0 0x01 5156 #define _SEG32COM0 0x01 5157 #define _S33C0 0x02 5158 #define _SEG33COM0 0x02 5159 #define _S34C0 0x04 5160 #define _SEG34COM0 0x04 5161 #define _S35C0 0x08 5162 #define _SEG35COM0 0x08 5163 #define _S36C0 0x10 5164 #define _SEG36COM0 0x10 5165 #define _S37C0 0x20 5166 #define _SEG37COM0 0x20 5167 #define _S38C0 0x40 5168 #define _SEG38COM0 0x40 5169 #define _S39C0 0x80 5170 #define _SEG39COM0 0x80 5171 5172 //============================================================================== 5173 5174 5175 //============================================================================== 5176 // ADCON2 Bits 5177 5178 extern __at(0x0FC0) __sfr ADCON2; 5179 5180 typedef union 5181 { 5182 struct 5183 { 5184 unsigned ADCS0 : 1; 5185 unsigned ADCS1 : 1; 5186 unsigned ADCS2 : 1; 5187 unsigned ACQT0 : 1; 5188 unsigned ACQT1 : 1; 5189 unsigned ACQT2 : 1; 5190 unsigned : 1; 5191 unsigned ADFM : 1; 5192 }; 5193 5194 struct 5195 { 5196 unsigned ADCS : 3; 5197 unsigned : 5; 5198 }; 5199 5200 struct 5201 { 5202 unsigned : 3; 5203 unsigned ACQT : 3; 5204 unsigned : 2; 5205 }; 5206 } __ADCON2bits_t; 5207 5208 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits; 5209 5210 #define _ADCS0 0x01 5211 #define _ADCS1 0x02 5212 #define _ADCS2 0x04 5213 #define _ACQT0 0x08 5214 #define _ACQT1 0x10 5215 #define _ACQT2 0x20 5216 #define _ADFM 0x80 5217 5218 //============================================================================== 5219 5220 5221 //============================================================================== 5222 // ADCON1 Bits 5223 5224 extern __at(0x0FC1) __sfr ADCON1; 5225 5226 typedef union 5227 { 5228 struct 5229 { 5230 unsigned PCFG0 : 1; 5231 unsigned PCFG1 : 1; 5232 unsigned PCFG2 : 1; 5233 unsigned PCFG3 : 1; 5234 unsigned VCFG0 : 1; 5235 unsigned VCFG1 : 1; 5236 unsigned : 1; 5237 unsigned : 1; 5238 }; 5239 5240 struct 5241 { 5242 unsigned PCFG : 4; 5243 unsigned : 4; 5244 }; 5245 5246 struct 5247 { 5248 unsigned : 4; 5249 unsigned VCFG : 2; 5250 unsigned : 2; 5251 }; 5252 } __ADCON1bits_t; 5253 5254 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 5255 5256 #define _PCFG0 0x01 5257 #define _PCFG1 0x02 5258 #define _PCFG2 0x04 5259 #define _PCFG3 0x08 5260 #define _VCFG0 0x10 5261 #define _VCFG1 0x20 5262 5263 //============================================================================== 5264 5265 5266 //============================================================================== 5267 // ADCON0 Bits 5268 5269 extern __at(0x0FC2) __sfr ADCON0; 5270 5271 typedef union 5272 { 5273 struct 5274 { 5275 unsigned ADON : 1; 5276 unsigned GO_NOT_DONE : 1; 5277 unsigned CHS0 : 1; 5278 unsigned CHS1 : 1; 5279 unsigned CHS2 : 1; 5280 unsigned CHS3 : 1; 5281 unsigned : 1; 5282 unsigned ADCAL : 1; 5283 }; 5284 5285 struct 5286 { 5287 unsigned : 1; 5288 unsigned GO_DONE : 1; 5289 unsigned : 1; 5290 unsigned : 1; 5291 unsigned : 1; 5292 unsigned : 1; 5293 unsigned : 1; 5294 unsigned : 1; 5295 }; 5296 5297 struct 5298 { 5299 unsigned : 1; 5300 unsigned DONE : 1; 5301 unsigned : 1; 5302 unsigned : 1; 5303 unsigned : 1; 5304 unsigned : 1; 5305 unsigned : 1; 5306 unsigned : 1; 5307 }; 5308 5309 struct 5310 { 5311 unsigned : 1; 5312 unsigned GO : 1; 5313 unsigned : 1; 5314 unsigned : 1; 5315 unsigned : 1; 5316 unsigned : 1; 5317 unsigned : 1; 5318 unsigned : 1; 5319 }; 5320 5321 struct 5322 { 5323 unsigned : 1; 5324 unsigned NOT_DONE : 1; 5325 unsigned : 1; 5326 unsigned : 1; 5327 unsigned : 1; 5328 unsigned : 1; 5329 unsigned : 1; 5330 unsigned : 1; 5331 }; 5332 5333 struct 5334 { 5335 unsigned : 2; 5336 unsigned CHS : 4; 5337 unsigned : 2; 5338 }; 5339 } __ADCON0bits_t; 5340 5341 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 5342 5343 #define _ADON 0x01 5344 #define _GO_NOT_DONE 0x02 5345 #define _GO_DONE 0x02 5346 #define _DONE 0x02 5347 #define _GO 0x02 5348 #define _NOT_DONE 0x02 5349 #define _CHS0 0x04 5350 #define _CHS1 0x08 5351 #define _CHS2 0x10 5352 #define _CHS3 0x20 5353 #define _ADCAL 0x80 5354 5355 //============================================================================== 5356 5357 extern __at(0x0FC3) __sfr ADRES; 5358 extern __at(0x0FC3) __sfr ADRESL; 5359 extern __at(0x0FC4) __sfr ADRESH; 5360 5361 //============================================================================== 5362 // SSP1CON2 Bits 5363 5364 extern __at(0x0FC5) __sfr SSP1CON2; 5365 5366 typedef union 5367 { 5368 struct 5369 { 5370 unsigned SEN : 1; 5371 unsigned RSEN : 1; 5372 unsigned PEN : 1; 5373 unsigned RCEN : 1; 5374 unsigned ACKEN : 1; 5375 unsigned ACKDT : 1; 5376 unsigned ACKSTAT : 1; 5377 unsigned GCEN : 1; 5378 }; 5379 5380 struct 5381 { 5382 unsigned : 1; 5383 unsigned ADMSK1 : 1; 5384 unsigned ADMSK2 : 1; 5385 unsigned ADMSK3 : 1; 5386 unsigned ADMSK4 : 1; 5387 unsigned ADMSK5 : 1; 5388 unsigned : 1; 5389 unsigned : 1; 5390 }; 5391 } __SSP1CON2bits_t; 5392 5393 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits; 5394 5395 #define _SEN 0x01 5396 #define _RSEN 0x02 5397 #define _ADMSK1 0x02 5398 #define _PEN 0x04 5399 #define _ADMSK2 0x04 5400 #define _RCEN 0x08 5401 #define _ADMSK3 0x08 5402 #define _ACKEN 0x10 5403 #define _ADMSK4 0x10 5404 #define _ACKDT 0x20 5405 #define _ADMSK5 0x20 5406 #define _ACKSTAT 0x40 5407 #define _GCEN 0x80 5408 5409 //============================================================================== 5410 5411 5412 //============================================================================== 5413 // SSPCON2 Bits 5414 5415 extern __at(0x0FC5) __sfr SSPCON2; 5416 5417 typedef union 5418 { 5419 struct 5420 { 5421 unsigned SEN : 1; 5422 unsigned RSEN : 1; 5423 unsigned PEN : 1; 5424 unsigned RCEN : 1; 5425 unsigned ACKEN : 1; 5426 unsigned ACKDT : 1; 5427 unsigned ACKSTAT : 1; 5428 unsigned GCEN : 1; 5429 }; 5430 5431 struct 5432 { 5433 unsigned : 1; 5434 unsigned ADMSK1 : 1; 5435 unsigned ADMSK2 : 1; 5436 unsigned ADMSK3 : 1; 5437 unsigned ADMSK4 : 1; 5438 unsigned ADMSK5 : 1; 5439 unsigned : 1; 5440 unsigned : 1; 5441 }; 5442 } __SSPCON2bits_t; 5443 5444 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 5445 5446 #define _SSPCON2_SEN 0x01 5447 #define _SSPCON2_RSEN 0x02 5448 #define _SSPCON2_ADMSK1 0x02 5449 #define _SSPCON2_PEN 0x04 5450 #define _SSPCON2_ADMSK2 0x04 5451 #define _SSPCON2_RCEN 0x08 5452 #define _SSPCON2_ADMSK3 0x08 5453 #define _SSPCON2_ACKEN 0x10 5454 #define _SSPCON2_ADMSK4 0x10 5455 #define _SSPCON2_ACKDT 0x20 5456 #define _SSPCON2_ADMSK5 0x20 5457 #define _SSPCON2_ACKSTAT 0x40 5458 #define _SSPCON2_GCEN 0x80 5459 5460 //============================================================================== 5461 5462 5463 //============================================================================== 5464 // SSP1CON1 Bits 5465 5466 extern __at(0x0FC6) __sfr SSP1CON1; 5467 5468 typedef union 5469 { 5470 struct 5471 { 5472 unsigned SSPM0 : 1; 5473 unsigned SSPM1 : 1; 5474 unsigned SSPM2 : 1; 5475 unsigned SSPM3 : 1; 5476 unsigned CKP : 1; 5477 unsigned SSPEN : 1; 5478 unsigned SSPOV : 1; 5479 unsigned WCOL : 1; 5480 }; 5481 5482 struct 5483 { 5484 unsigned SSPM : 4; 5485 unsigned : 4; 5486 }; 5487 } __SSP1CON1bits_t; 5488 5489 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits; 5490 5491 #define _SSPM0 0x01 5492 #define _SSPM1 0x02 5493 #define _SSPM2 0x04 5494 #define _SSPM3 0x08 5495 #define _CKP 0x10 5496 #define _SSPEN 0x20 5497 #define _SSPOV 0x40 5498 #define _WCOL 0x80 5499 5500 //============================================================================== 5501 5502 5503 //============================================================================== 5504 // SSPCON1 Bits 5505 5506 extern __at(0x0FC6) __sfr SSPCON1; 5507 5508 typedef union 5509 { 5510 struct 5511 { 5512 unsigned SSPM0 : 1; 5513 unsigned SSPM1 : 1; 5514 unsigned SSPM2 : 1; 5515 unsigned SSPM3 : 1; 5516 unsigned CKP : 1; 5517 unsigned SSPEN : 1; 5518 unsigned SSPOV : 1; 5519 unsigned WCOL : 1; 5520 }; 5521 5522 struct 5523 { 5524 unsigned SSPM : 4; 5525 unsigned : 4; 5526 }; 5527 } __SSPCON1bits_t; 5528 5529 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 5530 5531 #define _SSPCON1_SSPM0 0x01 5532 #define _SSPCON1_SSPM1 0x02 5533 #define _SSPCON1_SSPM2 0x04 5534 #define _SSPCON1_SSPM3 0x08 5535 #define _SSPCON1_CKP 0x10 5536 #define _SSPCON1_SSPEN 0x20 5537 #define _SSPCON1_SSPOV 0x40 5538 #define _SSPCON1_WCOL 0x80 5539 5540 //============================================================================== 5541 5542 5543 //============================================================================== 5544 // SSP1STAT Bits 5545 5546 extern __at(0x0FC7) __sfr SSP1STAT; 5547 5548 typedef union 5549 { 5550 struct 5551 { 5552 unsigned BF : 1; 5553 unsigned UA : 1; 5554 unsigned R_NOT_W : 1; 5555 unsigned S : 1; 5556 unsigned P : 1; 5557 unsigned D_NOT_A : 1; 5558 unsigned CKE : 1; 5559 unsigned SMP : 1; 5560 }; 5561 5562 struct 5563 { 5564 unsigned : 1; 5565 unsigned : 1; 5566 unsigned R : 1; 5567 unsigned I2C_START : 1; 5568 unsigned I2C_STOP : 1; 5569 unsigned D : 1; 5570 unsigned : 1; 5571 unsigned : 1; 5572 }; 5573 5574 struct 5575 { 5576 unsigned : 1; 5577 unsigned : 1; 5578 unsigned R_W : 1; 5579 unsigned : 1; 5580 unsigned : 1; 5581 unsigned D_A : 1; 5582 unsigned : 1; 5583 unsigned : 1; 5584 }; 5585 5586 struct 5587 { 5588 unsigned : 1; 5589 unsigned : 1; 5590 unsigned NOT_W : 1; 5591 unsigned : 1; 5592 unsigned : 1; 5593 unsigned NOT_A : 1; 5594 unsigned : 1; 5595 unsigned : 1; 5596 }; 5597 5598 struct 5599 { 5600 unsigned : 1; 5601 unsigned : 1; 5602 unsigned NOT_WRITE : 1; 5603 unsigned : 1; 5604 unsigned : 1; 5605 unsigned NOT_ADDRESS : 1; 5606 unsigned : 1; 5607 unsigned : 1; 5608 }; 5609 5610 struct 5611 { 5612 unsigned : 1; 5613 unsigned : 1; 5614 unsigned READ_WRITE : 1; 5615 unsigned : 1; 5616 unsigned : 1; 5617 unsigned DATA_ADDRESS : 1; 5618 unsigned : 1; 5619 unsigned : 1; 5620 }; 5621 5622 struct 5623 { 5624 unsigned : 1; 5625 unsigned : 1; 5626 unsigned I2C_READ : 1; 5627 unsigned : 1; 5628 unsigned : 1; 5629 unsigned I2C_DAT : 1; 5630 unsigned : 1; 5631 unsigned : 1; 5632 }; 5633 } __SSP1STATbits_t; 5634 5635 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits; 5636 5637 #define _BF 0x01 5638 #define _UA 0x02 5639 #define _R_NOT_W 0x04 5640 #define _R 0x04 5641 #define _R_W 0x04 5642 #define _NOT_W 0x04 5643 #define _NOT_WRITE 0x04 5644 #define _READ_WRITE 0x04 5645 #define _I2C_READ 0x04 5646 #define _S 0x08 5647 #define _I2C_START 0x08 5648 #define _P 0x10 5649 #define _I2C_STOP 0x10 5650 #define _D_NOT_A 0x20 5651 #define _D 0x20 5652 #define _D_A 0x20 5653 #define _NOT_A 0x20 5654 #define _NOT_ADDRESS 0x20 5655 #define _DATA_ADDRESS 0x20 5656 #define _I2C_DAT 0x20 5657 #define _CKE 0x40 5658 #define _SMP 0x80 5659 5660 //============================================================================== 5661 5662 5663 //============================================================================== 5664 // SSPSTAT Bits 5665 5666 extern __at(0x0FC7) __sfr SSPSTAT; 5667 5668 typedef union 5669 { 5670 struct 5671 { 5672 unsigned BF : 1; 5673 unsigned UA : 1; 5674 unsigned R_NOT_W : 1; 5675 unsigned S : 1; 5676 unsigned P : 1; 5677 unsigned D_NOT_A : 1; 5678 unsigned CKE : 1; 5679 unsigned SMP : 1; 5680 }; 5681 5682 struct 5683 { 5684 unsigned : 1; 5685 unsigned : 1; 5686 unsigned R : 1; 5687 unsigned I2C_START : 1; 5688 unsigned I2C_STOP : 1; 5689 unsigned D : 1; 5690 unsigned : 1; 5691 unsigned : 1; 5692 }; 5693 5694 struct 5695 { 5696 unsigned : 1; 5697 unsigned : 1; 5698 unsigned R_W : 1; 5699 unsigned : 1; 5700 unsigned : 1; 5701 unsigned D_A : 1; 5702 unsigned : 1; 5703 unsigned : 1; 5704 }; 5705 5706 struct 5707 { 5708 unsigned : 1; 5709 unsigned : 1; 5710 unsigned NOT_W : 1; 5711 unsigned : 1; 5712 unsigned : 1; 5713 unsigned NOT_A : 1; 5714 unsigned : 1; 5715 unsigned : 1; 5716 }; 5717 5718 struct 5719 { 5720 unsigned : 1; 5721 unsigned : 1; 5722 unsigned NOT_WRITE : 1; 5723 unsigned : 1; 5724 unsigned : 1; 5725 unsigned NOT_ADDRESS : 1; 5726 unsigned : 1; 5727 unsigned : 1; 5728 }; 5729 5730 struct 5731 { 5732 unsigned : 1; 5733 unsigned : 1; 5734 unsigned READ_WRITE : 1; 5735 unsigned : 1; 5736 unsigned : 1; 5737 unsigned DATA_ADDRESS : 1; 5738 unsigned : 1; 5739 unsigned : 1; 5740 }; 5741 5742 struct 5743 { 5744 unsigned : 1; 5745 unsigned : 1; 5746 unsigned I2C_READ : 1; 5747 unsigned : 1; 5748 unsigned : 1; 5749 unsigned I2C_DAT : 1; 5750 unsigned : 1; 5751 unsigned : 1; 5752 }; 5753 } __SSPSTATbits_t; 5754 5755 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 5756 5757 #define _SSPSTAT_BF 0x01 5758 #define _SSPSTAT_UA 0x02 5759 #define _SSPSTAT_R_NOT_W 0x04 5760 #define _SSPSTAT_R 0x04 5761 #define _SSPSTAT_R_W 0x04 5762 #define _SSPSTAT_NOT_W 0x04 5763 #define _SSPSTAT_NOT_WRITE 0x04 5764 #define _SSPSTAT_READ_WRITE 0x04 5765 #define _SSPSTAT_I2C_READ 0x04 5766 #define _SSPSTAT_S 0x08 5767 #define _SSPSTAT_I2C_START 0x08 5768 #define _SSPSTAT_P 0x10 5769 #define _SSPSTAT_I2C_STOP 0x10 5770 #define _SSPSTAT_D_NOT_A 0x20 5771 #define _SSPSTAT_D 0x20 5772 #define _SSPSTAT_D_A 0x20 5773 #define _SSPSTAT_NOT_A 0x20 5774 #define _SSPSTAT_NOT_ADDRESS 0x20 5775 #define _SSPSTAT_DATA_ADDRESS 0x20 5776 #define _SSPSTAT_I2C_DAT 0x20 5777 #define _SSPSTAT_CKE 0x40 5778 #define _SSPSTAT_SMP 0x80 5779 5780 //============================================================================== 5781 5782 extern __at(0x0FC8) __sfr SSP1ADD; 5783 extern __at(0x0FC8) __sfr SSPADD; 5784 extern __at(0x0FC9) __sfr SSP1BUF; 5785 extern __at(0x0FC9) __sfr SSPBUF; 5786 5787 //============================================================================== 5788 // T2CON Bits 5789 5790 extern __at(0x0FCA) __sfr T2CON; 5791 5792 typedef union 5793 { 5794 struct 5795 { 5796 unsigned T2CKPS0 : 1; 5797 unsigned T2CKPS1 : 1; 5798 unsigned TMR2ON : 1; 5799 unsigned T2OUTPS0 : 1; 5800 unsigned T2OUTPS1 : 1; 5801 unsigned T2OUTPS2 : 1; 5802 unsigned T2OUTPS3 : 1; 5803 unsigned : 1; 5804 }; 5805 5806 struct 5807 { 5808 unsigned T2CKPS : 2; 5809 unsigned : 6; 5810 }; 5811 5812 struct 5813 { 5814 unsigned : 3; 5815 unsigned T2OUTPS : 4; 5816 unsigned : 1; 5817 }; 5818 } __T2CONbits_t; 5819 5820 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 5821 5822 #define _T2CKPS0 0x01 5823 #define _T2CKPS1 0x02 5824 #define _TMR2ON 0x04 5825 #define _T2OUTPS0 0x08 5826 #define _T2OUTPS1 0x10 5827 #define _T2OUTPS2 0x20 5828 #define _T2OUTPS3 0x40 5829 5830 //============================================================================== 5831 5832 extern __at(0x0FCB) __sfr PR2; 5833 extern __at(0x0FCC) __sfr TMR2; 5834 5835 //============================================================================== 5836 // T1CON Bits 5837 5838 extern __at(0x0FCD) __sfr T1CON; 5839 5840 typedef union 5841 { 5842 struct 5843 { 5844 unsigned TMR1ON : 1; 5845 unsigned TMR1CS : 1; 5846 unsigned NOT_T1SYNC : 1; 5847 unsigned T1OSCEN : 1; 5848 unsigned T1CKPS0 : 1; 5849 unsigned T1CKPS1 : 1; 5850 unsigned T1RUN : 1; 5851 unsigned RD16 : 1; 5852 }; 5853 5854 struct 5855 { 5856 unsigned : 1; 5857 unsigned : 1; 5858 unsigned T1INSYNC : 1; 5859 unsigned : 1; 5860 unsigned : 1; 5861 unsigned : 1; 5862 unsigned : 1; 5863 unsigned : 1; 5864 }; 5865 5866 struct 5867 { 5868 unsigned : 1; 5869 unsigned : 1; 5870 unsigned T1SYNC : 1; 5871 unsigned : 1; 5872 unsigned : 1; 5873 unsigned : 1; 5874 unsigned : 1; 5875 unsigned : 1; 5876 }; 5877 5878 struct 5879 { 5880 unsigned : 4; 5881 unsigned T1CKPS : 2; 5882 unsigned : 2; 5883 }; 5884 } __T1CONbits_t; 5885 5886 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 5887 5888 #define _TMR1ON 0x01 5889 #define _TMR1CS 0x02 5890 #define _NOT_T1SYNC 0x04 5891 #define _T1INSYNC 0x04 5892 #define _T1SYNC 0x04 5893 #define _T1OSCEN 0x08 5894 #define _T1CKPS0 0x10 5895 #define _T1CKPS1 0x20 5896 #define _T1RUN 0x40 5897 #define _RD16 0x80 5898 5899 //============================================================================== 5900 5901 extern __at(0x0FCE) __sfr TMR1; 5902 extern __at(0x0FCE) __sfr TMR1L; 5903 extern __at(0x0FCF) __sfr TMR1H; 5904 5905 //============================================================================== 5906 // RCON Bits 5907 5908 extern __at(0x0FD0) __sfr RCON; 5909 5910 typedef union 5911 { 5912 struct 5913 { 5914 unsigned NOT_BOR : 1; 5915 unsigned NOT_POR : 1; 5916 unsigned NOT_PD : 1; 5917 unsigned NOT_TO : 1; 5918 unsigned NOT_RI : 1; 5919 unsigned NOT_CM : 1; 5920 unsigned : 1; 5921 unsigned IPEN : 1; 5922 }; 5923 5924 struct 5925 { 5926 unsigned BOR : 1; 5927 unsigned POR : 1; 5928 unsigned PD : 1; 5929 unsigned TO : 1; 5930 unsigned RI : 1; 5931 unsigned CM : 1; 5932 unsigned : 1; 5933 unsigned : 1; 5934 }; 5935 } __RCONbits_t; 5936 5937 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 5938 5939 #define _NOT_BOR 0x01 5940 #define _BOR 0x01 5941 #define _NOT_POR 0x02 5942 #define _POR 0x02 5943 #define _NOT_PD 0x04 5944 #define _PD 0x04 5945 #define _NOT_TO 0x08 5946 #define _TO 0x08 5947 #define _NOT_RI 0x10 5948 #define _RI 0x10 5949 #define _NOT_CM 0x20 5950 #define _CM 0x20 5951 #define _IPEN 0x80 5952 5953 //============================================================================== 5954 5955 5956 //============================================================================== 5957 // WDTCON Bits 5958 5959 extern __at(0x0FD1) __sfr WDTCON; 5960 5961 typedef union 5962 { 5963 struct 5964 { 5965 unsigned SWDTEN : 1; 5966 unsigned : 1; 5967 unsigned : 1; 5968 unsigned : 1; 5969 unsigned : 1; 5970 unsigned : 1; 5971 unsigned : 1; 5972 unsigned REGSLP : 1; 5973 }; 5974 5975 struct 5976 { 5977 unsigned SWDTE : 1; 5978 unsigned : 1; 5979 unsigned : 1; 5980 unsigned : 1; 5981 unsigned : 1; 5982 unsigned : 1; 5983 unsigned : 1; 5984 unsigned : 1; 5985 }; 5986 } __WDTCONbits_t; 5987 5988 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 5989 5990 #define _SWDTEN 0x01 5991 #define _SWDTE 0x01 5992 #define _REGSLP 0x80 5993 5994 //============================================================================== 5995 5996 5997 //============================================================================== 5998 // LCDREG Bits 5999 6000 extern __at(0x0FD2) __sfr LCDREG; 6001 6002 typedef union 6003 { 6004 struct 6005 { 6006 unsigned CKSEL0 : 1; 6007 unsigned CKSEL1 : 1; 6008 unsigned MODE13 : 1; 6009 unsigned BIAS0 : 1; 6010 unsigned BIAS1 : 1; 6011 unsigned BIAS2 : 1; 6012 unsigned CPEN : 1; 6013 unsigned : 1; 6014 }; 6015 6016 struct 6017 { 6018 unsigned CKSEL : 2; 6019 unsigned : 6; 6020 }; 6021 6022 struct 6023 { 6024 unsigned : 3; 6025 unsigned BIAS : 3; 6026 unsigned : 2; 6027 }; 6028 } __LCDREGbits_t; 6029 6030 extern __at(0x0FD2) volatile __LCDREGbits_t LCDREGbits; 6031 6032 #define _CKSEL0 0x01 6033 #define _CKSEL1 0x02 6034 #define _MODE13 0x04 6035 #define _BIAS0 0x08 6036 #define _BIAS1 0x10 6037 #define _BIAS2 0x20 6038 #define _CPEN 0x40 6039 6040 //============================================================================== 6041 6042 6043 //============================================================================== 6044 // OSCCON Bits 6045 6046 extern __at(0x0FD3) __sfr OSCCON; 6047 6048 typedef union 6049 { 6050 struct 6051 { 6052 unsigned SCS0 : 1; 6053 unsigned SCS1 : 1; 6054 unsigned IOFS : 1; 6055 unsigned OSTS : 1; 6056 unsigned IRCF0 : 1; 6057 unsigned IRCF1 : 1; 6058 unsigned IRCF2 : 1; 6059 unsigned IDLEN : 1; 6060 }; 6061 6062 struct 6063 { 6064 unsigned SCS : 2; 6065 unsigned : 6; 6066 }; 6067 6068 struct 6069 { 6070 unsigned : 4; 6071 unsigned IRCF : 3; 6072 unsigned : 1; 6073 }; 6074 } __OSCCONbits_t; 6075 6076 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 6077 6078 #define _SCS0 0x01 6079 #define _SCS1 0x02 6080 #define _IOFS 0x04 6081 #define _OSTS 0x08 6082 #define _IRCF0 0x10 6083 #define _IRCF1 0x20 6084 #define _IRCF2 0x40 6085 #define _IDLEN 0x80 6086 6087 //============================================================================== 6088 6089 6090 //============================================================================== 6091 // T0CON Bits 6092 6093 extern __at(0x0FD5) __sfr T0CON; 6094 6095 typedef union 6096 { 6097 struct 6098 { 6099 unsigned T0PS0 : 1; 6100 unsigned T0PS1 : 1; 6101 unsigned T0PS2 : 1; 6102 unsigned PSA : 1; 6103 unsigned T0SE : 1; 6104 unsigned T0CS : 1; 6105 unsigned T08BIT : 1; 6106 unsigned TMR0ON : 1; 6107 }; 6108 6109 struct 6110 { 6111 unsigned : 1; 6112 unsigned : 1; 6113 unsigned : 1; 6114 unsigned T0PS3 : 1; 6115 unsigned : 1; 6116 unsigned : 1; 6117 unsigned : 1; 6118 unsigned : 1; 6119 }; 6120 6121 struct 6122 { 6123 unsigned T0PS : 4; 6124 unsigned : 4; 6125 }; 6126 } __T0CONbits_t; 6127 6128 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 6129 6130 #define _T0PS0 0x01 6131 #define _T0PS1 0x02 6132 #define _T0PS2 0x04 6133 #define _PSA 0x08 6134 #define _T0PS3 0x08 6135 #define _T0SE 0x10 6136 #define _T0CS 0x20 6137 #define _T08BIT 0x40 6138 #define _TMR0ON 0x80 6139 6140 //============================================================================== 6141 6142 extern __at(0x0FD6) __sfr TMR0; 6143 extern __at(0x0FD6) __sfr TMR0L; 6144 extern __at(0x0FD7) __sfr TMR0H; 6145 6146 //============================================================================== 6147 // STATUS Bits 6148 6149 extern __at(0x0FD8) __sfr STATUS; 6150 6151 typedef struct 6152 { 6153 unsigned C : 1; 6154 unsigned DC : 1; 6155 unsigned Z : 1; 6156 unsigned OV : 1; 6157 unsigned N : 1; 6158 unsigned : 1; 6159 unsigned : 1; 6160 unsigned : 1; 6161 } __STATUSbits_t; 6162 6163 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 6164 6165 #define _C 0x01 6166 #define _DC 0x02 6167 #define _Z 0x04 6168 #define _OV 0x08 6169 #define _N 0x10 6170 6171 //============================================================================== 6172 6173 extern __at(0x0FD9) __sfr FSR2L; 6174 extern __at(0x0FDA) __sfr FSR2H; 6175 extern __at(0x0FDB) __sfr PLUSW2; 6176 extern __at(0x0FDC) __sfr PREINC2; 6177 extern __at(0x0FDD) __sfr POSTDEC2; 6178 extern __at(0x0FDE) __sfr POSTINC2; 6179 extern __at(0x0FDF) __sfr INDF2; 6180 extern __at(0x0FE0) __sfr BSR; 6181 extern __at(0x0FE1) __sfr FSR1L; 6182 extern __at(0x0FE2) __sfr FSR1H; 6183 extern __at(0x0FE3) __sfr PLUSW1; 6184 extern __at(0x0FE4) __sfr PREINC1; 6185 extern __at(0x0FE5) __sfr POSTDEC1; 6186 extern __at(0x0FE6) __sfr POSTINC1; 6187 extern __at(0x0FE7) __sfr INDF1; 6188 extern __at(0x0FE8) __sfr WREG; 6189 extern __at(0x0FE9) __sfr FSR0L; 6190 extern __at(0x0FEA) __sfr FSR0H; 6191 extern __at(0x0FEB) __sfr PLUSW0; 6192 extern __at(0x0FEC) __sfr PREINC0; 6193 extern __at(0x0FED) __sfr POSTDEC0; 6194 extern __at(0x0FEE) __sfr POSTINC0; 6195 extern __at(0x0FEF) __sfr INDF0; 6196 6197 //============================================================================== 6198 // INTCON3 Bits 6199 6200 extern __at(0x0FF0) __sfr INTCON3; 6201 6202 typedef union 6203 { 6204 struct 6205 { 6206 unsigned INT1IF : 1; 6207 unsigned INT2IF : 1; 6208 unsigned INT3IF : 1; 6209 unsigned INT1IE : 1; 6210 unsigned INT2IE : 1; 6211 unsigned INT3IE : 1; 6212 unsigned INT1IP : 1; 6213 unsigned INT2IP : 1; 6214 }; 6215 6216 struct 6217 { 6218 unsigned INT1F : 1; 6219 unsigned INT2F : 1; 6220 unsigned INT3F : 1; 6221 unsigned INT1E : 1; 6222 unsigned INT2E : 1; 6223 unsigned INT3E : 1; 6224 unsigned INT1P : 1; 6225 unsigned INT2P : 1; 6226 }; 6227 } __INTCON3bits_t; 6228 6229 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 6230 6231 #define _INT1IF 0x01 6232 #define _INT1F 0x01 6233 #define _INT2IF 0x02 6234 #define _INT2F 0x02 6235 #define _INT3IF 0x04 6236 #define _INT3F 0x04 6237 #define _INT1IE 0x08 6238 #define _INT1E 0x08 6239 #define _INT2IE 0x10 6240 #define _INT2E 0x10 6241 #define _INT3IE 0x20 6242 #define _INT3E 0x20 6243 #define _INT1IP 0x40 6244 #define _INT1P 0x40 6245 #define _INT2IP 0x80 6246 #define _INT2P 0x80 6247 6248 //============================================================================== 6249 6250 6251 //============================================================================== 6252 // INTCON2 Bits 6253 6254 extern __at(0x0FF1) __sfr INTCON2; 6255 6256 typedef union 6257 { 6258 struct 6259 { 6260 unsigned RBIP : 1; 6261 unsigned INT3IP : 1; 6262 unsigned TMR0IP : 1; 6263 unsigned INTEDG3 : 1; 6264 unsigned INTEDG2 : 1; 6265 unsigned INTEDG1 : 1; 6266 unsigned INTEDG0 : 1; 6267 unsigned NOT_RBPU : 1; 6268 }; 6269 6270 struct 6271 { 6272 unsigned : 1; 6273 unsigned INT3P : 1; 6274 unsigned T0IP : 1; 6275 unsigned : 1; 6276 unsigned : 1; 6277 unsigned : 1; 6278 unsigned : 1; 6279 unsigned RBPU : 1; 6280 }; 6281 } __INTCON2bits_t; 6282 6283 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 6284 6285 #define _RBIP 0x01 6286 #define _INT3IP 0x02 6287 #define _INT3P 0x02 6288 #define _TMR0IP 0x04 6289 #define _T0IP 0x04 6290 #define _INTEDG3 0x08 6291 #define _INTEDG2 0x10 6292 #define _INTEDG1 0x20 6293 #define _INTEDG0 0x40 6294 #define _NOT_RBPU 0x80 6295 #define _RBPU 0x80 6296 6297 //============================================================================== 6298 6299 6300 //============================================================================== 6301 // INTCON Bits 6302 6303 extern __at(0x0FF2) __sfr INTCON; 6304 6305 typedef union 6306 { 6307 struct 6308 { 6309 unsigned RBIF : 1; 6310 unsigned INT0IF : 1; 6311 unsigned TMR0IF : 1; 6312 unsigned RBIE : 1; 6313 unsigned INT0IE : 1; 6314 unsigned TMR0IE : 1; 6315 unsigned PEIE_GIEL : 1; 6316 unsigned GIE_GIEH : 1; 6317 }; 6318 6319 struct 6320 { 6321 unsigned : 1; 6322 unsigned INT0F : 1; 6323 unsigned T0IF : 1; 6324 unsigned : 1; 6325 unsigned INT0E : 1; 6326 unsigned T0IE : 1; 6327 unsigned PEIE : 1; 6328 unsigned GIE : 1; 6329 }; 6330 6331 struct 6332 { 6333 unsigned : 1; 6334 unsigned : 1; 6335 unsigned : 1; 6336 unsigned : 1; 6337 unsigned : 1; 6338 unsigned : 1; 6339 unsigned GIEL : 1; 6340 unsigned GIEH : 1; 6341 }; 6342 } __INTCONbits_t; 6343 6344 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 6345 6346 #define _RBIF 0x01 6347 #define _INT0IF 0x02 6348 #define _INT0F 0x02 6349 #define _TMR0IF 0x04 6350 #define _T0IF 0x04 6351 #define _RBIE 0x08 6352 #define _INT0IE 0x10 6353 #define _INT0E 0x10 6354 #define _TMR0IE 0x20 6355 #define _T0IE 0x20 6356 #define _PEIE_GIEL 0x40 6357 #define _PEIE 0x40 6358 #define _GIEL 0x40 6359 #define _GIE_GIEH 0x80 6360 #define _GIE 0x80 6361 #define _GIEH 0x80 6362 6363 //============================================================================== 6364 6365 extern __at(0x0FF3) __sfr PROD; 6366 extern __at(0x0FF3) __sfr PRODL; 6367 extern __at(0x0FF4) __sfr PRODH; 6368 extern __at(0x0FF5) __sfr TABLAT; 6369 extern __at(0x0FF6) __sfr TBLPTR; 6370 extern __at(0x0FF6) __sfr TBLPTRL; 6371 extern __at(0x0FF7) __sfr TBLPTRH; 6372 extern __at(0x0FF8) __sfr TBLPTRU; 6373 extern __at(0x0FF9) __sfr PC; 6374 extern __at(0x0FF9) __sfr PCL; 6375 extern __at(0x0FFA) __sfr PCLATH; 6376 extern __at(0x0FFB) __sfr PCLATU; 6377 6378 //============================================================================== 6379 // STKPTR Bits 6380 6381 extern __at(0x0FFC) __sfr STKPTR; 6382 6383 typedef union 6384 { 6385 struct 6386 { 6387 unsigned SP0 : 1; 6388 unsigned SP1 : 1; 6389 unsigned SP2 : 1; 6390 unsigned SP3 : 1; 6391 unsigned SP4 : 1; 6392 unsigned : 1; 6393 unsigned STKUNF : 1; 6394 unsigned STKFUL : 1; 6395 }; 6396 6397 struct 6398 { 6399 unsigned STKPTR0 : 1; 6400 unsigned STKPTR1 : 1; 6401 unsigned STKPTR2 : 1; 6402 unsigned STKPTR3 : 1; 6403 unsigned STKPTR4 : 1; 6404 unsigned : 1; 6405 unsigned : 1; 6406 unsigned STKOVF : 1; 6407 }; 6408 6409 struct 6410 { 6411 unsigned STKPTR : 5; 6412 unsigned : 3; 6413 }; 6414 6415 struct 6416 { 6417 unsigned SP : 5; 6418 unsigned : 3; 6419 }; 6420 } __STKPTRbits_t; 6421 6422 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 6423 6424 #define _SP0 0x01 6425 #define _STKPTR0 0x01 6426 #define _SP1 0x02 6427 #define _STKPTR1 0x02 6428 #define _SP2 0x04 6429 #define _STKPTR2 0x04 6430 #define _SP3 0x08 6431 #define _STKPTR3 0x08 6432 #define _SP4 0x10 6433 #define _STKPTR4 0x10 6434 #define _STKUNF 0x40 6435 #define _STKFUL 0x80 6436 #define _STKOVF 0x80 6437 6438 //============================================================================== 6439 6440 extern __at(0x0FFD) __sfr TOS; 6441 extern __at(0x0FFD) __sfr TOSL; 6442 extern __at(0x0FFE) __sfr TOSH; 6443 extern __at(0x0FFF) __sfr TOSU; 6444 6445 //============================================================================== 6446 // 6447 // Configuration Addresses 6448 // 6449 //============================================================================== 6450 6451 #define __CONFIG1L 0x001FF8 6452 #define __CONFIG1H 0x001FF9 6453 #define __CONFIG2L 0x001FFA 6454 #define __CONFIG2H 0x001FFB 6455 #define __CONFIG3L 0x001FFC 6456 #define __CONFIG3H 0x001FFD 6457 6458 //============================================================================== 6459 6460 #endif // #ifndef __PIC18F83J90_H__ 6461