本帖最后由 jinglixixi 于 2021-1-4 15:30 编辑
1. 串行通讯 PIC16F15244具有串行通讯功能,其实现的方法如下: 1)使用MCC,将RC0配置TX1以便发送数据; 2)将RC2设置为输入引脚,以备后续之用,其形式如图1所示; 图1 引脚配置 3)按图2所示对引脚进行重新命名; 图2 引脚重命名 4)按图3所示来设置通讯参数; 图3 设置中断相应 5)按图4所示来设置通讯参数; 图4通讯参数设置 6)按图5所示设置系统时钟; 图5 设置系统时钟 7)按按钮,以生成程序框架; 8)按下面的内容来修改函数; - void IOCCF2_DefaultInterruptHandler(void)
- // Default interrupt handler for IOCCF2
- {
- printf("Button pressed! \r\n");
- }
9)编译并下载程序,则程序的运行效果如图7所示。 图6 通讯串口连接
图7 运行效果
2. 通讯应用 有了前面的基础,稍加修改即可用来控制支持通讯指令的MP3播放模块,其实现的方法如下: 1)在pin_manager.c程序内添加指令数组及变量定义; uint8_t j=0; uint8_tcmd3[10] = {0X7E, 0xFF, 0x06, 0X03, 0x00, 0x00, 0x01, 0xFE, 0xF7, 0XEF}; uint8_t cmd6[10]= {0X7E, 0xFF, 0x06, 0X06, 0x00, 0x00, 0x10, 0xFE, 0xE5, 0XEF}; 2)添加相应的辅助函数: voidplayn(uint16_t index) voidsetVolume(uint8_t index) 3)按下面的内容来修改函数; - void IOCCF2_DefaultInterruptHandler(void) // Default interrupt handler for IOCCF2
- {
- uint8_t i;
- if(j==0)
- {
- setVolume(18);
- for(i=0;i<10;i++)
- {
- EUSART1_Write(cmd6[i]);
- }
- j=1;
- }
- playn(j);
- for(i=0;i<10;i++)
- {
- EUSART1_Write(cmd3[i]);
- }
- if(j<6) j++;
- else j=1;
- }
4)编译并下载程序,则程序的运行效果如图8所示;
图8 运行效果 5)按图9所示来连接MP3播放模块,则按下开发板上按键时就循序地切换播放乐曲。
图9 MP3播放模块连接
|