CCS PCM C Compiler, Version 4.106, 47914 14-IV-13 13:00Filename: D:\MLAB\Modules\Sensors\SHT25V01A\SW\PIC16F887\main.lstROM used: 2363 words (29%)Largest free fragment is 2048RAM used: 12 (3%) at main() level38 (10%) worst caseStack: 2 locations*0000: MOVLW 080001: MOVWF 0A0002: GOTO 0000003: NOP.................... /*.................... SHT25 sensor demo firmware.................... */........................................ #include "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.................... #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)*011D: MOVLW 28011E: MOVWF 04011F: BCF 03.70120: MOVF 00,W0121: BTFSC 03.20122: GOTO 1300123: MOVLW 020124: MOVWF 780125: CLRF 770126: DECFSZ 77,F0127: GOTO 1260128: DECFSZ 78,F0129: GOTO 125012A: MOVLW 97012B: MOVWF 77012C: DECFSZ 77,F012D: GOTO 12C012E: DECFSZ 00,F012F: GOTO 1230130: RETURN........................................ #use i2c(master, sda=PIN_C4, scl=PIN_C3)*0031: MOVLW 080032: MOVWF 780033: NOP0034: BCF 07.30035: BCF 20.30036: MOVF 20,W0037: BSF 03.50038: MOVWF 070039: NOP003A: BCF 03.5003B: RLF 28,F003C: BCF 07.4003D: BTFSS 03.0003E: GOTO 045003F: BSF 20.40040: MOVF 20,W0041: BSF 03.50042: MOVWF 070043: GOTO 0490044: BCF 03.50045: BCF 20.40046: MOVF 20,W0047: BSF 03.50048: MOVWF 070049: NOP004A: BCF 03.5004B: BSF 20.3004C: MOVF 20,W004D: BSF 03.5004E: MOVWF 07004F: BCF 03.50050: BTFSS 07.30051: GOTO 0500052: DECFSZ 78,F0053: GOTO 0330054: NOP0055: BCF 07.30056: BCF 20.30057: MOVF 20,W0058: BSF 03.50059: MOVWF 07005A: NOP005B: BCF 03.5005C: BSF 20.4005D: MOVF 20,W005E: BSF 03.5005F: MOVWF 070060: NOP0061: NOP0062: BCF 03.50063: BSF 20.30064: MOVF 20,W0065: BSF 03.50066: MOVWF 070067: BCF 03.50068: BTFSS 07.30069: GOTO 068006A: CLRF 78006B: NOP006C: BTFSC 07.4006D: BSF 78.0006E: BCF 07.3006F: BCF 20.30070: MOVF 20,W0071: BSF 03.50072: MOVWF 070073: BCF 03.50074: BCF 07.40075: BCF 20.40076: MOVF 20,W0077: BSF 03.50078: MOVWF 070079: BCF 03.5007A: RETURN*0131: MOVLW 080132: MOVWF 290133: MOVF 77,W0134: MOVWF 2A0135: BSF 20.40136: MOVF 20,W0137: BSF 03.50138: MOVWF 070139: NOP013A: BCF 03.5013B: BSF 20.3013C: MOVF 20,W013D: BSF 03.5013E: MOVWF 07013F: BCF 03.50140: BTFSS 07.30141: GOTO 1400142: BTFSC 07.40143: BSF 03.00144: BTFSS 07.40145: BCF 03.00146: RLF 78,F0147: NOP0148: BCF 20.30149: MOVF 20,W014A: BSF 03.5014B: MOVWF 07014C: BCF 03.5014D: BCF 07.3014E: DECFSZ 29,F014F: GOTO 1350150: BSF 20.40151: MOVF 20,W0152: BSF 03.50153: MOVWF 070154: NOP0155: BCF 03.50156: BCF 07.40157: MOVF 2A,W0158: BTFSC 03.20159: GOTO 15F015A: BCF 20.4015B: MOVF 20,W015C: BSF 03.5015D: MOVWF 07015E: BCF 03.5015F: NOP0160: BSF 20.30161: MOVF 20,W0162: BSF 03.50163: MOVWF 070164: BCF 03.50165: BTFSS 07.30166: GOTO 1650167: NOP0168: BCF 07.30169: BCF 20.3016A: MOVF 20,W016B: BSF 03.5016C: MOVWF 07016D: NOP016E: BCF 03.5016F: BCF 07.40170: BCF 20.40171: MOVF 20,W0172: BSF 03.50173: MOVWF 070174: BCF 03.50175: RETURN.................... #use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8) //rcv TXD xmit RXD*00B3: BSF 03.500B4: BCF 06.700B5: BCF 03.500B6: BCF 06.700B7: MOVLW 0800B8: MOVWF 7800B9: GOTO 0BA00BA: NOP00BB: BSF 78.700BC: GOTO 0CB00BD: BCF 78.700BE: RRF 34,F00BF: BTFSC 03.000C0: BSF 06.700C1: BTFSS 03.000C2: BCF 06.700C3: BSF 78.600C4: GOTO 0CB00C5: BCF 78.600C6: DECFSZ 78,F00C7: GOTO 0BE00C8: GOTO 0C900C9: NOP00CA: BSF 06.700CB: MOVLW 3F00CC: MOVWF 0400CD: DECFSZ 04,F00CE: GOTO 0CD00CF: NOP00D0: BTFSC 78.700D1: GOTO 0BD00D2: BTFSC 78.600D3: GOTO 0C500D4: RETURN............................................................ #include "SHT25.h"........................................ #define SHT25_HEATER_ON 0x04.................... #define SHT25_HEATER_OFF 0x00.................... #define SHT25_OTP_reload_off 0x02.................... #define SHT25_RH12_T14 0x00.................... #define SHT25_RH8_T12 0x01.................... #define SHT25_RH10_T13 0x80.................... #define SHT25_RH11_T11 0x81........................................ #define SHT25_ADDR 0x80........................................ #include "SHT25.c".................... void SHT25_soft_reset().................... {.................... i2c_start(); // Start condition*007B: BSF 20.4007C: MOVF 20,W007D: BSF 03.5007E: MOVWF 07007F: NOP0080: BCF 03.50081: BSF 20.30082: MOVF 20,W0083: BSF 03.50084: MOVWF 070085: NOP0086: BCF 03.50087: BCF 07.40088: BCF 20.40089: MOVF 20,W008A: BSF 03.5008B: MOVWF 07008C: NOP008D: BCF 03.5008E: BCF 07.3008F: BCF 20.30090: MOVF 20,W0091: BSF 03.50092: MOVWF 07.................... i2c_write(0x80); // Device address0093: MOVLW 800094: BCF 03.50095: MOVWF 280096: CALL 031.................... i2c_write(0xFE); // Device command0097: MOVLW FE0098: MOVWF 280099: CALL 031.................... i2c_stop(); // Stop condition009A: BCF 20.4009B: MOVF 20,W009C: BSF 03.5009D: MOVWF 07009E: NOP009F: BCF 03.500A0: BSF 20.300A1: MOVF 20,W00A2: BSF 03.500A3: MOVWF 0700A4: BCF 03.500A5: BTFSS 07.300A6: GOTO 0A500A7: NOP00A8: GOTO 0A900A9: NOP00AA: BSF 20.400AB: MOVF 20,W00AC: BSF 03.500AD: MOVWF 0700AE: NOP.................... }00AF: BCF 03.500B0: BSF 0A.300B1: BCF 0A.400B2: GOTO 066 (RETURN)........................................ unsigned int8 SHT25_setup(unsigned int8 setup_reg ) // writes to status register and returns its value.................... {.................... unsigned int8 reg;........................................ i2c_start(); // Start condition*0176: BSF 20.40177: MOVF 20,W0178: BSF 03.50179: MOVWF 07017A: NOP017B: BCF 03.5017C: BSF 20.3017D: MOVF 20,W017E: BSF 03.5017F: MOVWF 070180: NOP0181: BCF 03.50182: BCF 07.40183: BCF 20.40184: MOVF 20,W0185: BSF 03.50186: MOVWF 070187: NOP0188: BCF 03.50189: BCF 07.3018A: BCF 20.3018B: MOVF 20,W018C: BSF 03.5018D: MOVWF 07.................... i2c_write(SHT25_ADDR); // Device address018E: MOVLW 80018F: BCF 03.50190: MOVWF 280191: CALL 031.................... i2c_write(0xE7); // Device command0192: MOVLW E70193: MOVWF 280194: CALL 031........................................ i2c_start(); // Start condition0195: BSF 20.40196: MOVF 20,W0197: BSF 03.50198: MOVWF 070199: NOP019A: BCF 03.5019B: BSF 20.3019C: MOVF 20,W019D: BSF 03.5019E: MOVWF 07019F: NOP01A0: BCF 03.501A1: BTFSS 07.301A2: GOTO 1A101A3: BCF 07.401A4: BCF 20.401A5: MOVF 20,W01A6: BSF 03.501A7: MOVWF 0701A8: NOP01A9: BCF 03.501AA: BCF 07.301AB: BCF 20.301AC: MOVF 20,W01AD: BSF 03.501AE: MOVWF 07.................... i2c_write(SHT25_ADDR+1); // Device address01AF: MOVLW 8101B0: BCF 03.501B1: MOVWF 2801B2: CALL 031.................... reg=i2c_read(0); // Read status actual status register01B3: CLRF 7701B4: CALL 13101B5: MOVF 78,W01B6: MOVWF 24........................................ reg = (reg & 0x3A) | setup_reg;01B7: MOVF 24,W01B8: ANDLW 3A01B9: IORWF 23,W01BA: MOVWF 24........................................ i2c_start(); // Start condition01BB: BSF 20.401BC: MOVF 20,W01BD: BSF 03.501BE: MOVWF 0701BF: NOP01C0: BCF 03.501C1: BSF 20.301C2: MOVF 20,W01C3: BSF 03.501C4: MOVWF 0701C5: NOP01C6: BCF 03.501C7: BTFSS 07.301C8: GOTO 1C701C9: BCF 07.401CA: BCF 20.401CB: MOVF 20,W01CC: BSF 03.501CD: MOVWF 0701CE: NOP01CF: BCF 03.501D0: BCF 07.301D1: BCF 20.301D2: MOVF 20,W01D3: BSF 03.501D4: MOVWF 07.................... i2c_write(SHT25_ADDR); // Device address01D5: MOVLW 8001D6: BCF 03.501D7: MOVWF 2801D8: CALL 031.................... i2c_write(0xE6); // Write to status register01D9: MOVLW E601DA: MOVWF 2801DB: CALL 031.................... i2c_write(reg); // Device command01DC: MOVF 24,W01DD: MOVWF 2801DE: CALL 031.................... i2c_stop(); // Stop condition01DF: BCF 20.401E0: MOVF 20,W01E1: BSF 03.501E2: MOVWF 0701E3: NOP01E4: BCF 03.501E5: BSF 20.301E6: MOVF 20,W01E7: BSF 03.501E8: MOVWF 0701E9: BCF 03.501EA: BTFSS 07.301EB: GOTO 1EA01EC: NOP01ED: GOTO 1EE01EE: NOP01EF: BSF 20.401F0: MOVF 20,W01F1: BSF 03.501F2: MOVWF 0701F3: NOP........................................ delay_ms(10);01F4: MOVLW 0A01F5: BCF 03.501F6: MOVWF 2801F7: CALL 11D........................................ i2c_start(); // Start condition01F8: BSF 20.401F9: MOVF 20,W01FA: BSF 03.501FB: MOVWF 0701FC: NOP01FD: BCF 03.501FE: BSF 20.301FF: MOVF 20,W0200: BSF 03.50201: MOVWF 070202: NOP0203: BCF 03.50204: BCF 07.40205: BCF 20.40206: MOVF 20,W0207: BSF 03.50208: MOVWF 070209: NOP020A: BCF 03.5020B: BCF 07.3020C: BCF 20.3020D: MOVF 20,W020E: BSF 03.5020F: MOVWF 07.................... i2c_write(SHT25_ADDR); // Device address0210: MOVLW 800211: BCF 03.50212: MOVWF 280213: CALL 031.................... i2c_write(0xE7); // Device command0214: MOVLW E70215: MOVWF 280216: CALL 031........................................ i2c_start(); // Start condition0217: BSF 20.40218: MOVF 20,W0219: BSF 03.5021A: MOVWF 07021B: NOP021C: BCF 03.5021D: BSF 20.3021E: MOVF 20,W021F: BSF 03.50220: MOVWF 070221: NOP0222: BCF 03.50223: BTFSS 07.30224: GOTO 2230225: BCF 07.40226: BCF 20.40227: MOVF 20,W0228: BSF 03.50229: MOVWF 07022A: NOP022B: BCF 03.5022C: BCF 07.3022D: BCF 20.3022E: MOVF 20,W022F: BSF 03.50230: MOVWF 07.................... i2c_write(SHT25_ADDR+1); // Device address0231: MOVLW 810232: BCF 03.50233: MOVWF 280234: CALL 031.................... reg=i2c_read(0); // Read status actual status register0235: CLRF 770236: CALL 1310237: MOVF 78,W0238: MOVWF 24........................................ return (reg);0239: MOVF 24,W023A: MOVWF 78.................... }023B: BSF 0A.3023C: BCF 0A.4023D: GOTO 089 (RETURN)............................................................ float SHT25_get_temp().................... {.................... unsigned int8 MSB, LSB, Check;.................... unsigned int16 data;........................................ i2c_start();*054B: BSF 20.4054C: MOVF 20,W054D: BSF 03.5054E: MOVWF 07054F: NOP0550: BCF 03.50551: BSF 20.30552: MOVF 20,W0553: BSF 03.50554: MOVWF 070555: NOP0556: BCF 03.50557: BTFSS 07.30558: GOTO 5570559: BCF 07.4055A: BCF 20.4055B: MOVF 20,W055C: BSF 03.5055D: MOVWF 07055E: NOP055F: BCF 03.50560: BCF 07.30561: BCF 20.30562: MOVF 20,W0563: BSF 03.50564: MOVWF 07.................... I2C_Write(SHT25_ADDR);0565: MOVLW 800566: BCF 03.50567: MOVWF 280568: CALL 031.................... I2C_write(0xE3);0569: MOVLW E3056A: MOVWF 28056B: CALL 031.................... i2c_stop();056C: BCF 20.4056D: MOVF 20,W056E: BSF 03.5056F: MOVWF 070570: NOP0571: BCF 03.50572: BSF 20.30573: MOVF 20,W0574: BSF 03.50575: MOVWF 070576: BCF 03.50577: BTFSS 07.30578: GOTO 5770579: NOP057A: GOTO 57B057B: NOP057C: BSF 20.4057D: MOVF 20,W057E: BSF 03.5057F: MOVWF 070580: NOP........................................ delay_ms(100);0581: MOVLW 640582: BCF 03.50583: MOVWF 280584: CALL 11D........................................ i2c_start();0585: BSF 20.40586: MOVF 20,W0587: BSF 03.50588: MOVWF 070589: NOP058A: BCF 03.5058B: BSF 20.3058C: MOVF 20,W058D: BSF 03.5058E: MOVWF 07058F: NOP0590: BCF 03.50591: BCF 07.40592: BCF 20.40593: MOVF 20,W0594: BSF 03.50595: MOVWF 070596: NOP0597: BCF 03.50598: BCF 07.30599: BCF 20.3059A: MOVF 20,W059B: BSF 03.5059C: MOVWF 07.................... I2C_Write(SHT25_ADDR+1);059D: MOVLW 81059E: BCF 03.5059F: MOVWF 2805A0: CALL 031.................... MSB=i2c_read(1);05A1: MOVLW 0105A2: MOVWF 7705A3: CALL 13105A4: MOVF 78,W05A5: MOVWF 23.................... LSB=i2c_read(1);05A6: MOVLW 0105A7: MOVWF 7705A8: CALL 13105A9: MOVF 78,W05AA: MOVWF 24.................... Check=i2c_read(0);05AB: CLRF 7705AC: CALL 13105AD: MOVF 78,W05AE: MOVWF 25.................... i2c_stop();05AF: BCF 20.405B0: MOVF 20,W05B1: BSF 03.505B2: MOVWF 0705B3: NOP05B4: BCF 03.505B5: BSF 20.305B6: MOVF 20,W05B7: BSF 03.505B8: MOVWF 0705B9: BCF 03.505BA: BTFSS 07.305BB: GOTO 5BA05BC: NOP05BD: GOTO 5BE05BE: NOP05BF: BSF 20.405C0: MOVF 20,W05C1: BSF 03.505C2: MOVWF 0705C3: NOP........................................ LSB = LSB >> 2; // trow out status bits05C4: BCF 03.505C5: RRF 24,F05C6: RRF 24,F05C7: MOVLW 3F05C8: ANDWF 24,F........................................ data = (((unsigned int16) MSB << 8) + (LSB << 4));05C9: CLRF 2905CA: MOVF 23,W05CB: MOVWF 2805CC: MOVWF 2905CD: CLRF 2805CE: SWAPF 24,W05CF: MOVWF 7705D0: MOVLW F005D1: ANDWF 77,F05D2: MOVF 77,W05D3: ADDWF 28,W05D4: MOVWF 2605D5: MOVF 29,W05D6: MOVWF 2705D7: BTFSC 03.005D8: INCF 27,F.................... return(-46.85 + 175.72*((float)data/0xFFFF));05D9: MOVF 27,W05DA: MOVWF 2905DB: MOVF 26,W05DC: MOVWF 2805DD: CALL 2AE05DE: MOVF 77,W05DF: MOVWF 2805E0: MOVF 78,W05E1: MOVWF 2905E2: MOVF 79,W05E3: MOVWF 2A05E4: MOVF 7A,W05E5: MOVWF 2B05E6: MOVWF 2F05E7: MOVF 79,W05E8: MOVWF 2E05E9: MOVF 78,W05EA: MOVWF 2D05EB: MOVF 77,W05EC: MOVWF 2C05ED: CLRF 3305EE: MOVLW FF05EF: MOVWF 3205F0: MOVLW 7F05F1: MOVWF 3105F2: MOVLW 8E05F3: MOVWF 3005F4: CALL 2CB05F5: MOVLW 5205F6: MOVWF 3705F7: MOVLW B805F8: MOVWF 3605F9: MOVLW 2F05FA: MOVWF 3505FB: MOVLW 8605FC: MOVWF 3405FD: MOVF 7A,W05FE: MOVWF 3B05FF: MOVF 79,W0600: MOVWF 3A0601: MOVF 78,W0602: MOVWF 390603: MOVF 77,W0604: MOVWF 380605: CALL 3950606: BCF 03.10607: MOVLW 660608: MOVWF 2B0609: MOVWF 2A060A: MOVLW BB060B: MOVWF 29060C: MOVLW 84060D: MOVWF 28060E: MOVF 7A,W060F: MOVWF 2F0610: MOVF 79,W0611: MOVWF 2E0612: MOVF 78,W0613: MOVWF 2D0614: MOVF 77,W0615: MOVWF 2C0616: CALL 40A.................... }0617: BSF 0A.30618: BCF 0A.40619: GOTO 0C5 (RETURN)........................................ float SHT25_get_hum().................... {.................... unsigned int8 MSB, LSB, Check;.................... unsigned int16 data;........................................ i2c_start(); //RH*0743: BSF 20.40744: MOVF 20,W0745: BSF 03.50746: MOVWF 070747: NOP0748: BCF 03.50749: BSF 20.3074A: MOVF 20,W074B: BSF 03.5074C: MOVWF 07074D: NOP074E: BCF 03.5074F: BCF 07.40750: BCF 20.40751: MOVF 20,W0752: BSF 03.50753: MOVWF 070754: NOP0755: BCF 03.50756: BCF 07.30757: BCF 20.30758: MOVF 20,W0759: BSF 03.5075A: MOVWF 07.................... I2C_Write(SHT25_ADDR);075B: MOVLW 80075C: BCF 03.5075D: MOVWF 28075E: CALL 031.................... I2C_write(0xE5);075F: MOVLW E50760: MOVWF 280761: CALL 031........................................ delay_ms(100);0762: MOVLW 640763: MOVWF 280764: CALL 11D........................................ i2c_start();0765: BSF 20.40766: MOVF 20,W0767: BSF 03.50768: MOVWF 070769: NOP076A: BCF 03.5076B: BSF 20.3076C: MOVF 20,W076D: BSF 03.5076E: MOVWF 07076F: NOP0770: BCF 03.50771: BTFSS 07.30772: GOTO 7710773: BCF 07.40774: BCF 20.40775: MOVF 20,W0776: BSF 03.50777: MOVWF 070778: NOP0779: BCF 03.5077A: BCF 07.3077B: BCF 20.3077C: MOVF 20,W077D: BSF 03.5077E: MOVWF 07.................... I2C_Write(SHT25_ADDR+1);077F: MOVLW 810780: BCF 03.50781: MOVWF 280782: CALL 031.................... MSB=i2c_read(1);0783: MOVLW 010784: MOVWF 770785: CALL 1310786: MOVF 78,W0787: MOVWF 23.................... LSB=i2c_read(1);0788: MOVLW 010789: MOVWF 77078A: CALL 131078B: MOVF 78,W078C: MOVWF 24.................... Check=i2c_read(0);078D: CLRF 77078E: CALL 131078F: MOVF 78,W0790: MOVWF 25.................... i2c_stop();0791: BCF 20.40792: MOVF 20,W0793: BSF 03.50794: MOVWF 070795: NOP0796: BCF 03.50797: BSF 20.30798: MOVF 20,W0799: BSF 03.5079A: MOVWF 07079B: BCF 03.5079C: BTFSS 07.3079D: GOTO 79C079E: NOP079F: GOTO 7A007A0: NOP07A1: BSF 20.407A2: MOVF 20,W07A3: BSF 03.507A4: MOVWF 0707A5: NOP........................................ LSB = LSB >> 2; // trow out status bits07A6: BCF 03.507A7: RRF 24,F07A8: RRF 24,F07A9: MOVLW 3F07AA: ANDWF 24,F........................................ data = (((unsigned int16) MSB << 8) + (LSB << 4) );07AB: CLRF 2907AC: MOVF 23,W07AD: MOVWF 2807AE: MOVWF 2907AF: CLRF 2807B0: SWAPF 24,W07B1: MOVWF 7707B2: MOVLW F007B3: ANDWF 77,F07B4: MOVF 77,W07B5: ADDWF 28,W07B6: MOVWF 2607B7: MOVF 29,W07B8: MOVWF 2707B9: BTFSC 03.007BA: INCF 27,F.................... return( -6.0 + 125.0*((float)data/0xFFFF));07BB: MOVF 27,W07BC: MOVWF 2907BD: MOVF 26,W07BE: MOVWF 2807BF: CALL 2AE07C0: MOVF 77,W07C1: MOVWF 2807C2: MOVF 78,W07C3: MOVWF 2907C4: MOVF 79,W07C5: MOVWF 2A07C6: MOVF 7A,W07C7: MOVWF 2B07C8: MOVWF 2F07C9: MOVF 79,W07CA: MOVWF 2E07CB: MOVF 78,W07CC: MOVWF 2D07CD: MOVF 77,W07CE: MOVWF 2C07CF: CLRF 3307D0: MOVLW FF07D1: MOVWF 3207D2: MOVLW 7F07D3: MOVWF 3107D4: MOVLW 8E07D5: MOVWF 3007D6: CALL 2CB07D7: CLRF 3707D8: CLRF 3607D9: MOVLW 7A07DA: MOVWF 3507DB: MOVLW 8507DC: MOVWF 3407DD: MOVF 7A,W07DE: MOVWF 3B07DF: MOVF 79,W07E0: MOVWF 3A07E1: MOVF 78,W07E2: MOVWF 3907E3: MOVF 77,W07E4: MOVWF 3807E5: CALL 39507E6: BCF 03.107E7: CLRF 2B07E8: CLRF 2A07E9: MOVLW C007EA: MOVWF 2907EB: MOVLW 8107EC: MOVWF 2807ED: MOVF 7A,W07EE: MOVWF 2F07EF: MOVF 79,W07F0: MOVWF 2E07F1: MOVF 78,W07F2: MOVWF 2D07F3: MOVF 77,W07F4: MOVWF 2C07F5: CALL 40A.................... }07F6: BSF 0A.307F7: BCF 0A.407F8: GOTO 103 (RETURN)........................................................................................................................ void main().................... {*0030: DATA 00,00*0800: CLRF 040801: BCF 03.70802: MOVLW 1F0803: ANDWF 03,F0804: MOVLW 710805: BSF 03.50806: MOVWF 0F0807: MOVF 0F,W0808: BCF 06.70809: BCF 03.5080A: BSF 06.7080B: BSF 03.5080C: BSF 03.6080D: MOVF 09,W080E: ANDLW C0080F: MOVWF 090810: BCF 03.60811: BCF 1F.40812: BCF 1F.50813: MOVLW 000814: BSF 03.60815: MOVWF 080816: BCF 03.50817: CLRF 070818: CLRF 080819: CLRF 09*081D: CLRF 21.................... unsigned int8 i=0, sht_config;........................................ setup_adc_ports(NO_ANALOGS|VSS_VDD);081E: BSF 03.5081F: BSF 03.60820: MOVF 09,W0821: ANDLW C00822: MOVWF 090823: BCF 03.60824: BCF 1F.40825: BCF 1F.50826: MOVLW 000827: BSF 03.60828: MOVWF 08.................... setup_adc(ADC_CLOCK_DIV_2);0829: BCF 03.5082A: BCF 03.6082B: BCF 1F.6082C: BCF 1F.7082D: BSF 03.5082E: BCF 1F.7082F: BCF 03.50830: BSF 1F.0.................... setup_spi(SPI_SS_DISABLED);0831: BCF 14.50832: BCF 20.50833: MOVF 20,W0834: BSF 03.50835: MOVWF 070836: BCF 03.50837: BSF 20.40838: MOVF 20,W0839: BSF 03.5083A: MOVWF 07083B: BCF 03.5083C: BCF 20.3083D: MOVF 20,W083E: BSF 03.5083F: MOVWF 070840: MOVLW 010841: BCF 03.50842: MOVWF 140843: MOVLW 000844: BSF 03.50845: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);0846: MOVF 01,W0847: ANDLW C70848: IORLW 080849: MOVWF 01.................... setup_timer_1(T1_DISABLED);084A: BCF 03.5084B: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);084C: MOVLW 00084D: MOVWF 78084E: MOVWF 12084F: MOVLW 000850: BSF 03.50851: MOVWF 12.................... setup_ccp1(CCP_OFF);0852: BCF 03.50853: BSF 20.20854: MOVF 20,W0855: BSF 03.50856: MOVWF 070857: BCF 03.50858: CLRF 170859: BSF 03.5085A: CLRF 1B085B: CLRF 1C085C: MOVLW 01085D: MOVWF 1D.................... setup_comparator(NC_NC_NC_NC);085E: BCF 03.5085F: BSF 03.60860: CLRF 070861: CLRF 080862: CLRF 09........................................ SHT25_soft_reset();0863: BCF 0A.30864: BCF 03.60865: GOTO 07B0866: BSF 0A.3.................... printf("SHT25 humidity and temperature sensor example \r\n",);0867: MOVLW 040868: BSF 03.60869: MOVWF 0D086A: MOVLW 00086B: MOVWF 0F086C: BCF 0A.3086D: BCF 03.6086E: GOTO 0D5086F: BSF 0A.3.................... delay_ms (500);0870: MOVLW 020871: MOVWF 230872: MOVLW FA0873: MOVWF 280874: BCF 0A.30875: CALL 11D0876: BSF 0A.30877: DECFSZ 23,F0878: GOTO 072........................................ while(TRUE).................... {.................... if (i<10) sht_config = SHT25_RH12_T14 | SHT25_HEATER_OFF; // loop alters on chip heater on and off to check correct function0879: MOVF 21,W087A: SUBLW 09087B: BTFSS 03.0087C: GOTO 07F087D: CLRF 22.................... else087E: GOTO 085.................... {.................... sht_config = SHT25_RH12_T14 | SHT25_HEATER_ON;087F: MOVLW 040880: MOVWF 22.................... if (i > 20) i = 0;0881: MOVF 21,W0882: SUBLW 140883: BTFSS 03.00884: CLRF 21.................... }.................... printf("setup: %X %X \r\n",SHT25_setup(sht_config),sht_config);0885: MOVF 22,W0886: MOVWF 230887: BCF 0A.30888: GOTO 1760889: BSF 0A.3088A: MOVF 78,W088B: MOVWF 23088C: MOVLW 1D088D: BSF 03.6088E: MOVWF 0D088F: MOVLW 000890: MOVWF 0F0891: BCF 03.00892: MOVLW 070893: BCF 03.60894: MOVWF 270895: BCF 0A.30896: CALL 23E0897: BSF 0A.30898: MOVF 23,W0899: MOVWF 24089A: MOVLW 37089B: MOVWF 25089C: BCF 0A.3089D: CALL 28D089E: BSF 0A.3089F: MOVLW 2008A0: MOVWF 3408A1: BCF 0A.308A2: CALL 0B308A3: BSF 0A.308A4: MOVF 22,W08A5: MOVWF 2408A6: MOVLW 3708A7: MOVWF 2508A8: BCF 0A.308A9: CALL 28D08AA: BSF 0A.308AB: MOVLW 2008AC: MOVWF 3408AD: BCF 0A.308AE: CALL 0B308AF: BSF 0A.308B0: MOVLW 0D08B1: MOVWF 3408B2: BCF 0A.308B3: CALL 0B308B4: BSF 0A.308B5: MOVLW 0A08B6: MOVWF 3408B7: BCF 0A.308B8: CALL 0B308B9: BSF 0A.3.................... delay_ms (500);08BA: MOVLW 0208BB: MOVWF 2308BC: MOVLW FA08BD: MOVWF 2808BE: BCF 0A.308BF: CALL 11D08C0: BSF 0A.308C1: DECFSZ 23,F08C2: GOTO 0BC.................... printf("Temp: %f \r\n",SHT25_get_temp());08C3: BCF 0A.308C4: GOTO 54B08C5: BSF 0A.308C6: MOVF 77,W08C7: MOVWF 2308C8: MOVF 78,W08C9: MOVWF 2408CA: MOVF 79,W08CB: MOVWF 2508CC: MOVF 7A,W08CD: MOVWF 2608CE: MOVLW 2508CF: BSF 03.608D0: MOVWF 0D08D1: MOVLW 0008D2: MOVWF 0F08D3: BCF 03.008D4: MOVLW 0608D5: BCF 03.608D6: MOVWF 2708D7: BCF 0A.308D8: CALL 23E08D9: BSF 0A.308DA: MOVLW 8908DB: MOVWF 0408DC: MOVF 26,W08DD: MOVWF 2A08DE: MOVF 25,W08DF: MOVWF 2908E0: MOVF 24,W08E1: MOVWF 2808E2: MOVF 23,W08E3: MOVWF 2708E4: MOVLW 0208E5: MOVWF 2B08E6: BCF 0A.308E7: CALL 65C08E8: BSF 0A.308E9: MOVLW 2008EA: MOVWF 3408EB: BCF 0A.308EC: CALL 0B308ED: BSF 0A.308EE: MOVLW 0D08EF: MOVWF 3408F0: BCF 0A.308F1: CALL 0B308F2: BSF 0A.308F3: MOVLW 0A08F4: MOVWF 3408F5: BCF 0A.308F6: CALL 0B308F7: BSF 0A.3.................... delay_ms (500);08F8: MOVLW 0208F9: MOVWF 2308FA: MOVLW FA08FB: MOVWF 2808FC: BCF 0A.308FD: CALL 11D08FE: BSF 0A.308FF: DECFSZ 23,F0900: GOTO 0FA.................... printf("Hum: %f \r\n",SHT25_get_hum());0901: BCF 0A.30902: GOTO 7430903: BSF 0A.30904: MOVF 77,W0905: MOVWF 230906: MOVF 78,W0907: MOVWF 240908: MOVF 79,W0909: MOVWF 25090A: MOVF 7A,W090B: MOVWF 26090C: MOVLW 2B090D: BSF 03.6090E: MOVWF 0D090F: MOVLW 000910: MOVWF 0F0911: BCF 03.00912: MOVLW 050913: BCF 03.60914: MOVWF 270915: BCF 0A.30916: CALL 23E0917: BSF 0A.30918: MOVLW 890919: MOVWF 04091A: MOVF 26,W091B: MOVWF 2A091C: MOVF 25,W091D: MOVWF 29091E: MOVF 24,W091F: MOVWF 280920: MOVF 23,W0921: MOVWF 270922: MOVLW 020923: MOVWF 2B0924: BCF 0A.30925: CALL 65C0926: BSF 0A.30927: MOVLW 200928: MOVWF 340929: BCF 0A.3092A: CALL 0B3092B: BSF 0A.3092C: MOVLW 0D092D: MOVWF 34092E: BCF 0A.3092F: CALL 0B30930: BSF 0A.30931: MOVLW 0A0932: MOVWF 340933: BCF 0A.30934: CALL 0B30935: BSF 0A.3.................... delay_ms (1000);0936: MOVLW 040937: MOVWF 230938: MOVLW FA0939: MOVWF 28093A: BCF 0A.3093B: CALL 11D093C: BSF 0A.3093D: DECFSZ 23,F093E: GOTO 138.................... i++;093F: INCF 21,F.................... }0940: GOTO 079.................... }....................0941: SLEEPConfiguration Fuses:Word 1: 2CF4 INTRC_IO NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUGWord 2: 3FFF NOWRT BORV40