51单片机mp3音乐播放器设计

这篇具有很好参考价值的文章主要介绍了51单片机mp3音乐播放器设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.硬件方案

       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控制、和播放。

 三.设计原理图

原理图如图:

51单片机mp3音乐播放器设计

 

PCB图如下:
51单片机mp3音乐播放器设计

 

四.软件设计

主程序源码

/********************************************************************
* 名称   : 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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机】电子音乐播放器的设计与制作(说明书)

    前   言          这是本人在大学期间的《单片机控制技术》课程中,所作的结课作业项目,而我也正想要一个电子音乐播放器,而且这样设计的音乐播放器可以发出宜人的音乐旋律,能给生活增加不少的乐趣,本次作业项目也就让我用51系列单片机设计这个电子音乐播放

    2024年02月06日
    浏览(48)
  • 【AT89C52单片机项目】音乐播放器的设计

    实验目的 用51系列单片机设计一个可以切歌的音乐播放器。 实验仪器 AT89C52单片机。 音乐播放模块。 设计要求 采用重装定时器计数方式1的初值来实现发出不同频率的声音,通过控制延时长度来实现不同的节拍,之后将音乐数据表填入,即可实现音乐播放。 可通过功能按键

    2024年02月16日
    浏览(87)
  • Qt项目实战:MP3音乐播放器

      首先通过打开文件,获取文件夹下mp3文件的名字,将其存入QTableWidget控件下,通过双击QTableWidget空间中的内容,播放相应的mp3音乐文件,同时通过使用QMediaPlaylist来实现上一首,下一首的功能。   widget.h widget.cpp main.cpp 本文福利, 莬 费领取Qt开发学习资料包、技术视频,

    2024年02月06日
    浏览(55)
  • 单片机毕设 STM32音乐播放器设计与实现(原理图+源码+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(50)
  • 通信工程毕设 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(59)
  • 硬件课程设计:基于STM32的多功能播放器之MP3音乐播放

    3.1.1 设计思路         音乐播放是手机等电子产品最常见的功能,也是最具娱乐性的功能,在该模块中,我先从SD卡中读取已存放的MP3音乐文件,然后将读取的字节流依次送人VS1053中进行解码和播放,同时从VS1053相关的寄存器中读取音乐播放时间,在LCD上实时显示歌曲信息。

    2023年04月08日
    浏览(41)
  • MCU-51:单片机蜂鸣器播放音乐和提示音

    蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定 无源蜂鸣器:内部不带振荡源,需要控制器提供振

    2024年02月02日
    浏览(48)
  • 【STM32单片机】基于语音识别的智能分类垃圾桶,ld3320语音识别模块如何使用,mp3播放模块如何使用

    对于“可回收物”“有害垃圾”“厨余垃圾”“其它垃圾”,不能分清扔到哪个垃圾桶怎么办? 基于语音识别的智能分类垃圾桶,识别到就打开对应的垃圾桶,完全没有分不清的烦恼。 //可回收物:塑料瓶、玻璃瓶、铝罐、纸张、纸板、报纸、纸质包装盒、金属罐头等

    2024年02月10日
    浏览(60)
  • 82、基于stm32单片机音乐喷泉设计播放器频谱彩灯系统设计(程序+原理图+参考论文+开题报告+任务书+设计资料+元器件清单等)

    随着人们生活水平的提高和建立绿色城市的向往,音乐喷泉以其独特的魅力和特殊的功能,愈来愈成为休闲娱乐产业中的一项重要产品,音乐喷泉的兴建也越来越多。 根据目前音乐喷泉的发展现状,介绍了一个以STM32单片机为核心的小型音乐喷泉控制系统。给出了一个简洁的单

    2024年02月12日
    浏览(134)
  • 51单片机的音乐盒设计

    一.硬件设计         本设计的硬件主要由51单片机最小系统(AT89C51/52、AT89S51/52、STC89C51/52均通用)、LED指示灯、LM386功率放大电路、喇叭、按键电路等构成。 二.设计功能 本设计内置8首歌曲,按键可以上一曲,下一曲,开始或暂停。电位器可以调节音量。采用LM386功放电

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包