基于單片機的MP3音樂播放器設計論文
《基于單片機的MP3音樂播放器設計論文》由會員分享,可在線閱讀,更多相關《基于單片機的MP3音樂播放器設計論文(58頁珍藏版)》請在裝配圖網(wǎng)上搜索。
畢業(yè)論文 基于單片機的 MP3播放器設計 指導老師 姓 名 學 號 系 別 專 業(yè) 申請學位 V 基于單片機的MP3音樂播放器設計 摘要:本文在具體分析了STC12C5A60S2單片機的技術特點與MP3音樂播放系統(tǒng)功能需求的基礎上,提出了一種利用單片機實現(xiàn)簡易MP3播放器的方法,同時給出了具體軟硬件設計的方法。本系統(tǒng)利用STC12C5A60S2單片機作為CPU進行總體控制,單片機通過FAT32文件系統(tǒng)讀取SD卡的數(shù)據(jù),并傳輸給MP3音頻解碼芯片VS1003進行音頻數(shù)據(jù)解碼,實現(xiàn)歌曲播放功能。通過控制按鍵,實現(xiàn)對歌曲的選擇及音量調(diào)節(jié)。播放的同時,液晶屏上顯示歌曲相關信息。相關的硬件脫機實驗結(jié)果表明,本系統(tǒng)達到了既定的設計目標。 關鍵詞:單片機;音頻解碼;FAT32 DesignofMP3MusicPlayerBasedonVS1003 Abstract:Based on the detailed analysis of the technical characteristics of STC12C5A60S2 and the needs of MP3 music player system function,a control method of simple MP3 player controlled by single-chip is proposed in this paper, and the hardware and the software design are also given.The STC12C5A60S2 single-chip is used as the whole control core .The single-chip can read SD card data through the FAT32 file system. And then , the data is sent to VS1003 of special MP3 audio decoder to decode the data.Then the music playing function can be achieved ,you can choose songs and the volume by controlling the button, the relevant information will be displayed on the LCD screen while songs are being played.The relevant hardware offline experiment results indicate that this system has achieved the established design goal. Keywords :Single chip microcomputer ; Audio decoding ; FAT32 目 錄 序 言 1 第1章 系統(tǒng)方案 2 1.1 課題研究背景及意義 2 1.2 課題研究現(xiàn)狀 2 1.3 課題要求 3 1.4 方案選擇 3 1.4.1 硬件選擇 3 1.4.2 軟件選擇 5 第2章 硬件電路設計 6 2.1 硬件系統(tǒng)總體設計 6 2.2 各硬件模塊設計 6 2.2.1 微控制器設計 6 2.2.2 存儲模塊 10 2.2.3 音頻解碼模塊 11 2.2.4 顯示模塊 15 2.2.5 按鍵電路 17 第3章 系統(tǒng)軟件設計 18 3.1 軟件功能概述 18 3.2 主程序設計 18 3.3 各子程序模塊設計 19 3.3.1 12864液晶顯示程序設計 19 3.3.2 SD卡程序設計 21 3.3.3 FAT32文件系統(tǒng) 23 3.3.4 VS1003音頻解碼程序設計 24 第4章 系統(tǒng)軟硬件調(diào)試 28 4.1 硬件調(diào)試 28 4.1.1 上電前調(diào)試 28 4.1.2 上電后調(diào)試 28 4.2 軟硬件連調(diào) 28 結(jié) 束 語 30 致 謝 31 參 考 文 獻 32 附 錄 33 附錄一 硬件原理圖 33 附錄二 源程序清單 34 附錄三 實物圖 39 附錄四 元件清單 40 附錄五 中英文文獻 41 圖 表 清 單 圖2-1 系統(tǒng)硬件總體框圖 6 圖2-2 STC12C5A60S2芯片引腳圖 7 圖2-3 STC12C5A60S2單片機最小系統(tǒng) 10 圖2-4 SD卡接口電路 10 圖2-5 VS1003芯片引腳圖 12 圖2-6 VS1003芯片外圍連接圖 15 圖2-7 12864液晶顯示模塊 15 圖2-8 按鍵電路 17 圖3-1 主程序流程圖 19 圖3-2 12864液晶顯示器初始化程序 20 圖3-3 12864液晶顯示程序 20 圖3-4 SD卡初始化流程圖 21 圖3-5 讀SD卡流程圖 22 圖3-6 寫SD卡流程圖 22 圖3-7 VS1003程序流程圖 25 表2-1 SD卡引腳定義 11 表2-2 VS1003引腳定義功能表 13 表2-3 12864模塊外部接口 16 序 言 隨著科技的日益發(fā)展,計算機、信息、電子、通信等技術得到迅速發(fā)展,促使了社會生產(chǎn)力的提高,也使人們對生產(chǎn)方式和生活方式產(chǎn)生了日新月異的變化。同時人們生活水平的提高及對音樂的喜愛,對音樂播放器的品質(zhì)、功能、品種等提出了越來越多的要求,表現(xiàn)在對控制系統(tǒng)性能、可靠性等方面的要求越來越高。 MP3作為高質(zhì)量音樂壓縮標準,給音頻產(chǎn)業(yè)帶來了具大的沖擊。MP3技術使音樂數(shù)據(jù)壓縮比率大,回放質(zhì)量高。如CD格式的音樂數(shù)據(jù)壓縮成MP3格式,音效相差無己,但大小至少可壓縮12倍。由于MP3音樂的較小數(shù)據(jù)量和近乎完美的播放效果使其在網(wǎng)絡上傳輸?shù)靡詫崿F(xiàn)。近幾年,隨著MP3播放器技術的發(fā)展,在其選型、設計、開發(fā)、附加功能和適用領域等方面做了很大的努力,現(xiàn)在MP3播放器具有輕薄、小巧,同時具有大容量、超長時間播放、功能多樣化等優(yōu)點。 在如今MP3播放器競爭激烈的市場,人們對MP3的需求也越來越大,在購買時會考慮到價格、性能等方面。因此在本次設計中,根據(jù)市場需求進行設計,實現(xiàn)在聽歌的過程中,需要暫停、切換歌曲,或者查看歌曲名等功能;內(nèi)存中的歌曲是固定的,客戶可以根據(jù)自己的需求去下載更新。該設計系統(tǒng)以單片機為控制單元,以最低的成本滿足MP3文件控制和顯示的功能。為了方便更換歌曲,以SD卡作為存儲器,最大支持2GB的SD卡,能儲存大約500首歌曲。供電采用5V直流電源供電,相當?shù)谋憬?。另外在耳機模塊設有兩種孔狀的接口,可以根據(jù)耳機的粗細選擇。本設計方案采用STC12C5A60S2單片機,芬蘭VLSI公司的VS1003音頻解碼芯片和12864液晶顯示屏制作一個簡易的MP3音樂播放器系統(tǒng)。 第1章 系統(tǒng)方案 1.1 課題研究背景及意義 隨著社會經(jīng)濟的發(fā)展,MP3播放器以其小巧的外形、良好的接近CD的音質(zhì)、前衛(wèi)的功能,越來越受到大眾的喜愛,也成為了業(yè)界的一個熱門話題。由于MP3是數(shù)字化的音樂,而且不僅可以上傳下載MP3格式的文件,也可以是其他格式的電腦文件,這樣的MP3隨身聽還可以當作一個小的移動存儲設備來使用。結(jié)合其特點及實際播放功能,本次設計出一個簡單的MP3播放系統(tǒng)。 開發(fā)MP3播放器不止是為了在電腦上播放,同時更多的是能讓MP3播放器能夠直接走入我們的生活,將用數(shù)字音樂產(chǎn)品來取代,這是一種技術革新的體現(xiàn)。更多的數(shù)字音樂產(chǎn)品將不斷推出,而產(chǎn)品的類型也將更加豐富,從可以播放MP3的VCD機,到手表式的MP3播放器,再到支持MP3播放器的手機,數(shù)字音樂將深入我們的各個角落[1]。因此MP3播放器的意義不僅在于可以方便地聆聽MP3數(shù)字音樂,更在于它促使MP3走向網(wǎng)絡而直接進入人們的生活,它或許將改變我們欣賞音樂的方式。 本設計的意義在于通過本次設計將所學到的單片機理論知識應用于生產(chǎn)實踐,增強自己的實踐能力。本次設計控制簡單,利用12864液晶顯示屏顯示歌曲,由按鍵控制歌曲播放及音量。在實現(xiàn)功能的過程中,對用到的各種硬件模塊和系統(tǒng)實現(xiàn)所需的軟件有了更深的了解和認識。 1.2 課題研究現(xiàn)狀 隨著計算機技術,微電子技術和數(shù)字信號處理技術的迅速發(fā)展,各種消費類電子產(chǎn)品朝著集成化和小型化發(fā)展。特別是隨著網(wǎng)絡多媒體技術的普及、數(shù)字音頻技術的快速發(fā)展,以MP3為代表的消費類電子產(chǎn)品廣泛的應用在我們的生活中,數(shù)字音頻技術得到了長久發(fā)展。 MP3全稱是動態(tài)影像專家壓縮標準音頻層面3,是當今較流行的一種數(shù)字音頻編碼和有損壓縮格式,它設計用來大幅度降低音頻數(shù)據(jù)量,而對于大多數(shù)用戶來說重放的音質(zhì)與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位于德國埃爾郎根的研究組織Fraunhofer-Gesellschaft的一組工程師發(fā)明和標準化的。MP3就是一種音頻壓縮技術,由于這種壓縮方式的全稱叫MPEG Audio Layer3,所以人們把它簡稱為MP3。MP3是利用MPEG Audio Layer3的技術,將音樂以1:10甚至1:12的壓縮率,壓縮成容量較小的file[1]。能夠在音質(zhì)丟失很小的情況把文件壓縮到更小的程度。而且還非常好的保持了原來的音質(zhì)。 1.3 課題要求 本系統(tǒng)是根據(jù)VS1003音頻解碼模塊所設計的MP3音樂播放器,音頻文件存儲在SD卡上,通過文件系統(tǒng)讀取SD扇區(qū),由STC12C5A60S2單片機讀取數(shù)據(jù)并送到VS1003音頻解碼器模塊輸出。根據(jù)設計目的,需達到以下要求: 1、播放指定目錄的MP3歌曲; 2、通過按鍵可以隨意切換上下曲、音量加減、暫停和播放; 3、液晶屏顯示SD卡的信息。 1.4 方案選擇 1.4.1 硬件選擇 1、單片機的選擇 方案一:MUC微處理器控制的種類很多,有ATMEL公司生產(chǎn)的AT89XX系列單片機,其中AT89S52為8位的單片機,它是一種低損耗、高性能的CMOS微處理器,片內(nèi)有8K字節(jié)的存儲空間,128字節(jié)RAM、4個8位并口、1個全雙工串行口、2個16位定時/計數(shù)器,尋址范圍64K[2]。 方案二:ATMEL公司生產(chǎn)的AVR單片機,它也有很多的特點,比如:體積小、集成度高、可靠性好、易于擴展、高速度、低功耗、功能強;是一款RISC精簡指令高速8位單片機。但是其市場價格較高,且已經(jīng)在MCU市場夾縫中生存,現(xiàn)在已有停產(chǎn)的趨勢。 方案三:宏晶科技公司生產(chǎn)的STC12C5A60S2單片機,它是一款增強型單片機。是一款高性能的微處理器,片內(nèi)有60K字節(jié)的存儲空間、1280字節(jié)SRAM、2個16位定時/計數(shù)器,兼容普通51單片機,沒有定時器2,單有獨立波特率發(fā)生器做串行通訊的波特率發(fā)生器,工作頻率是普通51單片機的10倍左右。 綜合所述,在本設計中,考慮到程序生成的HEX文件較大,并且需要較快的執(zhí)行速度,選擇宏晶科技公司生產(chǎn)的STC12C5A60S2單片機作為微處理控制器。 2、存儲設備方案的選擇 方案一:CF卡是目前市場上歷史悠久的存儲卡之一,存儲容量大,成本低,兼容性好,這些都是CF卡的優(yōu)點,缺點則是體積比較大。 方案二:Infineon和SanDisk公司共同推出的一種全新的小巧的存儲卡產(chǎn)品MMC卡,但是它適用于對尺寸和電池續(xù)航能力要求很高的手機以及其他手持便攜設備。 方案三:SD開中文翻譯為安全數(shù)碼卡,是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛的用于便攜式裝置上,例如數(shù)碼相機、個人數(shù)碼助理(PDA)和多媒體播放器等。SD卡大小猶如一張郵票,重量只有2克,但是卻有高記憶容量、快速數(shù)據(jù)傳輸、極大的靈活性以及很好的安全。 綜合上述,在本設計中,考慮到SD卡比較常用,而且有較成熟的讀取方法,所以選擇SD卡作為本系統(tǒng)的存儲設備。 3、音頻解碼器的選擇 方案一:使用STC12C2052AD單片機讀取WAV格式音樂,利用PWM功能,把收到的數(shù)據(jù)合成聲波,傳輸給外部音響播放。 方案二:使用專門的數(shù)字音頻解碼芯片VS1003對MP3文件進行硬件解碼,VS1003可以解碼多種音頻文件格式,而且支持較高比特率的音樂,音質(zhì)好[3]。 綜合上述,方案一只能進行軟件解碼,播放格式局限,而方案二支持硬件解碼,音質(zhì)好,集成度高,編程較為簡單等優(yōu)點,所以選擇VS1003作為解碼芯片。 1.4.2 軟件選擇 Keil uVision IDE是一個標準的Windows應用程序,集成了C51編譯器、A51匯編器、L51連接器、實時操作系統(tǒng)、項目管理器及調(diào)試器等,可以完成編輯、編譯、鏈接、調(diào)試及仿真等整個開發(fā)流程,可以用IDE編譯C或匯編源文件。 uVision采用dScope51作調(diào)試器,該調(diào)試器支持MON51及系統(tǒng)模擬兩種方式,高度功能強大。dScope51是一個源級調(diào)試器和模擬器,可以調(diào)試C51編譯器、A51匯編器、PL/M-51編譯器及ASM-51匯編器產(chǎn)生的程序。根據(jù)Keil uVision IDE優(yōu)點,本次設計選擇Keil uVision4編輯。 第2章 硬件電路設計 2.1 硬件系統(tǒng)總體設計 硬件系統(tǒng)由微控制器、解碼模塊、液晶顯示模塊、按鍵控制模塊和存儲模塊組成。其系統(tǒng)硬件總框圖如圖2-1所示。在該硬件系統(tǒng)設計中,采用宏晶公司生產(chǎn)的STC12C5A60S2做為主控MCU。單片機通過SD卡存儲器實現(xiàn)對硬盤的管理和對MP3歌曲、文檔等數(shù)據(jù)信息的存儲。接通電源后,單片機讀取SD卡內(nèi)信息并送入VS1003芯片中,通過VS1003芯片解碼,實現(xiàn)歌曲播放;在按鍵的控制下,通過LCD12864中菜單選項的選擇,對歌曲及音量控制等功能。 圖2-1 系統(tǒng)硬件總體框圖 2.2 各硬件模塊設計 2.2.1 微控制器設計 單片機是微型計算機的一個重要分支。它使計算機從海量數(shù)值計算進入智能控制領域,并由此開創(chuàng)了工業(yè)控制的新局面。從此,計算機技術在兩個重要的領域——通用計算機領域和微控制器領域比翼齊飛,并逐漸融入人們的日常生活。 將運算器、控制器、存儲器和各種輸入/輸出接口等計算機的主要部件集成在一塊芯片上,就能得到一個單芯片的微型計算機。它雖然只是一個芯片,但在組成和功能上已經(jīng)具有了計算機系統(tǒng)的特點,因此稱之為單片微型計算機(Single-Chip Microcomputer),簡稱單片機[3]。由于單片機的設計通常是面向控制、嵌入對象體系中的,有別于通陽的微型計算機,因此又稱為微控制器(Micro-Controller)、嵌入式微控制器(Embedded-Micr-Controller)。 在本次設計中采用由宏晶公司生產(chǎn)的芯片STC12C5A60S2芯片作為主控的MCU,完成對整個MP3系統(tǒng)的控制。其芯片如圖2-2所示: 圖2-2 STC12C5A60S2 芯片引腳圖 1、選用STC12C5A60S2芯片的優(yōu)越性 采用STC12C5A60S2芯片有以下原因: (1) 1STC12C5A60S2單片機是AVR單片機家族中的高性能單片機,其可靠性更高,速度更快,功耗更低等,有效地減緩了系統(tǒng)的功耗和處理速度之間的矛盾; (2) 由于解碼芯片VS1003采用SPI 接口,而STC12C5A60S2單片機是一款帶有串行外圍設備SPI 接口的單片機,使用更加便捷; (3) STC12C5A60S2單片機有整套的開發(fā)工具,包括C語言編譯器、宏匯編語言、程序調(diào)試器、仿真器和評估板。 2、STC12C5A60S2芯片的主要特點 (1) 增強型8501CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統(tǒng)單片機; (2) 工作電壓:3.3V-5V; (3) 工作頻率范圍:0-35MHZ,相當于普通8051的0-420MHZ; (4) 用戶應用程序空間:64K; (5) 片上集成1280字節(jié)RAM; (6) ISP(在系統(tǒng)課編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器可 通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成; (7) 有EEPROM功能; (8) 內(nèi)部集成MAX810專用復位電路; (9) 共4個16位定時器; (10)外部中斷I/O口6路; (11)A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達250K/S; (12)新增支持上升中斷的PCA模塊; (13)通用雙全工異步串行口(UART)[4]。 3、STC12C5A60S2芯片的引腳說明 (1) VCC:40腳,供電電壓,一般接+5V。 (2) GND:20腳,接工作地。 (3) P0口: 1-8腳,P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高電阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部加上拉電阻,一般上拉電阻選4.7K~10K為宜。 (4) P1口:32-39腳,P1口是一個內(nèi)部具有上拉電阻的8位雙向I/O口,P1口緩沖器能接收4個TTL門電流。P1端口寫入“1”后,被內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 (5) P2口:20-27腳,P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。P2端口寫入“1”后,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在使用8位地址(MOVX@RI)訪問外部程序存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 (6) P3口:10-17腳,P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。 (7) RESET:9腳,復位輸入端。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 (8) ALE/:30腳,當訪問外部程序存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此他可用作對外部暑促的脈沖或用于定時目的。 (9) PSEN:29腳,外部程序存儲器的選通信號。 (10) /VP:31腳,訪問外部程序存儲器控制信號。當為低電平時,則讀取外部程序存儲器;端為高電平時,則讀取內(nèi)部程序存儲器。 (11) XTAL1:19腳,振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。如采用外部時鐘源時,XTAL1為輸入端。 (12)XATL2:18腳,振蕩器反相放大器的輸出端。如采用外部時鐘源時,XATL2應懸空不接[4]。 4、單片機的最小系統(tǒng) 所謂單片機最小系統(tǒng)是指能維持單片機運行的最簡單配置系統(tǒng)。最小系統(tǒng)包括晶體振蕩電路 、復位開關、接插口和電源部分,本系統(tǒng)單片機采用STC12C5A60S2或其兼容系列,如圖2-3采用40MHZ高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。 圖2-3 STC12C5A60S2 單片機最小系統(tǒng) 2.2.2 存儲模塊 SD卡中文翻譯為安全數(shù)碼卡,其最大的特點就是通過加密功能,可以保證數(shù)據(jù)資料的安全保密。采用單片機對SD卡進行讀寫時一般采用SPI模式,可用不同的初始化使SD卡工作于SD或SPI模式[5]。 本設計中,音頻數(shù)據(jù)MP3以SD卡為載體,所以設計電路時含有讀取SD卡模塊,SD卡模塊的接口電路如2-4所示。 圖2-4 SD卡接口電路 SD卡的驅(qū)動有兩種模式,即SD模式與SPI模式。在用單片機對SD卡進行驅(qū)動的時候,通常使用SPI模式,一方面是因為SPI模式接口與操作方法比較簡單,易于實現(xiàn);另一方面是因為本設計操作的數(shù)據(jù)量不是很大,速度不需要很快。SD模式操作起來比較復雜。SD卡工作在SPI模式下時,只需要4根信號線,即CS片選、DIN數(shù)據(jù)輸入、CLK時鐘、DOUT數(shù)據(jù)輸出[5]。SD卡在兩種模式下引腳定義如表2-1所示。 表2-1 SD卡引腳定義 針 腳 SD模式 針 腳 SPI模式 名稱 類型 描述 名稱 類型 描述 1 CD DAT3 I/O/PP 卡監(jiān)測數(shù)據(jù)位 3 1 CS I 片選(負有效) 2 CMD PP 命令/回復 2 DI I 數(shù)據(jù)輸入 3 Vss S 地 3 Vss S 地 4 Vcc S 供電電壓 4 Vcc S 供電電壓 5 CLK I 時鐘 5 CLK I 時鐘 6 Css2 S 地 6 Vss2 S 地 7 DAT0 I/O/PP 數(shù)據(jù)位 0 7 DO O 數(shù)據(jù)輸出 8 DAT1 I/O/PP 數(shù)據(jù)位 1 8 RSV -- 9 DAT2 I/O/PP 數(shù)據(jù)位 2 9 RSV -- 2.2.3 音頻解碼模塊 在解碼模塊中,采用VS1003芯片進行解碼,如下所示。 1、VS1003功能簡介 (1) VS1003 是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個高性能,自主產(chǎn)權的低功耗DSP 處理器核VS_DSP4,工作數(shù)據(jù)存儲器,為用戶應用提供5KB 的指令RAM 和0.5KB 的數(shù)據(jù)RAM。串行的控制和數(shù)據(jù)接口,4 個常規(guī)用途的I/O 口,一個UART,也有一個高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個耳機放大器和地線緩沖器。 (2) VS1003 通過一個串行接口來接收輸入的比特流,它可以作為一個系統(tǒng)的從機。輸入的比特流被解碼,然后通過一個數(shù)字音量控制器到達一個18 位過采樣多位ε-Δ DAC,通過串行總線控制解碼器。除了基本的解碼,在用戶RAM 中它還可以做其他特殊應用,例如DSP 音效處理。 2、VS1003芯片特性 (1)能解碼 MPEG 1 和MPEG2 音頻層 III(CBR+VBR+ABR)、WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件、WAV(PCM+IMAAD-PCM)、產(chǎn)生MIDI/SP-MIDI 文件; (2) 對話筒輸入或線路輸入的音頻信號進行IMAADPCMM 編碼; (3) 支持 MP3 和 WAVV 流; (4) 高低音控制; (5) 單時鐘 12-13MHz; (6) 內(nèi)部 PLLL 鎖相環(huán)時鐘倍頻器; (7) 低功耗; (8) 內(nèi)含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無相位差; (9) 含能驅(qū)動 30 歐負載的耳機驅(qū)動器; (10)模擬,數(shù)字,I/O 單獨供電; (11)為用戶代碼和數(shù)據(jù)準備的5.5KB 片上 RAM; (12)串行的控制/數(shù)據(jù)接口; (13)可被用作微處理器的從機; (14)特殊應用的 SPI Flash 引導; (15)供調(diào)試用途的 UART 接口; (16)新功能可以通過軟件和4 GPIO 添加[6]。 3、VS1003芯片引腳圖 圖2-5 VS1003解碼芯片引腳圖 4、VS1003芯片引腳功能定義 表2-2 VS1003引腳定義功能表 管腳名稱 管腳編號 管腳類型 管腳功能 MICP 1 AI 同相差分話筒輸入,自偏壓 MICN 2 AI 反相差分話筒輸入,自偏壓 XRESET 3 DI 低電平有效,異步復位端 DGND0 4 DGND 處理器核與I/O地 CVDD0 5 CPWR 處理核 電源 IOVDD0 6 IOPWR I/O電源 CVDD1 7 CPEW 處理核 電源 DREQ 8 DO 數(shù)據(jù)請求,輸入總線 GPIO2/DCLK1 9 DIO 通用I/O2/串行數(shù)據(jù)總線時鐘 GPIO3/SDATA1 10 DIO 通用I/O3/串行數(shù)據(jù)總線數(shù)據(jù) XDCS/BSYNC1 13 DI 數(shù)據(jù)片選端/字節(jié)同步 IOVDD1 14 IOPWR I/O電源 VCO 15 DO 時鐘壓控振蕩器VCO輸出 DGND1 16 DGND 處理核與I/O地 XTALO 17 AO 晶振輸出 XTALI 18 AI 晶振輸入 IOVDD2 19 IOPWR I/O 電源 DGND2 20 DGND 處理器核與I/O 地 DGND3 21 DGND 處理器核與I/O 地 DGND4 22 DGND 處理器核與I/O 地 XCS 23 DI 片選輸入,低電平有效 CVDD2 24 CPWR 處理器核電源 RX 26 DI UART接收口,不用時接IOVDD TX 27 DO UART發(fā)送口 管腳名稱 管腳編號 管腳類型 管腳功能 SCLK 28 DI 串行總線的時鐘 SI 29 DI 串行輸入 SO 30 DO3 串行輸出 CVDD3 31 CPWR 處理器核電源 TEST 32 DI 保留做測試,連接至IOVDD GPIO0/ SPIBOOT 33 DIO 通用I/O0 /SPIBOOT,使用100K 下拉電阻2 GPIO1 34 DIO 通用I/O1 AGND0 37 APWR 模擬地,低噪聲參考地 AVDD0 38 APWR 模擬電源 RIGHT 39 AO 右聲道輸出 AGND1 40 APWR 模擬地 AGND2 41 APWR 模擬地 GBUF 42 AO 公共地緩沖器 AVDD1 43 APWR 模擬電源 RCAP 44 AIO 基準濾波電容 AVDD2 45 APWR 模擬電源 LEFT 46 AO 左聲道輸出 AGND3 47 APWR 模擬地 LINE IN 48 AI 線路輸入 5、解碼模塊連接圖 如圖2-6所示,解碼芯片VS1003與單片機連接的引腳有XRST、MISO、MOSI、SCLK、DREQ、XCS、XDCS, 振蕩電路由晶振XT2和電容C17、C18、電阻R12構成,選出12.288Hz的振蕩頻率,為解碼芯片VS1003提供工作頻率,且VS1003可以直接驅(qū)動32 歐姆的耳機,如圖引腳38、41、46分別與雙聲道插孔連接,直接驅(qū)動耳機。 圖2-6 VS1003解碼模塊連接圖 2.2.4 顯示模塊 系統(tǒng)顯示采用12864顯示模塊,顯示SD卡的信息。該設計需要顯示歌曲名字,則選擇帶中文的液晶顯示,如圖2-7所示。帶中文字庫的128X64 是一種具有4 位/ 8位并行、2 線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為12864 ,內(nèi)置8192個16 *16點漢字,和128個16*8點ASCII 字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示84行1616點陣的漢字,也可完成圖形顯示[7]。低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。 圖2-7 12864液晶顯示模塊 LCD12864的管腳共有20個,顯示電路由單片機P0及P2.5-2.7端控制。LCD的電源共有2組,一組是用于驅(qū)動LCD顯示,另一組用于背光顯示。可將這兩組連再一起或者背光電源省略。另外有個輸入管腳V0需要接入LCD調(diào)整電壓來調(diào)節(jié)對比度。對比度過高于或過低均會使屏幕無法正常顯示。它可接至10K-20K電位器的調(diào)整端,電位器兩端分別接至VDD與VEE。目前市場上某些LCD12864的對比度可由單片機操作其寄存器調(diào)節(jié),可根據(jù)不同的條件進行選擇。 1、12864模塊外部接口說明 表2-3 12864模塊外部接口 管腳號 名稱 LEVE 管腳功能描述 1 VSS 0V 電源地 2 VDD 5.0V 電源電壓 3 V0 -5.0V-(-13V) 液晶顯示器驅(qū)動電壓 4 D/I H/L D/I=“H”表示DB7-DB0為顯示數(shù)據(jù) D/I=“L”表示DB7-DB0為顯示指令數(shù)據(jù) 5 R/W H/L R/W=“H”,E=“H”數(shù)據(jù)被讀到DB7-DB0 R/W=“L”,E=“H→L”,DB7-DB0的數(shù)據(jù)寫到IR或DR 6 E H 使能信號: R/W=“L”,E信號下降沿鎖存DB7-DB0 R/W=“H”,E=“H”,DDRAM數(shù)據(jù)讀到DB7-DB0 7-14 DB0-DB7 H/L 數(shù)據(jù)總線 15 CS1 H 選擇IC1,即選擇前(左)64列 16 CS2 H 選擇IC2,即選擇后(右)64列 17 /RST H,H-L 復位控制信號,RST=0有效 18 VOUT -9.0V 內(nèi)部負壓發(fā)生器輸出電壓端 19 LEDA 5.0V LED背光電源正極 20 LEDK 0V LED背光電源負極 2、基本特征: (1) 低電源電壓(VDD:+3.0-- +5.5V); (2) 顯示分辨率:12864點; (3) 內(nèi)置漢字字庫,提供8192個1616點陣漢字(簡繁體可選); (4) 內(nèi)置128個168點陣字符; (5) 2MHZ時鐘頻率; (6) 顯示方式:STN、半透、正顯; (7) 驅(qū)動方式:1/32DUTY,1/5BIAS; (8) 背光方式:側(cè)部高亮白色 LED,功耗僅為普通 LED的1/5—1/10; (9) 通訊方式:串行、并口可選; (10)內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負壓; (11)無需片選信號,簡化軟件設計; (12) 工作溫度:0℃- +55℃ ,存儲溫度:- 20℃- +60℃[8] 。 2.2.5 按鍵電路 按鍵部分如圖2-8所示,主要有五個按鍵,分別與單片機的P2.0-P2.4相接,實現(xiàn)對液晶屏菜單的選擇。按鍵1是切換上一首歌曲,按鍵2是切換下一首歌曲,按鍵3是音量加,按鍵4是音量減,按鍵5是暫停。 圖2-8 按鍵電路 第3章 系統(tǒng)軟件設計 3.1 軟件功能概述 本系統(tǒng)是基于STC12C5A60S2單片機為核心模塊,音頻文件存儲在SD卡上,SD卡工作在SPI模式下的讀寫驅(qū)動,通過FAT32文件系統(tǒng)的移植,讀取SD卡信息,由單片機通過SPI通信在SD卡和VS1003之間進行數(shù)據(jù)傳輸,來達到歌曲的播放。 3.2 主程序設計 本系統(tǒng)是基于STC12C5A60S2單片機為核心模塊, 系統(tǒng)啟動后,先初始化硬件模塊。由單片機通過FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT 表以及根目錄所在的起始扇區(qū)等。通過這些信息就可以找出SD卡是否有可以播放的音樂文件。若有,單片機通過SPI總線方式讀出音頻信息,并將歌曲的碼流信息送入到VS1003芯片中,通過VS1003解碼芯片進行音頻數(shù)據(jù)解碼,實現(xiàn)MP3歌曲的播放功能[9]。同時通過按鍵掃描,判斷按鍵是按下,從而進行歌曲切換等功能。該系統(tǒng)主程序流程圖如圖3-1所示。 圖3-1 主程序流程圖 3.3 各子程序模塊設計 3.3.1 12864液晶顯示程序設計 本系統(tǒng)液晶模塊采用SPI協(xié)議與單片機進行數(shù)據(jù)交換,程序設計時,先進行正確的初始化,如圖3-2所示。顯示RAM提供642字節(jié)的空間,最多可以控制4行16字的中文字型顯示。 圖3-2 12864液晶顯示器初始化程序 液晶初始化正確后,顯示器顯示中文字幕。主要包括兩部分,一部分是給液晶寫指令,另一部分是給液晶寫數(shù)據(jù),則可以構造出顯示子程序,如圖3-3所示。由于液晶內(nèi)部自帶漢字模塊,只需發(fā)送漢字對應的代碼就可以實現(xiàn)漢字的顯示,其代碼可以在ST7920模塊的資料中查找。 圖3-3 12864液晶顯示程序 使用LCD12864時,需要對其寄存器以及功能器件有所了解。寄存器包括指令寄存器以及數(shù)據(jù)寄存器,通過對這兩個寄存器的操作可改變LCD的顯示方式和顯示內(nèi)容。 同樣重要的還有液晶的指令系統(tǒng)與時序,只有了解指令系統(tǒng)才能正確設置讀與寫操作,才能正確的設置行地址、列地址。而時序設置直接決定了顯示能否成功。不同的晶振需要不同的延時來保證時序的正確[10]。相關的指令代碼與時序圖可參照使用說明書。 3.3.2 SD卡程序設計 SD卡程序用于MP3文件的讀取,SD卡與單片機采用SPI協(xié)議進行數(shù)據(jù)交換,用軟件來模擬SPI總線的具體方法是:將SCK的初始狀態(tài)置0,允許接收后(即CS置0)將SCK置1,這樣單片機由DI線輸出1位數(shù)據(jù)到SD卡;接著再將SCK置0,單片機由DO線從SD卡讀1位數(shù)據(jù)[11]。至此,模擬1位數(shù)據(jù)輸入輸出完成。此后再將SCK置1,依次循環(huán)8次,完成SPI總線1字節(jié)數(shù)據(jù)的輸入輸出。 1、SD卡初始化 SD卡的初始化流程如圖3-4所示。SD卡上電延時74個時鐘周期后,單片機向SD卡發(fā)送復位命令CMD0,使SD卡進入SPI模式。之后循環(huán)發(fā)送激活SD卡指令CMD1,直到接收到SD卡響應的第0位為0。 圖3-4 SD卡初始化流程圖 2、SD卡數(shù)據(jù)塊讀寫 完成SD卡的初始化后,就可以對SD卡進行讀寫操作。讀寫操作都是通過指令來完成的:單塊寫命令CMD24,多塊寫命令CMD25,單塊讀命令CMD17,多塊讀命令CMD18。單塊讀寫時,數(shù)據(jù)塊的長度為512字節(jié),多塊讀寫時SD卡收到1個停止命令CMD12后停止讀寫。單塊讀、寫SD卡的軟件流程如圖3-5、3-6所示。 圖3-5 讀SD卡流程圖 圖3-6 寫SD卡流程圖 SD卡擁有SD和SPI兩種工作模式,相對于SD模式,SPI(同步串行傳輸)模式可以簡化主機設計,降低成本。并且大部分微處理器都有SPI模式,即使沒有SPI模式的微處理器,也可以通過軟件來模擬SPI。 3、SPI通信協(xié)議概述 SPI的原意是串行外圍設備接口,是MOTOROLA首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。 SPI總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。外圍設置FLASH RAM、網(wǎng)絡控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MUC等[11]。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCK)、主機輸入/輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS(有的SPI接口芯片帶有中斷信號線INT,有的SPI接口芯片沒有主機輸出/從機輸入數(shù)據(jù)線MOSI)。 3.3.3 FAT32文件系統(tǒng) 1、文件系統(tǒng) 文件系統(tǒng)為用戶與存儲設備的底層硬件交互抽象出來的一種操作借口,它是負責為用戶建立文件,存入、讀取、修改、轉(zhuǎn)儲文件,控制文件的讀取,給用戶提供了一種機制,方便用戶很簡單的操作文件以及快速簡潔的找到磁盤上的位置,而且不用理會底層實現(xiàn)的復雜機制。 如果有了文件系統(tǒng),就可以直接將數(shù)據(jù)組織為一個文件,給這些數(shù)據(jù)起一個名字,通過這個名字就可以訪問這些數(shù)據(jù),文件系統(tǒng)會根據(jù)文件名為我們找到數(shù)據(jù)在磁盤中的位置。 2、FAT32文件 (1) MBR區(qū) MBR,即主引導記錄,有時也稱主引導扇區(qū)。位于整個硬盤的0柱面0磁頭1扇區(qū)(可看作硬盤的第一個扇區(qū))。MBR不隨操作系統(tǒng)的不同而不同,意即不同的操作系統(tǒng)可能會存在相同的MBR,即使不同,MBR也會夾帶操作系統(tǒng)的性質(zhì)。具有公共引導的特性。 (2) DBR區(qū) DBR區(qū)即操作系統(tǒng)引導記錄區(qū)的意思,通常占用分區(qū)的第0扇區(qū)共512個字節(jié)(特殊情況也要占用其他保留扇區(qū))。在這512個字節(jié)中,其實又是由跳轉(zhuǎn)指令,廠商標志和操作系統(tǒng)版本號,BPB,擴展BPB,OS引導程序,結(jié)束標志幾部分組成。 (3) FAT Allocation Table(文件分配表) 它的作用是記錄硬盤中有關文件如何被分散存儲在不同扇區(qū)的信息。通FAT16相比,F(xiàn)AT32主要具有以下特點: ①同F(xiàn)AT16相比FAT32最大的優(yōu)點是可以支持的磁盤大小2TB(2047GB);而基于FAT16的Win2000支持的分區(qū)最大為4GB。 ②由于采用了更小的簇,F(xiàn)AT32文件系統(tǒng)可以更有效地保存信息。如兩個分區(qū)大小都為2GB,一個分區(qū)采用了FAT16文件系統(tǒng),另一個分區(qū)采用了FAT32文件系統(tǒng)。采用FAT16的分區(qū)的簇大小為32KB,而FAT32分區(qū)的簇只有4KB的大小。這樣FAT32就比FAT16的存儲效率要高很多,通常情況下可以提高15%。 ③ FAT32文件系統(tǒng)可以重新定位根目錄和使用FAT的備份副本。另外FAT32分區(qū)的啟用記錄被包含在一個含有關鍵數(shù)據(jù)的結(jié)構中,減少了計算機系統(tǒng)崩潰的可能性。 (4) 保留扇區(qū) FAT32中的保留扇區(qū)除了磁盤總第0扇區(qū)用作DBR,總第2扇區(qū)或總第0xC用作0S引導代碼擴轉(zhuǎn)部分外,其余扇區(qū)都不參與操作系統(tǒng)管理與磁盤數(shù)據(jù)管理,通常情況下是沒用的。操作系統(tǒng)之所以在FAT32中設置保留扇區(qū),是為了對DBR作備份或留待以后升級時用。FAT32中,DBR偏移0x34占2字節(jié)的數(shù)據(jù)指明了DBR備份扇區(qū)所在,一般為0x06,即第6扇區(qū)。當FAT32分區(qū)DBR扇區(qū)被破壞導致分區(qū)無法訪問時,可以用地6扇區(qū)的原備份替換第0扇區(qū)來找回數(shù)據(jù)[12]。 (5) 簇 FAT32文件系統(tǒng)中簇是存取數(shù)據(jù)的最小單元,哪怕一個文件的數(shù)據(jù)量只有一個字節(jié),它也會占用一個簇,而這個簇的空閑空間不能再被其他文件的數(shù)據(jù)占用。 3.3.4 VS1003音頻解碼程序設計 VS1003解碼芯片通過SPI協(xié)議與單片機交換數(shù)據(jù)。VS1003有兩種通信接口,其中通過SCI將控制信息寫入功能寄存器中,而通過SDI將音頻數(shù)據(jù)送入VS1003進行解碼。VS1003程序流程圖如圖3-7所示。 圖3-7 VS1003程序流程圖 1、VS1003的驅(qū)動方法 VS1003 與單片機連接的引腳主要有 7 個,分別為 SO、SI、SCLK、/XCS、/XRESET、DREQ、/XDCS。只有保證它們與單片機正確可靠的連接,才能對 VS1003 進行有效的操作與控制。 (1) 寫命令操作 要控制 VS1003 首先要實現(xiàn)的就是寫命令,這是控制是否成功的前提。關于通信接口部分,是一種同步串行接口方式(SPI 從機模式) ,它要求 SCLK 信號必須由外部電路產(chǎn)生,數(shù)據(jù)(SDATA)在 SCLK 的上升沿或下降沿時被寫入。驅(qū)動寫命令的過程如下: ① 等待 DREQ 為高(當 DREQ 為低時,說明芯片還沒有就緒); ② 將 XCS(命令片選)拉低; ③ 寫入 0x02; ④ 寫入寄存器地址; ⑤ 分別寫入數(shù)據(jù)的高字節(jié)與低字節(jié); ⑥ 將 XCS 置高。 如其它芯片一樣,初始化對于VS1003 來說同樣是極其重要的。初始化的過程大致是這樣的: ① 硬件復位:接 XRESET 拉低; ② 延時,將 XDCS、XCS、XRESET 置高; ③ 向 MODE 中寫入 0X0804; ④ 等待 DREQ 為高; ⑤ 設置 VS1003 的時鐘:SCI_CLOCKF=0x9800,3 倍頻; ⑥ 設置 VS1003 的采樣率:SPI_AUDATA=0xbb81,采樣率 48k,立體聲; ⑦ 設置重音:SPI_BASS=0x0055; ⑧ 設置音量:SCI_VOL=0x2020; ⑨ 向VS1003 發(fā)送 4 個字節(jié)的無效數(shù)據(jù), 用以啟動SPI發(fā)送。 在進行了正確的初始化后,還要著重檢查一下VS1003 的模擬部分是否正常。將 VS1003 的所有 DVDD、AVDD 管腳以及 XRESET、TEST(第 32 個引腳)接+3.0V,然后測量 RCAP 引腳,它應該是 1.3V 左右,否則芯片模擬部分未正常工作。 (2) 正弦測試 在上面的各種操作與檢測正確后,就可以讓VS1003 放出聲音。可以利用VS1003 自帶的正弦測試對音頻輸出進行測試。要啟動VS1003 的正弦測試,需要向其寫入正弦測試命令。這里提供啟動正弦測試的流程,在真實的硬件運行通過,最終的效果是在耳機中聽到單一頻率的正弦音(頻率可以通過程序來更改)[13]。 具體流程如下: ① 進入 VS1003 的測試模式:SPI_MODE=0X0820; ② 等待 DREQ 為高; ③ 將 XDCS 接低,而 XCS 要置高,選擇 VS1003 的數(shù)據(jù)接口; ④ 向 VS1003 發(fā)送正弦測試命令: 0X53 0XEF 0X6E 0X30 0X00 0X00 0X00 0X00其中 0X30 為頻率,可以修改為其它值; ⑤ 延時一段時間; ⑥ 退出正弦測試,發(fā)送命令:0X45 0X78 0X69 0X74 0X00 0X00 0X00 0X00; ⑦ 延時一段時間; ⑧ 循環(huán)以上流程。 (3) MP3 文件數(shù)據(jù)寫入 對 VS1003 的初始化與測試都通過后,然后給它發(fā)送 MP3 文件。數(shù)據(jù)的寫入方法,主要就是看 DREQ 信號,在 VS1003 的 FIFO 能夠接受數(shù)據(jù)的時候輸出高電平。每次可以寫入 32 個字節(jié)的數(shù)據(jù)。而 DREQ 變低時,單片機就要停- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 基于 單片機 MP3 音樂 播放 設計 論文
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.italysoccerbets.com/p-6402943.html