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

📄 m16_vs1003_test.lst

📁 M16-Mp3.rar
💻 LST
📖 第 1 页 / 共 5 页
字号:
     16B E18D      LDI	R24,0x1D
     16C 9390 00AE STS	VOL+1,R25
     16E 9380 00AD STS	VOL,R24
     170 C022      RJMP	0x0193
(0105) 					else VOL+=2;
     171 9180 00AD LDS	R24,VOL
     173 9190 00AE LDS	R25,VOL+1
     175 9602      ADIW	R24,2
     176 9390 00AE STS	VOL+1,R25
     178 9380 00AD STS	VOL,R24
(0106) 				  }
     17A C018      RJMP	0x0193
(0107) 				  else
(0108) 				  {
(0109) 				    if(VOL<2)VOL=0;
     17B 9180 00AD LDS	R24,VOL
     17D 9190 00AE LDS	R25,VOL+1
     17F 3082      CPI	R24,2
     180 E0E0      LDI	R30,0
     181 079E      CPC	R25,R30
     182 F438      BCC	0x018A
     183 2422      CLR	R2
     184 2433      CLR	R3
     185 9230 00AE STS	VOL+1,R3
     187 9220 00AD STS	VOL,R2
     189 C009      RJMP	0x0193
(0110) 					else VOL-=2;
     18A 9180 00AD LDS	R24,VOL
     18C 9190 00AE LDS	R25,VOL+1
     18E 9702      SBIW	R24,2
     18F 9390 00AE STS	VOL+1,R25
     191 9380 00AD STS	VOL,R24
(0111) 				  }
(0112) 					
(0113) 				  VS1003_WriteReg(VS1003_SPI_VOL ,VOL_BUFFER[VOL]); // 送音量数据
     193 E680      LDI	R24,0x60
     194 E090      LDI	R25,0
     195 91E0 00AD LDS	R30,VOL
     197 91F0 00AE LDS	R31,VOL+1
     199 0FEE      LSL	R30
     19A 1FFF      ROL	R31
     19B 0FE8      ADD	R30,R24
     19C 1FF9      ADC	R31,R25
     19D 8120      LD	R18,Z
     19E 8131      LDD	R19,Z+1
     19F E00B      LDI	R16,0xB
     1A0 940E 02BB CALL	_VS1003_WriteReg
(0114) 				  
(0115) 				  while(VS1003_DREQ_STATE() != VS1003_DREQ);	 // 等待
     1A2 B383      IN	R24,0x13
     1A3 7880      ANDI	R24,0x80
     1A4 3880      CPI	R24,0x80
     1A5 F7E1      BNE	0x01A2
(0116) 				  
(0117) 				  key_num = 0;
     1A6 2422      CLR	R2
     1A7 9220 03B8 STS	key_num,R2
(0118) 				  vol_flag=0;
     1A9 24AA      CLR	R10
(0119) 				}
(0120) 				
(0121) 				
(0122) 				//----------------- 换曲操作 -----------------//  
(0123) 				
(0124) 				if(music_next!=0||music_last!=0)
     1AA 20CC      TST	R12
     1AB F411      BNE	0x01AE
     1AC 20EE      TST	R14
     1AD F069      BEQ	0x01BB
(0125) 				{
(0126) 				  data_pointer=512;
     1AE E080      LDI	R24,0
     1AF E092      LDI	R25,2
     1B0 8B9B      STD	Y+19,R25
     1B1 8B8A      STD	Y+18,R24
(0127) 				  i=8;
     1B2 E048      LDI	R20,0x8
     1B3 E050      LDI	R21,0
     1B4 E060      LDI	R22,0
     1B5 E070      LDI	R23,0
     1B6 874A      STD	Y+10,R20
     1B7 875B      STD	Y+11,R21
     1B8 876C      STD	Y+12,R22
     1B9 877D      STD	Y+13,R23
(0128) 				}
     1BA C04D      RJMP	0x0208
(0129) 				
(0130) 				//---------------- 音乐数据送入 ------------------//  
(0131) 				else if(VS1003_DREQ_STATE()== VS1003_DREQ&&play_flag!=0) 
     1BB B383      IN	R24,0x13
     1BC 7880      ANDI	R24,0x80
     1BD 3880      CPI	R24,0x80
     1BE F009      BEQ	0x01C0
     1BF C048      RJMP	0x0208
     1C0 880C      LDD	R0,Y+20
     1C1 2000      TST	R0
     1C2 F409      BNE	0x01C4
     1C3 C044      RJMP	0x0208
(0132) 				{	
(0133) 					for(n=0;n<32;n++)
     1C4 E040      LDI	R20,0
     1C5 E050      LDI	R21,0
     1C6 E060      LDI	R22,0
     1C7 E070      LDI	R23,0
     1C8 834A      STD	Y+2,R20
     1C9 835B      STD	Y+3,R21
     1CA 836C      STD	Y+4,R22
     1CB 837D      STD	Y+5,R23
     1CC C01E      RJMP	0x01EB
(0134) 					{	
(0135) 						VS1003_WriteDat(Fat_Buffer[data_pointer]); // 发送数据
     1CD EF8A      LDI	R24,0xFA
     1CE E090      LDI	R25,0
     1CF 89EA      LDD	R30,Y+18
     1D0 89FB      LDD	R31,Y+19
     1D1 0FE8      ADD	R30,R24
     1D2 1FF9      ADC	R31,R25
     1D3 8100      LD	R16,Z
     1D4 940E 02F1 CALL	_VS1003_WriteDat
(0136) 						data_pointer++;	
     1D6 898A      LDD	R24,Y+18
     1D7 899B      LDD	R25,Y+19
     1D8 9601      ADIW	R24,1
     1D9 8B9B      STD	Y+19,R25
     1DA 8B8A      STD	Y+18,R24
     1DB E041      LDI	R20,1
     1DC E050      LDI	R21,0
     1DD E060      LDI	R22,0
     1DE E070      LDI	R23,0
     1DF 802A      LDD	R2,Y+2
     1E0 803B      LDD	R3,Y+3
     1E1 804C      LDD	R4,Y+4
     1E2 805D      LDD	R5,Y+5
     1E3 0E24      ADD	R2,R20
     1E4 1E35      ADC	R3,R21
     1E5 1E46      ADC	R4,R22
     1E6 1E57      ADC	R5,R23
     1E7 822A      STD	Y+2,R2
     1E8 823B      STD	Y+3,R3
     1E9 824C      STD	Y+4,R4
     1EA 825D      STD	Y+5,R5
     1EB E240      LDI	R20,0x20
     1EC E050      LDI	R21,0
     1ED E060      LDI	R22,0
     1EE E070      LDI	R23,0
     1EF 802A      LDD	R2,Y+2
     1F0 803B      LDD	R3,Y+3
     1F1 804C      LDD	R4,Y+4
     1F2 805D      LDD	R5,Y+5
     1F3 1624      CP	R2,R20
     1F4 0635      CPC	R3,R21
     1F5 0646      CPC	R4,R22
     1F6 0657      CPC	R5,R23
     1F7 F2A8      BCS	0x01CD
(0137) 					}
(0138) 					size_buf+=32;
     1F8 E240      LDI	R20,0x20
     1F9 E050      LDI	R21,0
     1FA E060      LDI	R22,0
     1FB E070      LDI	R23,0
     1FC 802E      LDD	R2,Y+6
     1FD 803F      LDD	R3,Y+7
     1FE 8448      LDD	R4,Y+8
     1FF 8459      LDD	R5,Y+9
     200 0E24      ADD	R2,R20
     201 1E35      ADC	R3,R21
     202 1E46      ADC	R4,R22
     203 1E57      ADC	R5,R23
     204 822E      STD	Y+6,R2
     205 823F      STD	Y+7,R3
     206 8648      STD	Y+8,R4
     207 8659      STD	Y+9,R5
(0139) 				}
(0140) 				
(0141) 				if(size_buf>=fsize[music_num]-64)
     208 EF8A      LDI	R24,0xFA
     209 E092      LDI	R25,2
     20A 89ED      LDD	R30,Y+21
     20B 27FF      CLR	R31
     20C 0FEE      LSL	R30
     20D 1FFF      ROL	R31
     20E 0FEE      LSL	R30
     20F 1FFF      ROL	R31
     210 0FE8      ADD	R30,R24
     211 1FF9      ADC	R31,R25
     212 8020      LD	R2,Z
     213 8031      LDD	R3,Z+1
     214 8042      LDD	R4,Z+2
     215 8053      LDD	R5,Z+3
     216 E440      LDI	R20,0x40
     217 E050      LDI	R21,0
     218 E060      LDI	R22,0
     219 E070      LDI	R23,0
     21A 1A24      SUB	R2,R20
     21B 0A35      SBC	R3,R21
     21C 0A46      SBC	R4,R22
     21D 0A57      SBC	R5,R23
     21E 806E      LDD	R6,Y+6
     21F 807F      LDD	R7,Y+7
     220 8488      LDD	R8,Y+8
     221 8499      LDD	R9,Y+9
     222 1462      CP	R6,R2
     223 0473      CPC	R7,R3
     224 0484      CPC	R8,R4
     225 0495      CPC	R9,R5
     226 F0A0      BCS	0x023B
