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

📄 m16_vs1003_test.lst

📁 AVR单片机系统开发经典实例部分源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0421 E092      LDI	R25,2
    0422 8B9F      STD	Y+23,R25
    0423 8B8E      STD	Y+22,R24
(0114) 				  i=8;
    0424 E048      LDI	R20,0x8
    0425 E050      LDI	R21,0
    0426 E060      LDI	R22,0
    0427 E070      LDI	R23,0
    0428 01FE      MOVW	R30,R28
    0429 8742      STD	Z+10,R20
    042A 8753      STD	Z+11,R21
    042B 8764      STD	Z+12,R22
    042C 8775      STD	Z+13,R23
(0115) 				}
    042D C054      RJMP	0x0482
(0116) 				
(0117) 				//---------------- 音乐数据送入 ------------------//  
(0118) 				else if(VS1003_DREQ_STATE()== VS1003_DREQ&&play_flag!=0) 
    042E B383      IN	R24,0x13
    042F 7880      ANDI	R24,0x80
    0430 3880      CPI	R24,0x80
    0431 F009      BEQ	0x0433
    0432 C04F      RJMP	0x0482
    0433 8C08      LDD	R0,Y+24
    0434 2000      TST	R0
    0435 F409      BNE	0x0437
    0436 C04B      RJMP	0x0482
(0119) 				{	
(0120) 					for(n=0;n<32;n++)
    0437 E040      LDI	R20,0
    0438 E050      LDI	R21,0
    0439 E060      LDI	R22,0
    043A E070      LDI	R23,0
    043B 01FE      MOVW	R30,R28
    043C 8342      STD	Z+2,R20
    043D 8353      STD	Z+3,R21
    043E 8364      STD	Z+4,R22
    043F 8375      STD	Z+5,R23
    0440 C020      RJMP	0x0461
(0121) 					{	
(0122) 						VS1003_WriteDat(Fat_Buffer[data_pointer]); // 发送数据
    0441 E28E      LDI	R24,0x2E
    0442 E092      LDI	R25,2
    0443 89EE      LDD	R30,Y+22
    0444 89FF      LDD	R31,Y+23
    0445 0FE8      ADD	R30,R24
    0446 1FF9      ADC	R31,R25
    0447 8100      LDD	R16,Z+0
    0448 940E1239  CALL	_VS1003_WriteDat
(0123) 						data_pointer++;	
    044A 898E      LDD	R24,Y+22
    044B 899F      LDD	R25,Y+23
    044C 9601      ADIW	R24,1
    044D 8B9F      STD	Y+23,R25
    044E 8B8E      STD	Y+22,R24
    044F E041      LDI	R20,1
    0450 E050      LDI	R21,0
    0451 E060      LDI	R22,0
    0452 E070      LDI	R23,0
    0453 01FE      MOVW	R30,R28
    0454 8022      LDD	R2,Z+2
    0455 8033      LDD	R3,Z+3
    0456 8044      LDD	R4,Z+4
    0457 8055      LDD	R5,Z+5
    0458 0E24      ADD	R2,R20
    0459 1E35      ADC	R3,R21
    045A 1E46      ADC	R4,R22
    045B 1E57      ADC	R5,R23
    045C 01FE      MOVW	R30,R28
    045D 8222      STD	Z+2,R2
    045E 8233      STD	Z+3,R3
    045F 8244      STD	Z+4,R4
    0460 8255      STD	Z+5,R5
    0461 E240      LDI	R20,0x20
    0462 E050      LDI	R21,0
    0463 E060      LDI	R22,0
    0464 E070      LDI	R23,0
    0465 01FE      MOVW	R30,R28
    0466 8022      LDD	R2,Z+2
    0467 8033      LDD	R3,Z+3
    0468 8044      LDD	R4,Z+4
    0469 8055      LDD	R5,Z+5
    046A 1624      CP	R2,R20
    046B 0635      CPC	R3,R21
    046C 0646      CPC	R4,R22
    046D 0657      CPC	R5,R23
    046E F408      BCC	0x0470
    046F CFD1      RJMP	0x0441
(0124) 					}
(0125) 					size_buf+=32;
    0470 E240      LDI	R20,0x20
    0471 E050      LDI	R21,0
    0472 E060      LDI	R22,0
    0473 E070      LDI	R23,0
    0474 01FE      MOVW	R30,R28
    0475 8026      LDD	R2,Z+6
    0476 8037      LDD	R3,Z+7
    0477 8440      LDD	R4,Z+8
    0478 8451      LDD	R5,Z+9
    0479 0E24      ADD	R2,R20
    047A 1E35      ADC	R3,R21
    047B 1E46      ADC	R4,R22
    047C 1E57      ADC	R5,R23
    047D 01FE      MOVW	R30,R28
    047E 8226      STD	Z+6,R2
    047F 8237      STD	Z+7,R3
    0480 8640      STD	Z+8,R4
    0481 8651      STD	Z+9,R5
(0126) 				}
(0127) 				
(0128) 				if(size_buf>=MusicInfoList[music_num].FileLength-64)
    0482 E289      LDI	R24,0x29
    0483 8C09      LDD	R0,Y+25
    0484 9D80      MUL	R24,R0
    0485 01F0      MOVW	R30,R0
    0486 EB89      LDI	R24,0xB9
    0487 E091      LDI	R25,1
    0488 0FE8      ADD	R30,R24
    0489 1FF9      ADC	R31,R25
    048A 8020      LDD	R2,Z+0
    048B 8031      LDD	R3,Z+1
    048C 8042      LDD	R4,Z+2
    048D 8053      LDD	R5,Z+3
    048E E440      LDI	R20,0x40
    048F E050      LDI	R21,0
    0490 E060      LDI	R22,0
    0491 E070      LDI	R23,0
    0492 1A24      SUB	R2,R20
    0493 0A35      SBC	R3,R21
    0494 0A46      SBC	R4,R22
    0495 0A57      SBC	R5,R23
    0496 01FE      MOVW	R30,R28
    0497 8066      LDD	R6,Z+6
    0498 8077      LDD	R7,Z+7
    0499 8480      LDD	R8,Z+8
    049A 8491      LDD	R9,Z+9
    049B 1462      CP	R6,R2
    049C 0473      CPC	R7,R3
    049D 0484      CPC	R8,R4
    049E 0495      CPC	R9,R5
    049F F0B0      BCS	0x04B6
