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

📄 ds18x20.lst

📁 含PPT和书中的例图
💻 LST
📖 第 1 页 / 共 4 页
字号:
   1               		.file	"ds18x20.c"
   2               		.arch atmega32
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  17               	.Ltext0:
  18               		.section	.progmem.data,"a",@progbits
  21               	c.30:
  22 0000 2E00      		.string	"."
  25               	c.31:
  26 0002 3000      		.string	"0"
  29               	c.32:
  30 0004 B043 00   		.string	"\260C"
  31               		.text
  32               	.global	DS18X20_uart_put_temp
  34               	DS18X20_uart_put_temp:
  35               	.LFB5:
  36               	.LM1:
  37               	/* prologue: frame size=17 */
  38 0000 EF92      		push r14
  39 0002 FF92      		push r15
  40 0004 0F93      		push r16
  41 0006 1F93      		push r17
  42 0008 CF93      		push r28
  43 000a DF93      		push r29
  44 000c CDB7      		in r28,__SP_L__
  45 000e DEB7      		in r29,__SP_H__
  46 0010 6197      		sbiw r28,17
  47 0012 0FB6      		in __tmp_reg__,__SREG__
  48 0014 F894      		cli
  49 0016 DEBF      		out __SP_H__,r29
  50 0018 0FBE      		out __SREG__,__tmp_reg__
  51 001a CDBF      		out __SP_L__,r28
  52               	/* prologue end (size=14) */
  53 001c 162F      		mov r17,r22
  54 001e 042F      		mov r16,r20
  55               	.LM2:
  56 0020 8823      		tst r24
  57 0022 11F0      		breq .L2
  58               	.LM3:
  59 0024 8DE2      		ldi r24,lo8(45)
  60 0026 01C0      		rjmp .L3
  61               	.L2:
  62 0028 8BE2      		ldi r24,lo8(43)
  63               	.L3:
  64 002a 0E94 0000 		call uart_putc
  65               	.LM4:
  66 002e 812F      		mov r24,r17
  67 0030 9927      		clr r25
  68 0032 0E94 0000 		call uart_puti
  69               	.LM5:
  70 0036 80E0      		ldi r24,lo8(c.30)
  71 0038 90E0      		ldi r25,hi8(c.30)
  72 003a 0E94 0000 		call uart_puts_p
  73               	.LM6:
  74 003e 202F      		mov r18,r16
  75 0040 3327      		clr r19
  76 0042 4AE0      		ldi r20,lo8(10)
  77 0044 50E0      		ldi r21,hi8(10)
  78 0046 BE01      		movw r22,r28
  79 0048 6F5F      		subi r22,lo8(-(1))
  80 004a 7F4F      		sbci r23,hi8(-(1))
  81 004c 81E7      		ldi r24,lo8(625)
  82 004e 92E0      		ldi r25,hi8(625)
  83 0050 289F      		mul r18,r24
  84 0052 F001      		movw r30,r0
  85 0054 299F      		mul r18,r25
  86 0056 F00D      		add r31,r0
  87 0058 389F      		mul r19,r24
  88 005a F00D      		add r31,r0
  89 005c 1124      		clr r1
  90 005e CF01      		movw r24,r30
  91 0060 0E94 0000 		call itoa
  92               	.LM7:
  93 0064 8E01      		movw r16,r28
  94 0066 0F5F      		subi r16,lo8(-(1))
  95 0068 1F4F      		sbci r17,hi8(-(1))
  96 006a F801      		movw r30,r16
  97 006c 0190      		ld __tmp_reg__,Z+
  98 006e 0020      		tst __tmp_reg__
  99 0070 E9F7      		brne .-6
 100 0072 3597      		sbiw r30,5
 101 0074 EE24      		clr r14
 102 0076 FF24      		clr r15
 103 0078 E017      		cp r30,r16
 104 007a F107      		cpc r31,r17
 105 007c A9F0      		breq .L9
 106               	.L7:
 107 007e 80E0      		ldi r24,lo8(c.31)
 108 0080 90E0      		ldi r25,hi8(c.31)
 109 0082 0E94 0000 		call uart_puts_p
 110 0086 0894      		sec
 111 0088 E11C      		adc r14,__zero_reg__
 112 008a F11C      		adc r15,__zero_reg__
 113 008c F801      		movw r30,r16
 114 008e 0190      		ld __tmp_reg__,Z+
 115 0090 0020      		tst __tmp_reg__
 116 0092 E9F7      		brne .-6
 117 0094 3197      		sbiw r30,1
 118 0096 E01B      		sub r30,r16
 119 0098 F10B      		sbc r31,r17
 120 009a 84E0      		ldi r24,lo8(4)
 121 009c 90E0      		ldi r25,hi8(4)
 122 009e 8E1B      		sub r24,r30
 123 00a0 9F0B      		sbc r25,r31
 124 00a2 E816      		cp r14,r24
 125 00a4 F906      		cpc r15,r25
 126 00a6 58F3      		brlo .L7
 127               	.L9:
 128               	.LM8:
 129 00a8 CE01      		movw r24,r28
 130 00aa 0196      		adiw r24,1
 131 00ac 0E94 0000 		call uart_puts
 132               	.LM9:
 133 00b0 80E0      		ldi r24,lo8(c.32)
 134 00b2 90E0      		ldi r25,hi8(c.32)
 135 00b4 0E94 0000 		call uart_puts_p
 136               	/* epilogue: frame size=17 */
 137 00b8 6196      		adiw r28,17
 138 00ba 0FB6      		in __tmp_reg__,__SREG__
 139 00bc F894      		cli
 140 00be DEBF      		out __SP_H__,r29
 141 00c0 0FBE      		out __SREG__,__tmp_reg__
 142 00c2 CDBF      		out __SP_L__,r28
 143 00c4 DF91      		pop r29
 144 00c6 CF91      		pop r28
 145 00c8 1F91      		pop r17
 146 00ca 0F91      		pop r16
 147 00cc FF90      		pop r15
 148 00ce EF90      		pop r14
 149 00d0 0895      		ret
 150               	/* epilogue end (size=13) */
 151               	/* function DS18X20_uart_put_temp size 105 (78) */
 152               	.LFE5:
 154               		.section	.progmem.data
 157               	c.21:
 158 0007 4643 3A00 		.string	"FC:"
 161               	c.22:
 162 000b 4352 433A 		.string	"CRC:"
 162      00
 165               	c.23:
 166 0010 534E 3A20 		.string	"SN: "
 166      00
 169               	c.24:
 170 0015 2000      		.string	" "
 173               	c.25:
 174 0017 2831 3853 		.string	"(18S)"
 174      2900 
 177               	c.26:
 178 001d 2831 3842 		.string	"(18B)"
 178      2900 
 181               	c.27:
 182 0023 2820 3F20 		.string	"( ? )"
 182      2900 
 185               	c.28:
 186 0029 2043 5243 		.string	" CRC FAIL "
 186      2046 4149 
 186      4C20 00
 189               	c.29:
 190 0034 2043 5243 		.string	" CRC O.K. "
 190      204F 2E4B 
 190      2E20 00
 191               		.text
 192               	.global	DS18X20_show_id_uart
 194               	DS18X20_show_id_uart:
 195               	.LFB6:
 196               	.LM10:
 197               	/* prologue: frame size=0 */
 198 00d2 CF92      		push r12
 199 00d4 DF92      		push r13
 200 00d6 EF92      		push r14
 201 00d8 FF92      		push r15
 202 00da 0F93      		push r16
 203 00dc 1F93      		push r17
 204 00de CF93      		push r28
 205 00e0 DF93      		push r29
 206               	/* prologue end (size=8) */
 207 00e2 6C01      		movw r12,r24
 208 00e4 7B01      		movw r14,r22
 209               	.LM11:
 210 00e6 C0E0      		ldi r28,lo8(0)
 211 00e8 D0E0      		ldi r29,hi8(0)
 212 00ea C617      		cp r28,r22
 213 00ec D707      		cpc r29,r23
 214 00ee B0F5      		brsh .L27
 215 00f0 8C01      		movw r16,r24
 216               	.L23:
 217               	.LM12:
 218 00f2 2097      		sbiw r28,0
 219 00f4 19F4      		brne .L14
 220 00f6 80E0      		ldi r24,lo8(c.21)
 221 00f8 90E0      		ldi r25,hi8(c.21)
 222 00fa 07C0      		rjmp .L28
 223               	.L14:
 224               	.LM13:
 225 00fc C701      		movw r24,r14
 226 00fe 0197      		sbiw r24,1
 227 0100 C817      		cp r28,r24
 228 0102 D907      		cpc r29,r25
 229 0104 21F4      		brne .L15
 230 0106 80E0      		ldi r24,lo8(c.22)
 231 0108 90E0      		ldi r25,hi8(c.22)
 232               	.L28:
 233 010a 0E94 0000 		call uart_puts_p
 234               	.L15:
 235               	.LM14:
 236 010e C130      		cpi r28,1
 237 0110 D105      		cpc r29,__zero_reg__
 238 0112 21F4      		brne .L17
 239 0114 80E0      		ldi r24,lo8(c.23)
 240 0116 90E0      		ldi r25,hi8(c.23)
 241 0118 0E94 0000 		call uart_puts_p
 242               	.L17:
 243               	.LM15:
 244 011c F801      		movw r30,r16
 245 011e 8081      		ld r24,Z
 246 0120 0E94 0000 		call uart_puthex_byte
 247               	.LM16:
 248 0124 80E0      		ldi r24,lo8(c.24)
 249 0126 90E0      		ldi r25,hi8(c.24)
 250 0128 0E94 0000 		call uart_puts_p
 251               	.LM17:
 252 012c 2097      		sbiw r28,0
 253 012e 81F4      		brne .L13
 254               	.LM18:
 255 0130 F601      		movw r30,r12
 256 0132 8081      		ld r24,Z
 257 0134 8031      		cpi r24,lo8(16)
 258 0136 19F4      		brne .L19
 259 0138 80E0      		ldi r24,lo8(c.25)
 260 013a 90E0      		ldi r25,hi8(c.25)
 261 013c 07C0      		rjmp .L29
 262               	.L19:
 263               	.LM19:
 264 013e 8832      		cpi r24,lo8(40)
 265 0140 19F4      		brne .L21
 266 0142 80E0      		ldi r24,lo8(c.26)
 267 0144 90E0      		ldi r25,hi8(c.26)
 268 0146 02C0      		rjmp .L29
 269               	.L21:
 270               	.LM20:
 271 0148 80E0      		ldi r24,lo8(c.27)
 272 014a 90E0      		ldi r25,hi8(c.27)
 273               	.L29:
 274 014c 0E94 0000 		call uart_puts_p
 275               	.L13:
 276               	.LM21:
 277 0150 2196      		adiw r28,1
 278 0152 0F5F      		subi r16,lo8(-(1))
 279 0154 1F4F      		sbci r17,hi8(-(1))
 280 0156 CE15      		cp r28,r14
 281 0158 DF05      		cpc r29,r15
 282 015a 58F2      		brlo .L23
 283               	.L27:
 284               	.LM22:
 285 015c 68E0      		ldi r22,lo8(8)
 286 015e 70E0      		ldi r23,hi8(8)
 287 0160 C601      		movw r24,r12
 288 0162 0E94 0000 		call crc8
 289 0166 8823      		tst r24
 290 0168 19F0      		breq .L24
 291               	.LM23:
 292 016a 80E0      		ldi r24,lo8(c.28)
 293 016c 90E0      		ldi r25,hi8(c.28)
 294 016e 02C0      		rjmp .L30
 295               	.L24:
 296               	.LM24:
 297 0170 80E0      		ldi r24,lo8(c.29)
 298 0172 90E0      		ldi r25,hi8(c.29)
 299               	.L30:
 300 0174 0E94 0000 		call uart_puts_p
 301               	/* epilogue: frame size=0 */
 302 0178 DF91      		pop r29
 303 017a CF91      		pop r28
 304 017c 1F91      		pop r17
 305 017e 0F91      		pop r16
 306 0180 FF90      		pop r15
 307 0182 EF90      		pop r14
 308 0184 DF90      		pop r13
 309 0186 CF90      		pop r12
 310 0188 0895      		ret
 311               	/* epilogue end (size=9) */
 312               	/* function DS18X20_show_id_uart size 92 (75) */
 313               	.LFE6:
 315               		.section	.progmem.data
 318               	c.18:
 319 003f 5350 3A00 		.string	"SP:"
 322               	c.19:
 323 0043 4352 433A 		.string	"CRC:"
 323      00
 326               	c.20:
 327 0048 2000      		.string	" "
 328               		.text
 329               	.global	show_sp_uart
 331               	show_sp_uart:
 332               	.LFB7:
 333               	.LM25:
 334               	/* prologue: frame size=0 */
 335 018a EF92      		push r14
 336 018c FF92      		push r15
 337 018e 0F93      		push r16
 338 0190 1F93      		push r17
 339 0192 CF93      		push r28
 340 0194 DF93      		push r29
 341               	/* prologue end (size=6) */
 342 0196 7C01      		movw r14,r24
 343 0198 EB01      		movw r28,r22
 344               	.LM26:
 345 019a 80E0      		ldi r24,lo8(c.18)
 346 019c 90E0      		ldi r25,hi8(c.18)
 347 019e 0E94 0000 		call uart_puts_p
 348               	.LM27:
 349 01a2 00E0      		ldi r16,lo8(0)
 350 01a4 10E0      		ldi r17,hi8(0)
 351 01a6 0C17      		cp r16,r28
 352 01a8 1D07      		cpc r17,r29
 353 01aa B8F4      		brsh .L38
 354               	.L36:
 355               	.LM28:
 356 01ac CE01      		movw r24,r28
 357 01ae 0197      		sbiw r24,1
 358 01b0 0817      		cp r16,r24
 359 01b2 1907      		cpc r17,r25
 360 01b4 21F4      		brne .L35
 361 01b6 80E0      		ldi r24,lo8(c.19)
 362 01b8 90E0      		ldi r25,hi8(c.19)
 363 01ba 0E94 0000 		call uart_puts_p
 364               	.L35:
 365               	.LM29:
 366 01be F701      		movw r30,r14
 367 01c0 8191      		ld r24,Z+
 368 01c2 7F01      		movw r14,r30
 369 01c4 0E94 0000 		call uart_puthex_byte
 370               	.LM30:
 371 01c8 80E0      		ldi r24,lo8(c.20)
 372 01ca 90E0      		ldi r25,hi8(c.20)
 373 01cc 0E94 0000 		call uart_puts_p
 374               	.LM31:
 375 01d0 0F5F      		subi r16,lo8(-(1))
 376 01d2 1F4F      		sbci r17,hi8(-(1))
 377 01d4 0C17      		cp r16,r28
 378 01d6 1D07      		cpc r17,r29
 379 01d8 48F3      		brlo .L36
 380               	.L38:
 381               	/* epilogue: frame size=0 */
 382 01da DF91      		pop r29
 383 01dc CF91      		pop r28
 384 01de 1F91      		pop r17
 385 01e0 0F91      		pop r16
 386 01e2 FF90      		pop r15
 387 01e4 EF90      		pop r14
 388 01e6 0895      		ret
 389               	/* epilogue end (size=7) */
 390               	/* function show_sp_uart size 47 (34) */
 391               	.LFE7:
 393               	.global	DS18X20_meas_to_cel
 395               	DS18X20_meas_to_cel:
 396               	.LFB9:
 397               	.LM32:
 398               	/* prologue: frame size=0 */
 399 01e8 0F93      		push r16
 400 01ea 1F93      		push r17
 401 01ec CF93      		push r28
 402               	/* prologue end (size=3) */
 403 01ee C82F      		mov r28,r24
 404 01f0 FB01      		movw r30,r22
 405 01f2 DA01      		movw r26,r20
 406 01f4 A901      		movw r20,r18
 407               	.LM33:
 408 01f6 8081      		ld r24,Z
 409 01f8 282F      		mov r18,r24
 410 01fa 3327      		clr r19
 411               	.LM34:
 412 01fc 8181      		ldd r24,Z+1
 413 01fe 9927      		clr r25
 414 0200 982F      		mov r25,r24
 415 0202 8827      		clr r24
 416 0204 282B      		or r18,r24
 417 0206 392B      		or r19,r25
 418               	.LM35:
 419 0208 C031      		cpi r28,lo8(16)
 420 020a 59F4      		brne .L40
 421               	.LM36:
 422 020c 2E7F      		andi r18,lo8(-2)
 423               	.LM37:
 424 020e 63E0      		ldi r22,3
 425 0210 220F      	1:	lsl r18
 426 0212 331F      		rol r19
 427 0214 6A95      		dec r22
 428 0216 E1F7      		brne 1b
 429               	.LM38:
 430 0218 8681      		ldd r24,Z+6
 431 021a 281B      		sub r18,r24
 432 021c 3109      		sbc r19,__zero_reg__
 433 021e 245F      		subi r18,lo8(-(12))
 434 0220 3F4F      		sbci r19,hi8(-(12))
 435               	.L40:
 436               	.LM39:
 437 0222 37FF      		sbrs r19,7
 438 0224 06C0      		rjmp .L41
 439               	.LM40:
 440 0226 81E0      		ldi r24,lo8(1)
 441 0228 8C93      		st X,r24

⌨️ 快捷键说明

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