MP3详细设计文档要点.docx
《MP3详细设计文档要点.docx》由会员分享,可在线阅读,更多相关《MP3详细设计文档要点.docx(12页珍藏版)》请在冰豆网上搜索。
![MP3详细设计文档要点.docx](https://file1.bdocx.com/fileroot1/2023-2/3/0538b1dd-2254-43a1-ba99-423670bb129e/0538b1dd-2254-43a1-ba99-423670bb129e1.gif)
MP3详细设计文档要点
详细设计说明书
1引言….......................................................................................2
1.1编写目的…............................................................................2
1.2项目背景…............................................................................2
1.3问题定义….............................................................................2
1.4参考资料….............................................................................3
2、功能概述…..............................................................................3
2.1目标…...................................................................................3
2.2完成功能…............................................................................3
2.3系统技术….............................................................................3
3.软件结构化计….........................................................................3
3.1概要设计…..............................................................................3
3.2系统流程图…..........................................................................4
3.3数据流说明…...........................................................................6
3.主要函数及实现功能…...............................................................7
1、引言
MP3的全名是MPEGAudioLayer-3,是一种声音文件的压缩格式。
世界第一台MP3播放器诞生在韩国企业Saehan(世韩,1995年从三星分离出来),并在1998年推出第一台MP3播放器MPmanF10。
MPMan取意于MP3与WALKMAN的结合。
MPManF10的体积为70×90×16.5mm,约有四个1.44M软盘堆叠起来这么大,体重为65g。
由于MP3的小体积、便携带、低价格、高音质等功能,MP3已经成为了当今音乐播放领域的主流产品,并在市场中牢牢地占有一席之地。
其中,最具特色的是以ATmega16单片机为核心的MP3播放器,它是能以单一的技术整合方案,更低廉的生产成品来实现一台可用的MP3播放器。
1.1编写目的
为明确MP3播放器设计实现的软件需求,安排软件规划与进度,分配成员的任务,完成软件的开发与测试,撰写本文档,以供开发人员参考。
1.2项目背景
基于ATmega16单片机为核心的MP3播放器开发以其较简单的程序设计和便宜的开发板成为了电子专业学生实训的最先选择。
故学院给我们电科专业安排了这样一个实训,旨在提高我们的实践能力,提高将知识学以致用的意识。
1.3问题定义
MP3播放器总的实现目标是:
实现播放歌曲、歌曲暂停、切换上下歌曲、显示播放列表、调节音量等基本播放功能;实现按数字键换歌、显示音量和歌曲数等扩展功能。
1.4参考资料
(1)《育松电子QC12864B使用说明》
(2)《cn_mega16-16L》
(3)《VS1003
(1)》
2、功能概述
2.1目标
设计出一款可以播放后缀为.MP3的歌曲文件,有基础功能:
播放、显示播放列表、调节音量、歌曲切换。
有拓展功能:
暂停,按数字键换歌、音量显示。
2.2完成功能
1.能播放后缀为.MP3的歌曲文件
2.基础功能:
播放、显示播放列表、调节音量、歌曲切换
3.拓展功能:
暂停,按数字键换歌、音量显示
2.3系统技术
本嵌入式开发主要是基于AVRSTUDIO4的平台和MP3实训工程开发板,采用C语言编程实现,同时运用其他语言的思维逻辑。
3.软件结构化设计
3.1概要设计
MP3播放器主要由以下几个模块组成:
串口、LCD、SPI+VS1033、SD+PFATFS、Infraredremode。
需要分别完成:
(1)串口USART的通信
(2)驱动LCD12864
(3)驱动VS1003
(4)SD卡驱动
(5)移植Fatfs文件系统
(6)红外的接口实现与中断函数
(7)主程序逻辑实现
3.2系统流程图
1.屏幕点亮,数据初始化(包括LCD初始化,VS1003初始化)
2.判断是否切歌,如果是,切换到所要听的歌。
如果否,Mp3
开始顺序播放。
同时屏幕上显示音量,歌曲名,当前歌曲排序
以及总共歌曲数。
3.判断是否调音,如果调高声音,则屏幕上显示声音值增加,如
果调低声音,则显示声音值降低。
4.判断是否暂停,如果是,则屏幕上内容静止不动,如果否,不
动作。
5.判断是否不动作超过30秒,如果是,则屏幕停止显示背光,否
则,一直显示背光。
6.判断是否播放到最后一首歌,如果是,则开始切换到第一首歌,
否则不动作。
开始
数据初始化
显示播放列表
切歌切换到所要听的歌
顺序播放
是
调音调高声音,则屏幕上显示声音值增加
是
否
调低声音,则屏幕上显示声音值降低
暂停屏幕上内容静止不动
否
不动作
是
否
超过30秒屏幕停止显示背光
一直显示背光
是
播放LAST开始切换到第一首歌
否
继续播放歌曲
3.3数据流说明
1.LCD和VS1003的初始化
接上USB插口,PC4给高电平,致使LCD点亮。
同时,数据开始初始化,包括LCD的初始化和VS1003的初始化。
具体步骤如下:
LCD:
初始化之后,主芯片即ATmega发送写命令,将当前歌曲名等信息写到LCD屏幕上。
VS1003:
初始化之后,主芯片要转变声音信号的电信号信息写到VS1003芯片上,经过VS1003解码,读到主芯片上,再经过耳机转变成声音信号。
2.SD卡驱动
SD卡驱动流程:
(1)挂载一个SD卡
程序代码:
pf_mount
(2)打开一个目录
程序代码:
pf_opendir
(3)读取目录中的一个条目
程序代码:
pf_readdir
(4)打开一个文件
程序代码:
pf_open
(5)读取文件中的具体内容
程序代码:
pf_read
(6)通过指针去访问不同的文件
程序代码:
pf_lseek
3.中断处理
3.4主要函数及实现功能
1.文件名:
led..c
功能:
点亮芯片上的D3发光二极管
描述:
led头文件,用于点灯调用通过给TMS(PC3)引脚一个高
电平,使其相连的二极管发光。
2.文件名:
usart.c
功能:
串口通信模块
描述:
实现串口的字符、字符串的接收与发送
(1)函数名称:
voidUsart_Init(void)
描述:
串口的初始化
注释:
PD0、1
(2)函数名称:
voidPut_Char(unsignedcharc)
描述:
通过串口发送一字节
输入格式:
unsignedcharc:
0~255
(3)函数名称:
unsignedcharGet_Char(void)
描述:
通过串口接收一字节
返回值格式:
unsignedcharc:
0~255
(4)函数名称:
voidPut_String(char*str)
描述:
打印一个字符串输出到串口
输入格式:
char*str
(5)函数名称:
usart.h
描述:
usart.h头文件
3.文件名:
vs1003.c
(1)函数名称:
vs1003.c
描述:
vs1003.c源文件
(2)函数名称:
SPI_Init
描述:
SPI初始化
(3)函数名称:
SPI_SetSpeed
描述:
设置SPI速率
输入格式:
unsignedcharx:
0:
全速
1:
64分频
(4)函数名称:
SPI_RW
描述:
SPI总线读取数据
输入格式:
unsignedchardata
返回格式:
unsignedchar
(5)函数名称:
VS1003_Write
描述:
VS1003在对应的地址写数据
输入格式:
unsignedchararr:
unsignedshortdata:
(6)函数名称:
VS1003_Read
描述:
从VS1003对应的地址读取2字节数据
输入格式:
unsignedchararr:
输出格式:
unsignedshort:
(7)函数名称:
VS1003_Init
描述:
vs1003初始化
(8)函数名称:
VS1003_SineTest
描述:
vs1003正弦测试
输入格式:
unsignedcharx
3.文件名:
lcd12864.c
(1)函数名称:
lcd12864.h
描述:
lcd12864.h头文件
(2)函数名称:
staticvoidLCD_Busy(void);
描述:
判断LCD12864当前是否忙
(3)函数名称:
staticvoidWrite_Command(unsignedcharcmd)
描述:
向LCD12864发出对应的cmd
输入格式:
unsignedchar:
cmd根据LCD12864手册填写
(4)函数名称:
staticvoidWrite_Command(unsignedchardata)
描述:
向LCD12864发出对应的data
输入格式:
unsignedchar:
data根据LCD12864手册填写
(5)函数名称:
voidLCD12864_Init(void)
函数描述:
LCD12864的初始化
(6)函数名称:
LCD12864_Putchar
描述:
在具体带的坐标处输出对应的字符
输入格式:
unsignedcharx:
行0~3
unsignedchary:
列0~7
unsignedcharc:
输入的ASCII表
(7)函数名称:
:
LCD12864_Putstring
描述:
在具体带的坐标处输出对应的字符串
输入格式:
unsignedcharx:
行0~3
unsignedchary:
列0~7
char*string:
字符串
(8)函数名称:
:
LCD12864_Clear
描述:
清屏函数
输入格式:
unsignedcharx:
0~3:
清楚对应的行
4:
清楚所有行
4.文件名:
Main.c
(1)函数名称:
intmain(void)
描述:
主程序,用于调用调用一些分支函数及其他简
单程序
(2)函数名称:
voidShow_Music_List(unsignedchartmp)
函数描述:
用于显示歌曲列表
(3)函数名称:
staticvoidMusicList_Update(void)
描述:
更新播放列表,并打印打印到串口输出。