CCS PCM C Compiler, Version 4.106, 47914 06-4-13 20:57Filename: C:\Users\Honza\Documents\pic\I2C_bat_cteni\main.lstROM used: 986 words (12%)Largest free fragment is 2048RAM used: 6 (2%) at main() level19 (5%) worst caseStack: 2 locations*0000: MOVLW 010001: MOVWF 0A0002: GOTO 1DC0003: NOP.................... #include "C:\Users\Honza\Documents\pic\I2C_bat_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)*00D7: MOVLW 2900D8: MOVWF 0400D9: BCF 03.700DA: MOVF 00,W00DB: BTFSC 03.200DC: GOTO 0EA00DD: MOVLW 0200DE: MOVWF 7800DF: CLRF 7700E0: DECFSZ 77,F00E1: GOTO 0E000E2: DECFSZ 78,F00E3: GOTO 0DF00E4: MOVLW 9700E5: MOVWF 7700E6: DECFSZ 77,F00E7: GOTO 0E600E8: DECFSZ 00,F00E9: GOTO 0DD00EA: RETURN................................................................................ #define EEPROM_SDA PIN_B0.................... #define EEPROM_SCL PIN_B1.................... #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)*00A3: MOVLW 0800A4: MOVWF 7800A5: NOP00A6: BCF 06.100A7: BSF 03.500A8: BCF 06.100A9: NOP00AA: BCF 03.500AB: RLF 29,F00AC: BCF 06.000AD: BTFSS 03.000AE: GOTO 0B200AF: BSF 03.500B0: BSF 06.000B1: BCF 03.500B2: BTFSC 03.000B3: GOTO 0B700B4: BSF 03.500B5: BCF 06.000B6: BCF 03.500B7: BSF 03.500B8: BSF 06.100B9: BCF 03.500BA: BTFSS 06.100BB: GOTO 0BA00BC: DECFSZ 78,F00BD: GOTO 0A500BE: NOP00BF: BCF 06.100C0: BSF 03.500C1: BCF 06.100C2: NOP00C3: BSF 06.000C4: NOP00C5: NOP00C6: BSF 06.100C7: BCF 03.500C8: BTFSS 06.100C9: GOTO 0C800CA: CLRF 7800CB: NOP00CC: BTFSC 06.000CD: BSF 78.000CE: BCF 06.100CF: BSF 03.500D0: BCF 06.100D1: BCF 03.500D2: BCF 06.000D3: BSF 03.500D4: BCF 06.000D5: BCF 03.500D6: RETURN*0137: MOVLW 080138: MOVWF 2A0139: MOVF 77,W013A: MOVWF 2B013B: BSF 03.5013C: BSF 06.0013D: NOP013E: BSF 06.1013F: BCF 03.50140: BTFSS 06.10141: GOTO 1400142: BTFSC 06.00143: BSF 03.00144: BTFSS 06.00145: BCF 03.00146: RLF 78,F0147: NOP0148: BSF 03.50149: BCF 06.1014A: BCF 03.5014B: BCF 06.1014C: DECFSZ 2A,F014D: GOTO 13B014E: BSF 03.5014F: BSF 06.00150: NOP0151: BCF 03.50152: BCF 06.00153: MOVF 2B,W0154: BTFSC 03.20155: GOTO 1590156: BSF 03.50157: BCF 06.00158: BCF 03.50159: NOP015A: BSF 03.5015B: BSF 06.1015C: BCF 03.5015D: BTFSS 06.1015E: GOTO 15D015F: NOP0160: BCF 06.10161: BSF 03.50162: BCF 06.10163: NOP0164: BCF 03.50165: BCF 06.00166: BSF 03.50167: BCF 06.00168: BCF 03.50169: BCF 0A.3016A: BCF 0A.4016B: GOTO 344 (RETURN).................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD*0039: BSF 03.5003A: BCF 06.3003B: BCF 03.5003C: BCF 06.3003D: MOVLW 08003E: MOVWF 78003F: GOTO 0400040: NOP0041: BSF 78.70042: GOTO 0510043: BCF 78.70044: RRF 2D,F0045: BTFSC 03.00046: BSF 06.30047: BTFSS 03.00048: BCF 06.30049: BSF 78.6004A: GOTO 051004B: BCF 78.6004C: DECFSZ 78,F004D: GOTO 044004E: GOTO 04F004F: NOP0050: BSF 06.30051: MOVLW 3F0052: MOVWF 040053: DECFSZ 04,F0054: GOTO 0530055: NOP0056: BTFSC 78.70057: GOTO 0430058: BTFSC 78.60059: GOTO 04B005A: RETURN............................................................ void main().................... {*0038: DATA 00,00*01DC: CLRF 0401DD: BCF 03.701DE: MOVLW 1F01DF: ANDWF 03,F01E0: MOVLW 7101E1: BSF 03.501E2: MOVWF 0F01E3: MOVF 0F,W01E4: BCF 06.301E5: BCF 03.501E6: BSF 06.301E7: BSF 03.501E8: BSF 03.601E9: MOVF 09,W01EA: ANDLW C001EB: MOVWF 0901EC: BCF 03.601ED: BCF 1F.401EE: BCF 1F.501EF: MOVLW 0001F0: BSF 03.601F1: MOVWF 0801F2: BCF 03.501F3: CLRF 0701F4: CLRF 0801F5: CLRF 09........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);*01F9: BSF 03.501FA: BSF 03.601FB: MOVF 09,W01FC: ANDLW C001FD: MOVWF 0901FE: BCF 03.601FF: BCF 1F.40200: BCF 1F.50201: MOVLW 000202: BSF 03.60203: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);0204: BCF 03.50205: BCF 03.60206: BCF 1F.60207: BCF 1F.70208: BSF 03.50209: BCF 1F.7020A: BCF 03.5020B: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);020C: BCF 14.5020D: BCF 20.5020E: MOVF 20,W020F: BSF 03.50210: MOVWF 070211: BCF 03.50212: BSF 20.40213: MOVF 20,W0214: BSF 03.50215: MOVWF 070216: BCF 03.50217: BCF 20.30218: MOVF 20,W0219: BSF 03.5021A: MOVWF 07021B: MOVLW 01021C: BCF 03.5021D: MOVWF 14021E: MOVLW 00021F: BSF 03.50220: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);0221: MOVF 01,W0222: ANDLW C70223: IORLW 080224: MOVWF 01.................... setup_timer_1(T1_DISABLED);0225: BCF 03.50226: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);0227: MOVLW 000228: MOVWF 780229: MOVWF 12022A: MOVLW 00022B: BSF 03.5022C: MOVWF 12.................... setup_ccp1(CCP_OFF);022D: BCF 03.5022E: BSF 20.2022F: MOVF 20,W0230: BSF 03.50231: MOVWF 070232: BCF 03.50233: CLRF 170234: BSF 03.50235: CLRF 1B0236: CLRF 1C0237: MOVLW 010238: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard0239: BCF 03.5023A: BSF 03.6023B: CLRF 07023C: CLRF 08023D: CLRF 09........................................ printf("Simple Thermomether \r\n",);023E: MOVLW 04023F: MOVWF 0D0240: MOVLW 000241: MOVWF 0F0242: BCF 03.60243: GOTO 05B.................... unsigned int8 STAV1,STAV2;........................................ unsigned int16 SOUCET, SOUCET1;.................... unsigned int8 LSB;.................... //unsigned int8........................................ //while(TRUE).................... //{.................................................................................................... i2c_start(); //blockdatacontrol0244: BSF 03.50245: BSF 06.00246: NOP0247: BSF 06.10248: NOP0249: BCF 03.5024A: BCF 06.0024B: BSF 03.5024C: BCF 06.0024D: NOP024E: BCF 03.5024F: BCF 06.10250: BSF 03.50251: BCF 06.1.................... I2C_Write(0xAA);0252: MOVLW AA0253: BCF 03.50254: MOVWF 290255: CALL 0A3.................... I2C_write(0x61);0256: MOVLW 610257: MOVWF 290258: CALL 0A3.................... i2c_start();0259: BSF 03.5025A: BSF 06.0025B: NOP025C: BSF 06.1025D: NOP025E: BCF 03.5025F: BTFSS 06.10260: GOTO 25F0261: BCF 06.00262: BSF 03.50263: BCF 06.00264: NOP0265: BCF 03.50266: BCF 06.10267: BSF 03.50268: BCF 06.1.................... I2C_Write(0xAA);0269: MOVLW AA026A: BCF 03.5026B: MOVWF 29026C: CALL 0A3.................... i2c_write(0x00);026D: CLRF 29026E: CALL 0A3.................... i2c_stop();026F: BSF 03.50270: BCF 06.00271: NOP0272: BSF 06.10273: BCF 03.50274: BTFSS 06.10275: GOTO 2740276: NOP0277: GOTO 2780278: NOP0279: BSF 03.5027A: BSF 06.0027B: NOP.................... delay_ms (1);027C: MOVLW 01027D: BCF 03.5027E: MOVWF 29027F: CALL 0D7............................................................ i2c_start();//dataflashclass0280: BSF 03.50281: BSF 06.00282: NOP0283: BSF 06.10284: NOP0285: BCF 03.50286: BCF 06.00287: BSF 03.50288: BCF 06.00289: NOP028A: BCF 03.5028B: BCF 06.1028C: BSF 03.5028D: BCF 06.1.................... I2C_Write(0xAA);028E: MOVLW AA028F: BCF 03.50290: MOVWF 290291: CALL 0A3.................... I2C_write(0x3e);0292: MOVLW 3E0293: MOVWF 290294: CALL 0A3........................................ i2c_start();0295: BSF 03.50296: BSF 06.00297: NOP0298: BSF 06.10299: NOP029A: BCF 03.5029B: BTFSS 06.1029C: GOTO 29B029D: BCF 06.0029E: BSF 03.5029F: BCF 06.002A0: NOP02A1: BCF 03.502A2: BCF 06.102A3: BSF 03.502A4: BCF 06.1.................... I2C_Write(0xAA);02A5: MOVLW AA02A6: BCF 03.502A7: MOVWF 2902A8: CALL 0A3.................... i2c_write(0x40);02A9: MOVLW 4002AA: MOVWF 2902AB: CALL 0A3.................... i2c_stop();02AC: BSF 03.502AD: BCF 06.002AE: NOP02AF: BSF 06.102B0: BCF 03.502B1: BTFSS 06.102B2: GOTO 2B102B3: NOP02B4: GOTO 2B502B5: NOP02B6: BSF 03.502B7: BSF 06.002B8: NOP.................... delay_ms (1);02B9: MOVLW 0102BA: BCF 03.502BB: MOVWF 2902BC: CALL 0D7............................................................ i2c_start();//dataflashblock02BD: BSF 03.502BE: BSF 06.002BF: NOP02C0: BSF 06.102C1: NOP02C2: BCF 03.502C3: BCF 06.002C4: BSF 03.502C5: BCF 06.002C6: NOP02C7: BCF 03.502C8: BCF 06.102C9: BSF 03.502CA: BCF 06.1.................... I2C_Write(0xAA);02CB: MOVLW AA02CC: BCF 03.502CD: MOVWF 2902CE: CALL 0A3.................... I2C_write(0x3f);02CF: MOVLW 3F02D0: MOVWF 2902D1: CALL 0A3........................................ i2c_start();02D2: BSF 03.502D3: BSF 06.002D4: NOP02D5: BSF 06.102D6: NOP02D7: BCF 03.502D8: BTFSS 06.102D9: GOTO 2D802DA: BCF 06.002DB: BSF 03.502DC: BCF 06.002DD: NOP02DE: BCF 03.502DF: BCF 06.102E0: BSF 03.502E1: BCF 06.1.................... I2C_Write(0xAA);02E2: MOVLW AA02E3: BCF 03.502E4: MOVWF 2902E5: CALL 0A3.................... I2C_write(0x00);02E6: CLRF 2902E7: CALL 0A3.................... i2c_stop();02E8: BSF 03.502E9: BCF 06.002EA: NOP02EB: BSF 06.102EC: BCF 03.502ED: BTFSS 06.102EE: GOTO 2ED02EF: NOP02F0: GOTO 2F102F1: NOP02F2: BSF 03.502F3: BSF 06.002F4: NOP........................................ delay_ms (1);02F5: MOVLW 0102F6: BCF 03.502F7: MOVWF 2902F8: CALL 0D7.................................................................................................................................................................................... int i=64;02F9: MOVLW 4002FA: MOVWF 28.................... SOUCET=0;02FB: CLRF 2402FC: CLRF 23.................... for (i=64;i<=96;++i)02FD: MOVWF 2802FE: MOVF 28,W02FF: SUBLW 600300: BTFSS 03.00301: GOTO 372.................... {.................... printf("%u\r\n",i);0302: MOVF 28,W0303: MOVWF 290304: MOVLW 1B0305: MOVWF 2A0306: GOTO 1000307: MOVLW 0D0308: MOVWF 2D0309: CALL 039030A: MOVLW 0A030B: MOVWF 2D030C: CALL 039.................... i2c_stop();030D: BSF 03.5030E: BCF 06.0030F: NOP0310: BSF 06.10311: BCF 03.50312: BTFSS 06.10313: GOTO 3120314: NOP0315: GOTO 3160316: NOP0317: BSF 03.50318: BSF 06.00319: NOP........................................ i2c_start();//blockdata031A: BSF 06.0031B: NOP031C: BSF 06.1031D: NOP031E: BCF 03.5031F: BCF 06.00320: BSF 03.50321: BCF 06.00322: NOP0323: BCF 03.50324: BCF 06.10325: BSF 03.50326: BCF 06.1.................... I2C_Write(0xAA);0327: MOVLW AA0328: BCF 03.50329: MOVWF 29032A: CALL 0A3.................... I2C_write(i);032B: MOVF 28,W032C: MOVWF 29032D: CALL 0A3........................................ i2c_start();032E: BSF 03.5032F: BSF 06.00330: NOP0331: BSF 06.10332: NOP0333: BCF 03.50334: BTFSS 06.10335: GOTO 3340336: BCF 06.00337: BSF 03.50338: BCF 06.00339: NOP033A: BCF 03.5033B: BCF 06.1033C: BSF 03.5033D: BCF 06.1.................... I2C_Write(0xAB);033E: MOVLW AB033F: BCF 03.50340: MOVWF 290341: CALL 0A3.................... STAV1=I2C_read(0);0342: CLRF 770343: GOTO 1370344: MOVF 78,W0345: MOVWF 21.................... i2c_stop();0346: BSF 03.50347: BCF 06.00348: NOP0349: BSF 06.1034A: BCF 03.5034B: BTFSS 06.1034C: GOTO 34B034D: NOP034E: GOTO 34F034F: NOP0350: BSF 03.50351: BSF 06.00352: NOP........................................ printf("STAV %lX \r\n", STAV1);0353: MOVLW 100354: BCF 03.50355: BSF 03.60356: MOVWF 0D0357: MOVLW 000358: MOVWF 0F0359: BCF 03.0035A: MOVLW 05035B: BCF 03.6035C: MOVWF 29035D: CALL 16C035E: MOVF 21,W035F: MOVWF 290360: MOVLW 370361: MOVWF 2A0362: CALL 1BB0363: MOVLW 200364: MOVWF 2D0365: CALL 0390366: MOVLW 0D0367: MOVWF 2D0368: CALL 0390369: MOVLW 0A036A: MOVWF 2D036B: CALL 039.................... SOUCET=SOUCET+STAV1;036C: MOVF 21,W036D: ADDWF 23,F036E: BTFSC 03.0036F: INCF 24,F........................................................................................................................ }0370: INCF 28,F0371: GOTO 2FE.................... SOUCET1=SOUCET;0372: MOVF 24,W0373: MOVWF 260374: MOVF 23,W0375: MOVWF 25.................... SOUCET1=SOUCET1>>8;0376: MOVF 26,W0377: MOVWF 250378: CLRF 26.................... printf("Deleno 256: %lX (procenta)\r\n", SOUCET1);0379: MOVLW 16037A: BSF 03.6037B: MOVWF 0D037C: MOVLW 00037D: MOVWF 0F037E: BCF 03.0037F: MOVLW 0C0380: BCF 03.60381: MOVWF 290382: CALL 16C0383: MOVF 26,W0384: MOVWF 290385: MOVLW 370386: MOVWF 2A0387: CALL 1BB0388: MOVF 25,W0389: MOVWF 29038A: MOVLW 37038B: MOVWF 2A038C: CALL 1BB038D: MOVLW 1D038E: BSF 03.6038F: MOVWF 0D0390: MOVLW 000391: MOVWF 0F0392: BSF 03.00393: MOVLW 0D0394: BCF 03.60395: MOVWF 290396: CALL 16C.................... SOUCET1=SOUCET-SOUCET1;0397: MOVF 25,W0398: SUBWF 23,W0399: MOVWF 25039A: MOVF 26,W039B: BTFSS 03.0039C: INCFSZ 26,W039D: GOTO 3A0039E: MOVF 24,W039F: GOTO 3A103A0: SUBWF 24,W03A1: MOVWF 26.................... printf("Soucet - soucet/256: %lX \r\n", SOUCET1);03A2: MOVLW 2503A3: BSF 03.603A4: MOVWF 0D03A5: MOVLW 0003A6: MOVWF 0F03A7: BCF 03.003A8: MOVLW 1503A9: BCF 03.603AA: MOVWF 2903AB: CALL 16C03AC: MOVF 26,W03AD: MOVWF 2903AE: MOVLW 3703AF: MOVWF 2A03B0: CALL 1BB03B1: MOVF 25,W03B2: MOVWF 2903B3: MOVLW 3703B4: MOVWF 2A03B5: CALL 1BB03B6: MOVLW 2003B7: MOVWF 2D03B8: CALL 03903B9: MOVLW 0D03BA: MOVWF 2D03BB: CALL 03903BC: MOVLW 0A03BD: MOVWF 2D03BE: CALL 039.................... LSB=(unsigned int8)SOUCET1;03BF: MOVF 25,W03C0: MOVWF 27.................... printf("LSB: %lX\r\n", LSB);03C1: MOVLW 3303C2: BSF 03.603C3: MOVWF 0D03C4: MOVLW 0003C5: MOVWF 0F03C6: BCF 03.003C7: MOVLW 0503C8: BCF 03.603C9: MOVWF 2903CA: CALL 16C03CB: MOVF 27,W03CC: MOVWF 2903CD: MOVLW 3703CE: MOVWF 2A03CF: CALL 1BB03D0: MOVLW 0D03D1: MOVWF 2D03D2: CALL 03903D3: MOVLW 0A03D4: MOVWF 2D03D5: CALL 039.................... //printf("Stav: %X (procenta)\r\n", STAV2);.................................................................................................... delay_ms (100);03D6: MOVLW 6403D7: MOVWF 2903D8: CALL 0D7.................... }03D9: SLEEPConfiguration Fuses:Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40