📄 ds18b20.lst
字号:
532 /* #APP */
533 00bc 0197 1: sbiw r24,1
534 00be F1F7 brne 1b
535 /* #NOAPP */
536 .LBE57:
537 .LBE56:
538 .LBE55:
539 .LBE54:
541 .Ltext22:
60:ds18b20.c **** _delay_ms(1);
61:ds18b20.c **** write_ds18b20(ds18b20_skip_rom);
543 .LM41:
544 00c0 8CEC ldi r24,lo8(-52)
545 00c2 DBDF rcall write_ds18b20
62:ds18b20.c **** write_ds18b20(ds18b20_convert_tem);
547 .LM42:
548 00c4 84E4 ldi r24,lo8(68)
549 00c6 D9DF rcall write_ds18b20
550 /* epilogue: frame size=0 */
551 00c8 0895 ret
552 /* epilogue end (size=1) */
553 /* function convert_ds18b20 size 13 (12) */
558 .Lscope4:
560 .global read_temperature
562 read_temperature:
63:ds18b20.c **** }
64:ds18b20.c **** void read_temperature(void)
65:ds18b20.c **** {
564 .LM43:
565 /* prologue: frame size=0 */
566 00ca CF93 push r28
567 /* prologue end (size=1) */
66:ds18b20.c **** uchar low=0;
67:ds18b20.c **** uchar high=0;
68:ds18b20.c **** reset_ds18b20();
569 .LM44:
570 00cc 99DF rcall reset_ds18b20
69:ds18b20.c **** ack_ds18b20();
572 .LM45:
573 00ce AADF rcall ack_ds18b20
574 .LBB58:
575 .LBB59:
577 .Ltext23:
579 .LM46:
580 00d0 83E3 ldi r24,lo8(1843)
581 00d2 97E0 ldi r25,hi8(1843)
582 .LBB60:
583 .LBB61:
585 .LM47:
586 /* #APP */
587 00d4 0197 1: sbiw r24,1
588 00d6 F1F7 brne 1b
589 /* #NOAPP */
590 .LBE61:
591 .LBE60:
592 .LBE59:
593 .LBE58:
595 .Ltext24:
70:ds18b20.c **** _delay_ms(1);
71:ds18b20.c **** write_ds18b20(ds18b20_skip_rom);
597 .LM48:
598 00d8 8CEC ldi r24,lo8(-52)
599 00da CFDF rcall write_ds18b20
72:ds18b20.c **** write_ds18b20(ds18b20_read_ram);
601 .LM49:
602 00dc 8EEB ldi r24,lo8(-66)
603 00de CDDF rcall write_ds18b20
73:ds18b20.c **** low=read_ds18b20();
605 .LM50:
606 00e0 A9DF rcall read_ds18b20
607 00e2 C82F mov r28,r24
74:ds18b20.c **** high=read_ds18b20();
609 .LM51:
610 00e4 A7DF rcall read_ds18b20
75:ds18b20.c **** if(high!=0xff)
612 .LM52:
613 00e6 8F3F cpi r24,lo8(-1)
614 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)
616 .LM53:
617 00ea CF3F cpi r28,lo8(-1)
618 00ec 21F0 breq .L151
619 .L153:
81:ds18b20.c **** {
82:ds18b20.c **** temperature_low=low;
621 .LM54:
622 00ee C093 0000 sts temperature_low,r28
83:ds18b20.c **** temperature_high=high;
624 .LM55:
625 00f2 8093 0000 sts temperature_high,r24
626 .L151:
84:ds18b20.c **** }
85:ds18b20.c **** convert_ds18b20();
628 .LM56:
629 00f6 DEDF rcall convert_ds18b20
630 /* epilogue: frame size=0 */
631 00f8 CF91 pop r28
632 00fa 0895 ret
633 /* epilogue end (size=2) */
634 /* function read_temperature size 27 (24) */
643 .Lscope5:
645 .global display_temperature
647 display_temperature:
86:ds18b20.c **** }
87:ds18b20.c **** void display_temperature(void)
88:ds18b20.c **** {
649 .LM57:
650 /* prologue: frame size=0 */
651 /* prologue end (size=0) */
89:ds18b20.c **** uchar temp=0;
653 .LM58:
654 00fc 90E0 ldi r25,lo8(0)
90:ds18b20.c **** uchar data=0;
91:ds18b20.c **** temp=temperature_high<<4;
656 .LM59:
657 00fe 2091 0000 lds r18,temperature_high
658 0102 2295 swap r18
659 0104 207F andi r18,0xf0
92:ds18b20.c **** temp+=temperature_low>>4;
661 .LM60:
662 0106 8091 0000 lds r24,temperature_low
663 010a 8295 swap r24
664 010c 8F70 andi r24,0x0f
665 010e 280F add r18,r24
93:ds18b20.c **** if(temp>0x80)//负
667 .LM61:
668 0110 2138 cpi r18,lo8(-127)
669 0112 E0F0 brlo .L155
94:ds18b20.c **** {
95:ds18b20.c **** display_buffer[0]=0;
671 .LM62:
672 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;//-
674 .LM63:
675 0118 80E4 ldi r24,lo8(64)
676 011a 8093 0000 sts display_buffer+2,r24
99:ds18b20.c **** temp%=100;
678 .LM64:
679 011e 822F mov r24,r18
680 0120 8095 com r24
681 0122 64E6 ldi r22,lo8(100)
682 0124 00D0 rcall __udivmodqi4
683 0126 292F mov r18,r25
100:ds18b20.c **** data=temp/10;
685 .LM65:
686 0128 892F mov r24,r25
687 012a 6AE0 ldi r22,lo8(10)
688 012c 00D0 rcall __udivmodqi4
689 .LBB62:
101:ds18b20.c **** display_buffer[3]=pgm_read_byte(display_code+data);
691 .LM66:
692 012e E82F mov r30,r24
693 0130 FF27 clr r31
694 0132 E050 subi r30,lo8(-(display_code))
695 0134 F040 sbci r31,hi8(-(display_code))
696 /* #APP */
697 0136 8491 lpm r24, Z
698
699 /* #NOAPP */
700 .LBE62:
701 0138 8093 0000 sts display_buffer+3,r24
102:ds18b20.c **** data=temp%10;
703 .LM67:
704 013c 822F mov r24,r18
705 013e 00D0 rcall __udivmodqi4
706 .LBB63:
103:ds18b20.c **** display_buffer[4]=pgm_read_byte(display_code+data);
708 .LM68:
709 0140 E92F mov r30,r25
710 0142 FF27 clr r31
711 0144 E050 subi r30,lo8(-(display_code))
712 0146 F040 sbci r31,hi8(-(display_code))
713 /* #APP */
714 0148 8491 lpm r24, Z
715
716 /* #NOAPP */
717 014a 19C0 rjmp .L157
718 .L155:
719 .LBE63:
104:ds18b20.c **** }
105:ds18b20.c **** else
106:ds18b20.c **** {
107:ds18b20.c **** display_buffer[0]=0;//null
721 .LM69:
722 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);
724 .LM70:
725 0150 1092 0000 sts display_buffer+2,__zero_reg__
110:ds18b20.c **** temp%=100;
727 .LM71:
728 0154 822F mov r24,r18
729 0156 64E6 ldi r22,lo8(100)
730 0158 00D0 rcall __udivmodqi4
731 015a 292F mov r18,r25
111:ds18b20.c **** data=temp/10;
733 .LM72:
734 015c 892F mov r24,r25
735 015e 6AE0 ldi r22,lo8(10)
736 0160 00D0 rcall __udivmodqi4
737 .LBB64:
112:ds18b20.c **** display_buffer[3]=pgm_read_byte(display_code+data);
739 .LM73:
740 0162 E82F mov r30,r24
741 0164 FF27 clr r31
742 0166 E050 subi r30,lo8(-(display_code))
743 0168 F040 sbci r31,hi8(-(display_code))
744 /* #APP */
745 016a 8491 lpm r24, Z
746
747 /* #NOAPP */
748 .LBE64:
749 016c 8093 0000 sts display_buffer+3,r24
113:ds18b20.c **** data=temp%10;
751 .LM74:
752 0170 822F mov r24,r18
753 0172 00D0 rcall __udivmodqi4
754 .LBB65:
114:ds18b20.c **** display_buffer[4]=pgm_read_byte(display_code+data);
756 .LM75:
757 0174 E92F mov r30,r25
758 0176 FF27 clr r31
759 0178 E050 subi r30,lo8(-(display_code))
760 017a F040 sbci r31,hi8(-(display_code))
761 /* #APP */
762 017c 8491 lpm r24, Z
763
764 /* #NOAPP */
765 .L157:
766 .LBE65:
767 017e 8093 0000 sts display_buffer+4,r24
115:ds18b20.c **** }
116:ds18b20.c **** display_buffer[1]=0;//空
769 .LM76:
770 0182 1092 0000 sts display_buffer+1,__zero_reg__
117:ds18b20.c **** display_buffer[5]=0;//空
772 .LM77:
773 0186 1092 0000 sts display_buffer+5,__zero_reg__
118:ds18b20.c **** display_buffer[6]=0x63;//o
775 .LM78:
776 018a 83E6 ldi r24,lo8(99)
777 018c 8093 0000 sts display_buffer+6,r24
119:ds18b20.c **** display_buffer[7]=0x39;//c
779 .LM79:
780 0190 89E3 ldi r24,lo8(57)
781 0192 8093 0000 sts display_buffer+7,r24
782 /* epilogue: frame size=0 */
783 0196 0895 ret
784 /* epilogue end (size=1) */
785 /* function display_temperature size 90 (89) */
803 .Lscope6:
804 .text
806 Letext:
807 /* File "ds18b20.c": code 245 = 0x00f5 ( 232), prologues 3, epilogues 10 */
DEFINED SYMBOLS
*ABS*:00000000 ds18b20.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:74 .text:00000000 reset_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:191 .text:00000024 ack_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:239 .text:00000034 read_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:370 .text:0000007a write_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:509 .text:000000b4 convert_ds18b20
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:562 .text:000000ca read_temperature
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:647 .text:000000fc display_temperature
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccKeaaaa.s:806 .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 + -