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

📄 ds18b20.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 224               	.LBE24:
 225               	.LBE23:
 226               	.LBE22:
 227               	/* epilogue: frame size=0 */
 228 0032 0895      		ret
 229               	/* epilogue end (size=1) */
 230               	/* function ack_ds18b20 size 10 (9) */
 235               	.Lscope1:
 237               	.global	read_ds18b20
 239               	read_ds18b20:
 241               	.Ltext6:
  17:ds18b20.c     **** 	_delay_us(38);//20us
  18:ds18b20.c     **** }
  19:ds18b20.c     **** uchar read_ds18b20(void)
  20:ds18b20.c     **** {
 243               	.LM13:
 244               	/* prologue: frame size=0 */
 245 0034 CF93      		push r28
 246 0036 DF93      		push r29
 247               	/* prologue end (size=2) */
  21:ds18b20.c     **** 	uchar data=0;
 249               	.LM14:
 250 0038 90E0      		ldi r25,lo8(0)
 251 003a A2E0      		ldi r26,lo8(2)
 252 003c B0E0      		ldi r27,hi8(2)
 253 003e C0E0      		ldi r28,hlo8(2)
 254 0040 D0E0      		ldi r29,hhi8(2)
 255 0042 24E0      		ldi r18,lo8(4)
 256 0044 30E0      		ldi r19,hi8(4)
 257 0046 40E0      		ldi r20,hlo8(4)
 258 0048 50E0      		ldi r21,hhi8(4)
 259 004a 792F      		mov r23,r25
 260 004c 67E0      		ldi r22,lo8(7)
 261               	.L86:
  22:ds18b20.c     **** 	uchar i=0;
  23:ds18b20.c     **** 	for(i=0;i<8;i++)
  24:ds18b20.c     **** 	{
  25:ds18b20.c     **** 		data>>=1;
 263               	.LM15:
 264 004e 9695      		lsr r25
  26:ds18b20.c     **** 		clr_ds18b20_dq();
 266               	.LM16:
 267 0050 AD98      		cbi 53-0x20,5
 268               	.LBB26:
 269               	.LBB27:
 270               	.LBB28:
 271               	.LBB29:
 273               	.Ltext7:
 275               	.LM17:
 276 0052 8A2F      		mov r24,r26
 277               	/* #APP */
 278 0054 8A95      		1: dec r24
 279 0056 F1F7      		brne 1b
 280               	/* #NOAPP */
 281               	.LBE29:
 282               	.LBE28:
 283               	.LBE27:
 284               	.LBE26:
 286               	.Ltext8:
  27:ds18b20.c     **** 		_delay_us(1);//1us
  28:ds18b20.c     **** 		set_ds18b20_dq();
 288               	.LM18:
 289 0058 AD9A      		sbi 53-0x20,5
 290               	.LBB30:
 291               	.LBB31:
 292               	.LBB32:
 293               	.LBB33:
 295               	.Ltext9:
 297               	.LM19:
 298 005a 822F      		mov r24,r18
 299               	/* #APP */
 300 005c 8A95      		1: dec r24
 301 005e F1F7      		brne 1b
 302               	/* #NOAPP */
 303               	.LBE33:
 304               	.LBE32:
 305               	.LBE31:
 306               	.LBE30:
 308               	.Ltext10:
  29:ds18b20.c     **** 		_delay_us(2);//2us
  30:ds18b20.c     **** 		if(in_ds18b20_dq()) data|=0x80;
 310               	.LM20:
 311 0060 9D99      		sbic 51-0x20,5
 312 0062 9068      		ori r25,lo8(-128)
 313               	.L89:
 314               	.LBB34:
 315               	.LBB35:
 316               	.LBB36:
 317               	.LBB37:
 319               	.Ltext11:
 321               	.LM21:
 322 0064 872F      		mov r24,r23
 323               	/* #APP */
 324 0066 8A95      		1: dec r24
 325 0068 F1F7      		brne 1b
 326               	/* #NOAPP */
 327               	.LBE37:
 328               	.LBE36:
 329               	.LBE35:
 330               	.LBE34:
 332               	.Ltext12:
 334               	.LM22:
 335 006a 6150      		subi r22,lo8(-(-1))
 336 006c 67FF      		sbrs r22,7
 337 006e EFCF      		rjmp .L86
  31:ds18b20.c     **** 		_delay_us(118);//60us
  32:ds18b20.c     **** 	}
  33:ds18b20.c     **** 	return(data);
  34:ds18b20.c     **** }
 339               	.LM23:
 340 0070 892F      		mov r24,r25
 341 0072 9927      		clr r25
 342               	/* epilogue: frame size=0 */
 343 0074 DF91      		pop r29
 344 0076 CF91      		pop r28
 345 0078 0895      		ret
 346               	/* epilogue end (size=3) */
 347               	/* function read_ds18b20 size 42 (37) */
 365               	.Lscope2:
 368               	.global	write_ds18b20
 370               	write_ds18b20:
  35:ds18b20.c     **** void write_ds18b20(uchar data)
  36:ds18b20.c     **** {
 372               	.LM24:
 373               	/* prologue: frame size=0 */
 374               	/* prologue end (size=0) */
 375 007a 982F      		mov r25,r24
 376 007c 22E2      		ldi r18,lo8(34)
 377 007e 30E0      		ldi r19,hi8(34)
 378 0080 40E0      		ldi r20,hlo8(34)
 379 0082 50E0      		ldi r21,hhi8(34)
 380 0084 60E0      		ldi r22,lo8(0)
 381 0086 77E0      		ldi r23,lo8(7)
 382               	.L128:
  37:ds18b20.c     **** 	uchar i=0;
  38:ds18b20.c     **** 	for(i=0;i<8;i++)
  39:ds18b20.c     **** 	{
  40:ds18b20.c     **** 		if(data&0x01){
 384               	.LM25:
 385 0088 90FF      		sbrs r25,0
 386 008a 07C0      		rjmp .L94
  41:ds18b20.c     **** 			clr_ds18b20_dq();
 388               	.LM26:
 389 008c AD98      		cbi 53-0x20,5
 390               	.LBB38:
 391               	.LBB39:
 392               	.LBB40:
 393               	.LBB41:
 395               	.Ltext13:
 397               	.LM27:
 398 008e 822F      		mov r24,r18
 399               	/* #APP */
 400 0090 8A95      		1: dec r24
 401 0092 F1F7      		brne 1b
 402               	/* #NOAPP */
 403               	.LBE41:
 404               	.LBE40:
 405               	.LBE39:
 406               	.LBE38:
 408               	.Ltext14:
  42:ds18b20.c     **** 			_delay_us(14);//8us
  43:ds18b20.c     **** 			set_ds18b20_dq();
 410               	.LM28:
 411 0094 AD9A      		sbi 53-0x20,5
 412               	.LBB42:
 413               	.LBB43:
 414               	.LBB44:
 415               	.LBB45:
 417               	.Ltext15:
 419               	.LM29:
 420 0096 862F      		mov r24,r22
 421 0098 06C0      		rjmp .L131
 422               	.L94:
 423               	.LBE45:
 424               	.LBE44:
 425               	.LBE43:
 426               	.LBE42:
 428               	.Ltext16:
  44:ds18b20.c     **** 			_delay_us(108);//55us
  45:ds18b20.c     **** 		}
  46:ds18b20.c     **** 		else
  47:ds18b20.c     **** 		{
  48:ds18b20.c     **** 			clr_ds18b20_dq();
 430               	.LM30:
 431 009a AD98      		cbi 53-0x20,5
 432               	.LBB46:
 433               	.LBB47:
 434               	.LBB48:
 435               	.LBB49:
 437               	.Ltext17:
 439               	.LM31:
 440 009c 862F      		mov r24,r22
 441               	/* #APP */
 442 009e 8A95      		1: dec r24
 443 00a0 F1F7      		brne 1b
 444               	/* #NOAPP */
 445               	.LBE49:
 446               	.LBE48:
 447               	.LBE47:
 448               	.LBE46:
 450               	.Ltext18:
  49:ds18b20.c     **** 			_delay_us(108);//55us
  50:ds18b20.c     **** 			set_ds18b20_dq();
 452               	.LM32:
 453 00a2 AD9A      		sbi 53-0x20,5
 454               	.LBB50:
 455               	.LBB51:
 456               	.LBB52:
 457               	.LBB53:
 459               	.Ltext19:
 461               	.LM33:
 462 00a4 822F      		mov r24,r18
 463               	.L131:
 464               	/* #APP */
 465 00a6 8A95      		1: dec r24
 466 00a8 F1F7      		brne 1b
 467               	/* #NOAPP */
 468               	.LBE53:
 469               	.LBE52:
 470               	.LBE51:
 471               	.LBE50:
 473               	.Ltext20:
  51:ds18b20.c     **** 			_delay_us(14);//8us
  52:ds18b20.c     **** 		}
  53:ds18b20.c     **** 		data>>=1;
 475               	.LM34:
 476 00aa 9695      		lsr r25
 478               	.LM35:
 479 00ac 7150      		subi r23,lo8(-(-1))
 480 00ae 77FF      		sbrs r23,7
 481 00b0 EBCF      		rjmp .L128
 482               	/* epilogue: frame size=0 */
 483 00b2 0895      		ret
 484               	/* epilogue end (size=1) */
 485               	/* function write_ds18b20 size 35 (34) */
 505               	.Lscope3:
 507               	.global	convert_ds18b20
 509               	convert_ds18b20:
  54:ds18b20.c     **** 	}	
  55:ds18b20.c     **** }
  56:ds18b20.c     **** void convert_ds18b20(void)
  57:ds18b20.c     **** {
 511               	.LM36:
 512               	/* prologue: frame size=0 */
 513               	/* prologue end (size=0) */
  58:ds18b20.c     **** 	reset_ds18b20();
 515               	.LM37:
 516 00b4 A5DF      		rcall reset_ds18b20
  59:ds18b20.c     ****     ack_ds18b20();
 518               	.LM38:
 519 00b6 B6DF      		rcall ack_ds18b20
 520               	.LBB54:
 521               	.LBB55:
 523               	.Ltext21:
 146:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	_delay_loop_1(__ticks);
 147:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** }
 148:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 149:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 150:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /**
 151:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    \ingroup avr_delay
 152:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 153:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 154:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 155:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    The macro F_CPU is supposed to be defined to a
 156:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 157:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 158:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 159:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****  */
 160:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** static __inline__ void
 161:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** _delay_ms(double __ms)
 162:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** {
 163:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	uint16_t __ticks;
 164:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	double __tmp = ((F_CPU) / 4e3) * __ms;
 165:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	if (__tmp < 1.0)
 166:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		__ticks = 1;
 167:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	else if (__tmp > 65535)
 168:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		__ticks = 0;	/* i.e. 65536 */
 169:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	else
 170:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		__ticks = (uint16_t)__tmp;
 525               	.LM39:
 526 00b8 83E3      		ldi r24,lo8(1843)
 527 00ba 97E0      		ldi r25,hi8(1843)
 528               	.LBB56:
 529               	.LBB57:
 531               	.LM40:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -