標(biāo)題: 51單片機DIY的MP3 [打印本頁]

作者: 51hei學(xué)習(xí)技術(shù)中    時間: 2016-10-12 12:56
標(biāo)題: 51單片機DIY的MP3




做這個mp3前后有很長時間了,總體感覺不是很難,當(dāng)然收獲也是不小的,對51單片機有了更深入的了解,在這個學(xué)習(xí)的過程中碰到了很到的問題,譬如單片機的內(nèi)存,單片機的通信速度以及程序的優(yōu)化等。剛開始做這個項目的時候發(fā)現(xiàn)RAM總是不夠用,以至于每次寫程序都得小心翼翼,最后通過學(xué)習(xí)對程序經(jīng)行的大量優(yōu)化,使得RAM不再捉襟見肘,對程序的效率以及內(nèi)存的分配和速度有了深刻的認(rèn)識。這個mp3項目最重要的一點是單片機與VS1003的通信速度,如果你對單片機不熟悉的話,最后可能你會發(fā)現(xiàn)播放的歌曲根本就無法播放 ,聽到的歌曲一點都不流暢,由于51單片機沒有硬件spi,需要單片機模擬spi總線,這就需要模擬的spi總線是否高效,在這個項目中采用了匯編來模擬spi,通過混編的方式來組織程序。現(xiàn)在對于320kps的mp3歌曲都能流暢的播放。U盤的是通過ch375來實現(xiàn)與單片機的通信的,vs1003和ch375的驅(qū)動程序是自己對著數(shù)據(jù)手冊的時序圖一點一點寫出來的,感覺這樣才來的實在,打好基本功是關(guān)鍵。最后花了半個星期才搞定。碰到的問題也很多。記憶最深刻的就是總線的問題,把位選信號CS和A0放在P2口的低兩位,可能在平常不會出現(xiàn)錯誤,但是在ch375的驅(qū)動中外部數(shù)據(jù)儲存器使用超過了512byte,那么就會對P2.0有影響。致使時序錯誤,最后花了很大的力氣才解決。感受頗深啊!總線是51單片機的精華,只有理解了單片機總線才能算的上熟悉51單片機。記得上次到東莞找工作,應(yīng)聘了一個測試工程師的職位,筆試考的單片機的知識很基礎(chǔ),譬如對單片機引腳ALE,PSEN,EA的理解和應(yīng)用。但是我相信對于看了這篇文字的人不看書不一定都能答得出來,這就是考基本功,如果你沒有理解熟悉總線的時序,不熟悉單片機的儲存器,是答不出來的。
  完成了VS1003和ch375的驅(qū)動,配合winhex軟件找到音頻文件的起始扇區(qū)就能夠播放歌曲,STC單片機有倍速的功能,可以提高單片機一倍的速度,這個功能不知道大家知道波!在STC-ISP燒錄軟件中可以配置。記得由“12/單倍速”到“6T/雙倍速”轉(zhuǎn)換的時候需要下載兩次。下載一次是不會改變的。
  聽到歌曲了就要開始搞文件系統(tǒng)了,在mp3項目中其實最難得是文件系統(tǒng)以及液晶顯示部分,這個DIYMP3完全支持長文件名,在液晶屏lcd12864上顯示最多39字符的文件名。學(xué)習(xí)文件系統(tǒng)最好的資料我覺得是《fat文件系統(tǒng)原理》這個資料了!!論壇里可以下載。我花了一天的時間通過這份資料用winhex看U盤里的重要數(shù)據(jù),基本上了解了文件系統(tǒng)的結(jié)構(gòu)和存儲方式。最后通過串口調(diào)試助手寫程序讀取文件的一些重要數(shù)據(jù),以及和胡水濤的交流,很快的理解了文件系統(tǒng)。如果有人需要學(xué)習(xí)文件系統(tǒng)我覺得可以借鑒這個方法,完成了文件的初始化后,就可以讀取音頻文件,通過液晶顯示短文件名了。短文件名采用的是“8+3”的形式存儲的。文件名超過8byte就會截斷,看起來很不爽,所以搞定長文件名很有必要。
  這個就涉及到文件名的存儲形式和gbk碼與unicode的轉(zhuǎn)換。我總共花了2天時間解決,當(dāng)然串口調(diào)試時必不可少的工具。需要通過觀察從U盤文件讀取的數(shù)據(jù)發(fā)現(xiàn)和糾正程序的錯誤。充分利用好串口調(diào)試工具是解決問題的關(guān)鍵。
  完成文件了系統(tǒng)相當(dāng)于成功的一大半。接下來就只需要完成菜單的編寫了。我做的DIYMP3只寫了一個菜單界面,沒有目錄顯示及其他復(fù)雜功能。屏太小了不好搞,而且對菜單編程不是很熟悉。打算開學(xué)了買個彩屏回來搞一下,現(xiàn)在的功能是能夠順序播放,音量調(diào)節(jié)和上一曲.下一曲的切換.網(wǎng)上看到有人用stm32和彩屏做的畢業(yè)設(shè)計mp3很強悍,有點心動,也打算買個開發(fā)板學(xué)習(xí)哈!
  用到的模塊:STC89C58RD+(mini51),CH35模塊,vs1003模塊,LCD12864,按鍵。
  系統(tǒng)占用的內(nèi)存:Program Size: data=86.1 xdata=691 code=9899
  
  流暢播放的碼率:320kbps


