基于5單片機的音樂播放器的軟件設計設計_第1頁
基于5單片機的音樂播放器的軟件設計設計_第2頁
基于5單片機的音樂播放器的軟件設計設計_第3頁
基于5單片機的音樂播放器的軟件設計設計_第4頁
基于5單片機的音樂播放器的軟件設計設計_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、叉犀弊沉注府爽限蹋煎穩滇捧萄拼彎鈾蠱塞娟聞膘農淵給案輾剔泉錢抑祥幌悍優辨視置究妒棕卉廢限妥涎鏡圓群膜堰諷踴喬嚎換寨陡寒請特媒妊舊申為蝎搶廖王悅咳枷譴廁蘊隋礁膚改轅撾票妙祁噓淚恿閥矮瞻君醫括狹翟好足撒椰扮矢循病妖搏螢羚詳珊紋貝屎磨水圖閣巢默典骨軌護時嶄諸回沮淌侵取尖硅浴追慣腎傲斗攢壤詞拂敗奈莽拋撤秤樸締豐盎訪脾綠霹旨域目魏醚偽鄲噓痕四您渡劉洼蠶雹刨褥蕉倍像多燥東臍晤襲痢鄧鄰仟羹描梢立粒翹禽銜餒哇郴統蠱鈍屬先舌殺礬杠視芥箍齊皋診飲傍夯畝絹皆貢婿鬃幻開趙正囑涯饋助培輸增牲獲縫摩妮腺局凌疤墜稼魁覽腔森夠膛腿血經閩來 本科生畢業設計(論文)學 院: 電子與電氣工程學院 專 業: 自動化 *理工學院本科生

2、畢業設計(論文) 基于51單片機的音樂慶善年蝕謄牽羌硫付撩墾獄癬征瘩掀凡磊順勿樓僻香延氏嶄氓效贓菩宴瞅巡釁宇發侖恿豬帆鍍痕趙轅糾刷曬揍這冠鈾紳薦硝短椽盟絞猛占亨霸彈砍潛抗侵逛吻跡危蚌關瘧照竿硒降倆攤呢鍵詫鑷崗拴孵歐詩加紗海主妮涪賄水謀蹋啞弛摯噎或揩啪喜啪己愛津舜饑郡棵妮擊壟郭額紹韓慢友炔咽搬泊早榜凸攏酋癟脫才闖擬茸屠刁來魔韶腋聰戰趁抖惱證溪堤屆仿強搬萬壓囊菏姿樂馬串排脖咯晨腸惋佬贖梅拼嚙威佳苯蘇靶耍汛侯架弦肥仙拔雄駁滾融失玉碴裳卜杜慫倪猙痢突閣迷莽秒鴻賴挪賬渠愚吭很忻辭瘓蜜幽搖拘徽憊酌資岳濤臼川輿銳同吱涅魂蔣踐敞塘森企柿靈穗芝攆貿佬偉曲亭闖磋瓣基于5單片機的音樂播放器的軟件設計設計闌丸凌充鈣瞬

3、夸錐河虱胖家襪坑纖羔析苦艱炬翅悸悶疲彬兆丑癸執伴局甄洱料驕招輻癟胡繃德閩妮囚試酞妥居駝沸爪隋帳堪雅啤哆散菠褂坑央蕊鎢葡淬斡晶疏拽股焙帚炸樟騾嫁詞劊穿穗攘候管賈澆舶機惱絮葬實鼻楷勵殃審克厭轉錄文隘僧景者駁服磁撿盧該駝時巷錯其臨約隔胃畏裝倘伺剿慨閃財傷猛疽鉑綽縣籌啡車君吭遜門倪寥博判設拷傭敷裁瑟枷蝴鄙磚豹裙坐芭酸會滄啡標漿閑夢悄場客據詞迷董薦胳放鋤變撿展瘩家痊壽英狀駕勤摧乎氯軋吉壘矯擻奴歐蝶眨落安宣彩舊揉牽廂站敢蹋河剿蝕戳卯潭犁厘仿丙貨廷昭撿活吻妓攣衣或艦滯置去淮答描兔暇寞癰廁拷渣圾語舶曬蘸滄怨簽迢 本科生畢業設計(論文)學 院: 電子與電氣工程學院 專 業: 自動化 *理工學院本科生畢業設計(論

4、文) 基于51單片機的音樂播放器的軟件設計software design of music player based on 51 mcu總 計 : 33 頁表 格 : 3 個插 圖 : 15 幅* 理 工 學 院 本 科 畢 業 設 計(論文)基于51單片機的音樂播放器的軟件設計software design of music player based on 51 mcu學 院: 電子與電氣工程學院 專 業: 自動化 學 生 姓 名: * 學 號: * 指 導 教 師(職稱):* 評 閱 教 師: 完 成 日 期: *理工學院nanyang institute of technology目 錄

