一.硬件方案
mp3音乐播放器是以51单片机为核心控制器,设计一个音乐播放器,主要完成TF卡存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐播放软件,可识别、提取TF卡所存储的WMA、MP3格式的文件并可自行完成音频解码数据处理,最后送扬声器或耳机进行播放。通过自定义键盘设定,当有键按下时,能控制歌曲的播放或音量,并通过LCD来显示播放音乐的时间等。硬件主要由51单片机+MP3播放模块(自带3W功放)+3W音乐喇叭+U盘插口+SD卡+耳机接口+按键+液晶显示屏+蓝牙模块;
二.设计功能
1.读取U盘或SD卡里面的音乐,在屏幕上面显示播放状态,当前的音量。
2.按键可进行上一曲、下一曲切换,音量大小可调。
3.支持TF内存卡(支持最大32g),U盘,以及支持MP3和wav格式音乐,同时可外接耳机,音质超好。
4.可通过蓝牙模块实现手机APP控制、和播放。
三.设计原理图
原理图如图:
PCB图如下:
四.软件设计
主程序源码
/********************************************************************
* 名称 : main()
* 功能 : 主函数
* 变量 : 无
* 返回值 : 无
********************************************************************/
void main(void)
{unsigned char M_VOL,flag=1;unsigned char Table[2];Delay_ms(1000);LCD_init(); //初始化液晶 LCD_clear();LCD_write_chinese_string(10,0,12,5,0,0);//显示“音乐播放器”LCD_write_chinese_string(0,2,12,2,5,0);//显示“状态”//LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”LCD_write_chinese_string(40,2,12,2,11,0);//显示“停止”LCD_write_chinese_string(0,4,12,2,7,0);//显示“音量”UART_Init();Delay_ms(100);M_VOL = 25;Table[0] = M_VOL/10+0x30;Table[1] = M_VOL%10+0x30;LCD_write_english_string(40,4,Table);while(1){if(!KEY2)//上一首{Delay_ms(20);Music_UP();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”while(!KEY2);Delay_ms(500); }if(!KEY3)//下一首{Delay_ms(20); Music_DOWN();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”while(!KEY3);Delay_ms(500); }if(flag==1){if(BUSY){Delay_ms(20); Music_DOWN();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”Delay_ms(500); }}if(!KEY4)//音量加{Delay_ms(20);M_VOL++;if(M_VOL>30)M_VOL = 30;Music_Vol(M_VOL);Table[0] = M_VOL/10+0x30;Table[1] = M_VOL%10+0x30;LCD_write_english_string(40,4,Table);Delay_ms(500); }if(!KEY5)//音量减{Delay_ms(20);if(M_VOL<1)M_VOL = 1;M_VOL--;Music_Vol(M_VOL);Table[0] = M_VOL/10+0x30;Table[1] = M_VOL%10+0x30;LCD_write_english_string(40,4,Table);Delay_ms(500); }if(!KEY1)//停止{Delay_ms(20);if(!KEY1)//停止{flag++;if(flag==2)flag=0;//Delay_ms(20);if(flag==0){Music_STOP();//停止LCD_write_chinese_string(40,2,12,2,11,0);//显示“停止”}if(flag==1){Music_Play();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”}while(!KEY1);Delay_ms(500);} }if (UART_Get == '1'){UART_Get = 0;flag++;if(flag==2)flag=0;//Delay_ms(20);if(flag==0){Music_STOP();//停止LCD_write_chinese_string(40,2,12,2,11,0);//显示“停止”}if(flag==1){Music_Play();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”}}if (UART_Get == '2'){UART_Get = 0;Music_UP();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”}if (UART_Get == '3'){UART_Get = 0;Music_DOWN();LCD_write_chinese_string(40,2,12,2,9,0);//显示“播放”}if (UART_Get == '4'){UART_Get = 0;M_VOL++;if(M_VOL>30)M_VOL = 30;Music_Vol(M_VOL);Table[0] = M_VOL/10+0x30;Table[1] = M_VOL%10+0x30;LCD_write_english_string(40,4,Table);}if (UART_Get == '5'){UART_Get = 0;if(M_VOL<1)M_VOL = 1;M_VOL--;Music_Vol(M_VOL);Table[0] = M_VOL/10+0x30;Table[1] = M_VOL%10+0x30;LCD_write_english_string(40,4,Table);}}}
资料链接:https://pan.baidu.com/s/1XvkMuPWAqXTOpMpnXn5FVQ?pwd=y4l4
提取码:y4l4