本帖最后由 jinglixixi 于 2020-11-19 08:44 编辑
PIC16F15324开发板是一款小巧的开发板,它板载了LED和KEY 等基本测试单元,可以完成简单的学习和测试目标。
在此基础上通过添加外围器件,可实现一个中文歌单的MP3音乐播放器,其整体构成见图1所示。
图1 整体构成
2) 提取字模及歌曲选择
借助开发板上的按键,可实现播放歌曲的选择。
3)串行通信及应用
PIC16F15324开发板是一款小巧的开发板,它板载了LED和KEY 等基本测试单元,可以完成简单的学习和测试目标。
在此基础上通过添加外围器件,可实现一个中文歌单的MP3音乐播放器,其整体构成见图1所示。
图1 整体构成
1. 引脚配置
PIC16F15324对于开发工具的限定,这里是使用MPLABX IDE v5.45为开发工具,并添加MCC进行引脚功能的配置,其引脚配置情况如图2所示。
其中,PA0连接OLED屏的数据引脚,PA1连接OLED屏的时钟引脚;PC4连接MP3播放模块的串口接收引脚;PA5连接按键引脚;PC1作为备用引脚,以便调节音量。
图2 引脚功能配置
1. 功能程序设计
1) 显示程序设计
为了驱动OLED屏,对引脚输出高低电平的定义语句为:
#define OLED_SCLK_Set() SCL_SetHigh()
#define OLED_SCLK_Clr() SCL_SetLow()
#define OLED_SDIN_Set() SDA_SetHigh()
#define OLED_SDIN_Clr() SDA_SetLow()
相应的OLED屏初始化函数为:
2) 提取字模及歌曲选择
为了实现图3所示的歌曲选择界面,将所用到的汉字字模用字模提取工具提取出来,并构建了小字库。
图3 选择界面
图4 提取字模
汉字的显示函数为:
借助开发板上的按键,可实现播放歌曲的选择。
实现歌曲选择的程序如下:
3)串行通信及应用
由于MP3播放模块是支持串口控制的,故这里用串口的发送功能来发送控制指令,其引脚排列如图5所示。
图5 引脚排列
为便于指令的方式,特将指令存放到数组中,其内容如下:
unsigned charcmd3[10] = {0X7E, 0xFF, 0x06, 0X03, 0x00, 0x00, 0x01, 0xFE, 0xF7, 0XEF};//*play index
unsigned charcmd6[10] = {0X7E, 0xFF, 0x06, 0X06, 0x00, 0x00, 0x10, 0xFE, 0xE5, 0XEF};//*set Volume
此外,播放指定乐曲的指令为:
playn(num);
for(i=0;i<10;i++)
{
EUSART1_Write(cmd3);
}
调整音量的指令为:
setVolume(18);
for(i=0;i<10;i++)
{
EUSART1_Write(cmd6);
}
1. 功能测试
在对各环节组装前,对各项功能进行测试是十分必要。
以开发板控制MP3模块播放时,其效果如图6所示。
图6 播放控制
完成连接后的,其运行的初始界面和播放界面分别如图7和图8所示。
此外,我们还进行一项T卡测试,如果仔细观察就会发现,在MP3播放模块上所用的T卡而不是TF卡。经实际测试,效果一样良好。
图7 初始界面
图8 播放界面