(0129) 				{
(0130) 				   data_pointer=512;
    04A0 E080      LDI	R24,0
    04A1 E092      LDI	R25,2
    04A2 8B9F      STD	Y+23,R25
    04A3 8B8E      STD	Y+22,R24
(0131) 				   i=8;
    04A4 E048      LDI	R20,0x8
    04A5 E050      LDI	R21,0
    04A6 E060      LDI	R22,0
    04A7 E070      LDI	R23,0
    04A8 01FE      MOVW	R30,R28
    04A9 8742      STD	Z+10,R20
    04AA 8753      STD	Z+11,R21
    04AB 8764      STD	Z+12,R22
    04AC 8775      STD	Z+13,R23
(0132) 				  size_buf=0;
    04AD E040      LDI	R20,0
    04AE E050      LDI	R21,0
    04AF E060      LDI	R22,0
    04B0 E070      LDI	R23,0
    04B1 01FE      MOVW	R30,R28
    04B2 8346      STD	Z+6,R20
    04B3 8357      STD	Z+7,R21
    04B4 8760      STD	Z+8,R22
    04B5 8771      STD	Z+9,R23
(0133) 				}
(0134) 				
(0135) 			}while(data_pointer<511); 
    04B6 898E      LDD	R24,Y+22
    04B7 899F      LDD	R25,Y+23
    04B8 3F8F      CPI	R24,0xFF
    04B9 E0E1      LDI	R30,1
    04BA 079E      CPC	R25,R30
    04BB F408      BCC	0x04BD
    04BC CECC      RJMP	0x0389
(0136) 			
(0137) 		  data_pointer=0;
    04BD 2400      CLR	R0
    04BE 2411      CLR	R1
    04BF 8A1F      STD	Y+23,R1
    04C0 8A0E      STD	Y+22,R0
(0138) 		  if(i%4 == 0)
    04C1 E043      LDI	R20,3
    04C2 E050      LDI	R21,0
    04C3 E060      LDI	R22,0
    04C4 E070      LDI	R23,0
    04C5 01FE      MOVW	R30,R28
    04C6 8422      LDD	R2,Z+10
    04C7 8433      LDD	R3,Z+11
    04C8 8444      LDD	R4,Z+12
    04C9 8455      LDD	R5,Z+13
    04CA 2224      AND	R2,R20
    04CB 2235      AND	R3,R21
    04CC 2246      AND	R4,R22
    04CD 2257      AND	R5,R23
    04CE E040      LDI	R20,0
    04CF E050      LDI	R21,0
    04D0 E060      LDI	R22,0
    04D1 E070      LDI	R23,0
    04D2 1624      CP	R2,R20
    04D3 0635      CPC	R3,R21
    04D4 0646      CPC	R4,R22
    04D5 0657      CPC	R5,R23
    04D6 F551      BNE	0x0501
