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