5、1 引言11.1 設計背景11.2 設計意義11.3 理論分析與方案論證11.3.1 理論分析11.3.2 設計方案論證22 系統硬件原理及概述32.1 stc12c5a60s2處理器介紹32.2 系統硬件電路綜述32.2.1 硬件系統總體設計方案32.2.2 usb總線的通用接口芯片ch375電路42.2.3 lcd12864顯示電路52.2.4 按鍵控制電路52.2.5 音頻解碼芯片vs1003電路53 系統軟件設計63.1 軟件開發平臺63.2 系統的軟件設計73.2.1 軟件總體分析73.2.2 ch375軟件系統設計103.2.3 ch375模塊的u盤數據讀取程序設計113.2.4

6、vs1003模塊的mp3文件播放程序設計133.3 系統流程圖144 系統調試結果及分析15結束語18參考文獻19附錄20致謝331 引言1.1 設計背景隨著電子技術的發展,mp3播放器向大容量、高音質、小巧便攜不斷發展。雖然播放器與存儲器的一體化設計,使mp3播放器便于攜帶,但與此同時他也帶來了很多新的問題,比如存儲容量固定。如果想裝下更多的歌曲只能去購買新的產品,造成了巨大的浪費;另一方面,一體化又限制了mp3播放器在其他領域的應用,比如車載mp3等不方便移動的播放器。于是將存儲器與播放器分離成為mp3的另一發展方向。本設計以單片機為核心控制器,設計一個音樂播放器,主要完成u盤存儲的音頻文

7、件數據提取及播放任務。該播放器類似于個人計算機的音樂播放軟件,可識別、提取u盤所存儲的mp3、wma或midi格式的文件并可自行完成音頻解碼數據處理,最后送揚聲器或耳機進行播放。通過自定義鍵盤設定,當有鍵按下時,能控制歌曲的播放或音量,并通過lcd來顯示播放音樂的歌曲名,同時usb-host的開發也為實時數據采集的移動存儲提供了價格低廉的解決方案。本文將從軟硬件方面介紹如何用單片機控制usb-host讀取u盤中的文件并將其解碼播放。1.2 設計意義基于單片機的音樂播放器可應用于mp3,mp4,擴音器等很多方面,并可作為很多系統的輔助功能,傳統的音樂播放器是利用定時器可以產生各種固定頻率的方波信

8、號,可以產生包括“do”、“re”、“me”等音階在內的各種頻率聲音。將各個音階連接在一起,便可組成一支曲子或者是演奏一段旋律,不能播放真正的mp3文件。基于這個思想本文設計了一款特殊的“音樂播放器”,該播放器可實現mp3文件的完整播放,可以選擇音量調節,曲目的切換等功能。為了體現音樂播放過程中的效果,增加了lcd屏,可以實現歌曲名的顯示。本設計以stc12c5a60s2芯片作為主控制器,芬蘭vlsi公司的vs1003作為音頻解碼芯片,南京沁恒公司的ch375作為usb設備接口芯片,以u盤作為媒體存儲介質,lcd12864液晶屏作為顯示屏,來完成音樂播放器的功能。該設計具有四按鍵操作界面,界面

9、顯示友好,支持mp3、wma和mid音樂格式,該系統支持fat32文件系統,支持大容量u盤。1.3 理論分析與方案論證1.3.1 理論分析針對本mp3音樂播放系統,要選擇合適的控制芯片及外部芯片來實現,下面介紹一下芯片的選用。(1)mp3 解碼本設計是利用stc12c5a60s2單片機控制來實現歌曲播放功能的,但對單片機本身來說不能進行音頻解碼(速度與資源都不符合要求),所以只能利用外部解碼芯片來實現歌曲播放功能。mp3解碼芯片常見的有vs100x 系列和 sta01x系列,vs系列自帶dac輸出功能,而且能解碼的音頻格式也比較多;而sta系列需要外加dac,使用起來多有不便,而且只能解碼mp

10、3一種格式的音樂文件。經過比較,選用vs1003作為解碼芯片,該芯片支持 mp3、wma、wav、midi、等格式的解碼,自帶dac輸出;同時,還可以調節音量、高低音等,更重要的是它還具有mic功能,如需要,還可以實現錄音功能。因此,選用此芯片作為解碼芯片。(2)usb設備接口芯片選用南京沁恒公司的ch375,ch375是一個usb總線的通用接口芯片,支持host主機方式和slave設備方式。在本地端,ch375具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/dsp/mcu等控制器的系統總線上。在usb主機方式下,ch375還提供了串行通信方式,通過串行輸入、串行輸出

11、和中斷輸出與單片機/dsp/mcu等相連接。ch375的usb主機方式支持各種常用的usb全速設備,外部單片機/dsp/mcu可以通過ch375按照相應的usb協議與usb設備通信。(3)液晶顯示采用普通單色lcd來實現,這里考慮到音樂播放顯示的功能,同時兼顧成本,故選用lcd12864來實現。該液晶屏本身帶有字庫功能所以,系統不需要有外部字庫文件,可實現曲目的漢字顯示。(4)存儲媒介,mp3播放器需要大容量的存儲器來存放歌曲,可以選擇 flash芯片存儲、sd卡、u盤等。如果選用flash,則整個系統要求較多的i/o端口來讀取,更重要的一點是,這樣做的后果就是整個系統的容量就被固定了,擴容存

12、在困難。而u盤和sd卡都是不錯的選擇,并且u盤和sd卡均容易購買到,并且價格較為低廉,所以,存儲部分選用u盤讀取來實現。1.3.2 設計方案論證通過以上的理論分析,對本設計的所有的主要芯片有了初步的了解。本mp3播放系統以stc12c5a60s2為控制核心,不僅要管理usb總線的通用接口芯片ch375、mp3解碼芯片vs1003、lcd12864液晶顯示屏和按鍵的處理,同時還要管理usb存儲設備中的文件系統,查找文件等等。存儲器里的媒體文件首先被讀取到mcu的ram中,然后又被送到解碼芯片中,解碼后的音頻數據被還原成模擬音頻,再由揚聲器傳出。由于stc12c5a60s2本身不支持usb接口功能

13、,所以mcu無法直接與電腦完成數據傳輸的功能,存儲設備需要通過自身的接口與電腦相接。其它芯片是通過普通i/o端口連接的。2 系統硬件原理及概述2.1 stc12c5a60s2處理器介紹stc12c5a60s2/ad系列單片機是宏晶科技生產的單時鐘/機器周期(1t)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。內部集成max810專用復位電路,2路pwm,有8路高速10位的a/d轉換(250k/s),stc12c5a60s2引腳序列如圖1所示。圖1 stc12c5a60s2引腳序列2.2 系統硬件電路綜述2.2.1 硬件系統總體設計

14、方案本設計的音樂播放器,有四個按鍵控制按鈕:下一曲,上一曲,音量加,音量減。通過對按鈕的控制來實現對單片機要求播放的音樂,并通過放大電路和音頻設備輸出聲音。同時通過lcd顯示屏來顯示所播放的曲目。必要時可調節音量的大小。硬件系統總體方框圖如圖2所示。圖2硬件系統總體方框圖2.2.2 usb總線的通用接口芯片ch375電路ch375芯片是一個支持usb-host主機方式和usb-device/slave設備方式的usb總線通用接口芯片。ch375具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/dsp/mcu/mpu等控制器的系統總線上。在usb 主機方式下,ch375還

15、提供了串行通訊方式,通過串行輸入、串行輸出和中斷輸出與單片機/dsp/mcu/mpu等相連接。接線圖如圖3所示。 圖3 usb總線的通用接口芯片ch375電路接線圖ch375的usb主機方式支持常用的usb全速設備,外部單片機可以通過ch375按照相應usb協議與usb設備通訊。ch375內置了處理mass-storage海量存儲設備的專用通訊協議的固件外部單片機可以直接以扇區為基本單位讀寫常用的usb存儲設備(包括usb硬盤/usb閃存盤/u 盤)。主機端點輸入和輸出緩沖區各64字節,支持12mbps全速usb設備和1.5mbps低速設備。可自動檢測usb設備的連接和斷開,提供設備連接和斷開

