CCS PCM C Compiler, Version 4.106, 47914 08-5-13 01:42Filename: c:\users\honza\documents\pic\mereni_energie\main.lstROM used: 3155 words (39%)Largest free fragment is 2048RAM used: 78 (21%) at main() level100 (27%) worst caseStack: 4 locations*0000: MOVLW 090001: MOVWF 0A0002: GOTO 15B0003: NOP.................... //Mereni energie.................... //(c) Jan Chroust 2013............................................................ #include "C:main.h".................... #include <16F887.h>.................... //////// Standard Header file for the PIC16F887 device ////////////////.................... #device PIC16F887.................... #list........................................ #device adc=8........................................ #FUSES NOWDT //No Watch Dog Timer.................... #FUSES INTRC //Internal RC Osc.................... #FUSES NOPUT //No Power Up Timer.................... #FUSES MCLR //Master Clear pin enabled.................... #FUSES NOPROTECT //Code not protected from reading.................... #FUSES NOCPD //No EE protection.................... #FUSES NOBROWNOUT //No brownout reset.................... #FUSES IESO //Internal External Switch Over mode enabled.................... #FUSES FCMEN //Fail-safe clock monitor enabled.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O.................... #FUSES NODEBUG //No Debug mode for ICD.................... #FUSES NOWRT //Program memory not write protected.................... #FUSES BORV40 //Brownout reset at 4.0V........................................ #use delay(clock=8000000)*000A: MOVLW 6A000B: MOVWF 04000C: BCF 03.7000D: MOVF 00,W000E: BTFSC 03.2000F: GOTO 01D0010: MOVLW 020011: MOVWF 780012: CLRF 770013: DECFSZ 77,F0014: GOTO 0130015: DECFSZ 78,F0016: GOTO 0120017: MOVLW 970018: MOVWF 770019: DECFSZ 77,F001A: GOTO 019001B: DECFSZ 00,F001C: GOTO 010001D: RETURN................................................................................ #define EEPROM_SDA PIN_C4.................... #define EEPROM_SCL PIN_C3.................... //rele v blok sch. REL1 a REL2.................... #define REL1_IN1 PIN_D6.................... #define REL1_IN2 PIN_D7.................... //rele v blok sch. REL5.................... #define REL2_IN1 PIN_B2.................... #define REL2_IN2 PIN_B3.................... //rele v blok sch.REL3.................... #define REL3_IN1 PIN_A0.................... #define REL3_IN2 PIN_A1.................... //rele v blok sch.REL3.................... #define REL4_IN1 PIN_A2.................... #define REL4_IN2 PIN_A3........................................ #define NOC PIN_B1 //pro povoleni moznosti nabijet............................................................ #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)*018C: MOVLW 08018D: MOVWF 78018E: NOP018F: BCF 07.30190: BCF 20.30191: MOVF 20,W0192: BSF 03.50193: MOVWF 070194: NOP0195: RLF 71,F0196: BCF 03.50197: BCF 07.40198: BTFSS 03.00199: GOTO 1A0019A: BSF 20.4019B: MOVF 20,W019C: BSF 03.5019D: MOVWF 07019E: GOTO 1A4019F: BCF 03.501A0: BCF 20.401A1: MOVF 20,W01A2: BSF 03.501A3: MOVWF 0701A4: NOP01A5: BCF 03.501A6: BSF 20.301A7: MOVF 20,W01A8: BSF 03.501A9: MOVWF 0701AA: BCF 03.501AB: BTFSS 07.301AC: GOTO 1AB01AD: DECFSZ 78,F01AE: GOTO 18E01AF: NOP01B0: BCF 07.301B1: BCF 20.301B2: MOVF 20,W01B3: BSF 03.501B4: MOVWF 0701B5: NOP01B6: BCF 03.501B7: BSF 20.401B8: MOVF 20,W01B9: BSF 03.501BA: MOVWF 0701BB: NOP01BC: NOP01BD: BCF 03.501BE: BSF 20.301BF: MOVF 20,W01C0: BSF 03.501C1: MOVWF 0701C2: BCF 03.501C3: BTFSS 07.301C4: GOTO 1C301C5: CLRF 7801C6: NOP01C7: BTFSC 07.401C8: BSF 78.001C9: BCF 07.301CA: BCF 20.301CB: MOVF 20,W01CC: BSF 03.501CD: MOVWF 0701CE: BCF 03.501CF: BCF 07.401D0: BCF 20.401D1: MOVF 20,W01D2: BSF 03.501D3: MOVWF 0701D4: BCF 03.501D5: RETURN*0246: MOVLW 080247: MOVWF 720248: MOVF 77,W0249: MOVWF 73024A: BSF 20.4024B: MOVF 20,W024C: BSF 03.5024D: MOVWF 07024E: NOP024F: BCF 03.50250: BSF 20.30251: MOVF 20,W0252: BSF 03.50253: MOVWF 070254: BCF 03.50255: BTFSS 07.30256: GOTO 2550257: BTFSC 07.40258: BSF 03.00259: BTFSS 07.4025A: BCF 03.0025B: RLF 78,F025C: NOP025D: BCF 20.3025E: MOVF 20,W025F: BSF 03.50260: MOVWF 070261: BCF 03.50262: BCF 07.30263: DECFSZ 72,F0264: GOTO 24A0265: BSF 20.40266: MOVF 20,W0267: BSF 03.50268: MOVWF 070269: NOP026A: BCF 03.5026B: BCF 07.4026C: MOVF 73,W026D: BTFSC 03.2026E: GOTO 274026F: BCF 20.40270: MOVF 20,W0271: BSF 03.50272: MOVWF 070273: BCF 03.50274: NOP0275: BSF 20.30276: MOVF 20,W0277: BSF 03.50278: MOVWF 070279: BCF 03.5027A: BTFSS 07.3027B: GOTO 27A027C: NOP027D: BCF 07.3027E: BCF 20.3027F: MOVF 20,W0280: BSF 03.50281: MOVWF 070282: NOP0283: BCF 03.50284: BCF 07.40285: BCF 20.40286: MOVF 20,W0287: BSF 03.50288: MOVWF 070289: BCF 03.5028A: RETURN.................... #use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD*001E: BCF 20.7001F: MOVF 20,W0020: BSF 03.50021: MOVWF 070022: BCF 03.50023: BCF 07.70024: MOVLW 080025: MOVWF 780026: GOTO 0270027: NOP0028: BSF 78.70029: GOTO 038002A: BCF 78.7002B: RRF 6D,F002C: BTFSC 03.0002D: BSF 07.7002E: BTFSS 03.0002F: BCF 07.70030: BSF 78.60031: GOTO 0380032: BCF 78.60033: DECFSZ 78,F0034: GOTO 02B0035: GOTO 0360036: NOP0037: BSF 07.70038: MOVLW 3F0039: MOVWF 04003A: DECFSZ 04,F003B: GOTO 03A003C: NOP003D: BTFSC 78.7003E: GOTO 02A003F: BTFSC 78.60040: GOTO 0320041: RETURN.................... #include "BQ34Z100.h".................... #define BAT_ADDR_R 0xAB //addresa pro cteni.................... #define BAT_ADDR_W 0xAA........................................................................................................................ #include "BQ34Z100.c".................... //Knihovna pro obvod BQ34Z100.................... //(c) Jan Chroust 2013............................................................ int16 cteniBAT(byte lsb, byte msb).................... {*028B: CLRF 6E028C: CLRF 6D.................... int16 data = 0;.................... unsigned int8 h, l;.................... i2c_start();028D: BSF 20.4028E: MOVF 20,W028F: BSF 03.50290: MOVWF 070291: NOP0292: BCF 03.50293: BSF 20.30294: MOVF 20,W0295: BSF 03.50296: MOVWF 070297: NOP0298: BCF 03.50299: BCF 07.4029A: BCF 20.4029B: MOVF 20,W029C: BSF 03.5029D: MOVWF 07029E: NOP029F: BCF 03.502A0: BCF 07.302A1: BCF 20.302A2: MOVF 20,W02A3: BSF 03.502A4: MOVWF 07.................... I2C_Write(BAT_ADDR_W);02A5: MOVLW AA02A6: MOVWF 7102A7: BCF 03.502A8: CALL 18C.................... I2C_write(lsb);02A9: MOVF 6B,W02AA: MOVWF 7102AB: CALL 18C........................................ i2c_start();02AC: BSF 20.402AD: MOVF 20,W02AE: BSF 03.502AF: MOVWF 0702B0: NOP02B1: BCF 03.502B2: BSF 20.302B3: MOVF 20,W02B4: BSF 03.502B5: MOVWF 0702B6: NOP02B7: BCF 03.502B8: BTFSS 07.302B9: GOTO 2B802BA: BCF 07.402BB: BCF 20.402BC: MOVF 20,W02BD: BSF 03.502BE: MOVWF 0702BF: NOP02C0: BCF 03.502C1: BCF 07.302C2: BCF 20.302C3: MOVF 20,W02C4: BSF 03.502C5: MOVWF 07.................... I2C_Write(BAT_ADDR_R);02C6: MOVLW AB02C7: MOVWF 7102C8: BCF 03.502C9: CALL 18C.................... l=i2c_read(0);02CA: CLRF 7702CB: CALL 24602CC: MOVF 78,W02CD: MOVWF 70.................... i2c_stop();02CE: BCF 20.402CF: MOVF 20,W02D0: BSF 03.502D1: MOVWF 0702D2: NOP02D3: BCF 03.502D4: BSF 20.302D5: MOVF 20,W02D6: BSF 03.502D7: MOVWF 0702D8: BCF 03.502D9: BTFSS 07.302DA: GOTO 2D902DB: NOP02DC: GOTO 2DD02DD: NOP02DE: BSF 20.402DF: MOVF 20,W02E0: BSF 03.502E1: MOVWF 0702E2: NOP........................................ i2c_start();02E3: BCF 03.502E4: BSF 20.402E5: MOVF 20,W02E6: BSF 03.502E7: MOVWF 0702E8: NOP02E9: BCF 03.502EA: BSF 20.302EB: MOVF 20,W02EC: BSF 03.502ED: MOVWF 0702EE: NOP02EF: BCF 03.502F0: BCF 07.402F1: BCF 20.402F2: MOVF 20,W02F3: BSF 03.502F4: MOVWF 0702F5: NOP02F6: BCF 03.502F7: BCF 07.302F8: BCF 20.302F9: MOVF 20,W02FA: BSF 03.502FB: MOVWF 07.................... I2C_Write(BAT_ADDR_W);02FC: MOVLW AA02FD: MOVWF 7102FE: BCF 03.502FF: CALL 18C.................... I2C_write(msb);0300: MOVF 6C,W0301: MOVWF 710302: CALL 18C.................... i2c_start();0303: BSF 20.40304: MOVF 20,W0305: BSF 03.50306: MOVWF 070307: NOP0308: BCF 03.50309: BSF 20.3030A: MOVF 20,W030B: BSF 03.5030C: MOVWF 07030D: NOP030E: BCF 03.5030F: BTFSS 07.30310: GOTO 30F0311: BCF 07.40312: BCF 20.40313: MOVF 20,W0314: BSF 03.50315: MOVWF 070316: NOP0317: BCF 03.50318: BCF 07.30319: BCF 20.3031A: MOVF 20,W031B: BSF 03.5031C: MOVWF 07.................... I2C_Write(BAT_ADDR_R);031D: MOVLW AB031E: MOVWF 71031F: BCF 03.50320: CALL 18C.................... h=i2c_read(0);0321: CLRF 770322: CALL 2460323: MOVF 78,W0324: MOVWF 6F.................... i2c_stop();0325: BCF 20.40326: MOVF 20,W0327: BSF 03.50328: MOVWF 070329: NOP032A: BCF 03.5032B: BSF 20.3032C: MOVF 20,W032D: BSF 03.5032E: MOVWF 07032F: BCF 03.50330: BTFSS 07.30331: GOTO 3300332: NOP0333: GOTO 3340334: NOP0335: BSF 20.40336: MOVF 20,W0337: BSF 03.50338: MOVWF 070339: NOP........................................ return data = (((unsigned int16) h << 8) + l );033A: CLRF 72033B: BCF 03.5033C: MOVF 6F,W033D: MOVWF 71033E: MOVWF 72033F: CLRF 710340: MOVF 70,W0341: ADDWF 71,W0342: MOVWF 6D0343: MOVF 72,W0344: MOVWF 6E0345: BTFSC 03.00346: INCF 6E,F0347: MOVF 6D,W0348: MOVWF 780349: MOVF 6E,W034A: MOVWF 79.................... }034B: RETURN........................................ int16 batintT(void) //teplota baterie (pri vyrobnim nastaveni, je mozne zmenit na teplotu v IO.................... {.................... int16 data = cteniBAT(0x0C, 0x0D);.................... data = (data/10)-273;.................... return data;........................................ }........................................ int16 batNAP(void) //napeti baterie.................... {*0368: MOVLW 080369: MOVWF 6B036A: MOVLW 09036B: MOVWF 6C036C: CALL 28B036D: MOVF 79,W036E: MOVWF 6A036F: MOVF 78,W0370: MOVWF 69.................... int16 data = cteniBAT(0x08, 0x09);.................... return data;0371: MOVF 69,W0372: MOVWF 780373: MOVF 6A,W0374: MOVWF 79........................................ }0375: RETURN........................................ int16 batPROUD(void) //proud z nebo do baterie.................... {*034C: MOVLW 0A034D: MOVWF 6B034E: MOVLW 0B034F: MOVWF 6C0350: CALL 28B0351: MOVF 79,W0352: MOVWF 6A0353: MOVF 78,W0354: MOVWF 69.................... int16 data = cteniBAT(0x0A, 0x0B);.................... return data;0355: MOVF 69,W0356: MOVWF 780357: MOVF 6A,W0358: MOVWF 79........................................ }0359: RETURN........................................ int16 batKAPAKT(void) //zbyvajici kapacita.................... {.................... int16 data = cteniBAT(0x04, 0x05);.................... return data;........................................ }.................... int16 batKAPMAX(void) //max. kapacita.................... {.................... int16 data = cteniBAT(0x06, 0x07);.................... return data;........................................ }........................................ int16 batSTAV(void) //zbytek energie v baterii v %.................... {035A: MOVLW 02035B: MOVWF 6B035C: MOVLW 03035D: MOVWF 6C035E: CALL 28B035F: MOVF 79,W0360: MOVWF 6A0361: MOVF 78,W0362: MOVWF 69.................... int16 data = cteniBAT(0x02, 0x03);.................... return data;0363: MOVF 69,W0364: MOVWF 780365: MOVF 6A,W0366: MOVWF 79........................................ }0367: RETURN.................................................................................................... //BAT3 - pro pohyblivý panel - LION1CELLB-1.................... //BAT2 - pro fixní panel - LION1CELLB-2.................... //BAT1 - hlavní baterie - LION1CELLB-3.................... int16 bat1STAV,bat2STAV,bat3STAV; //zbyvajici eneregie akumulátoru v %.................... signed int16 bat1PROUD,bat2PROUD,bat3PROUD; //proud akumulatorem.................... int16 bat1NAP,bat2NAP,bat3NAP; //napeti akumulatoru.................... signed int16 bat1P,bat2P, bat3P; //vykon z nebo do akumulatoru........................................ //pro odeslání.................... signed int16 rozdil;.................... char baterka[40];............................................................ void batMODE(int d) //nastavi rele do prislusneho modu.................... {.................... switch (d) {*0088: MOVF 69,W0089: XORLW 01008A: BTFSC 03.2008B: GOTO 09C008C: XORLW 03008D: BTFSC 03.2008E: GOTO 0D0008F: XORLW 010090: BTFSC 03.20091: GOTO 0F40092: XORLW 070093: BTFSC 03.20094: GOTO 1180095: XORLW 010096: BTFSC 03.20097: GOTO 13C0098: XORLW 030099: BTFSC 03.2009A: GOTO 160009B: GOTO 183........................................ case 1: output_high(REL1_IN2); //pro mereni009C: BSF 03.5009D: BCF 08.7009E: BCF 03.5009F: BSF 08.7.................... output_high(REL2_IN1);00A0: BSF 03.500A1: BCF 06.200A2: BCF 03.500A3: BSF 06.2.................... output_high(REL3_IN2);00A4: BSF 03.500A5: BCF 05.100A6: BCF 03.500A7: BSF 05.1.................... output_high(REL4_IN2);00A8: BSF 03.500A9: BCF 05.300AA: BCF 03.500AB: BSF 05.3.................... delay_ms(100);00AC: MOVLW 6400AD: MOVWF 6A00AE: CALL 00A.................... output_low(REL1_IN1);00AF: BSF 03.500B0: BCF 08.600B1: BCF 03.500B2: BCF 08.6.................... output_low(REL1_IN2);00B3: BSF 03.500B4: BCF 08.700B5: BCF 03.500B6: BCF 08.7.................... output_low(REL2_IN1);00B7: BSF 03.500B8: BCF 06.200B9: BCF 03.500BA: BCF 06.2.................... output_low(REL2_IN2);00BB: BSF 03.500BC: BCF 06.300BD: BCF 03.500BE: BCF 06.3.................... output_low(REL3_IN1);00BF: BSF 03.500C0: BCF 05.000C1: BCF 03.500C2: BCF 05.0.................... output_low(REL3_IN2);00C3: BSF 03.500C4: BCF 05.100C5: BCF 03.500C6: BCF 05.1.................... output_low(REL4_IN1);00C7: BSF 03.500C8: BCF 05.200C9: BCF 03.500CA: BCF 05.2.................... output_low(REL4_IN2);00CB: BSF 03.500CC: BCF 05.300CD: BCF 03.500CE: BCF 05.3........................................ break;00CF: GOTO 18B........................................ case 2: output_high(REL1_IN2); //dobijeni Hl. clanku z bat300D0: BSF 03.500D1: BCF 08.700D2: BCF 03.500D3: BSF 08.7.................... output_high(REL2_IN1);00D4: BSF 03.500D5: BCF 06.200D6: BCF 03.500D7: BSF 06.2.................... output_high(REL3_IN1);00D8: BSF 03.500D9: BCF 05.000DA: BCF 03.500DB: BSF 05.0.................... output_high(REL4_IN2);00DC: BSF 03.500DD: BCF 05.300DE: BCF 03.500DF: BSF 05.3.................... delay_ms(100);00E0: MOVLW 6400E1: MOVWF 6A00E2: CALL 00A.................... output_low(REL1_IN2);00E3: BSF 03.500E4: BCF 08.700E5: BCF 03.500E6: BCF 08.7.................... output_low(REL2_IN1);00E7: BSF 03.500E8: BCF 06.200E9: BCF 03.500EA: BCF 06.2.................... output_low(REL3_IN1);00EB: BSF 03.500EC: BCF 05.000ED: BCF 03.500EE: BCF 05.0.................... output_low(REL4_IN2);00EF: BSF 03.500F0: BCF 05.300F1: BCF 03.500F2: BCF 05.3.................... break;00F3: GOTO 18B........................................ case 3: output_high(REL1_IN2); //dobijeni Hl. clanku z bat200F4: BSF 03.500F5: BCF 08.700F6: BCF 03.500F7: BSF 08.7.................... output_high(REL2_IN1);00F8: BSF 03.500F9: BCF 06.200FA: BCF 03.500FB: BSF 06.2.................... output_high(REL3_IN2);00FC: BSF 03.500FD: BCF 05.100FE: BCF 03.500FF: BSF 05.1.................... output_high(REL4_IN1);0100: BSF 03.50101: BCF 05.20102: BCF 03.50103: BSF 05.2.................... delay_ms(100);0104: MOVLW 640105: MOVWF 6A0106: CALL 00A.................... output_low(REL1_IN2);0107: BSF 03.50108: BCF 08.70109: BCF 03.5010A: BCF 08.7.................... output_low(REL2_IN1);010B: BSF 03.5010C: BCF 06.2010D: BCF 03.5010E: BCF 06.2.................... output_low(REL3_IN2);010F: BSF 03.50110: BCF 05.10111: BCF 03.50112: BCF 05.1.................... output_low(REL4_IN1);0113: BSF 03.50114: BCF 05.20115: BCF 03.50116: BCF 05.2........................................ break;0117: GOTO 18B........................................ case 4: output_high(REL1_IN1); //dobijeni Hl. clanku ze sol. clanku0118: BSF 03.50119: BCF 08.6011A: BCF 03.5011B: BSF 08.6.................... output_high(REL2_IN1);011C: BSF 03.5011D: BCF 06.2011E: BCF 03.5011F: BSF 06.2.................... output_high(REL3_IN2);0120: BSF 03.50121: BCF 05.10122: BCF 03.50123: BSF 05.1.................... output_high(REL4_IN2);0124: BSF 03.50125: BCF 05.30126: BCF 03.50127: BSF 05.3.................... delay_ms(100);0128: MOVLW 640129: MOVWF 6A012A: CALL 00A.................... output_low(REL1_IN1);012B: BSF 03.5012C: BCF 08.6012D: BCF 03.5012E: BCF 08.6.................... output_low(REL2_IN1);012F: BSF 03.50130: BCF 06.20131: BCF 03.50132: BCF 06.2.................... output_low(REL3_IN2);0133: BSF 03.50134: BCF 05.10135: BCF 03.50136: BCF 05.1.................... output_low(REL4_IN2);0137: BSF 03.50138: BCF 05.30139: BCF 03.5013A: BCF 05.3............................................................ break;013B: GOTO 18B.................... case 5: output_high(REL1_IN2); //vybijeni bat3 do R013C: BSF 03.5013D: BCF 08.7013E: BCF 03.5013F: BSF 08.7.................... output_high(REL2_IN2);0140: BSF 03.50141: BCF 06.30142: BCF 03.50143: BSF 06.3.................... output_high(REL3_IN1);0144: BSF 03.50145: BCF 05.00146: BCF 03.50147: BSF 05.0.................... output_high(REL4_IN2);0148: BSF 03.50149: BCF 05.3014A: BCF 03.5014B: BSF 05.3.................... delay_ms(100);014C: MOVLW 64014D: MOVWF 6A014E: CALL 00A.................... output_low(REL1_IN2);014F: BSF 03.50150: BCF 08.70151: BCF 03.50152: BCF 08.7.................... output_low(REL2_IN2);0153: BSF 03.50154: BCF 06.30155: BCF 03.50156: BCF 06.3.................... output_low(REL3_IN1);0157: BSF 03.50158: BCF 05.00159: BCF 03.5015A: BCF 05.0.................... output_low(REL4_IN2);015B: BSF 03.5015C: BCF 05.3015D: BCF 03.5015E: BCF 05.3........................................ break;015F: GOTO 18B........................................ case 6: output_high(REL1_IN2); //vybijeni bat2 do R0160: BSF 03.50161: BCF 08.70162: BCF 03.50163: BSF 08.7.................... output_high(REL2_IN2);0164: BSF 03.50165: BCF 06.30166: BCF 03.50167: BSF 06.3.................... output_high(REL3_IN2);0168: BSF 03.50169: BCF 05.1016A: BCF 03.5016B: BSF 05.1.................... output_high(REL4_IN1);016C: BSF 03.5016D: BCF 05.2016E: BCF 03.5016F: BSF 05.2.................... delay_ms(100);0170: MOVLW 640171: MOVWF 6A0172: CALL 00A.................... output_low(REL1_IN2);0173: BSF 03.50174: BCF 08.70175: BCF 03.50176: BCF 08.7.................... output_low(REL2_IN2);0177: BSF 03.50178: BCF 06.30179: BCF 03.5017A: BCF 06.3.................... output_low(REL3_IN2);017B: BSF 03.5017C: BCF 05.1017D: BCF 03.5017E: BCF 05.1.................... output_low(REL4_IN1);017F: BSF 03.50180: BCF 05.20181: BCF 03.50182: BCF 05.2........................................ default:printf("chyba");0183: MOVLW 040184: BSF 03.60185: MOVWF 0D0186: MOVLW 000187: MOVWF 0F0188: BCF 03.60189: CALL 042........................................ break; }018A: GOTO 18B............................................................ }018B: RETURN............................................................ void setHUB(int d) //vstupuje 1-8.................... //hodnota udava jaky port bude pripojen na master I2C.................... //zde je nastaveno propojeni jen jedne brany, je mozne propojit i vice bran naraz.................... {.................... switch (d) {*01D6: MOVF 69,W01D7: XORLW 0101D8: BTFSC 03.201D9: GOTO 1F001DA: XORLW 0301DB: BTFSC 03.201DC: GOTO 1F301DD: XORLW 0101DE: BTFSC 03.201DF: GOTO 1F601E0: XORLW 0701E1: BTFSC 03.201E2: GOTO 1F901E3: XORLW 0101E4: BTFSC 03.201E5: GOTO 1FC01E6: XORLW 0301E7: BTFSC 03.201E8: GOTO 1FF01E9: XORLW 0101EA: BTFSC 03.201EB: GOTO 20201EC: XORLW 0F01ED: BTFSC 03.201EE: GOTO 20501EF: GOTO 208........................................ case 1: d=0x01;01F0: MOVLW 0101F1: MOVWF 69........................................ break;01F2: GOTO 210........................................ case 2: d=0x02;01F3: MOVLW 0201F4: MOVWF 69........................................ break;01F5: GOTO 210........................................ case 3: d=0x04;01F6: MOVLW 0401F7: MOVWF 69........................................ break;01F8: GOTO 210........................................ case 4: d=0x08;01F9: MOVLW 0801FA: MOVWF 69........................................ break;01FB: GOTO 210.................... case 5: d=0x10;01FC: MOVLW 1001FD: MOVWF 69........................................ break;01FE: GOTO 210........................................ case 6: d=0x20;01FF: MOVLW 200200: MOVWF 69........................................ break;0201: GOTO 210.................... case 7: d=0x40;0202: MOVLW 400203: MOVWF 69........................................ break;0204: GOTO 210........................................ case 8: d=0x80;0205: MOVLW 800206: MOVWF 69........................................ break;0207: GOTO 210........................................ default:printf("chyba");0208: MOVLW 070209: BSF 03.6020A: MOVWF 0D020B: MOVLW 00020C: MOVWF 0F020D: BCF 03.6020E: CALL 042........................................ break; }020F: GOTO 210........................................ i2c_start();0210: BSF 20.40211: MOVF 20,W0212: BSF 03.50213: MOVWF 070214: NOP0215: BCF 03.50216: BSF 20.30217: MOVF 20,W0218: BSF 03.50219: MOVWF 07021A: NOP021B: BCF 03.5021C: BCF 07.4021D: BCF 20.4021E: MOVF 20,W021F: BSF 03.50220: MOVWF 070221: NOP0222: BCF 03.50223: BCF 07.30224: BCF 20.30225: MOVF 20,W0226: BSF 03.50227: MOVWF 07.................... I2C_Write(0xE0);0228: MOVLW E00229: MOVWF 71022A: BCF 03.5022B: CALL 18C........................................ I2C_write(d);022C: MOVF 69,W022D: MOVWF 71022E: CALL 18C.................... i2c_stop();022F: BCF 20.40230: MOVF 20,W0231: BSF 03.50232: MOVWF 070233: NOP0234: BCF 03.50235: BSF 20.30236: MOVF 20,W0237: BSF 03.50238: MOVWF 070239: BCF 03.5023A: BTFSS 07.3023B: GOTO 23A023C: NOP023D: GOTO 23E023E: NOP023F: BSF 20.40240: MOVF 20,W0241: BSF 03.50242: MOVWF 070243: NOP........................................ }0244: BCF 03.50245: RETURN........................................ //nacitani potrebnych informaci z modulu s baterii.................... void batdata(void).................... {.................... setHUB(1);*053C: MOVLW 01053D: MOVWF 69053E: CALL 1D6.................... bat1PROUD=batPROUD();053F: CALL 34C0540: MOVF 79,W0541: MOVWF 280542: MOVF 78,W0543: MOVWF 27.................... bat1STAV=batSTAV();0544: CALL 35A0545: MOVF 79,W0546: MOVWF 220547: MOVF 78,W0548: MOVWF 21.................... bat1NAP=batNAP();0549: CALL 368054A: MOVF 79,W054B: MOVWF 2E054C: MOVF 78,W054D: MOVWF 2D.................... setHUB(2);054E: MOVLW 02054F: MOVWF 690550: CALL 1D6.................... bat2PROUD=batPROUD();0551: CALL 34C0552: MOVF 79,W0553: MOVWF 2A0554: MOVF 78,W0555: MOVWF 29.................... bat2STAV=batSTAV();0556: CALL 35A0557: MOVF 79,W0558: MOVWF 240559: MOVF 78,W055A: MOVWF 23.................... bat2NAP=batNAP();055B: CALL 368055C: MOVF 79,W055D: MOVWF 30055E: MOVF 78,W055F: MOVWF 2F.................... setHUB(3);0560: MOVLW 030561: MOVWF 690562: CALL 1D6.................... bat3PROUD=batPROUD();0563: CALL 34C0564: MOVF 79,W0565: MOVWF 2C0566: MOVF 78,W0567: MOVWF 2B.................... bat3STAV=batSTAV();0568: CALL 35A0569: MOVF 79,W056A: MOVWF 26056B: MOVF 78,W056C: MOVWF 25.................... bat3NAP=batNAP();056D: CALL 368056E: MOVF 79,W056F: MOVWF 320570: MOVF 78,W0571: MOVWF 31........................................ bat1P=(bat1PROUD*(((float)bat1NAP/1000)));0572: MOVF 2E,W0573: MOVWF 6A0574: MOVF 2D,W0575: MOVWF 690576: CALL 3760577: MOVF 77,W0578: MOVWF 690579: MOVF 78,W057A: MOVWF 6A057B: MOVF 79,W057C: MOVWF 6B057D: MOVF 7A,W057E: MOVWF 6C057F: MOVWF 700580: MOVF 79,W0581: MOVWF 6F0582: MOVF 78,W0583: MOVWF 6E0584: MOVF 77,W0585: MOVWF 6D0586: CLRF 740587: CLRF 730588: MOVLW 7A0589: MOVWF 72058A: MOVLW 88058B: MOVWF 71058C: CALL 393058D: MOVF 28,W058E: MOVWF 6A058F: MOVF 27,W0590: MOVWF 690591: MOVF 77,W0592: MOVWF 6B0593: MOVF 78,W0594: MOVWF 6C0595: MOVF 79,W0596: MOVWF 6D0597: MOVF 7A,W0598: MOVWF 6E0599: MOVF 28,W059A: MOVWF 70059B: MOVF 27,W059C: MOVWF 6F059D: CALL 472059E: MOVF 7A,W059F: MOVWF 7205A0: MOVF 79,W05A1: MOVWF 7105A2: MOVF 78,W05A3: MOVWF 7005A4: MOVF 77,W05A5: MOVWF 6F05A6: MOVF 6E,W05A7: MOVWF 7605A8: MOVF 6D,W05A9: MOVWF 7505AA: MOVF 6C,W05AB: MOVWF 7405AC: MOVF 6B,W05AD: MOVWF 7305AE: CALL 49705AF: MOVF 7A,W05B0: MOVWF 7205B1: MOVF 79,W05B2: MOVWF 7105B3: MOVF 78,W05B4: MOVWF 7005B5: MOVF 77,W05B6: MOVWF 6F05B7: CALL 51D05B8: MOVF 79,W05B9: MOVWF 3405BA: MOVF 78,W05BB: MOVWF 33.................... bat2P=(bat2PROUD*(((float)bat2NAP/1000)));05BC: MOVF 30,W05BD: MOVWF 6A05BE: MOVF 2F,W05BF: MOVWF 6905C0: CALL 37605C1: MOVF 77,W05C2: MOVWF 6905C3: MOVF 78,W05C4: MOVWF 6A05C5: MOVF 79,W05C6: MOVWF 6B05C7: MOVF 7A,W05C8: MOVWF 6C05C9: MOVWF 7005CA: MOVF 79,W05CB: MOVWF 6F05CC: MOVF 78,W05CD: MOVWF 6E05CE: MOVF 77,W05CF: MOVWF 6D05D0: CLRF 7405D1: CLRF 7305D2: MOVLW 7A05D3: MOVWF 7205D4: MOVLW 8805D5: MOVWF 7105D6: CALL 39305D7: MOVF 2A,W05D8: MOVWF 6A05D9: MOVF 29,W05DA: MOVWF 6905DB: MOVF 77,W05DC: MOVWF 6B05DD: MOVF 78,W05DE: MOVWF 6C05DF: MOVF 79,W05E0: MOVWF 6D05E1: MOVF 7A,W05E2: MOVWF 6E05E3: MOVF 2A,W05E4: MOVWF 7005E5: MOVF 29,W05E6: MOVWF 6F05E7: CALL 47205E8: MOVF 7A,W05E9: MOVWF 7205EA: MOVF 79,W05EB: MOVWF 7105EC: MOVF 78,W05ED: MOVWF 7005EE: MOVF 77,W05EF: MOVWF 6F05F0: MOVF 6E,W05F1: MOVWF 7605F2: MOVF 6D,W05F3: MOVWF 7505F4: MOVF 6C,W05F5: MOVWF 7405F6: MOVF 6B,W05F7: MOVWF 7305F8: CALL 49705F9: MOVF 7A,W05FA: MOVWF 7205FB: MOVF 79,W05FC: MOVWF 7105FD: MOVF 78,W05FE: MOVWF 7005FF: MOVF 77,W0600: MOVWF 6F0601: CALL 51D0602: MOVF 79,W0603: MOVWF 360604: MOVF 78,W0605: MOVWF 35.................... bat3P=(bat3PROUD*(((float)bat3NAP/1000)));0606: MOVF 32,W0607: MOVWF 6A0608: MOVF 31,W0609: MOVWF 69060A: CALL 376060B: MOVF 77,W060C: MOVWF 69060D: MOVF 78,W060E: MOVWF 6A060F: MOVF 79,W0610: MOVWF 6B0611: MOVF 7A,W0612: MOVWF 6C0613: MOVWF 700614: MOVF 79,W0615: MOVWF 6F0616: MOVF 78,W0617: MOVWF 6E0618: MOVF 77,W0619: MOVWF 6D061A: CLRF 74061B: CLRF 73061C: MOVLW 7A061D: MOVWF 72061E: MOVLW 88061F: MOVWF 710620: CALL 3930621: MOVF 2C,W0622: MOVWF 6A0623: MOVF 2B,W0624: MOVWF 690625: MOVF 77,W0626: MOVWF 6B0627: MOVF 78,W0628: MOVWF 6C0629: MOVF 79,W062A: MOVWF 6D062B: MOVF 7A,W062C: MOVWF 6E062D: MOVF 2C,W062E: MOVWF 70062F: MOVF 2B,W0630: MOVWF 6F0631: CALL 4720632: MOVF 7A,W0633: MOVWF 720634: MOVF 79,W0635: MOVWF 710636: MOVF 78,W0637: MOVWF 700638: MOVF 77,W0639: MOVWF 6F063A: MOVF 6E,W063B: MOVWF 76063C: MOVF 6D,W063D: MOVWF 75063E: MOVF 6C,W063F: MOVWF 740640: MOVF 6B,W0641: MOVWF 730642: CALL 4970643: MOVF 7A,W0644: MOVWF 720645: MOVF 79,W0646: MOVWF 710647: MOVF 78,W0648: MOVWF 700649: MOVF 77,W064A: MOVWF 6F064B: CALL 51D064C: MOVF 79,W064D: MOVWF 38064E: MOVF 78,W064F: MOVWF 37.................... }0650: RETURN............................................................ void main().................... {*095B: CLRF 04095C: BCF 03.7095D: MOVLW 1F095E: ANDWF 03,F095F: MOVLW 710960: BSF 03.50961: MOVWF 0F0962: MOVF 0F,W0963: BCF 03.50964: BCF 20.70965: MOVF 20,W0966: BSF 03.50967: MOVWF 070968: BCF 03.50969: BSF 07.7096A: BSF 03.5096B: BSF 03.6096C: MOVF 09,W096D: ANDLW C0096E: MOVWF 09096F: BCF 03.60970: BCF 1F.40971: BCF 1F.50972: MOVLW 000973: BSF 03.60974: MOVWF 080975: BCF 03.50976: CLRF 070977: CLRF 080978: CLRF 09.................... batMODE(1);*097E: MOVLW 01097F: MOVWF 690980: BCF 0A.30981: CALL 0880982: BSF 0A.3.................... float vypocet;........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);0983: BSF 03.50984: BSF 03.60985: MOVF 09,W0986: ANDLW C00987: MOVWF 090988: BCF 03.60989: BCF 1F.4098A: BCF 1F.5098B: MOVLW 00098C: BSF 03.6098D: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);098E: BCF 03.5098F: BCF 03.60990: BCF 1F.60991: BCF 1F.70992: BSF 03.50993: BCF 1F.70994: BCF 03.50995: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);0996: BCF 14.50997: BCF 20.50998: MOVF 20,W0999: BSF 03.5099A: MOVWF 07099B: BCF 03.5099C: BSF 20.4099D: MOVF 20,W099E: BSF 03.5099F: MOVWF 0709A0: BCF 03.509A1: BCF 20.309A2: MOVF 20,W09A3: BSF 03.509A4: MOVWF 0709A5: MOVLW 0109A6: BCF 03.509A7: MOVWF 1409A8: MOVLW 0009A9: BSF 03.509AA: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);09AB: MOVF 01,W09AC: ANDLW C709AD: IORLW 0809AE: MOVWF 01.................... setup_timer_1(T1_DISABLED);09AF: BCF 03.509B0: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);09B1: MOVLW 0009B2: MOVWF 7809B3: MOVWF 1209B4: MOVLW 0009B5: BSF 03.509B6: MOVWF 12.................... setup_ccp1(CCP_OFF);09B7: BCF 03.509B8: BSF 20.209B9: MOVF 20,W09BA: BSF 03.509BB: MOVWF 0709BC: BCF 03.509BD: CLRF 1709BE: BSF 03.509BF: CLRF 1B09C0: CLRF 1C09C1: MOVLW 0109C2: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard09C3: BCF 03.509C4: BSF 03.609C5: CLRF 0709C6: CLRF 0809C7: CLRF 09........................................ batMODE(1);09C8: BCF 03.609C9: MOVWF 6909CA: BCF 0A.309CB: CALL 08809CC: BSF 0A.3............................................................ //printf("STAV1 STAV2 STAV3 VYKON1 VYKON2 VYKON3\r\n");.................... while(TRUE).................... {........................................ batdata();09CD: BCF 0A.309CE: CALL 53C09CF: BSF 0A.3.................... //nastane pri nedostatku energie v hl. akumulátoru.................... while(bat1STAV<20).................... {09D0: MOVF 22,F09D1: BTFSS 03.209D2: GOTO 26C09D3: MOVF 21,W09D4: SUBLW 1309D5: BTFSS 03.009D6: GOTO 26C.................... //printf("nedostatek energie\r\n");.................... if(bat2STAV>10)09D7: MOVF 24,F09D8: BTFSS 03.209D9: GOTO 1DE09DA: MOVF 23,W09DB: SUBLW 0A09DC: BTFSC 03.009DD: GOTO 1E4.................... {.................... batMODE(3);09DE: MOVLW 0309DF: MOVWF 6909E0: BCF 0A.309E1: CALL 08809E2: BSF 0A.3.................... }.................... else09E3: GOTO 1F6.................... {.................... if(bat3STAV>10)09E4: MOVF 26,F09E5: BTFSS 03.209E6: GOTO 1EB09E7: MOVF 25,W09E8: SUBLW 0A09E9: BTFSC 03.009EA: GOTO 1F1.................... {.................... batMODE(2);09EB: MOVLW 0209EC: MOVWF 6909ED: BCF 0A.309EE: CALL 08809EF: BSF 0A.3.................... }.................... else09F0: GOTO 1F6.................... {.................... batMODE(4);09F1: MOVLW 0409F2: MOVWF 6909F3: BCF 0A.309F4: CALL 08809F5: BSF 0A.3.................... }.................... }.................... batdata();09F6: BCF 0A.309F7: CALL 53C09F8: BSF 0A.3.................... sprintf(baterka, " %3.0Ld %3.0Ld %3.0Ld %5.0Ld %5.0Ld %5.0Ld %5.0Ld", bat1STAV, bat2STAV, bat3STAV, bat1P, bat2P, bat3P, 0);09F9: CLRF 6409FA: MOVLW 3B09FB: MOVWF 6309FC: MOVLW 2009FD: MOVWF 7209FE: BCF 0A.309FF: CALL 6510A00: BSF 0A.30A01: MOVLW 030A02: MOVWF 040A03: MOVF 22,W0A04: MOVWF 6A0A05: MOVF 21,W0A06: MOVWF 690A07: BCF 0A.30A08: CALL 65E0A09: BSF 0A.30A0A: MOVLW 200A0B: MOVWF 720A0C: BCF 0A.30A0D: CALL 6510A0E: BSF 0A.30A0F: MOVLW 030A10: MOVWF 040A11: MOVF 24,W0A12: MOVWF 6A0A13: MOVF 23,W0A14: MOVWF 690A15: BCF 0A.30A16: CALL 65E0A17: BSF 0A.30A18: MOVLW 200A19: MOVWF 720A1A: BCF 0A.30A1B: CALL 6510A1C: BSF 0A.30A1D: MOVLW 030A1E: MOVWF 040A1F: MOVF 26,W0A20: MOVWF 6A0A21: MOVF 25,W0A22: MOVWF 690A23: BCF 0A.30A24: CALL 65E0A25: BSF 0A.30A26: MOVLW 200A27: MOVWF 720A28: BCF 0A.30A29: CALL 6510A2A: BSF 0A.30A2B: MOVLW 010A2C: MOVWF 040A2D: MOVF 34,W0A2E: MOVWF 6A0A2F: MOVF 33,W0A30: MOVWF 690A31: BCF 0A.30A32: CALL 65E0A33: BSF 0A.30A34: MOVLW 200A35: MOVWF 720A36: BCF 0A.30A37: CALL 6510A38: BSF 0A.30A39: MOVLW 010A3A: MOVWF 040A3B: MOVF 36,W0A3C: MOVWF 6A0A3D: MOVF 35,W0A3E: MOVWF 690A3F: BCF 0A.30A40: CALL 65E0A41: BSF 0A.30A42: MOVLW 200A43: MOVWF 720A44: BCF 0A.30A45: CALL 6510A46: BSF 0A.30A47: MOVLW 010A48: MOVWF 040A49: MOVF 38,W0A4A: MOVWF 6A0A4B: MOVF 37,W0A4C: MOVWF 690A4D: BCF 0A.30A4E: CALL 65E0A4F: BSF 0A.30A50: MOVLW 200A51: MOVWF 720A52: BCF 0A.30A53: CALL 6510A54: BSF 0A.30A55: MOVLW 010A56: MOVWF 040A57: CLRF 6A0A58: CLRF 690A59: BCF 0A.30A5A: CALL 65E0A5B: BSF 0A.3.................... printf(baterka);0A5C: MOVLW 3B0A5D: MOVWF 040A5E: BCF 03.70A5F: BCF 0A.30A60: CALL 6DE0A61: BSF 0A.3.................... delay_ms(5000);0A62: MOVLW 140A63: MOVWF 690A64: MOVLW FA0A65: MOVWF 6A0A66: BCF 0A.30A67: CALL 00A0A68: BSF 0A.30A69: DECFSZ 69,F0A6A: GOTO 264.................... }0A6B: GOTO 1D0........................................ //osetreni proti prebiti clanku.................... while(bat2STAV>96).................... {0A6C: MOVF 24,F0A6D: BTFSS 03.20A6E: GOTO 2730A6F: MOVF 23,W0A70: SUBLW 600A71: BTFSC 03.00A72: GOTO 301.................... //printf("bat2 prebita");.................... if(bat1STAV>98)0A73: MOVF 22,F0A74: BTFSS 03.20A75: GOTO 27A0A76: MOVF 21,W0A77: SUBLW 620A78: BTFSC 03.00A79: GOTO 280.................... {.................... batMODE(6); //vybijeni do rezistoru0A7A: MOVLW 060A7B: MOVWF 690A7C: BCF 0A.30A7D: CALL 0880A7E: BSF 0A.3.................... }.................... else0A7F: GOTO 285.................... {.................... batMODE(3); //nabijeni hl. akumulatoru0A80: MOVLW 030A81: MOVWF 690A82: BCF 0A.30A83: CALL 0880A84: BSF 0A.3.................... }........................................ batdata();0A85: BCF 0A.30A86: CALL 53C0A87: BSF 0A.3.................... sprintf(baterka, " %3.0Ld %3.0Ld %3.0Ld %5.0Ld %5.0Ld %5.0Ld %5.0Ld", bat1STAV, bat2STAV, bat3STAV, bat1P, bat2P, bat3P, 0);0A88: CLRF 640A89: MOVLW 3B0A8A: MOVWF 630A8B: MOVLW 200A8C: MOVWF 720A8D: BCF 0A.30A8E: CALL 6510A8F: BSF 0A.30A90: MOVLW 030A91: MOVWF 040A92: MOVF 22,W0A93: MOVWF 6A0A94: MOVF 21,W0A95: MOVWF 690A96: BCF 0A.30A97: CALL 65E0A98: BSF 0A.30A99: MOVLW 200A9A: MOVWF 720A9B: BCF 0A.30A9C: CALL 6510A9D: BSF 0A.30A9E: MOVLW 030A9F: MOVWF 040AA0: MOVF 24,W0AA1: MOVWF 6A0AA2: MOVF 23,W0AA3: MOVWF 690AA4: BCF 0A.30AA5: CALL 65E0AA6: BSF 0A.30AA7: MOVLW 200AA8: MOVWF 720AA9: BCF 0A.30AAA: CALL 6510AAB: BSF 0A.30AAC: MOVLW 030AAD: MOVWF 040AAE: MOVF 26,W0AAF: MOVWF 6A0AB0: MOVF 25,W0AB1: MOVWF 690AB2: BCF 0A.30AB3: CALL 65E0AB4: BSF 0A.30AB5: MOVLW 200AB6: MOVWF 720AB7: BCF 0A.30AB8: CALL 6510AB9: BSF 0A.30ABA: MOVLW 010ABB: MOVWF 040ABC: MOVF 34,W0ABD: MOVWF 6A0ABE: MOVF 33,W0ABF: MOVWF 690AC0: BCF 0A.30AC1: CALL 65E0AC2: BSF 0A.30AC3: MOVLW 200AC4: MOVWF 720AC5: BCF 0A.30AC6: CALL 6510AC7: BSF 0A.30AC8: MOVLW 010AC9: MOVWF 040ACA: MOVF 36,W0ACB: MOVWF 6A0ACC: MOVF 35,W0ACD: MOVWF 690ACE: BCF 0A.30ACF: CALL 65E0AD0: BSF 0A.30AD1: MOVLW 200AD2: MOVWF 720AD3: BCF 0A.30AD4: CALL 6510AD5: BSF 0A.30AD6: MOVLW 010AD7: MOVWF 040AD8: MOVF 38,W0AD9: MOVWF 6A0ADA: MOVF 37,W0ADB: MOVWF 690ADC: BCF 0A.30ADD: CALL 65E0ADE: BSF 0A.30ADF: MOVLW 200AE0: MOVWF 720AE1: BCF 0A.30AE2: CALL 6510AE3: BSF 0A.30AE4: MOVLW 010AE5: MOVWF 040AE6: CLRF 6A0AE7: CLRF 690AE8: BCF 0A.30AE9: CALL 65E0AEA: BSF 0A.3.................... printf(baterka);0AEB: MOVLW 3B0AEC: MOVWF 040AED: BCF 03.70AEE: BCF 0A.30AEF: CALL 6DE0AF0: BSF 0A.3.................... bat2STAV=bat2STAV-2;0AF1: MOVLW 020AF2: SUBWF 23,F0AF3: MOVLW 000AF4: BTFSS 03.00AF5: MOVLW 010AF6: SUBWF 24,F.................... delay_ms(5000);0AF7: MOVLW 140AF8: MOVWF 690AF9: MOVLW FA0AFA: MOVWF 6A0AFB: BCF 0A.30AFC: CALL 00A0AFD: BSF 0A.30AFE: DECFSZ 69,F0AFF: GOTO 2F9.................... }0B00: GOTO 26C........................................ while(bat3STAV>96).................... {0B01: MOVF 26,F0B02: BTFSS 03.20B03: GOTO 3080B04: MOVF 25,W0B05: SUBLW 600B06: BTFSC 03.00B07: GOTO 396.................... //printf("bat3 prebyta\r\n");.................... if(bat1STAV>98)0B08: MOVF 22,F0B09: BTFSS 03.20B0A: GOTO 30F0B0B: MOVF 21,W0B0C: SUBLW 620B0D: BTFSC 03.00B0E: GOTO 315.................... {.................... batMODE(5); //vybijeni do rezistoru0B0F: MOVLW 050B10: MOVWF 690B11: BCF 0A.30B12: CALL 0880B13: BSF 0A.3.................... }.................... else0B14: GOTO 31A.................... {.................... batMODE(2); //vybijeni do hl. akumulatoru0B15: MOVLW 020B16: MOVWF 690B17: BCF 0A.30B18: CALL 0880B19: BSF 0A.3.................... }........................................ batdata();0B1A: BCF 0A.30B1B: CALL 53C0B1C: BSF 0A.3.................... sprintf(baterka, " %3.0Ld %3.0Ld %3.0Ld %5.0Ld %5.0Ld %5.0Ld %5.0Ld", bat1STAV, bat2STAV, bat3STAV, bat1P, bat2P, bat3P, 0);0B1D: CLRF 640B1E: MOVLW 3B0B1F: MOVWF 630B20: MOVLW 200B21: MOVWF 720B22: BCF 0A.30B23: CALL 6510B24: BSF 0A.30B25: MOVLW 030B26: MOVWF 040B27: MOVF 22,W0B28: MOVWF 6A0B29: MOVF 21,W0B2A: MOVWF 690B2B: BCF 0A.30B2C: CALL 65E0B2D: BSF 0A.30B2E: MOVLW 200B2F: MOVWF 720B30: BCF 0A.30B31: CALL 6510B32: BSF 0A.30B33: MOVLW 030B34: MOVWF 040B35: MOVF 24,W0B36: MOVWF 6A0B37: MOVF 23,W0B38: MOVWF 690B39: BCF 0A.30B3A: CALL 65E0B3B: BSF 0A.30B3C: MOVLW 200B3D: MOVWF 720B3E: BCF 0A.30B3F: CALL 6510B40: BSF 0A.30B41: MOVLW 030B42: MOVWF 040B43: MOVF 26,W0B44: MOVWF 6A0B45: MOVF 25,W0B46: MOVWF 690B47: BCF 0A.30B48: CALL 65E0B49: BSF 0A.30B4A: MOVLW 200B4B: MOVWF 720B4C: BCF 0A.30B4D: CALL 6510B4E: BSF 0A.30B4F: MOVLW 010B50: MOVWF 040B51: MOVF 34,W0B52: MOVWF 6A0B53: MOVF 33,W0B54: MOVWF 690B55: BCF 0A.30B56: CALL 65E0B57: BSF 0A.30B58: MOVLW 200B59: MOVWF 720B5A: BCF 0A.30B5B: CALL 6510B5C: BSF 0A.30B5D: MOVLW 010B5E: MOVWF 040B5F: MOVF 36,W0B60: MOVWF 6A0B61: MOVF 35,W0B62: MOVWF 690B63: BCF 0A.30B64: CALL 65E0B65: BSF 0A.30B66: MOVLW 200B67: MOVWF 720B68: BCF 0A.30B69: CALL 6510B6A: BSF 0A.30B6B: MOVLW 010B6C: MOVWF 040B6D: MOVF 38,W0B6E: MOVWF 6A0B6F: MOVF 37,W0B70: MOVWF 690B71: BCF 0A.30B72: CALL 65E0B73: BSF 0A.30B74: MOVLW 200B75: MOVWF 720B76: BCF 0A.30B77: CALL 6510B78: BSF 0A.30B79: MOVLW 010B7A: MOVWF 040B7B: CLRF 6A0B7C: CLRF 690B7D: BCF 0A.30B7E: CALL 65E0B7F: BSF 0A.3.................... printf(baterka);0B80: MOVLW 3B0B81: MOVWF 040B82: BCF 03.70B83: BCF 0A.30B84: CALL 6DE0B85: BSF 0A.3.................... bat3STAV=bat3STAV-2;0B86: MOVLW 020B87: SUBWF 25,F0B88: MOVLW 000B89: BTFSS 03.00B8A: MOVLW 010B8B: SUBWF 26,F.................... delay_ms(5000);0B8C: MOVLW 140B8D: MOVWF 690B8E: MOVLW FA0B8F: MOVWF 6A0B90: BCF 0A.30B91: CALL 00A0B92: BSF 0A.30B93: DECFSZ 69,F0B94: GOTO 38E.................... }0B95: GOTO 301........................................ while(input(NOC)==1) //nastane pri zapadu Slunce.................... {0B96: BSF 03.50B97: BSF 06.10B98: BCF 03.50B99: BTFSS 06.10B9A: GOTO 45D.................... //printf("noc\r\n");.................... batdata();0B9B: BCF 0A.30B9C: CALL 53C0B9D: BSF 0A.3........................................ if(bat1STAV<98) //dobiti hl. akumulatoru0B9E: MOVF 22,F0B9F: BTFSS 03.20BA0: GOTO 3C80BA1: MOVF 21,W0BA2: SUBLW 610BA3: BTFSS 03.00BA4: GOTO 3C8.................... {........................................ if(bat2STAV>20)0BA5: MOVF 24,F0BA6: BTFSS 03.20BA7: GOTO 3AC0BA8: MOVF 23,W0BA9: SUBLW 140BAA: BTFSC 03.00BAB: GOTO 3B2.................... {.................... batMODE(3);0BAC: MOVLW 030BAD: MOVWF 690BAE: BCF 0A.30BAF: CALL 0880BB0: BSF 0A.3.................... }.................... else0BB1: GOTO 3C4.................... {........................................ if(bat3STAV>20)0BB2: MOVF 26,F0BB3: BTFSS 03.20BB4: GOTO 3B90BB5: MOVF 25,W0BB6: SUBLW 140BB7: BTFSC 03.00BB8: GOTO 3BF.................... {.................... batMODE(2);0BB9: MOVLW 020BBA: MOVWF 690BBB: BCF 0A.30BBC: CALL 0880BBD: BSF 0A.3.................... }.................... else0BBE: GOTO 3C4.................... {.................... batMODE(1);0BBF: MOVLW 010BC0: MOVWF 690BC1: BCF 0A.30BC2: CALL 0880BC3: BSF 0A.3.................... }........................................ }.................... batdata();0BC4: BCF 0A.30BC5: CALL 53C0BC6: BSF 0A.3.................... }.................... else //prebitecna energie do rezistoru0BC7: GOTO 3E7.................... {.................... if(bat2STAV>20)0BC8: MOVF 24,F0BC9: BTFSS 03.20BCA: GOTO 3CF0BCB: MOVF 23,W0BCC: SUBLW 140BCD: BTFSC 03.00BCE: GOTO 3D5.................... {.................... batMODE(6);0BCF: MOVLW 060BD0: MOVWF 690BD1: BCF 0A.30BD2: CALL 0880BD3: BSF 0A.3.................... }.................... else0BD4: GOTO 3E7.................... {.................... if(bat3STAV>20)0BD5: MOVF 26,F0BD6: BTFSS 03.20BD7: GOTO 3DC0BD8: MOVF 25,W0BD9: SUBLW 140BDA: BTFSC 03.00BDB: GOTO 3E2.................... {.................... batMODE(5);0BDC: MOVLW 050BDD: MOVWF 690BDE: BCF 0A.30BDF: CALL 0880BE0: BSF 0A.3.................... }.................... else0BE1: GOTO 3E7.................... {.................... batMODE(1);0BE2: MOVLW 010BE3: MOVWF 690BE4: BCF 0A.30BE5: CALL 0880BE6: BSF 0A.3.................... }.................... }.................... }........................................ batdata();0BE7: BCF 0A.30BE8: CALL 53C0BE9: BSF 0A.3.................... sprintf(baterka, " %3.0Ld %3.0Ld %3.0Ld %5.0Ld %5.0Ld %5.0Ld %5.0Ld", bat1STAV, bat2STAV, bat3STAV, bat1P, bat2P, bat3P, 0);0BEA: CLRF 640BEB: MOVLW 3B0BEC: MOVWF 630BED: MOVLW 200BEE: MOVWF 720BEF: BCF 0A.30BF0: CALL 6510BF1: BSF 0A.30BF2: MOVLW 030BF3: MOVWF 040BF4: MOVF 22,W0BF5: MOVWF 6A0BF6: MOVF 21,W0BF7: MOVWF 690BF8: BCF 0A.30BF9: CALL 65E0BFA: BSF 0A.30BFB: MOVLW 200BFC: MOVWF 720BFD: BCF 0A.30BFE: CALL 6510BFF: BSF 0A.30C00: MOVLW 030C01: MOVWF 040C02: MOVF 24,W0C03: MOVWF 6A0C04: MOVF 23,W0C05: MOVWF 690C06: BCF 0A.30C07: CALL 65E0C08: BSF 0A.30C09: MOVLW 200C0A: MOVWF 720C0B: BCF 0A.30C0C: CALL 6510C0D: BSF 0A.30C0E: MOVLW 030C0F: MOVWF 040C10: MOVF 26,W0C11: MOVWF 6A0C12: MOVF 25,W0C13: MOVWF 690C14: BCF 0A.30C15: CALL 65E0C16: BSF 0A.30C17: MOVLW 200C18: MOVWF 720C19: BCF 0A.30C1A: CALL 6510C1B: BSF 0A.30C1C: MOVLW 010C1D: MOVWF 040C1E: MOVF 34,W0C1F: MOVWF 6A0C20: MOVF 33,W0C21: MOVWF 690C22: BCF 0A.30C23: CALL 65E0C24: BSF 0A.30C25: MOVLW 200C26: MOVWF 720C27: BCF 0A.30C28: CALL 6510C29: BSF 0A.30C2A: MOVLW 010C2B: MOVWF 040C2C: MOVF 36,W0C2D: MOVWF 6A0C2E: MOVF 35,W0C2F: MOVWF 690C30: BCF 0A.30C31: CALL 65E0C32: BSF 0A.30C33: MOVLW 200C34: MOVWF 720C35: BCF 0A.30C36: CALL 6510C37: BSF 0A.30C38: MOVLW 010C39: MOVWF 040C3A: MOVF 38,W0C3B: MOVWF 6A0C3C: MOVF 37,W0C3D: MOVWF 690C3E: BCF 0A.30C3F: CALL 65E0C40: BSF 0A.30C41: MOVLW 200C42: MOVWF 720C43: BCF 0A.30C44: CALL 6510C45: BSF 0A.30C46: MOVLW 010C47: MOVWF 040C48: CLRF 6A0C49: CLRF 690C4A: BCF 0A.30C4B: CALL 65E0C4C: BSF 0A.3.................... //sprintf(baterka, "%Ld %Ld %Ld 0 0 0 0" bat1STAV, bat2STAV, bat3STAV);.................... printf(baterka);0C4D: MOVLW 3B0C4E: MOVWF 040C4F: BCF 03.70C50: BCF 0A.30C51: CALL 6DE0C52: BSF 0A.3.................... delay_ms(5000);0C53: MOVLW 140C54: MOVWF 690C55: MOVLW FA0C56: MOVWF 6A0C57: BCF 0A.30C58: CALL 00A0C59: BSF 0A.30C5A: DECFSZ 69,F0C5B: GOTO 455.................... }0C5C: GOTO 396........................................ batMODE(1);0C5D: MOVLW 010C5E: MOVWF 690C5F: BCF 0A.30C60: CALL 0880C61: BSF 0A.3.................... if(bat2P==0) //osetreni deleni nulou0C62: MOVF 35,F0C63: BTFSS 03.20C64: GOTO 46D0C65: MOVF 36,F0C66: BTFSS 03.20C67: GOTO 46D.................... {.................... rozdil=9999;0C68: MOVLW 270C69: MOVWF 3A0C6A: MOVLW 0F0C6B: MOVWF 39.................... }.................... else0C6C: GOTO 4E9.................... {.................... vypocet=(((float)bat3P-bat2P)/bat2P)*100; //vypocet rozdilu dodavane enengie dodavane solárnim panelem sledujícím Slunce a fixnim solarnim panelem0C6D: MOVF 38,W0C6E: MOVWF 700C6F: MOVF 37,W0C70: MOVWF 6F0C71: BCF 0A.30C72: CALL 4720C73: BSF 0A.30C74: MOVF 77,W0C75: MOVWF 690C76: MOVF 78,W0C77: MOVWF 6A0C78: MOVF 79,W0C79: MOVWF 6B0C7A: MOVF 7A,W0C7B: MOVWF 6C0C7C: MOVF 36,W0C7D: MOVWF 700C7E: MOVF 35,W0C7F: MOVWF 6F0C80: BCF 0A.30C81: CALL 4720C82: BSF 0A.30C83: BSF 03.10C84: MOVF 6C,W0C85: MOVWF 700C86: MOVF 6B,W0C87: MOVWF 6F0C88: MOVF 6A,W0C89: MOVWF 6E0C8A: MOVF 69,W0C8B: MOVWF 6D0C8C: MOVF 7A,W0C8D: MOVWF 740C8E: MOVF 79,W0C8F: MOVWF 730C90: MOVF 78,W0C91: MOVWF 720C92: MOVF 77,W0C93: MOVWF 710C94: GOTO 0000C95: MOVF 77,W0C96: MOVWF 690C97: MOVF 78,W0C98: MOVWF 6A0C99: MOVF 79,W0C9A: MOVWF 6B0C9B: MOVF 7A,W0C9C: MOVWF 6C0C9D: MOVF 36,W0C9E: MOVWF 700C9F: MOVF 35,W0CA0: MOVWF 6F0CA1: BCF 0A.30CA2: CALL 4720CA3: BSF 0A.30CA4: MOVF 6C,W0CA5: MOVWF 700CA6: MOVF 6B,W0CA7: MOVWF 6F0CA8: MOVF 6A,W0CA9: MOVWF 6E0CAA: MOVF 69,W0CAB: MOVWF 6D0CAC: MOVF 7A,W0CAD: MOVWF 740CAE: MOVF 79,W0CAF: MOVWF 730CB0: MOVF 78,W0CB1: MOVWF 720CB2: MOVF 77,W0CB3: MOVWF 710CB4: BCF 0A.30CB5: CALL 3930CB6: BSF 0A.30CB7: MOVF 77,W0CB8: MOVWF 690CB9: MOVF 78,W0CBA: MOVWF 6A0CBB: MOVF 79,W0CBC: MOVWF 6B0CBD: MOVF 7A,W0CBE: MOVWF 6C0CBF: MOVWF 720CC0: MOVF 79,W0CC1: MOVWF 710CC2: MOVF 78,W0CC3: MOVWF 700CC4: MOVF 77,W0CC5: MOVWF 6F0CC6: CLRF 760CC7: CLRF 750CC8: MOVLW 480CC9: MOVWF 740CCA: MOVLW 850CCB: MOVWF 730CCC: BCF 0A.30CCD: CALL 4970CCE: BSF 0A.30CCF: MOVF 7A,W0CD0: MOVWF 680CD1: MOVF 79,W0CD2: MOVWF 670CD3: MOVF 78,W0CD4: MOVWF 660CD5: MOVF 77,W0CD6: MOVWF 65.................... rozdil=(signed int)vypocet;0CD7: MOVF 68,W0CD8: MOVWF 720CD9: MOVF 67,W0CDA: MOVWF 710CDB: MOVF 66,W0CDC: MOVWF 700CDD: MOVF 65,W0CDE: MOVWF 6F0CDF: BCF 0A.30CE0: CALL 51D0CE1: BSF 0A.30CE2: CLRF 7A0CE3: MOVF 78,W0CE4: BTFSC 78.70CE5: DECF 7A,F0CE6: MOVWF 390CE7: MOVF 7A,W0CE8: MOVWF 3A.................... }........................................ //zaslani namerenych udaju na seriovou linku.................... sprintf(baterka, " %3.0Ld %3.0Ld %3.0Ld %5.0Ld %5.0Ld %5.0Ld %5.0Ld", bat1STAV, bat2STAV, bat3STAV, bat1P, bat2P, bat3P, rozdil);0CE9: CLRF 640CEA: MOVLW 3B0CEB: MOVWF 630CEC: MOVLW 200CED: MOVWF 720CEE: BCF 0A.30CEF: CALL 6510CF0: BSF 0A.30CF1: MOVLW 030CF2: MOVWF 040CF3: MOVF 22,W0CF4: MOVWF 6A0CF5: MOVF 21,W0CF6: MOVWF 690CF7: BCF 0A.30CF8: CALL 65E0CF9: BSF 0A.30CFA: MOVLW 200CFB: MOVWF 720CFC: BCF 0A.30CFD: CALL 6510CFE: BSF 0A.30CFF: MOVLW 030D00: MOVWF 040D01: MOVF 24,W0D02: MOVWF 6A0D03: MOVF 23,W0D04: MOVWF 690D05: BCF 0A.30D06: CALL 65E0D07: BSF 0A.30D08: MOVLW 200D09: MOVWF 720D0A: BCF 0A.30D0B: CALL 6510D0C: BSF 0A.30D0D: MOVLW 030D0E: MOVWF 040D0F: MOVF 26,W0D10: MOVWF 6A0D11: MOVF 25,W0D12: MOVWF 690D13: BCF 0A.30D14: CALL 65E0D15: BSF 0A.30D16: MOVLW 200D17: MOVWF 720D18: BCF 0A.30D19: CALL 6510D1A: BSF 0A.30D1B: MOVLW 010D1C: MOVWF 040D1D: MOVF 34,W0D1E: MOVWF 6A0D1F: MOVF 33,W0D20: MOVWF 690D21: BCF 0A.30D22: CALL 65E0D23: BSF 0A.30D24: MOVLW 200D25: MOVWF 720D26: BCF 0A.30D27: CALL 6510D28: BSF 0A.30D29: MOVLW 010D2A: MOVWF 040D2B: MOVF 36,W0D2C: MOVWF 6A0D2D: MOVF 35,W0D2E: MOVWF 690D2F: BCF 0A.30D30: CALL 65E0D31: BSF 0A.30D32: MOVLW 200D33: MOVWF 720D34: BCF 0A.30D35: CALL 6510D36: BSF 0A.30D37: MOVLW 010D38: MOVWF 040D39: MOVF 38,W0D3A: MOVWF 6A0D3B: MOVF 37,W0D3C: MOVWF 690D3D: BCF 0A.30D3E: CALL 65E0D3F: BSF 0A.30D40: MOVLW 200D41: MOVWF 720D42: BCF 0A.30D43: CALL 6510D44: BSF 0A.30D45: MOVLW 010D46: MOVWF 040D47: MOVF 3A,W0D48: MOVWF 6A0D49: MOVF 39,W0D4A: MOVWF 690D4B: BCF 0A.30D4C: CALL 65E0D4D: BSF 0A.3.................... printf(baterka);0D4E: MOVLW 3B0D4F: MOVWF 040D50: BCF 03.70D51: BCF 0A.30D52: CALL 6DE0D53: BSF 0A.3.................... delay_ms (20000);0D54: MOVLW 500D55: MOVWF 690D56: MOVLW FA0D57: MOVWF 6A0D58: BCF 0A.30D59: CALL 00A0D5A: BSF 0A.30D5B: DECFSZ 69,F0D5C: GOTO 556.................... }0D5D: GOTO 1CD.................... }....................0D5E: SLEEPConfiguration Fuses:Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40