ch375測試程序: ch375.rar (65.42 KB, 下載次數(shù): 59)
vs1003測試程序: vs1003.rar (22.51 KB, 下載次數(shù): 51)
完整版: MP3_V2.rar (251.14 KB, 下載次數(shù): 113)
能夠顯示短文件名: MP3_V2_1.rar (222.13 KB, 下載次數(shù): 62)

CH375資料.rar (1.01 MB, 下載次數(shù): 51)

vs1003原理圖.rar (80.24 KB, 下載次數(shù): 73)

驅(qū)動你的vs1003.pdf (314.72 KB, 下載次數(shù): 79)



作者: hunto    時間: 2016-10-14 10:20
支持。樓主很厲害,向你學(xué)習(xí)
作者: 738722773    時間: 2016-11-17 22:14
很好,good
作者: sxz330967303    時間: 2016-11-18 16:16
向樓主學(xué)習(xí),樓主有扣扣嗎?我初學(xué)者想通過這個項目來提高自己,不會的可以問您請教嗎?
作者: wwwang    時間: 2016-12-12 14:36
支持。樓主很厲害,向你學(xué)習(xí)
作者: shiyikang68    時間: 2017-2-19 18:40
好好學(xué)習(xí)學(xué)習(xí)
作者: 51鄭    時間: 2017-2-20 22:22
樓主有原理圖沒,想照著做一個
作者: 薄薄    時間: 2017-2-20 23:12
向樓主學(xué)習(xí)
作者: 薄薄    時間: 2017-2-20 23:13
支持樓主,值得參考
作者: 薄薄    時間: 2017-2-20 23:14
樓主有圖沒,想練習(xí)做一個
作者: 1044694063    時間: 2017-4-26 11:19
樓主,你好,看了你這篇制作MP3播放器的文章,感覺你在單片機方面實在太厲害了,所有的外圍硬件與控制器的連接都是與總線方式連接通訊。
作者: 1044694063    時間: 2017-4-26 11:26
請問樓主有CH375和單片機的總線方式電路圖嗎,略看了附件中的相關(guān)程序,對外部數(shù)據(jù)存儲器的編址不是很清楚,還請樓主麻煩能發(fā)下引腳連接圖波,解釋下也行,感激不盡C:\Users\Administrator\Desktop
作者: 挖卡卡卡    時間: 2017-5-25 23:47
 支持。樓主很厲害,向你學(xué)習(xí)
作者: tiexiedaqin    時間: 2017-9-12 17:53
哇,我正好也行學(xué)做個這個
作者: bleach    時間: 2017-9-18 11:47
謝謝分享
作者: GUOXUAN    時間: 2017-11-24 17:00
10多年前,我買了書,要DIY MP3播放器,現(xiàn)在生活壓力大就停歇啦,都沒整成.
作者: sishunhu    時間: 2018-1-9 22:15
謝謝分享
作者: 785798653    時間: 2018-1-30 10:05
樓主威武  先馬了以后看啊
作者: jingcard    時間: 2018-1-31 09:15
學(xué)習(xí)一下。。。。。。。。。。。
作者: kuiyin    時間: 2018-8-31 23:48
樓主可以把程序代碼還有原理圖發(fā)我一份嗎,QQ2096165865@qq.com,謝謝
作者: 沙諾1234    時間: 2019-2-28 09:12
樓主厲害,謝謝分享
作者: Alex紫楓    時間: 2019-2-28 13:04
樓主厲害了
作者: xdnf    時間: 2019-3-1 19:57
想問問樓主,您這個驅(qū)動方面的知識是在哪學(xué)的,我想學(xué)驅(qū)動方面的東西,一直沒頭緒
作者: xdnf    時間: 2019-3-1 20:01
樓主我有個戰(zhàn)艦V3開發(fā)板,stm32的,去年初買的,我馬上畢業(yè)了,用不到了,要不你收了?
作者: 這個好難!    時間: 2019-4-12 12:27
支持一下,頂頂頂
作者: wuxincoc    時間: 2019-10-20 03:50
太厲害了
作者: 國君    時間: 2021-7-6 17:19
這個好難。 發(fā)表于 2019-4-12 12:27
支持一下,頂頂頂

電子愛好




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1