CCS PCM C Compiler, Version 4.106, 47914 11-4-13 19:05Filename: C:\Users\Honza\Documents\pic\I2C_bat_pam\Cteni\main.lstROM used: 975 words (12%)Largest free fragment is 2048RAM used: 6 (2%) at main() level22 (6%) worst caseStack: 2 locations*0000: MOVLW 010001: MOVWF 0A0002: GOTO 1710003: NOP.................... #include "C:\Users\Honza\Documents\pic\I2C_bat_pam\Cteni\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)*00B8: MOVLW 2C00B9: MOVWF 0400BA: BCF 03.700BB: MOVF 00,W00BC: BTFSC 03.200BD: GOTO 0CB00BE: MOVLW 0200BF: MOVWF 7800C0: CLRF 7700C1: DECFSZ 77,F00C2: GOTO 0C100C3: DECFSZ 78,F00C4: GOTO 0C000C5: MOVLW 9700C6: MOVWF 7700C7: DECFSZ 77,F00C8: GOTO 0C700C9: DECFSZ 00,F00CA: GOTO 0BE00CB: RETURN.................................................................................................... #define EEPROM_SDA PIN_B0.................... #define EEPROM_SCL PIN_B1.................... #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)*0084: MOVLW 080085: MOVWF 780086: NOP0087: BCF 06.10088: BSF 03.50089: BCF 06.1008A: NOP008B: BCF 03.5008C: RLF 2C,F008D: BCF 06.0008E: BTFSS 03.0008F: GOTO 0930090: BSF 03.50091: BSF 06.00092: BCF 03.50093: BTFSC 03.00094: GOTO 0980095: BSF 03.50096: BCF 06.00097: BCF 03.50098: BSF 03.50099: BSF 06.1009A: BCF 03.5009B: BTFSS 06.1009C: GOTO 09B009D: DECFSZ 78,F009E: GOTO 086009F: NOP00A0: BCF 06.100A1: BSF 03.500A2: BCF 06.100A3: NOP00A4: BSF 06.000A5: NOP00A6: NOP00A7: BSF 06.100A8: BCF 03.500A9: BTFSS 06.100AA: GOTO 0A900AB: CLRF 7800AC: NOP00AD: BTFSC 06.000AE: BSF 78.000AF: BCF 06.100B0: BSF 03.500B1: BCF 06.100B2: BCF 03.500B3: BCF 06.000B4: BSF 03.500B5: BCF 06.000B6: BCF 03.500B7: RETURN*00CC: MOVLW 0800CD: MOVWF 2D00CE: MOVF 77,W00CF: MOVWF 2E00D0: BSF 03.500D1: BSF 06.000D2: NOP00D3: BSF 06.100D4: BCF 03.500D5: BTFSS 06.100D6: GOTO 0D500D7: BTFSC 06.000D8: BSF 03.000D9: BTFSS 06.000DA: BCF 03.000DB: RLF 78,F00DC: NOP00DD: BSF 03.500DE: BCF 06.100DF: BCF 03.500E0: BCF 06.100E1: DECFSZ 2D,F00E2: GOTO 0D000E3: BSF 03.500E4: BSF 06.000E5: NOP00E6: BCF 03.500E7: BCF 06.000E8: MOVF 2E,W00E9: BTFSC 03.200EA: GOTO 0EE00EB: BSF 03.500EC: BCF 06.000ED: BCF 03.500EE: NOP00EF: BSF 03.500F0: BSF 06.100F1: BCF 03.500F2: BTFSS 06.100F3: GOTO 0F200F4: NOP00F5: BCF 06.100F6: BSF 03.500F7: BCF 06.100F8: NOP00F9: BCF 03.500FA: BCF 06.000FB: BSF 03.500FC: BCF 06.000FD: BCF 03.500FE: RETURN.................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD*001A: BSF 03.5001B: BCF 06.3001C: BCF 03.5001D: BCF 06.3001E: MOVLW 08001F: MOVWF 780020: GOTO 0210021: NOP0022: BSF 78.70023: GOTO 0320024: BCF 78.70025: RRF 30,F0026: BTFSC 03.00027: BSF 06.30028: BTFSS 03.00029: BCF 06.3002A: BSF 78.6002B: GOTO 032002C: BCF 78.6002D: DECFSZ 78,F002E: GOTO 025002F: GOTO 0300030: NOP0031: BSF 06.30032: MOVLW 3F0033: MOVWF 040034: DECFSZ 04,F0035: GOTO 0340036: NOP0037: BTFSC 78.70038: GOTO 0240039: BTFSC 78.6003A: GOTO 02C003B: RETURN............................................................ void main().................... {*0171: CLRF 040172: BCF 03.70173: MOVLW 1F0174: ANDWF 03,F0175: MOVLW 710176: BSF 03.50177: MOVWF 0F0178: MOVF 0F,W0179: BCF 06.3017A: BCF 03.5017B: BSF 06.3017C: BSF 03.5017D: BSF 03.6017E: MOVF 09,W017F: ANDLW C00180: MOVWF 090181: BCF 03.60182: BCF 1F.40183: BCF 1F.50184: MOVLW 000185: BSF 03.60186: MOVWF 080187: BCF 03.50188: CLRF 070189: CLRF 08018A: CLRF 09........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);*018E: BSF 03.5018F: BSF 03.60190: MOVF 09,W0191: ANDLW C00192: MOVWF 090193: BCF 03.60194: BCF 1F.40195: BCF 1F.50196: MOVLW 000197: BSF 03.60198: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);0199: BCF 03.5019A: BCF 03.6019B: BCF 1F.6019C: BCF 1F.7019D: BSF 03.5019E: BCF 1F.7019F: BCF 03.501A0: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);01A1: BCF 14.501A2: BCF 20.501A3: MOVF 20,W01A4: BSF 03.501A5: MOVWF 0701A6: BCF 03.501A7: BSF 20.401A8: MOVF 20,W01A9: BSF 03.501AA: MOVWF 0701AB: BCF 03.501AC: BCF 20.301AD: MOVF 20,W01AE: BSF 03.501AF: MOVWF 0701B0: MOVLW 0101B1: BCF 03.501B2: MOVWF 1401B3: MOVLW 0001B4: BSF 03.501B5: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);01B6: MOVF 01,W01B7: ANDLW C701B8: IORLW 0801B9: MOVWF 01.................... setup_timer_1(T1_DISABLED);01BA: BCF 03.501BB: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);01BC: MOVLW 0001BD: MOVWF 7801BE: MOVWF 1201BF: MOVLW 0001C0: BSF 03.501C1: MOVWF 12.................... setup_ccp1(CCP_OFF);01C2: BCF 03.501C3: BSF 20.201C4: MOVF 20,W01C5: BSF 03.501C6: MOVWF 0701C7: BCF 03.501C8: CLRF 1701C9: BSF 03.501CA: CLRF 1B01CB: CLRF 1C01CC: MOVLW 0101CD: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard01CE: BCF 03.501CF: BSF 03.601D0: CLRF 0701D1: CLRF 0801D2: CLRF 09........................................ printf("Simple Thermomether \r\n",);01D3: MOVLW 0401D4: MOVWF 0D01D5: MOVLW 0001D6: MOVWF 0F01D7: BCF 03.601D8: GOTO 03C.................... unsigned int8 STAV1,STAV2;........................................ unsigned int16 SOUCET, SOUCET1;.................... unsigned int8 LSB=0,ZK,k=0,VH,VL;01D9: CLRF 2701DA: CLRF 29.................... //unsigned int8........................................ while(TRUE).................... {.................................................................................................... i2c_start(); //blockdatacontrol01DB: BSF 03.501DC: BSF 06.001DD: NOP01DE: BSF 06.101DF: NOP01E0: BCF 03.501E1: BCF 06.001E2: BSF 03.501E3: BCF 06.001E4: NOP01E5: BCF 03.501E6: BCF 06.101E7: BSF 03.501E8: BCF 06.1.................... I2C_Write(0xAA);01E9: MOVLW AA01EA: BCF 03.501EB: MOVWF 2C01EC: CALL 084.................... I2C_write(0x61);01ED: MOVLW 6101EE: MOVWF 2C01EF: CALL 084.................... i2c_start();01F0: BSF 03.501F1: BSF 06.001F2: NOP01F3: BSF 06.101F4: NOP01F5: BCF 03.501F6: BTFSS 06.101F7: GOTO 1F601F8: BCF 06.001F9: BSF 03.501FA: BCF 06.001FB: NOP01FC: BCF 03.501FD: BCF 06.101FE: BSF 03.501FF: BCF 06.1.................... I2C_Write(0xAA);0200: MOVLW AA0201: BCF 03.50202: MOVWF 2C0203: CALL 084.................... i2c_write(0x00);0204: CLRF 2C0205: CALL 084.................... i2c_stop();0206: BSF 03.50207: BCF 06.00208: NOP0209: BSF 06.1020A: BCF 03.5020B: BTFSS 06.1020C: GOTO 20B020D: NOP020E: GOTO 20F020F: NOP0210: BSF 03.50211: BSF 06.00212: NOP.................... delay_ms (1);0213: MOVLW 010214: BCF 03.50215: MOVWF 2C0216: CALL 0B8............................................................ i2c_start();//dataflashclass0217: BSF 03.50218: BSF 06.00219: NOP021A: BSF 06.1021B: NOP021C: BCF 03.5021D: BCF 06.0021E: BSF 03.5021F: BCF 06.00220: NOP0221: BCF 03.50222: BCF 06.10223: BSF 03.50224: BCF 06.1.................... I2C_Write(0xAA);0225: MOVLW AA0226: BCF 03.50227: MOVWF 2C0228: CALL 084.................... I2C_write(0x3e);0229: MOVLW 3E022A: MOVWF 2C022B: CALL 084........................................ i2c_start();022C: BSF 03.5022D: BSF 06.0022E: NOP022F: BSF 06.10230: NOP0231: BCF 03.50232: BTFSS 06.10233: GOTO 2320234: BCF 06.00235: BSF 03.50236: BCF 06.00237: NOP0238: BCF 03.50239: BCF 06.1023A: BSF 03.5023B: BCF 06.1.................... I2C_Write(0xAA);023C: MOVLW AA023D: BCF 03.5023E: MOVWF 2C023F: CALL 084.................... i2c_write(0x50);0240: MOVLW 500241: MOVWF 2C0242: CALL 084.................... i2c_stop();0243: BSF 03.50244: BCF 06.00245: NOP0246: BSF 06.10247: BCF 03.50248: BTFSS 06.10249: GOTO 248024A: NOP024B: GOTO 24C024C: NOP024D: BSF 03.5024E: BSF 06.0024F: NOP.................... delay_ms (1);0250: MOVLW 010251: BCF 03.50252: MOVWF 2C0253: CALL 0B8............................................................ i2c_start();//dataflashblock0254: BSF 03.50255: BSF 06.00256: NOP0257: BSF 06.10258: NOP0259: BCF 03.5025A: BCF 06.0025B: BSF 03.5025C: BCF 06.0025D: NOP025E: BCF 03.5025F: BCF 06.10260: BSF 03.50261: BCF 06.1.................... I2C_Write(0xAA);0262: MOVLW AA0263: BCF 03.50264: MOVWF 2C0265: CALL 084.................... I2C_write(0x3f);0266: MOVLW 3F0267: MOVWF 2C0268: CALL 084........................................ i2c_start();0269: BSF 03.5026A: BSF 06.0026B: NOP026C: BSF 06.1026D: NOP026E: BCF 03.5026F: BTFSS 06.10270: GOTO 26F0271: BCF 06.00272: BSF 03.50273: BCF 06.00274: NOP0275: BCF 03.50276: BCF 06.10277: BSF 03.50278: BCF 06.1.................... I2C_Write(0xAA);0279: MOVLW AA027A: BCF 03.5027B: MOVWF 2C027C: CALL 084.................... I2C_write(0x02);027D: MOVLW 02027E: MOVWF 2C027F: CALL 084.................... i2c_stop();0280: BSF 03.50281: BCF 06.00282: NOP0283: BSF 06.10284: BCF 03.50285: BTFSS 06.10286: GOTO 2850287: NOP0288: GOTO 2890289: NOP028A: BSF 03.5028B: BSF 06.0028C: NOP........................................ delay_ms (1);028D: MOVLW 01028E: BCF 03.5028F: MOVWF 2C0290: CALL 0B8.................................................................................................... i2c_start();//blockdata0291: BSF 03.50292: BSF 06.00293: NOP0294: BSF 06.10295: NOP0296: BCF 03.50297: BCF 06.00298: BSF 03.50299: BCF 06.0029A: NOP029B: BCF 03.5029C: BCF 06.1029D: BSF 03.5029E: BCF 06.1.................... I2C_Write(0xAA);029F: MOVLW AA02A0: BCF 03.502A1: MOVWF 2C02A2: CALL 084.................... I2C_write(0x45);02A3: MOVLW 4502A4: MOVWF 2C02A5: CALL 084........................................ i2c_start();02A6: BSF 03.502A7: BSF 06.002A8: NOP02A9: BSF 06.102AA: NOP02AB: BCF 03.502AC: BTFSS 06.102AD: GOTO 2AC02AE: BCF 06.002AF: BSF 03.502B0: BCF 06.002B1: NOP02B2: BCF 03.502B3: BCF 06.102B4: BSF 03.502B5: BCF 06.1.................... I2C_Write(0xAB);02B6: MOVLW AB02B7: BCF 03.502B8: MOVWF 2C02B9: CALL 084.................... VH=I2C_read(0);02BA: CLRF 7702BB: CALL 0CC02BC: MOVF 78,W02BD: MOVWF 2A........................................ i2c_stop();02BE: BSF 03.502BF: BCF 06.002C0: NOP02C1: BSF 06.102C2: BCF 03.502C3: BTFSS 06.102C4: GOTO 2C302C5: NOP02C6: GOTO 2C702C7: NOP02C8: BSF 03.502C9: BSF 06.002CA: NOP........................................ i2c_start();//blockdata02CB: BSF 06.002CC: NOP02CD: BSF 06.102CE: NOP02CF: BCF 03.502D0: BCF 06.002D1: BSF 03.502D2: BCF 06.002D3: NOP02D4: BCF 03.502D5: BCF 06.102D6: BSF 03.502D7: BCF 06.1.................... I2C_Write(0xAA);02D8: MOVLW AA02D9: BCF 03.502DA: MOVWF 2C02DB: CALL 084.................... I2C_write(0x46);02DC: MOVLW 4602DD: MOVWF 2C02DE: CALL 084........................................ i2c_start();02DF: BSF 03.502E0: BSF 06.002E1: NOP02E2: BSF 06.102E3: NOP02E4: BCF 03.502E5: BTFSS 06.102E6: GOTO 2E502E7: BCF 06.002E8: BSF 03.502E9: BCF 06.002EA: NOP02EB: BCF 03.502EC: BCF 06.102ED: BSF 03.502EE: BCF 06.1.................... I2C_Write(0xAB);02EF: MOVLW AB02F0: BCF 03.502F1: MOVWF 2C02F2: CALL 084........................................ VL=I2C_read(0);02F3: CLRF 7702F4: CALL 0CC02F5: MOVF 78,W02F6: MOVWF 2B.................... i2c_stop();02F7: BSF 03.502F8: BCF 06.002F9: NOP02FA: BSF 06.102FB: BCF 03.502FC: BTFSS 06.102FD: GOTO 2FC02FE: NOP02FF: GOTO 3000300: NOP0301: BSF 03.50302: BSF 06.00303: NOP............................................................ delay_ms (1);0304: MOVLW 010305: BCF 03.50306: MOVWF 2C0307: CALL 0B8........................................ printf("VL %lX \r\n", VL);0308: MOVLW 560309: MOVWF 30030A: CALL 01A030B: MOVLW 4C030C: MOVWF 30030D: CALL 01A030E: MOVLW 20030F: MOVWF 300310: CALL 01A0311: MOVF 2B,W0312: MOVWF 2C0313: MOVLW 370314: MOVWF 2D0315: CALL 0FF0316: MOVLW 200317: MOVWF 300318: CALL 01A0319: MOVLW 0D031A: MOVWF 30031B: CALL 01A031C: MOVLW 0A031D: MOVWF 30031E: CALL 01A.................... printf("LH %lX \r\n", VH);031F: MOVLW 4C0320: MOVWF 300321: CALL 01A0322: MOVLW 480323: MOVWF 300324: CALL 01A0325: MOVLW 200326: MOVWF 300327: CALL 01A0328: MOVF 2A,W0329: MOVWF 2C032A: MOVLW 37032B: MOVWF 2D032C: CALL 0FF032D: MOVLW 20032E: MOVWF 30032F: CALL 01A0330: MOVLW 0D0331: MOVWF 300332: CALL 01A0333: MOVLW 0A0334: MOVWF 300335: CALL 01A............................................................................................................................................ if(VH==0x00)0336: MOVF 2A,F0337: BTFSS 03.20338: GOTO 355.................... {.................... LSB=LSB-1;0339: MOVLW 01033A: SUBWF 27,F.................... printf("Vysledne LSB %lX \r\n", LSB);033B: MOVLW 10033C: BSF 03.6033D: MOVWF 0D033E: MOVLW 00033F: MOVWF 0F0340: BCF 03.00341: MOVLW 0D0342: BCF 03.60343: MOVWF 2C0344: GOTO 1200345: MOVF 27,W0346: MOVWF 2C0347: MOVLW 370348: MOVWF 2D0349: CALL 0FF034A: MOVLW 20034B: MOVWF 30034C: CALL 01A034D: MOVLW 0D034E: MOVWF 30034F: CALL 01A0350: MOVLW 0A0351: MOVWF 300352: CALL 01A.................... while(TRUE).................... {.................... }0353: GOTO 353.................... }........................................ else0354: GOTO 38E.................... {............................................................ i2c_start();//blockdata0355: BSF 03.50356: BSF 06.00357: NOP0358: BSF 06.10359: NOP035A: BCF 03.5035B: BCF 06.0035C: BSF 03.5035D: BCF 06.0035E: NOP035F: BCF 03.50360: BCF 06.10361: BSF 03.50362: BCF 06.1.................... I2C_Write(0xAA);0363: MOVLW AA0364: BCF 03.50365: MOVWF 2C0366: CALL 084.................... I2C_write(0x45);0367: MOVLW 450368: MOVWF 2C0369: CALL 084........................................ i2c_start();036A: BSF 03.5036B: BSF 06.0036C: NOP036D: BSF 06.1036E: NOP036F: BCF 03.50370: BTFSS 06.10371: GOTO 3700372: BCF 06.00373: BSF 03.50374: BCF 06.00375: NOP0376: BCF 03.50377: BCF 06.10378: BSF 03.50379: BCF 06.1.................... I2C_Write(0xAA);037A: MOVLW AA037B: BCF 03.5037C: MOVWF 2C037D: CALL 084.................... I2C_write(0x00);037E: CLRF 2C037F: CALL 084.................... i2c_stop();0380: BSF 03.50381: BCF 06.00382: NOP0383: BSF 06.10384: BCF 03.50385: BTFSS 06.10386: GOTO 3850387: NOP0388: GOTO 3890389: NOP038A: BSF 03.5038B: BSF 06.0038C: NOP038D: BCF 03.5............................................................................................................................................ }........................................ i2c_start();//blockdata038E: BSF 03.5038F: BSF 06.00390: NOP0391: BSF 06.10392: NOP0393: BCF 03.50394: BCF 06.00395: BSF 03.50396: BCF 06.00397: NOP0398: BCF 03.50399: BCF 06.1039A: BSF 03.5039B: BCF 06.1.................... I2C_Write(0xAA);039C: MOVLW AA039D: BCF 03.5039E: MOVWF 2C039F: CALL 084.................... I2C_write(0x60);03A0: MOVLW 6003A1: MOVWF 2C03A2: CALL 084........................................ i2c_start();03A3: BSF 03.503A4: BSF 06.003A5: NOP03A6: BSF 06.103A7: NOP03A8: BCF 03.503A9: BTFSS 06.103AA: GOTO 3A903AB: BCF 06.003AC: BSF 03.503AD: BCF 06.003AE: NOP03AF: BCF 03.503B0: BCF 06.103B1: BSF 03.503B2: BCF 06.1.................... I2C_Write(0xAA);03B3: MOVLW AA03B4: BCF 03.503B5: MOVWF 2C03B6: CALL 084.................... I2C_write(LSB);03B7: MOVF 27,W03B8: MOVWF 2C03B9: CALL 084.................... i2c_stop();03BA: BSF 03.503BB: BCF 06.003BC: NOP03BD: BSF 06.103BE: BCF 03.503BF: BTFSS 06.103C0: GOTO 3BF03C1: NOP03C2: GOTO 3C303C3: NOP03C4: BSF 03.503C5: BSF 06.003C6: NOP........................................ LSB=LSB+1;03C7: MOVLW 0103C8: BCF 03.503C9: ADDWF 27,F........................................ delay_ms (100);03CA: MOVLW 6403CB: MOVWF 2C03CC: CALL 0B8........................................ }03CD: GOTO 1DB........................................ }....................03CE: SLEEPConfiguration Fuses:Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40