` 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主程序,并进行语句添加。 添加其内容如下:
- void main(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[i]);
- }
- }
- }
复制代码
经程序的编译及下载,其测试的效果如图7所示。
图7 KEY控制指令发送
在连接MP3播放模块后,其运行效果如图8所示,播放效果良好。 若连接OLED屏,这可以显示出播放的歌曲名称,是不是小芯片依然也可以有作为! 图8 KEY控制MP3播放
`
|