找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3176|回复: 1
打印 上一主题 下一主题
收起左侧

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播放

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表