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

📄 ds18b20.lst

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