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

📄 ds18x20.lst

📁 这是使用AVR GCC的读取DS18B20的代码。 代码功能很全
💻 LST
📖 第 1 页 / 共 4 页
字号:
 1285 06a8 70E0      		ldi r23,hi8(0)
 1286 06aa 8EEB      		ldi r24,lo8(-66)
 1287 06ac 0E94 0000 		call ow_command
 1288 06b0 EE24      		clr r14
 1289 06b2 FF24      		clr r15
 1290 06b4 08E0      		ldi r16,lo8(8)
 1291 06b6 B02E      		mov r11,r16
 1292               	.L117:
 1293               	.LM147:
 1294 06b8 6E01      		movw r12,r28
 1295 06ba 0894      		sec
 1296 06bc C11C      		adc r12,__zero_reg__
 1297 06be D11C      		adc r13,__zero_reg__
 1298 06c0 8701      		movw r16,r14
 1299 06c2 0C0D      		add r16,r12
 1300 06c4 1D1D      		adc r17,r13
 1301 06c6 0E94 0000 		call ow_byte_rd
 1302 06ca F801      		movw r30,r16
 1303 06cc 8083      		st Z,r24
 1304 06ce BA94      		dec r11
 1305 06d0 0894      		sec
 1306 06d2 E11C      		adc r14,__zero_reg__
 1307 06d4 F11C      		adc r15,__zero_reg__
 1308 06d6 B7FE      		sbrs r11,7
 1309 06d8 EFCF      		rjmp .L117
 1310               	.LM148:
 1311 06da 69E0      		ldi r22,lo8(9)
 1312 06dc 70E0      		ldi r23,hi8(9)
 1313 06de C601      		movw r24,r12
 1314 06e0 0E94 0000 		call crc8
 1315 06e4 8823      		tst r24
 1316 06e6 19F0      		breq .L118
 1317               	.LM149:
 1318 06e8 83E0      		ldi r24,lo8(3)
 1319 06ea 90E0      		ldi r25,hi8(3)
 1320 06ec 09C0      		rjmp .L113
 1321               	.L118:
 1322               	.LM150:
 1323 06ee 8401      		movw r16,r8
 1324 06f0 9301      		movw r18,r6
 1325 06f2 A201      		movw r20,r4
 1326 06f4 B601      		movw r22,r12
 1327 06f6 8A2D      		mov r24,r10
 1328 06f8 0E94 0000 		call DS18X20_meas_to_cel
 1329               	.LM151:
 1330 06fc 80E0      		ldi r24,lo8(0)
 1331 06fe 90E0      		ldi r25,hi8(0)
 1332               	.L113:
 1333               	/* epilogue: frame size=9 */
 1334 0700 2996      		adiw r28,9
 1335 0702 0FB6      		in __tmp_reg__,__SREG__
 1336 0704 F894      		cli
 1337 0706 DEBF      		out __SP_H__,r29
 1338 0708 0FBE      		out __SREG__,__tmp_reg__
 1339 070a CDBF      		out __SP_L__,r28
 1340 070c DF91      		pop r29
 1341 070e CF91      		pop r28
 1342 0710 1F91      		pop r17
 1343 0712 0F91      		pop r16
 1344 0714 FF90      		pop r15
 1345 0716 EF90      		pop r14
 1346 0718 DF90      		pop r13
 1347 071a CF90      		pop r12
 1348 071c BF90      		pop r11
 1349 071e AF90      		pop r10
 1350 0720 9F90      		pop r9
 1351 0722 8F90      		pop r8
 1352 0724 7F90      		pop r7
 1353 0726 6F90      		pop r6
 1354 0728 5F90      		pop r5
 1355 072a 4F90      		pop r4
 1356 072c 0895      		ret
 1357               	/* epilogue end (size=23) */
 1358               	/* function DS18X20_read_meas_single size 96 (49) */
 1359               	.LFE16:
 1361               		.section	.progmem.data
 1364               	c.3:
 1365 00d4 4453 3138 		.string	"DS18X20_write_scratchpad: Short Circuit !\r"
 1365      5832 305F 
 1365      7772 6974 
 1365      655F 7363 
 1365      7261 7463 
 1366               		.text
 1367               	.global	DS18X20_write_scratchpad
 1369               	DS18X20_write_scratchpad:
 1370               	.LFB17:
 1371               	.LM152:
 1372               	/* prologue: frame size=0 */
 1373 072e FF92      		push r15
 1374 0730 0F93      		push r16
 1375 0732 1F93      		push r17
 1376 0734 CF93      		push r28
 1377 0736 DF93      		push r29
 1378               	/* prologue end (size=5) */
 1379 0738 EC01      		movw r28,r24
 1380 073a 162F      		mov r17,r22
 1381 073c 042F      		mov r16,r20
 1382 073e F22E      		mov r15,r18
 1383               	.LM153:
 1384 0740 0E94 0000 		call ow_reset
 1385               	.LM154:
 1386 0744 0E94 0000 		call ow_input_pin_state
 1387 0748 8823      		tst r24
 1388 074a 99F0      		breq .L122
 1389               	.LM155:
 1390 074c BE01      		movw r22,r28
 1391 074e 8EE4      		ldi r24,lo8(78)
 1392 0750 0E94 0000 		call ow_command
 1393               	.LM156:
 1394 0754 812F      		mov r24,r17
 1395 0756 0E94 0000 		call ow_byte_wr
 1396               	.LM157:
 1397 075a 802F      		mov r24,r16
 1398 075c 0E94 0000 		call ow_byte_wr
 1399               	.LM158:
 1400 0760 8881      		ld r24,Y
 1401 0762 8832      		cpi r24,lo8(40)
 1402 0764 19F4      		brne .L123
 1403 0766 8F2D      		mov r24,r15
 1404 0768 0E94 0000 		call ow_byte_wr
 1405               	.L123:
 1406               	.LM159:
 1407 076c 80E0      		ldi r24,lo8(0)
 1408 076e 90E0      		ldi r25,hi8(0)
 1409 0770 06C0      		rjmp .L121
 1410               	.L122:
 1411               	.LM160:
 1412 0772 80E0      		ldi r24,lo8(c.3)
 1413 0774 90E0      		ldi r25,hi8(c.3)
 1414 0776 0E94 0000 		call uart_puts_p
 1415               	.LM161:
 1416 077a 81E0      		ldi r24,lo8(1)
 1417 077c 90E0      		ldi r25,hi8(1)
 1418               	.L121:
 1419               	/* epilogue: frame size=0 */
 1420 077e DF91      		pop r29
 1421 0780 CF91      		pop r28
 1422 0782 1F91      		pop r17
 1423 0784 0F91      		pop r16
 1424 0786 FF90      		pop r15
 1425 0788 0895      		ret
 1426               	/* epilogue end (size=6) */
 1427               	/* function DS18X20_write_scratchpad size 46 (35) */
 1428               	.LFE17:
 1430               		.section	.progmem.data
 1433               	c.2:
 1434 00ff 4453 3138 		.string	"DS18X20_read_scratchpad: Short Circuit !\r"
 1434      5832 305F 
 1434      7265 6164 
 1434      5F73 6372 
 1434      6174 6368 
 1435               		.text
 1436               	.global	DS18X20_read_scratchpad
 1438               	DS18X20_read_scratchpad:
 1439               	.LFB18:
 1440               	.LM162:
 1441               	/* prologue: frame size=0 */
 1442 078a 0F93      		push r16
 1443 078c 1F93      		push r17
 1444 078e CF93      		push r28
 1445 0790 DF93      		push r29
 1446               	/* prologue end (size=4) */
 1447 0792 EC01      		movw r28,r24
 1448 0794 8B01      		movw r16,r22
 1449               	.LM163:
 1450 0796 0E94 0000 		call ow_reset
 1451               	.LM164:
 1452 079a 0E94 0000 		call ow_input_pin_state
 1453 079e 8823      		tst r24
 1454 07a0 79F0      		breq .L126
 1455               	.LM165:
 1456 07a2 BE01      		movw r22,r28
 1457 07a4 8EEB      		ldi r24,lo8(-66)
 1458 07a6 0E94 0000 		call ow_command
 1459 07aa E801      		movw r28,r16
 1460 07ac 18E0      		ldi r17,lo8(8)
 1461               	.L130:
 1462               	.LM166:
 1463 07ae 0E94 0000 		call ow_byte_rd
 1464 07b2 8993      		st Y+,r24
 1465 07b4 1150      		subi r17,lo8(-(-1))
 1466 07b6 17FF      		sbrs r17,7
 1467 07b8 FACF      		rjmp .L130
 1468               	.LM167:
 1469 07ba 80E0      		ldi r24,lo8(0)
 1470 07bc 90E0      		ldi r25,hi8(0)
 1471 07be 06C0      		rjmp .L125
 1472               	.L126:
 1473               	.LM168:
 1474 07c0 80E0      		ldi r24,lo8(c.2)
 1475 07c2 90E0      		ldi r25,hi8(c.2)
 1476 07c4 0E94 0000 		call uart_puts_p
 1477               	.LM169:
 1478 07c8 81E0      		ldi r24,lo8(1)
 1479 07ca 90E0      		ldi r25,hi8(1)
 1480               	.L125:
 1481               	/* epilogue: frame size=0 */
 1482 07cc DF91      		pop r29
 1483 07ce CF91      		pop r28
 1484 07d0 1F91      		pop r17
 1485 07d2 0F91      		pop r16
 1486 07d4 0895      		ret
 1487               	/* epilogue end (size=5) */
 1488               	/* function DS18X20_read_scratchpad size 38 (29) */
 1489               	.LFE18:
 1491               		.section	.progmem.data
 1494               	c.1:
 1495 0129 4453 3138 		.string	"DS18X20_copy_scratchpad: Short Circuit !\r"
 1495      5832 305F 
 1495      636F 7079 
 1495      5F73 6372 
 1495      6174 6368 
 1496               		.text
 1497               	.global	DS18X20_copy_scratchpad
 1499               	DS18X20_copy_scratchpad:
 1500               	.LFB19:
 1501               	.LM170:
 1502               	/* prologue: frame size=0 */
 1503 07d6 1F93      		push r17
 1504 07d8 CF93      		push r28
 1505 07da DF93      		push r29
 1506               	/* prologue end (size=3) */
 1507 07dc 182F      		mov r17,r24
 1508 07de EB01      		movw r28,r22
 1509               	.LM171:
 1510 07e0 0E94 0000 		call ow_reset
 1511               	.LM172:
 1512 07e4 0E94 0000 		call ow_input_pin_state
 1513 07e8 8823      		tst r24
 1514 07ea A9F0      		breq .L135
 1515               	.LM173:
 1516 07ec BE01      		movw r22,r28
 1517 07ee 88E4      		ldi r24,lo8(72)
 1518 07f0 0E94 0000 		call ow_command
 1519               	.LM174:
 1520 07f4 1130      		cpi r17,lo8(1)
 1521 07f6 11F0      		breq .L136
 1522               	.LM175:
 1523 07f8 0E94 0000 		call ow_parasite_enable
 1524               	.L136:
 1525               	.LM176:
 1526 07fc 62E1      		ldi r22,lo8(13330)
 1527 07fe 74E3      		ldi r23,hi8(13330)
 1528 0800 80E0      		ldi r24,hlo8(13330)
 1529 0802 90E0      		ldi r25,hhi8(13330)
 1530 0804 0E94 0000 		call delayloop32
 1531               	.LM177:
 1532 0808 1130      		cpi r17,lo8(1)
 1533 080a 11F0      		breq .L137
 1534               	.LM178:
 1535 080c 0E94 0000 		call ow_parasite_disable
 1536               	.L137:
 1537               	.LM179:
 1538 0810 80E0      		ldi r24,lo8(0)
 1539 0812 90E0      		ldi r25,hi8(0)
 1540 0814 06C0      		rjmp .L134
 1541               	.L135:
 1542               	.LM180:
 1543 0816 80E0      		ldi r24,lo8(c.1)
 1544 0818 90E0      		ldi r25,hi8(c.1)
 1545 081a 0E94 0000 		call uart_puts_p
 1546               	.LM181:
 1547 081e 82E0      		ldi r24,lo8(2)
 1548 0820 90E0      		ldi r25,hi8(2)
 1549               	.L134:
 1550               	/* epilogue: frame size=0 */
 1551 0822 DF91      		pop r29
 1552 0824 CF91      		pop r28
 1553 0826 1F91      		pop r17
 1554 0828 0895      		ret
 1555               	/* epilogue end (size=4) */
 1556               	/* function DS18X20_copy_scratchpad size 42 (35) */
 1557               	.LFE19:
 1559               		.section	.progmem.data
 1562               	c.0:
 1563 0153 4453 3138 		.string	"DS18X20_recall_E2: Short Circuit !\r"
 1563      5832 305F 
 1563      7265 6361 
 1563      6C6C 5F45 
 1563      323A 2053 
 1564               		.text
 1565               	.global	DS18X20_recall_E2
 1567               	DS18X20_recall_E2:
 1568               	.LFB20:
 1569               	.LM182:
 1570               	/* prologue: frame size=0 */
 1571 082a CF93      		push r28
 1572 082c DF93      		push r29
 1573               	/* prologue end (size=2) */
 1574 082e EC01      		movw r28,r24
 1575               	.LM183:
 1576 0830 0E94 0000 		call ow_reset
 1577               	.LM184:
 1578 0834 0E94 0000 		call ow_input_pin_state
 1579 0838 8823      		tst r24
 1580 083a 69F0      		breq .L140
 1581               	.LM185:
 1582 083c BE01      		movw r22,r28
 1583 083e 88EB      		ldi r24,lo8(-72)
 1584 0840 0E94 0000 		call ow_command
 1585               	.LM186:
 1586 0844 62E1      		ldi r22,lo8(13330)
 1587 0846 74E3      		ldi r23,hi8(13330)
 1588 0848 80E0      		ldi r24,hlo8(13330)
 1589 084a 90E0      		ldi r25,hhi8(13330)
 1590 084c 0E94 0000 		call delayloop32
 1591               	.LM187:
 1592 0850 80E0      		ldi r24,lo8(0)
 1593 0852 90E0      		ldi r25,hi8(0)
 1594 0854 06C0      		rjmp .L139
 1595               	.L140:
 1596               	.LM188:
 1597 0856 80E0      		ldi r24,lo8(c.0)
 1598 0858 90E0      		ldi r25,hi8(c.0)
 1599 085a 0E94 0000 		call uart_puts_p
 1600               	.LM189:
 1601 085e 81E0      		ldi r24,lo8(1)
 1602 0860 90E0      		ldi r25,hi8(1)
 1603               	.L139:
 1604               	/* epilogue: frame size=0 */
 1605 0862 DF91      		pop r29
 1606 0864 CF91      		pop r28
 1607 0866 0895      		ret
 1608               	/* epilogue end (size=3) */
 1609               	/* function DS18X20_recall_E2 size 31 (26) */
 1610               	.LFE20:
 1612               	.Letext0:
