Advertisement
AguHDz

PicPas_UNIT_PIC16F877A.pas

Jun 4th, 2017
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 11.28 KB | None | 0 0
  1. {
  2. *  UNIT para compilador PicPas
  3. *  SFR del microcontrolador PIC 16F877A
  4. *
  5. *  (C) AguHDz 04-JUN-2017
  6. *  Ultima Actualizacion: 23-JUN-2017
  7. }
  8.  
  9. unit PIC16F877A;
  10.  
  11. interface
  12. var
  13. // DEFINICION DE BYTES Y BITS DE ZONA MEMORIA SFR.
  14. // Segun los nombres y direcciones en datasheet de Microchip.
  15.   INDF              : byte absolute $0000;
  16.   TMR0              : byte absolute $0001;
  17.   PCL               : byte absolute $0002;
  18.   STATUS            : byte absolute $0003;
  19.   STATUS_IRP        : bit  absolute STATUS.7;
  20.   STATUS_RP1        : bit  absolute STATUS.6;
  21.   STATUS_RP0        : bit  absolute STATUS.5;
  22.   STATUS_TO         : bit  absolute STATUS.4;
  23.   STATUS_PD         : bit  absolute STATUS.3;
  24.   STATUS_Z          : bit  absolute STATUS.2;
  25.   STATUS_DC         : bit  absolute STATUS.1;
  26.   STATUS_C          : bit  absolute STATUS.0;
  27.   FSR               : byte absolute $0004;
  28.   PORTA             : byte absolute $0005;
  29.   PORTA_RA5         : bit  absolute PORTA.5;
  30.   PORTA_RA4         : bit  absolute PORTA.4;
  31.   PORTA_RA3         : bit  absolute PORTA.3;
  32.   PORTA_RA2         : bit  absolute PORTA.2;
  33.   PORTA_RA1         : bit  absolute PORTA.1;
  34.   PORTA_RA0         : bit  absolute PORTA.0;
  35.   PORTB             : byte absolute $0006;
  36.   PORTB_RB7         : bit  absolute PORTB.7;
  37.   PORTB_RB6         : bit  absolute PORTB.6;
  38.   PORTB_RB5         : bit  absolute PORTB.5;
  39.   PORTB_RB4         : bit  absolute PORTB.4;
  40.   PORTB_RB3         : bit  absolute PORTB.3;
  41.   PORTB_RB2         : bit  absolute PORTB.2;
  42.   PORTB_RB1         : bit  absolute PORTB.1;
  43.   PORTB_RB0         : bit  absolute PORTB.0;
  44.   PORTC             : byte absolute $0007;
  45.   PORTC_RC7         : bit  absolute PORTC.7;
  46.   PORTC_RC6         : bit  absolute PORTC.6;
  47.   PORTC_RC5         : bit  absolute PORTC.5;
  48.   PORTC_RC4         : bit  absolute PORTC.4;
  49.   PORTC_RC3         : bit  absolute PORTC.3;
  50.   PORTC_RC2         : bit  absolute PORTC.2;
  51.   PORTC_RC1         : bit  absolute PORTC.1;
  52.   PORTC_RC0         : bit  absolute PORTC.0;
  53.   PORTD             : byte absolute $0008;
  54.   PORTD_RD7         : bit  absolute PORTD.7;
  55.   PORTD_RD6         : bit  absolute PORTD.6;
  56.   PORTD_RD5         : bit  absolute PORTD.5;
  57.   PORTD_RD4         : bit  absolute PORTD.4;
  58.   PORTD_RD3         : bit  absolute PORTD.3;
  59.   PORTD_RD2         : bit  absolute PORTD.2;
  60.   PORTD_RD1         : bit  absolute PORTD.1;
  61.   PORTD_RD0         : bit  absolute PORTD.0;
  62.   PORTE             : byte absolute $0009;
  63.   PORTB_RE2         : bit  absolute PORTE.2;
  64.   PORTB_RE1         : bit  absolute PORTE.1;
  65.   PORTB_RE0         : bit  absolute PORTE.0;
  66.   PCLATH            : byte absolute $000A;
  67.   INTCON            : byte absolute $000B;
  68.   INTCON_GIE        : bit  absolute INTCON.7;
  69.   INTCON_PEIE       : bit  absolute INTCON.6;
  70.   INTCON_TMR0IE     : bit  absolute INTCON.5;
  71.   INTCON_INTE       : bit  absolute INTCON.4;
  72.   INTCON_RBIE       : bit  absolute INTCON.3;
  73.   INTCON_TMR0IF     : bit  absolute INTCON.2;
  74.   INTCON_INTF       : bit  absolute INTCON.1;
  75.   INTCON_RBIF       : bit  absolute INTCON.0;
  76.   PIR1              : byte absolute $000C;
  77.   PIR1_PSPIF        : bit  absolute PIR1.7;
  78.   PIR1_ADIF         : bit  absolute PIR1.6;
  79.   PIR1_RCIF         : bit  absolute PIR1.5;
  80.   PIR1_TXIF         : bit  absolute PIR1.4;
  81.   PIR1_SSPIF        : bit  absolute PIR1.3;
  82.   PIR1_CCP1IF       : bit  absolute PIR1.2;
  83.   PIR1_TMR2IF       : bit  absolute PIR1.1;
  84.   PIR1_TMR1IF       : bit  absolute PIR1.0;
  85.   PIR2              : byte absolute $000D;
  86.   PIR2_CMIF         : bit  absolute PIR2.6;
  87.   PIR2_EEIF         : bit  absolute PIR2.4;
  88.   PIR2_BCLIF        : bit  absolute PIR2.3;
  89.   PIR2_CCP2IF       : bit  absolute PIR2.0;
  90.   TMR1L             : byte absolute $000E;
  91.   TMR1H             : byte absolute $000F;
  92.   T1CON             : byte absolute $0010;
  93.   T1CON_T1CKPS1     : bit  absolute T1CON.5;
  94.   T1CON_T1CKPS0     : bit  absolute T1CON.4;
  95.   T1CON_T1OSCEN     : bit  absolute T1CON.3;
  96.   T1CON_T1SYNC      : bit  absolute T1CON.2;
  97.   T1CON_TMR1CS      : bit  absolute T1CON.1;
  98.   T1CON_TMR1ON      : bit  absolute T1CON.0;
  99.   TMR2              : byte absolute $0011;
  100.   T2CON             : byte absolute $0012;
  101.   T2CON_TOUTPS3     : bit  absolute TMR2.6;
  102.   T2CON_TOUTPS2     : bit  absolute TMR2.5;
  103.   T2CON_TOUTPS1     : bit  absolute TMR2.4;
  104.   T2CON_TOUTPS0     : bit  absolute TMR2.3;
  105.   T2CON_TMR2ON      : bit  absolute TMR2.2;
  106.   T2CON_T2CKPS1     : bit  absolute TMR2.1;
  107.   T2CON_T2CKPS0     : bit  absolute TMR2.0;
  108.   SSPBUF            : byte absolute $0013;
  109.   SSPCON            : byte absolute $0014;
  110.   SSPCON_WCOL       : bit  absolute SSPCON.7;
  111.   SSPCON_SSPOV      : bit  absolute SSPCON.6;
  112.   SSPCON_SSPEN      : bit  absolute SSPCON.5;
  113.   SSPCON_CKP        : bit  absolute SSPCON.4;
  114.   SSPCON_SSPM3      : bit  absolute SSPCON.3;
  115.   SSPCON_SSPM2      : bit  absolute SSPCON.2;
  116.   SSPCON_SSPM1      : bit  absolute SSPCON.1;
  117.   SSPCON_SSPM0      : bit  absolute SSPCON.0;
  118.   CCPR1             : word absolute $0015;
  119.   CCPR1L            : byte absolute CCPR1.LOW;   // $0015
  120.   CCPR1H            : byte absolute CCPR1.HIGh;  // $0016
  121.   CCP1CON           : byte absolute $0017;
  122.   CCP1CON_CCP1X     : bit  absolute CCP1CON.5;
  123.   CCP1CON_CCP1Y     : bit  absolute CCP1CON.4;
  124.   CCP1CON_CCP1M3    : bit  absolute CCP1CON.3;
  125.   CCP1CON_CCP1M2    : bit  absolute CCP1CON.2;
  126.   CCP1CON_CCP1M1    : bit  absolute CCP1CON.1;
  127.   CCP1CON_CCP1M0    : bit  absolute CCP1CON.0;
  128.   RCSTA             : byte absolute $0018;
  129.   RCSTA_SPEN        : bit  absolute RCSTA.7;
  130.   RCSTA_RX9         : bit  absolute RCSTA.6;
  131.   RCSTA_SREN        : bit  absolute RCSTA.5;
  132.   RCSTA_CREN        : bit  absolute RCSTA.4;
  133.   RCSTA_ADDEN       : bit  absolute RCSTA.3;
  134.   RCSTA_FERR        : bit  absolute RCSTA.2;
  135.   RCSTA_OERR        : bit  absolute RCSTA.1;
  136.   RCSTA_RX9D        : bit  absolute RCSTA.0;
  137.   TXREG             : byte absolute $0019;
  138.   RCREG             : byte absolute $001A;
  139.   CCPR2             : word absolute $001B;
  140.   CCPR2L            : byte absolute CCPR2.LOW;   // $001B
  141.   CCPR2H            : byte absolute CCPR2.HIGH;  // $001C
  142.   CCP2CON           : byte absolute $001D;
  143.   CCP2CON_CCP2X     : bit  absolute CCP2CON.5;
  144.   CCP2CON_CCP2Y     : bit  absolute CCP2CON.4;
  145.   CCP2CON_CCP2M3    : bit  absolute CCP2CON.3;
  146.   CCP2CON_CCP2M2    : bit  absolute CCP2CON.2;
  147.   CCP2CON_CCP2M1    : bit  absolute CCP2CON.1;
  148.   CCP2CON_CCP2M0    : bit  absolute CCP2CON.0;
  149.   ADRESH            : byte absolute $001E;
  150.   ADCON0            : byte absolute $001F;
  151.   ADCON0_ADCS1      : bit  absolute ADCON0.7;
  152.   ADCON0_ADCS0      : bit  absolute ADCON0.6;
  153.   ADCON0_CHS2       : bit  absolute ADCON0.5;
  154.   ADCON0_CHS1       : bit  absolute ADCON0.4;
  155.   ADCON0_CHS0       : bit  absolute ADCON0.3;
  156.   ADCON0_GO_DONE    : bit  absolute ADCON0.2;
  157.   ADCON0_ASON       : bit  absolute ADCON0.0;
  158.   OPTION_REG        : byte absolute $0081;
  159.   OPTION_REG_RBPU   : bit  absolute OPTION_REG.7;
  160.   OPTION_REG_INTEDG : bit  absolute OPTION_REG.6;
  161.   OPTION_REG_T0CS   : bit  absolute OPTION_REG.5;
  162.   OPTION_REG_T0SE   : bit  absolute OPTION_REG.4;
  163.   OPTION_REG_PSA    : bit  absolute OPTION_REG.3;
  164.   OPTION_REG_PS2    : bit  absolute OPTION_REG.2;
  165.   OPTION_REG_PS1    : bit  absolute OPTION_REG.1;
  166.   OPTION_REG_PS0    : bit  absolute OPTION_REG.0;
  167.   TRISA             : byte absolute $0085;
  168.   TRISB             : byte absolute $0086;
  169.   TRISC             : byte absolute $0087;
  170.   TRISD             : byte absolute $0088;
  171.   TRISE             : byte absolute $0089;
  172.   TRISE_IBF         : bit  absolute TRISE.7;
  173.   TRISE_OBF         : bit  absolute TRISE.6;
  174.   TRISE_IBOV        : bit  absolute TRISE.5;
  175.   TRISE_PSPMODE     : bit  absolute TRISE.4;
  176.   PIE1              : byte absolute $008C;
  177.   PIE1_PSPIE        : bit  absolute PIE1.7;
  178.   PIE1_ADIE         : bit  absolute PIE1.6;
  179.   PIE1_RCIE         : bit  absolute PIE1.5;
  180.   PIE1_TXIE         : bit  absolute PIE1.4;
  181.   PIE1_SSPIE        : bit  absolute PIE1.3;
  182.   PIE1_CCP1IE       : bit  absolute PIE1.2;
  183.   PIE1_TMR2IE       : bit  absolute PIE1.1;
  184.   PIE1_TMR1IE       : bit  absolute PIE1.0;
  185.   PIE2              : byte absolute $008D;
  186.   PIE2_CMIE         : bit  absolute PIE2.6;
  187.   PIE2_EEIE         : bit  absolute PIE2.4;
  188.   PIE2_BCLIE        : bit  absolute PIE2.3;
  189.   PIE2_CCP2IE       : bit  absolute PIE2.0;
  190.   PCON              : byte absolute $008E;
  191.   PCON_POR          : bit  absolute PCON.1;
  192.   PCON_BOR          : bit  absolute PCON.0;
  193.   SSPCON2           : byte absolute $0091;
  194.   SSPCON2_GCEN      : bit  absolute SSPCON2.7;
  195.   SSPCON2_ACKSTAT   : bit  absolute SSPCON2.6;
  196.   SSPCON2_ACKDT     : bit  absolute SSPCON2.5;
  197.   SSPCON2_ACKEN     : bit  absolute SSPCON2.4;
  198.   SSPCON2_RCEN      : bit  absolute SSPCON2.3;
  199.   SSPCON2_PEN       : bit  absolute SSPCON2.2;
  200.   SSPCON2_RSEN      : bit  absolute SSPCON2.1;
  201.   SSPCON2_SEN       : bit  absolute SSPCON2.0;
  202.   PR2               : byte absolute $0092;
  203.   SSPADD            : byte absolute $0093;
  204.   SSPSTAT           : byte absolute $0094;
  205.   SSPSTAT_SMP       : bit  absolute SSPSTAT.7;
  206.   SSPSTAT_CKE       : bit  absolute SSPSTAT.6;
  207.   SSPSTAT_DA        : bit  absolute SSPSTAT.5;
  208.   SSPSTAT_P         : bit  absolute SSPSTAT.4;
  209.   SSPSTAT_S         : bit  absolute SSPSTAT.3;
  210.   SSPSTAT_RW        : bit  absolute SSPSTAT.2;
  211.   SSPSTAT_UA        : bit  absolute SSPSTAT.1;
  212.   SSPSTAT_BF        : bit  absolute SSPSTAT.0;
  213.   TXSTA             : byte absolute $0098;
  214.   TXSTA_CSRC        : bit  absolute TXSTA.7;
  215.   TXSTA_TX9         : bit  absolute TXSTA.6;
  216.   TXSTA_TXEN        : bit  absolute TXSTA.5;
  217.   TXSTA_SYNC        : bit  absolute TXSTA.4;
  218.   TXSTA_BRGH        : bit  absolute TXSTA.2;
  219.   TXSTA_TRMT        : bit  absolute TXSTA.1;
  220.   TXSTA_TX9D        : bit  absolute TXSTA.0;
  221.   SPBRG             : byte absolute $0099;
  222.   CMCON             : byte absolute $009C;
  223.   CMCON_C2OUT       : bit  absolute CMCON.7;
  224.   CMCON_C1OUT       : bit  absolute CMCON.6;
  225.   CMCON_C2INV       : bit  absolute CMCON.5;
  226.   CMCON_C1INV       : bit  absolute CMCON.4;
  227.   CMCON_CIS         : bit  absolute CMCON.3;
  228.   CMCON_CM2         : bit  absolute CMCON.2;
  229.   CMCON_CM1         : bit  absolute CMCON.1;
  230.   CMCON_CM0         : bit  absolute CMCON.0;
  231.   CVRCON            : byte absolute $009D;
  232.   CVRCON_CVREN      : bit  absolute CVRCON.7;
  233.   CVRCON_CVROE      : bit  absolute CVRCON.6;
  234.   CVRCON_CVRR       : bit  absolute CVRCON.5;
  235.   CVRCON_CVR3       : bit  absolute CVRCON.3;
  236.   CVRCON_CVR2       : bit  absolute CVRCON.2;
  237.   CVRCON_CVR1       : bit  absolute CVRCON.1;
  238.   CVRCON_CVR0       : bit  absolute CVRCON.0;
  239.   ADRESL            : byte absolute $009E;
  240.   ADCON1            : byte absolute $009F;
  241.   ADCON1_ADFM       : bit  absolute ADCON1.7;
  242.   ADCON1_ADCS2      : bit  absolute ADCON1.6;
  243.   ADCON1_PCFG3      : bit  absolute ADCON1.3;
  244.   ADCON1_PCFG2      : bit  absolute ADCON1.2;
  245.   ADCON1_PCFG1      : bit  absolute ADCON1.1;
  246.   ADCON1_PCFG0      : bit  absolute ADCON1.0;
  247.   EEDATA            : byte absolute $010C;
  248.   EEADR             : byte absolute $010D;
  249.   EEDATH            : byte absolute $010E;
  250.   EEADRH            : byte absolute $010F;
  251.   EECON1            : byte absolute $018C;
  252.   EECON1_EEPGD      : bit  absolute EECON1.7;
  253.   EECON1_WRERR      : bit  absolute EECON1.3;
  254.   EECON1_WREN       : bit  absolute EECON1.2;
  255.   EECON1_WR         : bit  absolute EECON1.1;
  256.   EECON1_RD         : bit  absolute EECON1.0;
  257.   EECON2            : byte absolute $018D;
  258.  
  259. implementation
  260. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement