Mini MP3 Player播放器简介与STC12例程

这篇具有很好参考价值的文章主要介绍了Mini MP3 Player播放器简介与STC12例程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、DFRobot arduino DFPlayer官方资料

1-1、简介

The DFPlayer Mini MP3 Player For Arduino is a small and low price MP3 module with an simplified output directly to the speaker. The module can be used as a stand alone module with attached battery, speaker and push buttons or used in combination with an Arduino UNO or any other with RX/TX capabilities.

简介
DFPlayer迷你MP3播放器Arduino是一个小而便宜的MP3模块,简化输出直接到扬声器。该模块可以作为独立模块使用,附带电池、扬声器和按钮,也可以与Arduino UNO或任何其他具有RX/TX功能的模块结合使用。

Mini MP3 Player播放器简介与STC12例程
图1-1-1:开源Mini MP3 Player播放器

2-2、 基本功能详述

  • supported sampling rates (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
  • 24 -bit DAC output, support for dynamic range 90dB , SNR support 85dB
  • fully supports FAT16 , FAT32 file system, maximum support 32G of the TF card, support 32G of U disk, 64M bytes NORFLASH
  • a variety of control modes, I/O control mode, serial mode, AD button control mode
  • advertising sound waiting function, the music can be suspended. when advertising is over in the music continue to play
  • audio data sorted by folder, supports up to 100 folders, every folder can hold up to 255 songs
  • 30 level adjustable volume, 6 -level EQ adjustable

基本功能详述

  • 支持采样率(kHz): 8/11.025/12/16/22.05/24/32/44.1/48

  • 24位DAC输出,支持动态范围90dB,信噪比支持85dB

  • 完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘,64M字节的NORFLASH

  • 多种控制方式,I/O控制方式,串行控制方式,AD按钮控制方式

  • 广告声音等待功能,音乐可以暂停播放。当广告结束时,音乐继续播放

  • 音频数据按文件夹排序,最多支持100个文件夹,每个文件夹最多可存放255首歌曲

  • 30级音量可调,6级EQ可调

1-3、 用途

  • Car navigation voice broadcast;
  • Road transport inspectors, toll stations voice prompts;
  • Railway station, bus safety inspection voice prompts;
  • Electricity, communications, financial business hall voice prompts;
  • Vehicle into and out of the channel verify that the voice prompts;
  • The public security border control channel voice prompts;
  • Multi-channel voice alarm or equipment operating guide voice;
  • The electric tourist car safe driving voice notices;
  • Electromechanical equipment failure alarm;
  • Fire alarm voice prompts;
  • The automatic broadcast equipment, regular broadcast.

用途

  • 汽车导航语音广播;

  • 道路运输巡视员、收费站语音提示;

  • 火车站、公交安全检查语音提示;

  • 电力、通信、金融营业厅语音提示;

  • 车辆进出通道验证,语音提示;

  • 公安边防通道语音提示;

  • 多声道语音报警或设备操作引导语音;

  • 电动旅游车安全驾驶语音提示;

  • 机电设备故障报警;

  • 火灾报警语音提示;

  • 自动播音设备,定时播音。

1-4、 引脚说明

引脚说明
Mini MP3 Player播放器简介与STC12例程
图1-4-1:mini MP3 引脚说明

1-5、工作模式

1-5-1、 串口工作模式

官方的英文文档串口模式只是寥寥数笔,于是我找到mini MP3板载的芯片“YX5200-24SS串口语音芯片”的资料,对串口控制有非常详细的说明。
Mini MP3 Player播放器简介与STC12例程
Mini MP3 Player播放器简介与STC12例程
Mini MP3 Player播放器简介与STC12例程
Mini MP3 Player播放器简介与STC12例程
Mini MP3 Player播放器简介与STC12例程
Mini MP3 Player播放器简介与STC12例程
图1-5-1-2:YX5200-24SS串口语音芯片串口功能简介

1-5-2、 ADC按键工作模式

We use the AD module keys, instead of the traditional method of matrix keyboard connection, it is to take advantage of increasingly powerful MCU AD functionality, Our module default configuration 2 AD port, 20 key resistance distribution.

我们采用AD模块按键,代替传统的矩阵键盘连接方式,它是利用单片机日益强大的AD功能,我们的模块默认配置2个AD端口,20个按键电阻分布。
Mini MP3 Player播放器简介与STC12例程
图1-5-2:AD 按键模式接线图

1-5-3、 普通按键工作模式

Mini MP3 Player播放器简介与STC12例程
图1-5-3-1:按键控制模式接线图

2、串口模式电路搭建与例程

Mini MP3 Player播放器简介与STC12例程
图2-1:串口模式mini MP3模块电路接线图

STC12例程

#include <STC12C5A60S2.H>
#include <intrins.h>

/*数据类型宏定义*/
#define uchar unsigned char
#define uint unsigned int

/*系统时钟空定义*/
#define MAIN_Fosc		11059200L	//宏定义主时钟HZ
//#define MAIN_Fosc		12000000L

/*全局变量定义*/
static uchar Send_buf[9] = {0};


//基于STC12单片机1ms延时函数
//函数说明:内部调用
static void Delay1ms()		
{
	# if MAIN_Fosc == 11059200L
	//晶振11.0592MHz
	unsigned char i, j;

	_nop_();
	i = 11;
	j = 190;
	do
	{
		while (--j);
	} while (--i);
	
	#elif MAIN_Fosc == 12000000L
	//晶振12.000000MHZ
	unsigned char i, j;

	_nop_();
	_nop_();
	i = 12;
	j = 168;
	do
	{
		while (--j);
	} while (--i);
	
	#endif
	
}

//基于STC12单片机ms延时函数
//函数说明:外部调用
void Delay_ms(uint time)
{
	int i;
	for(i=0; i<time; i++)
	{
		Delay1ms();
	}
}

//串口初始化,晶振11.0592,波特率9600
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x04;		//独立波特率发生器时钟为Fosc,即1T
	BRT = 0xDC;		//设定独立波特率发生器重装值
	AUXR |= 0x01;		//串口1选择独立波特率发生器为波特率发生器
	AUXR |= 0x10;		//启动独立波特率发生器
	
	//EA = 1;//开总中断
	//ES = 1;//开串口中断
}

