【正文】
是你們教會(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),使我受益匪淺。在畢業(yè)設(shè)計(jì)的過(guò)程中,學(xué)校給予了我們?cè)跁r(shí)間安排上和實(shí)驗(yàn)室安排上的許多方便。 ( 4)在調(diào)試過(guò)程中發(fā)現(xiàn)設(shè)計(jì)的缺陷,逐步優(yōu)化 軟件 設(shè)計(jì),合理完成 軟 件的 編寫(xiě) 。同時(shí)檢驗(yàn)了我的理論知識(shí),也 完善了我的知識(shí)體系。 屏幕顯示 調(diào)試如圖 14 和圖 15 所示。就是在點(diǎn)擊下載時(shí),程序自動(dòng)把已打開(kāi)在緩沖區(qū)的文件重新調(diào)入,這樣方便下載程序不用總要點(diǎn)打開(kāi)文件來(lái)重新調(diào)入文件。且 安裝完畢,一定要重啟才能生效。系統(tǒng) 流程圖如圖 12 所示。然后子程序?qū)σ魳?lè)播放文件進(jìn)行循環(huán)判斷,得到按鍵的命令后再進(jìn)行按鍵播放。 一般一次讀一個(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ā)完為止。 基于 51單片機(jī)的音樂(lè)播放器的軟件設(shè)計(jì) 13 寫(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 文件了。 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( 需 查 詢(xún) 的 文 件 名 ) 調(diào) 用C H 3 7 5 F i l e E n u m e r 執(zhí) 行 查 詢(xún) 操 作全 部 讀 完 調(diào) 用C H 3 7 5 F i l e C l o s e 關(guān) 閉是否 圖 10 U盤(pán)數(shù) 據(jù)讀取流程圖 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ì)歌曲的選擇、音量增減等功能。當(dāng)執(zhí)行一次以字節(jié)為單位的操 作命令后將自動(dòng)進(jìn)入字節(jié)模式(只有關(guān)閉文件后再重新打開(kāi)才能恢復(fù)扇區(qū)模式),支持以字節(jié)為單位的操作子程序 CH375ByteRead 和 CH375ByteWrite 及CH375ByteLocate[6]。 字節(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)。 單片機(jī)通過(guò) RD, WR,片選 CS、中斷 INT 和地址線 AO 的綜合控制,完成與 CH375 的通訊,通過(guò) USB 接口實(shí)現(xiàn)從 U 盤(pán)讀寫(xiě)數(shù)據(jù)的功能。CH375內(nèi)置了 USB通信協(xié)議,單片機(jī)可以直接調(diào)用 API庫(kù)讀寫(xiě) U盤(pán)中的文件數(shù)據(jù)。還包括設(shè)備驅(qū)動(dòng)的描述,該固件庫(kù)可以使得用戶(hù)在沒(méi)有深入學(xué)習(xí)外圍模塊規(guī)格手冊(cè)的情況下,也能夠在用戶(hù)應(yīng)用 程序 中涉及到的任何設(shè)備 中直接使用 。 本系統(tǒng)設(shè)計(jì)時(shí),考慮移植操作系統(tǒng)。由于早期的單片機(jī)硬件資源少 RAM 資源有限,所以工程師在編程的時(shí)候?qū)?RAM 的應(yīng)用要十分小心,因此造成這類(lèi)的設(shè)計(jì)開(kāi)發(fā)工程師更加偏向于直接用匯編語(yǔ)言來(lái)控制硬件的工作。 首先送入啟動(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é)的高四位。 C固定為 0 第二字節(jié) (并行 )8位數(shù)據(jù)的高 4位 —— 格式 DDDD0000 第三字節(jié) (并行 )8位數(shù)據(jù)的低 4位 —— 格式 0000DDDD 串口模式下只用兩根線( E和 SCLK)來(lái)完成數(shù)據(jù)傳輸 。 第一字節(jié) 串口控制 —— 格式 11111ABC A為數(shù)據(jù)傳送方向控制 。當(dāng) E信號(hào) H→ L時(shí) 12864 讀取 DB 端口的數(shù)據(jù)。 ( 3) LCD12864 液晶顯示 a) LCD12864 引腳功能 說(shuō)明 如表 1 所示 。 ( 2) USB 總線的通用接口芯片 CH375。只要正確寫(xiě) SPI 相關(guān)寄存器就能輕松 實(shí)現(xiàn) 控制。主要完成數(shù)字信號(hào)的采集、信號(hào)濾波 等 功能 。 基于 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)。本 設(shè)計(jì) 使用的是 uVision2 版本。 VS1003 電路接線如圖 6 所示。 4 個(gè)常規(guī)用途 的 I/O 端 口,一個(gè) UART,一個(gè)高品質(zhì)可變采樣率的 ADC 和立體聲 DAC,還有一個(gè)耳機(jī)放大器和地線緩沖器。當(dāng)按鍵按下時(shí)接口接低電平,從而實(shí)現(xiàn)對(duì)音樂(lè) 曲目的選擇 控制。 LCD12864 顯示電路 顯示電路主要是 LCD12864電路,它與 1602顯示屏接線一樣 , 唯一的區(qū)別 在于 1602顯示屏是字符型,只能顯示數(shù)字與字符 ,不可以顯示漢字。主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各 64 字節(jié),支持 12Mbps全速 USB 設(shè)備和 低速設(shè)備 。在 USB 主機(jī)方式下,CH375 還提供了串行通訊方式,通過(guò)串行輸入、串行輸出和中斷輸出與單片機(jī)/DSP/MCU/MPU 等相連接。 必要時(shí)可調(diào)節(jié)音量的大小。內(nèi)部集成 MAX810專(zhuān)用復(fù)位電路 , 2 路 PWM,有 8路高速 10 位的 A/D轉(zhuǎn)換 (250K/S), STC12C5A60S2 引腳序列如圖 1所示。存儲(chǔ)器里的媒體文件首先被讀取到 MCU 的 RAM 中,然后又被送 到解碼芯片中,解碼后的音頻數(shù)據(jù)被還原成模擬音頻 ,再 由揚(yáng)聲器傳出。如果選用 Flash, 則整個(gè)系統(tǒng)要求較多的 I/O 端 口來(lái)讀取,更重要的一點(diǎn)是,這樣做的后果就是整個(gè)系統(tǒng) 的容量就被固定了,擴(kuò)容存在困難。 CH375 的 USB 主機(jī)方 式支持各種常用的 USB 全速設(shè)備,外部單片機(jī) /DSP/MCU 可以通過(guò) CH375 按照相應(yīng)的 USB 協(xié)議與 USB設(shè)備通信。因此,選用此芯片作為解碼芯片。 理論分析與方案論證 理論分析 針對(duì)本 MP3 音樂(lè) 播放系統(tǒng) ,要選擇合適的控制芯片及外部芯片來(lái)實(shí)現(xiàn) ,下面 介 紹一下芯片的 選用 ?;谶@個(gè)思想本文設(shè)計(jì)了一款特殊的 “ 音樂(lè)播放器 ” , 該 播放器可實(shí)現(xiàn) MP3 文件的完整播放,可以選擇音量調(diào)節(jié),曲目的切換等功能。通過(guò)自定義鍵盤(pán)設(shè)定,當(dāng)有鍵按下時(shí),能控制歌曲的播放或音量,并通過(guò) LCD 來(lái)顯示播放音樂(lè)的歌曲名 ,同時(shí) USBHOST 的開(kāi)發(fā)也為實(shí)時(shí)數(shù)據(jù)采集的移動(dòng)存儲(chǔ)提供了價(jià)格低廉的解決方案。另一方面 ,一體化又限制了 MP3播放器在其他領(lǐng)域的應(yīng)用 ,比如車(chē)載 MP3等不方便移動(dòng)的播放器。 本科生 畢業(yè)設(shè)計(jì) (論文) 學(xué) 院: 電子與電氣工程 學(xué)院 專(zhuān) 業(yè): 自動(dòng)化 **理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 基于 51 單片機(jī)的音樂(lè)播放器的軟件設(shè)計(jì) Software Des