【正文】
南 陽 理 工 學(xué) 院 本科生畢業(yè)設(shè)計(論文)學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 自動化 學(xué) 生: 郝帥臣 指導(dǎo)教師 : 劉忠超 完成日期 2013 年 5 月 南陽理工學(xué)院本科生畢業(yè)設(shè)計(論文) 基于51單片機的音樂播放器的軟件設(shè)計Software Design of Music Player Based on 51 MCU總 計 : 33 頁表 格 : 3 個插 圖 : 15 幅南 陽 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(論文)基于51單片機的音樂播放器的軟件設(shè)計Software Design of Music Player Based on 51 MCU學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 自動化 學(xué) 生 姓 名: 郝帥臣 學(xué) 號: 1109624064 指 導(dǎo) 教 師(職稱):劉忠超(講師) 評 閱 教 師: 完 成 日 期: 南陽理工學(xué)院Nanyang Institute of Technology基于51單片機的音樂播放器的軟件設(shè)計自動化專業(yè) 郝帥臣[摘 要]本課題完成了基于51單片機的音樂播放器的軟件設(shè)計。論文主要介紹了對U盤所存儲的MPWMA或MIDI格式的文件識別、提取以及音頻解碼程序?qū)崿F(xiàn)的方法,通過與硬件調(diào)試表明所設(shè)計的音樂播放器可以通過按鍵選擇歌曲以及控制音量,同時還可以通過顯示屏來顯示所播放的歌曲名。聲音的播放可以通過揚聲器或耳機進行,基本實現(xiàn)了音樂播放器的功能。[關(guān)鍵詞]單片機;音樂播放器;U盤文件讀?。灰纛l解碼 Software Design of Music Player Based on 51 MCUAutomation Specialty Hao ShuaichenAbstract:This topic finishes the software design of the music player based on the 51 microcontroller. The paper mainly introduces the method of identification, extraction and audio decoding program to the storing the U disk MP3, WMA or MIDI format file. At the same time the hardware debugging shows that the music player can select the songs and control the volume through the keyboard, at the same time through the screen display the song name. The sound can play through the speakers or headphones. The design basically realizes the function of music player.Key words:Single chip microputer。 music player。 u disk file reading。 audio decoding目 錄1 引言 1 設(shè)計背景 1 設(shè)計意義 1 理論分析與方案論證 1 理論分析 1 設(shè)計方案論證 22 系統(tǒng)硬件原理及概述 3 STC12C5A60S2處理器介紹 3 系統(tǒng)硬件電路綜述 3 硬件系統(tǒng)總體設(shè)計方案 3 USB總線的通用接口芯片CH375電路 4 LCD12864顯示電路 5 按鍵控制電路 5 音頻解碼芯片VS1003電路 53 系統(tǒng)軟件設(shè)計 6 軟件開發(fā)平臺 6 系統(tǒng)的軟件設(shè)計 7 軟件總體分析 7 CH375軟件系統(tǒng)設(shè)計 10 CH375模塊的U盤數(shù)據(jù)讀取程序設(shè)計 11 VS1003模塊的MP3文件播放程序設(shè)計 13 系統(tǒng)流程圖 144 系統(tǒng)調(diào)試結(jié)果及分析 15結(jié)束語 18參考文獻 19附錄 20致謝 33 1 引言 設(shè)計背景隨著電子技術(shù)的發(fā)展,MP3播放器向大容量、高音質(zhì)、小巧便攜不斷發(fā)展。雖然播放器與存儲器的一體化設(shè)計,使MP3播放器便于攜帶,但與此同時他也帶來了很多新的問題,比如存儲容量固定。如果想裝下更多的歌曲只能去購買新的產(chǎn)品,造成了巨大的浪費。另一方面,一體化又限制了MP3播放器在其他領(lǐng)域的應(yīng)用,比如車載MP3等不方便移動的播放器。于是將存儲器與播放器分離成為MP3的另一發(fā)展方向。本設(shè)計以單片機為核心控制器,設(shè)計一個音樂播放器,主要完成U盤存儲的音頻文件數(shù)據(jù)提取及播放任務(wù)。該播放器類似于個人計算機的音樂播放軟件,可識別、提取U盤所存儲的MPWMA或MIDI格式的文件并可自行完成音頻解碼數(shù)據(jù)處理,最后送揚聲器或耳機進行播放。通過自定義鍵盤設(shè)定,當(dāng)有鍵按下時,能控制歌曲的播放或音量,并通過LCD來顯示播放音樂的歌曲名,同時USBHOST的開發(fā)也為實時數(shù)據(jù)采集的移動存儲提供了價格低廉的解決方案。本文將從軟硬件方面介紹如何用單片機控制USBHOST讀取U盤中的文件并將其解碼播放。 設(shè)計意義基于單片機的音樂播放器可應(yīng)用于MP3,MP4,擴音器等很多方面,并可作為很多系統(tǒng)的輔助功能,傳統(tǒng)的音樂播放器是利用定時器可以產(chǎn)生各種固定頻率的方波信號,可以產(chǎn)生包括“Do”、“Re”、“Me”等音階在內(nèi)的各種頻率聲音。將各個音階連接在一起,便可組成一支曲子或者是演奏一段旋律,不能播放真正的MP3文件。基于這個思想本文設(shè)計了一款特殊的“音樂播放器”,該播放器可實現(xiàn)MP3文件的完整播放,可以選擇音量調(diào)節(jié),曲目的切換等功能。為了體現(xiàn)音樂播放過程中的效果,增加了LCD屏,可以實現(xiàn)歌曲名的顯示。本設(shè)計以STC12C5A60S2芯片作為主控制器,芬蘭VLSI公司的VS1003作為音頻解碼芯片,南京沁恒公司的CH375作為USB設(shè)備接口芯片,以U盤作為媒體存儲介質(zhì),LCD12864液晶屏作為顯示屏,來完成音樂播放器的功能。該設(shè)計具有四按鍵操作界面,界面顯示友好,支持MPWMA和MID音樂格式,該系統(tǒng)支持FAT32文件系統(tǒng),支持大容量U盤。 理論分析與方案論證 理論分析針對本MP3音樂播放系統(tǒng),要選擇合適的控制芯片及外部芯片來實現(xiàn),下面介紹一下芯片的選用。(1)MP3 解碼本設(shè)計是利用STC12C5A60S2單片機控制來實現(xiàn)歌曲播放功能的,但對單片機本身來說不能進行音頻解碼(速度與資源都不符合要求),所以只能利用外部解碼芯片來實現(xiàn)歌曲播放功能。MP3解碼芯片常見的有VS100X 系列和 STA01X系列,VS系列自帶DAC輸出功能,而且能解碼的音頻格式也比較多;而STA系列需要外加DAC,使用起來多有不便,而且只能解碼MP3一種格式的音樂文件。經(jīng)過比較,選用VS1003作為解碼芯片,該芯片支持 MPWMA、WAV、MIDI、等格式的解碼,自帶DAC輸出;同時,還可以調(diào)節(jié)音量、高低音等,更重要的是它還具有MIC功能,如需要,還可以實現(xiàn)錄音功能。因此,選用此芯片作為解碼芯片。(2)USB設(shè)備接口芯片選用南京沁恒公司的CH375,CH375是一個USB總線的通用接口芯片,支持HOST主機方式和SLAVE設(shè)備方式。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU等控制器的系統(tǒng)總線上。在USB主機方式下,CH375還提供了串行通信方式,通過串行輸入、串行輸出和中斷輸出與單片機/DSP/MCU等相連接。CH375的USB主機方式支持各種常用的USB全速設(shè)備,外部單片機/DSP/MCU可以通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信。(3)液晶顯示采用普通單色LCD來實現(xiàn),這里考慮到音樂播放顯示的功能,同時兼顧成本,故選用LCD12864來實現(xiàn)。該液晶屏本身帶有字庫功能所以,系統(tǒng)不需要有外部字庫文件,可實現(xiàn)曲目的漢字顯示。(4)存儲媒介,MP3播放器需要大容量的存儲器來存放歌曲,可以選擇 Flash芯片存儲、SD卡、U盤等。如果選用Flash,則整個系統(tǒng)要求較多的I/O端口來讀取,更重要的一點是,這樣做的后果就是整個系統(tǒng)的容量就被固定了,擴容存在困難。而U盤和SD卡都是不錯的選擇,并且U盤和SD卡均容易購買到,并且價格較為低廉,所以,存儲部分選用U盤讀取來實現(xiàn)。 設(shè)計方案論證通過以上的理論分析,對本設(shè)計的所有的主要芯片有了初步的了解。本MP3播放系統(tǒng)以STC12C5A60S2為控制核心,不僅要管理USB總線的通用接口芯片CH37MP3解碼芯片VS100LCD12864液晶顯示屏和按鍵的處理,同時還要管理USB存儲設(shè)備中的文件系統(tǒng),查找文件等等。存儲器里的媒體文件首先被讀取到MCU的RAM中,然后又被送到解碼芯片中,解碼后的音頻數(shù)據(jù)被還原成模擬音頻,再由揚聲器傳出。由于STC12C5A60S2本身不支持USB接口功能,所以MCU無法直接與電腦完成數(shù)據(jù)傳輸?shù)墓δ?,存儲設(shè)備需要通過自身的接口與電腦相接。其它芯片是通過普通I/O端口連接的。2 系統(tǒng)硬件原理及概述 STC12C5A60S2處理器介紹STC12C5A60S2/AD系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快812倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,有8路高速10位的A/D轉(zhuǎn)換(250K/S),STC12C5A60S2引腳序列如圖1所示。圖1 STC12C5A60S2引腳序列 系統(tǒng)硬件電路綜述 硬件系統(tǒng)總體設(shè)計方案本設(shè)計的音樂播放器,有四個按鍵控制按鈕:下一曲,上一曲,音量加,音量減。通過對按鈕的控制來實現(xiàn)對單片機要求播放的音樂,并通過放大電路和音頻設(shè)備輸出聲音。同時通過LCD顯示屏來顯示所播放的曲目。必要時可調(diào)節(jié)音量的大小。硬件系統(tǒng)總體方框圖如圖2所示。圖2硬件系統(tǒng)總體方框圖 USB總線的通用接口芯片CH375電路CH375芯片是一個支持USBHOST主機方式和USBDEVICE/SLAVE設(shè)備方式的USB總線通用接口芯片。CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU/MPU等控制器的系統(tǒng)總線上。在USB 主機方式下,CH375還提供了串行通訊方式,通過串行輸入、串行輸出和中斷輸出與單片機/DSP/MCU/MPU等相連接。接線圖如圖3所示。 圖3 USB總線的通用接口芯片CH375電路接線圖CH375的USB主機方式支持常用的USB全速設(shè)備,外部單片機可以通過CH375按照相應(yīng)USB協(xié)議與USB設(shè)備通訊。CH375內(nèi)置了處理MassStorage海量存儲設(shè)備的專用通訊協(xié)議的固件外部單片機可以直接以扇區(qū)為基本單位讀寫常用的USB存儲設(shè)備(包括USB硬盤/USB閃存盤/U 盤)。主機端點輸入和輸出緩沖區(qū)各64字節(jié)??勺詣訖z測USB設(shè)備的連接和斷開,提供設(shè)備連接和斷開的事件通知。通過U 盤文件級子程序庫實現(xiàn)單片機讀寫USB存儲設(shè)備中的文件。并行接口包含8位數(shù)據(jù)總線,4線控制:讀選通、寫選通、片選輸入、中斷輸出。 LCD12864顯示電路顯示電路主要是LCD12864電路,它與1602顯示屏接線一樣,唯一的區(qū)別在于1602顯示屏是字符型,只能顯示數(shù)字與字符,不可以顯示漢字。12864顯示屏是點陣型,可根據(jù)需求任意顯示字符、數(shù)字、漢字、圖形。其接線圖如圖4所示。圖4 LCD12864顯示電路接線圖 按鍵控制電路按鍵控制電路,、。當(dāng)按鍵按下時接口接低電平,從而實現(xiàn)對音樂曲目的選擇控制。按鍵一接通實現(xiàn)上一曲更換,按鍵二接通實現(xiàn)下一曲更換,按鍵三接通實現(xiàn)音量增大操作,按鍵四接通實現(xiàn)音量減小操作,接線如圖5所示。圖5 按鍵控制電路接線圖 音頻解碼芯片VS1003電路VS1003芯片是一個MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個高性能,自主產(chǎn)權(quán)的低功耗DSP處理器VS_DSP4,工作數(shù)據(jù)存儲器。4個常規(guī)用途的I/O端口,一個UART,一個高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個耳機放大器和地線緩沖器。VS1003通過一個串行接口來接收輸入的比特流,它可以作為一個系統(tǒng)的從機。輸入的比特流被解碼,然后通過一個數(shù)字音量控制器到達一個18位過采樣多位εΔDAC。通過串行總線控制解碼器。VS1003電路接線如圖6所示。圖6 VS1003電路接線圖3 系統(tǒng)軟件設(shè)計 軟件開發(fā)平臺Keil是德國Keil公司(現(xiàn)已并入ARM公司)開發(fā)的微控制器軟件開發(fā)平臺,是目前ARM內(nèi)核單片機開發(fā)的主流工具。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(