<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于VS1003解碼器的MP3播放器設(shè)計(jì)

          基于VS1003解碼器的MP3播放器設(shè)計(jì)

          作者: 時間:2011-01-17 來源:網(wǎng)絡(luò) 收藏

          2.3 SD卡模塊
          SD卡價(jià)格低,存儲容量大,使用方便,通用性與安全性強(qiáng),MP3、數(shù)碼相機(jī)等設(shè)備上都采用SD卡作為其存儲設(shè)備。
          SD卡支持兩種總線模式:SD模式與SPI模式。其中,SD模式采用6線制,而SPI模式采用4線制。采用單片機(jī)對SD卡進(jìn)行讀寫時一般都采用SPI模式??捎貌煌某跏蓟绞绞筍D卡工作于SD或SPI模式。
          本設(shè)計(jì)中,數(shù)據(jù)MP3文件以SD卡為載體,所以設(shè)計(jì)電路時必須含有讀取SD卡模塊。圖5為SD卡模塊(SPI模式)的接口電路。
          e.JPG

          2.4 液晶顯示模塊
          LCD3310液晶是一個48行84列的液晶顯示器。其帶有低功耗PCD8544的CMOS LCD控制驅(qū)動器,串行輸入速度最高可達(dá)4.O Mb/s。為了讓LCD3310液晶能夠顯示4行12×12的漢字,系統(tǒng)開辟了一個6×84字節(jié)的緩沖區(qū)。寫液晶時就不用直接寫入LCD3310的靜態(tài) DDRAM了,可以先寫入系統(tǒng)為它開辟的數(shù)據(jù)緩沖區(qū),最后再刷新修改的部分就可以顯示出要顯示的內(nèi)容。LCD3310的接口采用SPI模式,其電路如圖6 所示。

          3 軟件設(shè)計(jì)
          圖7是MP3播放器的軟件流程。系統(tǒng)啟動后,先初始化硬件模塊。由單片機(jī)通過FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT 表以及根目錄所在的起始扇區(qū)等。通過這些信息就可以找出SD卡是否有可以播放的音樂文件。若有,單片機(jī)通過SPI總線方式讀出信息,并將歌曲的碼流信息送入到VS1003芯片中,通過VS1003解碼芯片及其內(nèi)含的高質(zhì)量立體聲DAC和耳機(jī)驅(qū)動電路,實(shí)現(xiàn)MP3歌曲的播放功能。在按鍵的控制下,通過 LCD3310中菜單選項(xiàng)的選擇,實(shí)現(xiàn)對歌曲選擇及音量控制等功能;在播放的同時,LCD3310上顯示的信息除歌曲名稱外,還包括進(jìn)度和音量等。

          f.JPG
          經(jīng)過運(yùn)行測試,系統(tǒng)可以正常流暢地播放出320 kb/s的高音質(zhì)MP3音樂文件,而且在使用500 mA鋰電池的情況下,可以連續(xù)正常地播放長達(dá)10個小時??梢?,其功耗比較低。

          結(jié)語
          本著低成本、實(shí)用性強(qiáng)的原則,設(shè)計(jì)了一種解碼器與存儲器分離的MP3播放器,可以流暢地播放出高音質(zhì)的MP3文件。同時,只要適當(dāng)增加少量硬件開銷并添加相應(yīng)代碼,即可以利用多余的I/O口在此系統(tǒng)基礎(chǔ)上方便地增加如電壓測量、頻率測量、溫度測量等功能,真正做到一機(jī)多用。

          本文引用地址:http://www.ex-cimer.com/article/166247.htm

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 音頻

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();