/***************************************
 *函数名称:void sendArray(uchar *s, uint len)
 *函数输入:*s 发送的数组指针,len数组长度
 *函数返回:无
 *函数说明:向串口发送一段数组
 ***************************************/
void sendArray(uchar *s, uint len)
{
	uint i;
	for(i=0; i<len; i++)
	{
		SBUF = *s++;
		while(!TI);
		TI = 0;
	}
}

//向串口发送一个字符
void putchar(char ch)
{
	SBUF = ch;
	while(!TI);TI = 0;
}

/************************************************
 - 功能描述:求和校验
 - 隶属模块:
 - 参数说明:
 - 返回说明:
 - 注:      和校验的思路如下
             发送的指令,去掉起始和结束。将中间的6个字节进行累加,最后取反码
             接收端就将接收到的一帧数据,去掉起始和结束。将中间的数据累加,再加上接收到的校验
             字节。刚好为0.这样就代表接收到的数据完全正确。
**************************************************/
void DoSum( uchar *Str, uchar len)
{
    uint xorsum = 0;
    uchar i;

    for(i=0; i<len; i++)
    {
        xorsum  = xorsum + Str[i];
    }
	xorsum     = 0 -xorsum;
	*(Str+i)   = (uchar)(xorsum >>8);
	*(Str+i+1) = (uchar)(xorsum & 0x00ff);
}

