📄 mp3_player.lst
字号:
206 1 {
207 2 RDCOUNT = ReadSector(SongName, Page_Buf);
208 2 for (i=0; i<RDCOUNT; i++)
209 2 {
210 3 while (!(MP3STA1 & MPBREQ));
211 3 MP3DAT = Page_Buf[i];
212 3 }
213 2
214 2
215 2
216 2 //////////////////////////////////////////for LCD display
217 2 KeyState1=KeyState;
218 2 do{
219 3 switch(KeyState)
220 3 { case 0: break;
221 4 case 1: LCD_printen(72,2,"VOLUME");break;
222 4 case 2: LCD_printen(72,2,"TONE ");break;
223 4 case 3: LCD_printen(72,2,LCD_chstr);
224 4 if(PlayState)
225 4 LCD_printen(72,3,"PLAY..");
226 4 else
227 4 LCD_printen(72,3,"STOP..");
228 4 break;
229 4 case 4: LCD_printen(72,3,"Down 1");break;
230 4 case 5: LCD_printen(72,3,"Down 2");break;
231 4 case 6: LCD_printen(72,3,"Up 1 ");break;
232 4 case 7: LCD_printen(72,3,"Up 2 ");break;
233 4 case 8: LCD_printen(72,3,"STOP..");break;
234 4 case 9: LCD_printen(72,3,"PLAY..");break;
235 4
236 4 }
237 3 //
238 3
239 3 }while (!PlayState); //Pause control
C51 COMPILER V7.50 MP3_PLAYER 11/18/2005 21:31:23 PAGE 5
240 2 //////////////////////////////////////////
241 2 if(KeyState==KeyState1) KeyState = 0;
242 2
243 2 if (ChangeSong)
244 2 {
245 3 DataRead = 0;
246 3 ChangeSong = 0;
247 3 m =1;
248 3 }
249 2
250 2 if (RDCOUNT < 512)
251 2 {
252 3 NowPlaying++;
253 3 MP3InitFlag = 1;
254 3 m =1;
255 3 }
256 2
257 2 if(m)
258 2 {
259 3 while(MP3STA1 & MPFREQ)
260 3 MP3DAT = 0x00;
261 3 return;
262 3 }
263 2 }
264 1
265 1 }
266
267
268
269
270 void Func()
271 {
272 1 if (CurrentFun < 3)
273 1 CurrentFun++;
274 1 else if (CurrentFun == 3)
275 1 CurrentFun = 1;
276 1
277 1 switch(CurrentFun)
278 1 {case VOLUME: KeyState = 1;
279 2 //LCD_printen(72,2,"VOLUME");
280 2 break;
281 2 case EFFECTION: KeyState = 2;
282 2 //LCD_printen(72,2,"TONE ");
283 2 break;
284 2 case SELECTSONG: KeyState = 3;
285 2 //LCD_printen(72,2," ");
286 2 break;
287 2 }
288 1
289 1
290 1
291 1 }
292
293
294 void Next()
295 {
296 1 switch (CurrentFun)
297 1 {
298 2 case VOLUME :
299 2 if (MP3VOR > 0x00)
300 2 {
301 3 MP3VOR -= 0x01;
C51 COMPILER V7.50 MP3_PLAYER 11/18/2005 21:31:23 PAGE 6
302 3 MP3VOL -= 0x01;
303 3 KeyState = 4;
304 3 //LCD_printen(72,3,"Down 1");
305 3 }
306 2 break;
307 2
308 2 case EFFECTION :
309 2 if (MP3BAS > 2)
310 2 {
311 3 MP3BAS -= 2;
312 3 MP3TRE += 2;
313 3 KeyState = 5;
314 3 //LCD_printen(72,3,"Down 2");
315 3 }
316 2 break;
317 2
318 2 case SELECTSONG :
319 2 if (NowPlaying == (NumofSong - 1))
320 2 NowPlaying = 0;
321 2 else
322 2 NowPlaying++;
323 2 MP3InitFlag = 1;
324 2 ChangeSong = 1;
325 2 break;
326 2 default: break;
327 2 }
328 1
329 1 }
330
331
332 void Previous()
333 {
334 1 switch (CurrentFun)
335 1 {
336 2 case VOLUME :
337 2 if (MP3VOR < 0x1f)
338 2 {
339 3 MP3VOR += 0x01;
340 3 MP3VOL += 0x01;
341 3 KeyState = 6;
342 3 //LCD_printen(72,3,"Up 1 ");
343 3 }
344 2 break;
345 2
346 2 case EFFECTION :
347 2 if (MP3BAS < 0x1e)
348 2 {
349 3 MP3BAS += 2;
350 3 MP3TRE -= 2;
351 3 KeyState = 7;
352 3 //LCD_printen(72,3,"Up 2 ");
353 3 }
354 2 break;
355 2
356 2 case SELECTSONG :
357 2 if (NowPlaying > 0)
358 2 NowPlaying--;
359 2 else
360 2 NowPlaying = NumofSong - 1;
361 2
362 2 MP3InitFlag = 1;
363 2 ChangeSong = 1;
C51 COMPILER V7.50 MP3_PLAYER 11/18/2005 21:31:23 PAGE 7
364 2 break;
365 2 default: break;
366 2 }
367 1
368 1 }
369
370
371 void PlayPause()
372 {
373 1 PlayState = !PlayState;
374 1 //Mute(!PlayState);
375 1 if (PlayState==0)
376 1 {printu("STOP..\n");
377 2 KeyState = 8;
378 2 //LCD_printen(72,3,"STOP..");
379 2 }
380 1 else
381 1 {printu("PLAY.....\n");
382 2 KeyState = 9;
383 2 //LCD_printen(72,3,"PLAY..");
384 2 }
385 1 }
386
387 void Mute(unsigned char sw)
388 {
389 1 static char volume;
390 1
391 1 if(sw)
392 1 {
393 2 volume = MP3VOL;
394 2 MP3VOR = 0x00;
395 2 MP3VOL = 0x00;
396 2 AUDCON1 &= (~0x01);
397 2 MP3CON &= (~MPEN);
398 2 }
399 1 else
400 1 {
401 2 MP3VOR = volume;
402 2 MP3VOL = volume;
403 2 AUDCON1 |= 0x01;
404 2 MP3CON |= MPEN;
405 2 }
406 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1340 ----
CONSTANT SIZE = 75 ----
XDATA SIZE = 91 25
PDATA SIZE = ---- ----
DATA SIZE = 12 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -