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

📄 ds18b20.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序 数码管显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 233               	.LM11:
 234 002c 8DE5      		ldi r24,lo8(93)
 235               	.LBB24:
 236               	.LBB25:
 238               	.LM12:
 239               	/* #APP */
 240 002e 8A95      		1: dec r24
 241 0030 F1F7      		brne 1b
 242               	/* #NOAPP */
 243               	.LBE25:
 244               	.LBE24:
 245               	.LBE23:
 246               	.LBE22:
 247               	/* epilogue: frame size=0 */
 248 0032 0895      		ret
 249               	/* epilogue end (size=1) */
 250               	/* function ack_ds18b20 size 10 (9) */
 255               	.Lscope1:
 257               	.global	read_ds18b20
 259               	read_ds18b20:
 261               	.Ltext6:
  17:ds18b20.c     **** 	_delay_us(38);//20us
  18:ds18b20.c     **** }
  19:ds18b20.c     **** uchar read_ds18b20(void)
  20:ds18b20.c     **** {
 263               	.LM13:
 264               	/* prologue: frame size=0 */
 265 0034 CF93      		push r28
 266 0036 DF93      		push r29
 267               	/* prologue end (size=2) */
  21:ds18b20.c     **** 	uchar data=0;
 269               	.LM14:
 270 0038 90E0      		ldi r25,lo8(0)
 271 003a A2E0      		ldi r26,lo8(2)
 272 003c B0E0      		ldi r27,hi8(2)
 273 003e C0E0      		ldi r28,hlo8(2)
 274 0040 D0E0      		ldi r29,hhi8(2)
 275 0042 24E0      		ldi r18,lo8(4)
 276 0044 30E0      		ldi r19,hi8(4)
 277 0046 40E0      		ldi r20,hlo8(4)
 278 0048 50E0      		ldi r21,hhi8(4)
 279 004a 792F      		mov r23,r25
 280 004c 67E0      		ldi r22,lo8(7)
 281               	.L86:
  22:ds18b20.c     **** 	uchar i=0;
  23:ds18b20.c     **** 	for(i=0;i<8;i++)
  24:ds18b20.c     **** 	{
  25:ds18b20.c     **** 		data>>=1;
 283               	.LM15:
 284 004e 9695      		lsr r25
  26:ds18b20.c     **** 		clr_ds18b20_dq();
 286               	.LM16:
 287 0050 AD98      		cbi 53-0x20,5
 288               	.LBB26:
 289               	.LBB27:
 290               	.LBB28:
 291               	.LBB29:
 293               	.Ltext7:
 295               	.LM17:
 296 0052 8A2F      		mov r24,r26
 297               	/* #APP */
 298 0054 8A95      		1: dec r24
 299 0056 F1F7      		brne 1b
 300               	/* #NOAPP */
 301               	.LBE29:
 302               	.LBE28:
 303               	.LBE27:
 304               	.LBE26:
 306               	.Ltext8:
  27:ds18b20.c     **** 		_delay_us(1);//1us
  28:ds18b20.c     **** 		set_ds18b20_dq();
 308               	.LM18:
 309 0058 AD9A      		sbi 53-0x20,5
 310               	.LBB30:
 311               	.LBB31:
 312               	.LBB32:
 313               	.LBB33:
 315               	.Ltext9:
 317               	.LM19:
 318 005a 822F      		mov r24,r18
 319               	/* #APP */
 320 005c 8A95      		1: dec r24
 321 005e F1F7      		brne 1b
 322               	/* #NOAPP */
 323               	.LBE33:
 324               	.LBE32:
 325               	.LBE31:
 326               	.LBE30:
 328               	.Ltext10:
  29:ds18b20.c     **** 		_delay_us(2);//2us
  30:ds18b20.c     **** 		if(in_ds18b20_dq()) data|=0x80;
 330               	.LM20:
 331 0060 9D99      		sbic 51-0x20,5
 332 0062 9068      		ori r25,lo8(-128)
 333               	.L89:
 334               	.LBB34:
 335               	.LBB35:
 336               	.LBB36:
 337               	.LBB37:
 339               	.Ltext11:
 341               	.LM21:
 342 0064 872F      		mov r24,r23
 343               	/* #APP */
 344 0066 8A95      		1: dec r24
 345 0068 F1F7      		brne 1b
 346               	/* #NOAPP */
 347               	.LBE37:
 348               	.LBE36:
 349               	.LBE35:
 350               	.LBE34:
 352               	.Ltext12:
 354               	.LM22:
 355 006a 6150      		subi r22,lo8(-(-1))
 356 006c 67FF      		sbrs r22,7
 357 006e EFCF      		rjmp .L86
  31:ds18b20.c     **** 		_delay_us(118);//60us
  32:ds18b20.c     **** 	}
  33:ds18b20.c     **** 	return(data);
  34:ds18b20.c     **** }
 359               	.LM23:
 360 0070 892F      		mov r24,r25
 361 0072 9927      		clr r25
 362               	/* epilogue: frame size=0 */
 363 0074 DF91      		pop r29
 364 0076 CF91      		pop r28
 365 0078 0895      		ret
 366               	/* epilogue end (size=3) */
 367               	/* function read_ds18b20 size 42 (37) */
 385               	.Lscope2:
 388               	.global	write_ds18b20
 390               	write_ds18b20:
  35:ds18b20.c     **** void write_ds18b20(uchar data)
  36:ds18b20.c     **** {
 392               	.LM24:
 393               	/* prologue: frame size=0 */
 394               	/* prologue end (size=0) */
 395 007a 982F      		mov r25,r24
 396 007c 22E2      		ldi r18,lo8(34)
 397 007e 30E0      		ldi r19,hi8(34)
 398 0080 40E0      		ldi r20,hlo8(34)
 399 0082 50E0      		ldi r21,hhi8(34)
 400 0084 60E0      		ldi r22,lo8(0)
 401 0086 77E0      		ldi r23,lo8(7)
 402               	.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){
 404               	.LM25:
 405 0088 90FF      		sbrs r25,0
 406 008a 07C0      		rjmp .L94
  41:ds18b20.c     **** 			clr_ds18b20_dq();
 408               	.LM26:
 409 008c AD98      		cbi 53-0x20,5
 410               	.LBB38:
 411               	.LBB39:
 412               	.LBB40:
 413               	.LBB41:
 415               	.Ltext13:
 417               	.LM27:
 418 008e 822F      		mov r24,r18
 419               	/* #APP */
 420 0090 8A95      		1: dec r24
 421 0092 F1F7      		brne 1b
 422               	/* #NOAPP */
 423               	.LBE41:
 424               	.LBE40:
 425               	.LBE39:
 426               	.LBE38:
 428               	.Ltext14:
  42:ds18b20.c     **** 			_delay_us(14);//8us
  43:ds18b20.c     **** 			set_ds18b20_dq();
 430               	.LM28:
 431 0094 AD9A      		sbi 53-0x20,5
 432               	.LBB42:
 433               	.LBB43:
 434               	.LBB44:
 435               	.LBB45:
 437               	.Ltext15:
 439               	.LM29:
 440 0096 862F      		mov r24,r22
 441 0098 06C0      		rjmp .L131
 442               	.L94:
 443               	.LBE45:
 444               	.LBE44:
 445               	.LBE43:
 446               	.LBE42:
 448               	.Ltext16:
  44:ds18b20.c     **** 			_delay_us(108);//55us
  45:ds18b20.c     **** 		}
  46:ds18b20.c     **** 		else
  47:ds18b20.c     **** 		{
  48:ds18b20.c     **** 			clr_ds18b20_dq();
 450               	.LM30:
 451 009a AD98      		cbi 53-0x20,5
 452               	.LBB46:
 453               	.LBB47:
 454               	.LBB48:
 455               	.LBB49:
 457               	.Ltext17:
 459               	.LM31:
 460 009c 862F      		mov r24,r22
 461               	/* #APP */
 462 009e 8A95      		1: dec r24
 463 00a0 F1F7      		brne 1b
 464               	/* #NOAPP */
 465               	.LBE49:
 466               	.LBE48:
 467               	.LBE47:
 468               	.LBE46:
 470               	.Ltext18:
  49:ds18b20.c     **** 			_delay_us(108);//55us
  50:ds18b20.c     **** 			set_ds18b20_dq();
 472               	.LM32:
 473 00a2 AD9A      		sbi 53-0x20,5
 474               	.LBB50:
 475               	.LBB51:
 476               	.LBB52:
 477               	.LBB53:
 479               	.Ltext19:
 481               	.LM33:
 482 00a4 822F      		mov r24,r18
 483               	.L131:
 484               	/* #APP */
 485 00a6 8A95      		1: dec r24
 486 00a8 F1F7      		brne 1b
 487               	/* #NOAPP */
 488               	.LBE53:
 489               	.LBE52:
 490               	.LBE51:
 491               	.LBE50:
 493               	.Ltext20:
  51:ds18b20.c     **** 			_delay_us(14);//8us
  52:ds18b20.c     **** 		}
  53:ds18b20.c     **** 		data>>=1;
 495               	.LM34:
 496 00aa 9695      		lsr r25
 498               	.LM35:
 499 00ac 7150      		subi r23,lo8(-(-1))
 500 00ae 77FF      		sbrs r23,7
 501 00b0 EBCF      		rjmp .L128
 502               	/* epilogue: frame size=0 */
 503 00b2 0895      		ret
 504               	/* epilogue end (size=1) */
 505               	/* function write_ds18b20 size 35 (34) */
 525               	.Lscope3:
 527               	.global	convert_ds18b20
 529               	convert_ds18b20:
  54:ds18b20.c     **** 	}	
  55:ds18b20.c     **** }
  56:ds18b20.c     **** void convert_ds18b20(void)
  57:ds18b20.c     **** {
 531               	.LM36:
 532               	/* prologue: frame size=0 */
 533               	/* prologue end (size=0) */
  58:ds18b20.c     **** 	reset_ds18b20();
 535               	.LM37:
 536 00b4 A5DF      		rcall reset_ds18b20
  59:ds18b20.c     ****     ack_ds18b20();
 538               	.LM38:
 539 00b6 B6DF      		rcall ack_ds18b20
 540               	.LBB54:
 541               	.LBB55:
 543               	.Ltext21:
 161:C:/WinAVR/avr/include/util/delay.h **** 	_delay_loop_1(__ticks);
 162:C:/WinAVR/avr/include/util/delay.h **** }
 163:C:/WinAVR/avr/include/util/delay.h **** 
 164:C:/WinAVR/avr/include/util/delay.h **** 
 165:C:/WinAVR/avr/include/util/delay.h **** /**
 166:C:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 167:C:/WinAVR/avr/include/util/delay.h **** 
 168:C:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 169:C:/WinAVR/avr/include/util/delay.h **** 
 170:C:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 171:C:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 172:C:/WinAVR/avr/include/util/delay.h **** 
 173:C:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 174:C:/WinAVR/avr/include/util/delay.h ****  */
 175:C:/WinAVR/avr/include/util/delay.h **** void
 176:C:/WinAVR/avr/include/util/delay.h **** _delay_ms(double __ms)
 177:C:/WinAVR/avr/include/util/delay.h **** {
 178:C:/WinAVR/avr/include/util/delay.h **** 	uint16_t __ticks;
 179:C:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 4e3) * __ms;
 180:C:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 181:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 182:C:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 65535)
 183:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 65536 */
 184:C:/WinAVR/avr/include/util/delay.h **** 	else
 185:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint16_t)__tmp;
 545               	.LM39:

⌨️ 快捷键说明

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