0,0 → 1,623 |
CCS PCM C Compiler, Version 4.106, 47914 29-6-13 22:36 |
|
Filename: D:\Honza\MLAB\Modules\Sensors\LTS01A\SW\PIC16F887\main.lst |
|
ROM used: 1725 words (21%) |
Largest free fragment is 2048 |
RAM used: 10 (3%) at main() level |
38 (10%) worst case |
Stack: 2 locations |
|
* |
0000: MOVLW 05 |
0001: MOVWF 0A |
0002: GOTO 574 |
0003: NOP |
.................... #include "D:\Honza\MLAB\Modules\Sensors\LTS01A\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 //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) |
* |
055E: MOVLW 28 |
055F: MOVWF 04 |
0560: BCF 03.7 |
0561: MOVF 00,W |
0562: BTFSC 03.2 |
0563: GOTO 571 |
0564: MOVLW 02 |
0565: MOVWF 78 |
0566: CLRF 77 |
0567: DECFSZ 77,F |
0568: GOTO 567 |
0569: DECFSZ 78,F |
056A: GOTO 566 |
056B: MOVLW 97 |
056C: MOVWF 77 |
056D: DECFSZ 77,F |
056E: GOTO 56D |
056F: DECFSZ 00,F |
0570: GOTO 564 |
0571: BCF 0A.3 |
0572: BCF 0A.4 |
0573: GOTO 6B9 (RETURN) |
.................... |
.................... |
.................... |
.................... #define S_SDA PIN_C3 |
.................... #define S_SCL PIN_C4 |
.................... #use i2c(master, sda=S_SDA, scl=S_SCL) |
* |
008D: MOVLW 08 |
008E: MOVWF 78 |
008F: NOP |
0090: BCF 07.4 |
0091: BCF 20.4 |
0092: MOVF 20,W |
0093: BSF 03.5 |
0094: MOVWF 07 |
0095: NOP |
0096: BCF 03.5 |
0097: RLF 27,F |
0098: BCF 07.3 |
0099: BTFSS 03.0 |
009A: GOTO 0A1 |
009B: BSF 20.3 |
009C: MOVF 20,W |
009D: BSF 03.5 |
009E: MOVWF 07 |
009F: GOTO 0A5 |
00A0: BCF 03.5 |
00A1: BCF 20.3 |
00A2: MOVF 20,W |
00A3: BSF 03.5 |
00A4: MOVWF 07 |
00A5: NOP |
00A6: BCF 03.5 |
00A7: BSF 20.4 |
00A8: MOVF 20,W |
00A9: BSF 03.5 |
00AA: MOVWF 07 |
00AB: BCF 03.5 |
00AC: BTFSS 07.4 |
00AD: GOTO 0AC |
00AE: DECFSZ 78,F |
00AF: GOTO 08F |
00B0: NOP |
00B1: BCF 07.4 |
00B2: BCF 20.4 |
00B3: MOVF 20,W |
00B4: BSF 03.5 |
00B5: MOVWF 07 |
00B6: NOP |
00B7: BCF 03.5 |
00B8: BSF 20.3 |
00B9: MOVF 20,W |
00BA: BSF 03.5 |
00BB: MOVWF 07 |
00BC: NOP |
00BD: NOP |
00BE: BCF 03.5 |
00BF: BSF 20.4 |
00C0: MOVF 20,W |
00C1: BSF 03.5 |
00C2: MOVWF 07 |
00C3: BCF 03.5 |
00C4: BTFSS 07.4 |
00C5: GOTO 0C4 |
00C6: CLRF 78 |
00C7: NOP |
00C8: BTFSC 07.3 |
00C9: BSF 78.0 |
00CA: BCF 07.4 |
00CB: BCF 20.4 |
00CC: MOVF 20,W |
00CD: BSF 03.5 |
00CE: MOVWF 07 |
00CF: BCF 03.5 |
00D0: BCF 07.3 |
00D1: BCF 20.3 |
00D2: MOVF 20,W |
00D3: BSF 03.5 |
00D4: MOVWF 07 |
00D5: BCF 03.5 |
00D6: RETURN |
00D7: MOVLW 08 |
00D8: MOVWF 28 |
00D9: MOVF 77,W |
00DA: MOVWF 29 |
00DB: BSF 20.3 |
00DC: MOVF 20,W |
00DD: BSF 03.5 |
00DE: MOVWF 07 |
00DF: NOP |
00E0: BCF 03.5 |
00E1: BSF 20.4 |
00E2: MOVF 20,W |
00E3: BSF 03.5 |
00E4: MOVWF 07 |
00E5: BCF 03.5 |
00E6: BTFSS 07.4 |
00E7: GOTO 0E6 |
00E8: BTFSC 07.3 |
00E9: BSF 03.0 |
00EA: BTFSS 07.3 |
00EB: BCF 03.0 |
00EC: RLF 78,F |
00ED: NOP |
00EE: BCF 20.4 |
00EF: MOVF 20,W |
00F0: BSF 03.5 |
00F1: MOVWF 07 |
00F2: BCF 03.5 |
00F3: BCF 07.4 |
00F4: DECFSZ 28,F |
00F5: GOTO 0DB |
00F6: BSF 20.3 |
00F7: MOVF 20,W |
00F8: BSF 03.5 |
00F9: MOVWF 07 |
00FA: NOP |
00FB: BCF 03.5 |
00FC: BCF 07.3 |
00FD: MOVF 29,W |
00FE: BTFSC 03.2 |
00FF: GOTO 105 |
0100: BCF 20.3 |
0101: MOVF 20,W |
0102: BSF 03.5 |
0103: MOVWF 07 |
0104: BCF 03.5 |
0105: NOP |
0106: BSF 20.4 |
0107: MOVF 20,W |
0108: BSF 03.5 |
0109: MOVWF 07 |
010A: BCF 03.5 |
010B: BTFSS 07.4 |
010C: GOTO 10B |
010D: NOP |
010E: BCF 07.4 |
010F: BCF 20.4 |
0110: MOVF 20,W |
0111: BSF 03.5 |
0112: MOVWF 07 |
0113: NOP |
0114: BCF 03.5 |
0115: BCF 07.3 |
0116: BCF 20.3 |
0117: MOVF 20,W |
0118: BSF 03.5 |
0119: MOVWF 07 |
011A: BCF 03.5 |
011B: RETURN |
.................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD |
* |
0025: BSF 03.5 |
0026: BCF 06.3 |
0027: BCF 03.5 |
0028: BCF 06.3 |
0029: MOVLW 08 |
002A: MOVWF 78 |
002B: GOTO 02C |
002C: NOP |
002D: BSF 78.7 |
002E: GOTO 03D |
002F: BCF 78.7 |
0030: RRF 34,F |
0031: BTFSC 03.0 |
0032: BSF 06.3 |
0033: BTFSS 03.0 |
0034: BCF 06.3 |
0035: BSF 78.6 |
0036: GOTO 03D |
0037: BCF 78.6 |
0038: DECFSZ 78,F |
0039: GOTO 030 |
003A: GOTO 03B |
003B: NOP |
003C: BSF 06.3 |
003D: MOVLW 3F |
003E: MOVWF 04 |
003F: DECFSZ 04,F |
0040: GOTO 03F |
0041: NOP |
0042: BTFSC 78.7 |
0043: GOTO 02F |
0044: BTFSC 78.6 |
0045: GOTO 037 |
0046: RETURN |
.................... |
.................... |
.................... void main() |
.................... { |
* |
0574: CLRF 04 |
0575: BCF 03.7 |
0576: MOVLW 1F |
0577: ANDWF 03,F |
0578: MOVLW 71 |
0579: BSF 03.5 |
057A: MOVWF 0F |
057B: MOVF 0F,W |
057C: BCF 06.3 |
057D: BCF 03.5 |
057E: BSF 06.3 |
057F: BSF 03.5 |
0580: BSF 03.6 |
0581: MOVF 09,W |
0582: ANDLW C0 |
0583: MOVWF 09 |
0584: BCF 03.6 |
0585: BCF 1F.4 |
0586: BCF 1F.5 |
0587: MOVLW 00 |
0588: BSF 03.6 |
0589: MOVWF 08 |
058A: BCF 03.5 |
058B: CLRF 07 |
058C: CLRF 08 |
058D: CLRF 09 |
.................... |
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD); |
* |
0591: BSF 03.5 |
0592: BSF 03.6 |
0593: MOVF 09,W |
0594: ANDLW C0 |
0595: MOVWF 09 |
0596: BCF 03.6 |
0597: BCF 1F.4 |
0598: BCF 1F.5 |
0599: MOVLW 00 |
059A: BSF 03.6 |
059B: MOVWF 08 |
.................... setup_adc(ADC_CLOCK_DIV_2); |
059C: BCF 03.5 |
059D: BCF 03.6 |
059E: BCF 1F.6 |
059F: BCF 1F.7 |
05A0: BSF 03.5 |
05A1: BCF 1F.7 |
05A2: BCF 03.5 |
05A3: BSF 1F.0 |
.................... setup_spi(SPI_SS_DISABLED); |
05A4: BCF 14.5 |
05A5: BCF 20.5 |
05A6: MOVF 20,W |
05A7: BSF 03.5 |
05A8: MOVWF 07 |
05A9: BCF 03.5 |
05AA: BSF 20.4 |
05AB: MOVF 20,W |
05AC: BSF 03.5 |
05AD: MOVWF 07 |
05AE: BCF 03.5 |
05AF: BCF 20.3 |
05B0: MOVF 20,W |
05B1: BSF 03.5 |
05B2: MOVWF 07 |
05B3: MOVLW 01 |
05B4: BCF 03.5 |
05B5: MOVWF 14 |
05B6: MOVLW 00 |
05B7: BSF 03.5 |
05B8: MOVWF 14 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
05B9: MOVF 01,W |
05BA: ANDLW C7 |
05BB: IORLW 08 |
05BC: MOVWF 01 |
.................... setup_timer_1(T1_DISABLED); |
05BD: BCF 03.5 |
05BE: CLRF 10 |
.................... setup_timer_2(T2_DISABLED,0,1); |
05BF: MOVLW 00 |
05C0: MOVWF 78 |
05C1: MOVWF 12 |
05C2: MOVLW 00 |
05C3: BSF 03.5 |
05C4: MOVWF 12 |
.................... setup_ccp1(CCP_OFF); |
05C5: BCF 03.5 |
05C6: BSF 20.2 |
05C7: MOVF 20,W |
05C8: BSF 03.5 |
05C9: MOVWF 07 |
05CA: BCF 03.5 |
05CB: CLRF 17 |
05CC: BSF 03.5 |
05CD: CLRF 1B |
05CE: CLRF 1C |
05CF: MOVLW 01 |
05D0: MOVWF 1D |
.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard |
05D1: BCF 03.5 |
05D2: BSF 03.6 |
05D3: CLRF 07 |
05D4: CLRF 08 |
05D5: CLRF 09 |
.................... |
.................... printf("Simple Thermomether \r\n",); |
05D6: MOVLW 04 |
05D7: MOVWF 0D |
05D8: MOVLW 00 |
05D9: MOVWF 0F |
05DA: BCF 03.6 |
05DB: CALL 047 |
.................... printf("(c) MLAB 2013 JACHO \r\n",); |
05DC: MOVLW 10 |
05DD: BSF 03.6 |
05DE: MOVWF 0D |
05DF: MOVLW 00 |
05E0: MOVWF 0F |
05E1: BCF 03.6 |
05E2: CALL 047 |
.................... |
.................... signed int8 MSB; |
.................... byte LSB; |
.................... float t; |
.................... |
.................... while(TRUE) |
.................... { |
.................... |
.................... |
.................... |
.................... i2c_start(); |
05E3: BSF 20.3 |
05E4: MOVF 20,W |
05E5: BSF 03.5 |
05E6: MOVWF 07 |
05E7: NOP |
05E8: BCF 03.5 |
05E9: BSF 20.4 |
05EA: MOVF 20,W |
05EB: BSF 03.5 |
05EC: MOVWF 07 |
05ED: NOP |
05EE: BCF 03.5 |
05EF: BCF 07.3 |
05F0: BCF 20.3 |
05F1: MOVF 20,W |
05F2: BSF 03.5 |
05F3: MOVWF 07 |
05F4: NOP |
05F5: BCF 03.5 |
05F6: BCF 07.4 |
05F7: BCF 20.4 |
05F8: MOVF 20,W |
05F9: BSF 03.5 |
05FA: MOVWF 07 |
.................... I2C_Write(0x9E); |
05FB: MOVLW 9E |
05FC: BCF 03.5 |
05FD: MOVWF 27 |
05FE: CALL 08D |
.................... I2C_write(0x00); |
05FF: CLRF 27 |
0600: CALL 08D |
.................... i2c_stop(); |
0601: BCF 20.3 |
0602: MOVF 20,W |
0603: BSF 03.5 |
0604: MOVWF 07 |
0605: NOP |
0606: BCF 03.5 |
0607: BSF 20.4 |
0608: MOVF 20,W |
0609: BSF 03.5 |
060A: MOVWF 07 |
060B: BCF 03.5 |
060C: BTFSS 07.4 |
060D: GOTO 60C |
060E: NOP |
060F: GOTO 610 |
0610: NOP |
0611: BSF 20.3 |
0612: MOVF 20,W |
0613: BSF 03.5 |
0614: MOVWF 07 |
0615: NOP |
.................... i2c_start(); |
0616: BCF 03.5 |
0617: BSF 20.3 |
0618: MOVF 20,W |
0619: BSF 03.5 |
061A: MOVWF 07 |
061B: NOP |
061C: BCF 03.5 |
061D: BSF 20.4 |
061E: MOVF 20,W |
061F: BSF 03.5 |
0620: MOVWF 07 |
0621: NOP |
0622: BCF 03.5 |
0623: BCF 07.3 |
0624: BCF 20.3 |
0625: MOVF 20,W |
0626: BSF 03.5 |
0627: MOVWF 07 |
0628: NOP |
0629: BCF 03.5 |
062A: BCF 07.4 |
062B: BCF 20.4 |
062C: MOVF 20,W |
062D: BSF 03.5 |
062E: MOVWF 07 |
.................... I2C_Write(0x9F); |
062F: MOVLW 9F |
0630: BCF 03.5 |
0631: MOVWF 27 |
0632: CALL 08D |
.................... MSB=i2c_read(1); |
0633: MOVLW 01 |
0634: MOVWF 77 |
0635: CALL 0D7 |
0636: MOVF 78,W |
0637: MOVWF 21 |
.................... LSB=i2c_read(0); |
0638: CLRF 77 |
0639: CALL 0D7 |
063A: MOVF 78,W |
063B: MOVWF 22 |
.................... i2c_stop(); |
063C: BCF 20.3 |
063D: MOVF 20,W |
063E: BSF 03.5 |
063F: MOVWF 07 |
0640: NOP |
0641: BCF 03.5 |
0642: BSF 20.4 |
0643: MOVF 20,W |
0644: BSF 03.5 |
0645: MOVWF 07 |
0646: BCF 03.5 |
0647: BTFSS 07.4 |
0648: GOTO 647 |
0649: NOP |
064A: GOTO 64B |
064B: NOP |
064C: BSF 20.3 |
064D: MOVF 20,W |
064E: BSF 03.5 |
064F: MOVWF 07 |
0650: NOP |
.................... |
.................... t = (float)(LSB)/256.0; |
0651: BCF 03.5 |
0652: CLRF 28 |
0653: MOVF 22,W |
0654: MOVWF 27 |
0655: GOTO 11C |
0656: MOVF 77,W |
0657: MOVWF 27 |
0658: MOVF 78,W |
0659: MOVWF 28 |
065A: MOVF 79,W |
065B: MOVWF 29 |
065C: MOVF 7A,W |
065D: MOVWF 2A |
065E: MOVWF 2E |
065F: MOVF 79,W |
0660: MOVWF 2D |
0661: MOVF 78,W |
0662: MOVWF 2C |
0663: MOVF 77,W |
0664: MOVWF 2B |
0665: CLRF 32 |
0666: CLRF 31 |
0667: CLRF 30 |
0668: MOVLW 87 |
0669: MOVWF 2F |
066A: GOTO 13B |
066B: MOVF 7A,W |
066C: MOVWF 26 |
066D: MOVF 79,W |
066E: MOVWF 25 |
066F: MOVF 78,W |
0670: MOVWF 24 |
0671: MOVF 77,W |
0672: MOVWF 23 |
.................... t = (float)(MSB+t); |
0673: CLRF 29 |
0674: MOVF 21,W |
0675: MOVWF 28 |
0676: BTFSC 28.7 |
0677: DECF 29,F |
0678: GOTO 207 |
0679: BCF 03.1 |
067A: MOVF 7A,W |
067B: MOVWF 2B |
067C: MOVF 79,W |
067D: MOVWF 2A |
067E: MOVF 78,W |
067F: MOVWF 29 |
0680: MOVF 77,W |
0681: MOVWF 28 |
0682: MOVF 26,W |
0683: MOVWF 2F |
0684: MOVF 25,W |
0685: MOVWF 2E |
0686: MOVF 24,W |
0687: MOVWF 2D |
0688: MOVF 23,W |
0689: MOVWF 2C |
068A: GOTO 22E |
068B: MOVF 7A,W |
068C: MOVWF 26 |
068D: MOVF 79,W |
068E: MOVWF 25 |
068F: MOVF 78,W |
0690: MOVWF 24 |
0691: MOVF 77,W |
0692: MOVWF 23 |
.................... |
.................... printf("Teplota: %f (C)\r\n", t); |
0693: MOVLW 1C |
0694: BSF 03.6 |
0695: MOVWF 0D |
0696: MOVLW 00 |
0697: MOVWF 0F |
0698: BCF 03.0 |
0699: MOVLW 09 |
069A: BCF 03.6 |
069B: MOVWF 27 |
069C: CALL 371 |
069D: MOVLW 89 |
069E: MOVWF 04 |
069F: MOVF 26,W |
06A0: MOVWF 2A |
06A1: MOVF 25,W |
06A2: MOVWF 29 |
06A3: MOVF 24,W |
06A4: MOVWF 28 |
06A5: MOVF 23,W |
06A6: MOVWF 27 |
06A7: MOVLW 02 |
06A8: MOVWF 2B |
06A9: GOTO 402 |
06AA: MOVLW 21 |
06AB: BSF 03.6 |
06AC: MOVWF 0D |
06AD: MOVLW 00 |
06AE: MOVWF 0F |
06AF: BSF 03.0 |
06B0: MOVLW 06 |
06B1: BCF 03.6 |
06B2: MOVWF 27 |
06B3: CALL 371 |
.................... delay_ms(500); |
06B4: MOVLW 02 |
06B5: MOVWF 27 |
06B6: MOVLW FA |
06B7: MOVWF 28 |
06B8: GOTO 55E |
06B9: DECFSZ 27,F |
06BA: GOTO 6B6 |
.................... } |
06BB: GOTO 5E3 |
.................... } |
.................... |
06BC: SLEEP |
|
Configuration Fuses: |
Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUG |
Word 2: 3FFF NOWRT BORV40 |