|
0.png (149.13 KB, 下載次數(shù): 181)
下載附件
2016-10-12 12:55 上傳
0.png (134.2 KB, 下載次數(shù): 164)
下載附件
2016-10-12 12:55 上傳
做這個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,通過混編的方式來組織程序,F(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
0.png (42.79 KB, 下載次數(shù): 189)
下載附件
2016-10-12 12:54 上傳
0.png (44.89 KB, 下載次數(shù): 153)
下載附件
2016-10-12 12:55 上傳
ch375測試程序:
ch375.rar
(65.42 KB, 下載次數(shù): 59)
2016-10-12 12:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
vs1003測試程序:
vs1003.rar
(22.51 KB, 下載次數(shù): 51)
2016-10-12 12:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
完整版:
MP3_V2.rar
(251.14 KB, 下載次數(shù): 113)
2016-10-12 12:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
能夠顯示短文件名:
MP3_V2_1.rar
(222.13 KB, 下載次數(shù): 62)
2016-10-12 12:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
CH375資料.rar
(1.01 MB, 下載次數(shù): 51)
2016-10-12 12:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
vs1003原理圖.rar
(80.24 KB, 下載次數(shù): 73)
2016-10-12 12:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
驅(qū)動你的vs1003.pdf
(314.72 KB, 下載次數(shù): 79)
2016-10-12 12:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|