📄 ds18b20.lst
字号:
546 00b8 83E3 ldi r24,lo8(1843)
547 00ba 97E0 ldi r25,hi8(1843)
548 .LBB56:
549 .LBB57:
551 .LM40:
552 /* #APP */
553 00bc 0197 1: sbiw r24,1
554 00be F1F7 brne 1b
555 /* #NOAPP */
556 .LBE57:
557 .LBE56:
558 .LBE55:
559 .LBE54:
561 .Ltext22:
60:ds18b20.c **** _delay_ms(1);
61:ds18b20.c **** write_ds18b20(ds18b20_skip_rom);
563 .LM41:
564 00c0 8CEC ldi r24,lo8(-52)
565 00c2 DBDF rcall write_ds18b20
62:ds18b20.c **** write_ds18b20(ds18b20_convert_tem);
567 .LM42:
568 00c4 84E4 ldi r24,lo8(68)
569 00c6 D9DF rcall write_ds18b20
570 /* epilogue: frame size=0 */
571 00c8 0895 ret
572 /* epilogue end (size=1) */
573 /* function convert_ds18b20 size 13 (12) */
578 .Lscope4:
580 .global read_temperature
582 read_temperature:
63:ds18b20.c **** }
64:ds18b20.c **** void read_temperature(void)
65:ds18b20.c **** {
584 .LM43:
585 /* prologue: frame size=0 */
586 00ca CF93 push r28
587 /* prologue end (size=1) */
66:ds18b20.c **** uchar low=0;
67:ds18b20.c **** uchar high=0;
68:ds18b20.c **** reset_ds18b20();
589 .LM44:
590 00cc 99DF rcall reset_ds18b20
69:ds18b20.c **** ack_ds18b20();
592 .LM45:
593 00ce AADF rcall ack_ds18b20
594 .LBB58:
595 .LBB59:
597 .Ltext23:
599 .LM46:
600 00d0 83E3 ldi r24,lo8(1843)
601 00d2 97E0 ldi r25,hi8(1843)
602 .LBB60:
603 .LBB61:
605 .LM47:
606 /* #APP */
607 00d4 0197 1: sbiw r24,1
608 00d6 F1F7 brne 1b
609 /* #NOAPP */
610 .LBE61:
611 .LBE60:
612 .LBE59:
613 .LBE58:
615 .Ltext24:
70:ds18b20.c **** _delay_ms(1);
71:ds18b20.c **** write_ds18b20(ds18b20_skip_rom);
617 .LM48:
618 00d8 8CEC ldi r24,lo8(-52)
619 00da CFDF rcall write_ds18b20
72:ds18b20.c **** write_ds18b20(ds18b20_read_ram);
621 .LM49:
622 00dc 8EEB ldi r24,lo8(-66)
623 00de CDDF rcall write_ds18b20
73:ds18b20.c **** low=read_ds18b20();
625 .LM50:
626 00e0 A9DF rcall read_ds18b20
627 00e2 C82F mov r28,r24
74:ds18b20.c **** high=read_ds18b20();
629 .LM51:
630 00e4 A7DF rcall read_ds18b20
75:ds18b20.c **** if(high!=0xff)
632 .LM52:
633 00e6 8F3F cpi r24,lo8(-1)
634 00e8 11F4 brne .L153
76:ds18b20.c **** {
77:ds18b20.c **** temperature_low=low;
78:ds18b20.c **** temperature_high=high;
79:ds18b20.c **** }
80:ds18b20.c **** else if(low!=0xff)
636 .LM53:
637 00ea CF3F cpi r28,lo8(-1)
638 00ec 21F0 breq .L151
639 .L153:
81:ds18b20.c **** {
82:ds18b20.c **** temperature_low=low;
641 .LM54:
642 00ee C093 0000 sts temperature_low,r28
83:ds18b20.c **** temperature_high=high;
644 .LM55:
645 00f2 8093 0000 sts temperature_high,r24
646 .L151:
84:ds18b20.c **** }
85:ds18b20.c **** convert_ds18b20();
648 .LM56:
649 00f6 DEDF rcall convert_ds18b20
650 /* epilogue: frame size=0 */
651 00f8 CF91 pop r28
652 00fa 0895 ret
653 /* epilogue end (size=2) */
654 /* function read_temperature size 27 (24) */
663 .Lscope5:
665 .global display_temperature
667 display_temperature:
86:ds18b20.c **** }
87:ds18b20.c **** void display_temperature(void)
88:ds18b20.c **** {
669 .LM57:
670 /* prologue: frame size=0 */
671 /* prologue end (size=0) */
89:ds18b20.c **** uchar temp=0;
673 .LM58:
674 00fc 90E0 ldi r25,lo8(0)
90:ds18b20.c **** uchar data=0;
91:ds18b20.c **** temp=temperature_high<<4;
676 .LM59:
677 00fe 2091 0000 lds r18,temperature_high
678 0102 2295 swap r18
679 0104 207F andi r18,0xf0
92:ds18b20.c **** temp+=temperature_low>>4;
681 .LM60:
682 0106 8091 0000 lds r24,temperature_low
683 010a 8295 swap r24
684 010c 8F70 andi r24,0x0f
685 010e 280F add r18,r24
93:ds18b20.c **** if(temp>0x80)//负
687 .LM61:
688 0110 2138 cpi r18,lo8(-127)
689 0112 E0F0 brlo .L155
94:ds18b20.c **** {
95:ds18b20.c **** display_buffer[0]=0;
691 .LM62:
692 0114 9093 0000 sts display_buffer,r25
96:ds18b20.c **** temp=~temp;
97:ds18b20.c **** data=temp/100;
98:ds18b20.c **** display_buffer[2]=0x40;//-
694 .LM63:
695 0118 80E4 ldi r24,lo8(64)
696 011a 8093 0000 sts display_buffer+2,r24
99:ds18b20.c **** temp%=100;
698 .LM64:
699 011e 822F mov r24,r18
700 0120 8095 com r24
701 0122 64E6 ldi r22,lo8(100)
702 0124 00D0 rcall __udivmodqi4
703 0126 292F mov r18,r25
100:ds18b20.c **** data=temp/10;
705 .LM65:
706 0128 892F mov r24,r25
707 012a 6AE0 ldi r22,lo8(10)
708 012c 00D0 rcall __udivmodqi4
709 .LBB62:
101:ds18b20.c **** display_buffer[3]=pgm_read_byte(display_code+data);
711 .LM66:
712 012e E82F mov r30,r24
713 0130 FF27 clr r31
714 0132 E050 subi r30,lo8(-(display_code))
715 0134 F040 sbci r31,hi8(-(display_code))
716 /* #APP */
717 0136 8491 lpm r24, Z
718
719 /* #NOAPP */
720 .LBE62:
721 0138 8093 0000 sts display_buffer+3,r24
102:ds18b20.c **** data=temp%10;
723 .LM67:
724 013c 822F mov r24,r18
725 013e 00D0 rcall __udivmodqi4
726 .LBB63:
103:ds18b20.c **** display_buffer[4]=pgm_read_byte(display_code+data);
728 .LM68:
729 0140 E92F mov r30,r25
730 0142 FF27 clr r31
731 0144 E050 subi r30,lo8(-(display_code))
732 0146 F040 sbci r31,hi8(-(display_code))
733 /* #APP */
734 0148 8491 lpm r24, Z
735
736 /* #NOAPP */
737 014a 19C0 rjmp .L157
738 .L155:
739 .LBE63:
104:ds18b20.c **** }
105:ds18b20.c **** else
106:ds18b20.c **** {
107:ds18b20.c **** display_buffer[0]=0;//null
741 .LM69:
742 014c 9093 0000 sts display_buffer,r25
108:ds18b20.c **** data=temp/100;
109:ds18b20.c **** display_buffer[2]=0;//pgm_read_byte(display_code+data);
744 .LM70:
745 0150 1092 0000 sts display_buffer+2,__zero_reg__
110:ds18b20.c **** temp%=100;
747 .LM71:
748 0154 822F mov r24,r18
749 0156 64E6 ldi r22,lo8(100)
750 0158 00D0 rcall __udivmodqi4
751 015a 292F mov r18,r25
111:ds18b20.c **** data=temp/10;
753 .LM72:
754 015c 892F mov r24,r25
755 015e 6AE0 ldi r22,lo8(10)
756 0160 00D0 rcall __udivmodqi4
757 .LBB64:
112:ds18b20.c **** display_buffer[3]=pgm_read_byte(display_code+data);
759 .LM73:
760 0162 E82F mov r30,r24
761 0164 FF27 clr r31
762 0166 E050 subi r30,lo8(-(display_code))
763 0168 F040 sbci r31,hi8(-(display_code))
764 /* #APP */
765 016a 8491 lpm r24, Z
766
767 /* #NOAPP */
768 .LBE64:
769 016c 8093 0000 sts display_buffer+3,r24
113:ds18b20.c **** data=temp%10;
771 .LM74:
772 0170 822F mov r24,r18
773 0172 00D0 rcall __udivmodqi4
774 .LBB65:
114:ds18b20.c **** display_buffer[4]=pgm_read_byte(display_code+data);
776 .LM75:
777 0174 E92F mov r30,r25
778 0176 FF27 clr r31
779 0178 E050 subi r30,lo8(-(display_code))
780 017a F040 sbci r31,hi8(-(display_code))
781 /* #APP */
782 017c 8491 lpm r24, Z
783
784 /* #NOAPP */
785 .L157:
786 .LBE65:
787 017e 8093 0000 sts display_buffer+4,r24
115:ds18b20.c **** }
116:ds18b20.c **** display_buffer[1]=0;//空
789 .LM76:
790 0182 1092 0000 sts display_buffer+1,__zero_reg__
117:ds18b20.c **** display_buffer[5]=0;//空
792 .LM77:
793 0186 1092 0000 sts display_buffer+5,__zero_reg__
118:ds18b20.c **** display_buffer[6]=0x63;//o
795 .LM78:
796 018a 83E6 ldi r24,lo8(99)
797 018c 8093 0000 sts display_buffer+6,r24
119:ds18b20.c **** display_buffer[7]=0x39;//c
799 .LM79:
800 0190 89E3 ldi r24,lo8(57)
801 0192 8093 0000 sts display_buffer+7,r24
802 /* epilogue: frame size=0 */
803 0196 0895 ret
804 /* epilogue end (size=1) */
805 /* function display_temperature size 90 (89) */
823 .Lscope6:
824 .text
826 Letext:
827 /* File "ds18b20.c": code 245 = 0x00f5 ( 232), prologues 3, epilogues 10 */
DEFINED SYMBOLS
*ABS*:00000000 ds18b20.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:94 .text:00000000 reset_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:211 .text:00000024 ack_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:259 .text:00000034 read_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:390 .text:0000007a write_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:529 .text:000000b4 convert_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:582 .text:000000ca read_temperature
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:667 .text:000000fc display_temperature
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s:826 .text:00000198 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
temperature_low
temperature_high
display_buffer
__udivmodqi4
display_code
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -