一.硬件方案
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图如下:
四.软件设计
主程序源码文章来源:https://www.toymoban.com/news/detail-513789.html
/********************************************************************
* 名称 : 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文章来源地址https://www.toymoban.com/news/detail-513789.html
到了这里,关于51单片机mp3音乐播放器设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!