【毕业设计】基于单片机的MP3设计与实现 - stm32

news/2024/11/29 4:33:17/

文章目录

  • 1 简介
  • 2 主要器件
  • 3 实现效果
  • 4 设计原理
    • 核心算法:音频解码流程
  • 5 部分实现代码
  • 6 最后


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目

基于单片机的MP3设计与实现

大家可用于 课程设计 或 毕业设计


单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


2 主要器件

对于便携式 MP3 系统, 主要考虑的是其体积小巧、 低功耗、 高容量、 低价格, 一个 MP3 播放器主要应包括:

  • (1) 单片机控制系统
  • (2) 大容量的移动存储设备
  • (3) MP3 解码器
  • (4) D/A 转换芯片
  • (5) 音频放大电路
  • (6) USB 接口
  • (7) LCD 显示和键盘电路

在这里插入图片描述

3 实现效果

在这里插入图片描述

4 设计原理

学长主要实现一个 MP3 播放器的功能, 由于涉及文件传输和存储问题, 所以附带需要实现 USB 存储器的功能。 整个系统由 AT89C51SND1C(MCU)、 K9F2808U0A(Flash 芯片), 电源部分、 音频部分、 串行通信部分和人机接口部分组成。

  • MCU 部分: 控制整个系统, 提供 USB 控制和 MP3 解码功能;
  • Flash 芯片: 存放系统文件;
  • 电源部分: 提供系统工作所需要的电源, 包括 1 个升压和 1 个降压部分;
  • 音频部分: 把数据流转化为声音信号;
  • 人机接口部分: 包括按键和 LED 指示等等

为了方便调试, 系统中还提供了串行通信部分, 在这个部分中主要详细介绍电源、
音频部分。

  • 电源部分: 整个开发板上所有芯片统一采用 3. 3 伏供电, 对开发板的供电采取 2
    种形式: USB 供电和 7 号电池供电。

  • USB 供电模式: USB 供电参数如下: USB 接口提供 5V 电压和 200mA 电流, Imax=500mA;

  • PC 机为 500mA; 笔记本电脑为 100mA。

核心算法:音频解码流程

在这里插入图片描述

5 部分实现代码

解码程序
头文件
#define unit nusingned int
#define uchar unsingned char
#define MP3_ON 1
#define MP3_OFF 0
Bit MP3 _Switch
Uchar Key_Vol
Uchar Key_Bas
Uchar Key_Med
Uchar Key_Tre
//以上为键盘读入的声音控制参数
//MP3COM 寄存器内部位定义
sbit MPEN=MP3CON^7
sbit MPBBST= MP3CON^6
sbit CRCET=MP3CON^5
sbit MSKANC=MP3CON^4
sbit MSKREQ=MP3CON^3
sbit MSKLAY=MP3CON^2
sbit MSKSYN=MP3CON^1
sbit MSKCRC=MP3CON^0
//MP2STA1 寄存器内部位定义
sbit MPFREQ=MP3STA1^4
sbit MPFREQ=MP3STA1^3
Mp3_Reg_Init();
Mp3_Data_Input();
Mp3_Error_Del()
Mp3_Clk_Set()
Mp3_Audio_Contr()
Mp3_AncData_Del()
void Mp3_Int_Del()
解码程序
#include<mp3_contr.h>
#include<regsnd1.h>
Mp3_Reg_Init()
{
If(MP3_Switch= = MP3_ON)
{ MP3CON=0xBF;
}
else MP3CON=px3F;
}
MP3_Data_Input()
{
If ((MPFREQ= =1 )&&(MPBREQ= =1)= =1)
{
MP3DAT= MP3_Data;
}
}
MP3_Error_Del()
{
If(ERRLAY= =1)
{
//提示
}
If(ERRCRC= =1)
{
// go on
}
//以上两部分对应的错误提示用户可以自行根据系统进行设置
If(ERRSYN= =1)
{
MP3_Data_Input();
}
}
MP3_Clk_Set()
{
If(MPVER= =1)
{
MP3CLK=0
}
Else
{
MP3CLK=1;
}
}
MP3_Audio_Contr()
{
MP3VOL = Key_Vol;
MP3VOLR= Key_Yol;
MP3MED = Key_Med;
MP3TRE = Key_Tre;
MP3BAS = Key_Bas;
}
MP3_AncData_Del()
{
//留出接口供调用
}
Void MP3_Int_Del() interrupt 5 using 2
{if(MPREQ= =1)
//缺少数据
{
MP3_Data_Input();
}
else if(MPANC= =1)
//处理附加数据
{
MP3_AncData_Del();
}
eles MP3_Error_Del();
}

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


6 最后


http://www.ppmy.cn/news/245332.html

相关文章

小白必看:零基础入门网络安全

1、什么是网络安全&#xff1f; 官方的回答&#xff1a;指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 具有保密性、完整性、可用性、可控性…

【大唐杯学习超快速入门】5G智能网络优化

这里写目录标题 学习--实验背景上下行速率VOLTE掉话率优化时延优化 接入保持特性提升无线接通率切换成功率 附录 数据分析其他几种选项差不多 学习–实验背景 观看视频进行学习&#xff0c;理解该仿真的内涵 使用人工智能代替人工分析&#xff0c;对5G网络进行优化 上下行速率…

【Android开发基础】四大组件之一Service(服务)的应用场景及使用(以实时聊天为例)

文章目录 一、引言1、什么是服务&#xff1f;2、应用场景3、其他类同 二、生命周期三、基础使用1、创建服务2、注册服务3、启动服务 四、进阶使用&#xff08;实时聊天&#xff09;1、实现效果2、数据流图3、服务部分 一、引言 1、什么是服务&#xff1f; Service&#xff08;…

Elasticsearch 支持的字段类型及其查询方式

以下是 Elasticsearch 支持的字段类型及其查询方式的表格&#xff1a; 字段类型描述查询方式Text存储文本数据match、match_phrase、multi_match、common_terms、query_stringKeyword存储关键字数据term、terms、range、prefix、wildcard、regexp、fuzzy、existsNumeric存储数…

高薪软件测试工程师成长之路,你现在到哪个阶段?

目录 前言&#xff1a; 大厂喜欢什么样的人才 学历 技术 编程语言 总结&#xff1a; 岗位薪资大概标准 前言&#xff1a; 随着现代软件应用日益广泛&#xff0c;软件测试作为一项重要的技术手段和质量保证措施&#xff0c;越来越受到业界和用户的重视。作为软件开发领域中的…

vue实现预览PDF、Excel、Docx、Txt、PPT文件的功能

目录&#xff1a; 一、实现步骤 二、实现效果 代码真实可用&#xff01; 一、实现步骤&#xff1a; 1、使用的是vue和elementUI&#xff0c; 假设有这些变量&#xff1a;attachment是附件的意思 data() {return {previewDialog: false,attachmentSrc: ,attachmentList: [{…

电脑搭配问题

作者&#xff1a;知乎用户 链接&#xff1a;https://www.zhihu.com/question/19912421/answer/76728716 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 一、配件选购&#xff1a; DIY新机一般由以下部分组成&#xff…

2020年的618快来了,电脑该怎么选

冰小柠柠柠 先上配置单&#xff0c;选好了CPU&#xff0c;就会有对应的主板型号&#xff0c;主板选好了&#xff0c;其它配件就知道怎么搭配了。 以下推荐的&#xff0c;都是性价比较高的配件。基本可以直接买。 先从低价推荐。价格不保护显示器&#xff0c;键盘&#xff0c…