CCS PCM C Compiler, Version 4.106, 47914 25-6-13 09:31Filename: D:\Honza\MLAB\Modules\HumanInterfaces\TOUCHBOARD01A\SW\PIC16F887\main.lstROM used: 1007 words (12%)Largest free fragment is 2048RAM used: 7 (2%) at main() level19 (5%) worst caseStack: 2 locations*0000: MOVLW 020001: MOVWF 0A0002: GOTO 20B0003: NOP.................... #include "D:\Honza\MLAB\Modules\HumanInterfaces\TOUCHBOARD01A\SW\PIC16F887\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_IO //Internal RC Osc, no CLKOUT.................... #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)*01F5: MOVLW 2501F6: MOVWF 0401F7: BCF 03.701F8: MOVF 00,W01F9: BTFSC 03.201FA: GOTO 20801FB: MOVLW 0201FC: MOVWF 7801FD: CLRF 7701FE: DECFSZ 77,F01FF: GOTO 1FE0200: DECFSZ 78,F0201: GOTO 1FD0202: MOVLW 970203: MOVWF 770204: DECFSZ 77,F0205: GOTO 2040206: DECFSZ 00,F0207: GOTO 1FB0208: BCF 0A.30209: BCF 0A.4020A: GOTO 3EB (RETURN)............................................................ #define S_SDA PIN_C3.................... #define S_SCL PIN_C4.................... #use i2c(master, sda=S_SDA, scl=S_SCL)*009D: MOVLW 08009E: MOVWF 78009F: NOP00A0: BCF 07.400A1: BCF 20.400A2: MOVF 20,W00A3: BSF 03.500A4: MOVWF 0700A5: NOP00A6: BCF 03.500A7: RLF 24,F00A8: BCF 07.300A9: BTFSS 03.000AA: GOTO 0B100AB: BSF 20.300AC: MOVF 20,W00AD: BSF 03.500AE: MOVWF 0700AF: GOTO 0B500B0: BCF 03.500B1: BCF 20.300B2: MOVF 20,W00B3: BSF 03.500B4: MOVWF 0700B5: NOP00B6: BCF 03.500B7: BSF 20.400B8: MOVF 20,W00B9: BSF 03.500BA: MOVWF 0700BB: BCF 03.500BC: BTFSS 07.400BD: GOTO 0BC00BE: DECFSZ 78,F00BF: GOTO 09F00C0: NOP00C1: BCF 07.400C2: BCF 20.400C3: MOVF 20,W00C4: BSF 03.500C5: MOVWF 0700C6: NOP00C7: BCF 03.500C8: BSF 20.300C9: MOVF 20,W00CA: BSF 03.500CB: MOVWF 0700CC: NOP00CD: NOP00CE: BCF 03.500CF: BSF 20.400D0: MOVF 20,W00D1: BSF 03.500D2: MOVWF 0700D3: BCF 03.500D4: BTFSS 07.400D5: GOTO 0D400D6: CLRF 7800D7: NOP00D8: BTFSC 07.300D9: BSF 78.000DA: BCF 07.400DB: BCF 20.400DC: MOVF 20,W00DD: BSF 03.500DE: MOVWF 0700DF: BCF 03.500E0: BCF 07.300E1: BCF 20.300E2: MOVF 20,W00E3: BSF 03.500E4: MOVWF 0700E5: BCF 03.500E6: RETURN00E7: MOVLW 0800E8: MOVWF 2500E9: MOVF 77,W00EA: MOVWF 2600EB: BSF 20.300EC: MOVF 20,W00ED: BSF 03.500EE: MOVWF 0700EF: NOP00F0: BCF 03.500F1: BSF 20.400F2: MOVF 20,W00F3: BSF 03.500F4: MOVWF 0700F5: BCF 03.500F6: BTFSS 07.400F7: GOTO 0F600F8: BTFSC 07.300F9: BSF 03.000FA: BTFSS 07.300FB: BCF 03.000FC: RLF 78,F00FD: NOP00FE: BCF 20.400FF: MOVF 20,W0100: BSF 03.50101: MOVWF 070102: BCF 03.50103: BCF 07.40104: DECFSZ 25,F0105: GOTO 0EB0106: BSF 20.30107: MOVF 20,W0108: BSF 03.50109: MOVWF 07010A: NOP010B: BCF 03.5010C: BCF 07.3010D: MOVF 26,W010E: BTFSC 03.2010F: GOTO 1150110: BCF 20.30111: MOVF 20,W0112: BSF 03.50113: MOVWF 070114: BCF 03.50115: NOP0116: BSF 20.40117: MOVF 20,W0118: BSF 03.50119: MOVWF 07011A: BCF 03.5011B: BTFSS 07.4011C: GOTO 11B011D: NOP011E: BCF 07.4011F: BCF 20.40120: MOVF 20,W0121: BSF 03.50122: MOVWF 070123: NOP0124: BCF 03.50125: BCF 07.30126: BCF 20.30127: MOVF 20,W0128: BSF 03.50129: MOVWF 07012A: BCF 03.5012B: RETURN.................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD*0033: BSF 03.50034: BCF 06.30035: BCF 03.50036: BCF 06.30037: MOVLW 080038: MOVWF 780039: GOTO 03A003A: NOP003B: BSF 78.7003C: GOTO 04B003D: BCF 78.7003E: RRF 2B,F003F: BTFSC 03.00040: BSF 06.30041: BTFSS 03.00042: BCF 06.30043: BSF 78.60044: GOTO 04B0045: BCF 78.60046: DECFSZ 78,F0047: GOTO 03E0048: GOTO 0490049: NOP004A: BSF 06.3004B: MOVLW 3F004C: MOVWF 04004D: DECFSZ 04,F004E: GOTO 04D004F: NOP0050: BTFSC 78.70051: GOTO 03D0052: BTFSC 78.60053: GOTO 0450054: RETURN............................................................ void main().................... {*020B: CLRF 04020C: BCF 03.7020D: MOVLW 1F020E: ANDWF 03,F020F: MOVLW 710210: BSF 03.50211: MOVWF 0F0212: MOVF 0F,W0213: BCF 06.30214: BCF 03.50215: BSF 06.30216: BSF 03.50217: BSF 03.60218: MOVF 09,W0219: ANDLW C0021A: MOVWF 09021B: BCF 03.6021C: BCF 1F.4021D: BCF 1F.5021E: MOVLW 00021F: BSF 03.60220: MOVWF 080221: BCF 03.50222: CLRF 070223: CLRF 080224: CLRF 09........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);*0228: BSF 03.50229: BSF 03.6022A: MOVF 09,W022B: ANDLW C0022C: MOVWF 09022D: BCF 03.6022E: BCF 1F.4022F: BCF 1F.50230: MOVLW 000231: BSF 03.60232: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);0233: BCF 03.50234: BCF 03.60235: BCF 1F.60236: BCF 1F.70237: BSF 03.50238: BCF 1F.70239: BCF 03.5023A: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);023B: BCF 14.5023C: BCF 20.5023D: MOVF 20,W023E: BSF 03.5023F: MOVWF 070240: BCF 03.50241: BSF 20.40242: MOVF 20,W0243: BSF 03.50244: MOVWF 070245: BCF 03.50246: BCF 20.30247: MOVF 20,W0248: BSF 03.50249: MOVWF 07024A: MOVLW 01024B: BCF 03.5024C: MOVWF 14024D: MOVLW 00024E: BSF 03.5024F: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);0250: MOVF 01,W0251: ANDLW C70252: IORLW 080253: MOVWF 01.................... setup_timer_1(T1_DISABLED);0254: BCF 03.50255: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);0256: MOVLW 000257: MOVWF 780258: MOVWF 120259: MOVLW 00025A: BSF 03.5025B: MOVWF 12.................... setup_ccp1(CCP_OFF);025C: BCF 03.5025D: BSF 20.2025E: MOVF 20,W025F: BSF 03.50260: MOVWF 070261: BCF 03.50262: CLRF 170263: BSF 03.50264: CLRF 1B0265: CLRF 1C0266: MOVLW 010267: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard0268: BCF 03.50269: BSF 03.6026A: CLRF 07026B: CLRF 08026C: CLRF 09........................................ printf("Simple Thermomether \r\n",);026D: MOVLW 04026E: MOVWF 0D026F: MOVLW 000270: MOVWF 0F0271: BCF 03.60272: GOTO 055........................................ unsigned int STAV1;.................... unsigned int data1;............................................................ while(TRUE).................... {................................................................................ //akcelerometr.................... int1 ack=0;0273: BCF 23.0.................... i2c_start(); // If the write command is acknowledged,0274: BSF 20.30275: MOVF 20,W0276: BSF 03.50277: MOVWF 070278: NOP0279: BCF 03.5027A: BSF 20.4027B: MOVF 20,W027C: BSF 03.5027D: MOVWF 07027E: NOP027F: BCF 03.50280: BCF 07.30281: BCF 20.30282: MOVF 20,W0283: BSF 03.50284: MOVWF 070285: NOP0286: BCF 03.50287: BCF 07.40288: BCF 20.40289: MOVF 20,W028A: BSF 03.5028B: MOVWF 07.................... ack = i2c_write(0xB5);// then the device is ready.028C: MOVLW B5028D: BCF 03.5028E: MOVWF 24028F: CALL 09D0290: MOVF 78,W0291: BCF 23.00292: BTFSC 78.00293: BSF 23.0.................... i2c_stop();0294: BCF 20.30295: MOVF 20,W0296: BSF 03.50297: MOVWF 070298: NOP0299: BCF 03.5029A: BSF 20.4029B: MOVF 20,W029C: BSF 03.5029D: MOVWF 07029E: BCF 03.5029F: BTFSS 07.402A0: GOTO 29F02A1: NOP02A2: GOTO 2A302A3: NOP02A4: BSF 20.302A5: MOVF 20,W02A6: BSF 03.502A7: MOVWF 0702A8: NOP.................... ack=!ack;02A9: MOVLW 0102AA: BCF 03.502AB: XORWF 23,F........................................ i2c_stop();02AC: BCF 20.302AD: MOVF 20,W02AE: BSF 03.502AF: MOVWF 0702B0: NOP02B1: BCF 03.502B2: BSF 20.402B3: MOVF 20,W02B4: BSF 03.502B5: MOVWF 0702B6: BCF 03.502B7: BTFSS 07.402B8: GOTO 2B702B9: NOP02BA: GOTO 2BB02BB: NOP02BC: BSF 20.302BD: MOVF 20,W02BE: BSF 03.502BF: MOVWF 0702C0: NOP........................................ i2c_start();02C1: BCF 03.502C2: BSF 20.302C3: MOVF 20,W02C4: BSF 03.502C5: MOVWF 0702C6: NOP02C7: BCF 03.502C8: BSF 20.402C9: MOVF 20,W02CA: BSF 03.502CB: MOVWF 0702CC: NOP02CD: BCF 03.502CE: BCF 07.302CF: BCF 20.302D0: MOVF 20,W02D1: BSF 03.502D2: MOVWF 0702D3: NOP02D4: BCF 03.502D5: BCF 07.402D6: BCF 20.402D7: MOVF 20,W02D8: BSF 03.502D9: MOVWF 07.................... I2C_Write(0xB4);02DA: MOVLW B402DB: BCF 03.502DC: MOVWF 2402DD: CALL 09D.................... I2C_write(0x00);02DE: CLRF 2402DF: CALL 09D.................... i2c_stop();02E0: BCF 20.302E1: MOVF 20,W02E2: BSF 03.502E3: MOVWF 0702E4: NOP02E5: BCF 03.502E6: BSF 20.402E7: MOVF 20,W02E8: BSF 03.502E9: MOVWF 0702EA: BCF 03.502EB: BTFSS 07.402EC: GOTO 2EB02ED: NOP02EE: GOTO 2EF02EF: NOP02F0: BSF 20.302F1: MOVF 20,W02F2: BSF 03.502F3: MOVWF 0702F4: NOP.................... i2c_start();02F5: BCF 03.502F6: BSF 20.302F7: MOVF 20,W02F8: BSF 03.502F9: MOVWF 0702FA: NOP02FB: BCF 03.502FC: BSF 20.402FD: MOVF 20,W02FE: BSF 03.502FF: MOVWF 070300: NOP0301: BCF 03.50302: BCF 07.30303: BCF 20.30304: MOVF 20,W0305: BSF 03.50306: MOVWF 070307: NOP0308: BCF 03.50309: BCF 07.4030A: BCF 20.4030B: MOVF 20,W030C: BSF 03.5030D: MOVWF 07.................... I2C_Write(0xB5);030E: MOVLW B5030F: BCF 03.50310: MOVWF 240311: CALL 09D.................... STAV1=i2c_read(0);0312: CLRF 770313: CALL 0E70314: MOVF 78,W0315: MOVWF 21.................... i2c_stop();0316: BCF 20.30317: MOVF 20,W0318: BSF 03.50319: MOVWF 07031A: NOP031B: BCF 03.5031C: BSF 20.4031D: MOVF 20,W031E: BSF 03.5031F: MOVWF 070320: BCF 03.50321: BTFSS 07.40322: GOTO 3210323: NOP0324: GOTO 3250325: NOP0326: BSF 20.30327: MOVF 20,W0328: BSF 03.50329: MOVWF 07032A: NOP........................................ i2c_start();032B: BCF 03.5032C: BSF 20.3032D: MOVF 20,W032E: BSF 03.5032F: MOVWF 070330: NOP0331: BCF 03.50332: BSF 20.40333: MOVF 20,W0334: BSF 03.50335: MOVWF 070336: NOP0337: BCF 03.50338: BCF 07.30339: BCF 20.3033A: MOVF 20,W033B: BSF 03.5033C: MOVWF 07033D: NOP033E: BCF 03.5033F: BCF 07.40340: BCF 20.40341: MOVF 20,W0342: BSF 03.50343: MOVWF 07.................... I2C_Write(0xB4);0344: MOVLW B40345: BCF 03.50346: MOVWF 240347: CALL 09D.................... I2C_write(0x01);0348: MOVLW 010349: MOVWF 24034A: CALL 09D.................... i2c_stop();034B: BCF 20.3034C: MOVF 20,W034D: BSF 03.5034E: MOVWF 07034F: NOP0350: BCF 03.50351: BSF 20.40352: MOVF 20,W0353: BSF 03.50354: MOVWF 070355: BCF 03.50356: BTFSS 07.40357: GOTO 3560358: NOP0359: GOTO 35A035A: NOP035B: BSF 20.3035C: MOVF 20,W035D: BSF 03.5035E: MOVWF 07035F: NOP.................... i2c_start();0360: BCF 03.50361: BSF 20.30362: MOVF 20,W0363: BSF 03.50364: MOVWF 070365: NOP0366: BCF 03.50367: BSF 20.40368: MOVF 20,W0369: BSF 03.5036A: MOVWF 07036B: NOP036C: BCF 03.5036D: BCF 07.3036E: BCF 20.3036F: MOVF 20,W0370: BSF 03.50371: MOVWF 070372: NOP0373: BCF 03.50374: BCF 07.40375: BCF 20.40376: MOVF 20,W0377: BSF 03.50378: MOVWF 07.................... I2C_Write(0xB5);0379: MOVLW B5037A: BCF 03.5037B: MOVWF 24037C: CALL 09D.................... data1=i2c_read(0);037D: CLRF 77037E: CALL 0E7037F: MOVF 78,W0380: MOVWF 22.................... i2c_stop();0381: BCF 20.30382: MOVF 20,W0383: BSF 03.50384: MOVWF 070385: NOP0386: BCF 03.50387: BSF 20.40388: MOVF 20,W0389: BSF 03.5038A: MOVWF 07038B: BCF 03.5038C: BTFSS 07.4038D: GOTO 38C038E: NOP038F: GOTO 3900390: NOP0391: BSF 20.30392: MOVF 20,W0393: BSF 03.50394: MOVWF 070395: NOP.................................................................................................... printf("Stav: %d (procenta)\r\n", ack);0396: MOVLW 000397: BCF 03.50398: BTFSC 23.00399: MOVLW 01039A: MOVWF 24039B: MOVLW 10039C: BSF 03.6039D: MOVWF 0D039E: MOVLW 00039F: MOVWF 0F03A0: BCF 03.003A1: MOVLW 0603A2: BCF 03.603A3: MOVWF 2503A4: CALL 12C03A5: MOVF 24,W03A6: MOVWF 2503A7: MOVLW 1F03A8: MOVWF 2603A9: CALL 19003AA: MOVLW 1403AB: BSF 03.603AC: MOVWF 0D03AD: MOVLW 0003AE: MOVWF 0F03AF: BCF 03.003B0: MOVLW 0D03B1: BCF 03.603B2: MOVWF 2503B3: CALL 12C.................... printf("Stav00: %d (procenta)\r\n", STAV1);03B4: MOVLW 1B03B5: BSF 03.603B6: MOVWF 0D03B7: MOVLW 0003B8: MOVWF 0F03B9: BCF 03.003BA: MOVLW 0803BB: BCF 03.603BC: MOVWF 2503BD: CALL 12C03BE: MOVF 21,W03BF: MOVWF 2503C0: MOVLW 1F03C1: MOVWF 2603C2: CALL 19003C3: MOVLW 2003C4: BSF 03.603C5: MOVWF 0D03C6: MOVLW 0003C7: MOVWF 0F03C8: BCF 03.003C9: MOVLW 0D03CA: BCF 03.603CB: MOVWF 2503CC: CALL 12C.................... printf("Stav01: %d (procenta)\r\n", data1);03CD: MOVLW 2703CE: BSF 03.603CF: MOVWF 0D03D0: MOVLW 0003D1: MOVWF 0F03D2: BCF 03.003D3: MOVLW 0803D4: BCF 03.603D5: MOVWF 2503D6: CALL 12C03D7: MOVF 22,W03D8: MOVWF 2503D9: MOVLW 1F03DA: MOVWF 2603DB: CALL 19003DC: MOVLW 2C03DD: BSF 03.603DE: MOVWF 0D03DF: MOVLW 0003E0: MOVWF 0F03E1: BCF 03.003E2: MOVLW 0D03E3: BCF 03.603E4: MOVWF 2503E5: CALL 12C.................... delay_ms(500);03E6: MOVLW 0203E7: MOVWF 2403E8: MOVLW FA03E9: MOVWF 2503EA: GOTO 1F503EB: DECFSZ 24,F03EC: GOTO 3E8.................... }03ED: GOTO 273.................... }03EE: SLEEPConfiguration Fuses:Word 1: 2CF4 INTRC_IO NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40