Mini MP3 Player播放器简介与STC12例程
文章目錄
- 1、DFRobot arduino DFPlayer官方資料
- 1-1、簡介
- 2-2、 基本功能詳述
- 1-3、 用途
- 1-4、 引腳說明
- 1-5、工作模式
- 1-5-1、 串口工作模式
- 1-5-2、 ADC按鍵工作模式
- 1-5-3、 普通按鍵工作模式
- 2、串口模式電路搭建與例程
- 參考文獻
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功能的模塊結合使用。
圖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、 引腳說明
引腳說明
圖1-4-1:mini MP3 引腳說明
1-5、工作模式
1-5-1、 串口工作模式
官方的英文文檔串口模式只是寥寥數筆,于是我找到mini MP3板載的芯片“YX5200-24SS串口語音芯片”的資料,對串口控制有非常詳細的說明。
、
圖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個按鍵電阻分布。
圖1-5-2:AD 按鍵模式接線圖
1-5-3、 普通按鍵工作模式
圖1-5-3-1:按鍵控制模式接線圖
2、串口模式電路搭建與例程
圖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.0592MHzunsigned char i, j;_nop_();i = 11;j = 190;do{while (--j);} while (--i);#elif MAIN_Fosc == 12000000L//晶振12.000000MHZunsigned 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,即1TBRT = 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); //datahSend_buf[5] = (uchar)(dat); //datalDoSum(&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(); //串口初始化,波特率9600miniMP3_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
總結
以上是生活随笔為你收集整理的Mini MP3 Player播放器简介与STC12例程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美丽桌面墙纸自动换
- 下一篇: 数字化让企业精益管理梦成真,技术成核心驱