三步做自己的mp3
大学生电子制作店: 努力给你最好的,有我你更强!
下载 (65.13 KB)
11 分钟前
一.准备工作
有空闲的mc9s12xs的系统板,弄了个vs1053搞搞mp3听听音乐,同时验证我们的文件系统、透明串口是否成熟。结果vs1053表现比较令人满意,和市场上中上价位的mp3比较丝毫不逊色。相信当你听到音乐的时候会露出满意的笑容。
1.硬件
l一个mc9s12或者mc9s12xs的最小系统板。
lBdm一个。
l一个vs1003或者vs1053。
lSd卡一张任意容量。(或者使用透明串口也可。详情看店内宝贝)
l导线7根。(如果使用店内宝贝,导线也可省。)
上面全了就可以开始我们自制mp3的旅程了!
2.软件
我们提供的有
l一个mp3完整实例,硬件平台为dg128或这xs128(稳定)
l基于avr8的一个完整mp3播放器实例(不稳定)
l其它mcu
3.文档
一个是vs1003,vs1053的数据手册,一个是vs10xx的应用笔记

对于mc9s12dg128来说总共需要7根线。/*********************************************************8
i/0 name
pa0 xres 输出 1复位信号
pa1 dreq输入0数据请求信号
pa2xdcs输出1数据片选
pa3xcs输出1片选
ptm5sck输出1时钟信号
ptm2miso输入0串行数据输入
ptm4mosi输出1串行数据输出
**********************************************************/
1 微处理器的正确初始化
请注意将 dreg配置为通用io的输入口,miso为spi总线的输入口。其它均为输出。
void SPI_Init(void)
{
//片选的信号
PORTA|=0X0D;// derq为输入0 ,其它为输出//硬件spi的初始化
MODRR =0;
MODRR_MODRR4=1; //使用PM口
DDRM|=0x38; //SCK0=1,MOSI=1,SS0=1
SPI0CR1 = 0x5e; //CPOL=1,CPHA=1
SPI0CR2 = 0x10;
SPI0BR = 0x37; // 80M / 256 = 312.5k
}
基于mc9sdg128的播放mp3代码实例。如果有文件系统就是这么简单!
void PlayMusic(char* filename)
{
uint16 j,jp; //循环变量 //loop variable
unsigned int count;
Mp3Reset();
res = f_open(&file, filename, FA_OPEN_EXISTING|FA_READ); //打开文件的读写
VS1003B_XDCS_L(); //数据片选
for(;;) //
{
PORTB_LED0_ON(); //指示灯亮
f_read(&file,buffer1,512*4,&br); //读取mp3音乐数据
PORTB_LED0_OFF();// 指示灯灭
count=0;
<div align="left"><b><span style="font-size: 9pt; color: navy"> while(count
|