《音乐播放器》PPT课件
《Music》PPT精品教学课件
The impacts of music on Sarah
para 2
para 1
para 5
para 3
para 4
focus on one topic
Reading for structure
Introduction
Sarah’s advice and hope
Three years ago
Then one day
From then on
What
How
had a serious disease
listen to music before a medical treatment
music helped her recover
happy
so much better
repetition
metaphor 暗喻
attracts the audience
simile 明喻
personification
Tip 2: Proper rhetorical devices make the speech vivid and impressive
Of course, I hope none of you have to go through the same kind of suffering that l did. At the same time, we all go through various periods when we feel sad or alone. During those times, music can help you in the same way that it helped me. I hope all of you will somehow begin to treasure music and make it a part of your life.Thank you!
音乐播放器PPT
• •
• •
8254工作方式
• (5)方式4:软件出发选通方式 • 进入工作方式4,OUTi输出高电平。 装入计数值n后, 如果 GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止, OUTi输出宽度为一个CLKi周期的负脉冲。由软件装入的计数值只有一 次有效,如果要继续操作, 必须重新置入计数初值n。如果在操作的 过程中,GATE变为无效,则停止减“1”计数, 到GATE再次有效时, 重新从初值开始减“1”计数。 • (6)方式5:硬件触发方式计数 • 进入工作方式5, OUTi输出高电平, 硬件触发信号由GATE端 引入。 因此,开始时GATE应输入为0, 装入计数初值n后,减“1” 计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信 号,减“1”计数才会开始,待计数值计到“0”, OUTi将输出负脉 冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。
相关知识
(1)每片上有3 个独立的16 位的减计数器通道。 (2)对于每个计数器,都可以单独作为定时器 戒计数器使用,并且都可以按照二迚制戒十迚制 来计数。 (3)每个通道都有6 种工作方式,都可以通过 程序设置戒改发。 (4)每个计数器的速率可高达10MHz。 主要部分有:数据总线缓冲器、读/写控制逻 辑、控制字寄存器、计数通道0#、1#、2#: 内部结构如下图:
• FREG1 DW 2 dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440 ,349 ;曲1的频率 • DW 330,294,466,266,440,349,392,349,-1 • TIME1 DW 1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4 ;曲1的时间 • FREG2 DW 330,294,262,294,3 DUP(330) ;曲2的频率 • DW 3 DUP(294),330,392,392 • DW 330,294,262,294,4 DUP(330) • DW 294,294,330,294,262, -1 • TIME2 DW 6 DUP(1),2 ;曲2的时间 • DW 2 DUP(1,1,2) • DW 12 DUP(1),4 • FREG3 DW 330,392,330,294,330,392,330,294,330,330,392,330,294,262,294, 330,392,294 ;曲3的频率 • DW 262,262,220,196,220,262,294,332,262, -1
四年级上册科学课件-3.5《声音的传播》 |教科版 (共17张PPT)
声音的传播
ห้องสมุดไป่ตู้
实验目的: 1. 加强学生实际动手操作能 力,培养学生观察总结能力。
2.观察分析总结声音在不同 物质里的不同传播效果。
实验器材:
酒精灯、石棉网、烧瓶、胶 塞、玻璃管、乳胶管、皮管 夹、三脚架、小铃、水槽、 音乐播放器、牙签、纸杯、 细线、塑料袋、沙、水、筷 子、玻璃瓶、大豆
14、意志坚强的人能把世界放在手中 像泥块 一样任 意揉捏 。2021 年8月5 日星期 四2021/ 8/5202 1/8/520 21/8/5
15、最具挑战性的挑战莫过于提升自 我。。2 021年8 月2021 /8/520 21/8/52 021/8/ 58/5/20 21
16、业余生活要有意义,不要越轨。2 021/8/ 52021/ 8/5Aug ust 5, 2021
17、一个人即使已登上顶峰,也仍要 自强不 息。202 1/8/52 021/8/5 2021/8 /52021 /8/5
谢谢观赏
You made my day!
我们,还在路上……
9、有时候读书是一种巧妙地避开思考 的方法 。2021 /8/520 21/8/5T hursda y, August 05, 2021
10、阅读一切好书如同和过去最杰出 的人谈 话。202 1/8/52 021/8/5 2021/8 /58/5/2 021 3:44:06 PM
11、越是没有本领的就越加自命不凡 。2021/ 8/5202 1/8/520 21/8/5 Aug-21 5-Aug-2 1
实验步骤---1: 1.耳朵贴近桌面,轻敲桌腿。 2.响着音乐的手机放入水中。 3.远处播放音乐。
现象:
我们都能听到声音。
任务音乐播放器的设计与制作精PPT学习教案
TAB: 02H 02H 04H 04H
DB 0FCH,44H,02H,0FCH,44H,02H,0FCH,44H,04H DB 0FBH,04H,04H,0FDH,0AH,02H,0FDH,0AH,
DB 0FDH,0AH,04H, 0FCH,44H,04H,0FCH,44H,
DB 0FDH,0AH,02H,0FDH,82H,04H,0FDH,82H,
{
H=musicTAB[i];
//查音符码
L=musicTAB[i+1];
if((H|L)==0)
//是否为休止符
{
TR0=0;
}
delay(musicTAB[i+2]);
//查节拍/共19页
模拟仿真与软件调试
第17页/共19页
第18页/共19页
九江职业技术学院电气工程系
查音符高八位
查音符低八位
是否为休止符?
Y
N
Y
乐曲是否结束?
N 装定时器初值
启动定时器
关定时器
查节拍延时常数
延时
该音符节拍是否结束? N Y
第12页/共19页
参考程序——汇编语言
START: MOV MOV
LOOP:
ORL JZ
CJNE SJMP
ORG
0000H
LJMP
START
ORG
001BH
;定时器中断入口
任务音乐播放器的设计与制作精
会计学
1
教学目标
知识目标:
1.了解单片机如何控制声音? 2.了解音乐播放器的工作原理
技能目标:
1.掌握中断系统的编程调试方法。 2.掌握定时/计数器的编程调试方法。 3.掌握音乐播放器的制作与调试
音乐播放器课程设计报告
课程设计报告课程设计名称:音乐播放器院系:信息工程学院学生姓名:班级:学号:成绩:指点教师:开课时光:2016-2017学年 2 学期音乐播放器一.实践的内容和请求进修WAV格局音频播放道理.数字音频接口及的相干常识.懂得模仿音频旌旗灯号和数字音频旌旗灯号的概念.控制编写音频播重要内容放器的办法.实现音频播放,小键盘输入操纵.本体系要做一个音乐播放器,运用通用准时器准时,用比较输出功效,输出曲谱频率的方波产生声音,对 3 首歌曲编码, 其支撑 WAV 格局音频播放(上键:暂停;左键:上一首;右键:下一首).运用硬件ARM 嵌入式开辟平台. 用于 ARM7TDMI 的JTAG 仿真器.PC 机 Pentium100开辟实实际现音频播放.重要实现:上一首按键:当点击上一首按键时,当前播放歌曲的上一首歌首被播放.下一首按键:当点击下一首按键时,当前播放歌曲的下一首歌曲即被播放.当点击停滞键时,当前歌曲即会被停滞.播放界面设计:在歌曲进行播放时, 界面应包含所有的按键, 并且要歌曲的曲目单.二、实践道理WAV播放器体系请求可以或许对mp3.wav格局的音频文件进行解码,处理起来速度是有请求的,尤其是对320Kbps的MP3格局数据流的处理,必须平常快,才干实现MP3的流利播放,可供选择的八位机有AVR.PIC,可供选择的32位处理器有SAMSUNG.STM32.ATMEL等.选择MCU优先斟酌于失去丰硕的RAM,八位机RAM重要靠扩大,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩.本试验运用了ARM7处理器,MP3解码可以有两种办法,一是经由过程ARM处理器软解码,经由过程对MP3数据格局的解析实现MP3播放,二是经由过程外部解码芯片直接解码.第一种办法在解码高码率的MP3时,ARM7处理才能吃紧,并且STM32还须要外部DAC来做音频输出,所以采取第二种办法进行解码.MP3罕有的解码芯片有VS100X系列和STA01系列,STA01须要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格局包含mp3和wav,别的它还可以实现灌音功效,便利以落后行功效的拓展运用.三.实践步调开机后,先初始化各外设,然后检测字库文件夹是否消失,假如有问题,则提醒Error,假如检测无问题,则开端轮回播放 SD卡内MUSIC 文件夹里面的歌曲,在 TFTLCD 上显示歌曲名字.播放时光.歌曲总时光.歌曲数量.当前歌曲的编号等信息.KEY0选择下一首,KEY2 选择上一首,KEY_UP 控制暂停/持续播放.3.2试验步调1)初始化 WM8978,这个进程包含软复位.DAC 设置.输出设置和音量设置等.2)初始化 I2S,此进程重要设置 SPI_I2SCFGR 存放器,设置 I2S 模式.I2S 尺度.时钟余暇电温和数据帧长等,最后开启 I2S TX DMA,使能 I2S 外设. 在库函数中初始化 I2S 挪用的函数为:void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct); 构造体 I2S_InitTypeDef 的界说为:typedef struct{ uint16_t I2S_Mode;uint16_t I2S_Standard;uint16_t I2S_DataFormat;uint16_t I2S_MCLKOutput;uint32_t I2S_AudioFreq;uint16_t I2S_CPOL; }I2S_InitTypeDef;第一个参数用来设置 I2S 的模式,也就是设置 SPI_I2SCFGR 存放器的 I2SCFG 相干位.可以设置装备摆设为主模式发送 I2S_Mode_MasterTx,主模式接收 I2S_Mode_MasterRx,从模式发送 I2S_Mode_SlaveTx 以及从模式接收 I2S_Mode_SlaveRx 四种模式.第二个参数I2S_Standard 用来设置 I2S 尺度,这个前面已经讲授过.可以设置为:飞利浦尺度I2S_Standard_Phillips,MSB 对齐尺度 I2S_Standard_MSB,LSB 对齐尺度I2S_Standard_LSB 以及 PCM 尺度 I2S_Standard_PCMShort. 第三个参数 I2S_DataFormat 用来设置 I2S 的数据通讯格局.这里实际包含设置 SPI_I2SCFGR 存放器的 HCLEN 位(通道长度)以及 DATLEN 位(传输的数据长度).当我们设置为 16 位尺度格局I2S_DataFormat_16b 的时刻,实际上传输的数据长度为 16 位,通道长度为 16 位.当我们设置为其他值的时刻,通道长度都为 32 位.第四个参数 I2S_MCLKOutput用来设置是否使能主时钟输出.我们试验会使能主时钟输出.第五个参数 I2S_AudioFreq 用来设置 I2S频率.实际依据输入的频率值,会来盘算 SPI 预分频存放器 SPI_I2SPR 的预分频奇数因子以及 I2S 线性预分频器的值.这里支撑 10 中频率:#define I2S_AudioFreq_192k ((uint32_t)192000)#define I2S_AudioFreq_96k ((uint32_t)96000)#define I2S_AudioFreq_48k ((uint32_t)48000)#define I2S_AudioFreq_44k ((uint32_t)44100)#define I2S_AudioFreq_32k ((uint32_t)32000)#define I2S_AudioFreq_22k ((uint32_t)22050)#define I2S_AudioFreq_16k ((uint32_t)16000)#define I2S_AudioFreq_11k ((uint32_t)11025)#define I2S_AudioFreq_8k ((uint32_t)8000)#define I2S_AudioFreq_Default ((uint32_t)2)第六个参数 I2S_CPOL 用来设置余暇状况时钟电平,取值为高电平 I2S_CPOL_High 以及低电平 I2S_CPOL_Low.3)解析 WAV 文件,获取音频旌旗灯号采样率和位数并设置 I2S 时钟分频器这里,要先解析 WAV 文件,取得音频旌旗灯号的采样率(fs)和位数(16 位或 32 位),依据这两个参数,来设置 I2S 的时钟分频,这里我们用前面介绍的查表法来设置即可.这是我们单独写了一个设置频率的函数为 I2S2_SampleRate_Set.4)设置 DMA I2S 播放音频的时刻,一般都是经由过程 DMA 来传输数据的,所以必须设置装备摆设 DMA,本章我们用 I2S2,其 TX是运用的 DMA1 数据流 4 的通道 0 来传输的.并且STM32F4 的 DMA 具有双缓冲机制,如许可以进步效力,大大便利了我们的数据传输,本章将 DMA1 数据流 4 设置为:双缓冲轮回模式,外设和存储器都是 16 位宽,并开启 DMA 传输完成中止(便利填充数据).5)编写 DMA 传输完成中止办事函数为了便利填充音频数据,我们运用 DMA 传输完成中止,每当一个缓冲数据发送完后,硬件主动切换为下一个缓冲,同时进入中止办事函数,填充数据到发送完的这个缓冲.6)开启 DMA 传输,填充数据最后,我们就只须要开启 DMA 传输,然后实时填充 WAV 数据到 DMA 的两个缓存区即可.此时,就可以在 WM8978 的耳机和喇叭通道听到所播放音乐了.操纵办法为: DMA_Cmd(DMA1_Stream4,ENABLE);//开启 DMA TX 传输,开端播放.3.4症结代码I2s.c代码:#include "i2s.h"#include "usart.h"void I2S2_Init(u16 I2S_Standard,u16 I2S_Mode,u16 I2S_Clock_Polarity,u16 I2S_DataFormat){I2S_InitTypeDef I2S_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);//使能SPI2时钟RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,ENABLE); //复位SPI2RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,DISABLE);//停滞复位I2S_InitStructure.I2S_Mode=I2S_Mode;//IIS模式I2S_InitStructure.I2S_Standard=I2S_Standard;//IIS尺度I2S_InitStructure.I2S_DataFormat=I2S_DataFormat;//IIS数据长度I2S_InitStructure.I2S_MCLKOutput=I2S_MCLKOutput_Disable;//主时钟输出制止I2S_InitStructure.I2S_AudioFreq=I2S_AudioFreq_Default;//IIS频率设置I2S_InitStructure.I2S_CPOL=I2S_Clock_Polarity;//余暇状况时钟电平I2S_Init(SPI2,&I2S_InitStructure);//初始化IISSPI_I2S_DMACmd(SPI2,SPI_I2S_DMAReq_Tx,ENABLE);//SPI2 TX DMA请求使能.I2S_Cmd(SPI2,ENABLE);//SPI2 I2S EN使能.}//采样率盘算公式:Fs=I2SxCLK/[256*(2*I2SDIV+ODD)]//I2SxCLK=(HSE/pllm)*PLLI2SN/PLLI2SR//一般HSE=8Mhz//pllm:在Sys_Clock_Set设置的时刻肯定,一般是8//PLLI2SN:一般是192~432//PLLI2SR:2~7//I2SDIV:2~255//ODD:0/1//I2S分频系数表@pllm=8,HSE=8Mhz,即vco输入频率为1Mhz //表格局:采样率/10,PLLI2SN,PLLI2SR,I2SDIV,ODDconst u16 I2S_PSC_TBL[][5]={{800 ,256,5,12,1},//8Khz采样率{1102,429,4,19,0},//11.025Khz采样率{1600,213,2,13,0},//16Khz采样率{3200,213,2, 6,1},//32Khz采样率{4800,258,3, 3,1},//48Khz采样率{9600,344,2, 3,1}, //96Khz采样率{17640,361,2,2,0}, //176.4Khz采样率{19200,393,2,2,0}, //192Khz采样率};//设置IIS的采样率(@MCKEN)//samplerate:采样率,单位:Hz//返回值:0,设置成功;1,无法设置.u8 I2S2_SampleRate_Set(u32 samplerate){u8 i=0;u32 tempreg=0;samplerate/=10;//缩小10倍for(i=0;i<(sizeof(I2S_PSC_TBL)/10);i++)//看看改采样率是否可以支撑{if(samplerate==I2S_PSC_TBL[i][0])break;}RCC_PLLI2SCmd(DISABLE);//先封闭PLLI2Sif(i==(sizeof(I2S_PSC_TBL)/10))return 1;//搜遍了也找不到RCC_PLLI2SConfig((u32)I2S_PSC_TBL[i][1],(u32)I2S_PSC_TBL[i][2]);//设置I2SxCLK的频率(x=2) 设置PLLI2SN PLLI2SRRCC->CR|=1<<26;//开启I2S时钟while((RCC->CR&1<<27)==0);//等待I2S时钟开启成功.tempreg=I2S_PSC_TBL[i][3]<<0;//设置I2SDIVtempreg|=I2S_PSC_TBL[i][4]<<8;//设置ODD位tempreg|=1<<9;//使能MCKOE位,输出MCKSPI2->I2SPR=tempreg;//设置I2SPR存放器return 0;}//I2S2 TX DMA设置装备摆设//设置为双缓冲模式,并开启DMA传输完成中止//buf0:M0AR地址.//buf1:M1AR地址.//num:每次传输数据量void I2S2_TX_DMA_Init(u8* buf0,u8 *buf1,u16 num){NVIC_InitTypeDef NVIC_InitStructure;DMA_InitTypeDef DMA_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1,ENABLE);//DMA1时钟使能DMA_DeInit(DMA1_Stream4);while (DMA_GetCmdStatus(DMA1_Stream4) != DISABLE){}//等待DMA1_Stream1可设置装备摆设/* 设置装备摆设 DMA Stream */DMA_InitStructure.DMA_Channel = DMA_Channel_0; //通道0 SPI2_TX通道DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&SPI2->DR;//外设地址为:(u32)&SPI2->DRDMA_InitStructure.DMA_Memory0BaseAddr = (u32)buf0;//DMA 存储器0地址DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;//存储器到外设模式DMA_InitStructure.DMA_BufferSize = num;//数据传输量DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设非增量模式DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//存储器增量模式DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord;//外设数据长度:16位DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//存储器数据长度:16位DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;// 运用轮回模式DMA_InitStructure.DMA_Priority = DMA_Priority_High;//高优先级DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; //不运用FIFO模式DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull;DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;//外设突发单次传输DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;//存储器突发单次传输DMA_Init(DMA1_Stream4, &DMA_InitStructure);//初始化DMA StreamDMA_DoubleBufferModeConfig(DMA1_Stream4,(u32)buf1,DMA_Memory_0);//双缓冲模式设置装备摆设DMA_DoubleBufferModeCmd(DMA1_Stream4,ENABLE);//双缓冲模式开启DMA_ITConfig(DMA1_Stream4,DMA_IT_TC,ENABLE);//开启传输完成中止NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream4_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//抢占优先级0NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;//子优先级0NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中止通道NVIC_Init(&NVIC_InitStructure);//设置装备摆设}//I2S DMA回调函数指针void (*i2s_tx_callback)(void);//TX回调函数//DMA1_Stream4中止办事函数void DMA1_Stream4_IRQHandler(void){if(DMA_GetITStatus(DMA1_Stream4,DMA_IT_TCIF4)==SET)////DMA1_Stream4,传输完成标记{DMA_ClearITPendingBit(DMA1_Stream4,DMA_IT_TCIF4);i2s_tx_callback();//履行回调函数,读取数据等操纵在这里面处理}}//I2S开端播放void I2S_Play_Start(void){DMA_Cmd(DMA1_Stream4,ENABLE);//开启DMA TX传输,开端播放}//封闭I2S播放void I2S_Play_Stop(void){DMA_Cmd(DMA1_Stream4,DISABLE);//封闭DMA,停滞播放}wm8978代码:#include "wm8978.h"#include "myiic.h"#include "delay.h"static u16 WM8978_REGVAL_TBL[58]={0X0000,0X0000,0X0000,0X0000,0X0050,0X0000,0X0140,0X0000, 0X0000,0X0000,0X0000,0X00FF,0X00FF,0X0000,0X0100,0X00FF, 0X00FF,0X0000,0X012C,0X002C,0X002C,0X002C,0X002C,0X0000, 0X0032,0X0000,0X0000,0X0000,0X0000,0X0000,0X0000,0X0000, 0X0038,0X000B,0X0032,0X0000,0X0008,0X000C,0X0093,0X00E9, 0X0000,0X0000,0X0000,0X0000,0X0003,0X0010,0X0010,0X0100, 0X0100,0X0002,0X0001,0X0001,0X0039,0X0039,0X0039,0X0039, 0X0001,0X0001};//WM8978初始化//返回值:0,初始化正常// 其他,错误代码u8 WM8978_Init(void){u8 res;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC, ENABLE);//使能外设GPIOB,GPIOC时//PB12/13 复用功效输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功效GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化//PC2/PC3/PC6复用功效输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3|GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功效GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO_PinAFConfig(GPIOB,GPIO_PinSource12,GPIO_AF_SPI2); //PB12,AF5 I2S_LRCKGPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_SPI2);//PB13,AF5 I2S_SCLKGPIO_PinAFConfig(GPIOC,GPIO_PinSource3,GPIO_AF_SPI2);//PC3 ,AF5I2S_DACDATAGPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_SPI2);//PC6 ,AF5 I2S_MCKGPIO_PinAFConfig(GPIOC,GPIO_PinSource2,GPIO_AF6_SPI2);//PC2 ,AF6I2S_ADCDATA I2S2ext_SD是AF6!!!IIC_Init();//初始化IIC接口res=WM8978_Write_Reg(0,0);//软复位WM8978if(res)return 1;//发送指令掉败,WM8978平常//以下为通用设置WM8978_Write_Reg(1,0X1B);//R1,MICEN设置为1(MIC使能),BIASEN设置为1(模仿器工作),VMIDSEL[1:0]设置为:11(5K)WM8978_Write_Reg(2,0X1B0);//R2,ROUT1,LOUT1输出使能(耳机可以工作),BOOSTENR,BOOSTENL使能WM8978_Write_Reg(3,0X6C);//R3,LOUT2,ROUT2输出使能(喇叭工作),RMIX,LMIX使能WM8978_Write_Reg(6,0);//R6,MCLK由外部供给WM8978_Write_Reg(43,1<<4);//R43,INVROUT2反向,驱动喇叭WM8978_Write_Reg(47,1<<8);//R47设置,PGABOOSTL,左通道MIC获得20倍增益WM8978_Write_Reg(48,1<<8);//R48设置,PGABOOSTR,右通道MIC获得20倍增益WM8978_Write_Reg(49,1<<1);//R49,TSDEN,开启过热呵护WM8978_Write_Reg(10,1<<3);//R10,SOFTMUTE封闭,128x采样,最佳SNRWM8978_Write_Reg(14,1<<3);//R14,ADC 128x采样率return 0;}//WM8978写存放器//reg:存放器地址//val:要写入存放器的值//返回值:0,成功;// 其他,错误代码u8 WM8978_Write_Reg(u8 reg,u16 val){IIC_Start();IIC_Send_Byte((WM8978_ADDR<<1)|0);//发送器件地址+写敕令if(IIC_Wait_Ack())return 1;//等待应答(成功?/掉败?)IIC_Send_Byte((reg<<1)|((val>>8)&0X01));//写存放器地址+数据的最高位if(IIC_Wait_Ack())return 2;//等待应答(成功?/掉败?)IIC_Send_Byte(val&0XFF);//发送数据if(IIC_Wait_Ack())return 3;//等待应答(成功?/掉败?)IIC_Stop();WM8978_REGVAL_TBL[reg]=val;//保管存放器值到当地return 0;}//WM8978读存放器//就是读取当地存放器值缓冲区内的对应值//reg:存放器地址//返回值:存放器值u16 WM8978_Read_Reg(u8 reg){return WM8978_REGVAL_TBL[reg];}//WM8978 DAC/ADC设置装备摆设//adcen:adc使能(1)/封闭(0)//dacen:dac使能(1)/封闭(0)void WM8978_ADDA_Cfg(u8 dacen,u8 adcen){u16 regval;regval=WM8978_Read_Reg(3);//读取R3if(dacen)regval|=3<<0;//R3最低2个位设置为1,开启DACR&DACLelse regval&=~(3<<0);//R3最低2个位清零,封闭DACR&DACL.WM8978_Write_Reg(3,regval);//设置R3regval=WM8978_Read_Reg(2);//读取R2if(adcen)regval|=3<<0;//R2最低2个位设置为1,开启ADCR&ADCLelse regval&=~(3<<0);//R2最低2个位清零,封闭ADCR&ADCL.WM8978_Write_Reg(2,regval);//设置R2}//WM8978 输入通道设置装备摆设//micen:MIC开启(1)/封闭(0)//lineinen:Line In开启(1)/封闭(0)//auxen:aux开启(1)/封闭(0)void WM8978_Input_Cfg(u8 micen,u8 lineinen,u8 auxen){u16 regval;regval=WM8978_Read_Reg(2);//读取R2if(micen)regval|=3<<2;//开启INPPGAENR,INPPGAENL(MIC的PGA放大)else regval&=~(3<<2);//封闭INPPGAENR,INPPGAENL.WM8978_Write_Reg(2,regval);//设置R2regval=WM8978_Read_Reg(44);//读取R44if(micen)regval|=3<<4|3<<0;//开启LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA. else regval&=~(3<<4|3<<0);//封闭LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA. WM8978_Write_Reg(44,regval);//设置R44if(lineinen)WM8978_LINEIN_Gain(5);//LINE IN 0dB增益else WM8978_LINEIN_Gain(0);//封闭LINE INif(auxen)WM8978_AUX_Gain(7);//AUX 6dB增益else WM8978_AUX_Gain(0);//封闭AUX输入}//WM8978 输出设置装备摆设//dacen:DAC输出(放音)开启(1)/封闭(0)//bpsen:Bypass输出(灌音,包含MIC,LINE IN,AUX等)开启(1)/封闭(0) void WM8978_Output_Cfg(u8 dacen,u8 bpsen){u16 regval=0;if(dacen)regval|=1<<0;//DAC输出使能if(bpsen){regval|=1<<1;//BYPASS使能regval|=5<<2;//0dB增益}WM8978_Write_Reg(50,regval);//R50设置WM8978_Write_Reg(51,regval);//R51设置}//WM8978 MIC增益设置(不包含BOOST的20dB,MIC-->ADC输入部分的增益)void WM8978_MIC_Gain(u8 gain){gain&=0X3F;WM8978_Write_Reg(45,gain);//R45,左通道PGA设置WM8978_Write_Reg(46,gain|1<<8);//R46,右通道PGA设置}//WM8978 L2/R2(也就是Line In)增益设置(L2/R2-->ADC输入部分的增益)//gain:0~7,0暗示通道制止,1~7,对应-12dB~6dB,3dB/Stepvoid WM8978_LINEIN_Gain(u8 gain){u16 regval;gain&=0X07;regval=WM8978_Read_Reg(47);//读取R47regval&=~(7<<4);//消除本来的设置WM8978_Write_Reg(47,regval|gain<<4);//设置R47regval=WM8978_Read_Reg(48);//读取R48regval&=~(7<<4);//消除本来的设置WM8978_Write_Reg(48,regval|gain<<4);//设置R48}//WM8978 AUXR,AUXL(PWM音频部分)增益设置(AUXR/L-->ADC输入部分的增益) //gain:0~7,0暗示通道制止,1~7,对应-12dB~6dB,3dB/Stepvoid WM8978_AUX_Gain(u8 gain){u16 regval;gain&=0X07;regval=WM8978_Read_Reg(47);//读取R47regval&=~(7<<0);//消除本来的设置WM8978_Write_Reg(47,regval|gain<<0);//设置R47regval=WM8978_Read_Reg(48);//读取R48regval&=~(7<<0);//消除本来的设置WM8978_Write_Reg(48,regval|gain<<0);//设置R48}//设置I2S工作模式//fmt:0,LSB(右对齐);1,MSB(左对齐);2,飞利浦尺度I2S;3,PCM/DSP;//len:0,16位;1,20位;2,24位;3,32位;void WM8978_I2S_Cfg(u8 fmt,u8 len){fmt&=0X03;len&=0X03;//限制规模WM8978_Write_Reg(4,(fmt<<3)|(len<<5));//R4,WM8978工作模式设置}//设置耳机阁下声道音量//voll:左声道音量(0~63)//volr:右声道音量(0~63)void WM8978_HPvol_Set(u8 voll,u8 volr){voll&=0X3F;volr&=0X3F;//限制规模if(voll==0)voll|=1<<6;//音量为0时,直接muteif(volr==0)volr|=1<<6;//音量为0时,直接muteWM8978_Write_Reg(52,voll);//R52,耳机左声道音量设置WM8978_Write_Reg(53,volr|(1<<8));//R53,耳机右声道音量设置,同步更新(HPVU=1) }//设置喇叭音量//voll:左声道音量(0~63)void WM8978_SPKvol_Set(u8 volx){volx&=0X3F;//限制规模if(volx==0)volx|=1<<6;//音量为0时,直接muteWM8978_Write_Reg(54,volx);//R54,喇叭左声道音量设置WM8978_Write_Reg(55,volx|(1<<8));//R55,喇叭右声道音量设置,同步更新(SPKVU=1) }//设置3D围绕声//depth:0~15(3D强度,0最弱,15最强)void WM8978_3D_Set(u8 depth){depth&=0XF;//限制规模WM8978_Write_Reg(41,depth);//R41,3D围绕设置}//设置EQ/3D感化偏向//dir:0,在ADC起感化// 1,在DAC起感化(默认)void WM8978_EQ_3D_Dir(u8 dir){u16 regval;regval=WM8978_Read_Reg(0X12);if(dir)regval|=1<<8;else regval&=~(1<<8);WM8978_Write_Reg(18,regval);//R18,EQ1的第9位控制EQ/3D偏向}//设置EQ1//cfreq:截止频率,0~3,分离对应:80/105/135/175Hz//gain:增益,0~24,对应-12~+12dBvoid WM8978_EQ1_Set(u8 cfreq,u8 gain){u16 regval;cfreq&=0X3;//限制规模if(gain>24)gain=24;gain=24-gain;regval=WM8978_Read_Reg(18);regval&=0X100;regval|=cfreq<<5;//设置截止频率regval|=gain;//设置增益WM8978_Write_Reg(18,regval);//R18,EQ1设置}//设置EQ2//cfreq:中间频率,0~3,分离对应:230/300/385/500Hz //gain:增益,0~24,对应-12~+12dBvoid WM8978_EQ2_Set(u8 cfreq,u8 gain){u16 regval=0;cfreq&=0X3;//限制规模if(gain>24)gain=24;gain=24-gain;regval|=cfreq<<5;//设置截止频率regval|=gain;//设置增益WM8978_Write_Reg(19,regval);//R19,EQ2设置}//设置EQ3//cfreq:中间频率,0~3,分离对应:650/850/1100/1400Hz //gain:增益,0~24,对应-12~+12dBvoid WM8978_EQ3_Set(u8 cfreq,u8 gain){u16 regval=0;cfreq&=0X3;//限制规模if(gain>24)gain=24;gain=24-gain;regval|=cfreq<<5;//设置截止频率regval|=gain;//设置增益WM8978_Write_Reg(20,regval);//R20,EQ3设置}//设置EQ4//cfreq:中间频率,0~3,分离对应:1800/2400/3200/4100Hz //gain:增益,0~24,对应-12~+12dBvoid WM8978_EQ4_Set(u8 cfreq,u8 gain){u16 regval=0;cfreq&=0X3;//限制规模if(gain>24)gain=24;gain=24-gain;regval|=cfreq<<5;//设置截止频率regval|=gain;//设置增益WM8978_Write_Reg(21,regval);//R21,EQ4设置}//设置EQ5//cfreq:中间频率,0~3,分离对应:5300/6900/9000/11700Hz //gain:增益,0~24,对应-12~+12dBvoid WM8978_EQ5_Set(u8 cfreq,u8 gain){u16 regval=0;cfreq&=0X3;//限制规模if(gain>24)gain=24;gain=24-gain;regval|=cfreq<<5;//设置截止频率regval|=gain;//设置增益WM8978_Write_Reg(22,regval);//R22,EQ5设置}#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "lcd.h"#include "key.h"#include "usmart.h"#include "malloc.h"#include "w25qxx.h"#include "sdio_sdcard.h"#include "ff.h"#include "exfuns.h"#include "fontupd.h"#include "text.h"#include "wm8978.h"#include "audioplay.h"//ALIENTEK 摸索者STM32F407开辟板试验43//音乐播放器试验 -库函数版本//广州市星翼电子科技有限公司//作者:正点原子 @ALIENTEKint main(void){delay_init(168);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置体系中止优先级分组2 //初始化延时函数uart_init(115200);//初始化串口波特率为115200LED_Init();//初始化LEDusmart_dev.init(84);//初始化USMARTLCD_Init();//LCD初始化KEY_Init();//按键初始化W25QXX_Init();//初始化W25Q128WM8978_Init();//初始化WM8978WM8978_HPvol_Set(40,40);//耳机音量设置WM8978_SPKvol_Set(60);//喇叭音量设置my_mem_init(SRAMIN);//初始化内部内存池my_mem_init(SRAMCCM);//初始化CCM内存池exfuns_init();//为fatfs相干变量申请内存f_mount(fs[0],"0:",1); //挂载SD卡POINT_COLOR=BLACK;while(font_init()) //检讨字库{LCD_ShowString(30,50,200,16,16,"Font Error!");delay_ms(200);LCD_Fill(30,50,240,66,WHITE);//消除显示delay_ms(200);}POINT_COLOR=BLACK;Show_Str(60,50,200,16,"Explorer STM32F4开辟板",16,0);。
基于android音乐播放器的毕业设计ppt
布局方式 引用的资源等 Android系统将插件ADT集成到了Eclipse工具上,因此,一个
•
super(context, DATABASE_NAME, null, VERSION);
•
}
•
•
public void onCreate(SQLiteDatabase db) {
•
try {
•
•
} catch (Exception e) {
•
•
}
}
•
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
库类为DataBase extends SQLiteOpenHelper(继承关系
)。
3.2.1 创建数据库
•
public class DataBase extends SQLiteOpenHelper {
•
/* 构造方法,创建数据库和表 */
•
public DataBase(Context context) {
2.1 功能需求(用例图分析)
• 2.1 功能需求(用例图分析) • 根据项目的目标,我们可获得项目系统的基本需求,以
下从不同角度来描述系统的需求,并且使用用例图来描述 ,系统的功能需求,我们分成四部分来概括,即 • 播放器的基本控制需要,播放列表管理需求,播放器友好 性需求和播放器扩展卡需求。以下分别描述:
智能音乐播放器课程设计
智能音乐播放器课程设计一、课程目标知识目标:1. 让学生了解智能音乐播放器的基本原理,掌握其硬件组成和软件编程的基础知识。
2. 使学生掌握音乐播放器中音阶、音色、节奏等音乐元素的相关概念及其在编程中的应用。
3. 帮助学生理解智能音乐播放器与其他电子设备的连接与互动方式。
技能目标:1. 培养学生运用所学的编程知识,设计并实现简单的音乐播放功能。
2. 提高学生动手实践能力,能够独立完成智能音乐播放器的组装和调试。
3. 培养学生团队协作和沟通能力,能够在小组合作中发挥各自优势,共同完成项目任务。
情感态度价值观目标:1. 培养学生对智能硬件设备和编程的兴趣,激发创新意识和探索精神。
2. 引导学生关注音乐艺术与科技结合的前沿动态,提高审美素养。
3. 培养学生珍惜团队合作成果,树立正确的价值观和责任感。
本课程针对的学生特点是具有一定电子知识和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
课程性质为实践性、综合性、创新性,旨在通过项目式教学,让学生在动手实践中掌握知识,提高技能,培养情感态度价值观。
教学要求注重理论与实践相结合,鼓励学生创新思维,关注实际应用。
通过本课程的学习,学生将能够具备设计简单智能音乐播放器的能力,为后续相关课程打下坚实基础。
二、教学内容1. 理论知识:- 硬件组成:介绍智能音乐播放器的核心元件,如微控制器、音频解码器、存储器等。
- 软件编程:讲解编程语言基础,如C语言或Python,以及音乐编程的相关库和函数。
- 音乐元素:阐述音阶、音色、节奏等基本音乐概念及其在编程中的应用。
2. 实践操作:- 组装与调试:指导学生进行智能音乐播放器的组装,学习调试方法和技巧。
- 编程实践:通过编写程序,实现音乐播放、音量调节、曲目选择等功能。
- 项目制作:以小组形式,设计并完成一个具有创意的智能音乐播放器项目。
3. 教学大纲:- 第一周:智能音乐播放器硬件组成及功能介绍。
- 第二周:编程语言基础及音乐编程相关库的学习。
QQ音乐PPT课件
针对特定用户群体推出定制化服务,如学生、白 领等,满足不同用户需求。
3
跨界合作
与其他产业领域合作,如电影、游戏、时尚等, 共同打造多元化内容生态。
合作机会
音乐人合作
与国内外知名音乐人建 立合作关系,引进优质 音乐资源,丰富平台内 容。
品牌合作
与其他品牌进行跨界合 作,共同举办活动、推 出联名产品等,提升品 牌影响力。
广告收入
广告投放
qq音乐会在非付费会员收听页面和部分免费歌曲播放页面展示 广告,从而获得广告收入。
广告主的选择
广告主可以根据自身需求选择在qq音乐平台上投放广告,以扩 大品牌知名度和销售量。
广告收入的增长
随着qq音乐用户数量的增加和广告主对音乐平台的认可,广告 收入也在逐年增长。
版权费用
版权保护
qq音乐ppt课件
THE FIRST LESSON OF THE SCHOOL YEAR
目录CONTENTS
• 引言 • qq音乐的功能特性 • qq音乐的用户体验 • qq音乐的商业模式和盈利方式 • qq音乐的未来展望
01
引言
目的和背景
介绍qq音乐的发展 历程和现状,以及其 在音乐市场中的地位 和影响力。
行业合作
与音乐产业链上下游企 业合作,如唱片公司、 演出机构等,共同推动 音乐产业发展。
介绍qq音乐的商业模式和盈利模式,以及其在数字音乐市场中的竞争力和盈利能力 。
01
qq音乐的功能特 性
音乐库
01
02
03
曲目数量
qq音乐的曲目数量庞大, 涵盖了国内外各种类型的 音乐,满足不同用户的需 求。
高品质音乐
qq音乐提供了高品质的音 乐,用户可以选择不同的 音质进行播放,如无损音 质等。
音乐播放器课程设计报告
目录一、设计任务要求 ................................................................................................ - 2 -1、课程设计题目 ............................................................................................. - 2 -2、工程设计总述 ............................................................................................. - 4 -二、选择器件 .......................................................................................................... - 4 -三、功能模块 .......................................................................................................... - 4 -1.分频器(div) ............................................................................................... - 4 -2、计数器(notetabs)................................................................................... - 6 -3、选择模块(choice)................................................................................... - 7 -4、数据翻译模块(tontaba): ...................................................................... - 9 -5、译码器模块(deled) .............................................................................. - 10 -6、数控分频器模块(speakera)................................................................ - 14 -7、乐谱数据ROM(四个模块)................................................................. - 15 -四、总体设计电路图 ............................................................................................ - 21 -1、顶层设计的电路原理图 ........................................................................... - 21 -2、顶层设计的仿真结果: ........................................................................... - 22 -3、电路的顶层文件管脚分配图 ................................................................... - 22 -五、心得体会 ........................................................................................................ - 22 -音乐播放器课程设计一、设计任务要求1、课程设计题目设计一个乐曲演奏电路,能够自动播放2首音乐。
关于大学生音乐播放器应用下载情况调查.ppt
选择认数, 91市 场, 9, 9%
选择认数, 360手机助手, 25, 25%
选择认数, 金山手机助手, 5, 5%
安卓市场 360手机助手 金山手机助手 91市场 门户网站,官方网站 手机自带下载应用
选择认数, 一个月, 10,
10%
选择认数, 一年以上, 44, 44%
选择认数, 半年, 29, 29%
调查主题:大学生智能手机常用软件
调查对象:计算机工程系2012、2013级 调查人数:100人,各专业抽样调查几人十
几人不等。
常用的音乐播放软件 选择该款软件的原因 下载该软件的途径 您使用该软件时长 是否定时更新该软件 如果更新,则更新的原因是
选择认数, 系统自带, 10, 7% 选择认数, 千千动听, 7, 5%
选择认数, 酷我音乐, 9, 7% 选择认数, 多米音乐, 6, 5%
选择认数, 其他, 1, 1%
选择认数, QQ音乐, 26, 19%
选择认数, 天天 动听, 35, 26%
选择认数, 酷狗 音乐, 41, 30%
QQ音乐 酷狗音乐 天天动听 多米音乐 酷我音乐 千千动听 系统自带 其他
选择认数, 无广告 插件, 14, 10%
选择认数, 一年, 17, 17%
一个月 半年 一年 一年以上
选择人数
选择认数, 否, 32, 36% 是 否
选择认数, 是, 56, 64%
选择人数
希望有更多功能 可以省流量更新 顺应软件发展 自动更新
综合以上的问题,我们得到的结论是,在音 乐播放器这块市场,用户用的更多的都是那 些比较熟知的产品,评价比较高,方便的音 乐播放软件。
选择认数, 乐库强大, 26, 19%
自动播放音乐ppt
张学友
歌曲名:《祝福》 歌手:张学友 作曲:郭子 填词:丁晓雯 编曲:张学友
祝福-张学友
不要问 不要说 一切尽在不言中 这一刻 围这烛光 让我们静静的渡过
祝福-张学友
莫挥手 莫回头 当我唱起这首歌 伴你走过 每一个春夏秋冬
祝福-张学友
祝福-张学友 祝福-张学友
不要问 不要说 一切尽在不言中 这一刻 偎著烛光 让我们静静的渡过
祝福-张学友
莫挥手
莫回头
当我唱起这首 歌
祝福-张学友 祝福-张学友
每 个 春 夏 秋 冬
陪 你 度 过
愿 心 中 绕 着 笑 容
祝福-张学友
朋友 我永远祝福你!
有 若 缘 有 就 缘 能 期 待 明 天
祝福-张学友
伤离别 离别虽然在眼前 说再见 再见不会太遥远
祝福-张学友
重 你 逢 和 在 我 灿 烂 的 季 节
有 若 缘 有 就 缘 能 期 待 明 天
祝福-张学友
伤离别 离别虽然在眼前 说再见
再见不会太遥远
祝福-张学友 祝福-张学友
若有缘 有缘就能期待明天 你和我 重逢在灿烂的季节
几许愁 几许忧 人生难免苦与痛 失去过 才能真正懂得 去珍惜和拥有
祝福-张学友
情难舍 人难留 今朝一别各西东 冷和热 点点滴滴在心头
祝福-张学友
愿心中 永远留著 我的笑容 伴你走过 每一个春夏秋冬
祝福-张学友
伤离别 离别虽然在眼前 说再见
再见不会太遥远
祝福-张学友
重 你 逢 和 在 我 灿 烂 的 季 节
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
音频模块
VS 10 3
各信号线 与S TM32 连接关系
一
VS 10 3各信号线与S TM32连接关系
二
读时序
三
写时序
h
5
ห้องสมุดไป่ตู้ h
‹#›
h
‹#›
h
‹#›
文件系统
一
文件系统简介
文件 系统
二
文件系统的读取操作
h
9
h
‹#›
h
‹#›
2
系统软件设计
h
12
软件设计总流程路
软件设计上主要包括2部分:底层驱动的设计和各功能模块的设计
目标
本设计采用STM32F103ZET6作为微控制器、 VS1003音频作为解码模块、SD卡作为文 件存储模块,实现以下的功能:
MP3文件播放功能
h
2
1
硬件电路模块
分析各个模块的原理以及电路的设计
h
3
系统的总体构架路
整个系统主要由微控制器、音频解码部分、SD卡部分、按键部分、电源部分、程序口
下载部分组成,整个系统由MCU控制,各h个部分协调运作。
h
13
系统软件设计
一
底层驱动程序设计
系统软件 设计
二
功能模块的设计
h
14
系统软件设计
一
显示驱动程序设计
底层驱动 程序设计
二
卡读取驱动
三
VS 10 3驱动设计
h
15
显示驱动程序设计
驱动包含基于FSMC接口的16位TFT接口初始化、LCD的控制器的初始化、屏幕坐标的建立、窗
口的建立、指定坐标画点及其颜色的设置、ASCII字符的写入、字符颜色的控制、控制器寄存
PPT素材:/sucai/ PPT图表:/tubiao/ PPT教程: /powerpoint/ 范文下载:/fanwen/ 教案下载:/jiaoan/ PPT课件:/kejian/ 数学课件:/kejian/shu xue/ 美术课件:/kejian/me ishu/ 物理课件:/kejian/wul i/ 生物课件:/kejian/she ngwu/ 历史课件:/kejian/lish i/
音乐播放器
h
1
设计目标
PPT模板:/moban/ PPT背景:/beijing/ PPT下载:/xiazai/ 资料下载:/ziliao/ 试卷下载:/shiti/ PPT论坛: 语文课件:/kejian/yuw en/ 英语课件:/kejian/ying yu/ 科学课件:/kejian/kexu e/ 化学课件:/kejian/huaxue/ 地理课件:/kejian/dili/
器的读取、显示字符串
h
16
h
‹#›
h
‹#›
h
‹#›
音 乐 播 放 功 能 的 实 现 流 程
h
20
3
实验进程
h
21
实验进展
资源整合
软硬件匹配调试
整体构建
寻找所需要的资料, 查看数据手册,学 习各个模块构建等等
音乐播放器整体框架 搭建,设计方案确定
软件程序
根据整体构架和所掌 握的资源分别对不同 模块进行程序编写,
最后整合在一起
h
* 22
音乐播放器
谢谢您的观看
h
23