(0142) 				{
(0143) 				   data_pointer=512;
     227 E080      LDI	R24,0
     228 E092      LDI	R25,2
     229 8B9B      STD	Y+19,R25
     22A 8B8A      STD	Y+18,R24
(0144) 				   i=8;
     22B E048      LDI	R20,0x8
     22C E050      LDI	R21,0
     22D E060      LDI	R22,0
     22E E070      LDI	R23,0
     22F 874A      STD	Y+10,R20
     230 875B      STD	Y+11,R21
     231 876C      STD	Y+12,R22
     232 877D      STD	Y+13,R23
(0145) 				  size_buf=0;
     233 E040      LDI	R20,0
     234 E050      LDI	R21,0
     235 E060      LDI	R22,0
     236 E070      LDI	R23,0
     237 834E      STD	Y+6,R20
     238 835F      STD	Y+7,R21
     239 8768      STD	Y+8,R22
     23A 8779      STD	Y+9,R23
(0146) 				}
(0147) 				
(0148) 			}while(data_pointer<511); 
     23B 898A      LDD	R24,Y+18
     23C 899B      LDD	R25,Y+19
     23D 3F8F      CPI	R24,0xFF
     23E E0E1      LDI	R30,1
     23F 079E      CPC	R25,R30
     240 F408      BCC	0x0242
     241 CED8      RJMP	0x011A
(0149) 			
(0150) 		  data_pointer=0;
     242 2400      CLR	R0
     243 2411      CLR	R1
     244 8A1B      STD	Y+19,R1
     245 8A0A      STD	Y+18,R0
     246 E041      LDI	R20,1
     247 E050      LDI	R21,0
     248 E060      LDI	R22,0
     249 E070      LDI	R23,0
     24A 842A      LDD	R2,Y+10
     24B 843B      LDD	R3,Y+11
     24C 844C      LDD	R4,Y+12
     24D 845D      LDD	R5,Y+13
     24E 0E24      ADD	R2,R20
     24F 1E35      ADC	R3,R21
     250 1E46      ADC	R4,R22
     251 1E57      ADC	R5,R23
     252 862A      STD	Y+10,R2
     253 863B      STD	Y+11,R3
     254 864C      STD	Y+12,R4
     255 865D      STD	Y+13,R5
     256 E048      LDI	R20,0x8
     257 E050      LDI	R21,0
     258 E060      LDI	R22,0
     259 E070      LDI	R23,0
     25A 842A      LDD	R2,Y+10
     25B 843B      LDD	R3,Y+11
     25C 844C      LDD	R4,Y+12
     25D 845D      LDD	R5,Y+13
     25E 1624      CP	R2,R20
     25F 0635      CPC	R3,R21
     260 0646      CPC	R4,R22
     261 0657      CPC	R5,R23
     262 F408      BCC	0x0264
     263 CE89      RJMP	0x00ED
(0151) 		  
(0152) 		}
(0153) 		
(0154) 		//---------- 下一簇 ------------//  
(0155) 		num = FatNextCluster(num);	
     264 850E      LDD	R16,Y+14
     265 851F      LDD	R17,Y+15
     266 8928      LDD	R18,Y+16
     267 8939      LDD	R19,Y+17
     268 940E 0B18 CALL	_FatNextCluster
     26A 870E      STD	Y+14,R16
     26B 871F      STD	Y+15,R17
     26C 8B28      STD	Y+16,R18
     26D 8B39      STD	Y+17,R19
(0156) 		
(0157) 		if(num==CLUST_EOFE||music_next!=0||music_last!=0)
     26E EF4F      LDI	R20,0xFF
     26F EF5F      LDI	R21,0xFF
     270 EF6F      LDI	R22,0xFF
     271 EF7F      LDI	R23,0xFF
     272 842E      LDD	R2,Y+14
     273 843F      LDD	R3,Y+15
     274 8848      LDD	R4,Y+16
     275 8859      LDD	R5,Y+17
     276 1624      CP	R2,R20
     277 0635      CPC	R3,R21
     278 0646      CPC	R4,R22
     279 0657      CPC	R5,R23
     27A F021      BEQ	0x027F
     27B 20CC      TST	R12
     27C F411      BNE	0x027F
     27D 20EE      TST	R14
     27E F199      BEQ	0x02B2