(0139) 		  {
(0140) 		     if(j <= 0) j = 46;
    04D7 E040      LDI	R20,0
    04D8 E050      LDI	R21,0
    04D9 E060      LDI	R22,0
    04DA E070      LDI	R23,0
    04DB 01FE      MOVW	R30,R28
    04DC 8822      LDD	R2,Z+18
    04DD 8833      LDD	R3,Z+19
    04DE 8844      LDD	R4,Z+20
    04DF 8855      LDD	R5,Z+21
    04E0 1624      CP	R2,R20
    04E1 0635      CPC	R3,R21
    04E2 0646      CPC	R4,R22
    04E3 0657      CPC	R5,R23
    04E4 F451      BNE	0x04EF
    04E5 E24E      LDI	R20,0x2E
    04E6 E050      LDI	R21,0
    04E7 E060      LDI	R22,0
    04E8 E070      LDI	R23,0
    04E9 01FE      MOVW	R30,R28
    04EA 8B42      STD	Z+18,R20
    04EB 8B53      STD	Z+19,R21
    04EC 8B64      STD	Z+20,R22
    04ED 8B75      STD	Z+21,R23
    04EE C012      RJMP	0x0501
(0141) 		 	 else  j--;
    04EF E041      LDI	R20,1
    04F0 E050      LDI	R21,0
    04F1 E060      LDI	R22,0
    04F2 E070      LDI	R23,0
    04F3 01FE      MOVW	R30,R28
    04F4 8822      LDD	R2,Z+18
    04F5 8833      LDD	R3,Z+19
    04F6 8844      LDD	R4,Z+20
    04F7 8855      LDD	R5,Z+21
    04F8 1A24      SUB	R2,R20
    04F9 0A35      SBC	R3,R21
    04FA 0A46      SBC	R4,R22
    04FB 0A57      SBC	R5,R23
    04FC 01FE      MOVW	R30,R28
    04FD 8A22      STD	Z+18,R2
    04FE 8A33      STD	Z+19,R3
    04FF 8A44      STD	Z+20,R4
    0500 8A55      STD	Z+21,R5
    0501 E041      LDI	R20,1
    0502 E050      LDI	R21,0
    0503 E060      LDI	R22,0
    0504 E070      LDI	R23,0
    0505 01FE      MOVW	R30,R28
    0506 8422      LDD	R2,Z+10
    0507 8433      LDD	R3,Z+11
    0508 8444      LDD	R4,Z+12
    0509 8455      LDD	R5,Z+13
    050A 0E24      ADD	R2,R20
    050B 1E35      ADC	R3,R21
    050C 1E46      ADC	R4,R22
    050D 1E57      ADC	R5,R23
    050E 01FE      MOVW	R30,R28
    050F 8622      STD	Z+10,R2
    0510 8633      STD	Z+11,R3
    0511 8644      STD	Z+12,R4
    0512 8655      STD	Z+13,R5
    0513 90200220  LDS	R2,0x220
    0515 2433      CLR	R3
    0516 2444      CLR	R4
    0517 2455      CLR	R5
    0518 01FE      MOVW	R30,R28
    0519 8462      LDD	R6,Z+10
    051A 8473      LDD	R7,Z+11
    051B 8484      LDD	R8,Z+12
    051C 8495      LDD	R9,Z+13
    051D 1462      CP	R6,R2
    051E 0473      CPC	R7,R3
    051F 0484      CPC	R8,R4
    0520 0495      CPC	R9,R5
    0521 F408      BCC	0x0523
    0522 CE2D      RJMP	0x0350
(0142) 		  }
(0143) 		  
(0144) 		}
(0145) 		
(0146) 		//---------- 下一簇 ------------//  
(0147) 		num = FatNextCluster(num);	
    0523 01FE      MOVW	R30,R28
    0524 8506      LDD	R16,Z+14
    0525 8517      LDD	R17,Z+15
    0526 8920      LDD	R18,Z+16
    0527 8931      LDD	R19,Z+17
    0528 940E1060  CALL	_FatNextCluster
    052A 01FE      MOVW	R30,R28
    052B 8706      STD	Z+14,R16
    052C 8717      STD	Z+15,R17
    052D 8B20      STD	Z+16,R18
    052E 8B31      STD	Z+17,R19