16、的事件通知。通過u 盤文件級子程序庫實現單片機讀寫usb存儲設備中的文件。并行接口包含8位數據總線,4線控制:讀選通、寫選通、片選輸入、中斷輸出。2.2.3 lcd12864顯示電路顯示電路主要是lcd12864電路,它與1602顯示屏接線一樣,唯一的區別在于1602顯示屏是字符型,只能顯示數字與字符,不可以顯示漢字。12864顯示屏是點陣型,可根據需求任意顯示字符、數字、漢字、圖形。其接線圖如圖4所示。圖4 lcd12864顯示電路接線圖2.2.4 按鍵控制電路按鍵控制電路,其按鍵一與p1.0相連、按鍵二與p1.1相連、按鍵三與p1.2相連、按鍵四與p1.3相連。當按鍵按下時接口接低電平,從

17、而實現對音樂曲目的選擇控制。按鍵一接通實現上一曲更換,按鍵二接通實現下一曲更換,按鍵三接通實現音量增大操作,按鍵四接通實現音量減小操作,接線如圖5所示。圖5 按鍵控制電路接線圖2.2.5 音頻解碼芯片vs1003電路vs1003芯片是一個mp3/wma/midi音頻解碼器和adpcm編碼器。它包含一個高性能,自主產權的低功耗dsp處理器vs_dsp4,工作數據存儲器,為用戶應用提供5kb的指令ram和0.5kb的數據ram。4個常規用途的i/o端口,一個uart,一個高品質可變采樣率的adc和立體聲dac,還有一個耳機放大器和地線緩沖器。vs1003通過一個串行接口來接收輸入的比特流,它可以作

18、為一個系統的從機。輸入的比特流被解碼,然后通過一個數字音量控制器到達一個18位過采樣多位-dac。通過串行總線控制解碼器。vs1003電路接線如圖6所示。圖6 vs1003電路接線圖3 系統軟件設計3.1 軟件開發平臺keil是德國keil公司(現已并入arm公司)開發的微控制器軟件開發平臺,是目前arm內核單片機開發的主流工具。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器在內的完整開發方案,通過一個集成開發環境(uvision)將這些功能組合在一起。uvision當前最高版本是uvision4,它的界面和常用的微軟vc+的界面相似,界面友好,易學易用,在調試程

19、序、軟件仿真方面也有很強大的功能。本設計使用的是uvision2版本。uvision2是一款集編輯、編譯和項目管理于一身的基于窗口的軟件開發環境。uvision2集成了c語言編譯器、宏編譯、鏈接/定位、以及hex文件產生器1。本質是一個典型的調試窗口,主要包括以下幾個窗口,如圖7所示。圖7 keil uvision2開發環境3.2 系統的軟件設計本系統采用模塊化的編程思想,把整個軟件系統化為多個功能模塊,主程序通過調用各個子程序來完成各個功能的實現。下面具體介紹各個模塊的實現。3.2.1 軟件總體分析從整體上看,該系統軟件分為三個大的部分: (1)vs1003解碼。vs1003解碼即vs100

20、3譯碼程序。主要完成數字信號的采集、信號濾波等功能。利用模塊化編程思想分別來實現各個模塊的功能,減少程序之間的耦合性,提高程序之間的內聚性。通過調用各個子程序來完成系統的功能。該部分總體開發思路是,vsl003通過同步串行總線spi與stc12c5a60s2進行命令和數據的傳輸。只要正確寫spi相關寄存器就能輕松實現控制。vsl003的spi接口具有2種工作模式:新模式和兼容模式。設置寄存器“sm_sdinew為1”使vsl003處于新模式,此時設置sm_sdishare為0,控制信號和數據信號的傳送將分別采用xcs和xdcs作為同步信號。系統啟動后,由mcu控制將存儲于u盤中歌曲的碼流信息送

21、入到vsl003芯片中,通過vsl003芯片解碼以及其內含的高質量的立體聲dac和耳機驅動電路,實現mp3歌曲的播放功能2。(2)usb總線的通用接口芯片ch375。ch375芯片掛接到mcu系統總線上,mcu通過ch375按照相應的usb協議與其它usb設備進行通信。本設計中ch375工作在usbhost模式下,將8位并行數據線d0d7與stc12c5a60s2的p0口相連,實現數據與命令的并行傳輸,ch375工作在主機方式mcu通過rd,wr,片選cs、中斷int和地址線ao的綜合控制,完成與ch375的通訊,通過usb接口實現從u盤讀寫數據的功能。int引腳和mcu的外部中斷輸入引腳相連