(0158) 		{
(0159) 		   if(music_last!=0)
     27F 20EE      TST	R14
     280 F061      BEQ	0x028D
(0160) 		   {
(0161) 		     if(music_num>0)music_num--;
     281 E080      LDI	R24,0
     282 880D      LDD	R0,Y+21
     283 1580      CP	R24,R0
     284 F418      BCC	0x0288
     285 940A      DEC	R0
     286 8A0D      STD	Y+21,R0
     287 C010      RJMP	0x0298
(0162) 			 else music_num = fcount-1;
     288 9180 034A LDS	R24,fcount
     28A 5081      SUBI	R24,1
     28B 8B8D      STD	Y+21,R24
(0163) 		   }
     28C C00B      RJMP	0x0298
(0164) 		   
(0165) 		   else
(0166) 		   {
(0167) 		     if(music_num<fcount-1)music_num++;
     28D 9180 034A LDS	R24,fcount
     28F 5081      SUBI	R24,1
     290 880D      LDD	R0,Y+21
     291 1608      CP	R0,R24
     292 F418      BCC	0x0296
     293 9403      INC	R0
     294 8A0D      STD	Y+21,R0
     295 C002      RJMP	0x0298
(0168) 			 else music_num=0;
     296 2400      CLR	R0
     297 8A0D      STD	Y+21,R0
(0169) 		   }
(0170) 		   
(0171) 		   num = fclust[music_num];
     298 E48B      LDI	R24,0x4B
     299 E093      LDI	R25,3
     29A 89ED      LDD	R30,Y+21
     29B 27FF      CLR	R31
     29C 0FEE      LSL	R30
     29D 1FFF      ROL	R31
     29E 0FEE      LSL	R30
     29F 1FFF      ROL	R31
     2A0 0FE8      ADD	R30,R24
     2A1 1FF9      ADC	R31,R25
     2A2 8020      LD	R2,Z
     2A3 8031      LDD	R3,Z+1
     2A4 8042      LDD	R4,Z+2
     2A5 8053      LDD	R5,Z+3
     2A6 862E      STD	Y+14,R2
     2A7 863F      STD	Y+15,R3
     2A8 8A48      STD	Y+16,R4
     2A9 8A59      STD	Y+17,R5
(0172) 		   play_flag=1;
     2AA 2400      CLR	R0
     2AB 9403      INC	R0
     2AC 8A0C      STD	Y+20,R0
(0173) 		   music_next = 0;
     2AD 24CC      CLR	R12
(0174) 		   music_last = 0;
     2AE 24EE      CLR	R14
(0175) 		   key_num=0;
     2AF 2422      CLR	R2
     2B0 9220 03B8 STS	key_num,R2
     2B2 CE31      RJMP	0x00E4
     2B3 9666      ADIW	R28,0x16
     2B4 940C 0DEC JMP	pop_xgsetF0FC
FILE: C:\DOCUME~1\浪仔\桌面\教学实验板\M16_VS1003_test\vs1003.c
(0001) 
(0002) //---------------------------- VS1003驱动程序 ----------------------------
(0003) //
(0004) //简化版VS1003驱动程序
(0005) //整理日期:2009.7.8
(0006) //
(0007) //------------------------------------------------------------------------
(0008) 
(0009) #include "vs1003.h"
(0010) 
(0011) uint32 num; 
(0012) 
(0013) uint16  VOL;  // 音量
(0014) 
(0015) // 音量数据表
(0016) const uint16 VOL_BUFFER[30] =
(0017) { 
(0018) 	0x9191,0x8c8c,0x8787,0x8282,0x7d7d,0x7878,0x7373,0x6e6e,0x6969,0x6464,
(0019) 	0x5f5f,0x5a5a,0x5555,0x5050,0x4b4b,0x4646,0x4141,0x3c3c,0x3737,0x3232,
(0020) 	0x2d2d,0x2828,0x2323,0x1e1e,0x1919,0x1414,0x0f0f,0x0a0a,0x0505,0x0000
(0021) };
(0022) 
(0023) 
(0024) //---------------------------------
(0025) //
(0026) // VS1003接口初始化函数 
(0027) //
(0028) //---------------------------------
(0029) void VS1003_Port_Init()
(0030) { 
(0031) 	VS1003_XRESET_OUT();
_VS1003_Port_Init:
     2B6 9AA6      SBI	0x14,6
(0032) 	VS1003_XDCS_OUT();
     2B7 9AA5      SBI	0x14,5
(0033) 	VS1003_CS_OUT();
     2B8 9AA4      SBI	0x14,4
(0034) 	VS1003_DREQ_IN();	
     2B9 98A7      CBI	0x14,7

⌨️ 快捷键说明

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