1 /* 2 * This declarations of the PIC16C770 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:03 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 __PIC16C770_H__ 26 #define __PIC16C770_H__ 27 28 //============================================================================== 29 // 30 // Register Addresses 31 // 32 //============================================================================== 33 34 #ifndef NO_ADDR_DEFINES 35 36 #define INDF_ADDR 0x0000 37 #define TMR0_ADDR 0x0001 38 #define PCL_ADDR 0x0002 39 #define STATUS_ADDR 0x0003 40 #define FSR_ADDR 0x0004 41 #define PORTA_ADDR 0x0005 42 #define PORTB_ADDR 0x0006 43 #define PCLATH_ADDR 0x000A 44 #define INTCON_ADDR 0x000B 45 #define PIR1_ADDR 0x000C 46 #define PIR2_ADDR 0x000D 47 #define TMR1_ADDR 0x000E 48 #define TMR1L_ADDR 0x000E 49 #define TMR1H_ADDR 0x000F 50 #define T1CON_ADDR 0x0010 51 #define TMR2_ADDR 0x0011 52 #define T2CON_ADDR 0x0012 53 #define SSPBUF_ADDR 0x0013 54 #define SSPCON_ADDR 0x0014 55 #define CCPR1_ADDR 0x0015 56 #define CCPR1L_ADDR 0x0015 57 #define CCPR1H_ADDR 0x0016 58 #define CCP1CON_ADDR 0x0017 59 #define ADRESH_ADDR 0x001E 60 #define ADCON0_ADDR 0x001F 61 #define OPTION_REG_ADDR 0x0081 62 #define TRISA_ADDR 0x0085 63 #define TRISB_ADDR 0x0086 64 #define PIE1_ADDR 0x008C 65 #define PIE2_ADDR 0x008D 66 #define PCON_ADDR 0x008E 67 #define SSPCON2_ADDR 0x0091 68 #define PR2_ADDR 0x0092 69 #define SSPADD_ADDR 0x0093 70 #define SSPSTAT_ADDR 0x0094 71 #define WPUB_ADDR 0x0095 72 #define IOCB_ADDR 0x0096 73 #define P1DEL_ADDR 0x0097 74 #define REFCON_ADDR 0x009B 75 #define LVDCON_ADDR 0x009C 76 #define ANSEL_ADDR 0x009D 77 #define ADRESL_ADDR 0x009E 78 #define ADCON1_ADDR 0x009F 79 #define PMDATL_ADDR 0x010C 80 #define PMADRL_ADDR 0x010D 81 #define PMDATH_ADDR 0x010E 82 #define PMADRH_ADDR 0x010F 83 #define PMCON1_ADDR 0x018C 84 85 #endif // #ifndef NO_ADDR_DEFINES 86 87 //============================================================================== 88 // 89 // Register Definitions 90 // 91 //============================================================================== 92 93 extern __at(0x0000) __sfr INDF; 94 extern __at(0x0001) __sfr TMR0; 95 extern __at(0x0002) __sfr PCL; 96 97 //============================================================================== 98 // STATUS Bits 99 100 extern __at(0x0003) __sfr STATUS; 101 102 typedef union 103 { 104 struct 105 { 106 unsigned C : 1; 107 unsigned DC : 1; 108 unsigned Z : 1; 109 unsigned NOT_PD : 1; 110 unsigned NOT_TO : 1; 111 unsigned RP0 : 1; 112 unsigned RP1 : 1; 113 unsigned IRP : 1; 114 }; 115 116 struct 117 { 118 unsigned : 5; 119 unsigned RP : 2; 120 unsigned : 1; 121 }; 122 } __STATUSbits_t; 123 124 extern __at(0x0003) volatile __STATUSbits_t STATUSbits; 125 126 #define _C 0x01 127 #define _DC 0x02 128 #define _Z 0x04 129 #define _NOT_PD 0x08 130 #define _NOT_TO 0x10 131 #define _RP0 0x20 132 #define _RP1 0x40 133 #define _IRP 0x80 134 135 //============================================================================== 136 137 extern __at(0x0004) __sfr FSR; 138 139 //============================================================================== 140 // PORTA Bits 141 142 extern __at(0x0005) __sfr PORTA; 143 144 typedef struct 145 { 146 unsigned RA0 : 1; 147 unsigned RA1 : 1; 148 unsigned RA2 : 1; 149 unsigned RA3 : 1; 150 unsigned RA4 : 1; 151 unsigned RA5 : 1; 152 unsigned RA6 : 1; 153 unsigned RA7 : 1; 154 } __PORTAbits_t; 155 156 extern __at(0x0005) volatile __PORTAbits_t PORTAbits; 157 158 #define _RA0 0x01 159 #define _RA1 0x02 160 #define _RA2 0x04 161 #define _RA3 0x08 162 #define _RA4 0x10 163 #define _RA5 0x20 164 #define _RA6 0x40 165 #define _RA7 0x80 166 167 //============================================================================== 168 169 170 //============================================================================== 171 // PORTB Bits 172 173 extern __at(0x0006) __sfr PORTB; 174 175 typedef struct 176 { 177 unsigned RB0 : 1; 178 unsigned RB1 : 1; 179 unsigned RB2 : 1; 180 unsigned RB3 : 1; 181 unsigned RB4 : 1; 182 unsigned RB5 : 1; 183 unsigned RB6 : 1; 184 unsigned RB7 : 1; 185 } __PORTBbits_t; 186 187 extern __at(0x0006) volatile __PORTBbits_t PORTBbits; 188 189 #define _RB0 0x01 190 #define _RB1 0x02 191 #define _RB2 0x04 192 #define _RB3 0x08 193 #define _RB4 0x10 194 #define _RB5 0x20 195 #define _RB6 0x40 196 #define _RB7 0x80 197 198 //============================================================================== 199 200 extern __at(0x000A) __sfr PCLATH; 201 202 //============================================================================== 203 // INTCON Bits 204 205 extern __at(0x000B) __sfr INTCON; 206 207 typedef union 208 { 209 struct 210 { 211 unsigned RBIF : 1; 212 unsigned INTF : 1; 213 unsigned T0IF : 1; 214 unsigned RBIE : 1; 215 unsigned INTE : 1; 216 unsigned T0IE : 1; 217 unsigned PEIE : 1; 218 unsigned GIE : 1; 219 }; 220 221 struct 222 { 223 unsigned : 1; 224 unsigned : 1; 225 unsigned TMR0IF : 1; 226 unsigned : 1; 227 unsigned : 1; 228 unsigned TMR0IE : 1; 229 unsigned : 1; 230 unsigned : 1; 231 }; 232 } __INTCONbits_t; 233 234 extern __at(0x000B) volatile __INTCONbits_t INTCONbits; 235 236 #define _RBIF 0x01 237 #define _INTF 0x02 238 #define _T0IF 0x04 239 #define _TMR0IF 0x04 240 #define _RBIE 0x08 241 #define _INTE 0x10 242 #define _T0IE 0x20 243 #define _TMR0IE 0x20 244 #define _PEIE 0x40 245 #define _GIE 0x80 246 247 //============================================================================== 248 249 250 //============================================================================== 251 // PIR1 Bits 252 253 extern __at(0x000C) __sfr PIR1; 254 255 typedef struct 256 { 257 unsigned TMR1IF : 1; 258 unsigned TMR2IF : 1; 259 unsigned CCP1IF : 1; 260 unsigned SSPIF : 1; 261 unsigned : 1; 262 unsigned : 1; 263 unsigned ADIF : 1; 264 unsigned : 1; 265 } __PIR1bits_t; 266 267 extern __at(0x000C) volatile __PIR1bits_t PIR1bits; 268 269 #define _TMR1IF 0x01 270 #define _TMR2IF 0x02 271 #define _CCP1IF 0x04 272 #define _SSPIF 0x08 273 #define _ADIF 0x40 274 275 //============================================================================== 276 277 278 //============================================================================== 279 // PIR2 Bits 280 281 extern __at(0x000D) __sfr PIR2; 282 283 typedef struct 284 { 285 unsigned : 1; 286 unsigned : 1; 287 unsigned : 1; 288 unsigned BCLIF : 1; 289 unsigned : 1; 290 unsigned : 1; 291 unsigned : 1; 292 unsigned LVDIF : 1; 293 } __PIR2bits_t; 294 295 extern __at(0x000D) volatile __PIR2bits_t PIR2bits; 296 297 #define _BCLIF 0x08 298 #define _LVDIF 0x80 299 300 //============================================================================== 301 302 extern __at(0x000E) __sfr TMR1; 303 extern __at(0x000E) __sfr TMR1L; 304 extern __at(0x000F) __sfr TMR1H; 305 306 //============================================================================== 307 // T1CON Bits 308 309 extern __at(0x0010) __sfr T1CON; 310 311 typedef union 312 { 313 struct 314 { 315 unsigned TMR1ON : 1; 316 unsigned TMR1CS : 1; 317 unsigned NOT_T1SYNC : 1; 318 unsigned T1OSCEN : 1; 319 unsigned T1CKPS0 : 1; 320 unsigned T1CKPS1 : 1; 321 unsigned : 1; 322 unsigned : 1; 323 }; 324 325 struct 326 { 327 unsigned : 1; 328 unsigned : 1; 329 unsigned T1INSYNC : 1; 330 unsigned : 1; 331 unsigned : 1; 332 unsigned : 1; 333 unsigned : 1; 334 unsigned : 1; 335 }; 336 337 struct 338 { 339 unsigned : 4; 340 unsigned T1CKPS : 2; 341 unsigned : 2; 342 }; 343 } __T1CONbits_t; 344 345 extern __at(0x0010) volatile __T1CONbits_t T1CONbits; 346 347 #define _TMR1ON 0x01 348 #define _TMR1CS 0x02 349 #define _NOT_T1SYNC 0x04 350 #define _T1INSYNC 0x04 351 #define _T1OSCEN 0x08 352 #define _T1CKPS0 0x10 353 #define _T1CKPS1 0x20 354 355 //============================================================================== 356 357 extern __at(0x0011) __sfr TMR2; 358 359 //============================================================================== 360 // T2CON Bits 361 362 extern __at(0x0012) __sfr T2CON; 363 364 typedef union 365 { 366 struct 367 { 368 unsigned T2CKPS0 : 1; 369 unsigned T2CKPS1 : 1; 370 unsigned TMR2ON : 1; 371 unsigned TOUTPS0 : 1; 372 unsigned TOUTPS1 : 1; 373 unsigned TOUTPS2 : 1; 374 unsigned TOUTPS3 : 1; 375 unsigned : 1; 376 }; 377 378 struct 379 { 380 unsigned T2CKPS : 2; 381 unsigned : 6; 382 }; 383 384 struct 385 { 386 unsigned : 3; 387 unsigned TOUTPS : 4; 388 unsigned : 1; 389 }; 390 } __T2CONbits_t; 391 392 extern __at(0x0012) volatile __T2CONbits_t T2CONbits; 393 394 #define _T2CKPS0 0x01 395 #define _T2CKPS1 0x02 396 #define _TMR2ON 0x04 397 #define _TOUTPS0 0x08 398 #define _TOUTPS1 0x10 399 #define _TOUTPS2 0x20 400 #define _TOUTPS3 0x40 401 402 //============================================================================== 403 404 extern __at(0x0013) __sfr SSPBUF; 405 406 //============================================================================== 407 // SSPCON Bits 408 409 extern __at(0x0014) __sfr SSPCON; 410 411 typedef union 412 { 413 struct 414 { 415 unsigned SSPM0 : 1; 416 unsigned SSPM1 : 1; 417 unsigned SSPM2 : 1; 418 unsigned SSPM3 : 1; 419 unsigned CKP : 1; 420 unsigned SSPEN : 1; 421 unsigned SSPOV : 1; 422 unsigned WCOL : 1; 423 }; 424 425 struct 426 { 427 unsigned SSPM : 4; 428 unsigned : 4; 429 }; 430 } __SSPCONbits_t; 431 432 extern __at(0x0014) volatile __SSPCONbits_t SSPCONbits; 433 434 #define _SSPM0 0x01 435 #define _SSPM1 0x02 436 #define _SSPM2 0x04 437 #define _SSPM3 0x08 438 #define _CKP 0x10 439 #define _SSPEN 0x20 440 #define _SSPOV 0x40 441 #define _WCOL 0x80 442 443 //============================================================================== 444 445 extern __at(0x0015) __sfr CCPR1; 446 extern __at(0x0015) __sfr CCPR1L; 447 extern __at(0x0016) __sfr CCPR1H; 448 449 //============================================================================== 450 // CCP1CON Bits 451 452 extern __at(0x0017) __sfr CCP1CON; 453 454 typedef union 455 { 456 struct 457 { 458 unsigned CCP1M0 : 1; 459 unsigned CCP1M1 : 1; 460 unsigned CCP1M2 : 1; 461 unsigned CCP1M3 : 1; 462 unsigned DC1B0 : 1; 463 unsigned DC1B1 : 1; 464 unsigned PWM1M0 : 1; 465 unsigned PWM1M1 : 1; 466 }; 467 468 struct 469 { 470 unsigned CCP1M : 4; 471 unsigned : 4; 472 }; 473 474 struct 475 { 476 unsigned : 4; 477 unsigned DC1B : 2; 478 unsigned : 2; 479 }; 480 481 struct 482 { 483 unsigned : 6; 484 unsigned PWM1M : 2; 485 }; 486 } __CCP1CONbits_t; 487 488 extern __at(0x0017) volatile __CCP1CONbits_t CCP1CONbits; 489 490 #define _CCP1M0 0x01 491 #define _CCP1M1 0x02 492 #define _CCP1M2 0x04 493 #define _CCP1M3 0x08 494 #define _DC1B0 0x10 495 #define _DC1B1 0x20 496 #define _PWM1M0 0x40 497 #define _PWM1M1 0x80 498 499 //============================================================================== 500 501 extern __at(0x001E) __sfr ADRESH; 502 503 //============================================================================== 504 // ADCON0 Bits 505 506 extern __at(0x001F) __sfr ADCON0; 507 508 typedef union 509 { 510 struct 511 { 512 unsigned ADON : 1; 513 unsigned CHS3 : 1; 514 unsigned GO_NOT_DONE : 1; 515 unsigned CHS0 : 1; 516 unsigned CHS1 : 1; 517 unsigned CHS2 : 1; 518 unsigned ADCS0 : 1; 519 unsigned ADCS1 : 1; 520 }; 521 522 struct 523 { 524 unsigned : 1; 525 unsigned : 1; 526 unsigned GO : 1; 527 unsigned : 1; 528 unsigned : 1; 529 unsigned : 1; 530 unsigned : 1; 531 unsigned : 1; 532 }; 533 534 struct 535 { 536 unsigned : 1; 537 unsigned : 1; 538 unsigned NOT_DONE : 1; 539 unsigned : 1; 540 unsigned : 1; 541 unsigned : 1; 542 unsigned : 1; 543 unsigned : 1; 544 }; 545 546 struct 547 { 548 unsigned : 1; 549 unsigned : 1; 550 unsigned GO_DONE : 1; 551 unsigned : 1; 552 unsigned : 1; 553 unsigned : 1; 554 unsigned : 1; 555 unsigned : 1; 556 }; 557 558 struct 559 { 560 unsigned : 6; 561 unsigned ADCS : 2; 562 }; 563 } __ADCON0bits_t; 564 565 extern __at(0x001F) volatile __ADCON0bits_t ADCON0bits; 566 567 #define _ADON 0x01 568 #define _CHS3 0x02 569 #define _GO_NOT_DONE 0x04 570 #define _GO 0x04 571 #define _NOT_DONE 0x04 572 #define _GO_DONE 0x04 573 #define _CHS0 0x08 574 #define _CHS1 0x10 575 #define _CHS2 0x20 576 #define _ADCS0 0x40 577 #define _ADCS1 0x80 578 579 //============================================================================== 580 581 582 //============================================================================== 583 // OPTION_REG Bits 584 585 extern __at(0x0081) __sfr OPTION_REG; 586 587 typedef union 588 { 589 struct 590 { 591 unsigned PS0 : 1; 592 unsigned PS1 : 1; 593 unsigned PS2 : 1; 594 unsigned PSA : 1; 595 unsigned T0SE : 1; 596 unsigned T0CS : 1; 597 unsigned INTEDG : 1; 598 unsigned NOT_RBPU : 1; 599 }; 600 601 struct 602 { 603 unsigned PS : 3; 604 unsigned : 5; 605 }; 606 } __OPTION_REGbits_t; 607 608 extern __at(0x0081) volatile __OPTION_REGbits_t OPTION_REGbits; 609 610 #define _PS0 0x01 611 #define _PS1 0x02 612 #define _PS2 0x04 613 #define _PSA 0x08 614 #define _T0SE 0x10 615 #define _T0CS 0x20 616 #define _INTEDG 0x40 617 #define _NOT_RBPU 0x80 618 619 //============================================================================== 620 621 622 //============================================================================== 623 // TRISA Bits 624 625 extern __at(0x0085) __sfr TRISA; 626 627 typedef struct 628 { 629 unsigned TRISA0 : 1; 630 unsigned TRISA1 : 1; 631 unsigned TRISA2 : 1; 632 unsigned TRISA3 : 1; 633 unsigned TRISA4 : 1; 634 unsigned TRISA5 : 1; 635 unsigned TRISA6 : 1; 636 unsigned TRISA7 : 1; 637 } __TRISAbits_t; 638 639 extern __at(0x0085) volatile __TRISAbits_t TRISAbits; 640 641 #define _TRISA0 0x01 642 #define _TRISA1 0x02 643 #define _TRISA2 0x04 644 #define _TRISA3 0x08 645 #define _TRISA4 0x10 646 #define _TRISA5 0x20 647 #define _TRISA6 0x40 648 #define _TRISA7 0x80 649 650 //============================================================================== 651 652 653 //============================================================================== 654 // TRISB Bits 655 656 extern __at(0x0086) __sfr TRISB; 657 658 typedef struct 659 { 660 unsigned TRISB0 : 1; 661 unsigned TRISB1 : 1; 662 unsigned TRISB2 : 1; 663 unsigned TRISB3 : 1; 664 unsigned TRISB4 : 1; 665 unsigned TRISB5 : 1; 666 unsigned TRISB6 : 1; 667 unsigned TRISB7 : 1; 668 } __TRISBbits_t; 669 670 extern __at(0x0086) volatile __TRISBbits_t TRISBbits; 671 672 #define _TRISB0 0x01 673 #define _TRISB1 0x02 674 #define _TRISB2 0x04 675 #define _TRISB3 0x08 676 #define _TRISB4 0x10 677 #define _TRISB5 0x20 678 #define _TRISB6 0x40 679 #define _TRISB7 0x80 680 681 //============================================================================== 682 683 684 //============================================================================== 685 // PIE1 Bits 686 687 extern __at(0x008C) __sfr PIE1; 688 689 typedef struct 690 { 691 unsigned TMR1IE : 1; 692 unsigned TMR2IE : 1; 693 unsigned CCP1IE : 1; 694 unsigned SSPIE : 1; 695 unsigned : 1; 696 unsigned : 1; 697 unsigned ADIE : 1; 698 unsigned : 1; 699 } __PIE1bits_t; 700 701 extern __at(0x008C) volatile __PIE1bits_t PIE1bits; 702 703 #define _TMR1IE 0x01 704 #define _TMR2IE 0x02 705 #define _CCP1IE 0x04 706 #define _SSPIE 0x08 707 #define _ADIE 0x40 708 709 //============================================================================== 710 711 712 //============================================================================== 713 // PIE2 Bits 714 715 extern __at(0x008D) __sfr PIE2; 716 717 typedef struct 718 { 719 unsigned : 1; 720 unsigned : 1; 721 unsigned : 1; 722 unsigned BCLIE : 1; 723 unsigned : 1; 724 unsigned : 1; 725 unsigned : 1; 726 unsigned LVDIE : 1; 727 } __PIE2bits_t; 728 729 extern __at(0x008D) volatile __PIE2bits_t PIE2bits; 730 731 #define _BCLIE 0x08 732 #define _LVDIE 0x80 733 734 //============================================================================== 735 736 737 //============================================================================== 738 // PCON Bits 739 740 extern __at(0x008E) __sfr PCON; 741 742 typedef union 743 { 744 struct 745 { 746 unsigned NOT_BOR : 1; 747 unsigned NOT_POR : 1; 748 unsigned : 1; 749 unsigned OSCF : 1; 750 unsigned : 1; 751 unsigned : 1; 752 unsigned : 1; 753 unsigned : 1; 754 }; 755 756 struct 757 { 758 unsigned NOT_BO : 1; 759 unsigned : 1; 760 unsigned : 1; 761 unsigned : 1; 762 unsigned : 1; 763 unsigned : 1; 764 unsigned : 1; 765 unsigned : 1; 766 }; 767 } __PCONbits_t; 768 769 extern __at(0x008E) volatile __PCONbits_t PCONbits; 770 771 #define _NOT_BOR 0x01 772 #define _NOT_BO 0x01 773 #define _NOT_POR 0x02 774 #define _OSCF 0x08 775 776 //============================================================================== 777 778 779 //============================================================================== 780 // SSPCON2 Bits 781 782 extern __at(0x0091) __sfr SSPCON2; 783 784 typedef struct 785 { 786 unsigned SEN : 1; 787 unsigned RSEN : 1; 788 unsigned PEN : 1; 789 unsigned RCEN : 1; 790 unsigned ACKEN : 1; 791 unsigned ACKDT : 1; 792 unsigned ACKSTAT : 1; 793 unsigned GCEN : 1; 794 } __SSPCON2bits_t; 795 796 extern __at(0x0091) volatile __SSPCON2bits_t SSPCON2bits; 797 798 #define _SEN 0x01 799 #define _RSEN 0x02 800 #define _PEN 0x04 801 #define _RCEN 0x08 802 #define _ACKEN 0x10 803 #define _ACKDT 0x20 804 #define _ACKSTAT 0x40 805 #define _GCEN 0x80 806 807 //============================================================================== 808 809 extern __at(0x0092) __sfr PR2; 810 extern __at(0x0093) __sfr SSPADD; 811 812 //============================================================================== 813 // SSPSTAT Bits 814 815 extern __at(0x0094) __sfr SSPSTAT; 816 817 typedef union 818 { 819 struct 820 { 821 unsigned BF : 1; 822 unsigned UA : 1; 823 unsigned R_NOT_W : 1; 824 unsigned S : 1; 825 unsigned P : 1; 826 unsigned D_NOT_A : 1; 827 unsigned CKE : 1; 828 unsigned SMP : 1; 829 }; 830 831 struct 832 { 833 unsigned : 1; 834 unsigned : 1; 835 unsigned R : 1; 836 unsigned I2C_START : 1; 837 unsigned I2C_STOP : 1; 838 unsigned D : 1; 839 unsigned : 1; 840 unsigned : 1; 841 }; 842 843 struct 844 { 845 unsigned : 1; 846 unsigned : 1; 847 unsigned I2C_READ : 1; 848 unsigned : 1; 849 unsigned : 1; 850 unsigned I2C_DATA : 1; 851 unsigned : 1; 852 unsigned : 1; 853 }; 854 855 struct 856 { 857 unsigned : 1; 858 unsigned : 1; 859 unsigned R_W : 1; 860 unsigned : 1; 861 unsigned : 1; 862 unsigned D_A : 1; 863 unsigned : 1; 864 unsigned : 1; 865 }; 866 867 struct 868 { 869 unsigned : 1; 870 unsigned : 1; 871 unsigned READ_WRITE : 1; 872 unsigned : 1; 873 unsigned : 1; 874 unsigned DATA_ADDRESS : 1; 875 unsigned : 1; 876 unsigned : 1; 877 }; 878 879 struct 880 { 881 unsigned : 1; 882 unsigned : 1; 883 unsigned NOT_W : 1; 884 unsigned : 1; 885 unsigned : 1; 886 unsigned NOT_A : 1; 887 unsigned : 1; 888 unsigned : 1; 889 }; 890 891 struct 892 { 893 unsigned : 1; 894 unsigned : 1; 895 unsigned NOT_WRITE : 1; 896 unsigned : 1; 897 unsigned : 1; 898 unsigned NOT_ADDRESS : 1; 899 unsigned : 1; 900 unsigned : 1; 901 }; 902 } __SSPSTATbits_t; 903 904 extern __at(0x0094) volatile __SSPSTATbits_t SSPSTATbits; 905 906 #define _BF 0x01 907 #define _UA 0x02 908 #define _R_NOT_W 0x04 909 #define _R 0x04 910 #define _I2C_READ 0x04 911 #define _R_W 0x04 912 #define _READ_WRITE 0x04 913 #define _NOT_W 0x04 914 #define _NOT_WRITE 0x04 915 #define _S 0x08 916 #define _I2C_START 0x08 917 #define _P 0x10 918 #define _I2C_STOP 0x10 919 #define _D_NOT_A 0x20 920 #define _D 0x20 921 #define _I2C_DATA 0x20 922 #define _D_A 0x20 923 #define _DATA_ADDRESS 0x20 924 #define _NOT_A 0x20 925 #define _NOT_ADDRESS 0x20 926 #define _CKE 0x40 927 #define _SMP 0x80 928 929 //============================================================================== 930 931 932 //============================================================================== 933 // WPUB Bits 934 935 extern __at(0x0095) __sfr WPUB; 936 937 typedef struct 938 { 939 unsigned WPUB0 : 1; 940 unsigned WPUB1 : 1; 941 unsigned WPUB2 : 1; 942 unsigned WPUB3 : 1; 943 unsigned WPUB4 : 1; 944 unsigned WPUB5 : 1; 945 unsigned WPUB6 : 1; 946 unsigned WPUB7 : 1; 947 } __WPUBbits_t; 948 949 extern __at(0x0095) volatile __WPUBbits_t WPUBbits; 950 951 #define _WPUB0 0x01 952 #define _WPUB1 0x02 953 #define _WPUB2 0x04 954 #define _WPUB3 0x08 955 #define _WPUB4 0x10 956 #define _WPUB5 0x20 957 #define _WPUB6 0x40 958 #define _WPUB7 0x80 959 960 //============================================================================== 961 962 963 //============================================================================== 964 // IOCB Bits 965 966 extern __at(0x0096) __sfr IOCB; 967 968 typedef struct 969 { 970 unsigned IOCB0 : 1; 971 unsigned IOCB1 : 1; 972 unsigned IOCB2 : 1; 973 unsigned IOCB3 : 1; 974 unsigned IOCB4 : 1; 975 unsigned IOCB5 : 1; 976 unsigned IOCB6 : 1; 977 unsigned IOCB7 : 1; 978 } __IOCBbits_t; 979 980 extern __at(0x0096) volatile __IOCBbits_t IOCBbits; 981 982 #define _IOCB0 0x01 983 #define _IOCB1 0x02 984 #define _IOCB2 0x04 985 #define _IOCB3 0x08 986 #define _IOCB4 0x10 987 #define _IOCB5 0x20 988 #define _IOCB6 0x40 989 #define _IOCB7 0x80 990 991 //============================================================================== 992 993 extern __at(0x0097) __sfr P1DEL; 994 995 //============================================================================== 996 // REFCON Bits 997 998 extern __at(0x009B) __sfr REFCON; 999 1000 typedef struct 1001 { 1002 unsigned : 1; 1003 unsigned : 1; 1004 unsigned : 1; 1005 unsigned : 1; 1006 unsigned VRLOEN : 1; 1007 unsigned VRHOEN : 1; 1008 unsigned VRLEN : 1; 1009 unsigned VRHEN : 1; 1010 } __REFCONbits_t; 1011 1012 extern __at(0x009B) volatile __REFCONbits_t REFCONbits; 1013 1014 #define _VRLOEN 0x10 1015 #define _VRHOEN 0x20 1016 #define _VRLEN 0x40 1017 #define _VRHEN 0x80 1018 1019 //============================================================================== 1020 1021 1022 //============================================================================== 1023 // LVDCON Bits 1024 1025 extern __at(0x009C) __sfr LVDCON; 1026 1027 typedef union 1028 { 1029 struct 1030 { 1031 unsigned LV0 : 1; 1032 unsigned LV1 : 1; 1033 unsigned LV2 : 1; 1034 unsigned LV3 : 1; 1035 unsigned LVDEN : 1; 1036 unsigned BGST : 1; 1037 unsigned : 1; 1038 unsigned : 1; 1039 }; 1040 1041 struct 1042 { 1043 unsigned LV : 4; 1044 unsigned : 4; 1045 }; 1046 } __LVDCONbits_t; 1047 1048 extern __at(0x009C) volatile __LVDCONbits_t LVDCONbits; 1049 1050 #define _LV0 0x01 1051 #define _LV1 0x02 1052 #define _LV2 0x04 1053 #define _LV3 0x08 1054 #define _LVDEN 0x10 1055 #define _BGST 0x20 1056 1057 //============================================================================== 1058 1059 1060 //============================================================================== 1061 // ANSEL Bits 1062 1063 extern __at(0x009D) __sfr ANSEL; 1064 1065 typedef union 1066 { 1067 struct 1068 { 1069 unsigned ANS0 : 1; 1070 unsigned ANS1 : 1; 1071 unsigned ANS2 : 1; 1072 unsigned ANS3 : 1; 1073 unsigned ANS4 : 1; 1074 unsigned ANS5 : 1; 1075 unsigned : 1; 1076 unsigned : 1; 1077 }; 1078 1079 struct 1080 { 1081 unsigned ANS : 6; 1082 unsigned : 2; 1083 }; 1084 } __ANSELbits_t; 1085 1086 extern __at(0x009D) volatile __ANSELbits_t ANSELbits; 1087 1088 #define _ANS0 0x01 1089 #define _ANS1 0x02 1090 #define _ANS2 0x04 1091 #define _ANS3 0x08 1092 #define _ANS4 0x10 1093 #define _ANS5 0x20 1094 1095 //============================================================================== 1096 1097 extern __at(0x009E) __sfr ADRESL; 1098 1099 //============================================================================== 1100 // ADCON1 Bits 1101 1102 extern __at(0x009F) __sfr ADCON1; 1103 1104 typedef union 1105 { 1106 struct 1107 { 1108 unsigned : 1; 1109 unsigned : 1; 1110 unsigned : 1; 1111 unsigned : 1; 1112 unsigned VCFG0 : 1; 1113 unsigned VCFG1 : 1; 1114 unsigned VCFG2 : 1; 1115 unsigned ADFM : 1; 1116 }; 1117 1118 struct 1119 { 1120 unsigned : 4; 1121 unsigned VCFG : 3; 1122 unsigned : 1; 1123 }; 1124 } __ADCON1bits_t; 1125 1126 extern __at(0x009F) volatile __ADCON1bits_t ADCON1bits; 1127 1128 #define _VCFG0 0x10 1129 #define _VCFG1 0x20 1130 #define _VCFG2 0x40 1131 #define _ADFM 0x80 1132 1133 //============================================================================== 1134 1135 extern __at(0x010C) __sfr PMDATL; 1136 extern __at(0x010D) __sfr PMADRL; 1137 extern __at(0x010E) __sfr PMDATH; 1138 extern __at(0x010F) __sfr PMADRH; 1139 1140 //============================================================================== 1141 // PMCON1 Bits 1142 1143 extern __at(0x018C) __sfr PMCON1; 1144 1145 typedef struct 1146 { 1147 unsigned RD : 1; 1148 unsigned : 1; 1149 unsigned : 1; 1150 unsigned : 1; 1151 unsigned : 1; 1152 unsigned : 1; 1153 unsigned : 1; 1154 unsigned : 1; 1155 } __PMCON1bits_t; 1156 1157 extern __at(0x018C) volatile __PMCON1bits_t PMCON1bits; 1158 1159 #define _RD 0x01 1160 1161 //============================================================================== 1162 1163 1164 //============================================================================== 1165 // 1166 // Configuration Bits 1167 // 1168 //============================================================================== 1169 1170 #define _CONFIG1 0x2007 1171 1172 //----------------------------- CONFIG1 Options ------------------------------- 1173 1174 #define _FOSC_LP 0x3FF8 // LP oscillator. 1175 #define _LP_OSC 0x3FF8 // LP oscillator. 1176 #define _FOSC_XT 0x3FF9 // XT oscillator. 1177 #define _XT_OSC 0x3FF9 // XT oscillator. 1178 #define _FOSC_HS 0x3FFA // HS oscillator. 1179 #define _HS_OSC 0x3FFA // HS oscillator. 1180 #define _FOSC_EXTCLK 0x3FFB // EC I/O. 1181 #define _EXTCLK_OSC 0x3FFB // EC I/O. 1182 #define _FOSC_INTRCIO 0x3FFC // INTRC, OSC2 is I/O. 1183 #define _INTRC_OSC_NOCLKOUT 0x3FFC // INTRC, OSC2 is I/O. 1184 #define _FOSC_INTRCCLK 0x3FFD // INTRC, clockout on OSC2. 1185 #define _INTRC_OSC_CLKOUT 0x3FFD // INTRC, clockout on OSC2. 1186 #define _FOSC_ER_NOCLKOUT 0x3FFE // ER I/O. 1187 #define _ER_OSC_NOCLKOUT 0x3FFE // ER I/O. 1188 #define _FOSC_ER_CLKOUT 0x3FFF // ER CLKOUT. 1189 #define _ER_OSC_CLKOUT 0x3FFF // ER CLKOUT. 1190 #define _WDTE_OFF 0x3FF7 // WDT disabled. 1191 #define _WDT_OFF 0x3FF7 // WDT disabled. 1192 #define _WDTE_ON 0x3FFF // WDT enabled. 1193 #define _WDT_ON 0x3FFF // WDT enabled. 1194 #define _PWRTE_ON 0x3FEF // PWRT enabled. 1195 #define _PWRTE_OFF 0x3FFF // PWRT disabled. 1196 #define _MCLRE_OFF 0x3FDF // Internal. 1197 #define _MCLRE_ON 0x3FFF // External. 1198 #define _BOREN_OFF 0x3FBF // BOR disabled. 1199 #define _BODEN_OFF 0x3FBF // BOR disabled. 1200 #define _BOREN_ON 0x3FFF // BOR enabled. 1201 #define _BODEN_ON 0x3FFF // BOR enabled. 1202 #define _CP_ALL 0x0CFF // All memory is code protected. 1203 #define _CP_OFF 0x3FFF // Code protection off. 1204 #define _BODENV_45 0x33FF // VBOR set to 4.5V. 1205 #define _VBOR_45 0x33FF // VBOR set to 4.5V. 1206 #define _BODENV_42 0x37FF // VBOR set to 4.2V. 1207 #define _VBOR_42 0x37FF // VBOR set to 4.2V. 1208 #define _BODENV_27 0x3BFF // VBOR set to 2.7V. 1209 #define _VBOR_27 0x3BFF // VBOR set to 2.7V. 1210 #define _BODENV_25 0x3FFF // VBOR set to 2.5V. 1211 #define _VBOR_25 0x3FFF // VBOR set to 2.5V. 1212 1213 //============================================================================== 1214 1215 #define _IDLOC0 0x2000 1216 #define _IDLOC1 0x2001 1217 #define _IDLOC2 0x2002 1218 #define _IDLOC3 0x2003 1219 1220 //============================================================================== 1221 1222 #ifndef NO_BIT_DEFINES 1223 1224 #define ADON ADCON0bits.ADON // bit 0 1225 #define CHS3 ADCON0bits.CHS3 // bit 1 1226 #define GO_NOT_DONE ADCON0bits.GO_NOT_DONE // bit 2, shadows bit in ADCON0bits 1227 #define GO ADCON0bits.GO // bit 2, shadows bit in ADCON0bits 1228 #define NOT_DONE ADCON0bits.NOT_DONE // bit 2, shadows bit in ADCON0bits 1229 #define GO_DONE ADCON0bits.GO_DONE // bit 2, shadows bit in ADCON0bits 1230 #define CHS0 ADCON0bits.CHS0 // bit 3 1231 #define CHS1 ADCON0bits.CHS1 // bit 4 1232 #define CHS2 ADCON0bits.CHS2 // bit 5 1233 #define ADCS0 ADCON0bits.ADCS0 // bit 6 1234 #define ADCS1 ADCON0bits.ADCS1 // bit 7 1235 1236 #define VCFG0 ADCON1bits.VCFG0 // bit 4 1237 #define VCFG1 ADCON1bits.VCFG1 // bit 5 1238 #define VCFG2 ADCON1bits.VCFG2 // bit 6 1239 #define ADFM ADCON1bits.ADFM // bit 7 1240 1241 #define ANS0 ANSELbits.ANS0 // bit 0 1242 #define ANS1 ANSELbits.ANS1 // bit 1 1243 #define ANS2 ANSELbits.ANS2 // bit 2 1244 #define ANS3 ANSELbits.ANS3 // bit 3 1245 #define ANS4 ANSELbits.ANS4 // bit 4 1246 #define ANS5 ANSELbits.ANS5 // bit 5 1247 1248 #define CCP1M0 CCP1CONbits.CCP1M0 // bit 0 1249 #define CCP1M1 CCP1CONbits.CCP1M1 // bit 1 1250 #define CCP1M2 CCP1CONbits.CCP1M2 // bit 2 1251 #define CCP1M3 CCP1CONbits.CCP1M3 // bit 3 1252 #define DC1B0 CCP1CONbits.DC1B0 // bit 4 1253 #define DC1B1 CCP1CONbits.DC1B1 // bit 5 1254 #define PWM1M0 CCP1CONbits.PWM1M0 // bit 6 1255 #define PWM1M1 CCP1CONbits.PWM1M1 // bit 7 1256 1257 #define RBIF INTCONbits.RBIF // bit 0 1258 #define INTF INTCONbits.INTF // bit 1 1259 #define T0IF INTCONbits.T0IF // bit 2, shadows bit in INTCONbits 1260 #define TMR0IF INTCONbits.TMR0IF // bit 2, shadows bit in INTCONbits 1261 #define RBIE INTCONbits.RBIE // bit 3 1262 #define INTE INTCONbits.INTE // bit 4 1263 #define T0IE INTCONbits.T0IE // bit 5, shadows bit in INTCONbits 1264 #define TMR0IE INTCONbits.TMR0IE // bit 5, shadows bit in INTCONbits 1265 #define PEIE INTCONbits.PEIE // bit 6 1266 #define GIE INTCONbits.GIE // bit 7 1267 1268 #define IOCB0 IOCBbits.IOCB0 // bit 0 1269 #define IOCB1 IOCBbits.IOCB1 // bit 1 1270 #define IOCB2 IOCBbits.IOCB2 // bit 2 1271 #define IOCB3 IOCBbits.IOCB3 // bit 3 1272 #define IOCB4 IOCBbits.IOCB4 // bit 4 1273 #define IOCB5 IOCBbits.IOCB5 // bit 5 1274 #define IOCB6 IOCBbits.IOCB6 // bit 6 1275 #define IOCB7 IOCBbits.IOCB7 // bit 7 1276 1277 #define LV0 LVDCONbits.LV0 // bit 0 1278 #define LV1 LVDCONbits.LV1 // bit 1 1279 #define LV2 LVDCONbits.LV2 // bit 2 1280 #define LV3 LVDCONbits.LV3 // bit 3 1281 #define LVDEN LVDCONbits.LVDEN // bit 4 1282 #define BGST LVDCONbits.BGST // bit 5 1283 1284 #define PS0 OPTION_REGbits.PS0 // bit 0 1285 #define PS1 OPTION_REGbits.PS1 // bit 1 1286 #define PS2 OPTION_REGbits.PS2 // bit 2 1287 #define PSA OPTION_REGbits.PSA // bit 3 1288 #define T0SE OPTION_REGbits.T0SE // bit 4 1289 #define T0CS OPTION_REGbits.T0CS // bit 5 1290 #define INTEDG OPTION_REGbits.INTEDG // bit 6 1291 #define NOT_RBPU OPTION_REGbits.NOT_RBPU // bit 7 1292 1293 #define NOT_BOR PCONbits.NOT_BOR // bit 0, shadows bit in PCONbits 1294 #define NOT_BO PCONbits.NOT_BO // bit 0, shadows bit in PCONbits 1295 #define NOT_POR PCONbits.NOT_POR // bit 1 1296 #define OSCF PCONbits.OSCF // bit 3 1297 1298 #define TMR1IE PIE1bits.TMR1IE // bit 0 1299 #define TMR2IE PIE1bits.TMR2IE // bit 1 1300 #define CCP1IE PIE1bits.CCP1IE // bit 2 1301 #define SSPIE PIE1bits.SSPIE // bit 3 1302 #define ADIE PIE1bits.ADIE // bit 6 1303 1304 #define BCLIE PIE2bits.BCLIE // bit 3 1305 #define LVDIE PIE2bits.LVDIE // bit 7 1306 1307 #define TMR1IF PIR1bits.TMR1IF // bit 0 1308 #define TMR2IF PIR1bits.TMR2IF // bit 1 1309 #define CCP1IF PIR1bits.CCP1IF // bit 2 1310 #define SSPIF PIR1bits.SSPIF // bit 3 1311 #define ADIF PIR1bits.ADIF // bit 6 1312 1313 #define BCLIF PIR2bits.BCLIF // bit 3 1314 #define LVDIF PIR2bits.LVDIF // bit 7 1315 1316 #define RD PMCON1bits.RD // bit 0 1317 1318 #define RA0 PORTAbits.RA0 // bit 0 1319 #define RA1 PORTAbits.RA1 // bit 1 1320 #define RA2 PORTAbits.RA2 // bit 2 1321 #define RA3 PORTAbits.RA3 // bit 3 1322 #define RA4 PORTAbits.RA4 // bit 4 1323 #define RA5 PORTAbits.RA5 // bit 5 1324 #define RA6 PORTAbits.RA6 // bit 6 1325 #define RA7 PORTAbits.RA7 // bit 7 1326 1327 #define RB0 PORTBbits.RB0 // bit 0 1328 #define RB1 PORTBbits.RB1 // bit 1 1329 #define RB2 PORTBbits.RB2 // bit 2 1330 #define RB3 PORTBbits.RB3 // bit 3 1331 #define RB4 PORTBbits.RB4 // bit 4 1332 #define RB5 PORTBbits.RB5 // bit 5 1333 #define RB6 PORTBbits.RB6 // bit 6 1334 #define RB7 PORTBbits.RB7 // bit 7 1335 1336 #define VRLOEN REFCONbits.VRLOEN // bit 4 1337 #define VRHOEN REFCONbits.VRHOEN // bit 5 1338 #define VRLEN REFCONbits.VRLEN // bit 6 1339 #define VRHEN REFCONbits.VRHEN // bit 7 1340 1341 #define SSPM0 SSPCONbits.SSPM0 // bit 0 1342 #define SSPM1 SSPCONbits.SSPM1 // bit 1 1343 #define SSPM2 SSPCONbits.SSPM2 // bit 2 1344 #define SSPM3 SSPCONbits.SSPM3 // bit 3 1345 #define CKP SSPCONbits.CKP // bit 4 1346 #define SSPEN SSPCONbits.SSPEN // bit 5 1347 #define SSPOV SSPCONbits.SSPOV // bit 6 1348 #define WCOL SSPCONbits.WCOL // bit 7 1349 1350 #define SEN SSPCON2bits.SEN // bit 0 1351 #define RSEN SSPCON2bits.RSEN // bit 1 1352 #define PEN SSPCON2bits.PEN // bit 2 1353 #define RCEN SSPCON2bits.RCEN // bit 3 1354 #define ACKEN SSPCON2bits.ACKEN // bit 4 1355 #define ACKDT SSPCON2bits.ACKDT // bit 5 1356 #define ACKSTAT SSPCON2bits.ACKSTAT // bit 6 1357 #define GCEN SSPCON2bits.GCEN // bit 7 1358 1359 #define BF SSPSTATbits.BF // bit 0 1360 #define UA SSPSTATbits.UA // bit 1 1361 #define R_NOT_W SSPSTATbits.R_NOT_W // bit 2, shadows bit in SSPSTATbits 1362 #define R SSPSTATbits.R // bit 2, shadows bit in SSPSTATbits 1363 #define I2C_READ SSPSTATbits.I2C_READ // bit 2, shadows bit in SSPSTATbits 1364 #define R_W SSPSTATbits.R_W // bit 2, shadows bit in SSPSTATbits 1365 #define READ_WRITE SSPSTATbits.READ_WRITE // bit 2, shadows bit in SSPSTATbits 1366 #define NOT_W SSPSTATbits.NOT_W // bit 2, shadows bit in SSPSTATbits 1367 #define NOT_WRITE SSPSTATbits.NOT_WRITE // bit 2, shadows bit in SSPSTATbits 1368 #define S SSPSTATbits.S // bit 3, shadows bit in SSPSTATbits 1369 #define I2C_START SSPSTATbits.I2C_START // bit 3, shadows bit in SSPSTATbits 1370 #define P SSPSTATbits.P // bit 4, shadows bit in SSPSTATbits 1371 #define I2C_STOP SSPSTATbits.I2C_STOP // bit 4, shadows bit in SSPSTATbits 1372 #define D_NOT_A SSPSTATbits.D_NOT_A // bit 5, shadows bit in SSPSTATbits 1373 #define D SSPSTATbits.D // bit 5, shadows bit in SSPSTATbits 1374 #define I2C_DATA SSPSTATbits.I2C_DATA // bit 5, shadows bit in SSPSTATbits 1375 #define D_A SSPSTATbits.D_A // bit 5, shadows bit in SSPSTATbits 1376 #define DATA_ADDRESS SSPSTATbits.DATA_ADDRESS // bit 5, shadows bit in SSPSTATbits 1377 #define NOT_A SSPSTATbits.NOT_A // bit 5, shadows bit in SSPSTATbits 1378 #define NOT_ADDRESS SSPSTATbits.NOT_ADDRESS // bit 5, shadows bit in SSPSTATbits 1379 #define CKE SSPSTATbits.CKE // bit 6 1380 #define SMP SSPSTATbits.SMP // bit 7 1381 1382 #define C STATUSbits.C // bit 0 1383 #define DC STATUSbits.DC // bit 1 1384 #define Z STATUSbits.Z // bit 2 1385 #define NOT_PD STATUSbits.NOT_PD // bit 3 1386 #define NOT_TO STATUSbits.NOT_TO // bit 4 1387 #define RP0 STATUSbits.RP0 // bit 5 1388 #define RP1 STATUSbits.RP1 // bit 6 1389 #define IRP STATUSbits.IRP // bit 7 1390 1391 #define TMR1ON T1CONbits.TMR1ON // bit 0 1392 #define TMR1CS T1CONbits.TMR1CS // bit 1 1393 #define NOT_T1SYNC T1CONbits.NOT_T1SYNC // bit 2, shadows bit in T1CONbits 1394 #define T1INSYNC T1CONbits.T1INSYNC // bit 2, shadows bit in T1CONbits 1395 #define T1OSCEN T1CONbits.T1OSCEN // bit 3 1396 #define T1CKPS0 T1CONbits.T1CKPS0 // bit 4 1397 #define T1CKPS1 T1CONbits.T1CKPS1 // bit 5 1398 1399 #define T2CKPS0 T2CONbits.T2CKPS0 // bit 0 1400 #define T2CKPS1 T2CONbits.T2CKPS1 // bit 1 1401 #define TMR2ON T2CONbits.TMR2ON // bit 2 1402 #define TOUTPS0 T2CONbits.TOUTPS0 // bit 3 1403 #define TOUTPS1 T2CONbits.TOUTPS1 // bit 4 1404 #define TOUTPS2 T2CONbits.TOUTPS2 // bit 5 1405 #define TOUTPS3 T2CONbits.TOUTPS3 // bit 6 1406 1407 #define TRISA0 TRISAbits.TRISA0 // bit 0 1408 #define TRISA1 TRISAbits.TRISA1 // bit 1 1409 #define TRISA2 TRISAbits.TRISA2 // bit 2 1410 #define TRISA3 TRISAbits.TRISA3 // bit 3 1411 #define TRISA4 TRISAbits.TRISA4 // bit 4 1412 #define TRISA5 TRISAbits.TRISA5 // bit 5 1413 #define TRISA6 TRISAbits.TRISA6 // bit 6 1414 #define TRISA7 TRISAbits.TRISA7 // bit 7 1415 1416 #define TRISB0 TRISBbits.TRISB0 // bit 0 1417 #define TRISB1 TRISBbits.TRISB1 // bit 1 1418 #define TRISB2 TRISBbits.TRISB2 // bit 2 1419 #define TRISB3 TRISBbits.TRISB3 // bit 3 1420 #define TRISB4 TRISBbits.TRISB4 // bit 4 1421 #define TRISB5 TRISBbits.TRISB5 // bit 5 1422 #define TRISB6 TRISBbits.TRISB6 // bit 6 1423 #define TRISB7 TRISBbits.TRISB7 // bit 7 1424 1425 #define WPUB0 WPUBbits.WPUB0 // bit 0 1426 #define WPUB1 WPUBbits.WPUB1 // bit 1 1427 #define WPUB2 WPUBbits.WPUB2 // bit 2 1428 #define WPUB3 WPUBbits.WPUB3 // bit 3 1429 #define WPUB4 WPUBbits.WPUB4 // bit 4 1430 #define WPUB5 WPUBbits.WPUB5 // bit 5 1431 #define WPUB6 WPUBbits.WPUB6 // bit 6 1432 #define WPUB7 WPUBbits.WPUB7 // bit 7 1433 1434 #endif // #ifndef NO_BIT_DEFINES 1435 1436 #endif // #ifndef __PIC16C770_H__ 1437