可以顯示播放時間,顯示音量和顯示歌名。不過歌名只能顯示3個中文字或者6和英文字符。
0.png (40.54 KB, 下載次數: 25)
下載附件
2018-7-12 01:50 上傳
單片機源程序如下:
- #include "reg52.h"
- #include "delay.h"
- #include "12864.h"
- #include "ysm3a3.h"
- #include "stdio.h"
- #define FOSC 11059200L //System frequency
- bit busy,SOE;
- unsigned int data1[4]={0xfd,0x02,0x04,0xdf}; //上一曲
- unsigned int data2[4]={0xfd,0x02,0x03,0xdf}; //下一曲
- unsigned int data3[4]={0xfd,0x02,0x05,0xdf}; //音量加
- unsigned int data4[4]={0xfd,0x02,0x06,0xdf}; //音量減
- unsigned int datak[4]={0xfd,0x02,0x0c,0xdf}; //暫停播放
- unsigned char data5[5]={0xfd,0x03,0x31,0x02,0xdf}; //設置音量為05/30
- unsigned char data6[5]={0xfd,0x03,0x33,0x00,0xdf}; //設置循環模式為
- unsigned int data7[7]={0xfd,0x04,0x41,0x00,0x01,0xdf}; //播放第一首歌
- unsigned int datac1[4]={0xfd,0x02,0x11,0xdf}; //查詢音量
- unsigned int datac4[4]={0xfd,0x02,0x1c,0xdf}; //當前時間
- unsigned int datac6[4]={0xfd,0x02,0x1e,0xdf}; //查詢歌名
- unsigned char j;
- unsigned char ss[7];
-
- sbit key1=P1^0; //上一曲
- sbit key2=P1^1; //下一曲
- sbit key3=P1^2; //音量+
- sbit key4=P1^3; //音量-
- sbit key5=P1^4; //暫停播放
- void SendData(unsigned char dat)
- { while (busy); //Wait for the completion of the previous data is sent
- ACC = dat; //Calculate the even parity bit P (PSW.0)
- busy = 1;
- SBUF = ACC; //Send data to UART buffer
- }
- void mp3init()
- {unsigned int i;
- SCON = 0x50; //8-bit variable UART
- TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
- TH1 = TL1 = -(FOSC/12/32/9600); //Set auto-reload vaule
- TR1 = 1; //Timer1 start run
- ES = 1; //Enable UART interrupt
- EA = 1; //Open master interrupt switch
- key1=key2=key3=key4=1;
- for(i=0;i<5;i++)SendData(data5[i]);Delay(2600); //音量
- for(i=0;i<5;i++)SendData(data6[i]);Delay(2600); //循環模式
- for(i=0;i<6;i++)SendData(data7[i]);Delay(2600); //播放第xx首
- }
- void mp3()
- { unsigned int i,t,ge,shi,j0,j1,fen,miao;
- j=0;
- if(key1==0)
- {for(i=0;i<4;i++)SendData(data1[i]);DelayMs(100);} //上一曲
- if(key2==0)
- {for(i=0;i<4;i++)SendData(data2[i]);DelayMs(100);} //下一曲
- if(key3==0)
- {for(i=0;i<4;i++)SendData(data3[i]);DelayMs(100);} //音量加
- if(key4==0)
- {for(i=0;i<4;i++)SendData(data4[i]);DelayMs(100);} //音量減
- if(key5==0)
- {for(i=0;i<4;i++)SendData(datak[i]);DelayMs(100);} //暫停播放
- for(i=0;i<4;i++)SendData(datac4[i]);DelayMs(60); //查詢時間
-
- Show(0x9b,8,ss); //顯示收到的指令
- shi=ss[4]%16;j0=ss[4]/16; //ASCII嗎轉10進制
- ge=ss[5]%16;j1=ss[5]/16;
- if(j0==6)shi=shi+9;
- if(j1==6)ge=ge+9;
- t=shi*16+ge;
- Show_dig(0x8f,t); //顯示過濾和轉換的時間(s)
- fen=t/60;miao=t%60;
- Show_dig(0x8b,fen);
- Show(0x8c,2,"分");
- Show_dig(0x8d,miao);
- Show(0x8e,2,"秒");
- }
- void mp3name()
- { unsigned int i;
- unsigned char xx[5];
- j=0;
- if(key1==0)
- {for(i=0;i<4;i++)SendData(data1[i]);DelayMs(100);} //上一曲
- if(key2==0)
- {for(i=0;i<4;i++)SendData(data2[i]);DelayMs(100);} //下一曲
- if(key3==0)
- {for(i=0;i<4;i++)SendData(data3[i]);DelayMs(100);} //音量加
- if(key4==0)
- {for(i=0;i<4;i++)SendData(data4[i]);DelayMs(100);} //音量減
- if(key5==0)
- {for(i=0;i<4;i++)SendData(datak[i]);DelayMs(100);} //暫停播放
- for(i=0;i<4;i++)SendData(datac6[i]);DelayMs(200); //查詢歌名
- Show(0x9b,8,ss); //顯示收到的指令
- xx[0]=ss[2];
- xx[1]=ss[3];
- xx[2]=ss[4];
- xx[3]=ss[5]; //暫存歌名
- xx[4]=ss[6];
- xx[5]=ss[7];
- Show(0x8b,4,"名:");
- Show(0x8d,6,xx);
-
- }
- void mp3yinliang()
- { unsigned int i,t,ge,shi,j0,j1;
- j=0;
- if(key1==0)
- {for(i=0;i<4;i++)SendData(data1[i]);DelayMs(100);} //上一曲
- if(key2==0)
- {for(i=0;i<4;i++)SendData(data2[i]);DelayMs(100);} //下一曲
- if(key3==0)
- {for(i=0;i<4;i++)SendData(data3[i]);DelayMs(100);} //音量加
- if(key4==0)
- {for(i=0;i<4;i++)SendData(data4[i]);DelayMs(100);} //音量減
- if(key5==0)
- {for(i=0;i<4;i++)SendData(datak[i]);DelayMs(100);} //暫停播放
- for(i=0;i<4;i++)SendData(datac1[i]);DelayMs(100); //查詢音量
- Show(0x9b,8,ss); //顯示收到的指令
- shi=ss[2]%16;j0=ss[2]/16; //ASCII嗎轉10進制
- ge=ss[3]%16;j1=ss[3]/16;
- if(j0==6)shi=shi+9;
- if(j1==6)ge=ge+9;
- t=shi*16+ge;
- Show(0x8b,6,"音量:");
- Show_dig(0x8e,t);
- Show(0x8f,2," "); //顯示過濾和轉換的音量
- }
- void Uart_Isr() interrupt 4 using 1
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
mp3 12864 TEA5767(顯示時間,歌名和音量).rar
(1.62 KB, 下載次數: 44)
2018-7-11 21:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|