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功能的模塊結(jié)合使用。
圖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輸出,支持動態(tài)范圍90dB,信噪比支持85dB
-
完全支持FAT16、FAT32文件系統(tǒng),最大支持32G的TF卡,支持32G的U盤,64M字節(jié)的NORFLASH
-
多種控制方式,I/O控制方式,串行控制方式,AD按鈕控制方式
-
廣告聲音等待功能,音樂可以暫停播放。當(dāng)廣告結(jié)束時,音樂繼續(xù)播放
-
音頻數(shù)據(jù)按文件夾排序,最多支持100個文件夾,每個文件夾最多可存放255首歌曲
-
30級音量可調(diào),6級EQ可調(diào)
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.
用途
-
汽車導(dǎo)航語音廣播;
-
道路運輸巡視員、收費站語音提示;
-
火車站、公交安全檢查語音提示;
-
電力、通信、金融營業(yè)廳語音提示;
-
車輛進出通道驗證,語音提示;
-
公安邊防通道語音提示;
-
多聲道語音報警或設(shè)備操作引導(dǎo)語音;
-
電動旅游車安全駕駛語音提示;
-
機電設(shè)備故障報警;
-
火災(zāi)報警語音提示;
-
自動播音設(shè)備,定時播音。
1-4、 引腳說明
引腳說明
圖1-4-1:mini MP3 引腳說明
1-5、工作模式
1-5-1、 串口工作模式
官方的英文文檔串口模式只是寥寥數(shù)筆,于是我找到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模塊按鍵,代替?zhèn)鹘y(tǒng)的矩陣鍵盤連接方式,它是利用單片機日益強大的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>/*數(shù)據(jù)類型宏定義*/ #define uchar unsigned char #define uint unsigned int/*系統(tǒng)時鐘空定義*/ #define MAIN_Fosc 11059200L //宏定義主時鐘HZ //#define MAIN_Fosc 12000000L/*全局變量定義*/ static uchar Send_buf[9] = {0};//基于STC12單片機1ms延時函數(shù) //函數(shù)說明:內(nèi)部調(diào)用 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延時函數(shù) //函數(shù)說明:外部調(diào)用 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位數(shù)據(jù),可變波特率AUXR |= 0x04; //獨立波特率發(fā)生器時鐘為Fosc,即1TBRT = 0xDC; //設(shè)定獨立波特率發(fā)生器重裝值AUXR |= 0x01; //串口1選擇獨立波特率發(fā)生器為波特率發(fā)生器AUXR |= 0x10; //啟動獨立波特率發(fā)生器//EA = 1;//開總中斷//ES = 1;//開串口中斷 }/****************************************函數(shù)名稱:void sendArray(uchar *s, uint len)*函數(shù)輸入:*s 發(fā)送的數(shù)組指針,len數(shù)組長度*函數(shù)返回:無*函數(shù)說明:向串口發(fā)送一段數(shù)組***************************************/ void sendArray(uchar *s, uint len) {uint i;for(i=0; i<len; i++){SBUF = *s++;while(!TI);TI = 0;} }//向串口發(fā)送一個字符 void putchar(char ch) {SBUF = ch;while(!TI);TI = 0; }/************************************************- 功能描述:求和校驗- 隸屬模塊:- 參數(shù)說明:- 返回說明:- 注: 和校驗的思路如下發(fā)送的指令,去掉起始和結(jié)束。將中間的6個字節(jié)進行累加,最后取反碼接收端就將接收到的一幀數(shù)據(jù),去掉起始和結(jié)束。將中間的數(shù)據(jù)累加,再加上接收到的校驗字節(jié)。剛好為0.這樣就代表接收到的數(shù)據(jù)完全正確。 **************************************************/ 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發(fā)送命令[包括控制和查詢]- 隸屬模塊: 外部- 參數(shù)說明: CMD:表示控制指令,請查閱指令表,還包括查詢的相關(guān)指令feedback:是否需要應(yīng)答[0:不需要應(yīng)答,1:需要應(yīng)答]data:傳送的參數(shù)- 返回說明:- 注: *************************************************/ void Uart_miniMP3_SendCMD(uchar CMD, uchar feedback, uint dat) {Send_buf[0] = 0xff; //保留字節(jié) 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); //發(fā)送啟始指令sendArray(&Send_buf[0], 8); //發(fā)送此幀數(shù)據(jù)putchar(0xEF); //發(fā)送結(jié)束指令 }/******************************************函數(shù)名稱:miniMP3_numBroadcasting*函數(shù)功能:播報組合數(shù)字*函數(shù)輸入:num 需要播報到數(shù)字(只能播報1-9999到數(shù)字組合)*函數(shù)返回:無*****************************************/ 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);//播報千位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0D);//播報千Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, bai);//播報百位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0C);//播報百Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, shi);//播報十位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播報十Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, ge);//播報個位數(shù)字Delay_ms(1100);return;}else if(bai != 0){Uart_miniMP3_SendCMD(0x03, 0, bai);//播報百位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0C);//播報百Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, shi);//播報十位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播報十Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, ge);//播報個位數(shù)字Delay_ms(1100);return;}else if(shi != 0){Uart_miniMP3_SendCMD(0x03, 0, shi);//播報十位數(shù)字Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, 0x0a);//播報十Delay_ms(1100);Uart_miniMP3_SendCMD(0x03, 0, ge);//播報個位數(shù)字Delay_ms(1100);return;}else if(ge != 0){Uart_miniMP3_SendCMD(0x03, 0, ge);//播報個位數(shù)字Delay_ms(1100);return;} }void main(void) {Delay_ms(1000); //延時1秒等待系統(tǒng)穩(wěn)定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
總結(jié)
以上是生活随笔為你收集整理的Mini MP3 Player播放器简介与STC12例程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美丽桌面墙纸自动换
- 下一篇: 数字化让企业精益管理梦成真,技术成核心驱