本帖最后由 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播放模块连接
|