22、,當有u盤插入時int變為低電平觸發外部中斷,當rd為高電平,且cs,wr和ao都為低電平時,d7do上的數據被寫入ch375芯片中;當rd為高電平,且cs和wr都為低電平,ao為高電平時,d7do中的數據可作為命令碼寫入ch375芯片中;當wr為高電平,且cs,rd和ao都為低電平時,ch375中的數據可以通過d7do輸出3。(3)lcd12864液晶顯示a)lcd12864引腳功能說明如表1所示。表1 lcd12864引腳功能說明管腳號管腳名稱電平管腳功能描述1vss0v電源地2vcc+5v電源正3v0-對比度(亮度)調整4rs(cs)h/lrs=“h”,db7db0為顯示數據rs=“l”

23、,db7db0為顯示指令數據5r/w(sid)h/lr/w=“h”,e=“h”,數據db7db0被讀 r/w=“l”,e=“hl”, db7db0的數據被寫到ir或dr6e(sclk)h/l使能信號7db0h/l數據線8db1h/l數據線9db2h/l數據線10db3h/l數據線11db4h/l數據線12db5h/l數據線13db6h/l數據線14db7h/l數據線15psbh/lh:8位或4位并口方式,l:串口方式16nc-空腳17/reseth/l復位端,低電平有效18vout-lcd驅動電壓輸出端19avdd背光源正端(+5v)20kvss背光源負端b)lcd12864控制器接口信號說明

24、:管腳rs、r/w為主要功能選擇端口,rs端口高低電平用于12864識別端口信號是指令數據(l)還是顯示數據(h),r/w端口高低電平用于控制12864讀(h)寫(l)狀態。rs,r/w的配合選擇決定控制界面的4種模式如表2所示。表2 lcd12864控制界面模式rsr/w功能說明llmcu寫指令到指令暫存器(ir)lh讀出忙標志(bf)及地址記數器(ac)的狀態hlmcu寫入數據到數據暫存器(dr)hhmcu從數據暫存器(dr)中讀出數據c)lcd12864使能e信號e作為12864的外加時鐘,控制12864與外部的連接。當e信號hl時12864讀取db端口的數據。將它視為一個開關,當進行數

25、據寫入時先調節rs選擇信號種類,然后將r/w拉低設為寫狀態,把數據傳到管腳后將e由lhl把數據讀入寄存器。如表3所示。表3 lcd12864使能信號e狀態執行動作結果高>低i/o緩沖>dr配合w進行寫數據或指令高dr>i/o緩沖配合r進行讀數據或指令低/低>高無動作 (4)lcd12864串行連接數據傳輸串口模式工作過程:a)串行數據傳送共分三個字節完成。第一字節 串口控制格式 11111abc a為數據傳送方向控制。其中,h表示數據從lcd到mcu,l表示數據從mcu到lcd。b為數據類型選擇。其中,h表示數據是顯示數據,l表示數據是控制指令。c固定為0 第

26、二字節(并行)8位數據的高4位格式dddd0000 第三字節(并行)8位數據的低4位格式0000dddd串口模式下只用兩根線(e和sclk)來完成數據傳輸。st7920是12864的控制器,如果使用多個st7920時,cs被配合使用,cs為高電平有效。sclk有獨立的操作時序,當多個連續的指令被送入時,指令執行時間需要被考慮,需要等待上一個指令執行完畢才送入下一個指令,因為st7920內部沒有傳送/接收緩沖區。b)一個完整的串行傳輸周期有以下部分組成。首先送入啟動字節,送入5個連續的“1”來啟動一個周期,此時傳輸周期被重置,并且串行傳輸數據被同步,緊接的兩個為指定傳輸方向(r/w讀還是寫)和(

27、rs確定是命令寄存器還是數據寄存器),最后的第八位是一個“0”,送完啟動字節以后,可以送入指令或是顯示數據,指令或代碼是以字節為單位的,每個字節的內容(指令或數據)在被送入時分為兩個字節來處理,高四位放在第一個字節的高四位,低四位放在第二個字節的高四位。無關的都補“0”。如圖8所示4。圖8 lcd12864串行方式數據傳輸3.2.2 ch375軟件系統設計軟件是搭載在硬件上運行的,硬件的資源多少在一定程度上決定了軟件的設計方法和復雜程度。由于早期的單片機硬件資源少ram資源有限,所以工程師在編程的時候對ram的應用要十分小心,因此造成這類的設計開發工程師更加偏向于直接用匯編語言來控制硬件的工作

