CCS PCM C Compiler, Version 4.106, 47914 06-4-13 21:54Filename: c:\users\honza\documents\pic\i2c_bat_pam\main.lstROM used: 909 words (11%)Largest free fragment is 2048RAM used: 6 (2%) at main() level21 (6%) worst caseStack: 2 locations*0000: MOVLW 010001: MOVWF 0A0002: GOTO 1770003: NOP.................... #include "C:\Users\Honza\Documents\pic\I2C_bat_pam\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)*00BE: MOVLW 2B00BF: MOVWF 0400C0: BCF 03.700C1: MOVF 00,W00C2: BTFSC 03.200C3: GOTO 0D100C4: MOVLW 0200C5: MOVWF 7800C6: CLRF 7700C7: DECFSZ 77,F00C8: GOTO 0C700C9: DECFSZ 78,F00CA: GOTO 0C600CB: MOVLW 9700CC: MOVWF 7700CD: DECFSZ 77,F00CE: GOTO 0CD00CF: DECFSZ 00,F00D0: GOTO 0C400D1: RETURN............................................................ #define EEPROM_SDA PIN_B0.................... #define EEPROM_SCL PIN_B1.................... #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)*008A: MOVLW 08008B: MOVWF 78008C: NOP008D: BCF 06.1008E: BSF 03.5008F: BCF 06.10090: NOP0091: BCF 03.50092: RLF 2B,F0093: BCF 06.00094: BTFSS 03.00095: GOTO 0990096: BSF 03.50097: BSF 06.00098: BCF 03.50099: BTFSC 03.0009A: GOTO 09E009B: BSF 03.5009C: BCF 06.0009D: BCF 03.5009E: BSF 03.5009F: BSF 06.100A0: BCF 03.500A1: BTFSS 06.100A2: GOTO 0A100A3: DECFSZ 78,F00A4: GOTO 08C00A5: NOP00A6: BCF 06.100A7: BSF 03.500A8: BCF 06.100A9: NOP00AA: BSF 06.000AB: NOP00AC: NOP00AD: BSF 06.100AE: BCF 03.500AF: BTFSS 06.100B0: GOTO 0AF00B1: CLRF 7800B2: NOP00B3: BTFSC 06.000B4: BSF 78.000B5: BCF 06.100B6: BSF 03.500B7: BCF 06.100B8: BCF 03.500B9: BCF 06.000BA: BSF 03.500BB: BCF 06.000BC: BCF 03.500BD: RETURN*00D2: MOVLW 0800D3: MOVWF 2C00D4: MOVF 77,W00D5: MOVWF 2D00D6: BSF 03.500D7: BSF 06.000D8: NOP00D9: BSF 06.100DA: BCF 03.500DB: BTFSS 06.100DC: GOTO 0DB00DD: BTFSC 06.000DE: BSF 03.000DF: BTFSS 06.000E0: BCF 03.000E1: RLF 78,F00E2: NOP00E3: BSF 03.500E4: BCF 06.100E5: BCF 03.500E6: BCF 06.100E7: DECFSZ 2C,F00E8: GOTO 0D600E9: BSF 03.500EA: BSF 06.000EB: NOP00EC: BCF 03.500ED: BCF 06.000EE: MOVF 2D,W00EF: BTFSC 03.200F0: GOTO 0F400F1: BSF 03.500F2: BCF 06.000F3: BCF 03.500F4: NOP00F5: BSF 03.500F6: BSF 06.100F7: BCF 03.500F8: BTFSS 06.100F9: GOTO 0F800FA: NOP00FB: BCF 06.100FC: BSF 03.500FD: BCF 06.100FE: NOP00FF: BCF 03.50100: BCF 06.00101: BSF 03.50102: BCF 06.00103: BCF 03.50104: BCF 0A.30105: BCF 0A.40106: GOTO 2C1 (RETURN).................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD*0020: BSF 03.50021: BCF 06.30022: BCF 03.50023: BCF 06.30024: MOVLW 080025: MOVWF 780026: GOTO 0270027: NOP0028: BSF 78.70029: GOTO 038002A: BCF 78.7002B: RRF 2F,F002C: BTFSC 03.0002D: BSF 06.3002E: BTFSS 03.0002F: BCF 06.30030: BSF 78.60031: GOTO 0380032: BCF 78.60033: DECFSZ 78,F0034: GOTO 02B0035: GOTO 0360036: NOP0037: BSF 06.30038: MOVLW 3F0039: MOVWF 04003A: DECFSZ 04,F003B: GOTO 03A003C: NOP003D: BTFSC 78.7003E: GOTO 02A003F: BTFSC 78.60040: GOTO 0320041: RETURN............................................................ void main().................... {*0177: CLRF 040178: BCF 03.70179: MOVLW 1F017A: ANDWF 03,F017B: MOVLW 71017C: BSF 03.5017D: MOVWF 0F017E: MOVF 0F,W017F: BCF 06.30180: BCF 03.50181: BSF 06.30182: BSF 03.50183: BSF 03.60184: MOVF 09,W0185: ANDLW C00186: MOVWF 090187: BCF 03.60188: BCF 1F.40189: BCF 1F.5018A: MOVLW 00018B: BSF 03.6018C: MOVWF 08018D: BCF 03.5018E: CLRF 07018F: CLRF 080190: CLRF 09........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);*0194: BSF 03.50195: BSF 03.60196: MOVF 09,W0197: ANDLW C00198: MOVWF 090199: BCF 03.6019A: BCF 1F.4019B: BCF 1F.5019C: MOVLW 00019D: BSF 03.6019E: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);019F: BCF 03.501A0: BCF 03.601A1: BCF 1F.601A2: BCF 1F.701A3: BSF 03.501A4: BCF 1F.701A5: BCF 03.501A6: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);01A7: BCF 14.501A8: BCF 20.501A9: MOVF 20,W01AA: BSF 03.501AB: MOVWF 0701AC: BCF 03.501AD: BSF 20.401AE: MOVF 20,W01AF: BSF 03.501B0: MOVWF 0701B1: BCF 03.501B2: BCF 20.301B3: MOVF 20,W01B4: BSF 03.501B5: MOVWF 0701B6: MOVLW 0101B7: BCF 03.501B8: MOVWF 1401B9: MOVLW 0001BA: BSF 03.501BB: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);01BC: MOVF 01,W01BD: ANDLW C701BE: IORLW 0801BF: MOVWF 01.................... setup_timer_1(T1_DISABLED);01C0: BCF 03.501C1: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);01C2: MOVLW 0001C3: MOVWF 7801C4: MOVWF 1201C5: MOVLW 0001C6: BSF 03.501C7: MOVWF 12.................... setup_ccp1(CCP_OFF);01C8: BCF 03.501C9: BSF 20.201CA: MOVF 20,W01CB: BSF 03.501CC: MOVWF 0701CD: BCF 03.501CE: CLRF 1701CF: BSF 03.501D0: CLRF 1B01D1: CLRF 1C01D2: MOVLW 0101D3: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard01D4: BCF 03.501D5: BSF 03.601D6: CLRF 0701D7: CLRF 0801D8: CLRF 09........................................ printf("Simple Thermomether \r\n",);01D9: MOVLW 0401DA: MOVWF 0D01DB: MOVLW 0001DC: MOVWF 0F01DD: BCF 03.601DE: GOTO 042.................... unsigned int8 STAV1,STAV2;........................................ unsigned int16 SOUCET, SOUCET1;.................... unsigned int8 LSB=0,ZK,k=0;01DF: CLRF 2701E0: CLRF 29.................... //unsigned int8........................................ while(TRUE).................... {.................................................................................................... i2c_start(); //blockdatacontrol01E1: BSF 03.501E2: BSF 06.001E3: NOP01E4: BSF 06.101E5: NOP01E6: BCF 03.501E7: BCF 06.001E8: BSF 03.501E9: BCF 06.001EA: NOP01EB: BCF 03.501EC: BCF 06.101ED: BSF 03.501EE: BCF 06.1.................... I2C_Write(0xAA);01EF: MOVLW AA01F0: BCF 03.501F1: MOVWF 2B01F2: CALL 08A.................... I2C_write(0x61);01F3: MOVLW 6101F4: MOVWF 2B01F5: CALL 08A.................... i2c_start();01F6: BSF 03.501F7: BSF 06.001F8: NOP01F9: BSF 06.101FA: NOP01FB: BCF 03.501FC: BTFSS 06.101FD: GOTO 1FC01FE: BCF 06.001FF: BSF 03.50200: BCF 06.00201: NOP0202: BCF 03.50203: BCF 06.10204: BSF 03.50205: BCF 06.1.................... I2C_Write(0xAA);0206: MOVLW AA0207: BCF 03.50208: MOVWF 2B0209: CALL 08A.................... i2c_write(0x00);020A: CLRF 2B020B: CALL 08A.................... i2c_stop();020C: BSF 03.5020D: BCF 06.0020E: NOP020F: BSF 06.10210: BCF 03.50211: BTFSS 06.10212: GOTO 2110213: NOP0214: GOTO 2150215: NOP0216: BSF 03.50217: BSF 06.00218: NOP.................... delay_ms (1);0219: MOVLW 01021A: BCF 03.5021B: MOVWF 2B021C: CALL 0BE............................................................ i2c_start();//dataflashclass021D: BSF 03.5021E: BSF 06.0021F: NOP0220: BSF 06.10221: NOP0222: BCF 03.50223: BCF 06.00224: BSF 03.50225: BCF 06.00226: NOP0227: BCF 03.50228: BCF 06.10229: BSF 03.5022A: BCF 06.1.................... I2C_Write(0xAA);022B: MOVLW AA022C: BCF 03.5022D: MOVWF 2B022E: CALL 08A.................... I2C_write(0x3e);022F: MOVLW 3E0230: MOVWF 2B0231: CALL 08A........................................ i2c_start();0232: BSF 03.50233: BSF 06.00234: NOP0235: BSF 06.10236: NOP0237: BCF 03.50238: BTFSS 06.10239: GOTO 238023A: BCF 06.0023B: BSF 03.5023C: BCF 06.0023D: NOP023E: BCF 03.5023F: BCF 06.10240: BSF 03.50241: BCF 06.1.................... I2C_Write(0xAA);0242: MOVLW AA0243: BCF 03.50244: MOVWF 2B0245: CALL 08A.................... i2c_write(0x40);0246: MOVLW 400247: MOVWF 2B0248: CALL 08A.................... i2c_stop();0249: BSF 03.5024A: BCF 06.0024B: NOP024C: BSF 06.1024D: BCF 03.5024E: BTFSS 06.1024F: GOTO 24E0250: NOP0251: GOTO 2520252: NOP0253: BSF 03.50254: BSF 06.00255: NOP.................... delay_ms (1);0256: MOVLW 010257: BCF 03.50258: MOVWF 2B0259: CALL 0BE............................................................ i2c_start();//dataflashblock025A: BSF 03.5025B: BSF 06.0025C: NOP025D: BSF 06.1025E: NOP025F: BCF 03.50260: BCF 06.00261: BSF 03.50262: BCF 06.00263: NOP0264: BCF 03.50265: BCF 06.10266: BSF 03.50267: BCF 06.1.................... I2C_Write(0xAA);0268: MOVLW AA0269: BCF 03.5026A: MOVWF 2B026B: CALL 08A.................... I2C_write(0x3f);026C: MOVLW 3F026D: MOVWF 2B026E: CALL 08A........................................ i2c_start();026F: BSF 03.50270: BSF 06.00271: NOP0272: BSF 06.10273: NOP0274: BCF 03.50275: BTFSS 06.10276: GOTO 2750277: BCF 06.00278: BSF 03.50279: BCF 06.0027A: NOP027B: BCF 03.5027C: BCF 06.1027D: BSF 03.5027E: BCF 06.1.................... I2C_Write(0xAA);027F: MOVLW AA0280: BCF 03.50281: MOVWF 2B0282: CALL 08A.................... I2C_write(0x00);0283: CLRF 2B0284: CALL 08A.................... i2c_stop();0285: BSF 03.50286: BCF 06.00287: NOP0288: BSF 06.10289: BCF 03.5028A: BTFSS 06.1028B: GOTO 28A028C: NOP028D: GOTO 28E028E: NOP028F: BSF 03.50290: BSF 06.00291: NOP........................................ delay_ms (1);0292: MOVLW 010293: BCF 03.50294: MOVWF 2B0295: CALL 0BE........................................ i2c_start();//blockdata0296: BSF 03.50297: BSF 06.00298: NOP0299: BSF 06.1029A: NOP029B: BCF 03.5029C: BCF 06.0029D: BSF 03.5029E: BCF 06.0029F: NOP02A0: BCF 03.502A1: BCF 06.102A2: BSF 03.502A3: BCF 06.1.................... I2C_Write(0xAA);02A4: MOVLW AA02A5: BCF 03.502A6: MOVWF 2B02A7: CALL 08A.................... I2C_write(0x44);02A8: MOVLW 4402A9: MOVWF 2B02AA: CALL 08A........................................ i2c_start();02AB: BSF 03.502AC: BSF 06.002AD: NOP02AE: BSF 06.102AF: NOP02B0: BCF 03.502B1: BTFSS 06.102B2: GOTO 2B102B3: BCF 06.002B4: BSF 03.502B5: BCF 06.002B6: NOP02B7: BCF 03.502B8: BCF 06.102B9: BSF 03.502BA: BCF 06.1.................... I2C_Write(0xAB);02BB: MOVLW AB02BC: BCF 03.502BD: MOVWF 2B02BE: CALL 08A.................... ZK=I2C_read(0);02BF: CLRF 7702C0: GOTO 0D202C1: MOVF 78,W02C2: MOVWF 28.................... i2c_stop();02C3: BSF 03.502C4: BCF 06.002C5: NOP02C6: BSF 06.102C7: BCF 03.502C8: BTFSS 06.102C9: GOTO 2C802CA: NOP02CB: GOTO 2CC02CC: NOP02CD: BSF 03.502CE: BSF 06.002CF: NOP........................................ delay_ms (1);02D0: MOVLW 0102D1: BCF 03.502D2: MOVWF 2B02D3: CALL 0BE........................................ printf("LED %lX \r\n", ZK);02D4: MOVLW 1002D5: BSF 03.602D6: MOVWF 0D02D7: MOVLW 0002D8: MOVWF 0F02D9: BCF 03.002DA: MOVLW 0402DB: BCF 03.602DC: MOVWF 2B02DD: CALL 10702DE: MOVF 28,W02DF: MOVWF 2B02E0: MOVLW 3702E1: MOVWF 2C02E2: CALL 15602E3: MOVLW 2002E4: MOVWF 2F02E5: CALL 02002E6: MOVLW 0D02E7: MOVWF 2F02E8: CALL 02002E9: MOVLW 0A02EA: MOVWF 2F02EB: CALL 020........................................ if(ZK==0x53)02EC: MOVF 28,W02ED: SUBLW 5302EE: BTFSS 03.202EF: GOTO 30C.................... {.................... LSB=LSB-1;02F0: MOVLW 0102F1: SUBWF 27,F.................... printf("Vysledne LSB %lX \r\n", LSB);02F2: MOVLW 1602F3: BSF 03.602F4: MOVWF 0D02F5: MOVLW 0002F6: MOVWF 0F02F7: BCF 03.002F8: MOVLW 0D02F9: BCF 03.602FA: MOVWF 2B02FB: CALL 10702FC: MOVF 27,W02FD: MOVWF 2B02FE: MOVLW 3702FF: MOVWF 2C0300: CALL 1560301: MOVLW 200302: MOVWF 2F0303: CALL 0200304: MOVLW 0D0305: MOVWF 2F0306: CALL 0200307: MOVLW 0A0308: MOVWF 2F0309: CALL 020.................... while(TRUE).................... {.................... }030A: GOTO 30A.................... }........................................ else030B: GOTO 386.................... {.................... i2c_start();//blockdata030C: BSF 03.5030D: BSF 06.0030E: NOP030F: BSF 06.10310: NOP0311: BCF 03.50312: BCF 06.00313: BSF 03.50314: BCF 06.00315: NOP0316: BCF 03.50317: BCF 06.10318: BSF 03.50319: BCF 06.1.................... I2C_Write(0xAA);031A: MOVLW AA031B: BCF 03.5031C: MOVWF 2B031D: CALL 08A.................... I2C_write(0x44);031E: MOVLW 44031F: MOVWF 2B0320: CALL 08A........................................ i2c_start();0321: BSF 03.50322: BSF 06.00323: NOP0324: BSF 06.10325: NOP0326: BCF 03.50327: BTFSS 06.10328: GOTO 3270329: BCF 06.0032A: BSF 03.5032B: BCF 06.0032C: NOP032D: BCF 03.5032E: BCF 06.1032F: BSF 03.50330: BCF 06.1.................... I2C_Write(0xAA);0331: MOVLW AA0332: BCF 03.50333: MOVWF 2B0334: CALL 08A.................... I2C_write(0x53);0335: MOVLW 530336: MOVWF 2B0337: CALL 08A.................... i2c_stop();0338: BSF 03.50339: BCF 06.0033A: NOP033B: BSF 06.1033C: BCF 03.5033D: BTFSS 06.1033E: GOTO 33D033F: NOP0340: GOTO 3410341: NOP0342: BSF 03.50343: BSF 06.00344: NOP............................................................ int i=64;0345: MOVLW 400346: BCF 03.50347: MOVWF 2A.................... SOUCET=0;0348: CLRF 240349: CLRF 23.................... SOUCET1=0;034A: CLRF 26034B: CLRF 25........................................ /*.................... for (i=64;i<96;++i).................... {.................... printf("%u\r\n",i);.................... i2c_stop();........................................ i2c_start();//blockdata.................... I2C_Write(0xAA);.................... I2C_write(i);........................................ i2c_start();.................... I2C_Write(0xAB);.................... STAV1=I2C_read(0);.................... i2c_stop();........................................ printf("STAV %lX \r\n", STAV1);.................... SOUCET=SOUCET+STAV1;........................................................................................................................ }.................... printf("SOUCET: %lX (procenta)\r\n", SOUCET);.................... SOUCET1=SOUCET;.................... SOUCET1=SOUCET1>>8;.................... printf("Deleno 256: %lX (procenta)\r\n", SOUCET1);.................... SOUCET1=SOUCET-SOUCET1;.................... printf("Soucet - soucet/256: %lX \r\n", SOUCET1);.................... LSB=(unsigned int8)SOUCET1;.................... printf("LSB: %lX\r\n", LSB);.................... //printf("Stav: %X (procenta)\r\n", STAV2);.................... */........................................ i2c_start();//blockdata034C: BSF 03.5034D: BSF 06.0034E: NOP034F: BSF 06.10350: NOP0351: BCF 03.50352: BCF 06.00353: BSF 03.50354: BCF 06.00355: NOP0356: BCF 03.50357: BCF 06.10358: BSF 03.50359: BCF 06.1.................... I2C_Write(0xAA);035A: MOVLW AA035B: BCF 03.5035C: MOVWF 2B035D: CALL 08A.................... I2C_write(0x60);035E: MOVLW 60035F: MOVWF 2B0360: CALL 08A........................................ i2c_start();0361: BSF 03.50362: BSF 06.00363: NOP0364: BSF 06.10365: NOP0366: BCF 03.50367: BTFSS 06.10368: GOTO 3670369: BCF 06.0036A: BSF 03.5036B: BCF 06.0036C: NOP036D: BCF 03.5036E: BCF 06.1036F: BSF 03.50370: BCF 06.1.................... I2C_Write(0xAA);0371: MOVLW AA0372: BCF 03.50373: MOVWF 2B0374: CALL 08A.................... I2C_write(LSB);0375: MOVF 27,W0376: MOVWF 2B0377: CALL 08A.................... i2c_stop();0378: BSF 03.50379: BCF 06.0037A: NOP037B: BSF 06.1037C: BCF 03.5037D: BTFSS 06.1037E: GOTO 37D037F: NOP0380: GOTO 3810381: NOP0382: BSF 03.50383: BSF 06.00384: NOP0385: BCF 03.5........................................ }........................................ LSB=LSB+1;0386: MOVLW 010387: ADDWF 27,F........................................ delay_ms (100);0388: MOVLW 640389: MOVWF 2B038A: CALL 0BE.................... }038B: GOTO 1E1.................... }038C: SLEEPConfiguration Fuses:Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40