⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序 数码管显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -