📄 18b20.lst
字号:
291 ;18B20.c: 119: asm("nop");
292 067A 0000 nop ;#
293 ;18B20.c: 120: val=val>>1;
294 067B 1003 bcf 3,0
295 067C 1283 bcf 3,5
296 067D 0CB1 rrf ?a_write_byte+1
297 067E 0BB2 decfsz ?a_write_byte+2
298 067F 2E62 goto l17
299 0680 0008 return
300
301 psect text5
302 0681 _read_byte
303 ; _i assigned to ?a_read_byte+0
304 0000 _read_byte$i set ?a_read_byte
305 ; _value assigned to ?a_read_byte+1
306 0000 _read_byte$value set ?a_read_byte+1
307 ;18B20.c: 126: unsigned char read_byte(void)
308 0681 0183 clrf 3 ;select bank 0
309 0682 01B1 clrf ?a_read_byte+1
310 ;18B20.c: 130: static bit j;
311 0683 3008 movlw 8
312 0684 00B0 movwf ?a_read_byte
313 0685 l22
314 ;18B20.c: 132: {
315 0685 1003 bcf 3,0
316 0686 0CB1 rrf ?a_read_byte+1
317 ;18B20.c: 134: RA2 = 0; TRISA2 = 0;
318 0687 1105 bcf 5,2
319 0688 1683 bsf 3,5
320 0689 1105 bcf 5,2
321 ;18B20.c: 135: asm("nop");
322 068A 0000 nop ;#
323 ;18B20.c: 136: asm("nop");
324 068B 0000 nop ;#
325 ;18B20.c: 137: asm("nop");
326 068C 0000 nop ;#
327 ;18B20.c: 138: asm("nop");
328 068D 0000 nop ;#
329 ;18B20.c: 139: asm("nop");
330 068E 0000 nop ;#
331 ;18B20.c: 140: asm("nop");
332 068F 0000 nop ;#
333 ;18B20.c: 141: TRISA2 =1;
334 0690 1505 bsf 5,2
335 ;18B20.c: 142: asm("nop");
336 0691 0000 nop ;#
337 ;18B20.c: 143: asm("nop");
338 0692 0000 nop ;#
339 ;18B20.c: 144: asm("nop");
340 0693 0000 nop ;#
341 ;18B20.c: 145: asm("nop");
342 0694 0000 nop ;#
343 ;18B20.c: 146: asm("nop");
344 0695 0000 nop ;#
345 ;18B20.c: 147: j=RA2;
346 0696 1283 bcf 3,5
347 0697 1020 bcf F542/(0+8),F542& (0+7)
348 0698 1905 btfsc 5,2
349 0699 1420 bsf F542/(0+8),F542& (0+7)
350 ;18B20.c: 148: if(j) value|=0x80;
351 069A 1303 bcf 3,6 ;carry unused
352 069B 1820 btfsc F542/(0+8),F542& (0+7)
353 069C 17B1 bsf ?a_read_byte+1,7
354 ;18B20.c: 149: delay(2,7);
355 069D 3007 movlw 7
356 069E 00B3 movwf ?_delay
357 069F 3002 movlw 2
358 06A0 2637 call _delay
359 06A1 0BB0 decfsz ?a_read_byte
360 06A2 2E85 goto l22
361 ;18B20.c: 150: }
362 06A3 0831 movf ?a_read_byte+1,w
363 ;18B20.c: 152: }
364 06A4 0008 return ;uses W
365
366 psect text6
367 06F2 _get_temp
368 ; _i assigned to ?a_get_temp+0
369 0000 _get_temp$i set ?a_get_temp
370 ;18B20.c: 156: void get_temp()
371 06F2 1683 bsf 3,5
372 06F3 1303 bcf 3,6 ;carry unused
373 06F4 1505 bsf 5,2
374 ;18B20.c: 160: reset();
375 06F5 2640 call _reset
376 ;18B20.c: 161: write_byte(0XCC);
377 06F6 30CC movlw -52
378 06F7 265E call _write_byte
379 ;18B20.c: 162: write_byte(0X44);
380 06F8 3044 movlw 68
381 06F9 265E call _write_byte
382 ;18B20.c: 163: for(i=20;i>0;i--)
383 06FA 3014 movlw 20
384 06FB 00AD movwf ?a_get_temp
385 06FC 01AE clrf ?a_get_temp+1
386 06FD l27
387 ;18B20.c: 164: {
388 06FD 26A5 call _display
389 06FE 08AD movf ?a_get_temp
390 06FF 1903 btfsc 3,2
391 0700 03AE decf ?a_get_temp+1
392 0701 03AD decf ?a_get_temp
393 0702 082E movf ?a_get_temp+1,w
394 0703 3A80 xorlw 128
395 0704 00F9 movwf btemp
396 0705 3080 movlw 128
397 0706 0279 subwf btemp,w
398 0707 3001 movlw 1
399 ;set bank bits (((?a_get_temp+0)))
400 0708 1903 btfsc 3,2
401 0709 022D subwf ?a_get_temp,w
402 070A 1803 btfsc 3,0
403 070B 2EFD goto l27
404 ;18B20.c: 167: }
405 070C 2640 call _reset
406 ;18B20.c: 169: write_byte(0XCC);
407 070D 30CC movlw -52
408 070E 265E call _write_byte
409 ;18B20.c: 170: write_byte(0XBE);
410 070F 30BE movlw -66
411 0710 265E call _write_byte
412 ;18B20.c: 171: TLV=read_byte();
413 0711 2681 call _read_byte
414 0712 00A2 movwf _TLV
415 ;18B20.c: 172: THV=read_byte();
416 0713 2681 call _read_byte
417 0714 00A1 movwf _THV
418 ;18B20.c: 173: TRISA2 =1;
419 0715 1683 bsf 3,5
420 0716 1505 bsf 5,2
421 ;18B20.c: 174: TZ=(TLV>>4)|(THV<<4)&0X3f;
422 0717 1283 bcf 3,5
423 0718 0E21 swapf _THV,w
424 0719 39F0 andlw 240
425 071A 393F andlw 63
426 071B 00AF movwf ?a_get_temp+2
427 071C 0E22 swapf _TLV,w
428 071D 390F andlw 15
429 071E 042F iorwf ?a_get_temp+2,w
430 071F 00A4 movwf _TZ
431 ;18B20.c: 175: TX=TLV<<4;
432 0720 0E22 swapf _TLV,w
433 0721 39F0 andlw 240
434 0722 00A3 movwf _TX
435 ;18B20.c: 176: if(TZ>100) TZ/100;
436 ;18B20.c: 177: ge=TZ%10;
437 0723 300A movlw 10
438 0724 00FA movwf btemp+1
439 0725 0824 movf _TZ,w
440 0726 2786 call lbmod
441 0727 0879 movf btemp,w
442 0728 00A6 movwf _ge
443 ;18B20.c: 178: shi=TZ/10;
444 0729 300A movlw 10
445 072A 00FA movwf btemp+1
446 072B 0824 movf _TZ,w
447 072C 2786 call lbdiv
448 072D 00A8 movwf _shi
449 ;18B20.c: 179: wd=0;
450 072E 01AB clrf _wd
451 072F 01AC clrf _wd+1
452 ;18B20.c: 180: if (TX & 0x80) wd=wd+5000;
453 0730 1FA3 btfss _TX,7
454 0731 2F38 goto l31
455 0732 3088 movlw 136
456 0733 07AB addwf _wd
457 0734 1803 btfsc 3,0
458 0735 0AAC incf _wd+1
459 0736 3013 movlw 19
460 0737 07AC addwf _wd+1
461 0738 l31
462 ;18B20.c: 181: if (TX & 0x40) wd=wd+2500;
463 0738 1F23 btfss _TX,6
464 0739 2F40 goto l32
465 073A 30C4 movlw 196
466 073B 07AB addwf _wd
467 073C 1803 btfsc 3,0
468 073D 0AAC incf _wd+1
469 073E 3009 movlw 9
470 073F 07AC addwf _wd+1
471 0740 l32
472 ;18B20.c: 182: if (TX & 0x20) wd=wd+1250;
473 0740 1EA3 btfss _TX,5
474 0741 2F48 goto l33
475 0742 30E2 movlw 226
476 0743 07AB addwf _wd
477 0744 1803 btfsc 3,0
478 0745 0AAC incf _wd+1
479 0746 3004 movlw 4
480 0747 07AC addwf _wd+1
481 0748 l33
482 ;18B20.c: 183: if (TX & 0x10) wd=wd+625;
483 0748 1E23 btfss _TX,4
484 0749 2F50 goto l34
485 074A 3071 movlw 113
486 074B 07AB addwf _wd
487 074C 1803 btfsc 3,0
488 074D 0AAC incf _wd+1
489 074E 3002 movlw 2
490 074F 07AC addwf _wd+1
491 0750 l34
492 ;18B20.c: 184: shifen=wd/1000;
493 0750 30E8 movlw 232
494 0751 00FB movwf btemp+2
495 0752 3003 movlw 3
496 0753 00FC movwf btemp+3
497 0754 082C movf _wd+1,w
498 0755 00FA movwf btemp+1
499 0756 082B movf _wd,w
500 0757 00F9 movwf btemp
501 0758 27BC call lwdiv
502 0759 087D movf btemp+4,w
503 075A 00A9 movwf _shifen
504 ;18B20.c: 185: baifen=(wd%1000)/100;
505 075B 30E8 movlw 232
506 075C 00FB movwf btemp+2
507 075D 3003 movlw 3
508 075E 00FC movwf btemp+3
509 075F 082C movf _wd+1,w
510 0760 00FA movwf btemp+1
511 0761 082B movf _wd,w
512 0762 00F9 movwf btemp
513 0763 27BC call lwmod
514 0764 3064 movlw 100
515 0765 00FB movwf btemp+2
516 0766 3000 movlw 0
517 0767 01FC clrf btemp+3
518 0768 27BC call lwdiv
519 0769 087D movf btemp+4,w
520 076A 00A5 movwf _baifen
521 ;18B20.c: 186: qianfen=(wd%100)/10;
522 076B 3064 movlw 100
523 076C 00FB movwf btemp+2
524 076D 01FC clrf btemp+3
525 076E 082C movf _wd+1,w
526 076F 00FA movwf btemp+1
527 0770 082B movf _wd,w
528 0771 00F9 movwf btemp
529 0772 27BC call lwmod
530 0773 300A movlw 10
531 0774 00FB movwf btemp+2
532 0775 3000 movlw 0
533 0776 01FC clrf btemp+3
534 0777 27BC call lwdiv
535 0778 087D movf btemp+4,w
536 0779 00A7 movwf _qianfen
537 ;18B20.c: 187: wanfen=wd%10;
538 077A 300A movlw 10
539 077B 00FB movwf btemp+2
540 077C 01FC clrf btemp+3
541 077D 082C movf _wd+1,w
542 077E 00FA movwf btemp+1
543 077F 082B movf _wd,w
544 0780 00F9 movwf btemp
545 0781 27BC call lwmod
546 0782 0879 movf btemp,w
547 0783 00AA movwf _wanfen
548 ;18B20.c: 188: asm("nop");
549 0784 0000 nop ;#
550 ;18B20.c: 189: }
551 0785 0008 return ;W free
552
553 psect text7
554 062B _main
555 ;18B20.c: 193: void main()
556 062B 262F call _init
557 062C l37
558 ;18B20.c: 196: while(1)
559 ;18B20.c: 197: {
560 062C 26F2 call _get_temp
561 ;18B20.c: 199: display();
562 062D 26A5 call _display
563 062E 2E2C goto l37
564
565 psect rbit_0
566 0100 F542
F542
567 0100 ds 1
568 0000
569 0000
570 0000
571 0000
572 0000
573 0000
574 0000
575 0000
576 0000
577 0000
578 0000
579 0000
580 0000
581 0000
582 0000
583 0000
584 0000
585 0000
586 0000
587 0000
588 0000
589 0000
590 0000
591 0000
592 0000
593 0000
594 0000
595 0000
596 0000
597 0000
598 0000
599 0000
600 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -