我是靠谱客的博主 含糊鸭子,最近开发中收集的这篇文章主要介绍DY-SV17F语音播放模块应用篇二 【UART 串口模式】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

UART 串口模式 是采用波特率为 9600 的全双工串口通信。
  1. 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制。
  2. 从机不会主动发起通信,所有通信都是由主机发起。
串口模式接线图:

使用串口可以存放65535首曲目(需要注意模块只有4m内存),通过通信指令可以实现多种模式播放,具体如下:

控制指令 :

设置指令 :

查询指令

      指令太多,就不全部介绍了,本文只使用指定播放功能:

 

 AA 07 02 前三位固定的,不用管;

后三位分别是 曲目高8位 曲目低8位 SM

                    其中高8位和低8位刚好组成16进制,如0xFFFF刚好对应65535。

                    SM和检验,代表前面几个数据的和。

介绍完毕(细节操作过程请看第一章)

代码部分:

#include <REGX52.H>

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博客

最后

以上就是含糊鸭子为你收集整理的DY-SV17F语音播放模块应用篇二 【UART 串口模式】的全部内容,希望文章能够帮你解决DY-SV17F语音播放模块应用篇二 【UART 串口模式】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部