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