A. 關於51單片機、sd卡和vs1003的問題
不能~
補充回答:
恩我有VS1003的資料(英文的)你看看就知道了~SD卡需要單片機讀取數據後給他的指令脈沖才行,但他自身是不能讀SD卡或FLASH存儲器的~另外讀那個區也是單片機給存儲器指令來讀的~
B. STC的單片機有沒有帶MP3解碼的 請給我介紹幾個最容易開發做MP3的晶元謝謝
STC裡面只是一個簡單的8051內核再加上若干諸如:定時器,外部中斷,AD轉換器之類的外設,是沒有MP3解碼器的
你要開發MP3的話有VS1003或者VS1003專用解碼晶元,需要用單片機把音頻數據流送給它解碼才能發出聲音來,可以去了解一下
C. 能將多個音頻文件同時放在vs1003晶元中嗎
VS1003音頻解碼晶元MP3播放器實現的問題
玩MP3播放,之前已經實現了VS1003的正弦波測試,從耳機可以聽到一定頻率的聲音了。之後開始寫程序,希望從MMC/SD卡讀取文件發送到VS1003播放。我的板子上MMC卡和VS1003都接在同一個硬體SPI介面上,靠不同的片選控制。程序的思路就是單片機從MMC卡讀取一個扇區(512位元組)的音頻文件暫存在SRAM中,然後再依次將其發送到VS1003的串列數據口(SDI),循環以上過程從而實現音頻文件的播放。原理還是很簡單的,但是編出來的程序卻不能播放聲音出來,通過串口輸出的調試信息看到有數據傳送,可就是不響。經過仔細檢查程序發現是引用的一個函數的變數類型指定錯了(應該為unsigned int,寫成了unsigned char)。排除這個錯誤後再實驗,更新程序,上電運行,初始化MMC卡和VS1003,發命令開始播放文件,從耳機里傳來了久違的音樂聲。當時還是很激動的,畢竟從能出聲(正弦波)到能放音樂之間花費的時間太久了。
能播放MP3之後又試了WMA,也是沒有問題的。接下來的就是選不同的MP3文件進行碼率測試了。最初,程序能流暢播放8,16,24,32,48,64kbps文件,再往上就會卡,估計是文件傳送的速度不夠快,開始優化程序。首先把SPI的時鍾調到8Mhz,再實驗,感覺好了點,但改善不大。問題出在哪呢?回過頭來再看程序,讀MMC卡的函數里我使用了循環,循環512次每次讀一個位元組,這樣完成一個block的讀取,發送數據到VS1003的函數也是如此。這樣寫程序層次感很好,但感覺循環的開銷太大了(因為是512次循環,變數還必須用int型的)。於是改程序,在讀扇區函數里每次循環讀8位元組數據,只需循環64次了,VS1003函數也同樣修改。這樣再試驗,板子已經可以流暢播放128kbps的MP3,峰值數據傳輸率達到140k。有了這次的成功,我繼續對程序優化,再次修改MMC_read(),每次循環讀64位元組數據,循環8次。VS1003_write()中每次循環讀32位元組數據,循環16次(數據手冊說VS1003在晶元空閑時,至少能接收32位元組數據,再多就需要查詢DREQ引腳狀態再判斷)。這回提升的效果也很讓人振奮,播放160k碼率文件很流暢,換用高碼率文件測試峰值數據傳輸速率172kbps。優化程序的成就感還是很大的:)
之後又對SPI中斷函數動了手術,去掉了關中斷和開中斷的語句(因為我的中斷函數中執行的語句就2條),盡量壓縮處理時間。另外在SPI發送數據後有一個等待發送完成的檢測環節,必須等SPI發送完畢才可以進行下一次發送,經過分析後,我發現這個檢測可以去掉,因為我的SPI時鍾已經達到8M,CPU工作在33M,STC宏晶的數據手冊上顯示一條指令大都在2-3個時鍾周期內才可以完成,再加上每次SPI發送後我都需要移動指針(又是一條指令),而這時SPI發送早已完成。因此可以不必檢測,直接再次發送數據。按照這個思路修改程序後,我的板子解碼速度已經達到272kbps了,後來又做了些小的修改最高解碼速率穩定在280kbps。至此,除了320k CBR編碼的MP3播放有點卡以外,其他各種音頻文件已沒有任何問題(當然得是VS1003支持的格式:))。
在這個程序的開發過程中,我深深地感到仔細很重要,另外,有時候可以突破陳規大膽嘗試(去掉SPI發送完畢檢測就是一例)。現在模式只能順序播放MMC卡中指定區域的數據,下一步我准備移植FAT文件系統到MCU上,這樣就可以按文件播放了。希望我的經歷對同樣在用STC單片機,VS1003的朋友有所益處。
STC12+VS1003播放MP3程序開發歷程
控制VS1003成功-〉播放正弦波-〉播放MP3成功-〉性能提高-〉64kbps-〉112kbps-〉140kbps-〉172kbps-〉272kbps-〉280kbps
D. 51單片機讀取MP3文件通過vs1003播放耳機有雜音怎麼解決
MP3模塊輸出後的電路原理,PCB布局布線都有可能有問題。
E. (51單片機c語言)vs1003b得出的14個頻譜值具體是什麼數據,如何在LED顯示
VS1003 是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個高性能,自主產權的低功耗DSP
處理器核VS_DSP4,工作數據存儲器,為用戶應用提供5KB 的指令RAM 和0.5KB 的數據RAM。串列的控制和數據介面,4
個常規用途的I/O 口,一個UART,也有一個高品質可變采樣率的ADC和立體聲DAC,還有一個耳機放大器和地線緩沖器。
VS1003
通過一個串列介面來接收輸入的比特流,它可以作為一個系統的從機。輸入的比特流被解碼,然後通過一個數字音量控制器到達一個18 位過采樣多位ε-Δ
DAC。通過串列匯流排控制解碼器。除了基本的解碼,在用戶RAM 中它還可以做其他特殊應用,例如DSP 音效處理。
=============================================================
51搞這個, 有點吃力. 音頻也許可以, 視頻就不要想了.
將mp3數據送入到vs1003解碼, 由它的adc轉換成音頻數字信號, 音頻的范圍10-20Khz, 在這個范圍內選擇14個頻點, 對應14列LED, 根據頻點的頻譜大小, 來設置LED列的多少.
至於數據的FFT變換, 不清楚怎麼實現.
F. 51單片機聲音輸出
看你要輸出什麼樣的音頻。
1、如果只是很簡單的像某些有聲賀卡那樣的話,接一個無源喇叭,自己控制I/O輸出一個方波,通過控制方波的頻率來調節音調,然後將不同的頻率組合起來,連續播放就是一首簡單的歌曲。
2、如果要輸出MP3,那就需要一塊音頻解碼晶元,比如VS1003。單片機將存儲在外部存儲器里(比如U盤)的歌曲信息通過介面晶元傳給音頻解碼晶元,解碼之後就能輸出歌曲了。
第二種情況相對比較復雜,涉及到如何高效讀取存儲的歌曲信息和高效傳輸這些信息。
G. 用Proteus進行MP3模擬,沒有音頻解碼晶元VS1003怎麼辦
這個不用模擬,直接上板子就行。。。。單片機控制MP3我做過本科時候,你上電子發燒友,搜「stc12c5a60s2 單片機 MP3 」關鍵字看看我的做法就行。
H. STC12C5A60S2單片機對VS1003MP3解碼模塊音頻解碼時候出現的問題
沒見程序,不知道程序有沒有問題;我做的時候就不是直接連SPI介面的,我是用9014來隔離的很好用沒問題
I. 誰知道怎麼用單片機讀取sd卡上的MP3文件並播放
可以,需要MP3解碼器,解碼器有軟體解碼器,硬體解碼器(硬體解碼器去淘寶找)。比較麻煩,說不清楚!
J. 最近在研究STC12C5A60S2單片機,買了個vs1003語音模塊,網上找不到相關資料
系統控制
主控制晶元選用STC 12C5A16S2 LQFP44封裝
1個時鍾/機器周期8051、無法解密、低功耗,超低價、高速,高可靠性、強抗靜電,強抗干擾
系統選擇
本系統以STC12C5A60S2單片機為控制核心。STC12C5A60S2單片機是台灣宏晶公司2010年推出的新一代超強抗干擾、高速、搞可靠性、超低功耗的8051單片機,編程語言完全兼容傳統8051單片機。
STC12C5A60S2/AD/PWM 系列主要性能:
●高速:1 個時鍾 / 機器周期,增強型 8051 內核,速度比普通 8051 快 8~12 倍
●寬電壓:5.5~3.3V,2.2~3.6V(STC12LE5A60S2 系列)
●增加第二復位功能腳(高可靠復位,可調整復位門檻電壓,頻率<12MHz 時,無需此功能)
●增加外部掉電檢測電路,可在掉電時,及時將數據保存進EEPROM,正常工作時無需操作EEPROM
●低功耗設計:空閑模式, (可由任意一個中斷喚醒)
●低 功耗設計:掉電模式(可由外部中斷喚醒) ,可支持下降沿 / 上升沿和遠程喚醒
●工作頻率:0~35MHz,相當於普通 8051:0~420MHz
●時鍾:外部晶體或內部 RC 振盪器可選,在 ISP 下載編程用戶程序時設置
● 8/16/20/32/40/48/52/56/60/62K 位元組片內 Flash 程序存儲器,擦寫次數 10 萬次以上
● 1280 位元組片內 RAM 數據存儲器
●晶元內 EEPROM 功能,擦寫次數 10 萬次以上
● ISP / IAP,在系統可編程 / 在應用可編程,無需編程器 / 模擬器
● 8 通道,10 位高速 ADC,速度可達 25 萬次 / 秒,2 路 PWM 還可當 2 路 D/A 使用
● 2 通道捕獲 / 比較單元(PWM/PCA/CCP ) , --- 也可用來再實現 2 個定時器或 2 個外部中斷(支持上升沿 / 下降沿中斷)
● 4 個 16 位定時器,兼容普通 8051 的定時器 T0/T1,2 路 PCA 實現 2 個定時器
●可編程時鍾輸出功能,T0 在 P3.4 輸出時鍾,T1 在 P3.5 輸出時鍾,BRT 在 P1.0 輸出時鍾
●硬體看門狗(W D T )
●高速 SPI 串列通信埠
●全雙工非同步串列口(UART),兼容普通 8051 的串口
●先進的指令集結構,兼容普通 8051 指令集,有硬體乘法 / 除法指令
●通用 I/O 口(36/40/44 個) ,復位後為: 准雙向口 / 弱上拉(普通 8051 傳統 I/O 口) 可設置成四種模式:准雙向口 / 弱上拉,推挽 / 強上拉,僅為輸入 / 高阻,開漏 每個 I/O 口驅動能力均可達到 20mA,但整個晶元最大不得超過 100mA
STC12C5A60S2/AD/PWM 系列單片機的優點 :
●速度快, 1 個時鍾 / 機器周期,可用低頻晶振,大幅降低 E M I
●支持掉電喚醒的管腳:INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0, CCP0/P1.3( 或 P4.2),CCP1/P1.4(或 P4.3),EX_LVD/P4.6
●超低功耗: 掉電模式:外部中斷喚醒功耗 <0.1uA,支持下降沿 / 上升沿 / 低電平和遠程喚醒 適用於電池供電系統 ,如水表,氣表,便攜設備等 . 空閑模式: ●典型功耗 <1.3mA, 正常工作模式:2mA - 7mA
●輸入 / 輸出口多,最多有 44 個 I/O 口,A/D 做按鍵掃描還可以節省很多 I/O
●在系統可編程, 無需編程器, 無需模擬器,可遠程升級
●可送 STC-ISP 下載編程器,1 萬片 / 人 / 天
●內部集成高可靠復位電路,外部復位電路可徹底省掉,當然也可以繼續用 外部復位電路
2.1.2 STC12C5A60S2 系列 1T 單片機簡介
STC12C5A60S2/AD/PWM 系列單片機是宏晶科技生產的單時鍾 / 機器周期(1T)的單片機,是高速 / 低功耗 / 超強抗干擾的新一代 8051 單片機,指令代碼完全兼容傳統 8051,但速度快 8-12 倍.內部集成 MAX810 專用 復位電路,2 路 PWM,8 路高速 10 位 A/D 轉換(250K/S),針對電機控制,強干擾場合.
1. 增強型 8051 CPU,1T,單時鍾 / 機器周期,指令代碼完全兼容傳統 8051
2 . 工作電壓: STC12C5A60S2 系列工作電壓: 5.5V - 3 . 3 V (5 V 單片機) STC12LE5A60S2 系列工作電壓:3.6V - 2 . 2 V (3 V 單片機)
3. 工作頻率范圍:0 - 35MHz,相當於普通 8051 的 0~420MHz
4. 用戶應用程序空間 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 位元組......
5. 片上集成 1280 位元組 RAM
6. 通用 I/O 口(36/40/44 個) ,復位後為: 准雙向口 / 弱上拉(普通 8051 傳統 I/O 口) 可設置成四種模式:准雙向口 / 弱上拉,推挽 / 強上拉,僅為輸入 / 高阻,開漏 每個 I/O 口驅動能力均可達到 20mA,但整個晶元最大不要超過 55mA
7 . I S P (在系統可編程)/ I A P (在應用可編程) ,無需專用編程器,無需專用模擬器 可通過串口(P3.0/P3.1)直接下載用戶程序,數秒即可完成一片
8. 有 EEPROM 功能(STC12C5A62S2/AD/PWM 無內部 EEPROM)
9. 看門狗
10. 內部集成 MAX810 專用復位電路(外部晶體 12M 以下時,復位腳可直接 1K 電阻到地) 11. 外部掉電檢測電路: 在 P4.6 口有一個低壓門檻比較器 5V 單片機為 1.32V,誤差為 +/-5%,3.3V 單片機為 1.30V,誤差為 +/-3%
12. 時鍾源:外部高精度晶體 / 時鍾,內部 R/C 振盪器(溫漂為 +/-5% 到 +/-10% 以內) 用戶在下載用戶程序時,可選擇是使用內部 R/C 振盪器還是外部晶體 / 時鍾 常溫下內部 R/C 振盪器頻率為:5.0V 單片機為: 11MHz ~ 15.5MHz 3.3V 單片機為: 8MHz ~ 12MHz 精度要求不高時,可選擇使用內部時鍾,但因為有製造誤差和溫漂,以實際測試為准
13. 共 4 個 16 位定時器 兩個與傳統 8051 兼容的定時器 / 計數器,16 位定時器 T0 和 T1,沒有定時器 2,但有獨立波特率發生器 做串列通訊的波特率發生器 再加上 2 路 PCA 模塊可再實現 2 個 16 位定時器
14. 2 個時鍾輸出口,可由 T0 的溢出在 P3.4/T0 輸出時鍾,可由 T1 的溢出在 P3.5/T1 輸出時鍾
15. 外部中斷 I/O 口 7 路,傳統的下降沿中斷或低電平觸發中斷,並新增支持上升沿中斷的 PCA 模塊, Power Down 模式可由外部中斷喚醒, INT0/P3.2, INT1/P3.3, T0/P3.4, T1/P3.5, RxD/P3.0, CCP0/P1.3(也可通過寄存器設置到 P4.2 ), CCP1/P1.4 (也可通過寄存器設置到 P4.3)
16. PWM(2 路)/PCA(可編程計數器陣列,2 路) --- 也可用來當 2 路 D/A 使用 --- 也可用來再實現 2 個定時器 --- 也可用來再實現 2 個外部中斷(上升沿中斷 / 下降沿中斷均可分別或同時支持)
17. A/D 轉換, 10 位精度 ADC,共 8 路,轉換速度可達 250K/S(每秒鍾 25 萬次)
18. 通用全雙工非同步串列口(UART),由於 STC12 系列是高速的 8051,可再用定時器或 PCA 軟體實現多串口
19. STC12C5A60S2 系列有雙串口,後綴有 S2 標志的才有雙串口,RxD2/P1.2(可通過寄存器設置到 P4.2), TxD2/P1.3(可通過寄存器設置到 P4.3)
20. 工作溫度范圍: -40 - +85℃(工業級) / 0 - 75℃(商業級)
21. 封裝:PDIP-40,LQFP-44,LQFP-48 I/O 口不夠時,可用 2 到 3 根普通 I/O 口線外接 74HC164/165/595(均可級聯)來擴展 I/O 口, 還可用 A/D 做按鍵掃描來節省 I/O 口,或用雙 CPU,三線通信,還多了串口.
引腳結構圖:
單片機在線編程電路: