【正文】
案論證 理論 分析 針對(duì)本 MP3 音樂(lè) 播放系統(tǒng) ,要選擇合適的控制芯片及外部芯片來(lái)實(shí)現(xiàn) ,下面 介 紹一下芯片的 選用 。 CH375 的 USB 主機(jī)方式支持各種常用的 USB 全速設(shè)備,外部單片機(jī) /DSP/MCU 可以通過(guò) CH375 按照相應(yīng)的 USB 協(xié)議與 USB設(shè)備通信。存儲(chǔ)器里的媒體文件首先被讀取到 MCU 的 RAM 中,然后又被送到解碼芯片中,解碼后的音頻數(shù)據(jù)被還原成模擬音頻 ,再 由揚(yáng)聲器傳出。 必要時(shí)可調(diào)節(jié)音量的大小。主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各 64字節(jié),支持 12Mbps全速 USB 設(shè) 備和 低速設(shè)備 。當(dāng)按鍵按下時(shí)接口接低電平,從而實(shí)現(xiàn)對(duì)音樂(lè) 曲目的選擇 控制。 VS1003 電路接線如圖 6所示。 基于 51 單片機(jī)的音樂(lè)播放器的軟件設(shè)計(jì) 7 圖 7 Keil uVision2開(kāi)發(fā)環(huán)境 系統(tǒng)的軟件設(shè)計(jì) 本系統(tǒng)采用模塊化的編程思想,把整個(gè)軟件系統(tǒng)化為多個(gè)功能模塊,主程序通過(guò)調(diào)用各個(gè)子程序來(lái)完成各個(gè)功能的實(shí)現(xiàn)。只要正確寫(xiě) SPI 相關(guān)寄存器就能輕松 實(shí)現(xiàn) 控制。 ( 3) LCD12864 液晶顯示 a) LCD12864 引腳功能 說(shuō)明 如表 1所示 。 第一字節(jié) 串口控制 —— 格式 11111ABC A為數(shù)據(jù)傳送方向控制 。 首先送入啟動(dòng)字節(jié),送入 5個(gè)連續(xù)的 “1” 來(lái)啟動(dòng)一個(gè)周期,此時(shí)傳輸周期被重置,并且串行傳輸數(shù)據(jù)被同步 ,緊接的兩個(gè)為指定傳輸方向( R/W 讀還是寫(xiě))和( RS 確定是命令寄存器還是數(shù)據(jù)寄存器),最后的第八位是一個(gè)“ 0” , 送完啟動(dòng)字節(jié)以后,可以送入指令或是顯示數(shù)據(jù),指令或代碼是以字節(jié)為單位的,每個(gè)字節(jié)的內(nèi)容(指令或數(shù)據(jù))在被送入時(shí)分為兩個(gè)字節(jié)來(lái)處理,高四位放在第一個(gè)字節(jié)的高四位 ,低四位放在第二個(gè)字節(jié)的高四位。 本系統(tǒng)設(shè)計(jì)時(shí),考慮移植操作系統(tǒng)。CH375內(nèi)置了 USB通信協(xié)議,單片機(jī)可以直接調(diào)用 API庫(kù)讀寫(xiě) U盤(pán)中的文件數(shù)據(jù)。 字節(jié)模式下,以字節(jié)為基本單位對(duì) U 盤(pán)文件進(jìn)行讀寫(xiě),讀寫(xiě)速度較慢,但是不需要額外的文件數(shù)據(jù)緩沖區(qū)(實(shí)際是與磁盤(pán)數(shù)據(jù)緩沖區(qū)合用), 適用于 RAM 少、數(shù)據(jù)量小或者數(shù)據(jù)零碎、不經(jīng)常讀寫(xiě)數(shù)據(jù)的單片機(jī)系統(tǒng)。 m C m d P a r a m . O p e n . m P a t h N a m e( 文 件 名 / 路 徑 名 ) 調(diào) 用C H 3 7 5 F i l e O p e n 打 開(kāi) 文 件文 件 是 否 正 常 打 開(kāi) ?m C m d P a r a m . B y t e O f f s e t . B y t e Lo c a t e ( 讀 取 位 置 的 起 始 字 節(jié)號(hào) ) 調(diào) 用 C H 3 7 5 B y t e L o c a t e 執(zhí)行 指 針 定 位m C m d P a r a m . m B y t e C o u n t . m C m d P ar a m . B y t e R e a d ( 需 要 讀 取 的 字節(jié) 數(shù) ) 調(diào) 用 C H 3 7 5 B y t e R e a d 執(zhí) 行讀 操 作m C m d P a r a m . E n u m e r . m P a t h N a m e( 需 查 詢 的 文 件 名 ) 調(diào) 用C H 3 7 5 F i l e E n u m e r 執(zhí) 行 查 詢 操 作全 部 讀 完 調(diào) 用C H 3 7 5 F i l e C l o s e 關(guān) 閉是否 圖 10 U 盤(pán)數(shù)據(jù)讀取流程圖 基于 51 單片機(jī)的音樂(lè)播放器的軟件設(shè)計(jì) 13 VS1003 模塊的 MP3 文件 播放 程序設(shè)計(jì) 系統(tǒng)上電啟動(dòng)后,由單片機(jī)控制將存儲(chǔ)于 U 盤(pán)中歌曲的 MP3 數(shù)據(jù)格式流信息通過(guò)CH375 的 USB 接口芯片送入到 VSl003 芯片中,通過(guò) VSl003 芯片解碼及其內(nèi)含高質(zhì)量的立體聲 DAC 和耳機(jī)驅(qū)動(dòng)電路,實(shí)現(xiàn) MP3 歌曲的播放,在按鍵的控制下,可實(shí)現(xiàn)對(duì)歌曲的選擇、音量增減等功能。 一般一次讀一個(gè)扇區(qū),然后將數(shù)據(jù)發(fā)往 VS1003, 由于 VS1003 有 32Byte 的數(shù)據(jù)緩沖區(qū),一次可以發(fā) 32 個(gè)字節(jié)的數(shù)據(jù),然后檢測(cè) DREQ 電平 ,當(dāng) DREQ 為高時(shí)送下一個(gè)32Byte 的數(shù)據(jù) , 直到發(fā)完為止。系統(tǒng) 流程圖如圖 12 所示。就是在點(diǎn)擊下載時(shí),程序自動(dòng)把已打開(kāi)在緩沖區(qū)的文件重新調(diào)入,這樣方便下載程序不用總要點(diǎn)打開(kāi)文件來(lái)重新調(diào) 入文件。同時(shí)檢驗(yàn) 了我的理論知識(shí),也 完善了我的知識(shí)體系。在畢業(yè)設(shè)計(jì)的過(guò)程中,學(xué)校給予了我們?cè)跁r(shí)間安排上和實(shí)驗(yàn)室安排上的許多方便。是你們教會(huì)我如何做學(xué)問(wèn),如何建立一個(gè)團(tuán)隊(duì),如何去做人。劉忠超講師淵博的學(xué)識(shí)、執(zhí)著的敬業(yè)精神以及嚴(yán)謹(jǐn)?shù)闹螌W(xué) 態(tài)度和豐富的實(shí)踐經(jīng) 驗(yàn),使我受益匪淺。 ( 4)在調(diào)試過(guò)程中發(fā)現(xiàn)設(shè)計(jì)的缺陷,逐步優(yōu)化 軟件 設(shè)計(jì),合理完成 軟 件的 編寫(xiě) 。 屏幕顯示 調(diào)試如圖 14 和圖 15 所示。且 安裝完畢,一定要重啟才能生效。然后子程序?qū)σ魳?lè)播放文件進(jìn)行循環(huán)判斷,得到按鍵的命令后再進(jìn)行基于 51 單片機(jī)的音樂(lè)播放器的軟件設(shè)計(jì) 15 按鍵播放。 寫(xiě)命令的過(guò)程如下: ( 1) 等待 DREQ 為高(當(dāng) DREQ 為低時(shí),說(shuō)明 VS1003 芯片還沒(méi)有就緒) ( 2) 將 XCS(命令片選)拉低 ( 3) 寫(xiě)入 0x02(寫(xiě)操作命令 ) ( 4) 寫(xiě)入寄存器地址 ( 5) 分別寫(xiě)入數(shù)據(jù)的高字節(jié)與低字節(jié) ( 6) 將 XCS置高 初始化的過(guò)程如下: ( 1) 硬件復(fù)位:接 XRESET 拉低 ( 2) 延時(shí),將 XDCS、 XCS、 XRESET 置高 ( 3) 向 MODE 中寫(xiě)入 0X0804(軟件復(fù)位 ) ( 4) 等待 DREQ 為高 ( 5) 設(shè)置 VS1003 的時(shí)鐘: SCI_CLOCKF=0x9800, 3倍頻 ( SC_MULT 為 4 , SC_ADD為 3, SC_FREQ 為 0) ( 6) 設(shè)置 VS1003 的采樣率: SPI_AUDATA=0xBB81,采樣率 48k,立體聲 ( 7) 設(shè)置重音: SPI_BASS=0x0055(SB_AMPLITUDE=5,SB_FREQLIMIT=5,低于 50Hz時(shí)進(jìn)行 5dB 的增強(qiáng) ) ( 8) 設(shè)置音量: SCI_VOL=0x2020(左右聲道相同 ) ( 9) 這一步 容易忽視,向 VS1003 發(fā)送 4個(gè)字節(jié)的無(wú)效數(shù)據(jù),用以啟動(dòng) SPI 發(fā)送 對(duì) VS1003 的初始化與測(cè)試都通過(guò)后,就可以給它發(fā)送 MP3 文件了。當(dāng)執(zhí)行一次以字節(jié)為單位的操 作命令后將自動(dòng)進(jìn)入字節(jié)模式(只有關(guān)閉文件后再重新打開(kāi)才能恢復(fù)扇區(qū)模式),支持以字節(jié)為單位的操作子程序 CH375ByteRead 和 CH375ByteWrite 及CH375ByteLocate[6]。 單片機(jī)通過(guò) RD, WR,片選 CS、中斷 INT 和地址線 AO 的綜合控制,完成與 CH375 的通訊,通過(guò) USB 接口實(shí)現(xiàn)從 U 盤(pán)讀寫(xiě)數(shù)據(jù)的功能。還包括設(shè)備驅(qū)動(dòng)的描述,該固件庫(kù)可以使得用戶在沒(méi)有深入學(xué)習(xí)外圍模塊規(guī)格手冊(cè)的情況下,也能夠在用戶應(yīng)用 程序 中涉及到的任何設(shè)備 中直接使用 。由于早期的單片機(jī)硬件資源少 RAM 資源有限,所以工程師在編程的時(shí)候?qū)?RAM 的應(yīng)用要十分小心,因此造成這類的設(shè)計(jì)開(kāi)發(fā)工程 師更加偏向于直接用匯編語(yǔ)言來(lái)控制硬件的工作。 C固定為 0 第二字節(jié) (并行 )8 位數(shù)據(jù)的高 4位 —— 格式 DDDD0000 第三字節(jié) (并行 )8 位數(shù)據(jù)的低 4位 —— 格式 0000DDDD 串口模式下只用兩根線( E和 SCLK)來(lái)完成數(shù)據(jù)傳輸 。當(dāng) E 信號(hào) H→ L時(shí) 12864 讀取 DB 端口的數(shù)據(jù)。 ( 2) USB 總線的通用接口芯片 CH375。主要完 成數(shù)字信號(hào)的采集、信號(hào)濾波 等 功能 。本 設(shè)計(jì) 使用的是 uVision2 版本。 4 個(gè)常規(guī)用途的 I/O 端 口,一個(gè) UART,一個(gè)高品質(zhì)可變采樣率的 ADC 和立體聲 DAC,還有一個(gè)耳機(jī)放大器和地線緩沖器。 LCD12864 顯示電路 顯示電路主要是 LCD12864電路,它與 1602顯示屏接線一樣 , 唯一的區(qū)別 在于 1602顯示屏是字符型,只能顯示數(shù)字與字符 ,不可以顯示漢字。在 USB 主機(jī)方式下,CH375 還提供了串行通訊方 式,通過(guò)串行輸入、串行輸出和中斷輸出與單片機(jī)/DSP/MCU/MPU 等相連接。內(nèi)部集成 MAX810 專用復(fù)位電路 , 2 路 PWM,有 8路高速 10 位的 A/D轉(zhuǎn)換 (250K/S), STC12C5A60S2 引腳序列如圖 1所示。如果選用 Flash, 則整個(gè)系統(tǒng)要求較多的 I/O 端 口來(lái)讀取,更重要的一點(diǎn)是,這樣做的后果就是整個(gè)系統(tǒng)的容量就被固定了,擴(kuò)容存在困難。因此,選用此芯片作為解碼芯片?;谶@個(gè)思想本文設(shè)計(jì)了一款特殊的 “ 音樂(lè)播放器 ” , 該 播放器可實(shí)現(xiàn) MP3 文件 的完整播放,可以選擇音量調(diào)節(jié),曲目的切換等功能。另一方面 ,一體化又限 制了 MP3播放器在其他領(lǐng)域的應(yīng)用 ,比如車載 MP3等不方便移動(dòng)的播放器。 [關(guān)鍵詞 ]單片機(jī) ; 音樂(lè)播放器 ; U盤(pán) 文件 讀取 ; 音頻解碼 Software Design of Music Player Based on 51 MCU Automation Specialty Hao Shuaichen Abstract: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 head