/***********************************************
 - 功能描述: 串口向mini MP3发送命令[包括控制和查询]
 - 隶属模块: 外部
 - 参数说明: CMD:表示控制指令,请查阅指令表,还包括查询的相关指令
              feedback:是否需要应答[0:不需要应答,1:需要应答]
              data:传送的参数
 - 返回说明:
 - 注:       
*************************************************/
void Uart_miniMP3_SendCMD(uchar CMD, uchar feedback, uint dat)
{
	Send_buf[0] = 0xff;    							//保留字节 
	Send_buf[1] = 0x06;    							//长度
	Send_buf[2] = CMD;     							//控制指令
	Send_buf[3] = feedback;							//是否需要反馈
	Send_buf[4] = (uchar)(dat >> 8);    //datah
	Send_buf[5] = (uchar)(dat);         //datal
	DoSum(&Send_buf[0],6);              //校验
	
	putchar(0x7E);											//发送启始指令
	sendArray(&Send_buf[0], 8);					//发送此帧数据
	putchar(0xEF);											//发送结束指令
}

/*****************************************
 *函数名称:miniMP3_numBroadcasting
 *函数功能:播报组合数字
 *函数输入:num 需要播报到数字(只能播报1-9999到数字组合)
 *函数返回:无
 *****************************************/
void miniMP3_numBroadcasting(uint num)
{
	uint ge,shi,bai,qian;
	
	qian = num/1000;
	bai = num/100%10;
	shi = num/10%10;
	ge = num/1%10;
	
	if(qian != 0)
	{
		Uart_miniMP3_SendCMD(0x03, 0, qian);//播报千位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0D);//播报千
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, bai);//播报百位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0C);//播报百
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, shi);//播报十位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播报十
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, ge);//播报个位数字
		Delay_ms(1100);
		
		return;
	}
	else if(bai != 0)
	{
		Uart_miniMP3_SendCMD(0x03, 0, bai);//播报百位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0C);//播报百
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, shi);//播报十位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播报十
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, ge);//播报个位数字
		Delay_ms(1100);
		
		return;
	}
	else if(shi != 0)
	{
		Uart_miniMP3_SendCMD(0x03, 0, shi);//播报十位数字
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播报十
		Delay_ms(1100);
		Uart_miniMP3_SendCMD(0x03, 0, ge);//播报个位数字
		Delay_ms(1100);
		
		return;
	}
	else if(ge != 0)
	{
		Uart_miniMP3_SendCMD(0x03, 0, ge);//播报个位数字
		Delay_ms(1100);
		
		return;
	}
}

void main(void)
{
	Delay_ms(1000);				//延时1秒等待系统稳定
	UartInit();						//串口初始化,波特率9600
	
	miniMP3_numBroadcasting(1234);
	Uart_miniMP3_SendCMD(0x03, 0, 0x11);//播放指定文件
	Delay_ms(5000);
	
	miniMP3_numBroadcasting(123);
	Uart_miniMP3_SendCMD(0x03, 0, 0x11);//播放指定文件
	Delay_ms(5000);
	
	miniMP3_numBroadcasting(12);
	Uart_miniMP3_SendCMD(0x03, 0, 0x11);//播放指定文件
	Delay_ms(5000);
	
	miniMP3_numBroadcasting(1);
	Uart_miniMP3_SendCMD(0x03, 0, 0x11);//播放指定文件
	Delay_ms(5000);
	while(1);
}

参考手册、代码例程、语音合成软件:
链接:https://pan.baidu.com/s/1hzq6GUMjYvccphqfJBP5cQ
提取码:cxv1

参考文献

[1]广州悦欣电子科技有限公司YX5200-24SS串口语音芯片简介
https://www.yxin18.com/product/product-94-261.html
[2]DFRobot arduino DFPlayer官方资料
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299文章来源地址https://www.toymoban.com/news/detail-473624.html