DEFINED SYMBOLS
                            *ABS*:00000000 ds18x20.c
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:21     .progmem.data:00000000 c.30
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:25     .progmem.data:00000002 c.31
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:29     .progmem.data:00000004 c.32
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:34     .text:00000000 DS18X20_uart_put_temp
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:157    .progmem.data:00000007 c.21
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:161    .progmem.data:0000000b c.22
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:165    .progmem.data:00000010 c.23
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:169    .progmem.data:00000015 c.24
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:173    .progmem.data:00000017 c.25
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:177    .progmem.data:0000001d c.26
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:181    .progmem.data:00000023 c.27
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:185    .progmem.data:00000029 c.28
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:189    .progmem.data:00000034 c.29
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:194    .text:000000d2 DS18X20_show_id_uart
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:318    .progmem.data:0000003f c.18
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:322    .progmem.data:00000043 c.19
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:326    .progmem.data:00000048 c.20
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:331    .text:0000018a show_sp_uart
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:395    .text:000001e8 DS18X20_meas_to_cel
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:511    .progmem.data:0000004a c.5
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:515    .progmem.data:0000005b c.6
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:519    .progmem.data:00000066 c.7
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:523    .progmem.data:00000071 c.8
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:527    .progmem.data:0000007c c.9
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:531    .progmem.data:00000084 c.10
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:535    .progmem.data:00000086 c.11
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:539    .progmem.data:0000008d c.12
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:543    .progmem.data:00000094 c.13
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:547    .progmem.data:0000009b c.14
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:551    .progmem.data:000000a4 c.15
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:555    .progmem.data:000000ab c.16
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:559    .progmem.data:000000ad c.17
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:567    .text:00000280 DS18X20_read_meas_all_verbose
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:843    .text:00000430 DS18X20_temp_to_decicel
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:944    .text:000004ca DS18X20_temp_cmp
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:993    .text:000004fc DS18X20_find_sensor
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1038   .text:00000536 DS18X20_get_power_status
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1078   .progmem.data:000000af c.4
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1083   .text:00000566 DS18X20_start_meas
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1133   .text:000005a6 DS18X20_read_meas
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1250   .text:0000066e DS18X20_read_meas_single
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1364   .progmem.data:000000d4 c.3
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1369   .text:0000072e DS18X20_write_scratchpad
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1433   .progmem.data:000000ff c.2
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1438   .text:0000078a DS18X20_read_scratchpad
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1494   .progmem.data:00000129 c.1
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1499   .text:000007d6 DS18X20_copy_scratchpad
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1562   .progmem.data:00000153 c.0
C:\DOCUME~1\kelly\LOCALS~1\Temp/cc4maaaa.s:1567   .text:0000082a DS18X20_recall_E2

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
uart_putc
uart_puti
uart_puts_p
itoa
uart_puts
uart_puthex_byte
crc8
ow_rom_search
ow_byte_wr
ow_byte_rd
__divmodhi4
ow_reset
ow_command
ow_bit_io
ow_input_pin_state
ow_parasite_enable
delayloop32
ow_parasite_disable

⌨️ 快捷键说明

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