DY-SV17F语音播放模块应用篇二 【UART 串口模式】
UART 串口模式 是采用波特率为 9600 的全双工串口通信。
- 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制。
- 从机不会主动发起通信,所有通信都是由主机发起。
串口模式接线图:
使用串口可以存放65535首曲目(需要注意模块只有4m内存),通过通信指令可以实现多种模式播放,具体如下:
控制指令 :
设置指令 :
查询指令 :
【
指令太多,就不全部介绍了,本文只使用指定播放功能:
AA 07 02 这前三位是固定的,不用管;
后三位分别是 曲目高8位 曲目低8位 SM。
其中高8位和低8位刚好组成16进制,如0xFFFF刚好对应65535。
SM是和检验,代表前面几个数据的和。
】
介绍完毕(细节操作过程请看第一章)
代码部分:
#include typedef unsigned char u8;u8 Music_Cmd_Appoint[] = {0xAA,0x07,0x02,0x00,0x00,0x00};//播放指定曲目初始化数组 //AA 07 02 曲目高8位 曲目低8位 SM(和检验,前面所有字节之和)void UartInit(void)//9600波特率 @11.0592MHz{PCON &= 0x7F;//波特率不倍速SCON = 0x50;//8位数据,可变波特率TMOD &= 0x0F;//设置定时器模式TMOD |= 0x20;//设置定时器模式TL1 = 0xFD;//设置定时初始值TH1 = 0xFD;//设置定时重载值ET1 = 0;//禁止定时器%d中断TR1 = 1;//定时器1开始计时}void UartSendByte(u8 C)//串口数据发送{ SBUF = C; while(!TI);//等待发送完成 TI = 0;//软件置0}/* 说明:播放指定曲目 参数1:数组 参数2:播放第x首曲目*/void USART_MUSIC(u8 *mdate, u8 num) {u8 i;mdate[4] = num;//写入播放曲目mdate[5] = 0;for(i=0; i<5; i++)//SM 把前面 数组0~4 总共5个数加起来{mdate[5] += mdate[i];}for(i=0; i<6; i++)//把修改后的曲目发送出去(每次发送一个数据,分6次发送完){UartSendByte(mdate[i]);}}void main()//主程序{UartInit();//串口初始化USART_MUSIC(Music_Cmd_Appoint, 2);//指定播放第二首while(1){}}
//完。
相关资料:
DY-SV17F语音播放模块应用篇一 【IO独立模式】_啊维的博客-CSDN博客