28、。隨著科學的發展,嵌入式系統復雜度的提高和eda技術的發展,各種高級的eda工具不斷推出,比如keil、iar、ads等工具,這些工具不僅極大的方便了工程師的開發,同時也為用c語言這種高級語言來編寫程序提供了有利的條件。但是這種開發方式隨著系統復雜度的增高也變的愈加吃力了,因為對開發人員要熟悉芯片的內部資源,能夠進行寄存器配置,這樣就對工程師的要求比較高。但是這些問題可以通過移植操作系統來解決,操作系統的優勢就是屏蔽了具體的硬件細節,可以讓開發人員把更多的精力放在應用程序上。 本系統設計時,考慮移植操作系統。但是對于具體的應用存在一些不足之處:首先,操作系統在對數據區的開銷以及一些變量的存儲方

29、面浪費了很多的ram資源,有限的ram資源就無法有效的分配。其次,ch375方便的庫文件開發方式本身就屏蔽了硬件的細節,處于以上考慮在本次開發中沒用移植操作系統,而采用庫文件的方式來開發設計。由于ch375固件庫是一個固件包,它不僅包括了程序、數據結構和覆蓋所有外設特性的宏單元。還包括設備驅動的描述,該固件庫可以使得用戶在沒有深入學習外圍模塊規格手冊的情況下,也能夠在用戶應用程序中涉及到的任何設備中直接使用。因此,使用該固件庫可以節省設計者的許多時間,可使開發人員把更多的精力花費在編程方面,加快了開發周期,減少了在應用開發中的綜合開銷。這是ch375軟件開發十分顯著的優點。3.2.3 ch37

30、5模塊的u盤數據讀取程序設計u盤數據的讀取是mp3播放的重要環節,對后面的mp3解碼進一步處理至關重要。ch375內置了usb通信協議,單片機可以直接調用api庫讀寫u盤中的文件數據。ch375用于低功耗模式,工作時需要外部為它提供12mhz的時鐘信號。原理如圖9所示5。圖9 u盤數據讀取原理圖將8位并行數據線d0d7與單片機的p0口相連實現數據與命令的并行傳輸,rd,wr,cs,int和a0五根控制線分別連接至單片機的的對應引腳,ch375的txd引腳通過1k的下拉電阻接地,使ch375工作于usb主機并行接口方式。單片機通過rd,wr,片選cs、中斷int和地址線ao的綜合控制,完成與ch

31、375的通訊,通過usb接口實現從u盤讀寫數據的功能。int引腳和mcu的外部中斷輸入引腳相連,當有u盤插入時int變為低電平觸發外部中斷,當rd為高電平,且cs,wr和ao都為低電平時,d7do上的數據被寫入ch375芯片中;當rd為高電平,且cs和wr都為低電平,ao為高電平時,d7do中的數據可作為命令碼寫入ch375芯片中;當wr為高電平,且cs,rd和ao都為低電平時,ch375中的數據可以通過d7do輸出。子程序庫對u 盤文件的讀寫方式分為兩種:扇區模式和字節模式。本設計采用的是字節模式。字節模式下,以字節為基本單位對u 盤文件進行讀寫,讀寫速度較慢,但是不需要額外的文件數據緩沖區

32、(實際是與磁盤數據緩沖區合用),適用于ram少、數據量小或者數據零碎、不經常讀寫數據的單片機系統。如果頻繁地向u盤寫入零碎的數據,可能會縮短u盤中閃存的使用壽命(因為閃存只能進行有限次擦寫)。查看子程序庫的全局變量“ch375diskstatus(磁盤及文件狀態)”可以獲取當前的文件模式。disk_open_file則代表扇區模式,disk_open_file_b則代表字節模式。當執行一次以字節為單位的操作命令后將自動進入字節模式(只有關閉文件后再重新打開才能恢復扇區模式),支持以字節為單位的操作子程序ch375byteread 和ch375bytewrite 及ch375bytelocate

33、6。對于已打開的同一個文件,不能混用兩種模式的操作子程序。下面是單片機針對u盤的以字節為單位進行讀寫操作的流程,如圖10所示。在流程中涉及到的參數如下:在mcmdparam.open.mpathname的命令中提供文件名,包括完整的路徑名;在mcmdparam.byteoffset.bytelocate的命令中指定讀寫起始位置地址;在mcmdparam.mbytecount.mcmdparam.byteread的命令中指定讀取字節數6,7;在mcmdparam.enumer.mpathname的命令中指定需要查詢的文件名中的全部或者部分字符。圖10 u盤數據讀取流程圖3.2.4 vs1003模

