MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 ;********************************************************** 00002 ;* firebee1 PIC18F4321 MAIN FILE 00003 ;********************************************************** 00004 ;* CREATED BY FREDI ASCHWANDEN 00005 ;* DATE 22.9.2009 00006 ;********************************************************** 00007 list PE=18f4520 ;EXTENDED INSTRUCTION SET 00008 include "P18f4520.inc" 00001 LIST 00002 00003 ;========================================================================== 00004 ; MPASM PIC18F4520 processor include 00005 ; 00006 ; (c) Copyright 1999-2007 Microchip Technology, All rights reserved 00007 ;========================================================================== 00008 01336 LIST 00009 ;------------------------ Equates --------------------------; 00010 ;Register addresses 00011 ;BANK 0 00000000 00012 SECS equ 0x00 00000001 00013 SECS_ALARM EQU 0x01 00000002 00014 MINS equ 0x02 00000003 00015 MINS_ALRAM EQU 0x03 00000004 00016 HOURS equ 0x04 00000005 00017 HOURS_ALARM EQU 0x05 00000006 00018 DAY_OF_WEEK EQU 0x06 00000007 00019 DAYS EQU 0x07 00000008 00020 MONTHS EQU 0x08 00000009 00021 YEARS EQU 0x09 ;offset vom 1968 0000000A 00022 REGA EQU 0x0A 0000000B 00023 REGB EQU 0x0B 0000000C 00024 REGC EQU 0x0C 0000000D 00025 REGD EQU 0x0D 0000000E 00026 RTC_RAM EQU 0x0E ; bis 0x3F 00000040 00027 free equ 0x40 00000041 00028 TICKS equ 0x41 ;125MS 00000042 00029 TASTE_ON_TIME EQU 0x42 00000043 00030 TASTE_OFF_TIME EQU 0x43 00000044 00031 POWER_ON_TIME EQU 0x44 00000045 00032 AD_KANAL EQU 0x45 00000046 00033 U_ERR EQU 0x46 ;SPANNUNGSFEHLER WENN BIT 0=1, BIT1=1 WA RTEN AUF GELADEN 00000047 00034 U_ERR_TIME EQU 0x47 ;ZEIT SEIT SPANNUNGSFEHLER 00000048 00035 U_POWER_IN EQU 0x48 ;SPANNUNG POWER IN 1V CA. 6E 00000049 00036 RX_B EQU 0x49 ;RECEIVED BYT 0000004A 00037 RX_STATUS EQU 0x4A ;STATUS: 0x00=WAIT AUF MCF COMMANDO, 0x8 2=EMPFANGE 64BYT FROM RTC 0000004B 00038 TX_STATUS EQU 0x4B ;STATUS: 0x00=WAIT 0x81=SENDE 64BYT FROM RTC 0000004C 00039 GO_SUB EQU 0x4C ;WENN GLEICH 0xFB DANN SUBROUTINE AUSFÜH REN 0000004D 00040 GO_INT EQU 0x4D ;WENN GLEICH 0xFB DANN SUBROUTINE AUSFÜH MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE REN 0000004E 00041 EAPIR1 EQU 0x4E ;INTERRUPT ACTIV UND ENABLE 0000004F 00042 EAPIR2 EQU 0x4F ;INTERRUPT ACTIV UND ENABLE 00043 ;BANK 1 AB 0x100 00000100 00044 RX_BUFFER EQU 0x100 ;0x80 BYT BUFFER BIS 0x17F BANK 00000180 00045 TX_BUFFER EQU 0x180 ;0X80 BYT BUFFER BIS 0x1FF BANK 00046 00047 ;-------------------------------------------------------------- 00000002 00048 SEND_RTC_TIME EQU .2 ;0.25 SEC (EINHEIT IST EIN TICK = 128MS 00000002 00049 RESET_ON_TIME EQU .2 ;0.25 SEC (EINHEIT IST EIN TICK = 128MS 00000004 00050 RESET_OFF_TIME EQU .4 ;0.5 SEC (EINHEIT IST EIN TICK = 128MS 00000014 00051 OFF_TIME EQU .20 ;2.5 SEC (EINHEIT IST EIN TICK = 128MS 00000002 00052 ON_TIME EQU .2 ;0.25 SEC (EINHEIT IST EIN TICK = 128MS 000000F0 00053 TIMER_HB EQU .240 ;256- (32768Hz PRO 1/8SEC = 4096TICKS/25 6) => 256-16=240 (resp 256-16/4 (wenn osco) = 252) 000000A0 00054 TIME_MAX EQU .160 ;MAXIMALTIME 00000005 00055 U_ERR_PW_AUS EQU .5 ;5 SEC 00056 ;SERIEL 000000FF 00057 SYNC1 EQU 0FFh 00000041 00058 SYNC1_DATA EQU 'A'; 000000FE 00059 SYNC2 EQU 0FEh 00000043 00060 SYNC2_DATA EQU 'C'; 000000FD 00061 SYNC3 EQU 0FDh 00000050 00062 SYNC3_DATA EQU 'P'; 000000FC 00063 SYNC4 EQU 0FCh 00000046 00064 SYNC4_DATA EQU 'F'; 00000001 00065 REQ_RTCD_FROM_PIC EQU 01h ;RTC AND NVRAM DATEN VOM PIC ANFORDERN 00000081 00066 RTCD_FROM_PIC EQU 81h ;RTC AND NVRAM DATEN HEADER UND STATUS 00000002 00067 REQ_RTCD_FROM_MCF EQU 02h ;RTC AND NVRAM DATEN VOM MCF ANFORDERN 00000082 00068 RTCD_FROM_MCF EQU 82h ;RTC AND NVRAM DATEN HEADER UND STATUS 00000003 00069 U_MIN_TO_MCF EQU 03h ;UNTERSPANNUNGSMITTEILUNG AN PROCESSOR 00000004 00070 EXT_SUB_GO EQU 04h ;SERIELL CODE UM SUBROUTINEN/INT ERRUPTS ZU AKTIVIEREN 00000005 00071 EXT_SUB_STOP EQU 05h ;SERIELL CODE UM SUBROUTINEN/INTERRUPTS ZU STOPPEN 00000012 00072 CLK_SLEEP EQU B'00010010' ;125kHz intern, SLEEP MODE 00000072 00073 CLK_ACTIV EQU B'01110010' ;inTernal CLK=8MHz, SLEEP MODE, SLEEP MODE 000000FB 00074 EXT_CODE EQU 0xFB ;CODE FÜR EXTERNE SUBROUTINEN/INTERRUPTS AUSFÜHREN (FireBee!) 00002000 00075 EXTERN_INT_ADR EQU 0x2000 ;HIER MUSS 0xFB STEHEN WENN EXTERNE INTERRUPTS A USFÜHRBAR 00002002 00076 EXTERN_INTERRUPTS EQU 0x2002 ;STARTPUNKT EXTERNE SUBROUTINES 00002010 00077 EXTERN_SUB_ADR EQU 0x2010 ;HIER MUSS 0xFB STEHEN WENN EXTERNE SUBROUTINES AUSFÜHRBAR 00002012 00078 EXTERN_SUBROUTINES EQU 0x2012 ;STARTPUNKT EXTERNE SUBROUTINES 000000A0 00079 REQ_BLOCK EQU 0xA0 ;BLOCK DATEN LESEN -> CODE UND 3 BYTS AD RESSE = TOTAL 4 BYTES 000000A1 00080 READ_BLOCK EQU 0xA1 ;PROGRAMM BLOCK PIC->MCF -> CODE, 3 BYTS ADRESSE UND 64 BYTS DATEN = TOTAL 68 BYTES 000000A2 00081 WRITE_BLOCK EQU 0xA2 ;PROGRAMM BLOCK MCF->PIC -> CODE, 3 BYTS MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE ADRESSE UND 64 BYTS DATEN = TOTAL 68 BYTES 00000022 00082 PRG_OK_PIC EQU 0x22 ;PROGRAMMIERUNG BLOCK FERTIG 00083 ;**********************************************************************************************""""""""" """" 00084 ; Start at the reset vector 00085 Reset_Vector code 0x000 000000 D??? 00086 BRA KALT_START 00087 ;-------------------------------------------------------------- 00088 HIGH_INT_VEC code 0x0008 000008 EF0C F000 00089 GOTO 0x18 00090 00091 LOW_INT_VEC code 0x0018 000018 00092 INT_HANDLER 000018 6AE0 00093 CLRF BSR ;IMMER ACCESS BANK 00094 ;SETZEN GRUPPE 1 00001A CF9D F04E 00095 MOVFF PIE1,EAPIR1 ;INTERRUPTS HOLEN 00001E 509E 00096 MOVF PIR1,0 ;MASKE 000020 174E 00097 ANDWF EAPIR1 ;ACTIVE SETZEN 000022 B14E 00098 BTFSC EAPIR1,TMR1IF ;uhr interrupt? 000024 D??? 00099 BRA RTC_ISR ;ja-> 000026 BD4E 00100 BTFSC EAPIR1,ADIF ;AD INTERRUTP? 000028 D??? 00101 BRA AD_ISR ;JA-> 00002A B94E 00102 BTFSC EAPIR1,TXIF ;seriell TX? 00002C D??? 00103 BRA TX_ISR ;JA-> 00002E BB4E 00104 BTFSC EAPIR1,RCIF ;seriell RX? 000030 D??? 00105 BRA RX_ISR ;JA-> 00106 00107 ;SETZEN GRUPPE 2 000032 CFA0 F04F 00108 MOVFF PIE2,EAPIR2 ;INTERRUPTS HOLEN 000036 50A1 00109 MOVF PIR2,0 ;MASKE 000038 174F 00110 ANDWF EAPIR2 ;ACTIVE SETZEN 00111 00003A B54F 00112 BTFSC EAPIR2,HLVDIF ;UNDER/OVERVOLTAGE DETECT 00003C D??? 00113 BRA HLVD_ISR ;JA-> 00003E 0010 00114 RETFIE 00115 00116 ;TESTEN UND SETZEN GRUPPE 1 000040 CF9D F04E 00117 MOVFF PIE1,EAPIR1 ;INTERRUPTS HOLEN 000044 509E 00118 MOVF PIR1,0 ;MASKE 000046 174E 00119 ANDWF EAPIR1 ;ACTIVE SETZEN 000048 674E 00120 TSTFSZ EAPIR1 00004A D??? 00121 BRA INT_HANDLER 00122 ;TESTEN UND SETZEN GRUPPE 2 00004C CFA0 F04F 00123 MOVFF PIE2,EAPIR2 ;INTERRUPTS HOLEN 000050 50A1 00124 MOVF PIR2,0 ;MASKE 000052 174F 00125 ANDWF EAPIR2 ;ACTIVE SETZEN 000054 674F 00126 TSTFSZ EAPIR2 000056 D??? 00127 BRA INT_HANDLER 00128 000058 0EFB 00129 MOVLW EXT_CODE ;GO EXTERNE SUBROUTINEN AKTIV? 00005A 634D 00130 CPFSEQ GO_INT ;SKIP WENN JA 00005C 0010 00131 RETFIE 00005E EF01 F010 00132 GOTO EXTERN_INTERRUPTS ;REGISTER SICHERN UND STARTEN MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 4 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00133 ;**********************************************************************************************""""""""" """" 00134 ; Start application beyond vector area 00135 CODE 0x0100 000100 00136 KALT_START 00137 ;RESET MODE 000100 6AE0 00138 CLRF BSR ;BANK 0 00139 ;ALLE INT AUS UND RÜCKSETZEN 000102 6AF2 00140 CLRF INTCON ;alle INTERRUPT AUS 000104 6AD0 00141 CLRF RCON ;INT PRIORITY AUS 000106 6A9D 00142 CLRF PIE1 ;MASK DISABLE 000108 6AA0 00143 CLRF PIE2 00010A 6A9E 00144 CLRF PIR1 ;INT ACT AUS 00010C 6AA1 00145 CLRF PIR2 00010E 6A9F 00146 CLRF IPR1 ;LOW PRIORITY 000110 6AA2 00147 CLRF IPR2 00148 ; clock 00149 ; MOVLW B'01000000' ;32MHZ 00150 ; MOVWF OSCTUNE 000112 6A9B 00151 CLRF OSCTUNE 00152 ;CLOCK 000114 0E72 00153 MOVLW CLK_ACTIV 000116 6ED3 00154 MOVWF OSCCON 00155 ; div init 00156 ;SET PORT A: **7:#master/0.409*5V0 **6:PIC_AMKB_RX **5:PIC_SWTICH **4:HIGH_CHARGE_CURRENT **3:2V5 *2:3V3 /2 **1:1V25 **0:POWER_IN/11 000118 6A80 00157 CLRF PORTA ;#master(7)=0, REST=0 00011A 0EFF 00158 MOVLW B'11111111' ;DIRECTION: alles auf Input 00011C 6E92 00159 MOVWF TRISA 00160 ;SET PORT B: **7:PGD **6:PGC **5:PGM **4:PIN_INT,1V5 **3:GAME PORT PIN10 **2:GAME PORT PIN11 **1:GAME PO RT PIN6 **0: GAME PORT PIN5 00011E 6A81 00161 CLRF PORTB ;ALLES AUF 0 000120 6E93 00162 MOVWF TRISB 00163 ;SET PORT C: **7: PIC_RX **6:PIC_TX **5:AMKB_TX **4:GAME PORT PIN4 **3:GAME PORT PIN12 **2:GAME PORT PIN 13 **1+0: OCS 32K768Hz 000122 6A82 00164 CLRF PORTC 000124 6E94 00165 MOVWF TRISC 00166 ;SET PORT D: **7:#RSTI **6:GAME PORT PIN3 **5:PS2 KB CLK **4:PS2 MS CLK **3:PS2 KB DATA **2:MS DATA **1: TASTER **0:POWER ON/OFF (0=ON) 00167 ; SET TASTE UND POWER 000126 6A83 00168 CLRF PORTD ;ALLES AUF 0 000128 6E95 00169 MOVWF TRISD ;ALLES AUF INPUT 00170 ;SET PORT E: **3:#MCLR **2:#PCI_RESET **1:PCI 3V3 **0:PIC LED (0=ON) 00012A 0E01 00171 MOVLW B'00000001' ;LED OFF 00012C 6A84 00172 CLRF PORTE ;ALLES AUF 0 00012E 6E96 00173 MOVWF TRISE ;ALLES AUF INPUT 00174 ;-------------------------- 00175 ; set OVERvoltage detekt 000130 0E9B 00176 MOVLW B'10011011' ;INT WENN ÜBER 3.9V 000132 6ED2 00177 MOVWF HLVDCON 000134 0E03 00178 MOVLW B'00000011' ;ERRORS ON, WAIT AUF LADEN 000136 6F46 00179 MOVWF U_ERR 000138 0E14 00180 MOVLW .20 ;SEIT 20SEC ERROR MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 5 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00013A 6F47 00181 MOVWF U_ERR_TIME ;SETZEN 00013C 84A0 00182 BSF PIE2,HLVDIE ;Enable interrupt 00183 ;INTIALISIERUNGSPROGAMME 00013E EC?? F??? 00184 CALL LADESTROM ;LADESTROM EINSTELLEN 00185 ;UHR initialisieren 000142 0EF0 00186 MOVLW TIMER_HB ;Preload TMR1 register 000144 6ECF 00187 MOVWF TMR1H ; 000146 6ACE 00188 CLRF TMR1L ;=0 000148 0E0F 00189 MOVLW B'00001111' ; 8 BIT, osc1 enable, TIMER MODE, TIMMER ENABLE 00014A 6ECD 00190 MOVWF T1CON ; SET 00014C 6B41 00191 CLRF TICKS ; 1/8 sec register 00014E 6B00 00192 CLRF SECS ; Initialize timekeeping registers 000150 6B02 00193 CLRF MINS ; 000152 0E0C 00194 MOVLW .12 000154 6F04 00195 MOVWF HOURS 000156 0E01 00196 MOVLW .1 000158 6F06 00197 MOVWF DAY_OF_WEEK 00015A 0E01 00198 MOVLW .1 00015C 6F07 00199 MOVWF DAYS 00015E 0E08 00200 MOVLW .8 000160 6F08 00201 MOVWF MONTHS 000162 0E2A 00202 MOVLW .42 000164 6F09 00203 MOVWF YEARS ;MONTAG 19.7.2010 12:00:00 (JAHR-1968) 000166 6B42 00204 CLRF TASTE_ON_TIME 000168 6B43 00205 CLRF TASTE_OFF_TIME 00016A 6B44 00206 CLRF POWER_ON_TIME 00016C 809D 00207 BSF PIE1,TMR1IE ;Enable Timer1 interrupt 00208 ;AD WANDLER INITIALISIEREN 00016E 6B45 00209 CLRF AD_KANAL ;BEI 0 BEGINNEN 000170 6AC2 00210 CLRF ADCON0 ;AD MOUDUL AUS 000172 0E09 00211 MOVLW B'00001001' ;VREF=VDD,ANALOG INPUT AN0-AN5 000174 6EC1 00212 MOVWF ADCON1 000176 0E00 00213 MOVLW B'00000000' ;LINKSSBÜNDIG,0 TAD,CLOCK=Fosc/2 000178 6EC0 00214 MOVWF ADCON2 00215 ; BSF PIE1,ADIE ;INTERRUPT ENABLE 00017A 6B48 00216 CLRF U_POWER_IN ;WERT AUF 0 VOLT 00217 ; seriell initialisieren 00017C 6AB0 00218 CLRF SPBRGH 00017E 0E10 00219 MOVLW .16 000180 6EAF 00220 MOVWF SPBRG ;BAUDE RATE = 115K 000182 0E04 00221 MOVLW B'00000100' ;TX AUS, ASYNC HIGH SPEED 000184 6EAC 00222 MOVWF TXSTA 000186 0E90 00223 MOVLW B'10010000' ;SERIEL EIN,RX EIN, 000188 6EAB 00224 MOVWF RCSTA 00018A 0E08 00225 MOVLW B'00001000' ;16BIT BRG, RISING EDGE INTERRUPT 00018C 6EB8 00226 MOVWF BAUDCON ;SETZEN 00227 ;EXTERNER SUBROUTINES 00018E 6B4C 00228 CLRF GO_SUB 00229 ; interrupts 000190 6AF0 00230 CLRF INTCON3 ;EXTER INTERRUPT AUS, low priority 000192 0EF0 00231 MOVLW B'11110000' ;PORT B PULLUPS AUS, EXT INT ON RISING EDGE, TMR0 AND BP IP Low priority 000194 6EF1 00232 MOVWF INTCON2 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 6 LOC OBJECT CODE LINE SOURCE TEXT VALUE 000196 0EC0 00233 MOVLW B'11000000' ;global on, PERIPHERAL INT on 000198 6EF2 00234 MOVWF INTCON 00235 ;CLOCK 00019A 0E12 00236 MOVLW CLK_SLEEP ;GEHT JETZT IN SLEEP MODE 00019C 6ED3 00237 MOVWF OSCCON 00238 ;------------------------------------------------------------------------- 00239 ;---------------------------- MAIN LOOP ------------------------------------------------- 00240 ;------------------------------------------------------------------------- 00019E 00241 MAIN 00019E 0EFB 00242 MOVLW EXT_CODE ;GO EXTERNE SUBROUTINEN AKTIV? 0001A0 634C 00243 CPFSEQ GO_SUB ;SKIP WENN JA 0001A2 D??? 00244 BRA WARTEN ;SONST WARTEN 0001A4 ED00 F000 00245 CALL MAIN2,1 ;REGISTER SICHERN UND STARTEN 0001A8 00246 WARTEN 0001A8 B095 00247 BTFSC TRISD,RD0 ;SKIP IF POWER ON 0001AA 0003 00248 SLEEP ;SLEPP BIS ZUM NÄCHSTEN INTERRUPT 0001AC D??? 00249 BRA MAIN 0001AE 00250 MAIN2 0001AE EC09 F010 00251 CALL EXTERN_SUBROUTINES ;EXTERNE SUBROUTINEN AUSFÜHREN AN STELLE 0 MUSS 0xFA STEHEN SONS T UNGÜLTIG 0001B2 0013 00252 RETURN 1 ;RETURN MIT REGISTER ZURÜCK 00253 ;**********************************************************************************************""""""""" """" 00254 ;--------------------------- subroutines ------------------------------------------------- 00255 ;**********************************************************************************************""""""""" """" 00256 ;POWER ON/OFF 0001B4 00257 POWER_EIN 00258 ;CLOCK 0001B4 0E72 00259 MOVLW CLK_ACTIV 0001B6 6ED3 00260 MOVWF OSCCON 00261 0001B8 9E92 00262 BCF TRISA,RA7 ;CLOCK EINSCHALTEN 0001BA 9E95 00263 BCF TRISD,RD7 ;#RSTI AKTIVIEREN = LOW 0001BC 9893 00264 BCF TRISB,RB4 ;PIC_INT AKTIVIEREN 0001BE 9095 00265 BCF TRISD,RD0 ;POWER ON 0001C0 D??? 00266 BRA LS_ON_POWER ;LADESTROM EINSTELLEN 0001C2 00267 POWER_AUS 00268 ;CLOCK 0001C2 0E12 00269 MOVLW CLK_SLEEP 0001C4 6ED3 00270 MOVWF OSCCON 00271 0001C6 8095 00272 BSF TRISD,RD0 ;POWER OFF 0001C8 8E95 00273 BSF TRISD,RD7 ;#RSTI DEAKTIVIEREN 0001CA 8893 00274 BSF TRISB,RB4 ;PIC INT DEAKTIVIEREN 0001CC 8E92 00275 BSF TRISA,RA7 ;CLOCK DEAKTIVIEREN 0001CE 6B44 00276 CLRF POWER_ON_TIME ;RÜCKSETZEN 0001D0 D??? 00277 BRA LS_OFF_POWER ;LADESTROM EINSTELLEN 00278 ;LADESTROM EINSTELLEN ---------------------------- 0001D2 00279 LADESTROM 0001D2 B095 00280 BTFSC TRISD,RD0 ; ONPOWER? 0001D4 D??? 00281 BRA LS_OFF_POWER ; NEIN-> 0001D6 00282 LS_ON_POWER ;GROSSER LADESTROM 5A MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 7 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0001D6 9892 00283 BCF TRISA,RA4 ;10K ON 0001D8 0012 00284 RETURN 0001DA 00285 LS_OFF_POWER ;KLEINER LADESTROM_MIN 1.85A 0001DA 8892 00286 BSF TRISA,RA4 ;10K OFF 0001DC 0012 00287 RETURN 00288 ;--------------------------------------------------- 00289 ;SERIELL AUS/EIN 0001DE 00290 SERIAL_OFF 0001DE 9AAC 00291 BCF TXSTA,TXEN ;TX AUS 0001E0 9A9D 00292 BCF PIE1,RCIE ;DISABLE RX interrupt 0001E2 9A9E 00293 BCF PIR1,RCIF ;CLEAR RX interrupt 0001E4 989D 00294 BCF PIE1,TXIE ;DISABLE TX interrupt 0001E6 989E 00295 BCF PIR1,TXIF ;CLEAR TX interrupt 0001E8 0012 00296 RETURN 0001EA 00297 SERIAL_ON 0001EA BAAC 00298 BTFSC TXSTA,TXEN ;SCHON EIN? 0001EC 0012 00299 RETURN ;JA-> 0001EE 8AAC 00300 BSF TXSTA,TXEN ;TX EIN 0001F0 0EFF 00301 MOVLW SYNC1 0001F2 6F4A 00302 MOVWF RX_STATUS ;AUF SYNC WARTEN 0001F4 6B4B 00303 CLRF TX_STATUS 0001F6 CFAE F049 00304 MOVFF RCREG,RX_B ;RCREG LEEREN 0001FA CFAE F049 00305 MOVFF RCREG,RX_B ;RCREG LEEREN 0001FE 989E 00306 BCF PIR1,TXIF ;CLEAR TX interrupt 000200 9A9E 00307 BCF PIR1,RCIF ;INTERRUPT RX FLAG LÖSCHEN 000202 8A9D 00308 BSF PIE1,RCIE ;ENABLE RX interrupt 000204 0000 00309 NOP 000206 0012 00310 RETURN 00311 ;--------------------------------------------------------------------- 00312 ; TASTENDRUCK 000208 00313 TASTE 000208 A283 00314 BTFSS PORTD,RD1 ;TASTE GEDRÜCKT? 00020A D??? 00315 BRA TG_JA ;->JA 00316 ;TASTE NICHT GEDRÜCKT ODER LOSGELASSEN 00020C 6B42 00317 CLRF TASTE_ON_TIME ;RÜCKSETZEN 00318 00020E 0EA0 00319 MOVLW TIME_MAX ;MAX 000210 6543 00320 CPFSGT TASTE_OFF_TIME ;LÄNGER? 000212 2B43 00321 INCF TASTE_OFF_TIME ;NEIN ERHÖHEN 00322 000214 0E04 00323 MOVLW RESET_OFF_TIME ;2SEC 000216 6544 00324 CPFSGT POWER_ON_TIME ;LÄNGER? 000218 0012 00325 RETURN ;NEIN-> 00326 ;RESET AUFHEBEN 00021A 8E95 00327 BSF TRISD,RD7 ;JA -> #RSTI DEAKTIVIEREN =HIGH 00021C EC?? F??? 00328 CALL SERIAL_ON ;SERIELL EINSCHALTEN 000220 0012 00329 RETURN 00330 ;TASTE GEDRÜCKT 000222 00331 TG_JA 000222 0E15 00332 MOVLW OFF_TIME+1 000224 6142 00333 CPFSLT TASTE_ON_TIME ;KÜRZER ALS ONTIME+1 000226 0012 00334 RETURN ;NEIN->FERTIG 000228 B095 00335 BTFSC TRISD,RD0 ;ONPOWER? MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 8 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00022A D??? 00336 BRA TG_OFF_POWER ;NEIN-> 00022C 00337 TG_ON_POWER 00022C 0E02 00338 MOVLW SEND_RTC_TIME ;ZEIT FÜR RTC REQ FROM MCF HOLEN? 00022E 6342 00339 CPFSEQ TASTE_ON_TIME ;TEST 000230 D??? 00340 BRA TG_ON_POWER2 ;NEIN-> 000232 00341 SEND_RTC_REG 000232 0E02 00342 MOVLW REQ_RTCD_FROM_MCF 000234 6EAD 00343 MOVWF TXREG ;SENDEN 000236 D??? 00344 BRA TG_END; 000238 00345 TG_ON_POWER2 000238 0E02 00346 MOVLW RESET_ON_TIME ; 00023A 6142 00347 CPFSLT TASTE_ON_TIME ;KÜRZER? 00023C D??? 00348 BRA RESETEN 00023E 00349 TG_ON_POWER3 00023E 0E14 00350 MOVLW OFF_TIME 000240 6142 00351 CPFSLT TASTE_ON_TIME ;KÜRZER ON/OFF TIME? 000242 EC?? F??? 00352 CALL POWER_AUS ;NEIN->POWER OFF 000246 D??? 00353 BRA TG_END 000248 00354 TG_OFF_POWER 000248 0E02 00355 MOVLW ON_TIME 00024A 6142 00356 CPFSLT TASTE_ON_TIME ;KÜRZER ALS ON/OFF TIME? 00024C EC?? F??? 00357 CALL POWER_EIN ;NEIN->POWER ON 000250 00358 TG_END 000250 6B43 00359 CLRF TASTE_OFF_TIME ;RÜCKSETZEN 000252 2B42 00360 INCF TASTE_ON_TIME ;ERHÖHEN 000254 0012 00361 RETURN 000256 00362 RESETEN 000256 9E95 00363 BCF TRISD,RD7 ;NEIN-> #RSTI AKTIVIEREN =LOW -->>>RESET 000258 EC?? F??? 00364 CALL SERIAL_OFF ;SERIELL DEAKTIVIEREN 00025C D??? 00365 BRA TG_ON_POWER3 00366 ;**********************************************************************************************""""""""" """" 00367 ;----------------------------------------- INTERRUPTS 00368 ;**********************************************************************************************""""""""" """" 00369 ; SERIELL INTERRUPTS 00370 ;**********************************************************************************************""""""""" """" 00371 ;TX 00025E 00372 TX_ISR ;TRANSMIT 00025E 0E81 00373 MOVLW RTCD_FROM_PIC ;RTC DATEN SENDEN? 000260 634B 00374 CPFSEQ TX_STATUS ;SKIP JA 000262 D??? 00375 BRA TX_ISR1 ;NEIN-> 000264 CFEE FFAD 00376 MOVFF POSTINC0,TXREG ;BYT SENDEN 000268 0E3F 00377 MOVLW 0x3F ;SCHON LETZTES BYTS? 00026A 64E9 00378 CPFSGT FSR0L ;SKIP WENN FERTIG 00026C 0010 00379 RETFIE ;NEIN WEITERE SENDEN 00026E 00380 TX_ISR_FERTIG 00026E 6B4B 00381 CLRF TX_STATUS 000270 989D 00382 BCF PIE1,TXIE ;SONST DISABLE interrupt 000272 989E 00383 BCF PIR1,TXIF ;INTERRUPT FLAG LÖSCHEN 000274 0010 00384 RETFIE 000276 00385 TX_ISR1 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 9 LOC OBJECT CODE LINE SOURCE TEXT VALUE 000276 0EA1 00386 MOVLW READ_BLOCK ;READ BLOCK? 000278 634B 00387 CPFSEQ TX_STATUS ;SKIP JA 00027A D??? 00388 BRA TX_ISR2 ;NEIN-> 00027C CFEE FFAD 00389 MOVFF POSTINC0,TXREG ;BYT SENDEN 000280 0EC3 00390 MOVLW 0xC3 ;SCHON LETZTES BYTS? 000282 64E9 00391 CPFSGT FSR0L ;SKIP WENN FERTIG 000284 0010 00392 RETFIE ;NEIN WEITERE SENDEN 000286 00393 TX_ISR2 000286 D??? 00394 BRA TX_ISR_FERTIG 00395 ;**********************************************************************************************""""""""" """" 00396 ;RX 000288 00397 RX_ISR ; BYT RECEIVED 000288 CFAE F049 00398 MOVFF RCREG,RX_B ; BYT HOLEN 00399 ; MOVFF RX_B,TXREG ; ECHO 00028C 0EFC 00400 MOVLW SYNC4 ;IM SYNC STATUS? 00028E 614A 00401 CPFSLT RX_STATUS ;SKIP WENN NEIN 000290 D??? 00402 BRA RX_SYNC_START ;JA -> ZUERST SYNC EMPFANGEN 00403 ;--------------- 000292 0E82 00404 MOVLW RTCD_FROM_MCF ; DATEN VOM MCF CODE 0x82? 000294 634A 00405 CPFSEQ RX_STATUS ; WENN JA-> SKIP 000296 D??? 00406 BRA RX_ISR1 ; NEIN-> 00407 ;64 BYT EMPFANGEN ------------------------------------- 000298 C049 FFE6 00408 MOVFF RX_B,POSTINC1 ;HOLEN -> (CNT+) 00029C 0E3F 00409 MOVLW 0x3F ;64 BYT ÜBERTRAGEN? 00029E 60E1 00410 CPFSLT FSR1L ;NEIN ->SKIP 0002A0 6B4A 00411 CLRF RX_STATUS ;JA FERTIG 0002A2 0010 00412 RETFIE 00413 ;------------------------------------------------------------------------------------- 0002A4 00414 RX_ISR1 0002A4 6349 00415 CPFSEQ RX_B ;BLOCK HEADER 0X82? 0002A6 D??? 00416 BRA RX_ISR2 ;NEIN-> 0002A8 6F4A 00417 MOVWF RX_STATUS ;STATUS SETZEN = EMPFANGENES BYT 0002AA EE10 F000 00418 LFSR 1,.0 ;BYT COUNTER AUF O 0002AE 0010 00419 RETFIE 0002B0 00420 RX_ISR2 0002B0 0E01 00421 MOVLW REQ_RTCD_FROM_PIC ;DATEN SENDEN? 0002B2 6349 00422 CPFSEQ RX_B ;SKIP WENN JA 0002B4 D??? 00423 BRA RX_ISR3 ;SONST NEXT 00424 ;BLOCK HEADER UND 64 BYT SENDEN ----------------------------------------- 0002B6 EE00 F000 00425 LFSR 0,.0 0002BA 989E 00426 BCF PIR1,TXIF ;INTERRUPT FLAG LÖSCHEN 0002BC 889D 00427 BSF PIE1,TXIE ;Enable interrupt 0002BE 0E81 00428 MOVLW RTCD_FROM_PIC 0002C0 6F4B 00429 MOVWF TX_STATUS ;STATUS SETZEN 0002C2 6EAD 00430 MOVWF TXREG ;BLOCK HEADER = 0X81 0002C4 6B4A 00431 CLRF RX_STATUS ;STATUS RÜCKSETZEN 0002C6 0010 00432 RETFIE ;UND WEG 00433 ;------------------------------------------------------------------------------------- 0002C8 00434 RX_ISR3 0002C8 0E04 00435 MOVLW EXT_SUB_GO ;EXT SUB FREIGEBEN? 0002CA 6349 00436 CPFSEQ RX_B 0002CC D??? 00437 BRA RX_ISR4 ;NEIN-> MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 10 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00438 ;EXT SUBS FREIGEBEN -------------------------------------------------------------- 0002CE 0E00 00439 MOVLW (EXTERN_INT_ADR & 0xFF0000)>>16 0002D0 6EF8 00440 MOVWF TBLPTRU 0002D2 0E20 00441 MOVLW (EXTERN_INT_ADR & 0x00FF00)>>8 0002D4 6EF7 00442 MOVWF TBLPTRH 0002D6 0E00 00443 MOVLW (EXTERN_INT_ADR & 0x0000FF) 0002D8 6EF6 00444 MOVWF TBLPTRL ;ADRESSE SETZEN 0002DA 0008 00445 TBLRD* ;WERT HOLEN (MUSS 0xFB SEIN SONST UNGÜLTIG) 0002DC CFF5 F04D 00446 MOVFF TABLAT,GO_INT ;EXTERNE SUBROUTINES AKTIVIEREN WENN OK 0002E0 0E00 00447 MOVLW (EXTERN_SUB_ADR & 0xFF0000)>>16 0002E2 6EF8 00448 MOVWF TBLPTRU 0002E4 0E20 00449 MOVLW (EXTERN_SUB_ADR & 0x00FF00)>>8 0002E6 6EF7 00450 MOVWF TBLPTRH 0002E8 0E10 00451 MOVLW (EXTERN_SUB_ADR & 0x0000FF) 0002EA 6EF6 00452 MOVWF TBLPTRL ;ADRESSE SETZEN 0002EC 0008 00453 TBLRD* ;WERT HOLEN (MUSS 0xFB SEIN SONST UNGÜLTIG) 0002EE CFF5 F04C 00454 MOVFF TABLAT,GO_SUB ;EXTERNE SUBROUTINES AKTIVIEREN WENN OK 0002F2 6B4A 00455 CLRF RX_STATUS ;STATUS RÜCKSETZEN 0002F4 0010 00456 RETFIE ;UND WEG 00457 ;------------------------------------------------------------------------------------- 0002F6 00458 RX_ISR4 0002F6 0E05 00459 MOVLW EXT_SUB_STOP ;EXT SUB STOPPEN? 0002F8 6349 00460 CPFSEQ RX_B 0002FA D??? 00461 BRA RX_ISR5 ;NEIN-> 00462 ;EXT SUBS STOPPEN -------------------------------------------------------------- 0002FC 6B4D 00463 CLRF GO_INT ;STOPPEN 0002FE 6B4C 00464 CLRF GO_SUB ;STOPPEN 000300 6B4A 00465 CLRF RX_STATUS ;STATUS RÜCKSETZEN 000302 0010 00466 RETFIE ;UND WEG 00467 ;------------------------------------------------------------------------------------- 000304 00468 RX_ISR5 000304 0EA0 00469 MOVLW REQ_BLOCK ;REQ BLOCK? 000306 6349 00470 CPFSEQ RX_B 000308 D??? 00471 BRA RX_ISR6 ;NEIN-> 00472 ;REQ BLOCK ---------------------------------------------------------------- 00030A 6F4A 00473 MOVWF RX_STATUS ;STATUS SETZEN = EMPFANGENES BYT 00030C EE11 F080 00474 LFSR 1,TX_BUFFER ;BYT COUNTER AUF TX_BUFFER -> GLEICH EINTRAGEN 000310 0010 00475 RETFIE 000312 00476 RX_ISR6 000312 634A 00477 CPFSEQ RX_STATUS ;REQ BLOCK ADRESSE EMPFANGFEN? 000314 D??? 00478 BRA RX_ISR7 ;NEIN-> 00479 ;3 BYT EMPFANGEN ------------------------------------- 000316 C049 FFE6 00480 MOVFF RX_B,POSTINC1 ;HOLEN -> (CNT+) 00031A 0E82 00481 MOVLW 0x82 ;3 BYT ÜBERTRAGEN? (BUFFER BEGINNT BEI 0x180 00031C 60E1 00482 CPFSLT FSR1L ;NEIN ->SKIP 00031E D??? 00483 BRA RX_RB3BOK 000320 0010 00484 RETFIE 000322 00485 RX_RB3BOK 000322 EE11 F080 00486 LFSR 1,TX_BUFFER ;BYT RX COUNTER AUF TX_BUFFER 000326 CFE6 FFF8 00487 MOVFF POSTINC1,TBLPTRU ;ADRESSE EINTRAGEN 00032A CFE6 FFF7 00488 MOVFF POSTINC1,TBLPTRH 00032E CFE6 FFF6 00489 MOVFF POSTINC1,TBLPTRL 000332 0EC2 00490 MOVLW 0xC2 ;67 BYT ÜBERTRAGEN? (BUFFER BEGINNT BEI 0x180 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 11 LOC OBJECT CODE LINE SOURCE TEXT VALUE 000334 00491 RX_RB3B2 000334 0009 00492 TBLRD *+ ;LESEN UND NEXT 000336 CFF5 FFE6 00493 MOVFF TABLAT,POSTINC1 ;UND EINTRAGEN 00033A 62E1 00494 CPFSEQ FSR1L ;WENN FERTIG ->SKIP 00033C D??? 00495 BRA RX_RB3B2 ;SONST LOOP 00496 ;BLOCK HEADER 3 BYTS ADRESSE UND 64 BYT SENDEN STARTEN ----------------------------------------- 00033E EE01 F080 00497 LFSR 0,TX_BUFFER ;TX COUNTER AUF TX_BUFFER 000342 989E 00498 BCF PIR1,TXIF ;INTERRUPT FLAG LÖSCHEN 000344 889D 00499 BSF PIE1,TXIE ;Enable interrupt 000346 0EA1 00500 MOVLW READ_BLOCK ;CODE HEADER 0xA1 000348 6F4B 00501 MOVWF TX_STATUS ;STATUS SETZEN 00034A 6EAD 00502 MOVWF TXREG ;BLOCK HEADER = 0XA1 00034C 6B4A 00503 CLRF RX_STATUS ;STATUS RÜCKSETZEN 00034E 0010 00504 RETFIE ;UND WEG 00505 ;------------------------------------------------------------------------------------- 000350 00506 RX_ISR7 000350 0EA2 00507 MOVLW WRITE_BLOCK ;WRITE BLOCK 0xA2 BYT EMPFANGEN? 000352 634A 00508 CPFSEQ RX_STATUS ;WENN JA-> SKIP 000354 D??? 00509 BRA RX_ISR8 ;NEIN-> 00510 ;WRITE BLOCK ---------------------------------------------------------------------------- 00511 ;67 BYT EMPFANGEN ------------------------------------- 000356 C049 FFE6 00512 MOVFF RX_B,POSTINC1 ;HOLEN -> (CNT+) 00035A 0E42 00513 MOVLW 0x42 ;67 BYT ÜBERTRAGEN? 00035C 60E1 00514 CPFSLT FSR1L ;WENN FERTIG ->SKIP 00035E 0010 00515 RETFIE 00516 ; ADRESSE UND DATEN SIND DA -> PROGRAMMING FLASH 000360 EE11 F000 00517 LFSR 1,RX_BUFFER ;BYT COUNTER AUF RX BUFFER 000364 CFE6 FFF8 00518 MOVFF POSTINC1,TBLPTRU ;TABLE POINTER SETZEN 000368 0E00 00519 MOVLW (EXTERN_INT_ADR & 0xFF0000)>>16 00036A 60F8 00520 CPFSLT TBLPTRU ;TEST OB WENIGER ALS ERLAUBT 00036C D??? 00521 BRA NO_PROG ;JA-> 00036E CFE6 FFF7 00522 MOVFF POSTINC1,TBLPTRH ;TABLE POINTER SETZEN 000372 0E20 00523 MOVLW (EXTERN_INT_ADR & 0x00FF00)>>8 000374 60F8 00524 CPFSLT TBLPTRU ;TEST OB WENIGER ALS ERLAUBT 000376 D??? 00525 BRA NO_PROG ;JA-> 000378 CFE6 FFF6 00526 MOVFF POSTINC1,TBLPTRL ;TABLE POINTER SETZEN 00527 ;EREASE BLOCK 00037C 8EA6 00528 BSF EECON1,EEPGD ; point to Flash program memory 00037E 9CA6 00529 BCF EECON1,CFGS ; access Flash program memory 000380 84A6 00530 BSF EECON1,WREN ; enable write to memory 000382 88A6 00531 BSF EECON1,FREE ; enable Row Erase operation 000384 0E55 00532 MOVLW 55h 000386 6EA7 00533 MOVWF EECON2 ; write 55h 000388 0EAA 00534 MOVLW 0AAh ; write 0AAh 00038A 6EA7 00535 MOVWF EECON2 00038C 82A6 00536 BSF EECON1,WR ; start erase (CPU stall) 00038E 0E42 00537 MOVLW 0x42 ;67 BYT 000390 00538 WRITE_WORD_TO_HREGS 000390 CFE6 FFF5 00539 MOVFF POSTINC1,TABLAT ; get byte of buffer data 000394 000F 00540 TBLWT+* ; write data, perform a short write to internal TBLWT holding register. 000396 60E1 00541 CPFSLT FSR1L ;SCHON BEI 67 BYTES? 000398 D??? 00542 BRA WRITE_WORD_TO_HREGS ;NEIN->LOOP MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 12 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00039A 00543 PROGRAM_MEMORY 00039A 8EA6 00544 BSF EECON1,EEPGD ; point to Flash program memory 00039C 9CA6 00545 BCF EECON1,CFGS ; access Flash program memory 00039E 84A6 00546 BSF EECON1,WREN ; enable write to memory 0003A0 0E55 00547 MOVLW 55h 0003A2 6EA7 00548 MOVWF EECON2 ; write 55h 0003A4 0EAA 00549 MOVLW 0AAh 0003A6 6EA7 00550 MOVWF EECON2 ; write 0AAh 0003A8 82A6 00551 BSF EECON1,WR ; start program (CPU stall) 0003AA 94A6 00552 BCF EECON1,WREN ; disable write to memory 0003AC 00553 NO_PROG 0003AC 6B4A 00554 CLRF RX_STATUS ;AUF NORMLA SCHALTEN 0003AE 0010 00555 RETFIE ;UND FERTIG 00556 ;WRITE BLOCK SETZEN? 0003B0 00557 RX_ISR8 0003B0 6349 00558 CPFSEQ RX_B ;BLOCK HEADER COMMANDOE 0XA2? 0003B2 D??? 00559 BRA RX_ISR9 ;NEIN-> 0003B4 6F4A 00560 MOVWF RX_STATUS ;STATUS SETZEN = EMPFANGENES BYT 0003B6 EE11 F000 00561 LFSR 1,RX_BUFFER ;BYT COUNTER AUF RX BUFFER 0003BA 0010 00562 RETFIE 00563 ;------------------------------------------------------------------------------------- 0003BC 00564 RX_ISR9 0003BC 6B4A 00565 CLRF RX_STATUS 0003BE 0010 00566 RETFIE 00567 ;------------------------------------------------------------------------------------- 00568 ;SYNC ABWARTEN UND WENN DA "OK!" SENDEN ---------------------------------------------------- 00569 ;------------------------------------------------------------------------------------- 0003C0 00570 RX_SYNC_START 0003C0 0EFF 00571 MOVLW SYNC1 0003C2 634A 00572 CPFSEQ RX_STATUS 0003C4 D??? 00573 BRA RX_SYNC2 0003C6 0E41 00574 MOVLW SYNC1_DATA 0003C8 6349 00575 CPFSEQ RX_B 0003CA D??? 00576 BRA NON_SYNC 0003CC 0EFE 00577 MOVLW SYNC2 0003CE 6F4A 00578 MOVWF RX_STATUS 0003D0 0010 00579 RETFIE 0003D2 00580 NON_SYNC 0003D2 0EFF 00581 MOVLW SYNC1 0003D4 6F4A 00582 MOVWF RX_STATUS 0003D6 0010 00583 RETFIE 0003D8 00584 RX_SYNC2 ;TEST AUF SYNC UND DATA 2 0003D8 0EFE 00585 MOVLW SYNC2 0003DA 634A 00586 CPFSEQ RX_STATUS 0003DC D??? 00587 BRA RX_SYNC3 ;NICHT SYNC 2 0003DE 0E43 00588 MOVLW SYNC2_DATA 0003E0 6349 00589 CPFSEQ RX_B 0003E2 D??? 00590 BRA NON_SYNC 0003E4 0EFD 00591 MOVLW SYNC3 0003E6 6F4A 00592 MOVWF RX_STATUS 0003E8 0010 00593 RETFIE 0003EA 00594 RX_SYNC3 ;TEST AUF SYNC UND DATA 3 0003EA 0EFD 00595 MOVLW SYNC3 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 13 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0003EC 634A 00596 CPFSEQ RX_STATUS 0003EE D??? 00597 BRA RX_SYNC4 ;NICHT SYNC 3 0003F0 0E50 00598 MOVLW SYNC3_DATA 0003F2 6349 00599 CPFSEQ RX_B 0003F4 D??? 00600 BRA NON_SYNC 0003F6 0EFC 00601 MOVLW SYNC4 0003F8 6F4A 00602 MOVWF RX_STATUS 0003FA 0010 00603 RETFIE 0003FC 00604 RX_SYNC4 ;TEST AUF SYNC UND DATA 4 0003FC 0EFC 00605 MOVLW SYNC4 0003FE 634A 00606 CPFSEQ RX_STATUS 000400 D??? 00607 BRA NON_SYNC ;WIEDER VON VORN 000402 0E46 00608 MOVLW SYNC4_DATA 000404 6349 00609 CPFSEQ RX_B ;SKIP OK 000406 D??? 00610 BRA NON_SYNC ;NICHT SYNC4 DATA 000408 00611 RX_WAIT1 000408 A2AC 00612 BTFSS TXSTA,TRMT 00040A D??? 00613 BRA RX_WAIT1 00040C 0E4F 00614 MOVLW 'O' ;SENDE OK! 00040E 6EAD 00615 MOVWF TXREG; 000410 00616 RX_WAIT2 000410 A2AC 00617 BTFSS TXSTA,TRMT 000412 D??? 00618 BRA RX_WAIT2 000414 0E4B 00619 MOVLW 'K' ;SENDE OK! 000416 6EAD 00620 MOVWF TXREG; 000418 00621 RX_WAIT3 000418 A2AC 00622 BTFSS TXSTA,TRMT 00041A D??? 00623 BRA RX_WAIT3 00041C 0E21 00624 MOVLW '!' 00041E 6EAD 00625 MOVWF TXREG; 000420 6B4A 00626 CLRF RX_STATUS ;OK START NORMAL 000422 0010 00627 RETFIE 00628 ;**********************************************************************************************""""""""" """" 00629 ;SPANNUNGSÜBERWACHUNGS INTERRUPT 000424 00630 HLVD_ISR 000424 A346 00631 BTFSS U_ERR,1 ;WARTEN AUF GELADEN? 000426 D??? 00632 BRA HLVD_LE ;NEIN UNTERSPANNUNG DETEKT-> 000428 9146 00633 BCF U_ERR,0 ;SPANNUNGSFEHLER AUS 00042A 9346 00634 BCF U_ERR,1 ;WARTEN AUF GELADEN=AUS 00042C 0E07 00635 MOVLW U_ERR_PW_AUS+2 ;POWER AUS ÜBERSPRINGEN 00042E 6F47 00636 MOVWF U_ERR_TIME ;ZEIT SETZEN 000430 0E17 00637 MOVLW B'00010111' ;INT WENN UNTER 3.12V 000432 6ED2 00638 MOVWF HLVDCON 000434 00639 WAIT_LVDOK: 000434 AAD2 00640 BTFSS HLVDCON,IVRST ;ABWARTEN BIS AENDERUNG AKTIV 000436 D??? 00641 BRA WAIT_LVDOK 000438 94A1 00642 BCF PIR2,HLVDIF ;INTERRUPT FLAG LÖSCHEN 00043A 0010 00643 RETFIE 00043C 00644 HLVD_LE ;UNTERSPANNUNG 00043C 8146 00645 BSF U_ERR,0 ;ERROR SETZEN 00043E 8346 00646 BSF U_ERR,1 ;WARTEN AUF GELADEN SETZEN 000440 6B47 00647 CLRF U_ERR_TIME ;RÜCKSETZEN MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 14 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00648 ;MESSAGE AN PROCESSOR 000442 0E03 00649 MOVLW U_MIN_TO_MCF 000444 6EAD 00650 MOVWF TXREG ;SENDEN 00651 000446 0E9A 00652 MOVLW B'10011010' ;INT WENN ÜBER 3.7V 000448 6ED2 00653 MOVWF HLVDCON 00044A D??? 00654 BRA WAIT_LVDOK 00655 ;**********************************************************************************************""""""""" """" 00656 ;A/D INTERRUPT 00044C 00657 AD_ISR 00044C 9C9E 00658 BCF PIR1,ADIF ;CLEAR INTERRUPT PENDIG 00044E 0010 00659 RETFIE ;RETURN 00660 ;******************************************************************************************************* ****** 00661 ; uhr interrupt ALLE 1/8 SEC 000450 00662 RTC_ISR 00663 ;UHR WIEDER RÜCKSETZEN UND AKTIVIEREN 000450 0EF0 00664 MOVLW TIMER_HB ;WIEDER AUF STARTWERT 000452 6ECF 00665 MOVWF TMR1H ;SETZEN 000454 909E 00666 BCF PIR1,TMR1IF ;INTERRUPT FLAG LÖSCHEN 000456 8881 00667 BSF PORTB,RB4 ;PIC INT HIGH -------- 000458 8096 00668 BSF TRISE,RE0 ;LED=OFF 00045A 9881 00669 BCF PORTB,RB4 ;PIC INT = LOW 00045C B095 00670 BTFSC TRISD,RD0 ;POWER OFF? 00045E D??? 00671 BRA POWER_OFF_I ;JA-> 00672 ; POWER IS ON: 00673 ; BLINKEN 4X/SEC WENN RESET 000460 BE95 00674 BTFSC TRISD,RD7 ;RESET AKTIV? 000462 D??? 00675 BRA PINGS ;NEIN-> 000464 B141 00676 BTFSC TICKS,0 ;UNGERADE TICKS? 000466 9096 00677 BCF TRISE,RE0 ;NEIN->LED=ON 000468 D??? 00678 BRA PINGS 00046A 00679 POWER_OFF_I 00046A 0E03 00680 MOVLW .3 00046C 1500 00681 ANDWF SECS,0 ;4 SEKUNDEN AUSMASKIEREN 00046E E1?? 00682 BNZ PINGS ;NICHT MODULO4 -> 000470 0E07 00683 MOVLW .7 000472 6341 00684 CPFSEQ TICKS ;7. TICK? 000474 D??? 00685 BRA POWER_OFF_I2 ;NEIN-> 000476 9096 00686 BCF TRISE,RE0 ;JA->LED=ON 000478 00687 POWER_OFF_I2 000478 0E1E 00688 MOVLW .30 ; WENIGER ALS 30 SEC SEIT LETZTEM SPANNUNGSFEHLER? 00047A 6147 00689 CPFSLT U_ERR_TIME 00047C D??? 00690 BRA PINGS ;NEIN-> 00047E 0E05 00691 MOVLW .5 000480 6341 00692 CPFSEQ TICKS ;5. TICK? 000482 D??? 00693 BRA PINGS ;NEIN-> 000484 9096 00694 BCF TRISE,RE0 ;JA->LED=ON 000486 00695 PINGS 000486 EC?? F??? 00696 CALL TASTE ;UP TASTE 00697 ; TASTE LOSGELASSEN? 00048A 0E04 00698 MOVLW RESET_OFF_TIME MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 15 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00048C 6543 00699 CPFSGT TASTE_OFF_TIME ;TASTE LÄNGER ALS 2 SEC LOSGELASSEN? 00048E D??? 00700 BRA PINGW ;NEIN-> 000490 8E95 00701 BSF TRISD,RD7 ;JA-> #RSTI INAKTIV =HIGH 000492 A095 00702 BTFSS TRISD,RD0 ;POWER ON? 000494 EC?? F??? 00703 CALL SERIAL_ON ;ja->SERIELL EINSCHALTEN 00704 ;--TICKS=125MS 000498 00705 PINGW 000498 2B41 00706 INCF TICKS ;inc ticks 00049A A095 00707 BTFSS TRISD,RD0 ;POWER ON? 00049C D??? 00708 BRA PINGS2 ;JA-> 00049E 0E20 00709 MOVLW 20 0004A0 6148 00710 CPFSLT U_POWER_IN ;LADEGERÄT ANGESCHLOSSEN? 0004A2 D??? 00711 BRA PINGS2 ;->JA LED HELLER 0004A4 0EA0 00712 MOVLW TIME_MAX ;>=MAXIMALZEIT? 0004A6 6147 00713 CPFSLT U_ERR_TIME ;SEIT SPANNUNGSFEHLER 0004A8 8096 00714 BSF TRISE,RE0 ;JA -> LED OFF 0004AA 00715 PINGS2 0004AA 0E07 00716 MOVLW .7 ; 7? 0004AC 6541 00717 CPFSGT TICKS 0004AE 0010 00718 RETFIE ; NEIN ->RETURN 0004B0 00719 SEKUNDEN 00720 ;led blinken POWER ON----------------------------------------- 0004B0 A095 00721 BTFSS TRISD,RD0 ;POWER ON? 0004B2 9096 00722 BCF TRISE,RE0 ;JA -> LED_ON 00723 ;TIMER U_ERR ERHÖHEN 0004B4 0EA0 00724 MOVLW TIME_MAX ;>=MAXIMALZEIT? 0004B6 6547 00725 CPFSGT U_ERR_TIME ;SEIT SPANNUNGSFEHLER 0004B8 2B47 00726 INCF U_ERR_TIME ;NEIN ERHÖHEN 00727 ;SPANNUNGSFEHLER BEARBEITEN ---------------------------------------- 0004BA 0E05 00728 MOVLW U_ERR_PW_AUS ;POWER AUS ZEIT? 0004BC 6347 00729 CPFSEQ U_ERR_TIME ; 0004BE D??? 00730 BRA SEK_NPA ;NEIN 0004C0 EC?? F??? 00731 CALL POWER_AUS ;JA AUSSCHALTEN 00732 ;-------------------------------------------------------- 0004C4 00733 SEK_NPA 00734 ;SPANNUNG POWER IN MESSEN 0004C4 0E01 00735 MOVLW B'00000001' ;KANAL 0, AD ON 0004C6 6EC2 00736 MOVWF ADCON0 ; 0004C8 82C2 00737 BSF ADCON0,1 ;GO 0004CA 00738 SEK_2 0004CA B2C2 00739 BTFSC ADCON0,1 ;FERTIG? 0004CC D??? 00740 BRA SEK_2 ;NEIN 0004CE CFC4 F048 00741 MOVFF ADRESH,U_POWER_IN ;OK WERT EINTRAGEN 00742 00743 ;SPANNUNG 2V5 MESSEN -> U_ERR TIMER NICHT ERHÖHEN WENN ÜBER 3.2V RESP. WIEDER -1 0004D2 B095 00744 BTFSC TRISD,RD0 ;POWER ON? 0004D4 D??? 00745 BRA SEK_4 ;NEIN NICHT MESSEN 00746 0004D6 0E0D 00747 MOVLW B'00001101' ;KANAL 3, AD ON 0004D8 6EC2 00748 MOVWF ADCON0 ; 0004DA 82C2 00749 BSF ADCON0,1 ;GO 0004DC 00750 SEK_3 0004DC B2C2 00751 BTFSC ADCON0,1 ;FERTIG? MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 16 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0004DE D??? 00752 BRA SEK_3 ;NEIN 0004E0 0EC8 00753 MOVLW .200 ;UNTER 3.2V -> WENN WERT ÜBER 78% 0004E2 60C4 00754 CPFSLT ADRESH ;JA -> 0004E4 D??? 00755 BRA SEK_4 ;SONST WEITER 00756 ;TIMER U_ERR ERHÖHEN 0004E6 A146 00757 BTFSS U_ERR,0 ;SPANNUNGSERROR? 0004E8 D??? 00758 BRA SEK_4 ;NEIN 0004EA 0EA0 00759 MOVLW TIME_MAX ;>=MAXIMALZEIT? 0004EC 6547 00760 CPFSGT U_ERR_TIME ;SEIT SPANNUNGSFEHLER 0004EE 0747 00761 DECF U_ERR_TIME ;NEIN -> -1 00762 ;------------------------------------------------------------- 0004F0 00763 SEK_4 0004F0 6B41 00764 CLRF TICKS 0004F2 2B00 00765 INCF SECS ; Increment seconds 0004F4 0E3B 00766 MOVLW .59 ; 60 seconds elapsed? 0004F6 6500 00767 CPFSGT SECS 0004F8 0010 00768 RETFIE ;RETURN 0004FA 00769 MINUTEN 0004FA 6B00 00770 CLRF SECS ; Clear seconds 0004FC 2B02 00771 INCF MINS ; Increment minutes 0004FE 0E3B 00772 MOVLW .59 ; 60 minutes elapsed? 000500 6502 00773 CPFSGT MINS 000502 0010 00774 RETFIE ;RETURN 000504 00775 STUNDEN 000504 6B02 00776 CLRF MINS ; clear minutes 000506 2B04 00777 INCF HOURS ; Increment hours 000508 0E17 00778 MOVLW .23 ; 24 hours elapsed? 00050A 6504 00779 CPFSGT HOURS 00050C 0010 00780 RETFIE ;RETURN 00050E 00781 TAGE_UND_TAG_DER_WOCHE 00050E 6B04 00782 CLRF HOURS ; Reset hours 000510 0E07 00783 MOVLW .7 000512 6106 00784 CPFSLT DAY_OF_WEEK 000514 6B06 00785 CLRF DAY_OF_WEEK 000516 2B06 00786 INCF DAY_OF_WEEK 000518 2B07 00787 INCF DAYS 00051A 0E1C 00788 MOVLW .28 00051C 6507 00789 CPFSGT DAYS 00051E 0010 00790 RETFIE ;RETURN 000520 00791 MEHR_ALS_28_TAGE 000520 0E02 00792 MOVLW .2 000522 6308 00793 CPFSEQ MONTHS ;FEB? 000524 D??? 00794 BRA NOT_FEB ;NEIN-> 000526 00795 FEB 000526 0E03 00796 MOVLW .3 000528 1509 00797 ANDWF YEARS,0 ;SCHALTJAHR 00052A E1?? 00798 BNZ NEXT_MONTH ;NEIN-> 00052C 00799 SCHALTJAHR 00052C 0E1D 00800 MOVLW .29 00052E 6507 00801 CPFSGT DAYS 000530 0010 00802 RETFIE ;RETURN 000532 00803 NEXT_MONTH 000532 0E01 00804 MOVLW .1 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 17 LOC OBJECT CODE LINE SOURCE TEXT VALUE 000534 6F07 00805 MOVWF DAYS 000536 2B08 00806 INCF MONTHS 000538 0E12 00807 MOVLW 12 00053A 6508 00808 CPFSGT MONTHS 00053C 0010 00809 RETFIE ;RETURN 00053E 00810 YEAR 00053E 0E01 00811 MOVLW .1 000540 6F08 00812 MOVWF MONTHS 000542 2B09 00813 INCF YEARS 000544 0010 00814 RETFIE ;RETURN 000546 00815 NOT_FEB 000546 0E1E 00816 MOVLW .30 000548 6507 00817 CPFSGT DAYS 00054A 0010 00818 RETFIE 00054C 00819 MEHR_ALS_30_TAGE 00054C 0E04 00820 MOVLW .4 ;APRIL? 00054E 6308 00821 CPFSEQ MONTHS ;SKIP 000550 D??? 00822 BRA NOT_APRIL 000552 D??? 00823 BRA NEXT_MONTH ;APRIL-> 000554 00824 NOT_APRIL 000554 0E06 00825 MOVLW .6 ;JUNI? 000556 6308 00826 CPFSEQ MONTHS 000558 D??? 00827 BRA NOT_JUNI 00055A D??? 00828 BRA NEXT_MONTH ;JUNI-> 00055C 00829 NOT_JUNI 00055C 0E09 00830 MOVLW .9 ;SEPTEMBER? 00055E 6308 00831 CPFSEQ MONTHS 000560 D??? 00832 BRA NOT_SEP 000562 D??? 00833 BRA NEXT_MONTH ;SEPTEMBER-> 000564 00834 NOT_SEP 000564 0E0B 00835 MOVLW .11 ;NOVEMBER? 000566 6308 00836 CPFSEQ MONTHS ;SKIP 000568 0010 00837 RETFIE ;SIND MONATE MIT 31 TAGEN-> 00056A D??? 00838 BRA NEXT_MONTH ;SONST NOVEMBER-> 00839 ;**********************************************************************************************""""""""" """" 00840 ; ENDE MAIN 00841 ;**********************************************************************************************""""""""" """" 00842 ;**********************************************************************************************""""""""" """" 00843 ; EXTERN_SUBOUTINES FOGEN AB 0x1000 DIE SPÄTER EINPROGRAMMIERT WERDEN 00844 ;**********************************************************************************************""""""""" """" 00845 end MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 18 SYMBOL TABLE LABEL VALUE A 00000000 ABDEN 00000000 ABDOVF 00000007 ACCESS 00000000 ACKDT 00000005 ACKEN 00000004 ACKSTAT 00000006 ACQT0 00000003 ACQT1 00000004 ACQT2 00000005 ADCON0 00000FC2 ADCON1 00000FC1 ADCON2 00000FC0 ADCS0 00000000 ADCS1 00000001 ADCS2 00000002 ADDEN 00000003 ADEN 00000003 ADFM 00000007 ADIE 00000006 ADIF 00000006 ADIP 00000006 ADON 00000000 ADRES 00000FC3 ADRESH 00000FC4 ADRESL 00000FC3 AD_ISR 0000044C AD_KANAL 00000045 AN0 00000000 AN1 00000001 AN10 00000001 AN11 00000004 AN12 00000000 AN2 00000002 AN3 00000003 AN4 00000005 AN5 00000000 AN6 00000001 AN7 00000002 AN8 00000002 AN9 00000003 BANKED 00000001 BAUDCON 00000FB8 BAUDCTL 00000FB8 BCLIE 00000003 BCLIF 00000003 BCLIP 00000003 BF 00000000 BGST 00000005 BOR 00000000 BRG16 00000003 BRGH 00000002 BSR 00000FE0 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 19 SYMBOL TABLE LABEL VALUE C 00000000 C1INV 00000004 C1OUT 00000006 C2INV 00000005 C2OUT 00000007 CCP1 00000002 CCP1CON 00000FBD CCP1IE 00000002 CCP1IF 00000002 CCP1IP 00000002 CCP1M0 00000000 CCP1M1 00000001 CCP1M2 00000002 CCP1M3 00000003 CCP1X 00000005 CCP1Y 00000004 CCP2CON 00000FBA CCP2IE 00000000 CCP2IF 00000000 CCP2IP 00000000 CCP2M0 00000000 CCP2M1 00000001 CCP2M2 00000002 CCP2M3 00000003 CCP2X 00000005 CCP2Y 00000004 CCP2_PORTB 00000003 CCP2_PORTC 00000001 CCPR1 00000FBE CCPR1H 00000FBF CCPR1L 00000FBE CCPR2 00000FBB CCPR2H 00000FBC CCPR2L 00000FBB CFGS 00000006 CHS0 00000002 CHS1 00000003 CHS2 00000004 CHS3 00000005 CIS 00000003 CK 00000006 CKE 00000006 CKP 00000004 CLKI 00000007 CLKO 00000006 CLK_ACTIV 00000072 CLK_SLEEP 00000012 CM0 00000000 CM1 00000001 CM2 00000002 CMCON 00000FB4 CMIE 00000006 CMIF 00000006 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 20 SYMBOL TABLE LABEL VALUE CMIP 00000006 CREN 00000004 CS 00000002 CSRC 00000007 CVR0 00000000 CVR1 00000001 CVR2 00000002 CVR3 00000003 CVRCON 00000FB5 CVREF 00000002 CVREN 00000007 CVROE 00000006 CVRR 00000005 CVRSS 00000004 D 00000005 DAYS 00000007 DAY_OF_WEEK 00000006 DC 00000001 DC1B0 00000004 DC1B1 00000005 DC2B0 00000004 DC2B1 00000005 DDRA TRISA DDRB TRISB DDRC TRISC DDRD TRISD DDRE TRISE DONE 00000001 D_A 00000005 EAPIR1 0000004E EAPIR2 0000004F ECCP1AS 00000FB6 ECCPAS0 00000004 ECCPAS1 00000005 ECCPAS2 00000006 ECCPASE 00000007 EEADR 00000FA9 EECON1 00000FA6 EECON2 00000FA7 EEDATA 00000FA8 EEIE 00000004 EEIF 00000004 EEIP 00000004 EEPGD 00000007 EXTERN_INTERRUPTS 00002002 EXTERN_INT_ADR 00002000 EXTERN_SUBROUTINES 00002012 EXTERN_SUB_ADR 00002010 EXT_CODE 000000FB EXT_SUB_GO 00000004 EXT_SUB_STOP 00000005 FAST 00000001 FEB 00000526 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 21 SYMBOL TABLE LABEL VALUE FERR 00000002 FLTS 00000002 FREE 00000004 FSR0 00000000 FSR0H 00000FEA FSR0L 00000FE9 FSR1 00000001 FSR1H 00000FE2 FSR1L 00000FE1 FSR2 00000002 FSR2H 00000FDA FSR2L 00000FD9 GCEN 00000007 GIE 00000007 GIEH 00000007 GIEL 00000006 GO 00000001 GO_DONE 00000001 GO_INT 0000004D GO_SUB 0000004C HLVDCON 00000FD2 HLVDEN 00000004 HLVDIE 00000002 HLVDIF 00000002 HLVDIP 00000002 HLVDL0 00000000 HLVDL1 00000001 HLVDL2 00000002 HLVDL3 00000003 HLVD_ISR 00000424 HLVD_LE 0000043C HOURS 00000004 HOURS_ALARM 00000005 IBF 00000007 IBOV 00000005 IDLEN 00000007 INDF0 00000FEF INDF1 00000FE7 INDF2 00000FDF INT0 00000000 INT0E 00000004 INT0F 00000001 INT0IE 00000004 INT0IF 00000001 INT1 00000001 INT1E 00000003 INT1F 00000000 INT1IE 00000003 INT1IF 00000000 INT1IP 00000006 INT1P 00000006 INT2 00000002 INT2E 00000004 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 22 SYMBOL TABLE LABEL VALUE INT2F 00000001 INT2IE 00000004 INT2IF 00000001 INT2IP 00000007 INT2P 00000007 INTCON 00000FF2 INTCON2 00000FF1 INTCON3 00000FF0 INTEDG0 00000006 INTEDG1 00000005 INTEDG2 00000004 INTSRC 00000007 INT_HANDLER 00000018 IOFS 00000002 IPEN 00000007 IPR1 00000F9F IPR2 00000FA2 IRCF0 00000004 IRCF1 00000005 IRCF2 00000006 IRVST 00000005 IVRST 00000005 KALT_START 00000100 KBI0 00000004 KBI1 00000005 KBI2 00000006 KBI3 00000007 LADESTROM 000001D2 LATA 00000F89 LATA0 00000000 LATA1 00000001 LATA2 00000002 LATA3 00000003 LATA4 00000004 LATA5 00000005 LATA6 00000006 LATA7 00000007 LATB 00000F8A LATB0 00000000 LATB1 00000001 LATB2 00000002 LATB3 00000003 LATB4 00000004 LATB5 00000005 LATB6 00000006 LATB7 00000007 LATC 00000F8B LATC0 00000000 LATC1 00000001 LATC2 00000002 LATC3 00000003 LATC4 00000004 LATC5 00000005 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 23 SYMBOL TABLE LABEL VALUE LATC6 00000006 LATC7 00000007 LATD 00000F8C LATD0 00000000 LATD1 00000001 LATD2 00000002 LATD3 00000003 LATD4 00000004 LATD5 00000005 LATD6 00000006 LATD7 00000007 LATE 00000F8D LATE0 00000000 LATE1 00000001 LATE2 00000002 LS_OFF_POWER 000001DA LS_ON_POWER 000001D6 LVDCON 00000FD2 LVDEN 00000004 LVDIE 00000002 LVDIF 00000002 LVDIN 00000005 LVDIP 00000002 LVDL0 00000000 LVDL1 00000001 LVDL2 00000002 LVDL3 00000003 LVV0 00000000 LVV1 00000001 LVV2 00000002 LVV3 00000003 MAIN 0000019E MAIN2 000001AE MCLR 00000003 MEHR_ALS_28_TAGE 00000520 MEHR_ALS_30_TAGE 0000054C MINS 00000002 MINS_ALRAM 00000003 MINUTEN 000004FA MONTHS 00000008 N 00000004 NEXT_MONTH 00000532 NON_SYNC 000003D2 NOT_A 00000005 NOT_ADDRESS 00000005 NOT_APRIL 00000554 NOT_BOR 00000000 NOT_CS 00000002 NOT_DONE 00000001 NOT_FEB 00000546 NOT_JUNI 0000055C NOT_MCLR 00000003 NOT_PD 00000002 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 24 SYMBOL TABLE LABEL VALUE NOT_POR 00000001 NOT_RBPU 00000007 NOT_RD 00000000 NOT_RI 00000004 NOT_SEP 00000564 NOT_SS 00000005 NOT_T1SYNC 00000002 NOT_T3SYNC 00000002 NOT_TO 00000003 NOT_W 00000002 NOT_WR 00000001 NOT_WRITE 00000002 NO_PROG 000003AC OBF 00000006 OERR 00000001 OFF_TIME 00000014 ON_TIME 00000002 OSC1 00000007 OSC2 00000006 OSCCON 00000FD3 OSCFIE 00000007 OSCFIF 00000007 OSCFIP 00000007 OSCTUNE 00000F9B OSTS 00000003 OV 00000003 P 00000004 P1B 00000005 P1C 00000006 P1D 00000007 P1M0 00000006 P1M1 00000007 PC 00000FF9 PCFG0 00000000 PCFG1 00000001 PCFG2 00000002 PCFG3 00000003 PCL 00000FF9 PCLATH 00000FFA PCLATU 00000FFB PD 00000002 PDC0 00000000 PDC1 00000001 PDC2 00000002 PDC3 00000003 PDC4 00000004 PDC5 00000005 PDC6 00000006 PEIE 00000006 PEN 00000002 PGC 00000006 PGD 00000007 PGM 00000005 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 25 SYMBOL TABLE LABEL VALUE PIE1 00000F9D PIE2 00000FA0 PINGS 00000486 PINGS2 000004AA PINGW 00000498 PIR1 00000F9E PIR2 00000FA1 PLLEN 00000006 PLUSW0 00000FEB PLUSW1 00000FE3 PLUSW2 00000FDB POR 00000001 PORTA 00000F80 PORTB 00000F81 PORTC 00000F82 PORTD 00000F83 PORTE 00000F84 POSTDEC0 00000FED POSTDEC1 00000FE5 POSTDEC2 00000FDD POSTINC0 00000FEE POSTINC1 00000FE6 POSTINC2 00000FDE POWER_AUS 000001C2 POWER_EIN 000001B4 POWER_OFF_I 0000046A POWER_OFF_I2 00000478 POWER_ON_TIME 00000044 PR2 00000FCB PREINC0 00000FEC PREINC1 00000FE4 PREINC2 00000FDC PRG_OK_PIC 00000022 PROD 00000FF3 PRODH 00000FF4 PRODL 00000FF3 PROGRAM_MEMORY 0000039A PRSEN 00000007 PSA 00000003 PSP0 00000000 PSP1 00000001 PSP2 00000002 PSP3 00000003 PSP4 00000004 PSP5 00000005 PSP6 00000006 PSP7 00000007 PSPIE 00000007 PSPIF 00000007 PSPIP 00000007 PSPMODE 00000004 PSSAC0 00000002 PSSAC1 00000003 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 26 SYMBOL TABLE LABEL VALUE PSSBD0 00000000 PSSBD1 00000001 PWM1CON 00000FB7 R 00000002 RA0 00000000 RA1 00000001 RA2 00000002 RA3 00000003 RA4 00000004 RA5 00000005 RA6 00000006 RA7 00000007 RB0 00000000 RB1 00000001 RB2 00000002 RB3 00000003 RB4 00000004 RB5 00000005 RB6 00000006 RB7 00000007 RBIE 00000003 RBIF 00000000 RBIP 00000000 RBPU 00000007 RC0 00000000 RC1 00000001 RC2 00000002 RC3 00000003 RC4 00000004 RC5 00000005 RC6 00000006 RC7 00000007 RCEN 00000003 RCIDL 00000006 RCIE 00000005 RCIF 00000005 RCIP 00000005 RCMT 00000006 RCON 00000FD0 RCREG 00000FAE RCSTA 00000FAB RD 00000000 RD0 00000000 RD1 00000001 RD16 00000007 RD2 00000002 RD3 00000003 RD4 00000004 RD5 00000005 RD6 00000006 RD7 00000007 RE0 00000000 RE1 00000001 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 27 SYMBOL TABLE LABEL VALUE RE2 00000002 RE3 00000003 READ_BLOCK 000000A1 REGA 0000000A REGB 0000000B REGC 0000000C REGD 0000000D REQ_BLOCK 000000A0 REQ_RTCD_FROM_MCF 00000002 REQ_RTCD_FROM_PIC 00000001 RESETEN 00000256 RESET_OFF_TIME 00000004 RESET_ON_TIME 00000002 RI 00000004 RSEN 00000001 RTCD_FROM_MCF 00000082 RTCD_FROM_PIC 00000081 RTC_ISR 00000450 RTC_RAM 0000000E RX 00000007 RX9 00000006 RX9D 00000000 RXDTP 00000005 RX_B 00000049 RX_BUFFER 00000100 RX_ISR 00000288 RX_ISR1 000002A4 RX_ISR2 000002B0 RX_ISR3 000002C8 RX_ISR4 000002F6 RX_ISR5 00000304 RX_ISR6 00000312 RX_ISR7 00000350 RX_ISR8 000003B0 RX_ISR9 000003BC RX_RB3B2 00000334 RX_RB3BOK 00000322 RX_STATUS 0000004A RX_SYNC2 000003D8 RX_SYNC3 000003EA RX_SYNC4 000003FC RX_SYNC_START 000003C0 RX_WAIT1 00000408 RX_WAIT2 00000410 RX_WAIT3 00000418 R_W 00000002 S 00000003 SBOREN 00000006 SCHALTJAHR 0000052C SCK 00000003 SCKP 00000004 SCL 00000003 SCS0 00000000 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 28 SYMBOL TABLE LABEL VALUE SCS1 00000001 SDA 00000004 SDI 00000004 SDO 00000005 SECS 00000000 SECS_ALARM 00000001 SEKUNDEN 000004B0 SEK_2 000004CA SEK_3 000004DC SEK_4 000004F0 SEK_NPA 000004C4 SEN 00000000 SENDB 00000003 SEND_RTC_REG 00000232 SEND_RTC_TIME 00000002 SERIAL_OFF 000001DE SERIAL_ON 000001EA SMP 00000007 SP0 00000000 SP1 00000001 SP2 00000002 SP3 00000003 SP4 00000004 SPBRG 00000FAF SPBRGH 00000FB0 SPEN 00000007 SREN 00000005 SS 00000005 SSPADD 00000FC8 SSPBUF 00000FC9 SSPCON1 00000FC6 SSPCON2 00000FC5 SSPEN 00000005 SSPIE 00000003 SSPIF 00000003 SSPIP 00000003 SSPM0 00000000 SSPM1 00000001 SSPM2 00000002 SSPM3 00000003 SSPOV 00000006 SSPSTAT 00000FC7 STATUS 00000FD8 STKFUL 00000007 STKOVF 00000007 STKPTR 00000FFC STKUNF 00000006 STUNDEN 00000504 SWDTE 00000000 SWDTEN 00000000 SYNC 00000004 SYNC1 000000FF SYNC1_DATA 00000041 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 29 SYMBOL TABLE LABEL VALUE SYNC2 000000FE SYNC2_DATA 00000043 SYNC3 000000FD SYNC3_DATA 00000050 SYNC4 000000FC SYNC4_DATA 00000046 T08BIT 00000006 T0CKI 00000004 T0CON 00000FD5 T0CS 00000005 T0IE 00000005 T0IF 00000002 T0PS0 00000000 T0PS1 00000001 T0PS2 00000002 T0SE 00000004 T13CKI 00000000 T1CKI 00000000 T1CKPS0 00000004 T1CKPS1 00000005 T1CON 00000FCD T1OSCEN 00000003 T1OSI 00000001 T1OSO 00000000 T1RUN 00000006 T1SYNC 00000002 T2CKPS0 00000000 T2CKPS1 00000001 T2CON 00000FCA T2OUTPS0 00000003 T2OUTPS1 00000004 T2OUTPS2 00000005 T2OUTPS3 00000006 T3CCP1 00000003 T3CCP2 00000006 T3CKPS0 00000004 T3CKPS1 00000005 T3CON 00000FB1 T3SYNC 00000002 TABLAT 00000FF5 TAGE_UND_TAG_DER_WOCHE 0000050E TASTE 00000208 TASTE_OFF_TIME 00000043 TASTE_ON_TIME 00000042 TBLPTR 00000FF6 TBLPTRH 00000FF7 TBLPTRL 00000FF6 TBLPTRU 00000FF8 TG_END 00000250 TG_JA 00000222 TG_OFF_POWER 00000248 TG_ON_POWER 0000022C TG_ON_POWER2 00000238 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 30 SYMBOL TABLE LABEL VALUE TG_ON_POWER3 0000023E TICKS 00000041 TIMER_HB 000000F0 TIME_MAX 000000A0 TMR0H 00000FD7 TMR0IE 00000005 TMR0IF 00000002 TMR0IP 00000002 TMR0L 00000FD6 TMR0ON 00000007 TMR1CS 00000001 TMR1H 00000FCF TMR1IE 00000000 TMR1IF 00000000 TMR1IP 00000000 TMR1L 00000FCE TMR1ON 00000000 TMR2 00000FCC TMR2IE 00000001 TMR2IF 00000001 TMR2IP 00000001 TMR2ON 00000002 TMR3CS 00000001 TMR3H 00000FB3 TMR3IE 00000001 TMR3IF 00000001 TMR3IP 00000001 TMR3L 00000FB2 TMR3ON 00000000 TO 00000003 TOS 00000FFD TOSH 00000FFE TOSL 00000FFD TOSU 00000FFF TRISA 00000F92 TRISA0 00000000 TRISA1 00000001 TRISA2 00000002 TRISA3 00000003 TRISA4 00000004 TRISA5 00000005 TRISA6 00000006 TRISA7 00000007 TRISB 00000F93 TRISB0 00000000 TRISB1 00000001 TRISB2 00000002 TRISB3 00000003 TRISB4 00000004 TRISB5 00000005 TRISB6 00000006 TRISB7 00000007 TRISC 00000F94 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 31 SYMBOL TABLE LABEL VALUE TRISC0 00000000 TRISC1 00000001 TRISC2 00000002 TRISC3 00000003 TRISC4 00000004 TRISC5 00000005 TRISC6 00000006 TRISC7 00000007 TRISD 00000F95 TRISD0 00000000 TRISD1 00000001 TRISD2 00000002 TRISD3 00000003 TRISD4 00000004 TRISD5 00000005 TRISD6 00000006 TRISD7 00000007 TRISE 00000F96 TRISE0 00000000 TRISE1 00000001 TRISE2 00000002 TRMT 00000001 TUN0 00000000 TUN1 00000001 TUN2 00000002 TUN3 00000003 TUN4 00000004 TX 00000006 TX9 00000006 TX9D 00000000 TXCKP 00000004 TXEN 00000005 TXIE 00000004 TXIF 00000004 TXIP 00000004 TXREG 00000FAD TXSTA 00000FAC TX_BUFFER 00000180 TX_ISR 0000025E TX_ISR1 00000276 TX_ISR2 00000286 TX_ISR_FERTIG 0000026E TX_STATUS 0000004B UA 00000001 U_ERR 00000046 U_ERR_PW_AUS 00000005 U_ERR_TIME 00000047 U_MIN_TO_MCF 00000003 U_POWER_IN 00000048 VCFG0 00000004 VCFG1 00000005 VDIRMAG 00000007 VPP 00000003 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 32 SYMBOL TABLE LABEL VALUE VREFN 00000002 VREFP 00000003 W 00000000 WAIT_LVDOK 00000434 WARTEN 000001A8 WCOL 00000007 WDTCON 00000FD1 WR 00000001 WREG 00000FE8 WREN 00000002 WRERR 00000003 WRITE_BLOCK 000000A2 WRITE_WORD_TO_HREGS 00000390 WUE 00000001 YEAR 0000053E YEARS 00000009 Z 00000002 _BOREN_NOSLP_2L 000000FD _BOREN_OFF_2L 000000F9 _BOREN_ON_2L 000000FB _BOREN_SBORDIS_2L 000000FF _BORV_0_2L 000000E7 _BORV_1_2L 000000EF _BORV_2_2L 000000F7 _BORV_3_2L 000000FF _CCP2MX_PORTBE_3H 000000FE _CCP2MX_PORTC_3H 000000FF _CONFIG1H 00300001 _CONFIG2H 00300003 _CONFIG2L 00300002 _CONFIG3H 00300005 _CONFIG4L 00300006 _CONFIG5H 00300009 _CONFIG5L 00300008 _CONFIG6H 0030000B _CONFIG6L 0030000A _CONFIG7H 0030000D _CONFIG7L 0030000C _CP0_OFF_5L 000000FF _CP0_ON_5L 000000FE _CP1_OFF_5L 000000FF _CP1_ON_5L 000000FD _CP2_OFF_5L 000000FF _CP2_ON_5L 000000FB _CP3_OFF_5L 000000FF _CP3_ON_5L 000000F7 _CPB_OFF_5H 000000FF _CPB_ON_5H 000000BF _CPD_OFF_5H 000000FF _CPD_ON_5H 0000007F _DEBUG_OFF_4L 000000FF _DEBUG_ON_4L 0000007F _DEVID1 003FFFFE MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 33 SYMBOL TABLE LABEL VALUE _DEVID2 003FFFFF _EBTR0_OFF_7L 000000FF _EBTR0_ON_7L 000000FE _EBTR1_OFF_7L 000000FF _EBTR1_ON_7L 000000FD _EBTR2_OFF_7L 000000FF _EBTR2_ON_7L 000000FB _EBTR3_OFF_7L 000000FF _EBTR3_ON_7L 000000F7 _EBTRB_OFF_7H 000000FF _EBTRB_ON_7H 000000BF _FCMEN_OFF_1H 000000BF _FCMEN_ON_1H 000000FF _IDLOC0 00200000 _IDLOC1 00200001 _IDLOC2 00200002 _IDLOC3 00200003 _IDLOC4 00200004 _IDLOC5 00200005 _IDLOC6 00200006 _IDLOC7 00200007 _IESO_OFF_1H 0000007F _IESO_ON_1H 000000FF _LPT1OSC_OFF_3H 000000FB _LPT1OSC_ON_3H 000000FF _LVP_OFF_4L 000000FB _LVP_ON_4L 000000FF _MCLRE_OFF_3H 0000007F _MCLRE_ON_3H 000000FF _OSC_ECIO6_1H 000000F5 _OSC_EC_1H 000000F4 _OSC_HSPLL_1H 000000F6 _OSC_HS_1H 000000F2 _OSC_INTIO67_1H 000000F8 _OSC_INTIO7_1H 000000F9 _OSC_LP_1H 000000F0 _OSC_RCIO6_1H 000000F7 _OSC_RC_1H 000000F3 _OSC_XT_1H 000000F1 _PBADEN_OFF_3H 000000FD _PBADEN_ON_3H 000000FF _PWRT_OFF_2L 000000FF _PWRT_ON_2L 000000FE _STVREN_OFF_4L 000000FE _STVREN_ON_4L 000000FF _WDTPS_1024_2H 000000F5 _WDTPS_128_2H 000000EF _WDTPS_16384_2H 000000FD _WDTPS_16_2H 000000E9 _WDTPS_1_2H 000000E1 _WDTPS_2048_2H 000000F7 _WDTPS_256_2H 000000F1 _WDTPS_2_2H 000000E3 MPASM 5.35 FIREBEE1.ASM 10-1-2010 13:06:42 PAGE 34 SYMBOL TABLE LABEL VALUE _WDTPS_32768_2H 000000FF _WDTPS_32_2H 000000EB _WDTPS_4096_2H 000000F9 _WDTPS_4_2H 000000E5 _WDTPS_512_2H 000000F3 _WDTPS_64_2H 000000ED _WDTPS_8192_2H 000000FB _WDTPS_8_2H 000000E7 _WDT_OFF_2H 000000FE _WDT_ON_2H 000000FF _WRT0_OFF_6L 000000FF _WRT0_ON_6L 000000FE _WRT1_OFF_6L 000000FF _WRT1_ON_6L 000000FD _WRT2_OFF_6L 000000FF _WRT2_ON_6L 000000FB _WRT3_OFF_6L 000000FF _WRT3_ON_6L 000000F7 _WRTB_OFF_6H 000000FF _WRTB_ON_6H 000000BF _WRTC_OFF_6H 000000FF _WRTC_ON_6H 000000DF _WRTD_OFF_6H 000000FF _WRTD_ON_6H 0000007F _XINST_OFF_4L 000000BF _XINST_ON_4L 000000FF __18F4520 00000001 free 00000040 Errors : 0 Warnings : 0 reported, 0 suppressed Messages : 0 reported, 0 suppressed