1 LIST 2 3;========================================================================== 4; Build date : Oct 21 2015 5; MPASM PIC16F874 processor include 6; 7; (c) Copyright 1999-2015 Microchip Technology, All rights reserved 8;========================================================================== 9 10 NOLIST 11 12;========================================================================== 13; This header file defines configurations, registers, and other useful 14; bits of information for the PIC16F874 microcontroller. These names 15; are taken to match the data sheets as closely as possible. 16; 17; Note that the processor must be selected before this file is included. 18; The processor may be selected the following ways: 19; 20; 1. Command line switch: 21; C:\MPASM MYFILE.ASM /PIC16F874 22; 2. LIST directive in the source file 23; LIST P=PIC16F874 24; 3. Processor Type entry in the MPASM full-screen interface 25; 4. Setting the processor in the MPLAB Project Dialog 26;========================================================================== 27 28;========================================================================== 29; 30; Verify Processor 31; 32;========================================================================== 33 IFNDEF __16F874 34 MESSG "Processor-header file mismatch. Verify selected processor." 35 ENDIF 36 37 38 39;========================================================================== 40; 41; Register Definitions 42; 43;========================================================================== 44 45W EQU H'0000' 46F EQU H'0001' 47 48;----- Register Files ----------------------------------------------------- 49 50;-----Bank0------------------ 51INDF EQU H'0000' 52TMR0 EQU H'0001' 53PCL EQU H'0002' 54STATUS EQU H'0003' 55FSR EQU H'0004' 56PORTA EQU H'0005' 57PORTB EQU H'0006' 58PORTC EQU H'0007' 59PORTD EQU H'0008' 60PORTE EQU H'0009' 61PCLATH EQU H'000A' 62INTCON EQU H'000B' 63PIR1 EQU H'000C' 64PIR2 EQU H'000D' 65TMR1 EQU H'000E' 66TMR1L EQU H'000E' 67TMR1H EQU H'000F' 68T1CON EQU H'0010' 69TMR2 EQU H'0011' 70T2CON EQU H'0012' 71SSPBUF EQU H'0013' 72SSPCON EQU H'0014' 73CCPR1 EQU H'0015' 74CCPR1L EQU H'0015' 75CCPR1H EQU H'0016' 76CCP1CON EQU H'0017' 77RCSTA EQU H'0018' 78TXREG EQU H'0019' 79RCREG EQU H'001A' 80CCPR2 EQU H'001B' 81CCPR2L EQU H'001B' 82CCPR2H EQU H'001C' 83CCP2CON EQU H'001D' 84ADRESH EQU H'001E' 85ADCON0 EQU H'001F' 86 87;-----Bank1------------------ 88OPTION_REG EQU H'0081' 89TRISA EQU H'0085' 90TRISB EQU H'0086' 91TRISC EQU H'0087' 92TRISD EQU H'0088' 93TRISE EQU H'0089' 94PIE1 EQU H'008C' 95PIE2 EQU H'008D' 96PCON EQU H'008E' 97SSPCON2 EQU H'0091' 98PR2 EQU H'0092' 99SSPADD EQU H'0093' 100SSPSTAT EQU H'0094' 101TXSTA EQU H'0098' 102SPBRG EQU H'0099' 103ADRESL EQU H'009E' 104ADCON1 EQU H'009F' 105 106;-----Bank2------------------ 107EEDATA EQU H'010C' 108EEADR EQU H'010D' 109EEDATH EQU H'010E' 110EEADRH EQU H'010F' 111 112;-----Bank3------------------ 113EECON1 EQU H'018C' 114EECON2 EQU H'018D' 115 116;----- STATUS Bits ----------------------------------------------------- 117C EQU H'0000' 118DC EQU H'0001' 119Z EQU H'0002' 120NOT_PD EQU H'0003' 121NOT_TO EQU H'0004' 122IRP EQU H'0007' 123 124RP0 EQU H'0005' 125RP1 EQU H'0006' 126 127 128;----- PORTA Bits ----------------------------------------------------- 129RA0 EQU H'0000' 130RA1 EQU H'0001' 131RA2 EQU H'0002' 132RA3 EQU H'0003' 133RA4 EQU H'0004' 134RA5 EQU H'0005' 135 136 137;----- PORTB Bits ----------------------------------------------------- 138RB0 EQU H'0000' 139RB1 EQU H'0001' 140RB2 EQU H'0002' 141RB3 EQU H'0003' 142RB4 EQU H'0004' 143RB5 EQU H'0005' 144RB6 EQU H'0006' 145RB7 EQU H'0007' 146 147 148;----- PORTC Bits ----------------------------------------------------- 149RC0 EQU H'0000' 150RC1 EQU H'0001' 151RC2 EQU H'0002' 152RC3 EQU H'0003' 153RC4 EQU H'0004' 154RC5 EQU H'0005' 155RC6 EQU H'0006' 156RC7 EQU H'0007' 157 158 159;----- PORTD Bits ----------------------------------------------------- 160RD0 EQU H'0000' 161RD1 EQU H'0001' 162RD2 EQU H'0002' 163RD3 EQU H'0003' 164RD4 EQU H'0004' 165RD5 EQU H'0005' 166RD6 EQU H'0006' 167RD7 EQU H'0007' 168 169 170;----- PORTE Bits ----------------------------------------------------- 171RE0 EQU H'0000' 172RE1 EQU H'0001' 173RE2 EQU H'0002' 174 175 176;----- INTCON Bits ----------------------------------------------------- 177RBIF EQU H'0000' 178INTF EQU H'0001' 179T0IF EQU H'0002' 180RBIE EQU H'0003' 181INTE EQU H'0004' 182T0IE EQU H'0005' 183PEIE EQU H'0006' 184GIE EQU H'0007' 185 186TMR0IF EQU H'0002' 187TMR0IE EQU H'0005' 188 189 190;----- PIR1 Bits ----------------------------------------------------- 191TMR1IF EQU H'0000' 192TMR2IF EQU H'0001' 193CCP1IF EQU H'0002' 194SSPIF EQU H'0003' 195TXIF EQU H'0004' 196RCIF EQU H'0005' 197ADIF EQU H'0006' 198PSPIF EQU H'0007' 199 200 201;----- PIR2 Bits ----------------------------------------------------- 202CCP2IF EQU H'0000' 203BCLIF EQU H'0003' 204EEIF EQU H'0004' 205 206 207;----- T1CON Bits ----------------------------------------------------- 208TMR1ON EQU H'0000' 209TMR1CS EQU H'0001' 210NOT_T1SYNC EQU H'0002' 211T1OSCEN EQU H'0003' 212 213T1CKPS0 EQU H'0004' 214T1CKPS1 EQU H'0005' 215 216T1INSYNC EQU H'0002' 217 218T1SYNC EQU H'0002' 219 220 221;----- T2CON Bits ----------------------------------------------------- 222TMR2ON EQU H'0002' 223 224T2CKPS0 EQU H'0000' 225T2CKPS1 EQU H'0001' 226TOUTPS0 EQU H'0003' 227TOUTPS1 EQU H'0004' 228TOUTPS2 EQU H'0005' 229TOUTPS3 EQU H'0006' 230 231 232;----- SSPCON Bits ----------------------------------------------------- 233CKP EQU H'0004' 234SSPEN EQU H'0005' 235SSPOV EQU H'0006' 236WCOL EQU H'0007' 237 238SSPM0 EQU H'0000' 239SSPM1 EQU H'0001' 240SSPM2 EQU H'0002' 241SSPM3 EQU H'0003' 242 243 244;----- CCP1CON Bits ----------------------------------------------------- 245CCP1Y EQU H'0004' 246CCP1X EQU H'0005' 247 248CCP1M0 EQU H'0000' 249CCP1M1 EQU H'0001' 250CCP1M2 EQU H'0002' 251CCP1M3 EQU H'0003' 252 253 254;----- RCSTA Bits ----------------------------------------------------- 255RX9D EQU H'0000' 256OERR EQU H'0001' 257FERR EQU H'0002' 258ADDEN EQU H'0003' 259CREN EQU H'0004' 260SREN EQU H'0005' 261RX9 EQU H'0006' 262SPEN EQU H'0007' 263 264RCD8 EQU H'0000' 265RC9 EQU H'0006' 266 267NOT_RC8 EQU H'0006' 268 269RC8_9 EQU H'0006' 270 271 272;----- CCP2CON Bits ----------------------------------------------------- 273CCP2Y EQU H'0004' 274CCP2X EQU H'0005' 275 276CCP2M0 EQU H'0000' 277CCP2M1 EQU H'0001' 278CCP2M2 EQU H'0002' 279CCP2M3 EQU H'0003' 280 281 282;----- ADCON0 Bits ----------------------------------------------------- 283ADON EQU H'0000' 284GO_NOT_DONE EQU H'0002' 285 286GO EQU H'0002' 287CHS0 EQU H'0003' 288CHS1 EQU H'0004' 289CHS2 EQU H'0005' 290ADCS0 EQU H'0006' 291ADCS1 EQU H'0007' 292 293NOT_DONE EQU H'0002' 294 295GO_DONE EQU H'0002' 296 297 298;----- OPTION_REG Bits ----------------------------------------------------- 299PSA EQU H'0003' 300T0SE EQU H'0004' 301T0CS EQU H'0005' 302INTEDG EQU H'0006' 303NOT_RBPU EQU H'0007' 304 305PS0 EQU H'0000' 306PS1 EQU H'0001' 307PS2 EQU H'0002' 308 309 310;----- TRISA Bits ----------------------------------------------------- 311TRISA0 EQU H'0000' 312TRISA1 EQU H'0001' 313TRISA2 EQU H'0002' 314TRISA3 EQU H'0003' 315TRISA4 EQU H'0004' 316TRISA5 EQU H'0005' 317 318 319;----- TRISB Bits ----------------------------------------------------- 320TRISB0 EQU H'0000' 321TRISB1 EQU H'0001' 322TRISB2 EQU H'0002' 323TRISB3 EQU H'0003' 324TRISB4 EQU H'0004' 325TRISB5 EQU H'0005' 326TRISB6 EQU H'0006' 327TRISB7 EQU H'0007' 328 329 330;----- TRISC Bits ----------------------------------------------------- 331TRISC0 EQU H'0000' 332TRISC1 EQU H'0001' 333TRISC2 EQU H'0002' 334TRISC3 EQU H'0003' 335TRISC4 EQU H'0004' 336TRISC5 EQU H'0005' 337TRISC6 EQU H'0006' 338TRISC7 EQU H'0007' 339 340 341;----- TRISD Bits ----------------------------------------------------- 342TRISD0 EQU H'0000' 343TRISD1 EQU H'0001' 344TRISD2 EQU H'0002' 345TRISD3 EQU H'0003' 346TRISD4 EQU H'0004' 347TRISD5 EQU H'0005' 348TRISD6 EQU H'0006' 349TRISD7 EQU H'0007' 350 351 352;----- TRISE Bits ----------------------------------------------------- 353TRISE0 EQU H'0000' 354TRISE1 EQU H'0001' 355TRISE2 EQU H'0002' 356PSPMODE EQU H'0004' 357IBOV EQU H'0005' 358OBF EQU H'0006' 359IBF EQU H'0007' 360 361 362;----- PIE1 Bits ----------------------------------------------------- 363TMR1IE EQU H'0000' 364TMR2IE EQU H'0001' 365CCP1IE EQU H'0002' 366SSPIE EQU H'0003' 367TXIE EQU H'0004' 368RCIE EQU H'0005' 369ADIE EQU H'0006' 370PSPIE EQU H'0007' 371 372 373;----- PIE2 Bits ----------------------------------------------------- 374CCP2IE EQU H'0000' 375BCLIE EQU H'0003' 376EEIE EQU H'0004' 377 378 379;----- PCON Bits ----------------------------------------------------- 380NOT_BOR EQU H'0000' 381NOT_POR EQU H'0001' 382 383NOT_BO EQU H'0000' 384 385 386;----- SSPCON2 Bits ----------------------------------------------------- 387SEN EQU H'0000' 388RSEN EQU H'0001' 389PEN EQU H'0002' 390RCEN EQU H'0003' 391ACKEN EQU H'0004' 392ACKDT EQU H'0005' 393ACKSTAT EQU H'0006' 394GCEN EQU H'0007' 395 396 397;----- SSPSTAT Bits ----------------------------------------------------- 398BF EQU H'0000' 399UA EQU H'0001' 400R_NOT_W EQU H'0002' 401S EQU H'0003' 402P EQU H'0004' 403D_NOT_A EQU H'0005' 404CKE EQU H'0006' 405SMP EQU H'0007' 406 407R EQU H'0002' 408D EQU H'0005' 409 410I2C_READ EQU H'0002' 411I2C_START EQU H'0003' 412I2C_STOP EQU H'0004' 413I2C_DATA EQU H'0005' 414 415NOT_W EQU H'0002' 416NOT_A EQU H'0005' 417 418NOT_WRITE EQU H'0002' 419NOT_ADDRESS EQU H'0005' 420 421R_W EQU H'0002' 422D_A EQU H'0005' 423 424READ_WRITE EQU H'0002' 425DATA_ADDRESS EQU H'0005' 426 427 428;----- TXSTA Bits ----------------------------------------------------- 429TX9D EQU H'0000' 430TRMT EQU H'0001' 431BRGH EQU H'0002' 432SYNC EQU H'0004' 433TXEN EQU H'0005' 434TX9 EQU H'0006' 435CSRC EQU H'0007' 436 437TXD8 EQU H'0000' 438NOT_TX8 EQU H'0006' 439 440TX8_9 EQU H'0006' 441 442 443;----- ADCON1 Bits ----------------------------------------------------- 444ADFM EQU H'0007' 445 446PCFG0 EQU H'0000' 447PCFG1 EQU H'0001' 448PCFG2 EQU H'0002' 449PCFG3 EQU H'0003' 450 451 452;----- EECON1 Bits ----------------------------------------------------- 453RD EQU H'0000' 454WR EQU H'0001' 455WREN EQU H'0002' 456WRERR EQU H'0003' 457EEPGD EQU H'0007' 458 459 460 461 462;========================================================================== 463; 464; RAM Definitions 465; 466;========================================================================== 467 __MAXRAM H'01FF' 468 __BADRAM H'008F'-H'0090' 469 __BADRAM H'0095'-H'0097' 470 __BADRAM H'009A'-H'009D' 471 __BADRAM H'0105' 472 __BADRAM H'0107'-H'0109' 473 __BADRAM H'0110'-H'011F' 474 __BADRAM H'0185' 475 __BADRAM H'0187'-H'0189' 476 __BADRAM H'018E'-H'018F' 477 __BADRAM H'0190'-H'019F' 478 479;========================================================================== 480; 481; Configuration Bits 482; 483; NAME Address 484; CONFIG 2007h 485; 486;========================================================================== 487 488; The following is an assignment of address values for all of the 489; configuration registers for the purpose of table reads 490_CONFIG EQU H'2007' 491 492;----- CONFIG Options -------------------------------------------------- 493_FOSC_LP EQU H'3FFC' ; LP oscillator 494_LP_OSC EQU H'3FFC' ; LP oscillator 495_FOSC_XT EQU H'3FFD' ; XT oscillator 496_XT_OSC EQU H'3FFD' ; XT oscillator 497_FOSC_HS EQU H'3FFE' ; HS oscillator 498_HS_OSC EQU H'3FFE' ; HS oscillator 499_FOSC_EXTRC EQU H'3FFF' ; RC oscillator 500_RC_OSC EQU H'3FFF' ; RC oscillator 501 502_WDTE_OFF EQU H'3FFB' ; WDT disabled 503_WDT_OFF EQU H'3FFB' ; WDT disabled 504_WDTE_ON EQU H'3FFF' ; WDT enabled 505_WDT_ON EQU H'3FFF' ; WDT enabled 506 507_PWRTE_ON EQU H'3FF7' ; PWRT enabled 508_PWRTE_OFF EQU H'3FFF' ; PWRT disabled 509 510_CP_ALL EQU H'0FCF' ; 0000h to 0FFFh code protected 511_CP_HALF EQU H'1FDF' ; 0800h to 0FFFh code protected 512_CP_UPPER_256 EQU H'2FEF' ; 0F00h to 0FFFh code protected 513_CP_OFF EQU H'3FFF' ; Code protection off 514 515_BOREN_OFF EQU H'3FBF' ; BOR disabled 516_BODEN_OFF EQU H'3FBF' ; BOR disabled 517_BOREN_ON EQU H'3FFF' ; BOR enabled 518_BODEN_ON EQU H'3FFF' ; BOR enabled 519 520_LVP_OFF EQU H'3F7F' ; RB3 is digital I/O, HV on MCLR must be used for programming 521_LVP_ON EQU H'3FFF' ; RB3/PGM pin has PGM function; low-voltage programming enabled 522 523_CPD_ON EQU H'3EFF' ; Data EEPROM memory code-protected 524_CPD_OFF EQU H'3FFF' ; Code Protection off 525 526_WRT_OFF EQU H'3DFF' ; Unprotected program memory may not be written to by EECON control 527_WRT_ENABLE_OFF EQU H'3DFF' ; Unprotected program memory may not be written to by EECON control 528_WRT_ON EQU H'3FFF' ; Unprotected program memory may be written to by EECON control 529_WRT_ENABLE_ON EQU H'3FFF' ; Unprotected program memory may be written to by EECON control 530 531_DEBUG_ON EQU H'37FF' ; In-Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger 532_DEBUG_OFF EQU H'3FFF' ; In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins 533 534;----- DEVID Equates -------------------------------------------------- 535_DEVID1 EQU H'2006' 536 537;----- IDLOC Equates -------------------------------------------------- 538_IDLOC0 EQU H'2000' 539_IDLOC1 EQU H'2001' 540_IDLOC2 EQU H'2002' 541_IDLOC3 EQU H'2003' 542 543 LIST 544