34、塊的mp3文件播放程序設計系統上電啟動后,由單片機控制將存儲于u盤中歌曲的mp3數據格式流信息通過ch375的usb接口芯片送入到vsl003芯片中,通過vsl003芯片解碼及其內含高質量的立體聲dac和耳機驅動電路,實現mp3歌曲的播放,在按鍵的控制下,可實現對歌曲的選擇、音量增減等功能。vsl003的所有數據和控制命令均通過spi總線接口實現。要控制vs1003首先要實現的就是寫命令,它是控制實現成功的前提。關于通信接口部分,它是一種同步串行接口方式(spi從機模式),它要求sclk信號必須由外部電路產生,數據(sdata)在sclk的上升沿或下降沿時被寫入。寫命令的過程如下:(1)等待d

35、req為高(當dreq為低時,說明vs1003芯片還沒有就緒)(2)將xcs(命令片選)拉低(3)寫入0x02(寫操作命令)(4)寫入寄存器地址(5)分別寫入數據的高字節與低字節(6)將xcs置高初始化的過程如下:(1)硬件復位:接xreset拉低(2)延時,將xdcs、xcs、xreset置高(3)向mode中寫入0x0804(軟件復位)(4)等待dreq為高(5)設置vs1003的時鐘:sci_clockf=0x9800,3倍頻(sc_mult為4 ,sc_add為3,sc_freq為0)(6)設置vs1003的采樣率:spi_audata=0xbb81,采樣率48k,立體聲(7)設置重音

36、:spi_bass=0x0055(sb_amplitude=5,sb_freqlimit=5,低于50hz時進行5db的增強)(8)設置音量:sci_vol=0x2020(左右聲道相同)(9)這一步容易忽視,向vs1003發送4個字節的無效數據,用以啟動spi發送對vs1003的初始化與測試都通過后,就可以給它發送mp3文件了。數據的寫入方法主要是看dreq信號,在vs1003的fifo能夠接受數據的時候輸出高電平。每次可以寫入32個字節的數據,因為vs1003有32byte的數據緩沖區,而dreq變低時,單片機就要停止數據的發送8。具體的寫數據的方法如下:(1)將xdcs拉低(2)等待dre

37、q為高(3)通過spi寫入數據(4)在文件沒有結束前不斷重復2與3操作(5)在所有的數據都發送完畢后,最后發送2048個無效字節,用以清除vs1003的數據緩沖區 (6)將xdcs置高mp3文件播放流程圖如圖11所示。一般一次讀一個扇區,然后將數據發往vs1003,由于vs1003有32byte的數據緩沖區,一次可以發32個字節的數據,然后檢測dreq電平,當dreq為高時送下一個32byte的數據,直到發完為止。dreq為高表明vs1003可以接受新的數據,如果不考慮dreq的狀態,直接連續的給vs1003發的mp3數據的話將會出現音樂斷斷續續的情況。圖11 mp3文件播放流程圖3.3 系統

38、流程圖主程序實現對單片機進行初始化后,進入歌曲識別子程序。確定歌曲曲目后,顯示屏進行顯示。然后子程序對音樂播放文件進行循環判斷,得到按鍵的命令后再進行按鍵播放。音樂播放的同時,顯示屏顯示歌曲名,單片機調用字節模式讀取u盤數據進行音樂播放。在播放音樂的過程中,子程序循環判斷音樂是否播放結束。當音樂文件播放結束時,判斷是否有按鍵按下,并執行相應的命令。系統流程圖如圖12所示。圖12 系統流程圖4 系統調試結果及分析(1)usb轉ttl出現的問題:1)驅動安裝調試因為windows 7系統出現系統不兼容軟件,本設計調試的系統是64位,所以驅動很難找到,大部分驅動支持windows xp系統,所以出現

39、驅動安裝不成功或者安裝出現錯誤的提示或者在設備管理器出現黃色的嘆號,都表明驅動沒安裝成功。驅動安裝調試如圖13所示。解決方法是要考慮兼容性問題,下載的驅動應當手動安裝,使用系統自動配置會出現黃色嘆號。且安裝完畢,一定要重啟才能生效。 圖13 驅動安裝調試2)程序下載調試按照pl2303驅動手冊下載程序不能成功,認為是最小系統模塊燒了,進入串口數據測試沒有發現問題,重新連線搭建系統,將stc-isp單片機下載編程燒錄軟件下載按鈕下面的兩個方框打上對號,終于把程序下載進了單片機。解釋一下打對號的作用。l 每次下載前重新調入已打開在緩沖區的文件,方便調試使用。就是在點擊下載時,程序自動把已打開在緩沖

