;************************************************************************ ; Regs877.INC du 10/07/2007 modifs MD ; Avec Macro: PUSH et POP et les Pagemémoire 0 à 3 ;************************************************************************* ERRORLEVEL -302 ERRORLEVEL -305 ERRORLEVEL -307 ;************ CONFIG et IDENTIFICATION ********************************** __IDLOCS h'1949' ;Identification en h'2000'=valeur 1 9 4 9 __CONFIG h'3F32' ;mot de config en h'2007': P.Up timer+HS+no CP ;************ REGISTRES ************************************************** INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTB EQU H'0006' PORTC EQU H'0007' PORTD EQU H'0008' PORTE EQU H'0009' PCLATH EQU H'000A' INTCON EQU H'000B' PIR1 EQU h'000C' PIR2 EQU h'000D' OPTIONS EQU H'0081' TRISA EQU H'0085' TRISB EQU H'0086' TRISC EQU H'0087' TRISD EQU H'0088' TRISE EQU H'0089' PIE1 EQU H'008C' PIE2 EQU H'008D' ADRESH EQU H'001E' ADCON0 EQU H'001F' ADRESL EQU H'009E' ADCON1 EQU H'009F' EEDATA EQU H'010C' EEADR EQU H'010D' EEDATH EQU H'010E' EEADRH EQU H'010F' EECON1 EQU H'018C' EECON2 EQU H'018D' SSPCON EQU H'0014' SSPCON2 EQU H'0091' SSPSTAT EQU H'0094' SSBUF EQU H'0013' SSPAD EQU H'0093' RCSTA EQU H'0018' TXSTA EQU H'0098' SPBRG EQU H'0099' TXREG EQU H'0019' RCREG EQU H'001A' TMR1L EQU H'000E' TMR1H EQU H'000F' T1CON EQU H'0010' TMR2 EQU H'0011' T2CON EQU H'0012' PR2 EQU H'0092' CCPR1L EQU H'0015' CCPR1H EQU H'0016' CCP1CON EQU H'0017' CCPR2L EQU H'001B' CCPR2H EQU H'001C' CCP2CON EQU H'001D' ;********* Bits de STATUS ********************************************* #DEFINE RP1 STATUS,6 #DEFINE RP0 STATUS,5 #DEFINE TO STATUS,4 #DEFINE PD STATUS,3 #DEFINE Z STATUS,2 #DEFINE DC STATUS,1 #DEFINE C STATUS,0 ;********* Bits de INTCON ********************************************** #DEFINE GIE INTCON,7 #DEFINE PEIE INTCON,6 #DEFINE T0IE INTCON,5 #DEFINE INTE INTCON,4 #DEFINE RBIE INTCON,3 #DEFINE T0IF INTCON,2 #DEFINE INTF INTCON,1 #DEFINE RBIF INTCON,0 ;********* Bits de PIE1 : IT des périph (attention accés par PAGE 1) **** #DEFINE TMR1IE PIE1,0 #DEFINE TMR2IE PIE1,1 #DEFINE CCP1IE PIE1,2 #DEFINE SSPIE PIE1,3 #DEFINE TXIE PIE1,4 #DEFINE RCIE PIE1,5 #DEFINE ADIE PIE1,6 #DEFINE PSPIE PIE1,7 ;********* Bits de PIR1 : Flags des IT des divers périph **************** #DEFINE TMR1IF PIR1,0 #DEFINE TMR2IF PIR1,1 #DEFINE CCP1IF PIR1,2 #DEFINE SSPIF PIR1,3 #DEFINE TXIF PIR1,4 #DEFINE RCIF PIR1,5 #DEFINE ADIF PIR1,6 #DEFINE PSPIF PIR1,7 ;******** Bits de OPTIONS (attention accés par PAGE 1) **************** #DEFINE RBPU OPTIONS,7 #DEFINE INTEDG OPTIONS,6 #DEFINE T0CS OPTIONS,5 #DEFINE T0SE OPTIONS,4 #DEFINE PSA OPTIONS,3 #DEFINE PS2 OPTIONS,2 #DEFINE PS1 OPTIONS,1 #DEFINE PS0 OPTIONS,0 ;********* Bits de SSPCON2 (attention accès par PAGE1): pour I2C ******** #DEFINE SEN SSPCON2,0 #DEFINE RSEN SSPCON2,1 #DEFINE PEN SSPCON2,2 #DEFINE RCEN SSPCON2,3 #DEFINE ACKEN SSPCON2,4 #DEFINE ACKDT SSPCON2,5 #DEFINE ACKSTAT SSPCON2,6 ;********* Bits de TXSTA (attention accès par PAGE1): pour RS232 ******** #DEFINE TX9D TXSTA,0 #DEFINE TRMT TXSTA,1 #DEFINE BRGH TXSTA,2 #DEFINE SYNC TXSTA,4 #DEFINE TXEN TXSTA,5 #DEFINE TX9 TXSTA,6 ;********* Bits de RCSTA : pour RS232 ******* #DEFINE RX9D RCSTA,0 #DEFINE OERR RCSTA,1 #DEFINE FERR RCSTA,2 #DEFINE ADDEN RCSTA,3 #DEFINE CREN RCSTA,4 #DEFINE RX9 RCSTA,6 #DEFINE SPEN RCSTA,7 ;********* Bits de ADCON0 : pour CAN ******** #DEFINE ADON ADCON0,0 #DEFINE GO ADCON0,2 #DEFINE CHS0 ADCON0,3 #DEFINE CHS1 ADCON0,4 #DEFINE CHS2 ADCON0,5 ;********* Bits de T1CON : pour TIMER 1 ******** #DEFINE TMR1ON T1CON,0 #DEFINE TMR1CS T1CON,1 #DEFINE T1SYNC T1CON,2 #DEFINE T1OSCEN T1CON,3 #DEFINE T1CKPS0 T1CON,4 #DEFINE T1CKPS1 T1CON,5 ;*********** Bits de EECON1 (attention accès page3) pour EEPROM #DEFINE RD EECON1,0 #DEFINE WR EECON1,1 #DEFINE WREN EECON1,2 #DEFINE WRERR EECON1,3 #DEFINE EEPGD EECON1,7 ;*********** Bits de TRISE (attention accès page1) pour PSP #DEFINE PSPMODE TRISE,4 #DEFINE IBOV TRISE,5 #DEFINE OBF TRISE,6 #DEFINE IBF TRISE,7 ;******** MACRO ****************************************************** PAGE0 MACRO BCF STATUS,6 BCF STATUS,5 ENDM PAGE1 MACRO BCF STATUS,6 BSF STATUS,5 ENDM PAGE2 MACRO BSF STATUS,6 BCF STATUS,5 ENDM PAGE3 MACRO BSF STATUS,6 BSF STATUS,5 ENDM PAGEM0 MACRO BCF PCLATH,3 BCF PCLATH,4 ENDM PAGEM1 MACRO BSF PCLATH,3 BCF PCLATH,4 ENDM PAGEM2 MACRO BCF PCLATH,3 BSF PCLATH,4 ENDM PAGEM3 MACRO BSF PCLATH,3 BSF PCLATH,4 ENDM PUSH MACRO MOVWF h'7F' ; W sauvé en RAM adresse 7F MOVFW STATUS MOVWF h'7E' ; STATUS sauvé en RAM adresse 7E PAGE0 ENDM POP MACRO MOVFW h'7E' MOVWF STATUS ; restaure STATUS SWAPF h'7F',F ; restaure W SWAPF h'7F',W ENDM