标题: PIC16F15324开发板串行通讯及MP3播放 [打印本页]
作者: jinglixixi 时间: 2020-9-27 10:23
标题: PIC16F15324开发板串行通讯及MP3播放
本帖最后由 jinglixixi 于 2020-9-28 00:02 编辑
PIC16F15324配有2个UART,即:EUSART1和EUSART2。
要实现串行通讯功能也十分简单,当然首先要做的就是配置好引脚,具体的方法是:
1)打开MCC,然后在图1所示的设备资源窗口选取EUSART1或EUSART2。
若选取EUSART1,则会看到它被分配到引脚RC4和RC5上,其中RC4为TX1,而RC5为RX1;若选取EUSART2则会被分配到引脚RC0和RC1上,其中RC1为RX2,而RC0为TX2。
图1设备资源窗口
我们这里选EUSART1,则引脚配置如图2所示。
图2 EUSART1引脚配置
2)点击
按键,以生成代码框架。 3)切换至项目窗口,并打开main.c主程序,并进行语句添加。
添加其内容如下:
voidmain(void)
{
volatile uint8_t rxData;
// initialize the device
SYSTEM_Initialize();
while (1)
{
// Add your application code
if(EUSART1_is_rx_ready())
{
//rxData = UART1_Read();
rxData = EUSART1_Read();
if(EUSART1_is_tx_ready())
{
EUSART1_Write(rxData);
}
}
}
}
经程序的编译和下载,在连接USB转串口模块的情况下,其运行效果如图3所示,即发送的内容会原样返回。
图3 运行效果
实现了串行收发功能后,我们可以用它来做些什么呢?
对于PIC16F15324这样小规模的芯片,要想实现音乐播放功能基本是不可能的。但这不妨碍我们让它与相应的功能模块进行组合。
为此我们选定的目标是MP3音乐播放模块,其引脚配置如图4所示。
图4模块引脚排列
该模块在串行指令的控制下,可实现相应播放控制功能,如:播放上一首、下一首、播放、暂停、指定播放及音量调节等。
在充分利用板上资源的情况下,我们用板上的按键S2来选择播放的歌曲,以EUSART1的TX1来发送控制指令。
按键S2的参见图5所示,添加按键后的引脚配置见图6所示。
图5按键原理图
图6 引脚配置
配合按键S2的播放语句播放下一首,为使用的的方面,特将它存放到数组中,其内容如下:
uint8_t cmd1[]= {0X7E, 0xFF, 0x06, 0X01, 00, 00, 00, 0xFE, 0xFA, 0XEF}; //next
实现播放控制的构建程序为:
//KEY控制MP3播放
while (1)
{
if(key_GetValue()==0)
{
while(key_GetValue()==0);
for(i=0;i<10;i++)
{
EUSART1_Write(cmd1);
}
}
}
经程序的编译及下载,其测试的效果如图7所示。
图7 KEY控制指令发送
在连接MP3播放模块后,其运行效果如图8所示,播放效果良好。
若连接OLED屏,这可以显示出播放的歌曲名称,是不是小芯片依然也可以有作为!
图8 KEY控制MP3播放
作者: shiyewei 时间: 2021-5-31 20:38
你好,请问有没有关于pic16f15324的中文版的数据手册或是其他可供学习的资料?
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |