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

📄 adc_sram.lst

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1337               	.L36:
 1338 074e 8091 2B00 		lds r24,43
 1339 0752 9927      		clr r25
 1340 0754 8074      		andi r24,lo8(64)
 1341 0756 9070      		andi r25,hi8(64)
 1342 0758 0097      		sbiw r24,0
 1343 075a C9F3      		breq .L36
 226:G:/HVCBASOFT/AD/adc_sram.c **** 	UCSR0A=UCSR0A|(1<<TXC0);//因为没有使用发送结束中断,所以通过置数将TXC清零
 1345               	.LM136:
 1346 075c 8091 2B00 		lds r24,43
 1347 0760 8064      		ori r24,lo8(64)
 1348 0762 8093 2B00 		sts 43,r24
 227:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTE,2);//改为接收状态
 1350               	.LM137:
 1351 0766 8091 2300 		lds r24,35
 1352 076a 8B7F      		andi r24,lo8(-5)
 1353 076c 8093 2300 		sts 35,r24
 228:G:/HVCBASOFT/AD/adc_sram.c **** }
 1355               	.LM138:
 1356               	.LBE6:
 1357               	/* epilogue: frame size=2 */
 1358 0770 2296      		adiw r28,2
 1359 0772 0FB6      		in __tmp_reg__,__SREG__
 1360 0774 F894      		cli
 1361 0776 DEBF      		out __SP_H__,r29
 1362 0778 0FBE      		out __SREG__,__tmp_reg__
 1363 077a CDBF      		out __SP_L__,r28
 1364 077c DF91      		pop r29
 1365 077e CF91      		pop r28
 1366 0780 0895      		ret
 1367               	/* epilogue end (size=9) */
 1368               	/* function UART_DATA_BYTE_SEND size 73 (54) */
 1373               	.Lscope13:
 1377               	.global	SEND_ONE_PACKAGE
 1379               	SEND_ONE_PACKAGE:
 229:G:/HVCBASOFT/AD/adc_sram.c **** 
 230:G:/HVCBASOFT/AD/adc_sram.c **** 
 231:G:/HVCBASOFT/AD/adc_sram.c **** //发送一包数据,temp_data为包序号,从1开始编号
 232:G:/HVCBASOFT/AD/adc_sram.c **** void SEND_ONE_PACKAGE(uint8_t temp_data)
 233:G:/HVCBASOFT/AD/adc_sram.c **** {
 1381               	.LM139:
 1382               	/* prologue: frame size=520 */
 1383 0782 0F93      		push r16
 1384 0784 1F93      		push r17
 1385 0786 CF93      		push r28
 1386 0788 DF93      		push r29
 1387 078a CDB7      		in r28,__SP_L__
 1388 078c DEB7      		in r29,__SP_H__
 1389 078e C850      		subi r28,lo8(520)
 1390 0790 D240      		sbci r29,hi8(520)
 1391 0792 0FB6      		in __tmp_reg__,__SREG__
 1392 0794 F894      		cli
 1393 0796 DEBF      		out __SP_H__,r29
 1394 0798 0FBE      		out __SREG__,__tmp_reg__
 1395 079a CDBF      		out __SP_L__,r28
 1396               	/* prologue end (size=13) */
 1397 079c 8983      		std Y+1,r24
 234:G:/HVCBASOFT/AD/adc_sram.c **** //变量定义
 235:G:/HVCBASOFT/AD/adc_sram.c **** 	uint8_t crc16,temp_array[512];
 236:G:/HVCBASOFT/AD/adc_sram.c **** 	uint16_t i;
 237:G:/HVCBASOFT/AD/adc_sram.c **** 	uint32_t address;
 238:G:/HVCBASOFT/AD/adc_sram.c **** //校验码初始化
 239:G:/HVCBASOFT/AD/adc_sram.c **** 	crc16=0;
 1399               	.LM140:
 1400               	.LBB7:
 1401 079e 1A82      		std Y+2,__zero_reg__
 240:G:/HVCBASOFT/AD/adc_sram.c **** 	crc16=crc16+2+temp_data;//加入地址和包序号校验
 1403               	.LM141:
 1404 07a0 9A81      		ldd r25,Y+2
 1405 07a2 8981      		ldd r24,Y+1
 1406 07a4 890F      		add r24,r25
 1407 07a6 8E5F      		subi r24,lo8(-(2))
 1408 07a8 8A83      		std Y+2,r24
 241:G:/HVCBASOFT/AD/adc_sram.c **** //根据包序号获得相应的数据,包序号从1开始编号
 242:G:/HVCBASOFT/AD/adc_sram.c **** 	//合闸线圈电流数据地址
 243:G:/HVCBASOFT/AD/adc_sram.c **** 	if((temp_data>=1)&&(temp_data<=8)){address=(temp_data-1)*512;}
 1410               	.LM142:
 1411 07aa 8981      		ldd r24,Y+1
 1412 07ac 8823      		tst r24
 1413 07ae E9F0      		breq .L41
 1414 07b0 8981      		ldd r24,Y+1
 1415 07b2 8930      		cpi r24,lo8(9)
 1416 07b4 D0F4      		brsh .L41
 1417 07b6 FE01      		movw r30,r28
 1418 07b8 EB5F      		subi r30,lo8(-(517))
 1419 07ba FD4F      		sbci r31,hi8(-(517))
 1420 07bc 8981      		ldd r24,Y+1
 1421 07be 282F      		mov r18,r24
 1422 07c0 3327      		clr r19
 1423 07c2 80E0      		ldi r24,lo8(512)
 1424 07c4 92E0      		ldi r25,hi8(512)
 1425 07c6 289F      		mul r18,r24
 1426 07c8 A001      		movw r20,r0
 1427 07ca 299F      		mul r18,r25
 1428 07cc 500D      		add r21,r0
 1429 07ce 389F      		mul r19,r24
 1430 07d0 500D      		add r21,r0
 1431 07d2 1124      		clr r1
 1432 07d4 CA01      		movw r24,r20
 1433 07d6 8050      		subi r24,lo8(-(-512))
 1434 07d8 9240      		sbci r25,hi8(-(-512))
 1435 07da AA27      		clr r26
 1436 07dc 97FD      		sbrc r25,7
 1437 07de A095      		com r26
 1438 07e0 BA2F      		mov r27,r26
 1439 07e2 8083      		st Z,r24
 1440 07e4 9183      		std Z+1,r25
 1441 07e6 A283      		std Z+2,r26
 1442 07e8 B383      		std Z+3,r27
 1443               	.L41:
 244:G:/HVCBASOFT/AD/adc_sram.c **** 	//分闸线圈电流数据地址
 245:G:/HVCBASOFT/AD/adc_sram.c **** 	if((temp_data>=9)&&(temp_data<=16)){address=(temp_data-8-1)*512+10000;}
 1445               	.LM143:
 1446 07ea 8981      		ldd r24,Y+1
 1447 07ec 8930      		cpi r24,lo8(9)
 1448 07ee E8F0      		brlo .L42
 1449 07f0 8981      		ldd r24,Y+1
 1450 07f2 8131      		cpi r24,lo8(17)
 1451 07f4 D0F4      		brsh .L42
 1452 07f6 FE01      		movw r30,r28
 1453 07f8 EB5F      		subi r30,lo8(-(517))
 1454 07fa FD4F      		sbci r31,hi8(-(517))
 1455 07fc 8981      		ldd r24,Y+1
 1456 07fe 282F      		mov r18,r24
 1457 0800 3327      		clr r19
 1458 0802 80E0      		ldi r24,lo8(512)
 1459 0804 92E0      		ldi r25,hi8(512)
 1460 0806 289F      		mul r18,r24
 1461 0808 A001      		movw r20,r0
 1462 080a 299F      		mul r18,r25
 1463 080c 500D      		add r21,r0
 1464 080e 389F      		mul r19,r24
 1465 0810 500D      		add r21,r0
 1466 0812 1124      		clr r1
 1467 0814 CA01      		movw r24,r20
 1468 0816 805F      		subi r24,lo8(-(5392))
 1469 0818 9A4E      		sbci r25,hi8(-(5392))
 1470 081a AA27      		clr r26
 1471 081c 97FD      		sbrc r25,7
 1472 081e A095      		com r26
 1473 0820 BA2F      		mov r27,r26
 1474 0822 8083      		st Z,r24
 1475 0824 9183      		std Z+1,r25
 1476 0826 A283      		std Z+2,r26
 1477 0828 B383      		std Z+3,r27
 1478               	.L42:
 246:G:/HVCBASOFT/AD/adc_sram.c **** 	//电机电流数据地址
 247:G:/HVCBASOFT/AD/adc_sram.c **** 	if((temp_data>=17)&&(temp_data<=24)){address=(temp_data-16-1)*512+30000;}
 1480               	.LM144:
 1481 082a 8981      		ldd r24,Y+1
 1482 082c 8131      		cpi r24,lo8(17)
 1483 082e E8F0      		brlo .L43
 1484 0830 8981      		ldd r24,Y+1
 1485 0832 8931      		cpi r24,lo8(25)
 1486 0834 D0F4      		brsh .L43
 1487 0836 FE01      		movw r30,r28
 1488 0838 EB5F      		subi r30,lo8(-(517))
 1489 083a FD4F      		sbci r31,hi8(-(517))
 1490 083c 8981      		ldd r24,Y+1
 1491 083e 282F      		mov r18,r24
 1492 0840 3327      		clr r19
 1493 0842 80E0      		ldi r24,lo8(512)
 1494 0844 92E0      		ldi r25,hi8(512)
 1495 0846 289F      		mul r18,r24
 1496 0848 A001      		movw r20,r0
 1497 084a 299F      		mul r18,r25
 1498 084c 500D      		add r21,r0
 1499 084e 389F      		mul r19,r24
 1500 0850 500D      		add r21,r0
 1501 0852 1124      		clr r1
 1502 0854 CA01      		movw r24,r20
 1503 0856 805D      		subi r24,lo8(-(21296))
 1504 0858 9C4A      		sbci r25,hi8(-(21296))
 1505 085a AA27      		clr r26
 1506 085c 97FD      		sbrc r25,7
 1507 085e A095      		com r26
 1508 0860 BA2F      		mov r27,r26
 1509 0862 8083      		st Z,r24
 1510 0864 9183      		std Z+1,r25
 1511 0866 A283      		std Z+2,r26
 1512 0868 B383      		std Z+3,r27
 1513               	.L43:
 248:G:/HVCBASOFT/AD/adc_sram.c **** 	//操作电压数据地址
 249:G:/HVCBASOFT/AD/adc_sram.c **** 	if((temp_data>=25)&&(temp_data<=32)){address=(temp_data-24-1)*512+20000;}
 1515               	.LM145:
 1516 086a 8981      		ldd r24,Y+1
 1517 086c 8931      		cpi r24,lo8(25)
 1518 086e E8F0      		brlo .L44
 1519 0870 8981      		ldd r24,Y+1
 1520 0872 8132      		cpi r24,lo8(33)
 1521 0874 D0F4      		brsh .L44
 1522 0876 FE01      		movw r30,r28
 1523 0878 EB5F      		subi r30,lo8(-(517))
 1524 087a FD4F      		sbci r31,hi8(-(517))
 1525 087c 8981      		ldd r24,Y+1
 1526 087e 282F      		mov r18,r24
 1527 0880 3327      		clr r19
 1528 0882 80E0      		ldi r24,lo8(512)
 1529 0884 92E0      		ldi r25,hi8(512)
 1530 0886 289F      		mul r18,r24
 1531 0888 A001      		movw r20,r0
 1532 088a 299F      		mul r18,r25
 1533 088c 500D      		add r21,r0
 1534 088e 389F      		mul r19,r24
 1535 0890 500D      		add r21,r0
 1536 0892 1124      		clr r1
 1537 0894 CA01      		movw r24,r20
 1538 0896 805E      		subi r24,lo8(-(7200))
 1539 0898 934E      		sbci r25,hi8(-(7200))
 1540 089a AA27      		clr r26
 1541 089c 97FD      		sbrc r25,7
 1542 089e A095      		com r26
 1543 08a0 BA2F      		mov r27,r26
 1544 08a2 8083      		st Z,r24
 1545 08a4 9183      		std Z+1,r25
 1546 08a6 A283      		std Z+2,r26
 1547 08a8 B383      		std Z+3,r27
 1548               	.L44:
 250:G:/HVCBASOFT/AD/adc_sram.c **** 	//根据地址给要发送的一个数组的数据和校验码赋值
 251:G:/HVCBASOFT/AD/adc_sram.c **** 	for(i=0;i<512;i++)
 1550               	.LM146:
 1551 08aa FE01      		movw r30,r28
 1552 08ac ED5F      		subi r30,lo8(-(515))
 1553 08ae FD4F      		sbci r31,hi8(-(515))
 1554 08b0 1082      		st Z,__zero_reg__
 1555 08b2 1182      		std Z+1,__zero_reg__
 1556               	.L45:
 1557 08b4 FE01      		movw r30,r28
 1558 08b6 ED5F      		subi r30,lo8(-(515))
 1559 08b8 FD4F      		sbci r31,hi8(-(515))
 1560 08ba 8081      		ld r24,Z
 1561 08bc 9181      		ldd r25,Z+1
 1562 08be 52E0      		ldi r21,hi8(512)
 1563 08c0 8030      		cpi r24,lo8(512)
 1564 08c2 9507      		cpc r25,r21
 1565 08c4 08F0      		brlo .L48
 1566 08c6 42C0      		rjmp .L46
 1567               	.L48:
 252:G:/HVCBASOFT/AD/adc_sram.c **** 	{
 253:G:/HVCBASOFT/AD/adc_sram.c **** 		temp_array[i]=SRAM_1M_8_READ(address+i);//读取数据
 1569               	.LM147:
 1570 08c8 FE01      		movw r30,r28
 1571 08ca ED5F      		subi r30,lo8(-(515))
 1572 08cc FD4F      		sbci r31,hi8(-(515))
 1573 08ce 2081      		ld r18,Z
 1574 08d0 3181      		ldd r19,Z+1
 1575 08d2 CE01      		movw r24,r28
 1576 08d4 0196      		adiw r24,1
 1577 08d6 820F      		add r24,r18
 1578 08d8 931F      		adc r25,r19
 1579 08da 8C01      		movw r16,r24
 1580 08dc 0E5F      		subi r16,lo8(-(2))
 1581 08de 1F4F      		sbci r17,hi8(-(2))
 1582 08e0 DE01      		movw r26,r28
 1583 08e2 AB5F      		subi r26,lo8(-(517))
 1584 08e4 BD4F      		sbci r27,hi8(-(517))
 1585 08e6 FE01      		movw r30,r28
 1586 08e8 ED5F      		subi r30,lo8(-(515))
 1587 08ea FD4F      		sbci r31,hi8(-(515))
 1588 08ec 8081      		ld r24,Z
 1589 08ee 9181      		ldd r25,Z+1
 1590 08f0 9C01      		movw r18,r24
 1591 08f2 4427      		clr r20
 1592 08f4 5527      		clr r21
 1593 08f6 8D91      		ld r24,X+
 1594 08f8 9D91      		ld r25,X+
 1595 08fa 0D90      		ld __tmp_reg__,X+
 1596 08fc BC91      		ld r27,X
 1597 08fe A02D      		mov r26,__tmp_reg__
 1598 0900 820F      		add r24,r18
 1599 0902 931F      		adc r25,r19
 1600 0904 A41F      		adc r26,r20
 1601 0906 B51F      		adc r27,r21
 1602 0908 BC01      		movw r22,r24
 1603 090a CD01      		movw r24,r26
 1604 090c 0E94 0000 		call SRAM_1M_8_READ
 1605 0910 F801      		movw r30,r16
 1606 0912 8083      		st Z,r24
 254:G:/HVCBASOFT/AD/adc_sram.c **** 		crc16+=temp_array[i];//累加校验码
 1608               	.LM148:
 1609 0914 FE01      		movw r30,r28
 1610 0916 ED5F      		subi r30,lo8(-(515))
 1611 0918 FD4F      		sbci r31,hi8(-(515))
 1612 091a 2081      		ld r18,Z
 1613 091c 3181      		ldd r19,Z+1
 1614 091e CE01      		movw r24,r28
 1615 0920 0196      		adiw r24,1
 1616 0922 820F      		add r24,r18
 1617 0924 931F      		adc r25,r19
 1618 0926 FC01      		movw r30,r24
 1619 0928 3296      		adiw r30,2
 1620 092a 9A81      		ldd r25,Y+2
 1621 092c 8081      		ld r24,Z
 1622 092e 890F      		add r24,r25
 1623 0930 8A83      		std Y+2,r24
 1625               	.LM149:
 1626 0932 DE01      		movw r26,r28
 1627 0934 AD5F      		subi r26,lo8(-(515))
 1628 0936 BD4F      		sbci r27,hi8(-(515))
 1629 0938 FE01      		movw r30,r28
 1630 093a ED5F      		subi r30,lo8(-(515))
 1631 093c FD4F      		sbci r31,hi8(-(515))
 1632 093e 8081      		ld r24,Z
 1633 0940 9181      		ldd r25,Z+1
 1634 0942 0196      		adiw r24,1
 1635 0944 8D93      		st X+,r24
 1636 0946 9C93      		st X,r25
 1637 0948 1197      		sbiw r26,1
 1638 094a B4CF      		rjmp .L45
 1639               	.L46:
 255:G:/HVCBASOFT/AD/adc_sram.c **** 	}
 256:G:/HVCBASOFT/AD/adc_sram.c **** //发送数据包
 257:G:/HVCBASOFT/AD/adc_sram.c **** 	UART_DATA_BYTE_SEND(2);//发送地址
 1641               	.LM150:
 1642 094c 82E0      		ldi r24,lo8(2)
 1643 094e 0E94 0000 		call UART_DATA_BYTE_SEND
 258:G:/HVCBASOFT/AD/adc_sram.

⌨️ 快捷键说明

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