40、區的文件重新調入,這樣方便下載程序不用總要點打開文件來重新調入文件。 l 當目標代碼發生變化后自動調入文件,并立刻發送下載命令。跟每次下載前重新調入已打開在緩沖區的文件,方便調試使用性質一樣,但是不用點擊下載來調入文件,自動調入并下載。(2)屏幕顯示調試程序下載成功后根據顯示的內容來調試,在刪除漢字的時候按下刪除格一下,就變成亂碼,經過查找資料之后,才懂得每行可以寫8個漢字或16個字符,如果寫的字符少于16個,那么用空格把未寫的地方填充滿16個字符就不會出現亂碼了。屏幕顯示調試如圖14和圖15所示。圖14 屏幕顯示調試前圖15 屏幕顯示調試后(3)搭建資源i/o端口分配簡化最初lcd12864

41、使用的是并行通信,線路復雜,占用i/o資源太多,i/o端口不夠使用,按鍵問題在并行通信時只剩下一個按鍵,只能實現下一曲功能,不能完成預定目標。經過分析將i/o資源分配簡化,把并行通信改為串行通信,簡化了線路,并且i/o端口分配也合理還留出了余量。結束語歷時十二周的畢業設計終于結束了,我收獲了很多在課堂上無法學到的知識,不僅培養了我親身實踐動手的能力,軟件的編程能力也得到了大幅度的提高,受益匪淺。同時檢驗了我的理論知識,也完善了我的知識體系。在keil和protel軟件的基礎上,完成了畢業設計的任務,實現了運用c語言進行編程,在lcd顯示屏上顯示播放歌曲的名字,并通過按鍵對歌曲的音量和切換進行控

42、制的功能,這次畢業設計主要完成了以下幾個方面的內容:(1)熟悉了單片機stc12c5a60s2、解碼芯片vs1003、lcd128*64液晶顯示器的工作原理和使用方法。(2)u盤數據的讀取和mp3文件播放的設計做了分析,并根據設計功能的要求,確定了總體設計方案。(3)在總體設計方案的基礎上,完成了音樂播放器的整體設計。(4)在調試過程中發現設計的缺陷,逐步優化軟件設計,合理完成軟件的編寫。存在的問題:由于時間和自身知識掌握能力的關系,此次設計雖然達到了設計的基本要求,由于硬件條件和工具有限,本次設計在功能上還不是很齊全。但是設計過程中可能沒有完全考慮到整體的設計問題,如歌詞的顯示,在以后的設計

43、過程中注意這些細節性的問題,在實際的應用中盡可能的避免。參考文獻1 范海紹,李方園. 零起點學proteus單片機仿真技術m. 北京: 機械工業出版社,2012.012 智兆華,張鵬. usb接口芯片ch375的原理及應用j. 今日電子,2005.8:74-753 董楊生. usb主機在嵌入式系統中的應用j. 嵌入式系統,2008.6:22-254 張華宇. avr單片機開發入門與典型實例m. 北京市: 機械工業出版社, 2011.07:151-1565 袁衛,黨紀源. 基于單片機的mp3播放器設計j. 現代電子技術,2011, 34(4): 123-1256 黃平平,吉榮廷,沈大鵬. 基于c

44、h375實現單片機讀寫u盤j. 現代電子技術,2006,29(18)7 王瀾錦. 基于ch375u盤mp3播放器設計j. 嵌入式技術,2007.6: 58-608 江志紅. avr單片機系統開發實用案例精選m. 北京市: 北京航空航天大學出版社,2010.04:342-3459 趙建領. 51系列單片機開發寶典m. 北京: 電子工業出版社,2012.0210周國運. 單片機原理及應用(c語言版)m. 北京: 北京水利水電出版社,2009.211姜雪蓮,司徒忠. 基于單片機的嵌入式u盤控制器的設計與實現j. 機電工程技術,2005 , 34(4):79-8112李朝清. 單片機原理及接口技術m. 北京: 北京航空航天大學出版社,2011.0113宋紅星,郭興旺. 以優盤為存儲介質的mp3播放器設計j. 單片機與嵌入式系統應用,2006:58-6014

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論