到了这里,关于Mini MP3 Player播放器简介与STC12例程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第二十九篇、基于Arduino uno,控制MP3Player mini模块播放音乐——结果导向

    说明:通电后播放对应的歌曲,可以选择循环播放还是播放一次,也可以通过串口指定播放对应的音乐,如果是你想要的,可以接着往下看。 说明:虽然MP3Player mini模块有很多型号,但是原理和代码都是适用的。 说明:只需要连接六根线。 引脚图: uno————MP3Player mini模

    2024年02月03日
    浏览(57)
  • AI智能语音识别模块(二)——基于Arduino的语音控制MP3播放器

    在前面一篇文章里我们对AI智能语音识别模块进行了介绍,并对离线语音模组下载固件的过程进行了一个简单描述,不知道大家还记不记得,这篇文章也是鸽了好久,,本文将用这个语音控制模块结合前面介绍的DFPlayer Mini MP3模块来做一个有趣的应用,在上一期文章中,我们只

    2024年02月03日
    浏览(58)
  • STM32F407使用Helix库软解MP3并通过DAC输出,最精简的STM32+SD卡实现MP3播放器

    只用STM32单片机+SD卡+耳机插座,实现播放MP3播放器! 看过很多STM32软解MP3的方案,即不通过类似VS1053之类的解码器芯片,直接用STM32和软件库解码MP3文件,通常使用了labmad或者Helix解码库实现,Helix相对labmad占用的RAM更少。但是大多数参考的方案还是用了外接IIS接口WM98xx之类的

    2024年02月12日
    浏览(57)
  • MP4转AVI转AMV教程:教你把B站视频导入你的MP3MP4随身听播放器

    学校不给带手机?去到学校就不能看视频了?我该怎么办? 别慌!UP主教你如何把你喜欢的视频导入到自己的随身听上! 前言:想必很多人都买过或者手上都有MP3/MP4播放器,在学校查手机变态严的中学时代,这个或许是唯一可以替代手机的慰藉了吧……每天晚上听着歌度过

    2023年04月25日
    浏览(44)
  • Unity零基础到进阶 ☀️| 视频播放器 Video Player组件 详解

    🎬 博客主页:

    2024年02月13日
    浏览(52)
  • 织梦dedecms整合添加ckplayer播放器支持flv,mp4等播放功能

    现在很多DEDE开发的视频网站使用的播放器是ckplayer,这个播放器功能非常强大,支持flv,mp4,swf等各种类型的文件播放器。当我们的视频不想上传到youku等视频网站时,可以使用这个播放器,这样可以自己控制自己的视频长度,清晰度,还可以给自己的视频添加上播放前的广告,

    2024年02月02日
    浏览(42)
  • 在Winform(C++/CLR)平台设计的(本地&在线)音乐播放器(基于WMP(Windows Media Player)控件实现)

    首先,祝贺阿根廷获得2022世界杯冠军! Winform作为一个比较老的平台,应用其实越来越少了,而即使设计Winform程序,多数人也会选择C#,而不是C++。但是题主在学校学习一门课程被迫使用了Winform/C++,并完成了课程作业,在此分享以下自己的作业,也当作学习纪录。在完成这

    2024年02月09日
    浏览(48)
  • 开源html播放器Plyr 2.0.12自述文件

    A simple, accessible and customizable HTML5, YouTube and Vimeo media player. Donate to support Plyr Checkout the demo We wanted a lightweight, accessible and customizable media player that supports modern browsers. Sure, there are many other players out there but we wanted to keep things simple, using the right elements for the job. Accessible - full support

    2024年04月12日
    浏览(45)
  • 【FFmpeg视频播放器开发】解封装解码流程、常用API和结构体简介(一)

    在正式编写 FFmpeg 播放器前,我们需要先简单了解下所要用到的 FFmpeg 库、播放与解码流程、函数和相关结构体。 库 介绍 avcodec 音视频编解码核心库 avformat 音视频容器格式的封装和解析 avutil 核心工具库 swscal 图像格式转换的模块 swresampel 音频重采样 avfilter 音视频滤镜库 如视

    2023年04月08日
    浏览(47)
  • csf格式手机播放器(安卓csf格式播放器)

    手机播放视频文件的方法: 1.使用手机自带的安卓播放器播放即可。 2.如果您的手机不支持所播放的视频文件格式,请下载第三方视频播放器播放。播放这种格式,需要下载一个CSF转化器的CSF编译软件,软件名字叫ScenicEditor。 另外也可以直接用格式工厂转换,将CSF直接转换成

    2024年02月10日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包