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

📄 mp3.lst

📁 LED条屏显示程序,但是对初学者
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0BDC 1E31      ADC	R3,R17
    0BDD 1E42      ADC	R4,R18
    0BDE 1E53      ADC	R5,R19
    0BDF 0135      MOVW	R6,R10
    0BE0 2488      CLR	R8
    0BE1 2499      CLR	R9
    0BE2 0C26      ADD	R2,R6
    0BE3 1C37      ADC	R3,R7
    0BE4 1C48      ADC	R4,R8
    0BE5 1C59      ADC	R5,R9
    0BE6 92300114  STS	0x114,R3
    0BE8 92200113  STS	0x113,R2
(0063) 
(0064) 
(0065)  return 0;
    0BEA 2700      CLR	R16
    0BEB 9626      ADIW	R28,6
    0BEC 940E1CC2  CALL	pop_gset5
    0BEE 9508      RET
_Mp3_number_Counter:
  mulu_Clus_number     --> Y+1
  counter_over         --> Y+0
  Read_number          --> R10
    0BEF 940E1CC5  CALL	push_gset5
    0BF1 9723      SBIW	R28,3
(0066) }
(0067) 
(0068) //=======================================================================
(0069) void Mp3_number_Counter(void)
(0070) {
(0071)  uint8 Read_number;
(0072)  uint8 counter_over=0;
    0BF2 2400      CLR	R0
    0BF3 8208      STD	Y+0,R0
(0073)  uint16 mulu_Clus_number;
(0074)  
(0075)  mulu_Clus_number=fat_info.Firstgengmulu;
    0BF4 90200111  LDS	R2,fat_info+3
    0BF6 90300112  LDS	R3,0x112
    0BF8 823A      STD	Y+2,R3
    0BF9 8229      STD	Y+1,R2
    0BFA C069      RJMP	0x0C64
(0076) 
(0077)  while(!counter_over)
(0078)   {
(0079)    
(0080)    SD_start_read(mulu_Clus_number++);
    0BFB 8029      LDD	R2,Y+1
    0BFC 803A      LDD	R3,Y+2
    0BFD 01C1      MOVW	R24,R2
    0BFE 9601      ADIW	R24,1
    0BFF 839A      STD	Y+2,R25
    0C00 8389      STD	Y+1,R24
    0C01 2444      CLR	R4
    0C02 2455      CLR	R5
    0C03 0181      MOVW	R16,R2
    0C04 0192      MOVW	R18,R4
    0C05 940E1527  CALL	_SD_start_read
(0081)    Read_number=16;
    0C07 E180      LDI	R24,0x10
    0C08 2EA8      MOV	R10,R24
    0C09 C052      RJMP	0x0C5C
(0082)    while(Read_number--)
(0083)       {
(0084) 	   
(0085) 	   SD_get_date(buffer,32);  
    0C0A E220      LDI	R18,0x20
    0C0B E030      LDI	R19,0
    0C0C E105      LDI	R16,0x15
    0C0D E011      LDI	R17,1
    0C0E 940E1552  CALL	_SD_get_date
(0086)        if((buffer[0]!=0XE5)&(buffer[8]==0x4D)&(buffer[9]==0x50)&(buffer[10]==0x33))
    0C10 91800115  LDS	R24,buffer
    0C12 3E85      CPI	R24,0xE5
    0C13 F019      BEQ	0x0C17
    0C14 E041      LDI	R20,1
    0C15 E050      LDI	R21,0
    0C16 C002      RJMP	0x0C19
    0C17 2744      CLR	R20
    0C18 2755      CLR	R21
    0C19 9180011D  LDS	R24,0x11D
    0C1B 348D      CPI	R24,0x4D
    0C1C F419      BNE	0x0C20
    0C1D E061      LDI	R22,1
    0C1E E070      LDI	R23,0
    0C1F C002      RJMP	0x0C22
    0C20 2766      CLR	R22
    0C21 2777      CLR	R23
    0C22 9180011E  LDS	R24,0x11E
    0C24 3580      CPI	R24,0x50
    0C25 F421      BNE	0x0C2A
    0C26 E081      LDI	R24,1
    0C27 E090      LDI	R25,0
    0C28 017C      MOVW	R14,R24
    0C29 C002      RJMP	0x0C2C
    0C2A 24EE      CLR	R14
    0C2B 24FF      CLR	R15
    0C2C 9180011F  LDS	R24,0x11F
    0C2E 3383      CPI	R24,0x33
    0C2F F421      BNE	0x0C34
    0C30 E081      LDI	R24,1
    0C31 E090      LDI	R25,0
    0C32 016C      MOVW	R12,R24
    0C33 C002      RJMP	0x0C36
    0C34 24CC      CLR	R12
    0C35 24DD      CLR	R13
    0C36 011A      MOVW	R2,R20
    0C37 2226      AND	R2,R22
    0C38 2237      AND	R3,R23
    0C39 202E      AND	R2,R14
    0C3A 203F      AND	R3,R15
    0C3B 202C      AND	R2,R12
    0C3C 203D      AND	R3,R13
    0C3D 2022      TST	R2
    0C3E F411      BNE	0x0C41
    0C3F 2033      TST	R3
    0C40 F031      BEQ	0x0C47
(0087) 		 {
(0088) 		   
(0089) 		  MP3_all_number++;
    0C41 91800317  LDS	R24,MP3_all_number
    0C43 5F8F      SUBI	R24,0xFF
    0C44 93800317  STS	MP3_all_number,R24
(0090) 		  }
    0C46 C015      RJMP	0x0C5C
(0091) 	   else if(buffer[0]==0)
    0C47 90200115  LDS	R2,buffer
    0C49 2022      TST	R2
    0C4A F489      BNE	0x0C5C
(0092) 	     {
    0C4B C006      RJMP	0x0C52
(0093) 		  while(Read_number--)
(0094) 		     {
(0095) 			  
(0096) 			  SD_get_date(buffer,32);
    0C4C E220      LDI	R18,0x20
    0C4D E030      LDI	R19,0
    0C4E E105      LDI	R16,0x15
    0C4F E011      LDI	R17,1
    0C50 940E1552  CALL	_SD_get_date
    0C52 2C2A      MOV	R2,R10
    0C53 2433      CLR	R3
    0C54 2D82      MOV	R24,R2
    0C55 5081      SUBI	R24,1
    0C56 2EA8      MOV	R10,R24
    0C57 2022      TST	R2
    0C58 F799      BNE	0x0C4C
(0097) 		      }
(0098) 		  counter_over=1;
    0C59 2400      CLR	R0
    0C5A 9403      INC	R0
    0C5B 8208      STD	Y+0,R0
    0C5C 2C2A      MOV	R2,R10
    0C5D 2433      CLR	R3
    0C5E 2D82      MOV	R24,R2
    0C5F 5081      SUBI	R24,1
    0C60 2EA8      MOV	R10,R24
    0C61 2022      TST	R2
    0C62 F009      BEQ	0x0C64
    0C63 CFA6      RJMP	0x0C0A
    0C64 8008      LDD	R0,Y+0
    0C65 2000      TST	R0
    0C66 F409      BNE	0x0C68
    0C67 CF93      RJMP	0x0BFB
    0C68 9623      ADIW	R28,3
    0C69 940E1CC2  CALL	pop_gset5
    0C6B 9508      RET
_MP3_Directory:
  counter              --> Y+12
  mulu_Clus_number     --> Y+4
  i                    --> Y+11
  j                    --> Y+10
  Read_number          --> Y+8
  number               --> R10
    0C6C 940E1CC5  CALL	push_gset5
    0C6E 2EA0      MOV	R10,R16
    0C6F 9761      SBIW	R28,0x11
(0099) 		  }
(0100) 	  
(0101) 	  }    
(0102)   }
(0103) 
(0104) }
(0105) 
(0106) //=======================================================================
(0107) void MP3_Directory(uint8 number)
(0108) {
(0109)  uint8 i,j;
(0110)  uint8 counter;
(0111)  uint16 Read_number;
(0112)  uint32 mulu_Clus_number;
(0113)  
(0114)  Read_number=0;
    0C70 2400      CLR	R0
    0C71 2411      CLR	R1
    0C72 8619      STD	Y+9,R1
    0C73 8608      STD	Y+8,R0
(0115)  counter=number;
    0C74 86AC      STD	Y+12,R10
(0116)  mp3_info.Name_number=0;
    0C75 2422      CLR	R2
    0C76 92200109  STS	0x109,R2
(0117)  mulu_Clus_number=fat_info.Firstgengmulu;
    0C78 90200111  LDS	R2,fat_info+3
    0C7A 90300112  LDS	R3,0x112
    0C7C 2444      CLR	R4
    0C7D 2455      CLR	R5
    0C7E 01FE      MOVW	R30,R28
    0C7F 8224      STD	Z+4,R2
    0C80 8235      STD	Z+5,R3
    0C81 8246      STD	Z+6,R4
    0C82 8257      STD	Z+7,R5
(0118)  mulu_Clus_number=mulu_Clus_number<<9;
    0C83 E089      LDI	R24,0x9
    0C84 E090      LDI	R25,0
    0C85 01FE      MOVW	R30,R28
    0C86 8024      LDD	R2,Z+4
    0C87 8035      LDD	R3,Z+5
    0C88 8046      LDD	R4,Z+6
    0C89 8057      LDD	R5,Z+7
    0C8A 938A      ST	R24,-Y
    0C8B 0181      MOVW	R16,R2
    0C8C 0192      MOVW	R18,R4
    0C8D 940E1D3E  CALL	lsl32
    0C8F 01FE      MOVW	R30,R28
    0C90 8304      STD	Z+4,R16
    0C91 8315      STD	Z+5,R17
    0C92 8326      STD	Z+6,R18
    0C93 8337      STD	Z+7,R19
    0C94 C327      RJMP	0x0FBC
(0119)  
(0120)  
(0121)  while(counter)
(0122)  {
(0123)   SD_read_sector2(mulu_Clus_number+((long)(Read_number++)<<5),buffer,32);
    0C95 E280      LDI	R24,0x20
    0C96 E090      LDI	R25,0
    0C97 839B      STD	Y+3,R25
    0C98 838A      STD	Y+2,R24
    0C99 E185      LDI	R24,0x15
    0C9A E091      LDI	R25,1
    0C9B 8399      STD	Y+1,R25
    0C9C 8388      STD	Y+0,R24
    0C9D 8428      LDD	R2,Y+8
    0C9E 8439      LDD	R3,Y+9
    0C9F 01C1      MOVW	R24,R2
    0CA0 9601      ADIW	R24,1
    0CA1 8799      STD	Y+9,R25
    0CA2 8788      STD	Y+8,R24
    0CA3 E085      LDI	R24,5
    0CA4 E090      LDI	R25,0
    0CA5 2444      CLR	R4
    0CA6 2455      CLR	R5
    0CA7 938A      ST	R24,-Y
    0CA8 0181      MOVW	R16,R2
    0CA9 0192      MOVW	R18,R4
    0CAA 940E1D3E  CALL	lsl32
    0CAC 01FE      MOVW	R30,R28
    0CAD 8024      LDD	R2,Z+4
    0CAE 8035      LDD	R3,Z+5
    0CAF 8046      LDD	R4,Z+6
    0CB0 8057      LDD	R5,Z+7
    0CB1 0E20      ADD	R2,R16
    0CB2 1E31      ADC	R3,R17
    0CB3 1E42      ADC	R4,R18
    0CB4 1E53      ADC	R5,R19
    0CB5 0181      MOVW	R16,R2
    0CB6 0192      MOVW	R18,R4
    0CB7 940E1567  CALL	_SD_read_sector2
(0124) 
(0125)   if(counter>1)
    0CB9 E081      LDI	R24,1
    0CBA 840C      LDD	R0,Y+12
    0CBB 1580      CP	R24,R0
    0CBC F008      BCS	0x0CBE
    0CBD C03C      RJMP	0x0CFA
(0126)     {if((buffer[0]!=0XE5)&(buffer[8]==0x4D)&(buffer[9]==0x50)&(buffer[10]==0x33))
    0CBE 91800115  LDS	R24,buffer
    0CC0 3E85      CPI	R24,0xE5
    0CC1 F029      BEQ	0x0CC7
    0CC2 E081      LDI	R24,1
    0CC3 E090      LDI	R25,0
    0CC4 879E      STD	Y+14,R25
    0CC5 878D      STD	Y+13,R24
    0CC6 C004      RJMP	0x0CCB
    0CC7 2400      CLR	R0
    0CC8 2411      CLR	R1
    0CC9 861E      STD	Y+14,R1
    0CCA 860D      STD	Y+13,R0
    0CCB 9180011D  LDS	R24,0x11D
    0CCD 348D      CPI	R24,0x4D
    0CCE F421      BNE	0x0CD3
    0CCF E081      LDI	R24,1
    0CD0 E090      LDI	R25,0
    0CD1 017C      MOVW	R14,R24
    0CD2 C002      RJMP	0x0CD5
    0CD3 24EE      CLR	R14
    0CD4 24FF      CLR	R15
    0CD5 9180011E  LDS	R24,0x11E
    0CD7 3580      CPI	R24,0x50
    0CD8 F421      BNE	0x0CDD
    0CD9 E081      LDI	R24,1
    0CDA E090      LDI	R25,0
    0CDB 016C      MOVW	R12,R24
    0CDC C002      RJMP	0x0CDF
    0CDD 24CC      CLR	R12
    0CDE 24DD      CLR	R13
    0CDF 9180011F  LDS	R24,0x11F
    0CE1 3383      CPI	R24,0x33
    0CE2 F421      BNE	0x0CE7
    0CE3 E081      LDI	R24,1
    0CE4 E090      LDI	R25,0
    0CE5 015C      MOVW	R10,R24
    0CE6 C002      RJMP	0x0CE9
    0CE7 24AA      CLR	R10
    0CE8 24BB      CLR	R11
    0CE9 842D      LDD	R2,Y+13
    0CEA 843E      LDD	R3,Y+14
    0CEB 202E      AND	R2,R14
    0CEC 203F      AND	R3,R15
    0CED 202C      AND	R2,R12
    0CEE 203D      AND	R3,R13
    0CEF 202A      AND	R2,R10
    0CF0 203B      AND	R3,R11
    0CF1 2022      TST	R2
    0CF2 F419      BNE	0x0CF6
    0CF3 2033      TST	R3
    0CF4 F409      BNE	0x0CF6
    0CF5 C2C6      RJMP	0x0FBC
(0127) 	   counter--; 
    0CF6 840C      LDD	R0,Y+12
    0CF7 940A      DEC	R0
    0CF8 860C      STD	Y+12,R0
(0128) 	}
    0CF9 C2C2      RJMP	0x0FBC
(0129)   else if((buffer[0]!=0XE5)&(buffer[11]==0x0f)&(buffer[12]==0x00))
    0CFA 91800115  LDS	R24,buffer
    0CFC 3E85      CPI	R24,0xE5
    0CFD F021      BEQ	0x0D02
    0CFE E081      LDI	R24,1
    0CFF E090      LDI	R25,0
    0D00 017C      MOVW	R14,R24
    0D01 C002      RJMP	0x0D04
    0D02 24EE      CLR	R14
    0D03 24FF      CLR	R15
    0D04 91800120  LDS	R24,0x120
    0D06 308F      CPI	R24,0xF
    0D07 F421      BNE	0x0D0C
    0D08 E081      LDI	R24,1
    0D09 E090      LDI	R25,0
    0D0A 016C      MOVW	R12,R24
    0D0B C002      RJMP	0x0D0E
    0D0C 24CC      CLR	R12
    0D0D 24DD      CLR	R13
    0D0E 90200121  LDS	R2,0x121
    0D10 2022      TST	R2
    0D11 F421      BNE	0x0D16
    0D12 E081      LDI	R24,1
    0D13 E090      LDI	R25,0
    0D14 015C      MOVW	R10,R24
    0D15 C002      RJMP	0x0D18
    0D16 24AA      CLR	R10
    0D17 24BB      CLR	R11
    0D18 0117      MOVW	R2,R14
    0D19 202C      AND	R2,R12
    0D1A 203D      AND	R3,R13
    0D1B 202A      AND	R2,R10
    0D1C 203B      AND	R3,R11
    0D1D 2022      TST	R2
    0D1E F419      BNE	0x0D22
    0D1F 2033      TST	R3
    0D20 F409      BNE	0x0D22
    0D21 C250      RJMP	0x0F72
(0130)     {i=buffer[0]-0x40;
    0D22 91800115  LDS	R24,buffer
    0D24 5480      SUBI	R24,0x40
    0D25 878B      STD	Y+11,R24
(0131) 	 for(j=0;j<i;j++)
    0D26 2400      CLR	R0
    0D27 860A      STD	Y+10,R0
    0D28 C032      RJMP	0x0D5B
(0132) 	     {
(0133) 		 SD_read_sector2(mulu_Clus_number+((long)(Read_number++)<<5),buffer+(((int)j+1)<<5),32);
    0D29 E280      LDI	R24,0x20
    0D2A E090      LDI	R25,0
    0D2B 839B      STD	Y+3,R25
    0D2C 838A      STD	Y+2,R24
    0D2D E025      LDI	R18,5
    0D2E E030      LDI	R19,0
    0D2F 850A      LDD	R16,Y+10
    0D30 2711      CLR	R17
    0D31 5F0F      SUBI	R16,0xFF
    0D32 4F1F      SBCI	R17,0xFF
    0D33 940E1D37  CALL	lsl16
    0D35 0118      MOVW	R2,R16
    0D36 E185      LDI	R24,0x15
    0D37 E091      LDI	R25,1
    0D38 0E28      ADD	R2,R24
    0D39 1E39      ADC	R3,R25
    0D3A 8239      STD	Y+1,R3
    0D3B 8228      STD	Y+0,R2
    0D3C 8428      LDD	R2,Y+8
    0D3D 8439      LDD	R3,Y+9
    0D3E 01C1      MOVW	R24,R2
    0D3F 9601      ADIW	R24,1
    0D40 8799      STD	Y+9,R25
    0D41 8788      STD	Y+8,R24
    0D42 E085      LDI	R24,5
    0D43 E090      LDI	R25,0
    0D44 2444      CLR	R4
    0D45 2455      CLR	R5
    0D46 938A      ST	R24,-Y
    0D47 0181      MOVW	R16,R2
    0D48 0192      MOVW	R18,R4
    0D49 940E1D3E  CALL	lsl32
    0D4B 01FE      MOVW	R30,R28
    0D4C 8024      LDD	R2,Z+4
    0D4D 8035      LDD	R3,Z+5
    0D4E 8046      LDD	R4,Z+6
    0D4F 8057      LDD	R5,Z+7
    0D50 0E20      ADD	R2,R16
    0D51 1E31      ADC	R3,R17
    0D52 1E42      ADC	R4,R18
    0D53 1E53      ADC	R5,R19
    0D54 0181      MOVW	R16,R2
    0D55 0192      MOVW	R18,R4
    0D56 940E1567  CALL	_SD_read_sector2
    0D58 840A      LDD	R0,Y+10
    0D59 9403      INC	R0

⌨️ 快捷键说明

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