aboutsummaryrefslogtreecommitdiffstats
path: root/build/default/production/main.i
diff options
context:
space:
mode:
Diffstat (limited to 'build/default/production/main.i')
-rwxr-xr-xbuild/default/production/main.i2212
1 files changed, 2212 insertions, 0 deletions
diff --git a/build/default/production/main.i b/build/default/production/main.i
new file mode 100755
index 0000000..94710f3
--- /dev/null
+++ b/build/default/production/main.i
@@ -0,0 +1,2212 @@
+# 1 "main.c"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 288 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3
+# 2 "<built-in>" 2
+# 1 "main.c" 2
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__size_t.h" 1 3
+
+
+
+typedef unsigned size_t;
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__null.h" 1 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdarg.h" 1 3
+
+
+
+
+
+
+typedef void * va_list[1];
+
+#pragma intrinsic(__va_start)
+extern void * __va_start(void);
+
+#pragma intrinsic(__va_arg)
+extern void * __va_arg(void *, ...);
+# 11 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+# 43 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+struct __prbuf
+{
+ char * ptr;
+ void (* func)(char);
+};
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 1 3
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 1 3
+# 29 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 3
+extern int errno;
+# 8 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 2 3
+
+
+
+
+extern void init_uart(void);
+
+extern char getch(void);
+extern char getche(void);
+extern void putch(char);
+extern void ungetch(char);
+
+extern __bit kbhit(void);
+
+
+
+extern char * cgets(char *);
+extern void cputs(const char *);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3
+
+
+
+extern int cprintf(char *, ...);
+#pragma printf_check(cprintf)
+
+
+
+extern int _doprnt(struct __prbuf *, const register char *, register va_list);
+# 180 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3
+#pragma printf_check(vprintf) const
+#pragma printf_check(vsprintf) const
+
+extern char * gets(char *);
+extern int puts(const char *);
+extern int scanf(const char *, ...) __attribute__((unsupported("scanf() is not supported by this compiler")));
+extern int sscanf(const char *, const char *, ...) __attribute__((unsupported("sscanf() is not supported by this compiler")));
+extern int vprintf(const char *, va_list) __attribute__((unsupported("vprintf() is not supported by this compiler")));
+extern int vsprintf(char *, const char *, va_list) __attribute__((unsupported("vsprintf() is not supported by this compiler")));
+extern int vscanf(const char *, va_list ap) __attribute__((unsupported("vscanf() is not supported by this compiler")));
+extern int vsscanf(const char *, const char *, va_list) __attribute__((unsupported("vsscanf() is not supported by this compiler")));
+
+#pragma printf_check(printf) const
+#pragma printf_check(sprintf) const
+extern int sprintf(char *, const char *, ...);
+extern int printf(const char *, ...);
+# 1 "main.c" 2
+
+
+
+
+# 1 "./conf.h" 1
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3
+extern const char __xc8_OPTIM_SPEED;
+
+extern double __fpnormalize(double);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 1 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\xc8debug.h" 3
+#pragma intrinsic(__builtin_software_breakpoint)
+extern void __builtin_software_breakpoint(void);
+# 23 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 1 3
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 1 3
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3
+# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\htc.h" 2 3
+# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 1 3
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__at.h" 1 3
+# 44 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 2 3
+
+
+
+
+
+
+
+
+extern volatile unsigned char INDF __attribute__((address(0x000)));
+
+__asm("INDF equ 00h");
+
+
+
+
+extern volatile unsigned char TMR0 __attribute__((address(0x001)));
+
+__asm("TMR0 equ 01h");
+
+
+
+
+extern volatile unsigned char PCL __attribute__((address(0x002)));
+
+__asm("PCL equ 02h");
+
+
+
+
+extern volatile unsigned char STATUS __attribute__((address(0x003)));
+
+__asm("STATUS equ 03h");
+
+
+typedef union {
+ struct {
+ unsigned C :1;
+ unsigned DC :1;
+ unsigned Z :1;
+ unsigned nPD :1;
+ unsigned nTO :1;
+ unsigned RP :2;
+ unsigned IRP :1;
+ };
+ struct {
+ unsigned :5;
+ unsigned RP0 :1;
+ unsigned RP1 :1;
+ };
+ struct {
+ unsigned CARRY :1;
+ unsigned :1;
+ unsigned ZERO :1;
+ };
+} STATUSbits_t;
+extern volatile STATUSbits_t STATUSbits __attribute__((address(0x003)));
+# 159 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char FSR __attribute__((address(0x004)));
+
+__asm("FSR equ 04h");
+
+
+
+
+extern volatile unsigned char PORTA __attribute__((address(0x005)));
+
+__asm("PORTA equ 05h");
+
+
+typedef union {
+ struct {
+ unsigned RA0 :1;
+ unsigned RA1 :1;
+ unsigned RA2 :1;
+ unsigned RA3 :1;
+ unsigned RA4 :1;
+ unsigned RA5 :1;
+ };
+} PORTAbits_t;
+extern volatile PORTAbits_t PORTAbits __attribute__((address(0x005)));
+# 216 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTB __attribute__((address(0x006)));
+
+__asm("PORTB equ 06h");
+
+
+typedef union {
+ struct {
+ unsigned RB0 :1;
+ unsigned RB1 :1;
+ unsigned RB2 :1;
+ unsigned RB3 :1;
+ unsigned RB4 :1;
+ unsigned RB5 :1;
+ unsigned RB6 :1;
+ unsigned RB7 :1;
+ };
+} PORTBbits_t;
+extern volatile PORTBbits_t PORTBbits __attribute__((address(0x006)));
+# 278 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTC __attribute__((address(0x007)));
+
+__asm("PORTC equ 07h");
+
+
+typedef union {
+ struct {
+ unsigned RC0 :1;
+ unsigned RC1 :1;
+ unsigned RC2 :1;
+ unsigned RC3 :1;
+ unsigned RC4 :1;
+ unsigned RC5 :1;
+ unsigned RC6 :1;
+ unsigned RC7 :1;
+ };
+} PORTCbits_t;
+extern volatile PORTCbits_t PORTCbits __attribute__((address(0x007)));
+# 340 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTD __attribute__((address(0x008)));
+
+__asm("PORTD equ 08h");
+
+
+typedef union {
+ struct {
+ unsigned RD0 :1;
+ unsigned RD1 :1;
+ unsigned RD2 :1;
+ unsigned RD3 :1;
+ unsigned RD4 :1;
+ unsigned RD5 :1;
+ unsigned RD6 :1;
+ unsigned RD7 :1;
+ };
+} PORTDbits_t;
+extern volatile PORTDbits_t PORTDbits __attribute__((address(0x008)));
+# 402 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PORTE __attribute__((address(0x009)));
+
+__asm("PORTE equ 09h");
+
+
+typedef union {
+ struct {
+ unsigned RE0 :1;
+ unsigned RE1 :1;
+ unsigned RE2 :1;
+ };
+} PORTEbits_t;
+extern volatile PORTEbits_t PORTEbits __attribute__((address(0x009)));
+# 434 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCLATH __attribute__((address(0x00A)));
+
+__asm("PCLATH equ 0Ah");
+
+
+typedef union {
+ struct {
+ unsigned PCLATH :5;
+ };
+} PCLATHbits_t;
+extern volatile PCLATHbits_t PCLATHbits __attribute__((address(0x00A)));
+# 454 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char INTCON __attribute__((address(0x00B)));
+
+__asm("INTCON equ 0Bh");
+
+
+typedef union {
+ struct {
+ unsigned RBIF :1;
+ unsigned INTF :1;
+ unsigned TMR0IF :1;
+ unsigned RBIE :1;
+ unsigned INTE :1;
+ unsigned TMR0IE :1;
+ unsigned PEIE :1;
+ unsigned GIE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T0IF :1;
+ unsigned :2;
+ unsigned T0IE :1;
+ };
+} INTCONbits_t;
+extern volatile INTCONbits_t INTCONbits __attribute__((address(0x00B)));
+# 532 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR1 __attribute__((address(0x00C)));
+
+__asm("PIR1 equ 0Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IF :1;
+ unsigned TMR2IF :1;
+ unsigned CCP1IF :1;
+ unsigned SSPIF :1;
+ unsigned TXIF :1;
+ unsigned RCIF :1;
+ unsigned ADIF :1;
+ unsigned PSPIF :1;
+ };
+} PIR1bits_t;
+extern volatile PIR1bits_t PIR1bits __attribute__((address(0x00C)));
+# 594 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIR2 __attribute__((address(0x00D)));
+
+__asm("PIR2 equ 0Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IF :1;
+ unsigned :2;
+ unsigned BCLIF :1;
+ unsigned EEIF :1;
+ unsigned :1;
+ unsigned CMIF :1;
+ };
+} PIR2bits_t;
+extern volatile PIR2bits_t PIR2bits __attribute__((address(0x00D)));
+# 634 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short TMR1 __attribute__((address(0x00E)));
+
+__asm("TMR1 equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1L __attribute__((address(0x00E)));
+
+__asm("TMR1L equ 0Eh");
+
+
+
+
+extern volatile unsigned char TMR1H __attribute__((address(0x00F)));
+
+__asm("TMR1H equ 0Fh");
+
+
+
+
+extern volatile unsigned char T1CON __attribute__((address(0x010)));
+
+__asm("T1CON equ 010h");
+
+
+typedef union {
+ struct {
+ unsigned TMR1ON :1;
+ unsigned TMR1CS :1;
+ unsigned nT1SYNC :1;
+ unsigned T1OSCEN :1;
+ unsigned T1CKPS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1SYNC :1;
+ unsigned :1;
+ unsigned T1CKPS0 :1;
+ unsigned T1CKPS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned T1INSYNC :1;
+ };
+} T1CONbits_t;
+extern volatile T1CONbits_t T1CONbits __attribute__((address(0x010)));
+# 730 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TMR2 __attribute__((address(0x011)));
+
+__asm("TMR2 equ 011h");
+
+
+
+
+extern volatile unsigned char T2CON __attribute__((address(0x012)));
+
+__asm("T2CON equ 012h");
+
+
+typedef union {
+ struct {
+ unsigned T2CKPS :2;
+ unsigned TMR2ON :1;
+ unsigned TOUTPS :4;
+ };
+ struct {
+ unsigned T2CKPS0 :1;
+ unsigned T2CKPS1 :1;
+ unsigned :1;
+ unsigned TOUTPS0 :1;
+ unsigned TOUTPS1 :1;
+ unsigned TOUTPS2 :1;
+ unsigned TOUTPS3 :1;
+ };
+} T2CONbits_t;
+extern volatile T2CONbits_t T2CONbits __attribute__((address(0x012)));
+# 808 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPBUF __attribute__((address(0x013)));
+
+__asm("SSPBUF equ 013h");
+
+
+
+
+extern volatile unsigned char SSPCON __attribute__((address(0x014)));
+
+__asm("SSPCON equ 014h");
+
+
+typedef union {
+ struct {
+ unsigned SSPM :4;
+ unsigned CKP :1;
+ unsigned SSPEN :1;
+ unsigned SSPOV :1;
+ unsigned WCOL :1;
+ };
+ struct {
+ unsigned SSPM0 :1;
+ unsigned SSPM1 :1;
+ unsigned SSPM2 :1;
+ unsigned SSPM3 :1;
+ };
+} SSPCONbits_t;
+extern volatile SSPCONbits_t SSPCONbits __attribute__((address(0x014)));
+# 885 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned short CCPR1 __attribute__((address(0x015)));
+
+__asm("CCPR1 equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1L __attribute__((address(0x015)));
+
+__asm("CCPR1L equ 015h");
+
+
+
+
+extern volatile unsigned char CCPR1H __attribute__((address(0x016)));
+
+__asm("CCPR1H equ 016h");
+
+
+
+
+extern volatile unsigned char CCP1CON __attribute__((address(0x017)));
+
+__asm("CCP1CON equ 017h");
+
+
+typedef union {
+ struct {
+ unsigned CCP1M :4;
+ unsigned CCP1Y :1;
+ unsigned CCP1X :1;
+ };
+ struct {
+ unsigned CCP1M0 :1;
+ unsigned CCP1M1 :1;
+ unsigned CCP1M2 :1;
+ unsigned CCP1M3 :1;
+ };
+} CCP1CONbits_t;
+extern volatile CCP1CONbits_t CCP1CONbits __attribute__((address(0x017)));
+# 964 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char RCSTA __attribute__((address(0x018)));
+
+__asm("RCSTA equ 018h");
+
+
+typedef union {
+ struct {
+ unsigned RX9D :1;
+ unsigned OERR :1;
+ unsigned FERR :1;
+ unsigned ADDEN :1;
+ unsigned CREN :1;
+ unsigned SREN :1;
+ unsigned RX9 :1;
+ unsigned SPEN :1;
+ };
+ struct {
+ unsigned RCD8 :1;
+ unsigned :5;
+ unsigned RC9 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned nRC8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned RC8_9 :1;
+ };
+} RCSTAbits_t;
+extern volatile RCSTAbits_t RCSTAbits __attribute__((address(0x018)));
+# 1059 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXREG __attribute__((address(0x019)));
+
+__asm("TXREG equ 019h");
+
+
+
+
+extern volatile unsigned char RCREG __attribute__((address(0x01A)));
+
+__asm("RCREG equ 01Ah");
+
+
+
+
+extern volatile unsigned short CCPR2 __attribute__((address(0x01B)));
+
+__asm("CCPR2 equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2L __attribute__((address(0x01B)));
+
+__asm("CCPR2L equ 01Bh");
+
+
+
+
+extern volatile unsigned char CCPR2H __attribute__((address(0x01C)));
+
+__asm("CCPR2H equ 01Ch");
+
+
+
+
+extern volatile unsigned char CCP2CON __attribute__((address(0x01D)));
+
+__asm("CCP2CON equ 01Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2M :4;
+ unsigned CCP2Y :1;
+ unsigned CCP2X :1;
+ };
+ struct {
+ unsigned CCP2M0 :1;
+ unsigned CCP2M1 :1;
+ unsigned CCP2M2 :1;
+ unsigned CCP2M3 :1;
+ };
+} CCP2CONbits_t;
+extern volatile CCP2CONbits_t CCP2CONbits __attribute__((address(0x01D)));
+# 1152 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESH __attribute__((address(0x01E)));
+
+__asm("ADRESH equ 01Eh");
+
+
+
+
+extern volatile unsigned char ADCON0 __attribute__((address(0x01F)));
+
+__asm("ADCON0 equ 01Fh");
+
+
+typedef union {
+ struct {
+ unsigned ADON :1;
+ unsigned :1;
+ unsigned GO_nDONE :1;
+ unsigned CHS :3;
+ unsigned ADCS :2;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO :1;
+ unsigned CHS0 :1;
+ unsigned CHS1 :1;
+ unsigned CHS2 :1;
+ unsigned ADCS0 :1;
+ unsigned ADCS1 :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nDONE :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned GO_DONE :1;
+ };
+} ADCON0bits_t;
+extern volatile ADCON0bits_t ADCON0bits __attribute__((address(0x01F)));
+# 1255 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char OPTION_REG __attribute__((address(0x081)));
+
+__asm("OPTION_REG equ 081h");
+
+
+typedef union {
+ struct {
+ unsigned PS :3;
+ unsigned PSA :1;
+ unsigned T0SE :1;
+ unsigned T0CS :1;
+ unsigned INTEDG :1;
+ unsigned nRBPU :1;
+ };
+ struct {
+ unsigned PS0 :1;
+ unsigned PS1 :1;
+ unsigned PS2 :1;
+ };
+} OPTION_REGbits_t;
+extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
+# 1325 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISA __attribute__((address(0x085)));
+
+__asm("TRISA equ 085h");
+
+
+typedef union {
+ struct {
+ unsigned TRISA0 :1;
+ unsigned TRISA1 :1;
+ unsigned TRISA2 :1;
+ unsigned TRISA3 :1;
+ unsigned TRISA4 :1;
+ unsigned TRISA5 :1;
+ };
+} TRISAbits_t;
+extern volatile TRISAbits_t TRISAbits __attribute__((address(0x085)));
+# 1375 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISB __attribute__((address(0x086)));
+
+__asm("TRISB equ 086h");
+
+
+typedef union {
+ struct {
+ unsigned TRISB0 :1;
+ unsigned TRISB1 :1;
+ unsigned TRISB2 :1;
+ unsigned TRISB3 :1;
+ unsigned TRISB4 :1;
+ unsigned TRISB5 :1;
+ unsigned TRISB6 :1;
+ unsigned TRISB7 :1;
+ };
+} TRISBbits_t;
+extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
+# 1437 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISC __attribute__((address(0x087)));
+
+__asm("TRISC equ 087h");
+
+
+typedef union {
+ struct {
+ unsigned TRISC0 :1;
+ unsigned TRISC1 :1;
+ unsigned TRISC2 :1;
+ unsigned TRISC3 :1;
+ unsigned TRISC4 :1;
+ unsigned TRISC5 :1;
+ unsigned TRISC6 :1;
+ unsigned TRISC7 :1;
+ };
+} TRISCbits_t;
+extern volatile TRISCbits_t TRISCbits __attribute__((address(0x087)));
+# 1499 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISD __attribute__((address(0x088)));
+
+__asm("TRISD equ 088h");
+
+
+typedef union {
+ struct {
+ unsigned TRISD0 :1;
+ unsigned TRISD1 :1;
+ unsigned TRISD2 :1;
+ unsigned TRISD3 :1;
+ unsigned TRISD4 :1;
+ unsigned TRISD5 :1;
+ unsigned TRISD6 :1;
+ unsigned TRISD7 :1;
+ };
+} TRISDbits_t;
+extern volatile TRISDbits_t TRISDbits __attribute__((address(0x088)));
+# 1561 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TRISE __attribute__((address(0x089)));
+
+__asm("TRISE equ 089h");
+
+
+typedef union {
+ struct {
+ unsigned TRISE0 :1;
+ unsigned TRISE1 :1;
+ unsigned TRISE2 :1;
+ unsigned :1;
+ unsigned PSPMODE :1;
+ unsigned IBOV :1;
+ unsigned OBF :1;
+ unsigned IBF :1;
+ };
+} TRISEbits_t;
+extern volatile TRISEbits_t TRISEbits __attribute__((address(0x089)));
+# 1618 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE1 __attribute__((address(0x08C)));
+
+__asm("PIE1 equ 08Ch");
+
+
+typedef union {
+ struct {
+ unsigned TMR1IE :1;
+ unsigned TMR2IE :1;
+ unsigned CCP1IE :1;
+ unsigned SSPIE :1;
+ unsigned TXIE :1;
+ unsigned RCIE :1;
+ unsigned ADIE :1;
+ unsigned PSPIE :1;
+ };
+} PIE1bits_t;
+extern volatile PIE1bits_t PIE1bits __attribute__((address(0x08C)));
+# 1680 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PIE2 __attribute__((address(0x08D)));
+
+__asm("PIE2 equ 08Dh");
+
+
+typedef union {
+ struct {
+ unsigned CCP2IE :1;
+ unsigned :2;
+ unsigned BCLIE :1;
+ unsigned EEIE :1;
+ unsigned :1;
+ unsigned CMIE :1;
+ };
+} PIE2bits_t;
+extern volatile PIE2bits_t PIE2bits __attribute__((address(0x08D)));
+# 1720 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PCON __attribute__((address(0x08E)));
+
+__asm("PCON equ 08Eh");
+
+
+typedef union {
+ struct {
+ unsigned nBOR :1;
+ unsigned nPOR :1;
+ };
+ struct {
+ unsigned nBO :1;
+ };
+} PCONbits_t;
+extern volatile PCONbits_t PCONbits __attribute__((address(0x08E)));
+# 1754 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SSPCON2 __attribute__((address(0x091)));
+
+__asm("SSPCON2 equ 091h");
+
+
+typedef union {
+ struct {
+ unsigned SEN :1;
+ unsigned RSEN :1;
+ unsigned PEN :1;
+ unsigned RCEN :1;
+ unsigned ACKEN :1;
+ unsigned ACKDT :1;
+ unsigned ACKSTAT :1;
+ unsigned GCEN :1;
+ };
+} SSPCON2bits_t;
+extern volatile SSPCON2bits_t SSPCON2bits __attribute__((address(0x091)));
+# 1816 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char PR2 __attribute__((address(0x092)));
+
+__asm("PR2 equ 092h");
+
+
+
+
+extern volatile unsigned char SSPADD __attribute__((address(0x093)));
+
+__asm("SSPADD equ 093h");
+
+
+
+
+extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
+
+__asm("SSPSTAT equ 094h");
+
+
+typedef union {
+ struct {
+ unsigned BF :1;
+ unsigned UA :1;
+ unsigned R_nW :1;
+ unsigned S :1;
+ unsigned P :1;
+ unsigned D_nA :1;
+ unsigned CKE :1;
+ unsigned SMP :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R :1;
+ unsigned :2;
+ unsigned D :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned I2C_READ :1;
+ unsigned I2C_START :1;
+ unsigned I2C_STOP :1;
+ unsigned I2C_DATA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nW :1;
+ unsigned :2;
+ unsigned nA :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned nWRITE :1;
+ unsigned :2;
+ unsigned nADDRESS :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned R_W :1;
+ unsigned :2;
+ unsigned D_A :1;
+ };
+ struct {
+ unsigned :2;
+ unsigned READ_WRITE :1;
+ unsigned :2;
+ unsigned DATA_ADDRESS :1;
+ };
+} SSPSTATbits_t;
+extern volatile SSPSTATbits_t SSPSTATbits __attribute__((address(0x094)));
+# 1999 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char TXSTA __attribute__((address(0x098)));
+
+__asm("TXSTA equ 098h");
+
+
+typedef union {
+ struct {
+ unsigned TX9D :1;
+ unsigned TRMT :1;
+ unsigned BRGH :1;
+ unsigned :1;
+ unsigned SYNC :1;
+ unsigned TXEN :1;
+ unsigned TX9 :1;
+ unsigned CSRC :1;
+ };
+ struct {
+ unsigned TXD8 :1;
+ unsigned :5;
+ unsigned nTX8 :1;
+ };
+ struct {
+ unsigned :6;
+ unsigned TX8_9 :1;
+ };
+} TXSTAbits_t;
+extern volatile TXSTAbits_t TXSTAbits __attribute__((address(0x098)));
+# 2080 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char SPBRG __attribute__((address(0x099)));
+
+__asm("SPBRG equ 099h");
+
+
+
+
+extern volatile unsigned char CMCON __attribute__((address(0x09C)));
+
+__asm("CMCON equ 09Ch");
+
+
+typedef union {
+ struct {
+ unsigned CM :3;
+ unsigned CIS :1;
+ unsigned C1INV :1;
+ unsigned C2INV :1;
+ unsigned C1OUT :1;
+ unsigned C2OUT :1;
+ };
+ struct {
+ unsigned CM0 :1;
+ unsigned CM1 :1;
+ unsigned CM2 :1;
+ };
+} CMCONbits_t;
+extern volatile CMCONbits_t CMCONbits __attribute__((address(0x09C)));
+# 2157 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char CVRCON __attribute__((address(0x09D)));
+
+__asm("CVRCON equ 09Dh");
+
+
+typedef union {
+ struct {
+ unsigned CVR :4;
+ unsigned :1;
+ unsigned CVRR :1;
+ unsigned CVROE :1;
+ unsigned CVREN :1;
+ };
+ struct {
+ unsigned CVR0 :1;
+ unsigned CVR1 :1;
+ unsigned CVR2 :1;
+ unsigned CVR3 :1;
+ };
+} CVRCONbits_t;
+extern volatile CVRCONbits_t CVRCONbits __attribute__((address(0x09D)));
+# 2222 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char ADRESL __attribute__((address(0x09E)));
+
+__asm("ADRESL equ 09Eh");
+
+
+
+
+extern volatile unsigned char ADCON1 __attribute__((address(0x09F)));
+
+__asm("ADCON1 equ 09Fh");
+
+
+typedef union {
+ struct {
+ unsigned PCFG :4;
+ unsigned :2;
+ unsigned ADCS2 :1;
+ unsigned ADFM :1;
+ };
+ struct {
+ unsigned PCFG0 :1;
+ unsigned PCFG1 :1;
+ unsigned PCFG2 :1;
+ unsigned PCFG3 :1;
+ };
+} ADCON1bits_t;
+extern volatile ADCON1bits_t ADCON1bits __attribute__((address(0x09F)));
+# 2288 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EEDATA __attribute__((address(0x10C)));
+
+__asm("EEDATA equ 010Ch");
+
+
+
+
+extern volatile unsigned char EEADR __attribute__((address(0x10D)));
+
+__asm("EEADR equ 010Dh");
+
+
+
+
+extern volatile unsigned char EEDATH __attribute__((address(0x10E)));
+
+__asm("EEDATH equ 010Eh");
+
+
+
+
+extern volatile unsigned char EEADRH __attribute__((address(0x10F)));
+
+__asm("EEADRH equ 010Fh");
+
+
+
+
+extern volatile unsigned char EECON1 __attribute__((address(0x18C)));
+
+__asm("EECON1 equ 018Ch");
+
+
+typedef union {
+ struct {
+ unsigned RD :1;
+ unsigned WR :1;
+ unsigned WREN :1;
+ unsigned WRERR :1;
+ unsigned :3;
+ unsigned EEPGD :1;
+ };
+} EECON1bits_t;
+extern volatile EECON1bits_t EECON1bits __attribute__((address(0x18C)));
+# 2361 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile unsigned char EECON2 __attribute__((address(0x18D)));
+
+__asm("EECON2 equ 018Dh");
+# 2374 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic16f877a.h" 3
+extern volatile __bit ACKDT __attribute__((address(0x48D)));
+
+
+extern volatile __bit ACKEN __attribute__((address(0x48C)));
+
+
+extern volatile __bit ACKSTAT __attribute__((address(0x48E)));
+
+
+extern volatile __bit ADCS0 __attribute__((address(0xFE)));
+
+
+extern volatile __bit ADCS1 __attribute__((address(0xFF)));
+
+
+extern volatile __bit ADCS2 __attribute__((address(0x4FE)));
+
+
+extern volatile __bit ADDEN __attribute__((address(0xC3)));
+
+
+extern volatile __bit ADFM __attribute__((address(0x4FF)));
+
+
+extern volatile __bit ADIE __attribute__((address(0x466)));
+
+
+extern volatile __bit ADIF __attribute__((address(0x66)));
+
+
+extern volatile __bit ADON __attribute__((address(0xF8)));
+
+
+extern volatile __bit BCLIE __attribute__((address(0x46B)));
+
+
+extern volatile __bit BCLIF __attribute__((address(0x6B)));
+
+
+extern volatile __bit BF __attribute__((address(0x4A0)));
+
+
+extern volatile __bit BRGH __attribute__((address(0x4C2)));
+
+
+extern volatile __bit C1INV __attribute__((address(0x4E4)));
+
+
+extern volatile __bit C1OUT __attribute__((address(0x4E6)));
+
+
+extern volatile __bit C2INV __attribute__((address(0x4E5)));
+
+
+extern volatile __bit C2OUT __attribute__((address(0x4E7)));
+
+
+extern volatile __bit CARRY __attribute__((address(0x18)));
+
+
+extern volatile __bit CCP1IE __attribute__((address(0x462)));
+
+
+extern volatile __bit CCP1IF __attribute__((address(0x62)));
+
+
+extern volatile __bit CCP1M0 __attribute__((address(0xB8)));
+
+
+extern volatile __bit CCP1M1 __attribute__((address(0xB9)));
+
+
+extern volatile __bit CCP1M2 __attribute__((address(0xBA)));
+
+
+extern volatile __bit CCP1M3 __attribute__((address(0xBB)));
+
+
+extern volatile __bit CCP1X __attribute__((address(0xBD)));
+
+
+extern volatile __bit CCP1Y __attribute__((address(0xBC)));
+
+
+extern volatile __bit CCP2IE __attribute__((address(0x468)));
+
+
+extern volatile __bit CCP2IF __attribute__((address(0x68)));
+
+
+extern volatile __bit CCP2M0 __attribute__((address(0xE8)));
+
+
+extern volatile __bit CCP2M1 __attribute__((address(0xE9)));
+
+
+extern volatile __bit CCP2M2 __attribute__((address(0xEA)));
+
+
+extern volatile __bit CCP2M3 __attribute__((address(0xEB)));
+
+
+extern volatile __bit CCP2X __attribute__((address(0xED)));
+
+
+extern volatile __bit CCP2Y __attribute__((address(0xEC)));
+
+
+extern volatile __bit CHS0 __attribute__((address(0xFB)));
+
+
+extern volatile __bit CHS1 __attribute__((address(0xFC)));
+
+
+extern volatile __bit CHS2 __attribute__((address(0xFD)));
+
+
+extern volatile __bit CIS __attribute__((address(0x4E3)));
+
+
+extern volatile __bit CKE __attribute__((address(0x4A6)));
+
+
+extern volatile __bit CKP __attribute__((address(0xA4)));
+
+
+extern volatile __bit CM0 __attribute__((address(0x4E0)));
+
+
+extern volatile __bit CM1 __attribute__((address(0x4E1)));
+
+
+extern volatile __bit CM2 __attribute__((address(0x4E2)));
+
+
+extern volatile __bit CMIE __attribute__((address(0x46E)));
+
+
+extern volatile __bit CMIF __attribute__((address(0x6E)));
+
+
+extern volatile __bit CREN __attribute__((address(0xC4)));
+
+
+extern volatile __bit CSRC __attribute__((address(0x4C7)));
+
+
+extern volatile __bit CVR0 __attribute__((address(0x4E8)));
+
+
+extern volatile __bit CVR1 __attribute__((address(0x4E9)));
+
+
+extern volatile __bit CVR2 __attribute__((address(0x4EA)));
+
+
+extern volatile __bit CVR3 __attribute__((address(0x4EB)));
+
+
+extern volatile __bit CVREN __attribute__((address(0x4EF)));
+
+
+extern volatile __bit CVROE __attribute__((address(0x4EE)));
+
+
+extern volatile __bit CVRR __attribute__((address(0x4ED)));
+
+
+extern volatile __bit DATA_ADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit DC __attribute__((address(0x19)));
+
+
+extern volatile __bit D_A __attribute__((address(0x4A5)));
+
+
+extern volatile __bit D_nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit EEIE __attribute__((address(0x46C)));
+
+
+extern volatile __bit EEIF __attribute__((address(0x6C)));
+
+
+extern volatile __bit EEPGD __attribute__((address(0xC67)));
+
+
+extern volatile __bit FERR __attribute__((address(0xC2)));
+
+
+extern volatile __bit GCEN __attribute__((address(0x48F)));
+
+
+extern volatile __bit GIE __attribute__((address(0x5F)));
+
+
+extern volatile __bit GO __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_DONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit GO_nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit I2C_DATA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit I2C_READ __attribute__((address(0x4A2)));
+
+
+extern volatile __bit I2C_START __attribute__((address(0x4A3)));
+
+
+extern volatile __bit I2C_STOP __attribute__((address(0x4A4)));
+
+
+extern volatile __bit IBF __attribute__((address(0x44F)));
+
+
+extern volatile __bit IBOV __attribute__((address(0x44D)));
+
+
+extern volatile __bit INTE __attribute__((address(0x5C)));
+
+
+extern volatile __bit INTEDG __attribute__((address(0x40E)));
+
+
+extern volatile __bit INTF __attribute__((address(0x59)));
+
+
+extern volatile __bit IRP __attribute__((address(0x1F)));
+
+
+extern volatile __bit OBF __attribute__((address(0x44E)));
+
+
+extern volatile __bit OERR __attribute__((address(0xC1)));
+
+
+extern volatile __bit PCFG0 __attribute__((address(0x4F8)));
+
+
+extern volatile __bit PCFG1 __attribute__((address(0x4F9)));
+
+
+extern volatile __bit PCFG2 __attribute__((address(0x4FA)));
+
+
+extern volatile __bit PCFG3 __attribute__((address(0x4FB)));
+
+
+extern volatile __bit PEIE __attribute__((address(0x5E)));
+
+
+extern volatile __bit PEN __attribute__((address(0x48A)));
+
+
+extern volatile __bit PS0 __attribute__((address(0x408)));
+
+
+extern volatile __bit PS1 __attribute__((address(0x409)));
+
+
+extern volatile __bit PS2 __attribute__((address(0x40A)));
+
+
+extern volatile __bit PSA __attribute__((address(0x40B)));
+
+
+extern volatile __bit PSPIE __attribute__((address(0x467)));
+
+
+extern volatile __bit PSPIF __attribute__((address(0x67)));
+
+
+extern volatile __bit PSPMODE __attribute__((address(0x44C)));
+
+
+extern volatile __bit RA0 __attribute__((address(0x28)));
+
+
+extern volatile __bit RA1 __attribute__((address(0x29)));
+
+
+extern volatile __bit RA2 __attribute__((address(0x2A)));
+
+
+extern volatile __bit RA3 __attribute__((address(0x2B)));
+
+
+extern volatile __bit RA4 __attribute__((address(0x2C)));
+
+
+extern volatile __bit RA5 __attribute__((address(0x2D)));
+
+
+extern volatile __bit RB0 __attribute__((address(0x30)));
+
+
+extern volatile __bit RB1 __attribute__((address(0x31)));
+
+
+extern volatile __bit RB2 __attribute__((address(0x32)));
+
+
+extern volatile __bit RB3 __attribute__((address(0x33)));
+
+
+extern volatile __bit RB4 __attribute__((address(0x34)));
+
+
+extern volatile __bit RB5 __attribute__((address(0x35)));
+
+
+extern volatile __bit RB6 __attribute__((address(0x36)));
+
+
+extern volatile __bit RB7 __attribute__((address(0x37)));
+
+
+extern volatile __bit RBIE __attribute__((address(0x5B)));
+
+
+extern volatile __bit RBIF __attribute__((address(0x58)));
+
+
+extern volatile __bit RC0 __attribute__((address(0x38)));
+
+
+extern volatile __bit RC1 __attribute__((address(0x39)));
+
+
+extern volatile __bit RC2 __attribute__((address(0x3A)));
+
+
+extern volatile __bit RC3 __attribute__((address(0x3B)));
+
+
+extern volatile __bit RC4 __attribute__((address(0x3C)));
+
+
+extern volatile __bit RC5 __attribute__((address(0x3D)));
+
+
+extern volatile __bit RC6 __attribute__((address(0x3E)));
+
+
+extern volatile __bit RC7 __attribute__((address(0x3F)));
+
+
+extern volatile __bit RC8_9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RC9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RCD8 __attribute__((address(0xC0)));
+
+
+extern volatile __bit RCEN __attribute__((address(0x48B)));
+
+
+extern volatile __bit RCIE __attribute__((address(0x465)));
+
+
+extern volatile __bit RCIF __attribute__((address(0x65)));
+
+
+extern volatile __bit RD __attribute__((address(0xC60)));
+
+
+extern volatile __bit RD0 __attribute__((address(0x40)));
+
+
+extern volatile __bit RD1 __attribute__((address(0x41)));
+
+
+extern volatile __bit RD2 __attribute__((address(0x42)));
+
+
+extern volatile __bit RD3 __attribute__((address(0x43)));
+
+
+extern volatile __bit RD4 __attribute__((address(0x44)));
+
+
+extern volatile __bit RD5 __attribute__((address(0x45)));
+
+
+extern volatile __bit RD6 __attribute__((address(0x46)));
+
+
+extern volatile __bit RD7 __attribute__((address(0x47)));
+
+
+extern volatile __bit RE0 __attribute__((address(0x48)));
+
+
+extern volatile __bit RE1 __attribute__((address(0x49)));
+
+
+extern volatile __bit RE2 __attribute__((address(0x4A)));
+
+
+extern volatile __bit READ_WRITE __attribute__((address(0x4A2)));
+
+
+extern volatile __bit RP0 __attribute__((address(0x1D)));
+
+
+extern volatile __bit RP1 __attribute__((address(0x1E)));
+
+
+extern volatile __bit RSEN __attribute__((address(0x489)));
+
+
+extern volatile __bit RX9 __attribute__((address(0xC6)));
+
+
+extern volatile __bit RX9D __attribute__((address(0xC0)));
+
+
+extern volatile __bit R_W __attribute__((address(0x4A2)));
+
+
+extern volatile __bit R_nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit SEN __attribute__((address(0x488)));
+
+
+extern volatile __bit SMP __attribute__((address(0x4A7)));
+
+
+extern volatile __bit SPEN __attribute__((address(0xC7)));
+
+
+extern volatile __bit SREN __attribute__((address(0xC5)));
+
+
+extern volatile __bit SSPEN __attribute__((address(0xA5)));
+
+
+extern volatile __bit SSPIE __attribute__((address(0x463)));
+
+
+extern volatile __bit SSPIF __attribute__((address(0x63)));
+
+
+extern volatile __bit SSPM0 __attribute__((address(0xA0)));
+
+
+extern volatile __bit SSPM1 __attribute__((address(0xA1)));
+
+
+extern volatile __bit SSPM2 __attribute__((address(0xA2)));
+
+
+extern volatile __bit SSPM3 __attribute__((address(0xA3)));
+
+
+extern volatile __bit SSPOV __attribute__((address(0xA6)));
+
+
+extern volatile __bit SYNC __attribute__((address(0x4C4)));
+
+
+extern volatile __bit T0CS __attribute__((address(0x40D)));
+
+
+extern volatile __bit T0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit T0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit T0SE __attribute__((address(0x40C)));
+
+
+extern volatile __bit T1CKPS0 __attribute__((address(0x84)));
+
+
+extern volatile __bit T1CKPS1 __attribute__((address(0x85)));
+
+
+extern volatile __bit T1INSYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T1OSCEN __attribute__((address(0x83)));
+
+
+extern volatile __bit T1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit T2CKPS0 __attribute__((address(0x90)));
+
+
+extern volatile __bit T2CKPS1 __attribute__((address(0x91)));
+
+
+extern volatile __bit TMR0IE __attribute__((address(0x5D)));
+
+
+extern volatile __bit TMR0IF __attribute__((address(0x5A)));
+
+
+extern volatile __bit TMR1CS __attribute__((address(0x81)));
+
+
+extern volatile __bit TMR1IE __attribute__((address(0x460)));
+
+
+extern volatile __bit TMR1IF __attribute__((address(0x60)));
+
+
+extern volatile __bit TMR1ON __attribute__((address(0x80)));
+
+
+extern volatile __bit TMR2IE __attribute__((address(0x461)));
+
+
+extern volatile __bit TMR2IF __attribute__((address(0x61)));
+
+
+extern volatile __bit TMR2ON __attribute__((address(0x92)));
+
+
+extern volatile __bit TOUTPS0 __attribute__((address(0x93)));
+
+
+extern volatile __bit TOUTPS1 __attribute__((address(0x94)));
+
+
+extern volatile __bit TOUTPS2 __attribute__((address(0x95)));
+
+
+extern volatile __bit TOUTPS3 __attribute__((address(0x96)));
+
+
+extern volatile __bit TRISA0 __attribute__((address(0x428)));
+
+
+extern volatile __bit TRISA1 __attribute__((address(0x429)));
+
+
+extern volatile __bit TRISA2 __attribute__((address(0x42A)));
+
+
+extern volatile __bit TRISA3 __attribute__((address(0x42B)));
+
+
+extern volatile __bit TRISA4 __attribute__((address(0x42C)));
+
+
+extern volatile __bit TRISA5 __attribute__((address(0x42D)));
+
+
+extern volatile __bit TRISB0 __attribute__((address(0x430)));
+
+
+extern volatile __bit TRISB1 __attribute__((address(0x431)));
+
+
+extern volatile __bit TRISB2 __attribute__((address(0x432)));
+
+
+extern volatile __bit TRISB3 __attribute__((address(0x433)));
+
+
+extern volatile __bit TRISB4 __attribute__((address(0x434)));
+
+
+extern volatile __bit TRISB5 __attribute__((address(0x435)));
+
+
+extern volatile __bit TRISB6 __attribute__((address(0x436)));
+
+
+extern volatile __bit TRISB7 __attribute__((address(0x437)));
+
+
+extern volatile __bit TRISC0 __attribute__((address(0x438)));
+
+
+extern volatile __bit TRISC1 __attribute__((address(0x439)));
+
+
+extern volatile __bit TRISC2 __attribute__((address(0x43A)));
+
+
+extern volatile __bit TRISC3 __attribute__((address(0x43B)));
+
+
+extern volatile __bit TRISC4 __attribute__((address(0x43C)));
+
+
+extern volatile __bit TRISC5 __attribute__((address(0x43D)));
+
+
+extern volatile __bit TRISC6 __attribute__((address(0x43E)));
+
+
+extern volatile __bit TRISC7 __attribute__((address(0x43F)));
+
+
+extern volatile __bit TRISD0 __attribute__((address(0x440)));
+
+
+extern volatile __bit TRISD1 __attribute__((address(0x441)));
+
+
+extern volatile __bit TRISD2 __attribute__((address(0x442)));
+
+
+extern volatile __bit TRISD3 __attribute__((address(0x443)));
+
+
+extern volatile __bit TRISD4 __attribute__((address(0x444)));
+
+
+extern volatile __bit TRISD5 __attribute__((address(0x445)));
+
+
+extern volatile __bit TRISD6 __attribute__((address(0x446)));
+
+
+extern volatile __bit TRISD7 __attribute__((address(0x447)));
+
+
+extern volatile __bit TRISE0 __attribute__((address(0x448)));
+
+
+extern volatile __bit TRISE1 __attribute__((address(0x449)));
+
+
+extern volatile __bit TRISE2 __attribute__((address(0x44A)));
+
+
+extern volatile __bit TRMT __attribute__((address(0x4C1)));
+
+
+extern volatile __bit TX8_9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit TX9D __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXD8 __attribute__((address(0x4C0)));
+
+
+extern volatile __bit TXEN __attribute__((address(0x4C5)));
+
+
+extern volatile __bit TXIE __attribute__((address(0x464)));
+
+
+extern volatile __bit TXIF __attribute__((address(0x64)));
+
+
+extern volatile __bit UA __attribute__((address(0x4A1)));
+
+
+extern volatile __bit WCOL __attribute__((address(0xA7)));
+
+
+extern volatile __bit WR __attribute__((address(0xC61)));
+
+
+extern volatile __bit WREN __attribute__((address(0xC62)));
+
+
+extern volatile __bit WRERR __attribute__((address(0xC63)));
+
+
+extern volatile __bit ZERO __attribute__((address(0x1A)));
+
+
+extern volatile __bit nA __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nADDRESS __attribute__((address(0x4A5)));
+
+
+extern volatile __bit nBO __attribute__((address(0x470)));
+
+
+extern volatile __bit nBOR __attribute__((address(0x470)));
+
+
+extern volatile __bit nDONE __attribute__((address(0xFA)));
+
+
+extern volatile __bit nPD __attribute__((address(0x1B)));
+
+
+extern volatile __bit nPOR __attribute__((address(0x471)));
+
+
+extern volatile __bit nRBPU __attribute__((address(0x40F)));
+
+
+extern volatile __bit nRC8 __attribute__((address(0xC6)));
+
+
+extern volatile __bit nT1SYNC __attribute__((address(0x82)));
+
+
+extern volatile __bit nTO __attribute__((address(0x1C)));
+
+
+extern volatile __bit nTX8 __attribute__((address(0x4C6)));
+
+
+extern volatile __bit nW __attribute__((address(0x4A2)));
+
+
+extern volatile __bit nWRITE __attribute__((address(0x4A2)));
+# 2643 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic_chip_select.h" 2 3
+# 13 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+# 30 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+#pragma intrinsic(__nop)
+extern void __nop(void);
+# 78 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+__attribute__((__unsupported__("The " "FLASH_READ" " macro function is no longer supported. Please use the MPLAB X MCC."))) unsigned char __flash_read(unsigned short addr);
+
+__attribute__((__unsupported__("The " "FLASH_WRITE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_write(unsigned short addr, unsigned short data);
+
+__attribute__((__unsupported__("The " "FLASH_ERASE" " macro function is no longer supported. Please use the MPLAB X MCC."))) void __flash_erase(unsigned short addr);
+
+
+
+# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 1 3
+# 114 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\eeprom_routines.h" 3
+extern void eeprom_write(unsigned char addr, unsigned char value);
+extern unsigned char eeprom_read(unsigned char addr);
+# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 2 3
+
+
+
+
+
+
+#pragma intrinsic(_delay)
+extern __attribute__((nonreentrant)) void _delay(unsigned long);
+#pragma intrinsic(_delaywdt)
+extern __attribute__((nonreentrant)) void _delaywdt(unsigned long);
+# 137 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\pic.h" 3
+extern __bank0 unsigned char __resetbits;
+extern __bank0 __bit __powerdown;
+extern __bank0 __bit __timeout;
+# 27 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 2 3
+# 1 "./conf.h" 2
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 5 "main.c" 2
+
+# 1 "./main.h" 1
+
+unsigned int sec = 30;
+unsigned int min = 42;
+unsigned int hour = 21;
+unsigned int dayofweek = 7;
+unsigned int date = 27;
+unsigned int month = 7;
+unsigned int year = 19;
+unsigned int century = 20;
+unsigned int alarm1_sec, alarm1_min, alarm1_hour;
+unsigned int alarm2_min, alarm2_hour;
+unsigned int status_reg, alarm1_status, alarm2_status;
+unsigned int control_reg;
+
+
+unsigned int temperature_lsb = 0;
+int temperature_msb = 0;
+unsigned char temp_sign = ' ';
+
+
+char* weekday;
+
+
+unsigned int sec_chg = 0;
+
+
+unsigned char sec_0, sec_1;
+unsigned char min_0, min_1;
+unsigned char hour_0, hour_1;
+unsigned char day_0, day_1;
+unsigned char month_0, month_1;
+unsigned char year_0, year_1;
+unsigned char temp_0, temp_1, temp_2;
+unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
+ alarm1_hour_0, alarm1_hour_1;
+unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
+
+
+char buf[40];
+
+
+void format_DateTimeChars(void);
+
+
+void format_Temperature(void);
+
+
+void getWeekDay(unsigned int);
+
+
+void Get_Alarm_Status(void);
+
+void display_Intro(void);
+void display_Lcd_Layout(void);
+
+void update_Display(void);
+# 6 "main.c" 2
+
+# 1 "./lcd.h" 1
+void Lcd_Port(char);
+void Lcd_Cmd(char);
+void Lcd_Clear();
+void Lcd_Set_Cursor(char, char);
+void Lcd_Init();
+void Lcd_Write_Char(char);
+void Lcd_Write_String(char *);
+void Lcd_Shift_Right();
+void Lcd_Shift_Left();
+
+
+void Vfd_Set_Brightness(int);
+# 7 "main.c" 2
+
+# 1 "./i2c.h" 1
+void I2C_Master_Init(const unsigned long);
+void I2C_Master_Wait(void);
+void I2C_Master_Start(void);
+void I2C_Master_Repeated_Start(void);
+void I2C_Master_Stop(void);
+void I2C_Master_Write(unsigned);
+unsigned short I2C_Master_Read(unsigned short);
+# 8 "main.c" 2
+
+# 1 "./ds3231.h" 1
+# 1 "./conf.h" 1
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./ds3231.h" 2
+
+
+int BCD_2_DEC(int);
+int DEC_2_BCD(int);
+void Read_Alarms_Temp(void);
+void Set_Date(void);
+void Set_DayOfWeek(void);
+void Set_Time(void);
+void Set_Time_Date(void);
+void Update_Current_Date_Time(void);
+void Write_Alarms(void);
+# 9 "main.c" 2
+
+# 1 "./beep.h" 1
+# 1 "./conf.h" 1
+
+
+
+#pragma config FOSC = HS
+#pragma config WDTE = OFF
+#pragma config PWRTE = ON
+#pragma config BOREN = ON
+#pragma config LVP = OFF
+#pragma config CPD = OFF
+#pragma config WRT = OFF
+#pragma config CP = OFF
+# 1 "./beep.h" 2
+
+
+void alarm(unsigned int);
+# 10 "main.c" 2
+
+
+
+
+
+
+
+int main() {
+ TRISC = 0x00;
+ PORTC = 0x00;
+
+ TRISD = 0x00;
+ PORTD = 0x00;
+# 33 "main.c"
+ I2C_Master_Init(100000);
+
+
+
+
+
+
+
+ Lcd_Init();
+
+
+
+
+
+
+
+ display_Intro();
+ display_Lcd_Layout();
+# 68 "main.c"
+ while (1) {
+
+
+
+ Update_Current_Date_Time();
+
+
+
+ Read_Alarms_Temp();
+
+
+ Get_Alarm_Status();
+
+
+
+ format_DateTimeChars();
+
+
+
+ format_Temperature();
+
+
+
+ getWeekDay(dayofweek);
+
+
+ if (sec_chg != sec) {
+
+ update_Display();
+
+
+ sec_chg = sec;
+# 121 "main.c"
+ }
+ }
+
+ return 0;
+}
+
+
+
+void format_DateTimeChars() {
+ sec_0 = sec % 10 + '0';
+ sec_1 = sec / 10 + '0';
+ min_0 = min % 10 + '0';
+ min_1 = min / 10 + '0';
+ hour_0 = hour % 10 + '0';
+ hour_1 = hour / 10 + '0';
+ day_0 = date % 10 + '0';
+ day_1 = date / 10 + '0';
+ month_0 = month % 10 + '0';
+ month_1 = month / 10 + '0';
+ year_0 = year % 10 + '0';
+ year_1 = year / 10 + '0';
+ alarm1_sec_0 = alarm1_sec % 10 + '0';
+ alarm1_sec_1 = alarm1_sec / 10 + '0';
+ alarm1_min_0 = alarm1_min % 10 + '0';
+ alarm1_min_1 = alarm1_min / 10 + '0';
+ alarm1_hour_0 = alarm1_hour % 10 + '0';
+ alarm1_hour_1 = alarm1_hour / 10 + '0';
+ alarm2_min_0 = alarm2_min % 10 + '0';
+ alarm2_min_1 = alarm2_min / 10 + '0';
+ alarm2_hour_0 = alarm2_hour % 10 + '0';
+ alarm2_hour_1 = alarm2_hour / 10 + '0';
+}
+
+
+
+void format_Temperature() {
+
+ if (temperature_msb < 0) {
+ temperature_msb *= -1;
+ temp_sign = '-';
+ } else {
+ temp_sign = '+';
+ }
+
+
+ temperature_lsb >>= 6;
+
+
+ temperature_lsb *= 25;
+
+ if (temperature_lsb == 0) {
+ temp_0 = '0';
+ }
+
+ if (temperature_lsb == 25) {
+ temp_0 = '2';
+ }
+
+ if (temperature_lsb == 50) {
+ temp_0 = '5';
+ }
+
+ if (temperature_lsb == 75) {
+ temp_0 = '7';
+ }
+
+ temp_1 = temperature_msb % 10 + '0';
+ temp_2 = temperature_msb / 10 + '0';
+}
+
+
+
+void getWeekDay(unsigned int dayofweek) {
+ switch (dayofweek) {
+ case 1:
+ weekday = "Sun";
+ break;
+ case 2:
+ weekday = "Mon";
+ break;
+ case 3:
+ weekday = "Tue";
+ break;
+ case 4:
+ weekday = "Wed";
+ break;
+ case 5:
+ weekday = "Thu";
+ break;
+ case 6:
+ weekday = "Fri";
+ break;
+ case 7:
+ weekday = "Sat";
+ break;
+ }
+}
+
+
+
+void Get_Alarm_Status() {
+ alarm1_status = control_reg & 0x01;
+ alarm2_status = (control_reg >> 1) & 0x01;
+}
+
+void display_Intro() {
+
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("RTC/LCD with PIC");
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(" Circuit Digest");
+ _delay((unsigned long)((2000)*(20000000/4000.0)));
+}
+
+void display_Lcd_Layout() {
+
+ Lcd_Clear();
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_String("HH:mm:ss -PP.P");
+ Lcd_Write_Char(0xDF);
+ Lcd_Write_Char('C');
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String("ddd, DD/MM/YY ");
+ _delay((unsigned long)((2000)*(20000000/4000.0)));
+}
+
+void update_Display() {
+
+ Lcd_Set_Cursor(1, 1);
+ Lcd_Write_Char(hour_1);
+ Lcd_Write_Char(hour_0);
+
+
+ Lcd_Set_Cursor(1, 4);
+ Lcd_Write_Char(min_1);
+ Lcd_Write_Char(min_0);
+
+
+ Lcd_Set_Cursor(1, 7);
+ Lcd_Write_Char(sec_1);
+ Lcd_Write_Char(sec_0);
+
+
+ Lcd_Set_Cursor(2, 6);
+ Lcd_Write_Char(day_1);
+ Lcd_Write_Char(day_0);
+
+
+ Lcd_Set_Cursor(2, 9);
+ Lcd_Write_Char(month_1);
+ Lcd_Write_Char(month_0);
+
+
+ Lcd_Set_Cursor(2, 12);
+ Lcd_Write_Char(year_1);
+ Lcd_Write_Char(year_0);
+
+
+ Lcd_Set_Cursor(2, 1);
+ Lcd_Write_String(weekday);
+
+
+ Lcd_Set_Cursor(1, 10);
+ Lcd_Write_Char(temp_sign);
+ Lcd_Write_Char(temp_2);
+ Lcd_Write_Char(temp_1);
+ Lcd_Set_Cursor(1, 14);
+ Lcd_Write_Char(temp_0);
+
+ if (min == 00 && sec == 00) {
+ alarm(2);
+ }
+
+ if (min == 30 && sec == 00) {
+ alarm(1);
+ }
+}