(0148) 		
(0149) 		if(num==CLUST_EOFE||music_next!=0||music_last!=0)
    052F EF4F      LDI	R20,0xFF
    0530 EF5F      LDI	R21,0xFF
    0531 EF6F      LDI	R22,0xFF
    0532 EF7F      LDI	R23,0xFF
    0533 01FE      MOVW	R30,R28
    0534 8426      LDD	R2,Z+14
    0535 8437      LDD	R3,Z+15
    0536 8840      LDD	R4,Z+16
    0537 8851      LDD	R5,Z+17
    0538 1624      CP	R2,R20
    0539 0635      CPC	R3,R21
    053A 0646      CPC	R4,R22
    053B 0657      CPC	R5,R23
    053C F029      BEQ	0x0542
    053D 20EE      TST	R14
    053E F419      BNE	0x0542
    053F 20CC      TST	R12
    0540 F409      BNE	0x0542
    0541 C053      RJMP	0x0595
(0150) 		{
(0151) 		   if(music_last!=0)
    0542 20CC      TST	R12
    0543 F0C9      BEQ	0x055D
(0152) 		   {
(0153) 		     if(music_num>0)music_num--;
    0544 2422      CLR	R2
    0545 8C09      LDD	R0,Y+25
    0546 1420      CP	R2,R0
    0547 F418      BCC	0x054B
    0548 940A      DEC	R0
    0549 8E09      STD	Y+25,R0
    054A C031      RJMP	0x057C
(0154) 			 else music_num = NumOfFile - 1;
    054B E041      LDI	R20,1
    054C E050      LDI	R21,0
    054D E060      LDI	R22,0
    054E E070      LDI	R23,0
    054F 9040022C  LDS	R4,NumOfFile+2
    0551 9050022D  LDS	R5,NumOfFile+3
    0553 9020022A  LDS	R2,NumOfFile
    0555 9030022B  LDS	R3,NumOfFile+1
    0557 1A24      SUB	R2,R20
    0558 0A35      SBC	R3,R21
    0559 0A46      SBC	R4,R22
    055A 0A57      SBC	R5,R23
    055B 8E29      STD	Y+25,R2
(0155) 		   }
    055C C01F      RJMP	0x057C
(0156) 		   
(0157) 		   else
(0158) 		   {
(0159) 		     if(music_num < NumOfFile-1)music_num++;
    055D E041      LDI	R20,1
    055E E050      LDI	R21,0
    055F E060      LDI	R22,0
    0560 E070      LDI	R23,0
    0561 9040022C  LDS	R4,NumOfFile+2
    0563 9050022D  LDS	R5,NumOfFile+3
    0565 9020022A  LDS	R2,NumOfFile
    0567 9030022B  LDS	R3,NumOfFile+1
    0569 1A24      SUB	R2,R20
    056A 0A35      SBC	R3,R21
    056B 0A46      SBC	R4,R22
    056C 0A57      SBC	R5,R23
    056D 8C69      LDD	R6,Y+25
    056E 2477      CLR	R7
    056F 2488      CLR	R8
    0570 2499      CLR	R9
    0571 1462      CP	R6,R2
    0572 0473      CPC	R7,R3
    0573 0484      CPC	R8,R4
    0574 0495      CPC	R9,R5
    0575 F420      BCC	0x057A
    0576 2C06      MOV	R0,R6
    0577 9403      INC	R0
    0578 8E09      STD	Y+25,R0
    0579 C002      RJMP	0x057C
(0160) 			 else music_num=0;
    057A 2400      CLR	R0
    057B 8E09      STD	Y+25,R0
(0161) 		   }
(0162) 		   
(0163) 		   num = MusicInfoList[music_num].FileStartClustor;
    057C E289      LDI	R24,0x29
    057D 8C09      LDD	R0,Y+25
    057E 9D80      MUL	R24,R0
    057F 01F0      MOVW	R30,R0
    0580 EB85      LDI	R24,0xB5
    0581 E091      LDI	R25,1
    0582 0FE8      ADD	R30,R24
    0583 1FF9      ADC	R31,R25
    0584 8020      LDD	R2,Z+0
    0585 8031      LDD	R3,Z+1
    0586 8042      LDD	R4,Z+2
    0587 8053      LDD	R5,Z+3
    0588 01FE      MOVW	R30,R28
    0589 8626      STD	Z+14,R2
    058A 8637      STD	Z+15,R3
    058B 8A40      STD	Z+16,R4
    058C 8A51      STD	Z+17,R5
(0164) 		   play_flag=1;
    058D 2400      CLR	R0
    058E 9403      INC	R0
    058F 8E08      STD	Y+24,R0
(0165) 		   music_next = 0;
    0590 24EE      CLR	R14
(0166) 		   music_last = 0;
    0591 24CC      CLR	R12
(0167) 		   key_num=0;

⌨️ 快捷键说明

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