Rev Author Line No. Line
2917 jacho 1 CCS PCM C Compiler, Version 4.106, 47914 15-4-13 19:12
2  
3 Filename: C:\Users\Honza\Documents\pic\I2C_altimet\main.lst
4  
5 ROM used: 2238 words (27%)
6 Largest free fragment is 2048
7 RAM used: 18 (5%) at main() level
8 55 (15%) worst case
9 Stack: 3 locations
10  
11 *
12 0000: MOVLW 08
13 0001: MOVWF 0A
14 0002: GOTO 000
15 0003: NOP
16 .................... #include "C:\Users\Honza\Documents\pic\I2C_altimet\main.h"
17 .................... #include <16F887.h>
18 .................... //////// Standard Header file for the PIC16F887 device ////////////////
19 .................... #device PIC16F887
20 .................... #list
21 ....................
22 .................... #device adc=8
23 ....................
24 .................... #FUSES NOWDT //No Watch Dog Timer
25 .................... #FUSES INTRC //Internal RC Osc
26 .................... #FUSES NOPUT //No Power Up Timer
27 .................... #FUSES MCLR //Master Clear pin enabled
28 .................... #FUSES NOPROTECT //Code not protected from reading
29 .................... #FUSES NOCPD //No EE protection
30 .................... #FUSES NOBROWNOUT //No brownout reset
31 .................... #FUSES IESO //Internal External Switch Over mode enabled
32 .................... #FUSES FCMEN //Fail-safe clock monitor enabled
33 .................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
34 .................... #FUSES NODEBUG //No Debug mode for ICD
35 .................... #FUSES NOWRT //Program memory not write protected
36 .................... #FUSES BORV40 //Brownout reset at 4.0V
37 ....................
38 .................... #use delay(clock=8000000)
39 *
40 014A: MOVLW 2E
41 014B: MOVWF 04
42 014C: BCF 03.7
43 014D: MOVF 00,W
44 014E: BTFSC 03.2
45 014F: GOTO 15D
46 0150: MOVLW 02
47 0151: MOVWF 78
48 0152: CLRF 77
49 0153: DECFSZ 77,F
50 0154: GOTO 153
51 0155: DECFSZ 78,F
52 0156: GOTO 152
53 0157: MOVLW 97
54 0158: MOVWF 77
55 0159: DECFSZ 77,F
56 015A: GOTO 159
57 015B: DECFSZ 00,F
58 015C: GOTO 150
59 015D: RETURN
60 ....................
61 ....................
62 ....................
63 .................... #define EEPROM_SDA PIN_B0
64 .................... #define EEPROM_SCL PIN_B1
65 .................... #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
66 *
67 00A5: MOVLW 08
68 00A6: MOVWF 78
69 00A7: NOP
70 00A8: BCF 06.1
71 00A9: BSF 03.5
72 00AA: BCF 06.1
73 00AB: NOP
74 00AC: BCF 03.5
75 00AD: RLF 3E,F
76 00AE: BCF 06.0
77 00AF: BTFSS 03.0
78 00B0: GOTO 0B4
79 00B1: BSF 03.5
80 00B2: BSF 06.0
81 00B3: BCF 03.5
82 00B4: BTFSC 03.0
83 00B5: GOTO 0B9
84 00B6: BSF 03.5
85 00B7: BCF 06.0
86 00B8: BCF 03.5
87 00B9: BSF 03.5
88 00BA: BSF 06.1
89 00BB: BCF 03.5
90 00BC: BTFSS 06.1
91 00BD: GOTO 0BC
92 00BE: DECFSZ 78,F
93 00BF: GOTO 0A7
94 00C0: NOP
95 00C1: BCF 06.1
96 00C2: BSF 03.5
97 00C3: BCF 06.1
98 00C4: NOP
99 00C5: BSF 06.0
100 00C6: NOP
101 00C7: NOP
102 00C8: BSF 06.1
103 00C9: BCF 03.5
104 00CA: BTFSS 06.1
105 00CB: GOTO 0CA
106 00CC: CLRF 78
107 00CD: NOP
108 00CE: BTFSC 06.0
109 00CF: BSF 78.0
110 00D0: BCF 06.1
111 00D1: BSF 03.5
112 00D2: BCF 06.1
113 00D3: BCF 03.5
114 00D4: BCF 06.0
115 00D5: BSF 03.5
116 00D6: BCF 06.0
117 00D7: BCF 03.5
118 00D8: RETURN
119 *
120 0188: MOVLW 08
121 0189: MOVWF 3F
122 018A: MOVF 77,W
123 018B: MOVWF 40
124 018C: BSF 03.5
125 018D: BSF 06.0
126 018E: NOP
127 018F: BSF 06.1
128 0190: BCF 03.5
129 0191: BTFSS 06.1
130 0192: GOTO 191
131 0193: BTFSC 06.0
132 0194: BSF 03.0
133 0195: BTFSS 06.0
134 0196: BCF 03.0
135 0197: RLF 78,F
136 0198: NOP
137 0199: BSF 03.5
138 019A: BCF 06.1
139 019B: BCF 03.5
140 019C: BCF 06.1
141 019D: DECFSZ 3F,F
142 019E: GOTO 18C
143 019F: BSF 03.5
144 01A0: BSF 06.0
145 01A1: NOP
146 01A2: BCF 03.5
147 01A3: BCF 06.0
148 01A4: MOVF 40,W
149 01A5: BTFSC 03.2
150 01A6: GOTO 1AA
151 01A7: BSF 03.5
152 01A8: BCF 06.0
153 01A9: BCF 03.5
154 01AA: NOP
155 01AB: BSF 03.5
156 01AC: BSF 06.1
157 01AD: BCF 03.5
158 01AE: BTFSS 06.1
159 01AF: GOTO 1AE
160 01B0: NOP
161 01B1: BCF 06.1
162 01B2: BSF 03.5
163 01B3: BCF 06.1
164 01B4: NOP
165 01B5: BCF 03.5
166 01B6: BCF 06.0
167 01B7: BSF 03.5
168 01B8: BCF 06.0
169 .................... #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD
170 *
171 003B: BSF 03.5
172 003C: BCF 06.3
173 003D: BCF 03.5
174 003E: BCF 06.3
175 003F: MOVLW 08
176 0040: MOVWF 78
177 0041: GOTO 042
178 0042: NOP
179 0043: BSF 78.7
180 0044: GOTO 053
181 0045: BCF 78.7
182 0046: RRF 3A,F
183 0047: BTFSC 03.0
184 0048: BSF 06.3
185 0049: BTFSS 03.0
186 004A: BCF 06.3
187 004B: BSF 78.6
188 004C: GOTO 053
189 004D: BCF 78.6
190 004E: DECFSZ 78,F
191 004F: GOTO 046
192 0050: GOTO 051
193 0051: NOP
194 0052: BSF 06.3
195 0053: MOVLW 3F
196 0054: MOVWF 04
197 0055: DECFSZ 04,F
198 0056: GOTO 055
199 0057: NOP
200 0058: BTFSC 78.7
201 0059: GOTO 045
202 005A: BTFSC 78.6
203 005B: GOTO 04D
204 005C: RETURN
205 ....................
206 .................... #define MPL3115_ADDR_R 0xC1
207 .................... #define MPL3115_ADDR_W 0xC0
208 ....................
209 ....................
210 .................... void mpl3115_setA (void) //nastavení pro výšku
211 .................... {
212 ....................
213 ....................
214 .................... i2c_start(); //STANDBY mode
215 *
216 04F9: BSF 03.5
217 04FA: BSF 06.0
218 04FB: NOP
219 04FC: BSF 06.1
220 04FD: NOP
221 04FE: BCF 03.5
222 04FF: BCF 06.0
223 0500: BSF 03.5
224 0501: BCF 06.0
225 0502: NOP
226 0503: BCF 03.5
227 0504: BCF 06.1
228 0505: BSF 03.5
229 0506: BCF 06.1
230 .................... I2C_Write(MPL3115_ADDR_W);
231 0507: MOVLW C0
232 0508: BCF 03.5
233 0509: MOVWF 3E
234 050A: CALL 0A5
235 .................... I2C_write(0x26);
236 050B: MOVLW 26
237 050C: MOVWF 3E
238 050D: CALL 0A5
239 .................... I2C_write(0xB8);
240 050E: MOVLW B8
241 050F: MOVWF 3E
242 0510: CALL 0A5
243 .................... i2c_stop();
244 0511: BSF 03.5
245 0512: BCF 06.0
246 0513: NOP
247 0514: BSF 06.1
248 0515: BCF 03.5
249 0516: BTFSS 06.1
250 0517: GOTO 516
251 0518: NOP
252 0519: GOTO 51A
253 051A: NOP
254 051B: BSF 03.5
255 051C: BSF 06.0
256 051D: NOP
257 ....................
258 .................... i2c_start(); //PT_DATA_CFG set
259 051E: BSF 06.0
260 051F: NOP
261 0520: BSF 06.1
262 0521: NOP
263 0522: BCF 03.5
264 0523: BCF 06.0
265 0524: BSF 03.5
266 0525: BCF 06.0
267 0526: NOP
268 0527: BCF 03.5
269 0528: BCF 06.1
270 0529: BSF 03.5
271 052A: BCF 06.1
272 .................... I2C_Write(MPL3115_ADDR_W);
273 052B: MOVLW C0
274 052C: BCF 03.5
275 052D: MOVWF 3E
276 052E: CALL 0A5
277 .................... I2C_write(0x13);
278 052F: MOVLW 13
279 0530: MOVWF 3E
280 0531: CALL 0A5
281 .................... I2C_write(0x07); //hodnota
282 0532: MOVLW 07
283 0533: MOVWF 3E
284 0534: CALL 0A5
285 .................... i2c_stop();
286 0535: BSF 03.5
287 0536: BCF 06.0
288 0537: NOP
289 0538: BSF 06.1
290 0539: BCF 03.5
291 053A: BTFSS 06.1
292 053B: GOTO 53A
293 053C: NOP
294 053D: GOTO 53E
295 053E: NOP
296 053F: BSF 03.5
297 0540: BSF 06.0
298 0541: NOP
299 ....................
300 .................... i2c_start(); //ACTIVE mode
301 0542: BSF 06.0
302 0543: NOP
303 0544: BSF 06.1
304 0545: NOP
305 0546: BCF 03.5
306 0547: BCF 06.0
307 0548: BSF 03.5
308 0549: BCF 06.0
309 054A: NOP
310 054B: BCF 03.5
311 054C: BCF 06.1
312 054D: BSF 03.5
313 054E: BCF 06.1
314 .................... I2C_Write(MPL3115_ADDR_W);
315 054F: MOVLW C0
316 0550: BCF 03.5
317 0551: MOVWF 3E
318 0552: CALL 0A5
319 .................... I2C_write(0x26);
320 0553: MOVLW 26
321 0554: MOVWF 3E
322 0555: CALL 0A5
323 .................... I2C_write(0xB9);
324 0556: MOVLW B9
325 0557: MOVWF 3E
326 0558: CALL 0A5
327 .................... i2c_stop();
328 0559: BSF 03.5
329 055A: BCF 06.0
330 055B: NOP
331 055C: BSF 06.1
332 055D: BCF 03.5
333 055E: BTFSS 06.1
334 055F: GOTO 55E
335 0560: NOP
336 0561: GOTO 562
337 0562: NOP
338 0563: BSF 03.5
339 0564: BSF 06.0
340 0565: NOP
341 .................... }
342 0566: BCF 03.5
343 0567: BSF 0A.3
344 0568: BCF 0A.4
345 0569: GOTO 046 (RETURN)
346 ....................
347 .................... void mpl3115_setP (void) //nastavení pro tlak
348 .................... {
349 ....................
350 ....................
351 .................... i2c_start(); //STANDBY mode
352 *
353 00D9: BSF 03.5
354 00DA: BSF 06.0
355 00DB: NOP
356 00DC: BSF 06.1
357 00DD: NOP
358 00DE: BCF 03.5
359 00DF: BCF 06.0
360 00E0: BSF 03.5
361 00E1: BCF 06.0
362 00E2: NOP
363 00E3: BCF 03.5
364 00E4: BCF 06.1
365 00E5: BSF 03.5
366 00E6: BCF 06.1
367 .................... I2C_Write(MPL3115_ADDR_W);
368 00E7: MOVLW C0
369 00E8: BCF 03.5
370 00E9: MOVWF 3E
371 00EA: CALL 0A5
372 .................... I2C_write(0x26);
373 00EB: MOVLW 26
374 00EC: MOVWF 3E
375 00ED: CALL 0A5
376 .................... I2C_write(0xB8);
377 00EE: MOVLW B8
378 00EF: MOVWF 3E
379 00F0: CALL 0A5
380 .................... i2c_stop();
381 00F1: BSF 03.5
382 00F2: BCF 06.0
383 00F3: NOP
384 00F4: BSF 06.1
385 00F5: BCF 03.5
386 00F6: BTFSS 06.1
387 00F7: GOTO 0F6
388 00F8: NOP
389 00F9: GOTO 0FA
390 00FA: NOP
391 00FB: BSF 03.5
392 00FC: BSF 06.0
393 00FD: NOP
394 ....................
395 .................... i2c_start(); //PT_DATA_CFG set
396 00FE: BSF 06.0
397 00FF: NOP
398 0100: BSF 06.1
399 0101: NOP
400 0102: BCF 03.5
401 0103: BCF 06.0
402 0104: BSF 03.5
403 0105: BCF 06.0
404 0106: NOP
405 0107: BCF 03.5
406 0108: BCF 06.1
407 0109: BSF 03.5
408 010A: BCF 06.1
409 .................... I2C_Write(MPL3115_ADDR_W);
410 010B: MOVLW C0
411 010C: BCF 03.5
412 010D: MOVWF 3E
413 010E: CALL 0A5
414 .................... I2C_write(0x13);
415 010F: MOVLW 13
416 0110: MOVWF 3E
417 0111: CALL 0A5
418 .................... I2C_write(0x07); //hodnota
419 0112: MOVLW 07
420 0113: MOVWF 3E
421 0114: CALL 0A5
422 .................... i2c_stop();
423 0115: BSF 03.5
424 0116: BCF 06.0
425 0117: NOP
426 0118: BSF 06.1
427 0119: BCF 03.5
428 011A: BTFSS 06.1
429 011B: GOTO 11A
430 011C: NOP
431 011D: GOTO 11E
432 011E: NOP
433 011F: BSF 03.5
434 0120: BSF 06.0
435 0121: NOP
436 ....................
437 .................... i2c_start(); //ACTIVE mode
438 0122: BSF 06.0
439 0123: NOP
440 0124: BSF 06.1
441 0125: NOP
442 0126: BCF 03.5
443 0127: BCF 06.0
444 0128: BSF 03.5
445 0129: BCF 06.0
446 012A: NOP
447 012B: BCF 03.5
448 012C: BCF 06.1
449 012D: BSF 03.5
450 012E: BCF 06.1
451 .................... I2C_Write(MPL3115_ADDR_W);
452 012F: MOVLW C0
453 0130: BCF 03.5
454 0131: MOVWF 3E
455 0132: CALL 0A5
456 .................... I2C_write(0x26);
457 0133: MOVLW 26
458 0134: MOVWF 3E
459 0135: CALL 0A5
460 .................... I2C_write(0x39);
461 0136: MOVLW 39
462 0137: MOVWF 3E
463 0138: CALL 0A5
464 .................... i2c_stop();
465 0139: BSF 03.5
466 013A: BCF 06.0
467 013B: NOP
468 013C: BSF 06.1
469 013D: BCF 03.5
470 013E: BTFSS 06.1
471 013F: GOTO 13E
472 0140: NOP
473 0141: GOTO 142
474 0142: NOP
475 0143: BSF 03.5
476 0144: BSF 06.0
477 0145: NOP
478 .................... }
479 0146: BCF 03.5
480 0147: BSF 0A.3
481 0148: BCF 0A.4
482 0149: GOTO 024 (RETURN)
483 ....................
484 ....................
485 .................... byte mpl3115_read (byte reg)
486 .................... {
487 .................... byte i;
488 ....................
489 .................... i2c_start();
490 *
491 015E: BSF 03.5
492 015F: BSF 06.0
493 0160: NOP
494 0161: BSF 06.1
495 0162: NOP
496 0163: BCF 03.5
497 0164: BCF 06.0
498 0165: BSF 03.5
499 0166: BCF 06.0
500 0167: NOP
501 0168: BCF 03.5
502 0169: BCF 06.1
503 016A: BSF 03.5
504 016B: BCF 06.1
505 .................... I2C_Write(MPL3115_ADDR_W);
506 016C: MOVLW C0
507 016D: BCF 03.5
508 016E: MOVWF 3E
509 016F: CALL 0A5
510 .................... I2C_write(reg);
511 0170: MOVF 3C,W
512 0171: MOVWF 3E
513 0172: CALL 0A5
514 .................... i2c_start();
515 0173: BSF 03.5
516 0174: BSF 06.0
517 0175: NOP
518 0176: BSF 06.1
519 0177: NOP
520 0178: BCF 03.5
521 0179: BTFSS 06.1
522 017A: GOTO 179
523 017B: BCF 06.0
524 017C: BSF 03.5
525 017D: BCF 06.0
526 017E: NOP
527 017F: BCF 03.5
528 0180: BCF 06.1
529 0181: BSF 03.5
530 0182: BCF 06.1
531 .................... I2C_Write(MPL3115_ADDR_R);
532 0183: MOVLW C1
533 0184: BCF 03.5
534 0185: MOVWF 3E
535 0186: CALL 0A5
536 .................... i=i2c_read(0);
537 0187: CLRF 77
538 *
539 01B9: MOVF 78,W
540 01BA: BCF 03.5
541 01BB: MOVWF 3D
542 .................... i2c_stop();
543 01BC: BSF 03.5
544 01BD: BCF 06.0
545 01BE: NOP
546 01BF: BSF 06.1
547 01C0: BCF 03.5
548 01C1: BTFSS 06.1
549 01C2: GOTO 1C1
550 01C3: NOP
551 01C4: GOTO 1C5
552 01C5: NOP
553 01C6: BSF 03.5
554 01C7: BSF 06.0
555 01C8: NOP
556 ....................
557 .................... return i;
558 01C9: BCF 03.5
559 01CA: MOVF 3D,W
560 01CB: MOVWF 78
561 .................... }
562 01CC: RETURN
563 ....................
564 ....................
565 .................... float mpl3115_T (void) //teplota ve stupnich
566 .................... {
567 .................... int m;
568 .................... float l, t;
569 ....................
570 .................... m= mpl3115_read (0x04);
571 *
572 03F5: MOVLW 04
573 03F6: MOVWF 3C
574 03F7: CALL 15E
575 03F8: MOVF 78,W
576 03F9: MOVWF 2D
577 .................... l= (float)(mpl3115_read(0x05)>>4)/16.0;
578 03FA: MOVLW 05
579 03FB: MOVWF 3C
580 03FC: CALL 15E
581 03FD: SWAPF 78,W
582 03FE: MOVWF 77
583 03FF: MOVLW 0F
584 0400: ANDWF 77,F
585 0401: MOVF 77,W
586 0402: CLRF 3E
587 0403: MOVWF 3D
588 0404: CALL 1CD
589 0405: MOVF 77,W
590 0406: MOVWF 36
591 0407: MOVF 78,W
592 0408: MOVWF 37
593 0409: MOVF 79,W
594 040A: MOVWF 38
595 040B: MOVF 7A,W
596 040C: MOVWF 39
597 040D: MOVWF 44
598 040E: MOVF 79,W
599 040F: MOVWF 43
600 0410: MOVF 78,W
601 0411: MOVWF 42
602 0412: MOVF 77,W
603 0413: MOVWF 41
604 0414: CLRF 48
605 0415: CLRF 47
606 0416: CLRF 46
607 0417: MOVLW 83
608 0418: MOVWF 45
609 0419: CALL 1EA
610 041A: MOVF 7A,W
611 041B: MOVWF 31
612 041C: MOVF 79,W
613 041D: MOVWF 30
614 041E: MOVF 78,W
615 041F: MOVWF 2F
616 0420: MOVF 77,W
617 0421: MOVWF 2E
618 .................... t = (float)(M + L);
619 0422: CLRF 3E
620 0423: MOVF 2D,W
621 0424: MOVWF 3D
622 0425: CALL 1CD
623 0426: BCF 03.1
624 0427: MOVF 7A,W
625 0428: MOVWF 46
626 0429: MOVF 79,W
627 042A: MOVWF 45
628 042B: MOVF 78,W
629 042C: MOVWF 44
630 042D: MOVF 77,W
631 042E: MOVWF 43
632 042F: MOVF 31,W
633 0430: MOVWF 4A
634 0431: MOVF 30,W
635 0432: MOVWF 49
636 0433: MOVF 2F,W
637 0434: MOVWF 48
638 0435: MOVF 2E,W
639 0436: MOVWF 47
640 0437: CALL 2B4
641 0438: MOVF 7A,W
642 0439: MOVWF 35
643 043A: MOVF 79,W
644 043B: MOVWF 34
645 043C: MOVF 78,W
646 043D: MOVWF 33
647 043E: MOVF 77,W
648 043F: MOVWF 32
649 .................... return t;
650 0440: MOVF 32,W
651 0441: MOVWF 77
652 0442: MOVF 33,W
653 0443: MOVWF 78
654 0444: MOVF 34,W
655 0445: MOVWF 79
656 0446: MOVF 35,W
657 0447: MOVWF 7A
658 .................... }
659 0448: BSF 0A.3
660 0449: BCF 0A.4
661 044A: GOTO 030 (RETURN)
662 ....................
663 .................... float mpl3115_A (void) //vyska v m
664 .................... {
665 ....................
666 .................... int16 m, c;
667 .................... float l, a;
668 ....................
669 .................... m= mpl3115_read (0x01);
670 *
671 056A: MOVLW 01
672 056B: MOVWF 3C
673 056C: CALL 15E
674 056D: CLRF 2E
675 056E: MOVF 78,W
676 056F: MOVWF 2D
677 .................... c= mpl3115_read (0x02);
678 0570: MOVLW 02
679 0571: MOVWF 3C
680 0572: CALL 15E
681 0573: CLRF 30
682 0574: MOVF 78,W
683 0575: MOVWF 2F
684 .................... l= (float)(mpl3115_read(0x03)>>4)/16.0;
685 0576: MOVLW 03
686 0577: MOVWF 3C
687 0578: CALL 15E
688 0579: SWAPF 78,W
689 057A: MOVWF 77
690 057B: MOVLW 0F
691 057C: ANDWF 77,F
692 057D: MOVF 77,W
693 057E: CLRF 3E
694 057F: MOVWF 3D
695 0580: CALL 1CD
696 0581: MOVF 77,W
697 0582: MOVWF 39
698 0583: MOVF 78,W
699 0584: MOVWF 3A
700 0585: MOVF 79,W
701 0586: MOVWF 3B
702 0587: MOVF 7A,W
703 0588: MOVWF 3C
704 0589: MOVWF 44
705 058A: MOVF 79,W
706 058B: MOVWF 43
707 058C: MOVF 78,W
708 058D: MOVWF 42
709 058E: MOVF 77,W
710 058F: MOVWF 41
711 0590: CLRF 48
712 0591: CLRF 47
713 0592: CLRF 46
714 0593: MOVLW 83
715 0594: MOVWF 45
716 0595: CALL 1EA
717 0596: MOVF 7A,W
718 0597: MOVWF 34
719 0598: MOVF 79,W
720 0599: MOVWF 33
721 059A: MOVF 78,W
722 059B: MOVWF 32
723 059C: MOVF 77,W
724 059D: MOVWF 31
725 .................... a = (float)((m << 8)|c) + l;
726 059E: MOVF 2D,W
727 059F: MOVWF 3B
728 05A0: CLRF 3A
729 05A1: MOVF 3A,W
730 05A2: IORWF 2F,W
731 05A3: MOVWF 77
732 05A4: MOVF 2D,W
733 05A5: IORWF 30,W
734 05A6: MOVWF 7A
735 05A7: MOVF 77,W
736 05A8: MOVWF 3D
737 05A9: MOVF 7A,W
738 05AA: MOVWF 3E
739 05AB: CALL 1CD
740 05AC: MOVF 77,W
741 05AD: MOVWF 3A
742 05AE: MOVF 78,W
743 05AF: MOVWF 3B
744 05B0: MOVF 79,W
745 05B1: MOVWF 3C
746 05B2: MOVF 7A,W
747 05B3: MOVWF 3D
748 05B4: BCF 03.1
749 05B5: MOVF 7A,W
750 05B6: MOVWF 46
751 05B7: MOVF 79,W
752 05B8: MOVWF 45
753 05B9: MOVF 78,W
754 05BA: MOVWF 44
755 05BB: MOVF 77,W
756 05BC: MOVWF 43
757 05BD: MOVF 34,W
758 05BE: MOVWF 4A
759 05BF: MOVF 33,W
760 05C0: MOVWF 49
761 05C1: MOVF 32,W
762 05C2: MOVWF 48
763 05C3: MOVF 31,W
764 05C4: MOVWF 47
765 05C5: CALL 2B4
766 05C6: MOVF 7A,W
767 05C7: MOVWF 38
768 05C8: MOVF 79,W
769 05C9: MOVWF 37
770 05CA: MOVF 78,W
771 05CB: MOVWF 36
772 05CC: MOVF 77,W
773 05CD: MOVWF 35
774 .................... return a;
775 05CE: MOVF 35,W
776 05CF: MOVWF 77
777 05D0: MOVF 36,W
778 05D1: MOVWF 78
779 05D2: MOVF 37,W
780 05D3: MOVWF 79
781 05D4: MOVF 38,W
782 05D5: MOVWF 7A
783 .................... }
784 05D6: BSF 0A.3
785 05D7: BCF 0A.4
786 05D8: GOTO 052 (RETURN)
787 ....................
788 ....................
789 .................... float mpl3115_P (void) //tlak v Pa
790 .................... {
791 .................... unsigned int32 m;
792 .................... unsigned int16 c;
793 .................... unsigned int l;
794 .................... float p, l1;
795 ....................
796 .................... m= mpl3115_read (0x01);
797 *
798 044B: MOVLW 01
799 044C: MOVWF 3C
800 044D: CALL 15E
801 044E: CLRF 30
802 044F: CLRF 2F
803 0450: CLRF 2E
804 0451: MOVF 78,W
805 0452: MOVWF 2D
806 .................... c= mpl3115_read (0x02);
807 0453: MOVLW 02
808 0454: MOVWF 3C
809 0455: CALL 15E
810 0456: CLRF 32
811 0457: MOVF 78,W
812 0458: MOVWF 31
813 .................... l=mpl3115_read(0x03);
814 0459: MOVLW 03
815 045A: MOVWF 3C
816 045B: CALL 15E
817 045C: MOVF 78,W
818 045D: MOVWF 33
819 ....................
820 .................... l1= (float)(l>>4)/4.0;
821 045E: SWAPF 33,W
822 045F: MOVWF 77
823 0460: MOVLW 0F
824 0461: ANDWF 77,F
825 0462: MOVF 77,W
826 0463: CLRF 3E
827 0464: MOVWF 3D
828 0465: CALL 1CD
829 0466: MOVF 77,W
830 0467: MOVWF 3D
831 0468: MOVF 78,W
832 0469: MOVWF 3E
833 046A: MOVF 79,W
834 046B: MOVWF 3F
835 046C: MOVF 7A,W
836 046D: MOVWF 40
837 046E: MOVWF 44
838 046F: MOVF 79,W
839 0470: MOVWF 43
840 0471: MOVF 78,W
841 0472: MOVWF 42
842 0473: MOVF 77,W
843 0474: MOVWF 41
844 0475: CLRF 48
845 0476: CLRF 47
846 0477: CLRF 46
847 0478: MOVLW 81
848 0479: MOVWF 45
849 047A: CALL 1EA
850 047B: MOVF 7A,W
851 047C: MOVWF 3B
852 047D: MOVF 79,W
853 047E: MOVWF 3A
854 047F: MOVF 78,W
855 0480: MOVWF 39
856 0481: MOVF 77,W
857 0482: MOVWF 38
858 .................... p = (float)((m << 10)|(c<<2)|(l>>6)) + l1;
859 0483: CLRF 3D
860 0484: RLF 2D,W
861 0485: MOVWF 3E
862 0486: RLF 2E,W
863 0487: MOVWF 3F
864 0488: RLF 2F,W
865 0489: MOVWF 40
866 048A: RLF 3E,F
867 048B: RLF 3F,F
868 048C: RLF 40,F
869 048D: MOVLW FC
870 048E: ANDWF 3E,F
871 048F: RLF 31,W
872 0490: MOVWF 79
873 0491: RLF 32,W
874 0492: MOVWF 7A
875 0493: RLF 79,F
876 0494: RLF 7A,F
877 0495: MOVLW FC
878 0496: ANDWF 79,F
879 0497: MOVF 79,W
880 0498: IORWF 3D,F
881 0499: MOVF 7A,W
882 049A: IORWF 3E,F
883 049B: SWAPF 33,W
884 049C: MOVWF 77
885 049D: RRF 77,F
886 049E: RRF 77,F
887 049F: MOVLW 03
888 04A0: ANDWF 77,F
889 04A1: MOVF 77,W
890 04A2: IORWF 3D,W
891 04A3: MOVWF 77
892 04A4: MOVF 3E,W
893 04A5: MOVWF 78
894 04A6: MOVF 3F,W
895 04A7: MOVWF 79
896 04A8: MOVF 40,W
897 04A9: MOVWF 7A
898 04AA: MOVF 7A,W
899 04AB: MOVWF 46
900 04AC: MOVF 79,W
901 04AD: MOVWF 45
902 04AE: MOVF 78,W
903 04AF: MOVWF 44
904 04B0: MOVF 77,W
905 04B1: MOVWF 43
906 *
907 04CC: MOVF 77,W
908 04CD: MOVWF 3D
909 04CE: MOVF 78,W
910 04CF: MOVWF 3E
911 04D0: MOVF 79,W
912 04D1: MOVWF 3F
913 04D2: MOVF 7A,W
914 04D3: MOVWF 40
915 04D4: BCF 03.1
916 04D5: MOVF 7A,W
917 04D6: MOVWF 46
918 04D7: MOVF 79,W
919 04D8: MOVWF 45
920 04D9: MOVF 78,W
921 04DA: MOVWF 44
922 04DB: MOVF 77,W
923 04DC: MOVWF 43
924 04DD: MOVF 3B,W
925 04DE: MOVWF 4A
926 04DF: MOVF 3A,W
927 04E0: MOVWF 49
928 04E1: MOVF 39,W
929 04E2: MOVWF 48
930 04E3: MOVF 38,W
931 04E4: MOVWF 47
932 04E5: CALL 2B4
933 04E6: MOVF 7A,W
934 04E7: MOVWF 37
935 04E8: MOVF 79,W
936 04E9: MOVWF 36
937 04EA: MOVF 78,W
938 04EB: MOVWF 35
939 04EC: MOVF 77,W
940 04ED: MOVWF 34
941 ....................
942 .................... return p;
943 04EE: MOVF 34,W
944 04EF: MOVWF 77
945 04F0: MOVF 35,W
946 04F1: MOVWF 78
947 04F2: MOVF 36,W
948 04F3: MOVWF 79
949 04F4: MOVF 37,W
950 04F5: MOVWF 7A
951 .................... }
952 04F6: BSF 0A.3
953 04F7: BCF 0A.4
954 04F8: GOTO 03B (RETURN)
955 ....................
956 ....................
957 ....................
958 ....................
959 ....................
960 ....................
961 ....................
962 ....................
963 ....................
964 ....................
965 ....................
966 ....................
967 .................... void main()
968 .................... {
969 *
970 0800: CLRF 04
971 0801: BCF 03.7
972 0802: MOVLW 1F
973 0803: ANDWF 03,F
974 0804: MOVLW 71
975 0805: BSF 03.5
976 0806: MOVWF 0F
977 0807: MOVF 0F,W
978 0808: BCF 06.3
979 0809: BCF 03.5
980 080A: BSF 06.3
981 080B: BSF 03.5
982 080C: BSF 03.6
983 080D: MOVF 09,W
984 080E: ANDLW C0
985 080F: MOVWF 09
986 0810: BCF 03.6
987 0811: BCF 1F.4
988 0812: BCF 1F.5
989 0813: MOVLW 00
990 0814: BSF 03.6
991 0815: MOVWF 08
992 0816: BCF 03.5
993 0817: CLRF 07
994 0818: CLRF 08
995 0819: CLRF 09
996 ....................
997 .................... float p, t, a;
998 .................... printf("Tlakomer nebo vyskomer \r\n",);
999 081A: MOVLW 04
1000 081B: MOVWF 0D
1001 081C: MOVLW 00
1002 081D: MOVWF 0F
1003 081E: BCF 0A.3
1004 081F: BCF 03.6
1005 0820: GOTO 05D
1006 0821: BSF 0A.3
1007 ....................
1008 ....................
1009 ....................
1010 .................... while(TRUE)
1011 .................... {
1012 .................... mpl3115_setP(); //nastaveni pro tlak a teplotu
1013 0822: BCF 0A.3
1014 0823: GOTO 0D9
1015 0824: BSF 0A.3
1016 .................... delay_ms (500);
1017 0825: MOVLW 02
1018 0826: MOVWF 2D
1019 0827: MOVLW FA
1020 0828: MOVWF 2E
1021 0829: BCF 0A.3
1022 082A: CALL 14A
1023 082B: BSF 0A.3
1024 082C: DECFSZ 2D,F
1025 082D: GOTO 027
1026 .................... t=mpl3115_T();
1027 082E: BCF 0A.3
1028 082F: GOTO 3F5
1029 0830: BSF 0A.3
1030 0831: MOVF 7A,W
1031 0832: MOVWF 28
1032 0833: MOVF 79,W
1033 0834: MOVWF 27
1034 0835: MOVF 78,W
1035 0836: MOVWF 26
1036 0837: MOVF 77,W
1037 0838: MOVWF 25
1038 .................... p=mpl3115_P();
1039 0839: BCF 0A.3
1040 083A: GOTO 44B
1041 083B: BSF 0A.3
1042 083C: MOVF 7A,W
1043 083D: MOVWF 24
1044 083E: MOVF 79,W
1045 083F: MOVWF 23
1046 0840: MOVF 78,W
1047 0841: MOVWF 22
1048 0842: MOVF 77,W
1049 0843: MOVWF 21
1050 ....................
1051 .................... mpl3115_setA(); //nastaveni pro vysku a teplotu
1052 0844: BCF 0A.3
1053 0845: GOTO 4F9
1054 0846: BSF 0A.3
1055 .................... delay_ms (500);
1056 0847: MOVLW 02
1057 0848: MOVWF 2D
1058 0849: MOVLW FA
1059 084A: MOVWF 2E
1060 084B: BCF 0A.3
1061 084C: CALL 14A
1062 084D: BSF 0A.3
1063 084E: DECFSZ 2D,F
1064 084F: GOTO 049
1065 .................... a=mpl3115_A();
1066 0850: BCF 0A.3
1067 0851: GOTO 56A
1068 0852: BSF 0A.3
1069 0853: MOVF 7A,W
1070 0854: MOVWF 2C
1071 0855: MOVF 79,W
1072 0856: MOVWF 2B
1073 0857: MOVF 78,W
1074 0858: MOVWF 2A
1075 0859: MOVF 77,W
1076 085A: MOVWF 29
1077 ....................
1078 ....................
1079 .................... printf("Teplota: %10.4f(stupne)\r\n", t);
1080 085B: MOVLW 11
1081 085C: BSF 03.6
1082 085D: MOVWF 0D
1083 085E: MOVLW 00
1084 085F: MOVWF 0F
1085 0860: BCF 03.0
1086 0861: MOVLW 09
1087 0862: BCF 03.6
1088 0863: MOVWF 2D
1089 0864: BCF 0A.3
1090 0865: CALL 5D9
1091 0866: BSF 0A.3
1092 0867: MOVLW 09
1093 0868: MOVWF 04
1094 0869: MOVF 28,W
1095 086A: MOVWF 30
1096 086B: MOVF 27,W
1097 086C: MOVWF 2F
1098 086D: MOVF 26,W
1099 086E: MOVWF 2E
1100 086F: MOVF 25,W
1101 0870: MOVWF 2D
1102 0871: MOVLW 04
1103 0872: MOVWF 31
1104 0873: BCF 0A.3
1105 0874: CALL 66A
1106 0875: BSF 0A.3
1107 0876: MOVLW 18
1108 0877: BSF 03.6
1109 0878: MOVWF 0D
1110 0879: MOVLW 00
1111 087A: MOVWF 0F
1112 087B: BSF 03.0
1113 087C: MOVLW 0A
1114 087D: BCF 03.6
1115 087E: MOVWF 2D
1116 087F: BCF 0A.3
1117 0880: CALL 5D9
1118 0881: BSF 0A.3
1119 .................... printf("Tlak: %10.4f(Pa)\r\n", p);
1120 0882: MOVLW 1E
1121 0883: BSF 03.6
1122 0884: MOVWF 0D
1123 0885: MOVLW 00
1124 0886: MOVWF 0F
1125 0887: BCF 03.0
1126 0888: MOVLW 06
1127 0889: BCF 03.6
1128 088A: MOVWF 2D
1129 088B: BCF 0A.3
1130 088C: CALL 5D9
1131 088D: BSF 0A.3
1132 088E: MOVLW 09
1133 088F: MOVWF 04
1134 0890: MOVF 24,W
1135 0891: MOVWF 30
1136 0892: MOVF 23,W
1137 0893: MOVWF 2F
1138 0894: MOVF 22,W
1139 0895: MOVWF 2E
1140 0896: MOVF 21,W
1141 0897: MOVWF 2D
1142 0898: MOVLW 04
1143 0899: MOVWF 31
1144 089A: BCF 0A.3
1145 089B: CALL 66A
1146 089C: BSF 0A.3
1147 089D: MOVLW 24
1148 089E: BSF 03.6
1149 089F: MOVWF 0D
1150 08A0: MOVLW 00
1151 08A1: MOVWF 0F
1152 08A2: BCF 03.0
1153 08A3: MOVLW 06
1154 08A4: BCF 03.6
1155 08A5: MOVWF 2D
1156 08A6: BCF 0A.3
1157 08A7: CALL 5D9
1158 08A8: BSF 0A.3
1159 .................... printf("Výška: %10.4f(m)\r\n", a);
1160 08A9: MOVLW 28
1161 08AA: BSF 03.6
1162 08AB: MOVWF 0D
1163 08AC: MOVLW 00
1164 08AD: MOVWF 0F
1165 08AE: MOVLW 07
1166 08AF: BCF 03.6
1167 08B0: MOVWF 2D
1168 08B1: BCF 0A.3
1169 08B2: CALL 7C4
1170 08B3: BSF 0A.3
1171 08B4: MOVLW 09
1172 08B5: MOVWF 04
1173 08B6: MOVF 2C,W
1174 08B7: MOVWF 30
1175 08B8: MOVF 2B,W
1176 08B9: MOVWF 2F
1177 08BA: MOVF 2A,W
1178 08BB: MOVWF 2E
1179 08BC: MOVF 29,W
1180 08BD: MOVWF 2D
1181 08BE: MOVLW 04
1182 08BF: MOVWF 31
1183 08C0: BCF 0A.3
1184 08C1: CALL 66A
1185 08C2: BSF 0A.3
1186 08C3: MOVLW 35
1187 08C4: BSF 03.6
1188 08C5: MOVWF 0D
1189 08C6: MOVLW 00
1190 08C7: MOVWF 0F
1191 08C8: MOVLW 05
1192 08C9: BCF 03.6
1193 08CA: MOVWF 2D
1194 08CB: BCF 0A.3
1195 08CC: CALL 7C4
1196 08CD: BSF 0A.3
1197 ....................
1198 .................... delay_ms (1000);
1199 08CE: MOVLW 04
1200 08CF: MOVWF 2D
1201 08D0: MOVLW FA
1202 08D1: MOVWF 2E
1203 08D2: BCF 0A.3
1204 08D3: CALL 14A
1205 08D4: BSF 0A.3
1206 08D5: DECFSZ 2D,F
1207 08D6: GOTO 0D0
1208 .................... }
1209 08D7: GOTO 022
1210 ....................
1211 ....................
1212 .................... }
1213 ....................
1214 ....................
1215 08D8: SLEEP
1216  
1217 Configuration Fuses:
1218 Word 1: 2CF5 INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP NODEBUG
1219 Word 2: 3FFF NOWRT BORV40