基于單片機(jī)的MP3播放器設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的MP3播放器設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的MP3播放器設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的MP3播放器設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的MP3播放器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于單片機(jī)的MP3播放器設(shè)計(jì)劉吁DesignofanMP3playerbasedonMicroControllerUnitLiuYu摘要本文介紹了一種基于51單片機(jī)的MP3播放器的設(shè)計(jì)方法,且具有無(wú)線藍(lán)牙控制功能,可使用手機(jī)無(wú)線控制MP3播放器,該播放器采用STC12C5A60S2單片機(jī)為主控制芯片,U盤(pán)(或SD卡)作為音頻文件的存儲(chǔ)介質(zhì),BY8001語(yǔ)音模塊作為解碼器,HC-06藍(lán)牙模塊與手機(jī)無(wú)線通訊連接。BY8001語(yǔ)音模塊從U盤(pán)(或SD卡)中讀取音頻文件及音樂(lè)播放關(guān)信息,通過(guò)串口1連接單片機(jī)將音樂(lè)播放信息送至單片機(jī)處理,并連接耳機(jī)(或喇叭)播放音樂(lè),STC12C5A60S2單片機(jī)使用特有的串口2連接藍(lán)牙模塊進(jìn)行數(shù)據(jù)傳輸,同時(shí)連接OLED顯示屏實(shí)時(shí)顯示音樂(lè)播放信息。實(shí)踐證明,該音樂(lè)播放器連接耳機(jī)后,具備播放聲音清晰,操作簡(jiǎn)便,功耗低等特點(diǎn)。關(guān)鍵詞:MP3播放器;藍(lán)牙模塊;STC12C5A60S2單片機(jī);OLEDABSTRACTThispaperintroducesadesignofanMP3playerbasedon51MCU,andhasaBluetoothfunction,youcanusethemobilephonewirelesscontrolMP3player,TheplayerusesSTC12C5A60S2MicroControllerUnitasthemaincontrolchip,SDcard(orUSBflashdisk)astheaudiofilestoragemedia,BY8001voicemoduleasadecoder,HC-06Bluetoothmoduleandmobilephonewirelesscommunicationconnection,BY8001voicemoduletoreadaudiofilesandmusicplaybackinformationfromtheSDcard(orUSBflashdisk),usetheserialporttoconnectthemusicplayerinformationtotheMCUprocessing,connectearphones(orspeakers)toplaymusic,STC12C5A60S2MCUusingserialporttoconnectBluetoothModule,whileSTC12C5A60S2single-chipconnectionOLEDdisplaytoreal-timedisplaymusic.Itishasprovedthatthemusicplayerconnectedtotheearphones,withasmoothsoundplayback,simpleoperation,lowpowerconsumption.Keywords:MP3player;Bluetoothmodule;STC12C5A60S2MCU;OLED

目錄摘要 IABSTRACT II緒論 2第1章系統(tǒng)方案設(shè)計(jì)與論證 21.1系統(tǒng)方案選擇 21.2系統(tǒng)設(shè)計(jì)思路 21.3系統(tǒng)功能及要求 2第2章系統(tǒng)主要器件及應(yīng)用 22.1STC12C5A60S2單片機(jī)介紹及應(yīng)用 22.30.96寸OLED顯示屏介紹及應(yīng)用 22.4語(yǔ)音模塊BY8001介紹及應(yīng)用 22.5U盤(pán)/SD卡應(yīng)用及格式介紹 22.6音頻輸出設(shè)備 22.7手機(jī)硬件最低配置需求 2第3章系統(tǒng)硬件電路設(shè)計(jì) 23.1最小系統(tǒng)電路設(shè)計(jì) 23.2藍(lán)牙無(wú)線控制電路設(shè)計(jì) 23.3OLED顯示屏電路設(shè)計(jì) 23.4BY8001語(yǔ)音模塊電路設(shè)計(jì) 23.5印制電路板設(shè)計(jì) 23.5.1PCB板應(yīng)用介紹 23.5.2PCB板圖設(shè)計(jì)的一般步驟 23.5.3PCB板圖設(shè)計(jì)應(yīng)注意的問(wèn)題 23.5.4系統(tǒng)PCB板圖制作信息 2第4章系統(tǒng)軟件設(shè)計(jì) 24.1系統(tǒng)軟件概述與思路 24.2OLED顯示程序設(shè)計(jì) 24.3串口通訊程序設(shè)計(jì) 24.4按鍵掃描程序設(shè)計(jì) 24.5上位機(jī)程序設(shè)計(jì) 2第5章系統(tǒng)調(diào)試與結(jié)果分析 25.1調(diào)試過(guò)程分析 25.2所遇問(wèn)題解決方法 2結(jié)論 2致謝 2參考文獻(xiàn) 2附錄一電路原理圖 2附錄二實(shí)物圖 2附錄三元件清單 2附錄四程序代碼 2緒論1.課題研究的背景與意義生活壓力大、節(jié)奏快早已不是一個(gè)陌生的話題。隨著現(xiàn)代社會(huì)的快速發(fā)展,人們的生活水平也在逐步提高,但是由于工作和生活節(jié)奏的加快,人們所感受到的壓力也越來(lái)越大?,F(xiàn)代生活給人們帶來(lái)便利和豐富的物質(zhì)資源的同時(shí),人們也在為社會(huì)的發(fā)展建設(shè)奉獻(xiàn)著自己的一份力量,伴隨而來(lái)的便是沉重的壓力和脆弱的生理防線?,F(xiàn)在的社會(huì)法則奉承著奮斗,競(jìng)爭(zhēng)理念,講究生產(chǎn)效率和生產(chǎn)水平,人們無(wú)時(shí)無(wú)刻不處于這種壓力之中,這使得人們需要尋找另一方式來(lái)釋放生活壓力,緩解疲勞,舒緩心情。生活中的人們?cè)絹?lái)越多的使用播放器來(lái)欣賞音樂(lè),目前多以MP3播放器為主流,MP3播放器小巧便捷,音質(zhì)佳,非常適合在大多數(shù)場(chǎng)合使用。在科技飛速發(fā)展的今天,幾乎每個(gè)人隨身都配有一部手機(jī),而如今的手機(jī)無(wú)一不裝有MP3播放器,MP3音樂(lè)播放器是集音頻播放、數(shù)據(jù)存儲(chǔ)為一身的電子產(chǎn)品,現(xiàn)在的MP3播放器樣式五花八門(mén),其結(jié)構(gòu)功能一直是電子領(lǐng)域研究者所要研究的對(duì)象。所涉及的MP3是MPEG-1(MovingPictureExpertsGroup)音頻III(layerIII)的簡(jiǎn)稱(chēng),其中的III層算法相比其他的壓縮算法而言,雖在算法較為復(fù)雜,但既實(shí)現(xiàn)了高壓縮比,音質(zhì)效果也顯著。使用MP3算法可以在低碼率的情況下基本上可以達(dá)到CD音質(zhì)效果。如果存儲(chǔ)一段不壓縮的無(wú)損音頻,那么導(dǎo)致數(shù)據(jù)流碼率非常大,這使得音樂(lè)傳輸很不方便,也致使MP3格式作為網(wǎng)絡(luò)音頻傳輸、音樂(lè)存儲(chǔ)、數(shù)字廣播的主要方式。MP3在多年前就搶了CD/MD的風(fēng)頭,一舉奪得了音樂(lè)領(lǐng)域市場(chǎng)的頭把交椅。時(shí)隔多年,MP3憑借高壓縮比,低碼率,接近CD音效質(zhì)量的絕對(duì)優(yōu)勢(shì),依然沒(méi)有衰退的跡象,如今依靠強(qiáng)悍的功能,多變的造型以及新穎元素設(shè)計(jì)的添加仍然充滿(mǎn)生機(jī)與活力?,F(xiàn)今的MP3技術(shù)已經(jīng)非常成熟,MP3領(lǐng)域市場(chǎng)已不關(guān)心MP3播放器如何運(yùn)行,而是把注意力投向了MP3播放器的功耗方面,在未來(lái)的MP3播放器的市場(chǎng)上,無(wú)線藍(lán)牙MP3播放器的普及將可能成為一種趨勢(shì)。本文提出了一種基于單片機(jī)的MP3播放器的設(shè)計(jì)方案,并且具有無(wú)線藍(lán)牙功能,這很好的體現(xiàn)了此次設(shè)計(jì)的靈活性。該設(shè)計(jì)方案已基本實(shí)現(xiàn),能夠?qū)崿F(xiàn)MP3播放器的一般功能。2.音樂(lè)播放器國(guó)內(nèi)外現(xiàn)狀據(jù)中國(guó)產(chǎn)業(yè)調(diào)研網(wǎng)發(fā)布的《中國(guó)MP3播放器行業(yè)現(xiàn)狀分析與發(fā)展前景研究報(bào)告》(2015年版)顯示,經(jīng)過(guò)近年來(lái)的迅速發(fā)展,MP3音樂(lè)播放器作為一種便攜的音頻播放設(shè)備,早已融入廣大消費(fèi)者的生活。另外,目前硬盤(pán)、閃存、主控芯片、液晶屏幕等主要部件的技術(shù)已經(jīng)非常成熟,隨著MP3產(chǎn)品的設(shè)計(jì)理念不斷改善,性能、集成度、產(chǎn)業(yè)化程度不斷提高,生產(chǎn)成本也已經(jīng)降到了較低價(jià)位。現(xiàn)在大部分業(yè)務(wù)已經(jīng)開(kāi)始在控制體驗(yàn),界面設(shè)計(jì),網(wǎng)絡(luò)功能,智能化,人性化等方面實(shí)現(xiàn)產(chǎn)品升級(jí)。這既開(kāi)拓了MP3領(lǐng)域市場(chǎng),也避免打價(jià)格戰(zhàn)的風(fēng)險(xiǎn)。近年來(lái),國(guó)內(nèi)MP3播放器品牌取得顯著發(fā)展,憑借在性?xún)r(jià)比的絕對(duì)優(yōu)勢(shì)使之能與國(guó)外強(qiáng)勢(shì)品牌抗衡。展望近幾年來(lái)國(guó)外MP3播放器現(xiàn)狀,韓國(guó)MP3播放器地位在數(shù)碼產(chǎn)品領(lǐng)域正逐步降低,美國(guó)MP3播放器市場(chǎng)的銷(xiāo)量卻屢創(chuàng)新高,而日本則將對(duì)市場(chǎng)銷(xiāo)售的MP3播放器征收一部分稅,可見(jiàn)MP3播放器市場(chǎng)正在進(jìn)一步擴(kuò)大。3.藍(lán)牙MP3普及時(shí)代到來(lái)如今的MP3技術(shù)已日趨成熟,除基本功能和音效等以外,在便捷性等方面,人們開(kāi)始提出更高的需求,當(dāng)下最具發(fā)展?jié)摿Φ谋闶菬o(wú)線數(shù)據(jù)傳輸技術(shù),自從智能手機(jī)出現(xiàn)以后,藍(lán)牙的廣泛普及,給了人們一定的啟示,藍(lán)牙MP3的普及時(shí)代到來(lái)已是大勢(shì)所趨。聽(tīng)歌的過(guò)程可以掙脫線材纏繞的束縛,讓音樂(lè)隨身而動(dòng)。不同的設(shè)備之間可以通過(guò)藍(lán)牙進(jìn)行數(shù)據(jù)通訊,功能的融合,比如手機(jī)來(lái)電時(shí),可以自動(dòng)由MP3播放切換到電話的接聽(tīng)。一場(chǎng)無(wú)線的藍(lán)牙革命,已經(jīng)進(jìn)入倒計(jì)時(shí)階段。藍(lán)牙技術(shù)屬于短距離無(wú)線通訊技術(shù),一般情況下,傳輸距離在十米以?xún)?nèi),但隨著科技的發(fā)展,傳輸距離可達(dá)到一百米之外。在不久的將來(lái),生活或工作的電子設(shè)備(PC機(jī)、筆記本電腦、打印機(jī)、傳真機(jī)、數(shù)碼相機(jī)、移動(dòng)電話、家電設(shè)備等)或許可以通過(guò)藍(lán)牙連接形成一個(gè)局部的微型局域網(wǎng),局域網(wǎng)之間又可以進(jìn)行通訊,覆蓋范圍更廣。藍(lán)牙傳輸?shù)木嚯x和速度雖低于WLAN,但是功耗更低,資源節(jié)約且更環(huán)保,對(duì)人體有害的電磁輻射更小。隨著藍(lán)牙技術(shù)的迅猛發(fā)展,相關(guān)配件的成本也會(huì)越來(lái)越低,現(xiàn)如今,MP3等便攜式播放器領(lǐng)域開(kāi)始出現(xiàn)了藍(lán)牙應(yīng)用的萌芽。三星發(fā)力在今年開(kāi)始在多款新機(jī)型中配備藍(lán)牙功能。國(guó)產(chǎn)廠家藍(lán)魔也推出了新款藍(lán)牙MP3V150,其他一些國(guó)內(nèi)廠家如初露頭角的TMSON也有揭竿而起的勢(shì)頭。國(guó)內(nèi)外廠商大踏步向藍(lán)牙邁進(jìn),似乎國(guó)內(nèi)MP3市場(chǎng),藍(lán)牙普及的春風(fēng)不遠(yuǎn)了。4.課題設(shè)計(jì)主要內(nèi)容擬解決的問(wèn)題本次課題需要設(shè)計(jì)一個(gè)基于單片機(jī)的MP3播放器,并且采用OLED顯示屏實(shí)時(shí)顯示音樂(lè)播放信息,例如播放歌曲名、音量、播放進(jìn)度、模式及曲目量,并且實(shí)現(xiàn)MP3格式音樂(lè)的流暢播放及對(duì)音頻文件的存儲(chǔ)功能。該設(shè)計(jì)主要有單片機(jī)最小系統(tǒng)、音頻解碼模塊、OLED顯示模塊以及藍(lán)牙模塊構(gòu)成。解碼模塊不斷地從存儲(chǔ)設(shè)備中提取音頻文件并自動(dòng)解碼然后送至功放或者耳機(jī)播放音樂(lè),單片機(jī)主要提取音樂(lè)文件的音樂(lè)播放信息,通過(guò)OLED顯示屏給予顯示,以及實(shí)時(shí)發(fā)送命令控制音頻解碼模塊。通過(guò)課題的內(nèi)容要求及理論剖析,擬需解決的問(wèn)題主要有三個(gè):其一,單片機(jī)與解碼芯片的接發(fā)數(shù)據(jù)量巨大,而彼此之間通過(guò)串口連接,需要保證數(shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性;其二,在軟件編程方面,需要對(duì)收發(fā)的大量數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,其間涉及的變量眾多,須保證各函數(shù)模塊之間的低耦合性和協(xié)調(diào)性。尤其是在處理波特率的問(wèn)題上,誤差不能太大須精準(zhǔn)地編寫(xiě)好波特率發(fā)生器的初始化;其三,MP3播放器與上位機(jī)(手機(jī))的藍(lán)牙無(wú)線通訊時(shí),要保證上位機(jī)通過(guò)藍(lán)牙發(fā)送的數(shù)據(jù)無(wú)誤,對(duì)手機(jī)APP(手機(jī)藍(lán)牙串口助手)內(nèi)編寫(xiě)的數(shù)據(jù)需與播放器的控制指令相一致,做到按鍵和手機(jī)的雙重控制。第1章系統(tǒng)方案設(shè)計(jì)與論證1.1系統(tǒng)方案選擇STC12C5A60S2單片機(jī)5V轉(zhuǎn)3.3VLCD1602顯示屏鍵盤(pán)5V電源SD卡模塊SD卡方案一:采用宏晶公司的的高速1T增強(qiáng)型STC12C5A60S2單片機(jī)作為主控芯片,音頻解碼模塊采用VS1003解碼模塊,U盤(pán)模塊(CH375)及SD卡模塊用于將U盤(pán)及SD卡的MP3文件提取出來(lái),然后單片機(jī)讀取數(shù)據(jù)將MP3音頻文件送至VS1003解碼器解碼并連接耳機(jī)、外部功放播放音樂(lè)。相關(guān)的音樂(lè)播放信息通過(guò)LCD1602STC12C5A60S2單片機(jī)5V轉(zhuǎn)3.3VLCD1602顯示屏鍵盤(pán)5V電源SD卡模塊SD卡耳機(jī)VS1003解碼器CH375U盤(pán)耳機(jī)VS1003解碼器CH375U盤(pán)圖1-1系統(tǒng)結(jié)構(gòu)圖方案一方案二:此方案所選的單片機(jī)同樣是STC12C5A60S2單片機(jī),它是每機(jī)器周期1個(gè)時(shí)鐘的高速單片機(jī),工作頻率0~35MHz,最大相當(dāng)于普通8051單片機(jī)的420MHz,足夠滿(mǎn)足此次設(shè)計(jì)要求。采用BY8001-16P語(yǔ)音模塊作為解碼器,內(nèi)置解碼和功放功能,可直接接3W的喇叭,同時(shí)采用OLED顯示屏為播放信息輸出設(shè)備,另外接藍(lán)牙模塊,可使用手機(jī)無(wú)線控制MP3音樂(lè)播放器。方案分析:方案一和方案二同時(shí)采用了STC12C5A60S2單片機(jī),主要是因?yàn)榇藛纹瑱C(jī)為1T的高速單片機(jī),具有一個(gè)時(shí)鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,且內(nèi)置高達(dá)60KB大容量FLASH存儲(chǔ)器。另一個(gè)主要的原因是此單片機(jī)比普通單片機(jī)多一串口,而此次設(shè)計(jì)需用到兩個(gè)串口,分別與藍(lán)牙和MP3模塊通訊,貼合系統(tǒng)設(shè)計(jì)要求。方案一的VS1003解碼器雖為一款高性能的音頻解碼芯片,但外部定義端口較少,VS1003驅(qū)動(dòng)編程較為麻煩,CH375U盤(pán)模塊也需編寫(xiě)U盤(pán)驅(qū)動(dòng)設(shè)計(jì)FAT16文件格式及MP3格式,程序編寫(xiě)方面不易操作。OLED顯示屏具備自發(fā)光,厚度薄,視角廣,顯示效果比LCD1602好,且能顯示漢字,更宜作為此次的MP3播放器顯示屏以顯示歌曲名等相關(guān)字符信息.BY8001解碼器內(nèi)置解碼和功放功能,自動(dòng)解碼MP3/WAV格式的音樂(lè)文件,減輕了編程工作量,其播放音質(zhì)效果不比VS1003解碼器差。綜合對(duì)比宜選用方案二作為此次課題方案。1.2系統(tǒng)設(shè)計(jì)思路本次畢業(yè)設(shè)計(jì)課題需要設(shè)計(jì)一個(gè)基于單片機(jī)的MP3播放器,要求實(shí)現(xiàn)對(duì)MP3音頻文件的存儲(chǔ)功能和播放功能,同時(shí)采用OLED顯示屏實(shí)時(shí)顯示音樂(lè)播放信息,例如播放歌曲名稱(chēng),音量以及播放進(jìn)度等,具有兩種輸入方式控制MP3音樂(lè)播放器的狀態(tài),一種是傳統(tǒng)按鍵,另一種是運(yùn)用手機(jī)通過(guò)藍(lán)牙模塊控制播放器。連接喇叭或耳機(jī)播放音樂(lè)。此課題研究的系統(tǒng)設(shè)計(jì)框圖如圖1-2所示。STC12C5A60S2STC12C5A60S2單片機(jī)OLED顯示屏dPjkpin屏BY8001模塊藍(lán)牙模塊5V電源時(shí)鐘電路復(fù)位電路按鍵SD/U盤(pán)喇叭手機(jī)終端串口2串口1耳機(jī)圖1-2MP3播放器總體設(shè)計(jì)框圖該設(shè)計(jì)系統(tǒng)主要有STC12C5A60S2單片機(jī)、時(shí)鐘電路、復(fù)位電路、電源電路、按鍵、BY8001解碼模塊、OLED顯示模塊、音頻輸出設(shè)備以及HC-06藍(lán)牙模塊組成。時(shí)鐘電路、復(fù)位電路及STC12C5A60S2單片機(jī)組成了工作最小系統(tǒng),支持單片機(jī)順利運(yùn)行的最基本硬件條件,HC-06藍(lán)牙模塊以單片機(jī)通過(guò)串口2(TXD2和RXD2引腳)連接,以支持手機(jī)藍(lán)牙無(wú)線控制,解碼模塊引腳可同時(shí)插入SD卡和U盤(pán),并優(yōu)先選擇U盤(pán)進(jìn)行數(shù)據(jù)傳輸。并用串口1(TXD1和RXD1引腳)進(jìn)行通訊。OLED顯示屏模塊為6引腳SPI接口,與單片機(jī)通過(guò)SPI方式連接,由于單片機(jī)從BY8001解碼模塊采集到的音樂(lè)播放信息是四個(gè)字節(jié)的ASCII字符,需經(jīng)字符轉(zhuǎn)換處理才能將信息輸出到OLED顯示屏。1.3系統(tǒng)功能及要求此次系統(tǒng)設(shè)計(jì)的主要內(nèi)容是設(shè)計(jì)一款基于單片機(jī)的MP3音樂(lè)播放器,該MP3音樂(lè)播放器不僅能實(shí)現(xiàn)主流播放器的基本功能,且能夠做到傳統(tǒng)機(jī)械按鍵和手機(jī)終端對(duì)該MP3播放器的雙重控制。此播放器的主要特點(diǎn)如下:該播放器配有八個(gè)傳統(tǒng)獨(dú)立功能鍵(上一首/快進(jìn)、下一首/快退、音量+、音量-、播放/暫停、停止、音效、設(shè)置循環(huán)模式),涵蓋了對(duì)播放器控制的基本功能??赏瑫r(shí)插放U盤(pán)和SD卡,并優(yōu)先選擇U盤(pán)讀取MP3音頻文件。采用OLED顯示屏顯示音樂(lè)播放信息并能顯示漢字歌曲名。使用3W小喇叭播放外音,也可插入耳機(jī)聆聽(tīng)音樂(lè)(插入耳機(jī)后喇叭斷開(kāi))。所播放的歌曲音質(zhì)清晰、流暢,聲音優(yōu)美??墒褂檬謾C(jī)APP無(wú)線藍(lán)牙控制該MP3音樂(lè)播放器的狀態(tài)與傳統(tǒng)按鍵實(shí)現(xiàn)功能一致。即使MP3格式音頻文件是進(jìn)過(guò)壓縮后低碼率傳輸,但對(duì)于單片機(jī)來(lái)說(shuō)可不容忽視,語(yǔ)音模塊與單片機(jī)是通過(guò)串口進(jìn)行連接,傳輸數(shù)據(jù)速度不及并口傳輸,則須選擇運(yùn)行速度快的單片機(jī),STC12C5A60S2單片機(jī)便符合要求,另外在軟件的編寫(xiě)方面需達(dá)到程序條理清晰,邏輯清楚,可執(zhí)行度高的要求。第2章系統(tǒng)主要器件及應(yīng)用2.1STC12C5A60S2單片機(jī)介紹及應(yīng)用EQ單片機(jī)以其高可靠性、高性?xún)r(jià)比、低電壓、低功耗等一系列特點(diǎn),近幾年來(lái)應(yīng)用非常廣泛,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀表以及通信設(shè)備、日常消費(fèi)類(lèi)產(chǎn)品、玩具等,并且已經(jīng)深入到日常生活的每一個(gè)角落。此次設(shè)計(jì)選用了宏晶公司的STC12C5A60S2單片機(jī),其具有一個(gè)時(shí)鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,處理速度比傳統(tǒng)8051快8~12倍,該單片機(jī)時(shí)鐘有5~35MHz可選,相當(dāng)于普通8051的60~420MHz,代碼指令可以完全兼容8051系列單片機(jī),且增加了2路PWN,8路10位A/D轉(zhuǎn)換,專(zhuān)用復(fù)位電路以及多增加了一個(gè)串口2。(1)STC12C5A60S2單片機(jī)管腳如圖2-1所示。圖2-1STC12C5A60S2單片機(jī)引腳圖(2)51單片機(jī)有4個(gè)并行I/O口,分別為P0-P3(STC12C5A60S2額外增了P4口)。每個(gè)并行口由8個(gè)引腳組EQ\x\to(INT0)成,都可以用作普通I/O操作。除了P1口外,其它并行口都有復(fù)用功能。P0口(32~39腳):當(dāng)向外部存儲(chǔ)器讀/寫(xiě)數(shù)據(jù)時(shí),PO口是復(fù)用口,P0和P2口配合完成低8位地址的傳送后,P0口在傳送8位數(shù)據(jù)。P1口就看見(jiàn)(1~8腳):只具有I/O功能。P2口(21~28腳):當(dāng)向外部存儲(chǔ)器讀/寫(xiě)數(shù)據(jù)時(shí),P2口用于傳送高8位地址P3口(10~17腳):P3口除了具備通用I/O口功能,還具有非常重要的復(fù)用功能。EQEQEQ端口位第二功能注釋端口位第二功能注釋P3.0RXD串口輸入端P3.4TO定時(shí)器/計(jì)數(shù)器0輸入端P3.1TXD串口輸出端P3.5T1定時(shí)器/計(jì)數(shù)器1輸入端P3.2EQ\x\to(INT0)外部中斷0輸入端P3.6EQ\x\to(WR)外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)P3.3EQ\x\to(INT1)外部中斷1輸入端P3.7EQ\x\to(RD)外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)表2-1P3口復(fù)用功能表2.2HC-06藍(lán)牙模塊介紹及應(yīng)用HC-06藍(lán)牙模塊是一款專(zhuān)門(mén)為智能數(shù)據(jù)傳播而設(shè)計(jì)的,符合V2.0+EDR藍(lán)牙規(guī)范,且具有體積小,功耗低,收發(fā)靈敏迅速等優(yōu)點(diǎn)。只需要配備少許的外圍元件就可以實(shí)現(xiàn)其強(qiáng)大的功能,該模塊用于短距離無(wú)線數(shù)據(jù)傳輸領(lǐng)域,能方便地與手機(jī)、PC機(jī)以及單片機(jī)相連接,減少了線材的纏繞束縛,類(lèi)似于單片機(jī)的串口,廣泛應(yīng)用于POS機(jī)、無(wú)線鍵盤(pán)、鼠標(biāo)、工業(yè)遙控、無(wú)線數(shù)據(jù)采集、智能家居、樓宇自動(dòng)化以及井下定位。由于HC-06藍(lán)牙模塊的串口電平為3.3V,故該模塊采用的是增加了5V轉(zhuǎn)3.3V電平轉(zhuǎn)換芯片的藍(lán)牙模塊,其實(shí)物圖如圖2-2所示圖2-2HC-06藍(lán)牙模塊實(shí)物圖第一次使用HC-06藍(lán)牙模塊式需要對(duì)其進(jìn)行參數(shù)設(shè)置,通過(guò)AT指令進(jìn)行設(shè)置,比如設(shè)置設(shè)備名稱(chēng),配對(duì)密碼,修改波特率等。這里我們采用電腦進(jìn)行修改,通過(guò)USB轉(zhuǎn)串口線(CH340芯片)連接電腦與藍(lán)牙??欤琔SB線的TXD、RXD分別與模塊的RXD、TXD相連。本設(shè)計(jì)使用從機(jī)模式,AT指令的參數(shù)設(shè)置是在沒(méi)有配對(duì)連接的情況下(指示燈閃爍)進(jìn)行字符傳輸?shù)?。?)藍(lán)牙模塊AT指令集見(jiàn)表2-2所示。(2)藍(lán)牙模塊引腳說(shuō)明見(jiàn)表2-3所示。本次使用的藍(lán)牙模塊設(shè)置的參數(shù)為默認(rèn),即藍(lán)牙模塊名稱(chēng)為HC-06,波特率設(shè)為9600b/s,無(wú)校驗(yàn)位,配對(duì)密碼為1234。表2-2藍(lán)牙模塊AT指令集AT指令對(duì)應(yīng)功能返回參數(shù)AT測(cè)試通訊OKAT+BAUD1改藍(lán)牙串口通訊波特率OKAT+NAMEname改藍(lán)牙名稱(chēng)OKsetnameAT+PINxxx配對(duì)密碼OKsetPINAT+PN無(wú)校驗(yàn)OKsetPINAT+PE偶校驗(yàn)無(wú)AT+P奇校驗(yàn)無(wú)表2-3藍(lán)牙模塊引腳說(shuō)明序號(hào)引腳名稱(chēng)功能1VCC接3.6V-6V電壓2GND接地3RXD模塊的串口輸入端,接單片機(jī)的TXD4TXD模塊的串口輸出端,接單片機(jī)的RXD注:狀態(tài)STATE引腳和使能EN引腳未使用2.30.96寸OLED顯示屏介紹及應(yīng)用采用OLED顯示屏作為音樂(lè)播放信息的輸出設(shè)備,OLED,即有機(jī)發(fā)光二極管(OrganicLightEmittingDiode)。OLED由于同時(shí)具備自發(fā)光,不像LCD顯示屏需要背光源、且OLED屏具有對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、顯示效果好、使用溫度范圍廣、構(gòu)造工藝簡(jiǎn)單等優(yōu)異的特性,現(xiàn)廣泛用于手機(jī),相機(jī)等數(shù)碼產(chǎn)品領(lǐng)域。此次采用128*64分辨率的藍(lán)色顯示屏,并采用6針SPI接口方式,去掉了CS片選引腳。0.96寸OLED屏SPI接口模塊如圖2-3所示。圖2-36針SPI接口OLED表2-4OLED引腳用途描述引腳序號(hào)引腳名稱(chēng)引腳描述1GND電源地2VCC電源正(接3-5.5V)3SCL在SPI接口方式通信中為時(shí)鐘管腳4SDA在SPI接口方式通信中為數(shù)據(jù)管腳5RSTOLED的RES#腳,用來(lái)復(fù)位(低電平復(fù)位)6D/COLED的D/C#E腳,數(shù)據(jù)和命令控制管腳本次采用的顯示屏內(nèi)部備有驅(qū)動(dòng)芯片SSD1306,其內(nèi)部具有升壓功能,不需要額外添加升壓電路。因?yàn)?.96寸OLED顯示屏為128*64的分辨率,SSD1306將點(diǎn)陣分為8頁(yè),每頁(yè)有128個(gè)字節(jié),通俗地說(shuō)就是將整個(gè)像素點(diǎn)分成8層,每層具有8*128個(gè)像素,每一層的每一列是一個(gè)字節(jié)(低位在前,高位在后),依次從左到右,從上到下計(jì)算。2.4語(yǔ)音模塊BY8001介紹及應(yīng)用BY8001語(yǔ)音模塊是此次畢業(yè)設(shè)計(jì)的核心器件,是深圳市百為電子科技有限公司自主研發(fā)的一款小巧的新型高品質(zhì)插卡語(yǔ)音模塊,支持MP3、WAV格式雙解碼。該語(yǔ)音模塊內(nèi)置MicroSD卡插槽,外部也可接U盤(pán)或USB數(shù)據(jù)線連接電腦更換音頻文件內(nèi)容,且自帶功放,可直接驅(qū)動(dòng)3W的喇叭。BY8001語(yǔ)音模塊的引腳功能如圖2-3所示

圖2-4BY8001-16P引腳圖圖2-5BY8001-16P實(shí)物圖BY8001內(nèi)置標(biāo)準(zhǔn)UART異步串口接口,屬于3.3VTTL電平接口。該模塊與單片機(jī)的通訊數(shù)據(jù)格式為一個(gè)起始位、一個(gè)停止位和八個(gè)數(shù)據(jù)位,每次傳輸10位數(shù)據(jù),故單片機(jī)應(yīng)采用工作方式1才能與語(yǔ)音模塊進(jìn)行正確的數(shù)據(jù)傳輸,波特率設(shè)置為9600。BY8001語(yǔ)音模塊引腳定義描述見(jiàn)表2-5所示語(yǔ)音模塊的命令通訊數(shù)據(jù)有6或7字節(jié)組成,單片機(jī)發(fā)送命令數(shù)據(jù)對(duì)播放器進(jìn)行相應(yīng)的控制,其數(shù)據(jù)全部為十六進(jìn)制數(shù)。指令中的“長(zhǎng)度”是指長(zhǎng)度、操作碼、參數(shù)、校驗(yàn)碼的個(gè)數(shù),“校驗(yàn)碼”是指“長(zhǎng)度”與“操作碼(與參數(shù))”按位異或得到的值。此次所用的BY8001語(yǔ)音芯片的串口允許的波特率為9600b/s,其他的波特率并不適用,這一點(diǎn)要特別注意,同時(shí)采用無(wú)校驗(yàn)的數(shù)據(jù)格式,在使之與單片機(jī)進(jìn)行數(shù)據(jù)傳輸之前需使用電腦串口調(diào)試助手進(jìn)行通訊測(cè)試且應(yīng)用公式計(jì)算出命令數(shù)據(jù)的校驗(yàn)碼。起始碼和結(jié)束碼固定,分別是0X7E和OXEF,每個(gè)數(shù)據(jù)有雙字節(jié)組成。校驗(yàn)碼由長(zhǎng)度、操作碼及參數(shù)經(jīng)異或運(yùn)算得出?,F(xiàn)以數(shù)據(jù)(7E0431192CEF)指令說(shuō)明每個(gè)數(shù)據(jù)有高字節(jié)和低字節(jié)組成按位異或,即:04⊕31⊕19=2C1)由于需要的控制指令較多,手動(dòng)計(jì)算量大,可通過(guò)計(jì)算器進(jìn)行計(jì)算,并選擇程序員模式、十六進(jìn)制和雙字格式。如圖為一段截取的計(jì)算器計(jì)算數(shù)據(jù)圖如圖2-6所示。表2-5BY8001語(yǔ)音模塊引腳定義序號(hào)管腳名稱(chēng)功能描述備注1BUSY播放時(shí)輸出高電平,停止為低忙信號(hào)2RXUART異步串口數(shù)據(jù)輸入3.3V的TTL電平3TXUART異步串口數(shù)據(jù)輸出3.3V的TTL電平4DACRDAC右聲道輸出可外接功放、耳機(jī)5DACLDAC左聲道輸出可外接功放、耳機(jī)6SPK1外接單聲道無(wú)源喇叭兩端接2W/4Ω或1W/8Ω以上喇叭7SPK28VCC電源正極3.6-5V9IO5觸發(fā)輸入口5接地觸發(fā)10IO4觸發(fā)輸入口4接地觸發(fā)11IO3觸發(fā)輸入口3接地觸發(fā)12IO2觸發(fā)輸入口2接地觸發(fā)13IO1觸發(fā)輸入口1接地觸發(fā)14GND電源負(fù)極系統(tǒng)地,外接大功率功放時(shí),大電流不要流過(guò)這個(gè)地腳15DPUSB數(shù)據(jù)線讀U盤(pán)或用USB數(shù)據(jù)線連接電腦更換TF卡內(nèi)容16DMUSB數(shù)據(jù)線圖2-6計(jì)算器計(jì)算數(shù)據(jù)畫(huà)面BY8001語(yǔ)音模塊與單片機(jī)通訊連接之前需連接電腦進(jìn)行通訊測(cè)試,這里使用USB轉(zhuǎn)TTL電平接口(SiliconLabcp2102modules)作為兩者的中介橋梁。通過(guò)電腦串口調(diào)試助手發(fā)送相關(guān)的控制指令,同時(shí)也接受語(yǔ)音模塊返回的參數(shù)信息,下圖2-7所示為一段截取的串口調(diào)試助手收發(fā)語(yǔ)音模塊數(shù)據(jù)的界面。圖2-7串口調(diào)試助手發(fā)送的數(shù)據(jù)在串口調(diào)試助手中,必須選擇9600b/s的波特率,否則無(wú)法通訊,并選擇HEX文件發(fā)送,這里嘗試發(fā)送了一個(gè)調(diào)節(jié)音量的通訊控制指令,然后返回OK表示成功發(fā)送。2.5U盤(pán)/SD卡應(yīng)用及格式介紹MP3播放器采用U盤(pán)作為MP3格式音頻文件的存儲(chǔ)媒介,U盤(pán)是一種閃存盤(pán),帶有USB接口無(wú)需物理驅(qū)動(dòng)器只需在電腦上安裝U盤(pán)驅(qū)動(dòng)程序即可做到即插即用的效果,且體積小巧便捷,存儲(chǔ)容量大,使用U盤(pán)便可存儲(chǔ)多首歌曲文件。如今只是作為數(shù)據(jù)存儲(chǔ)用途的U盤(pán),開(kāi)發(fā)出更多的功能:加密U盤(pán)、殺毒U盤(pán)以及音樂(lè)U盤(pán)等。而U盤(pán)中帶有FAT32文件管理系統(tǒng),用于對(duì)存儲(chǔ)的數(shù)據(jù)方便進(jìn)行管理以及讀寫(xiě),F(xiàn)AT32文件系統(tǒng)分4個(gè)字節(jié)表示每個(gè)扇區(qū)的配置文件,存儲(chǔ)空間利用率、安全性、靈活性高。U盤(pán)里面的MP3文件通過(guò)BY8001讀取,以每次512Byte讀取一個(gè)扇區(qū)送至內(nèi)部的解碼模塊進(jìn)行解碼。如圖2-8為本次使用的U盤(pán)實(shí)物圖。圖2-8U盤(pán)圖2-9MicroSD卡MicroSD卡即TF卡,是一種大容量、小尺寸,閃存式的新一代存儲(chǔ)設(shè)備,數(shù)據(jù)傳輸速度快,且具有熱插熱拔特性。在SD卡規(guī)范中,理論上的讀寫(xiě)速度可到104M/s,并且可以轉(zhuǎn)換為MiniSD卡和普通SD卡使用,廣泛應(yīng)用于手機(jī)、平板電腦、MP3/MP4、導(dǎo)航儀等小型手持式數(shù)碼產(chǎn)品,MicroSD卡實(shí)物圖如圖2-9所示。本音樂(lè)播放器選用MicroSD卡作為第二種存儲(chǔ)裝置,此播放器可同時(shí)接入U(xiǎn)盤(pán)和SD卡,并優(yōu)先選擇U盤(pán)進(jìn)行讀取音頻文件。MicroSD卡通過(guò)語(yǔ)音模塊內(nèi)置的卡槽與之連接,格式化為FAT32文件格式。將MP3格式文件存儲(chǔ)至TF卡中,并通過(guò)SPI接口工作模式與語(yǔ)音模塊連接。2.6音頻輸出設(shè)備此次系統(tǒng)設(shè)計(jì)可接入的音頻輸出設(shè)備既可是揚(yáng)聲器亦可是耳機(jī)。所用的喇叭是一款功率3W、內(nèi)阻4Ω的優(yōu)質(zhì)迷你揚(yáng)聲器,此喇叭廣泛應(yīng)用于小音響、便攜式播放器產(chǎn)品。外觀為亮帽型,材質(zhì)為鐵殼內(nèi)磁、橡膠PU邊且音質(zhì)較佳。該播放器可插入3.5mm的通用耳機(jī),耳機(jī)是一對(duì)轉(zhuǎn)換單元,它接收語(yǔ)音模塊所發(fā)出的電訊號(hào),利用貼近耳機(jī)的揚(yáng)聲器將其轉(zhuǎn)化成可以聽(tīng)到的音波。另外,如果在耳機(jī)插座處接入大功率有源音響可以達(dá)到更加出色的音質(zhì)效果。2.7手機(jī)硬件最低配置需求此次設(shè)計(jì)的MP3播放器具有無(wú)線藍(lán)牙控制功能,使用日常使用的智能手機(jī)就能經(jīng)藍(lán)牙控制MP3播放器的狀態(tài)。滿(mǎn)足系統(tǒng)設(shè)計(jì)要求的手機(jī)終端需為安卓或蘋(píng)果智能機(jī)具備能夠通過(guò)應(yīng)用商店下載相關(guān)APP功能且該手機(jī)自帶藍(lán)牙功能,其內(nèi)存不小于1GB容量,CPU主頻應(yīng)在1GHz以上。第3章系統(tǒng)硬件電路設(shè)計(jì)3.1最小系統(tǒng)電路設(shè)計(jì)系統(tǒng)設(shè)計(jì)的最小系統(tǒng)即為單片機(jī)正常工作的基本控制電路,有復(fù)位電路、時(shí)鐘電路和電源電路組成。一個(gè)復(fù)位按鈕K1、一個(gè)電解電容C1和10kΩΩ電阻構(gòu)成了手動(dòng)復(fù)位電路,系統(tǒng)接通電源時(shí),單片機(jī)自動(dòng)上電復(fù)位后進(jìn)入正常運(yùn)行狀態(tài)。當(dāng)系統(tǒng)運(yùn)行出現(xiàn)問(wèn)題時(shí),可以人為按復(fù)位鍵,使Vcc的5V電平直接加到RST端,只需保持兩個(gè)機(jī)器周期的高電平便可迫使單片機(jī)復(fù)位。采用兩個(gè)電容C2,C3和11.0593MHz的晶振構(gòu)成了時(shí)鐘電路,單片機(jī)內(nèi)部有個(gè)振蕩電路,與時(shí)鐘電路相連,產(chǎn)生自激振蕩,便構(gòu)成了一個(gè)完整的振蕩信號(hào)發(fā)生器。起振電容容值為30pf,方便起振。電源插座J1、自鎖開(kāi)關(guān)SW1和470μf電解電容C10構(gòu)成了電源接口電路,其中電容C10起到電源穩(wěn)壓的作用。下圖3-1為最小系統(tǒng)電路圖。圖3-1最小系統(tǒng)電路圖3.2藍(lán)牙無(wú)線控制電路設(shè)計(jì)本次設(shè)計(jì)使用HC-06藍(lán)牙模塊與單片機(jī)通過(guò)串口2進(jìn)行通訊,將藍(lán)牙模塊的TXD,RXD分別與單品機(jī)RXD和TXD相連。藍(lán)牙與手機(jī)無(wú)線連接時(shí)指示燈無(wú)閃爍,通過(guò)手機(jī)上的藍(lán)牙串口助手發(fā)送控制命令給藍(lán)牙模塊,藍(lán)牙模塊透明傳輸數(shù)據(jù)給單片機(jī)處理。藍(lán)牙模塊電路如圖3-2所示。圖3-3藍(lán)牙控制電路3.3OLED顯示屏電路設(shè)計(jì)OLED顯示屏的主要的任務(wù)是將音樂(lè)播放信息顯示出來(lái),采用SPI接口方式,SLK引腳為芯片提供時(shí)鐘信號(hào),SDA引腳輸入命令和數(shù)據(jù),結(jié)合漢字取模軟件可以顯示出任何漢字甚至是圖像,OLED連接到單片機(jī)只需四個(gè)引腳即P2.0~P2.3,占用的I/O口很少,卻可以實(shí)現(xiàn)強(qiáng)大的顯示功能,圖3-4為OLED顯示電路。圖3-4OLED顯示電路3.4BY8001語(yǔ)音模塊電路設(shè)計(jì)BY8001語(yǔ)音模塊僅通過(guò)兩根串口線(TXD,RXD)與單片機(jī)相連,U盤(pán)(或SD卡)直接接至語(yǔ)音模塊,自行解碼,并將音樂(lè)播放信息傳輸給單片機(jī)處理,并且BY8001語(yǔ)音模塊設(shè)有I0~I(xiàn)5五個(gè)觸發(fā)引腳,可以直接接按鈕觸發(fā)控制,但此方案需更多的外圍元件,線路復(fù)雜,且控制功能及效果不理想,故采用串口控制,按鈕接至單片機(jī)。語(yǔ)音模塊的音頻輸出引腳(SPK1,SPK2)連接喇叭兩端以及五腳耳機(jī)插座的左聲道和右聲道引腳。這樣可以在耳機(jī)插入的情況下,喇叭自動(dòng)斷開(kāi),由耳機(jī)播放歌曲。下圖3-6為BY8001語(yǔ)音模塊的設(shè)計(jì)電路圖。圖3-6BY8001語(yǔ)音模塊電路圖3.5印制電路板設(shè)計(jì)3.5.1PCB板應(yīng)用介紹現(xiàn)如今,生活中的每種電子設(shè)備,小到U盤(pán)、電子手表、計(jì)算機(jī),大到計(jì)算機(jī)、通訊設(shè)備、航空航天飛機(jī),電子雷達(dá)系統(tǒng),其無(wú)一不存在電子元器件,它們之間的電氣連接就要使用到印制電路板(Printedcircuitboard,PCB),系統(tǒng)PCB圖如圖3-8所示。在大學(xué)的學(xué)習(xí)期間普遍使用萬(wàn)用板作為元器件的組裝基板,即將所用的元器件焊接到萬(wàn)用板后,再使用細(xì)導(dǎo)線將各個(gè)元器件連接到一起,整個(gè)過(guò)程耗時(shí)耗力,且整板的電路電氣連線脆弱,降低了整板的質(zhì)量和可靠性。而用印制電路板制造的電子產(chǎn)品具有以下優(yōu)點(diǎn):(1)能夠?qū)崿F(xiàn)電路中各個(gè)元器件間的電氣連接,代替復(fù)雜的布線,簡(jiǎn)化了電子產(chǎn)品的裝配、焊接、調(diào)試工作。(2)縮小了整板的體積,并提高了整板的質(zhì)量和可靠性。(3)采用統(tǒng)一的PCB制圖,有利于裝備生產(chǎn)的自動(dòng)化和焊接的機(jī)械化,提高了生產(chǎn)效率。該系統(tǒng)在確認(rèn)方案并設(shè)計(jì)好系統(tǒng)硬件電路圖后,采用印制電路板作為組裝基板以實(shí)現(xiàn)元器件間的電氣連接。該P(yáng)CB板由于所用元器件不多,連接線路較簡(jiǎn)單,且主要線路集中在底層,頂層只通過(guò)過(guò)孔連接了幾條電源線及地線。故采取單層印制電路板制作且只在底層共地敷銅。PCB板實(shí)物圖如圖3-7所示。圖3-7PCB板實(shí)物圖圖3-8系統(tǒng)PCB圖圖3-8為此次設(shè)計(jì)所用的PCB圖,PCB板的尺寸大小為96*68mm2,相比之前使用萬(wàn)用板焊接的電路板尺寸縮小了很多,該印制電路板由頂層、底層、阻焊層、絲印層組成以及禁止布線層組成,各工作層面的功能如表3-2所示,且為單面印制電路板,電路的絕大部分線路放在底層,而頂層只通過(guò)導(dǎo)孔連接了幾條電路線,并只在頂層放置元器件。其中較寬的導(dǎo)線為地線和電源線,可允許較大電流通過(guò)。在PCB板的底層進(jìn)行了共地敷銅,這樣減少了底線阻抗,提高了抗干擾能力,減少了環(huán)路面積。表3-2PCB各工作層功能介紹層面類(lèi)型功能層面顏色頂層放置元件及導(dǎo)線紅色底層放置導(dǎo)線藍(lán)色阻焊層用于除焊盤(pán)處即PCB涂綠油處——絲印層繪制元件輪廓、編號(hào)及文本信息綠色禁止布線層定義放置元件和布線區(qū)域有效區(qū)紫色3.5.2PCB板圖設(shè)計(jì)的一般步驟(1)設(shè)置Protel99se的PCB工作環(huán)境參數(shù)。打開(kāi)軟件,執(zhí)行命令Tools/Preferences,按照要求對(duì)工作環(huán)境的工作層面顏色、顯示/隱藏、默認(rèn)參數(shù)、信號(hào)完整性等進(jìn)行設(shè)置。(2)添加元件庫(kù),Protel99se中自帶的元件庫(kù)封裝并不能滿(mǎn)足設(shè)計(jì)要求,一些元器件的封裝在元件庫(kù)不能找到,如U盤(pán)、BY8001語(yǔ)音模塊、耳機(jī)等,需要自定義元件封裝并添加至元件庫(kù)中。(3)在確認(rèn)先前繪制好的系統(tǒng)電路原理圖電氣連接無(wú)誤情況下,為各個(gè)元器件添加封裝,生成網(wǎng)絡(luò)表。這點(diǎn)很重要,否則后續(xù)工作將無(wú)意義。(4)規(guī)劃電路板,在禁止布線層繪制電路板的物理外形尺寸和電氣邊界,這里采用手動(dòng)繪制電路板,執(zhí)行菜單命令Place/Line放置連線,繪制出一個(gè)尺寸96*68mm2的閉合邊框。(5)載入網(wǎng)絡(luò)表,網(wǎng)絡(luò)表和元件封裝是同時(shí)載入的,為了保證網(wǎng)絡(luò)表和元件封裝成功,在設(shè)計(jì)原理圖是務(wù)必要給每一個(gè)元件制定封裝形式,并且該封裝形式能夠在當(dāng)前PCB已經(jīng)載入的封裝庫(kù)中找到。執(zhí)行Desigen/LoadNets命令即可導(dǎo)入網(wǎng)絡(luò)表。(6)PCB手動(dòng)布線,執(zhí)行Design/Rules,進(jìn)行安全間隔的設(shè)置、分層布線的設(shè)置、高頻和低頻信號(hào)線的設(shè)置、過(guò)孔的設(shè)置、不同線之間的寬度設(shè)置、地線的設(shè)置、敷銅設(shè)置等。此次的系統(tǒng)設(shè)計(jì)采用手動(dòng)布線使元件布局整齊美觀,便于連線。(7)絲印層文本信息放置合適位置,底線大面積敷銅。(8)進(jìn)一步檢查PCB板圖的元件布局和電氣連線,PCB板一旦制作完成修改起來(lái)較為麻煩。3.5.3PCB板圖設(shè)計(jì)應(yīng)注意的問(wèn)題在本次PCB設(shè)計(jì)過(guò)程中,考慮到系統(tǒng)的尺寸和可靠性的要求,在設(shè)計(jì)中會(huì)遇到需要以下解決應(yīng)注意的問(wèn)題:(1)在原理圖設(shè)計(jì)時(shí),元件的布局不夠合理。在設(shè)計(jì)中由于元件位置放置不當(dāng)可能導(dǎo)致走線復(fù)雜,可能出現(xiàn)交叉等情況,并且在繪制元器件時(shí)應(yīng)注意其引腳的順序位置,引腳連接錯(cuò)誤可能導(dǎo)致整板無(wú)法使用。(2)Protel99se軟件與win7有部分不兼容,元件庫(kù)無(wú)法正常加載至當(dāng)PCB封裝庫(kù)中,這里使用PCB編輯器下方的Find按鈕,可將指定目錄下的元件庫(kù)添加到當(dāng)前元件庫(kù)。(3)線路集中在PCB板底層,將PCB的底層進(jìn)行大面積敷銅,有利于地線阻抗的降低,使電源和信號(hào)傳輸都能穩(wěn)定,提高了整板的抗干擾能力和可靠性3.5.4系統(tǒng)PCB板圖制作信息該系統(tǒng)設(shè)計(jì)中繪制PCB圖所使用的PCB設(shè)計(jì)軟件為Protel99se,PCB板生產(chǎn)廠家是溫州精億電子廠PCB板尺寸為96*68mm2,PCB型號(hào)為單層印制電路板且該P(yáng)CB板底層大面積共地敷銅。第4章系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)軟件概述與思路系統(tǒng)軟件設(shè)計(jì)是本次系統(tǒng)設(shè)計(jì)的重要組成部分,基于硬件電路條件,整個(gè)程序細(xì)分為若干個(gè)功能模塊來(lái)完成,主要有顯示程序模塊、按鍵程序模塊、通訊查詢(xún)程序模塊以及藍(lán)牙通訊程序模塊。STC12C5A60S2單片機(jī)正好有兩個(gè)串口,分別對(duì)應(yīng)連接藍(lán)牙模塊和BY8001語(yǔ)音芯片,單片機(jī)程序中的主函數(shù)完成對(duì)OLED顯示屏初始化和串口初始化,之后依次調(diào)用顯示函數(shù)、按鍵查詢(xún)函數(shù)、播放狀態(tài)函數(shù)。程序中開(kāi)了串口中斷和定時(shí)器0中斷,在串口1中斷子程序中接收播放狀態(tài)信息,串口2中斷子程序中處理藍(lán)牙模塊發(fā)送過(guò)來(lái)的數(shù)據(jù)。由于按鍵1(按鍵2)復(fù)用上一首和音量+(下一首,音量-)功能,因此定時(shí)器0中斷程序記錄按鍵按下的時(shí)間來(lái)檢測(cè)按鍵是長(zhǎng)按還是短按。程序要完成以下功能:控制播放、暫停、停止,音量加減,快進(jìn)快退,音效及循環(huán)模式,顯示歌曲序號(hào),總量,當(dāng)前歌曲時(shí)間,音效,循環(huán)模式,音量。主程序流程圖如圖4-1所示4.2OLED顯示程序設(shè)計(jì)OLED顯示屏采用SPI接口方式與單片機(jī)進(jìn)行通訊以交換信息,在單片機(jī)的SCK時(shí)鐘移位上升沿脈沖下,數(shù)據(jù)按高位在前低位在后傳輸,此次所用的OLED顯示屏的SPI接口引腳去掉了MISO引腳,只作為從機(jī)模式。該OLED顯示程序包含圖片數(shù)據(jù)文件(Bmp.h),字符文件(Oledfont.h)和操作文件(Oled.c),其OLED顯示程序流程圖如圖4-2所示顯示程序開(kāi)始顯示程序開(kāi)始OLED初始化調(diào)用字符坐標(biāo)函數(shù)取字符文件中對(duì)應(yīng)數(shù)據(jù)顯示字符(漢字)數(shù)據(jù)返回主程序圖4-2OLED顯示程序流程圖開(kāi)始開(kāi)始系統(tǒng)初始化是否插入U(xiǎn)盤(pán)通訊查詢(xún)查詢(xún)是否成功?讀取播放狀態(tài)信息更新數(shù)據(jù)顯示判斷按鍵是否按下?發(fā)送相應(yīng)控制指令給語(yǔ)音模塊語(yǔ)音模塊保持播放當(dāng)前狀態(tài)是否插入TF卡YNYNYNYN圖4-1系統(tǒng)主程序流程圖由于該播放器要求OLED顯示屏顯示字符以及漢字信息,甚至是圖像,而OLED顯示屏內(nèi)部并不自帶字符,這需在程序中建立個(gè)字庫(kù)文件,從其中調(diào)取對(duì)應(yīng)的字符顯示到屏幕上,這里結(jié)合PCtoLCD2002.exe取模軟件,該軟件可以將字符、漢字以及圖像轉(zhuǎn)換成點(diǎn)陣數(shù)組,將轉(zhuǎn)換后的數(shù)組復(fù)制到程序中的字符文件中,便可以使OLED顯示想要的字符了。在此感謝此軟件的原作者,設(shè)計(jì)出功能強(qiáng)大,方便快捷的液晶取模軟件。PCtoLCD2002.exe取模軟件界面如圖4-3所示。圖4-3PCtoLCD2002.exe取模軟件4.3串口通訊程序設(shè)計(jì)系統(tǒng)中的藍(lán)牙模塊和BY8001語(yǔ)音模塊都要與單片機(jī)建立串口通訊,語(yǔ)音模塊通過(guò)串口發(fā)送音樂(lè)播放信息數(shù)據(jù)給單片機(jī)處理,同時(shí)接受單片機(jī)發(fā)送的命令字,然后執(zhí)行相應(yīng)的操作。必不可少地使用到了程序中的串口中斷。藍(lán)牙模塊的接收、按鍵按下和程序中的通訊查詢(xún)不定時(shí)地觸發(fā)中斷,進(jìn)入串口中斷服務(wù)子程序。其中通過(guò)藍(lán)牙接受的數(shù)據(jù)放入變量n中,然后根據(jù)變量n中的數(shù)據(jù)執(zhí)行相應(yīng)動(dòng)作。串口通訊流程圖如圖4-5所示。在系統(tǒng)程序中使用到了兩個(gè)串口中斷服務(wù)子程序,串口1用于單片機(jī)與BY8001之間的數(shù)據(jù)通訊,TXD用于單片機(jī)發(fā)送控制指令至語(yǔ)音模塊,使之執(zhí)行相應(yīng)的動(dòng)作。而藍(lán)牙模塊也需要使用串口通訊,在調(diào)試過(guò)程中,如果將藍(lán)牙模塊與BY8001語(yǔ)音模塊接至同一串口即串口1,導(dǎo)致串口的RXD輸入端只受藍(lán)牙模塊的控制,而單片機(jī)無(wú)法接受音樂(lè)播放信息,故使用STC12C5A60S2單片機(jī)額外的串口2進(jìn)行獨(dú)立通訊傳輸。串口2與串口1有所不同的地方是,串口2在編程軟件中未定義頭文件,需要自定義相關(guān)地址,并且系統(tǒng)設(shè)計(jì)所要使用到的相關(guān)寄存器沒(méi)有位尋址功能,這也需要邏輯運(yùn)算設(shè)置對(duì)應(yīng)位的狀態(tài)。串口2相關(guān)寄存器宏定義如圖4-4所示。圖4-4串口2寄存器定義串口中斷服務(wù)子程序串口1是否接收中斷?清除中斷標(biāo)志串口中斷服務(wù)子程序串口1是否接收中斷?清除中斷標(biāo)志接收緩沖器SBUF中的數(shù)據(jù)是否正確接收數(shù)據(jù)?將四個(gè)ASCII字符轉(zhuǎn)換成數(shù)值返回到斷點(diǎn)處串口2接收標(biāo)志位S2CON.bit1=1?接收中斷標(biāo)志位RI清零將接受的數(shù)據(jù)放入變量nNYYYNN4.4按鍵掃描程序設(shè)計(jì)程序中的按鍵掃描模塊需同時(shí)處理判斷藍(lán)牙模塊和按鍵發(fā)送過(guò)來(lái)的數(shù)據(jù),通過(guò)接收的命令字作出相應(yīng)的動(dòng)作。另外有幾個(gè)按鍵具有復(fù)用功能,如上一首和音量+共用一個(gè)按鍵,短按為切換上一首,長(zhǎng)按則切換成音量+。因此按鍵掃描程序還需要正確判斷長(zhǎng)按和短按,然后分別執(zhí)行不同的操作,程序中采用開(kāi)啟定時(shí)器T0的方式來(lái)判斷按鍵按下的時(shí)間長(zhǎng)短。約5ms中斷一次,有中斷次數(shù)小于40次為短按,否則為長(zhǎng)按。按鍵掃描流程如圖4-6所示。按鍵子程序開(kāi)始按鍵子程序開(kāi)始是否有按鍵按下?延時(shí)去抖是否有按鍵按下?按鍵“長(zhǎng)按”控制處理返回主程序是否接收到藍(lán)牙數(shù)據(jù)?按鍵“短按”控制處理NNNNYYYY按鍵時(shí)長(zhǎng)是否大于200ms?圖4-6按鍵掃描程序流程圖4.5上位機(jī)程序設(shè)計(jì)在此次畢業(yè)設(shè)計(jì)課題中,使用上位機(jī)即手機(jī)APP(藍(lán)牙串口助手)無(wú)線控制MP3音樂(lè)播放器,該軟件為藍(lán)牙客戶(hù)端通信工具,所占內(nèi)存僅為72KB大小,可用于硬件的串口藍(lán)牙模塊(TTL電平)通信,通過(guò)設(shè)置相應(yīng)的控制按鍵,并在按鍵中編入控制代碼,能夠準(zhǔn)確地?zé)o線控制MP3播放器的狀態(tài)。在使用藍(lán)牙控制MP3播放器之前,需先設(shè)置藍(lán)牙模塊的有關(guān)參數(shù),本系統(tǒng)設(shè)計(jì)中采用9600b/s波特率,無(wú)校驗(yàn)位數(shù)據(jù)格式。然后開(kāi)啟手機(jī)藍(lán)牙與HC-06藍(lán)牙模塊進(jìn)行配對(duì),用串口助手掃描藍(lán)牙設(shè)備,會(huì)找到名稱(chēng)為HC-06的設(shè)備,連接即可(當(dāng)連接成功時(shí),指示燈從閃爍狀態(tài)變?yōu)闊o(wú)閃爍)下一步就是啟用鍵盤(pán)模式,在按鍵中寫(xiě)入控制字,按下按鍵即可發(fā)送數(shù)據(jù)對(duì)播放器進(jìn)行控制。上位機(jī)各按鍵代碼見(jiàn)表4-1所示。圖4-7、圖4-8分別是上位機(jī)APP搜索藍(lán)牙設(shè)備顯示界面以及手機(jī)藍(lán)牙控制界面。表4-1按鍵代碼序號(hào)按鍵名稱(chēng)代碼1音效0xBF2上一首0xFE3播放/暫停0xEF4下一首0xFD5音量減0xFA6模式0x7F7音量加0Xf9、、、4-7搜索藍(lán)牙設(shè)備顯示界面圖4-8手機(jī)藍(lán)牙控制界面第5章系統(tǒng)調(diào)試與結(jié)果分析5.1調(diào)試過(guò)程分析從硬件模塊選擇,硬件搭建再到程序編寫(xiě),最后進(jìn)行系統(tǒng)的調(diào)試分析,最終達(dá)到此次設(shè)計(jì)預(yù)期的效果,本次MP3播放器的畢業(yè)設(shè)計(jì)課題由二人一組,整體任務(wù)有兩人合作完成,本人負(fù)責(zé)硬件電路設(shè)計(jì),另一搭檔負(fù)責(zé)軟件編寫(xiě)。整個(gè)系統(tǒng)設(shè)計(jì)是個(gè)不斷學(xué)習(xí),反復(fù)嘗試的過(guò)程,設(shè)計(jì)期間難免會(huì)遇到非常棘手的問(wèn)題,故對(duì)于系統(tǒng)的調(diào)試任務(wù),就顯得尤為重要。本章主要講解對(duì)軟硬件的調(diào)試工作。在硬件搭建的過(guò)程中,考慮到后期的程序文件占用控制器的存儲(chǔ)器空間比較大以及可能要執(zhí)行多串口通訊,首先在單片機(jī)的選擇上,我們使用了STC12C5A60S2單片機(jī),此單片機(jī)內(nèi)部具有64KFLASH程序存儲(chǔ)器足以容納下燒錄的程序(程序大小達(dá)到9K),另外外部具有2個(gè)串口,可以方便與解碼器和藍(lán)牙模塊獨(dú)立相連。在硬件焊接完成和程序下載后,發(fā)現(xiàn)喇叭可以播放音樂(lè),但顯示屏卻無(wú)任何反應(yīng),或許問(wèn)題太細(xì)微且關(guān)鍵,調(diào)試了幾天并沒(méi)有發(fā)現(xiàn)程序上的功能錯(cuò)誤,最終在電路板上找到了關(guān)鍵所在,原來(lái)在OLED與單片機(jī)連接的線路中出現(xiàn)了虛焊,之后問(wèn)題得到解決。在滿(mǎn)足畢業(yè)設(shè)計(jì)的要求下,額外增加了藍(lán)牙無(wú)線功能,寫(xiě)好藍(lán)牙驅(qū)動(dòng)后,調(diào)試過(guò)程中,發(fā)現(xiàn)用手機(jī)發(fā)送的一字節(jié)數(shù)據(jù)與檢驗(yàn)接受的數(shù)據(jù)不一致。比如發(fā)送0x0F返回0x8F當(dāng)后四位大于7時(shí),數(shù)據(jù)就正確比如發(fā)送0x8F返回0x8F,根據(jù)這個(gè)原理,在程序中加于校正得到正確的數(shù)據(jù)。在軟件調(diào)試過(guò)程中,需要處理的變量很多,如何分配好各個(gè)變量之間的關(guān)系是整個(gè)軟件編程的難點(diǎn),其中串口中斷服務(wù)程序中的數(shù)據(jù)處理令人頭疼,從解碼器接受的數(shù)據(jù)送至OLED亂碼,經(jīng)過(guò)反復(fù)調(diào)試后,發(fā)現(xiàn)接受的數(shù)據(jù)信息為ASCII字符,需要經(jīng)過(guò)字符轉(zhuǎn)換才能顯示。另一個(gè)問(wèn)題是如何解決串口占用問(wèn)題,藍(lán)牙模塊發(fā)送的數(shù)值與解碼器發(fā)送的數(shù)值不一樣,最后分析,可使用IF語(yǔ)句來(lái)選擇性的將SUBF緩沖器送給相應(yīng)的變量。5.2所遇問(wèn)題解決方法(1)問(wèn)題情況:喇叭可以播放音樂(lè),但OLED顯示屏未有任何反應(yīng)。解決方法:重新檢查電路板線路,發(fā)現(xiàn)單片機(jī)與OLED連線出現(xiàn)虛焊,使用電烙鐵在虛焊處重新焊接后問(wèn)題解決(2)問(wèn)題情況:OLED顯示屏顯示的播放時(shí)間進(jìn)度斷斷續(xù)續(xù),不能有效的顯示播放進(jìn)度解決方法:程序中頻繁的使用中斷,導(dǎo)致執(zhí)行程序中的顯示函數(shù)的時(shí)間間隔不確定性大,換用STC12C5A60S2高速單片機(jī),未出現(xiàn)卡頓現(xiàn)象,流暢地實(shí)時(shí)顯示音樂(lè)播放信息。(3)問(wèn)題情況;在確認(rèn)線路正確且單片機(jī)通訊正常情況下,不能正確與語(yǔ)音模塊進(jìn)行通訊,但使用電腦在線調(diào)試語(yǔ)音模塊也可以正常通訊。解決方法:在使用電腦串口調(diào)試助手與語(yǔ)音模塊通訊過(guò)程中,發(fā)現(xiàn)只能使用9600b/s波特率才能正確通訊,程序中的波特率發(fā)生器也設(shè)置為9600,最后問(wèn)題出現(xiàn)在晶振上,只有選用11.0592MHz的晶振才能產(chǎn)生9600b/s的波特率,先前使用的是12M晶振導(dǎo)致誤差較大,傳輸數(shù)據(jù)出錯(cuò)。(4)問(wèn)題情況:對(duì)STC12C5A60S2單片機(jī)的串口2的程序編寫(xiě)過(guò)程中,出現(xiàn)編譯錯(cuò)誤,提示串口2的相關(guān)特殊寄存器未定義,無(wú)法通過(guò)編譯生成HEX文件。在KeiluVision4軟件下方提示欄出現(xiàn)圖5-1所示錯(cuò)誤。圖5-1未成功編譯結(jié)果解決辦法:"REG51.h"頭文件中未宏定義串口2的相關(guān)地址,在頭文件額外定義了串口2的地址,最終編譯未出錯(cuò)。圖5-2成功編譯結(jié)果(5)問(wèn)題情況:在確定程序中的波特率設(shè)置無(wú)誤情況下,對(duì)語(yǔ)音模塊的部分控制指令通訊失敗,未能正確控制播放器的狀態(tài)。解決方法:在設(shè)置波特率為9600b/s的狀態(tài)下,需要計(jì)算校驗(yàn)碼值通過(guò)長(zhǎng)度值與參數(shù)值的異或運(yùn)算得出。如果校驗(yàn)碼正確會(huì)返回“OK”參數(shù)否則無(wú)返回。系統(tǒng)實(shí)物圖和演示效果詳見(jiàn)附錄,此次設(shè)計(jì)采用PCB板制作MP3播放器,使其更加小巧便攜,既可通過(guò)按鍵控制播放器也可使用手機(jī)藍(lán)牙無(wú)線控制播放器,并且效果顯著,本系統(tǒng)設(shè)計(jì)要求已基本實(shí)現(xiàn)。結(jié)論本系統(tǒng)設(shè)計(jì)通過(guò)深刻的理論思路分析,合理地選擇了較為可行的方案。該方案是基于單片機(jī)的MP3播放器設(shè)計(jì),采用OLED顯示屏實(shí)時(shí)顯示音樂(lè)播放信息,例如播放歌曲名、音量、播放進(jìn)度、模式及曲目量,并且實(shí)現(xiàn)MP3格式音樂(lè)的流暢播放及對(duì)音頻文件的存儲(chǔ)功能。解碼模塊不斷地從存儲(chǔ)設(shè)備中提取音頻文件并自動(dòng)解碼然后送至功放或者耳機(jī)播放音樂(lè),單片機(jī)主要提取音樂(lè)文件的音樂(lè)播放信息,通過(guò)OLED顯示屏給予顯示,以及實(shí)時(shí)發(fā)送命令控制音頻解碼模塊。另外該設(shè)計(jì)選用BY8001解碼器將存儲(chǔ)介質(zhì)中的MP3格式的音頻文件解壓送至喇叭播放音樂(lè)。省去了單片機(jī)從FAT16文件的扇區(qū)提取數(shù)據(jù)間接地送給解碼器解碼等操作,加快了解碼的運(yùn)行速度,并且采用了OLED顯示屏顯示播放信息,是現(xiàn)今數(shù)碼顯示設(shè)備的首選,相比LCD顯示屏具有更好的顯示效果更貼切于實(shí)際。本論文的又一特色是使用了藍(lán)牙模塊控制播放器,在其他的MP3播放器中是較為新穎的,況且藍(lán)牙播放器在現(xiàn)今發(fā)展?jié)摿艽?,是未?lái)幾年音樂(lè)播放器領(lǐng)域的強(qiáng)有力的發(fā)展方向。設(shè)計(jì)中主要難點(diǎn)在與程序編程方面,尤其在接發(fā)串口的數(shù)據(jù)處理,在編寫(xiě)之前做了大量的學(xué)習(xí)準(zhǔn)備工作,須熟悉單片機(jī)與外圍串口設(shè)備通訊的機(jī)制以及進(jìn)行大量的反復(fù)編程調(diào)試。從課題選擇到完成畢業(yè)論文的完成,少不了大學(xué)四年所學(xué)的專(zhuān)業(yè)知識(shí),并且經(jīng)過(guò)一步步的研究、查閱、討論、調(diào)試才能夠完成整個(gè)環(huán)節(jié)的任務(wù)。這不僅提升了自身的學(xué)習(xí)和資料收集能力,更讓自己感受項(xiàng)目的完成,必須要有腳踏實(shí)地,堅(jiān)持不渝的品質(zhì)。致謝我一直認(rèn)為自己是個(gè)有好運(yùn)的人,在人生的每個(gè)階段都能有貴人相助,今天能夠順利完成本次畢業(yè)設(shè)計(jì)與曾經(jīng)幫助過(guò)我的人是分不開(kāi)的,至此表示感謝。首先要感謝的是指導(dǎo)我畢業(yè)設(shè)計(jì)的指導(dǎo)老師劉樹(shù)博老師,劉樹(shù)博老師學(xué)識(shí)淵博,待人親切,為人謙遜。在此次的系統(tǒng)設(shè)計(jì)期間,密切地關(guān)注了學(xué)生的畢業(yè)設(shè)計(jì)進(jìn)度,不忘提出有針對(duì)性的建議。每次在耗材選擇和理論分析上遇到問(wèn)題惑而不解時(shí)詢(xún)問(wèn)劉樹(shù)博老師,他總能及時(shí)地和學(xué)生討論,給出確實(shí)有效的建議。劉樹(shù)博老師在工作上認(rèn)真穩(wěn)重,精益求精,表現(xiàn)出特有的學(xué)者風(fēng)范,讓我由衷欽佩,這將對(duì)我日后的工作中起到很大及促進(jìn)作用。還用感謝我的搭檔黃志同學(xué),在系統(tǒng)設(shè)計(jì)上給予我很大的啟發(fā),一起完成了這的畢業(yè)設(shè)計(jì),并且他那鼓舞人心的熱情鼓舞著我,致使我遇到問(wèn)題時(shí)以一種平和的心態(tài)面對(duì),而不會(huì)焦灼不安。感謝大學(xué)期間的單片機(jī)老師朱兆優(yōu)先生,他讓我打下了夯實(shí)的單片機(jī)知識(shí)基礎(chǔ),才讓我在這次的畢業(yè)設(shè)計(jì)中不會(huì)顯得那么束手無(wú)策。感謝身邊的老師,同學(xué)對(duì)我的支持和幫助,感謝東華理工大學(xué)對(duì)我的培養(yǎng),提供給我們美好的學(xué)習(xí)環(huán)境,讓我深知作為的一名學(xué)生的義務(wù),責(zé)任及使命,體會(huì)人生的價(jià)值和意義。最后我要感謝我的父母,謝謝他們的養(yǎng)育之恩以及一直以來(lái)給我的支持,提供給我上大學(xué)的機(jī)會(huì),使我有幸能接觸到更大更廣的視野。參考文獻(xiàn)[1]范紅剛,魏學(xué)海,任思璟.51單片機(jī)自學(xué)筆記.北京航空航天大學(xué)出版社,2010.1[2]譚浩強(qiáng).C程序設(shè)計(jì)第四版[M].北京清華大學(xué)出版社,2010.[3]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)輔導(dǎo)[M].北京.北京清華大學(xué)出版社,2007.[4]朱兆優(yōu),陳堅(jiān),鄧文娟.單片機(jī)原理與應(yīng)用.北京:電子工業(yè)出版社,2012.7[5]鐘國(guó)文,賈衛(wèi)華.電路CAD設(shè)計(jì).北京:北京理工大學(xué)出版社,2009.8[6]童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ).2006北京:清華大學(xué)[7]谷樹(shù)忠,姜航.AltiumDesigner教程-原理圖、PCB設(shè)計(jì)與仿真.北京電子工業(yè)出版社[8]于振南.嵌入式FAT32文件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2014.[9]郭天祥.新概念51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2009.[10]中景園電子.0.96寸OLED顯示屏使用手冊(cè).淘寶[11]何諧,唐大權(quán),張淑廷,陳雪.一種基于51單片機(jī)的音樂(lè)播放器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,第37卷(16期)[12]中國(guó)產(chǎn)業(yè)調(diào)研網(wǎng).中國(guó)MP3播放器行業(yè)現(xiàn)狀分析與發(fā)展前景研究報(bào)告[R].2015[13]李軍.便攜式MP3播放器的方案分析及其技術(shù)研究[J].電聲技術(shù),2004(7):27?29.[14]STC12C5A60S2Handbook[EB/OL].[15]Atmel.AT83C51SND1CUsers'Guide[Z].2005.[16]TC35iATCommandSetV03.01.http:.附錄一電路原理圖圖1MP3播放器原理圖附錄二實(shí)物圖圖2實(shí)物圖附錄三元件清單元器件名稱(chēng)元器件規(guī)格數(shù)量(個(gè))電解電容10μF1電解電容470μF1瓷片電容30pF2瓷片電容1041按鍵6×6×5mm39自鎖開(kāi)關(guān)8.5×8.51電源接口Header2H1喇叭3W1OLED顯示屏0.96寸1解碼模塊BY8001-16P1單片機(jī)STC12C5A60S21藍(lán)牙模塊HC-061晶振11.0592MHz1電阻1KΩ,1OKΩ,3KΩ,30Ω1,1,1,2USB母口A型1附錄四程序代碼Main.c#include"REG51.h"#include"oled.h"#include"bmp.h"#defineS2RI0x01sfrAUXR=0x8E;sfrIE2=0xAF;sfrBRT=0x9C;sfrS2CON=0x9A;sfrS2BUF=0x9B;#defineucharunsignedchar#defineuintunsignedintuinttimes,timer;uchardat[20],bz,bits,time,ACIS,shu[4],bits,vox=15;ucharsec,min,min1,sec1,mode,audio,vol=15,state,EQ,ms;uintsum,sum_song;bitSD,Again,wc;uinta;ucharn;ucharonce;voiddelay(uintT){ while(T--);}voidwrite_send(uchardat) //發(fā)送一個(gè)字節(jié)數(shù)據(jù)給BY8001{ SBUF=dat; while(!TI); TI=0;}voidsend_6(uchara1,a2,a3,a4,a5,a6) //發(fā)送六個(gè)字節(jié)數(shù)據(jù)給BY8001{ uchara7; write_send(a1); write_send(a2); write_send(a3); write_send(a4); a7=a2^a3^a4; // 異或 write_send(a7); write_send(a6);}voidsend_5(uchara1,a2,a3,a4,a5) //發(fā)送五個(gè)字節(jié)數(shù)據(jù)給BY8001{ uchara6; write_send(a1); write_send(a2); write_send(a3); a6=a2^a3; //異或 write_send(a6); write_send(a5);}voidshow(){ a=7*sum_song-3;OLED_ShowChar(16,2,0x30+min/10%10); OLED_ShowChar(24,2,0x30+min%10); OLED_ShowString(32,2,":"); OLED_ShowChar(40,2,0x30+sec/10%10); OLED_ShowChar(48,2,0x30+sec%10); OLED_ShowString(56,2,"-"); OLED_ShowChar(64,2,0x30+min1/10%10); OLED_ShowChar(72,2,0x30+min1%10); OLED_ShowString(80,2,":"); OLED_ShowChar(88,2,0x30+sec1/10%10); OLED_ShowChar(96,2,0x30+sec1%10); OLED_ShowCHinese(96,0,0); OLED_ShowChar(112,0,0x30+vox/10%10); OLED_ShowChar(120,0,0x30+vox%10); OLED_ShowChar(0,4,0x30+sum_song/100%10); OLED_ShowChar(8,4,0x30+sum_song/10%10); OLED_ShowChar(16,4,0x30+sum_song%10); OLED_ShowString(24,4,"/"); OLED_ShowChar(32,4,0x30+sum/100%10); OLED_ShowChar(40,4,0x30+sum/10%10); OLED_ShowChar(48,4,0x30+sum%10); OLED_ShowCHinese(0,6,a); OLED_ShowCHinese(16,6,a+1); OLED_ShowCHinese(32,6,a+2); OLED_ShowCHinese(48,6,a+3); OLED_ShowCHinese(64,6,a+4); OLED_ShowCHinese(80,6,a+5); OLED_ShowCHinese(96,6,a+6); switch(EQ) //音效顯示 { case0:OLED_ShowString(80,4,"N"); break; case1: OLED_ShowString(80,4,"P"); break; case2:OLED_ShowString(80,4,"R"); break;case3: OLED_ShowString(80,4,"J"); break;case4: OLED_ShowString(80,4,"C"); break;case5: OLED_ShowString(80,4,"B"); break;} switch(state) //播放狀態(tài)顯示 { case0:OLED_ShowCHinese(96,4,1); break;case1:OLED_ShowCHinese(96,4,3); break;case2:OLED_ShowCHinese(96,4,2); break;}switch(mode) //播放模式顯示{ case0:OLED_ShowString(112,4,"A"); break;case1: OLED_ShowString(112,4,"F"); break;case2: OLED_ShowString(112,4,"O"); break;case3: OLED_ShowString(112,4,"R"); break;case4:OLED_ShowString(112,4,"N"); break;}if(SD==0) //U盤(pán)/SD卡顯示{OLED_ShowString(112,6,"U");}else{OLED_ShowString(112,6,"S"); }}voidread_dat(){ if(state!=1&&ACIS>7)ACIS=0; switch(ACIS) { case0: send_5(0x7E,0x03,0x13,0x01,0xEF);// 播放模式 break; case1: send_5(0x7E,0x03,0x12,0x01,0xEF);// 查看當(dāng)前EQ音效 break; case7: send_5(0x7E,0x03,0x10,0x01,0xEF);// 播放狀態(tài) break; case2: send_5(0x7E,0x03,0x1C,0x01,0xEF);// 歌曲播放時(shí)間 break; case3: send_5(0x7E,0x03,0x1D,0x1e,0xEF);// 歌曲總時(shí)間 break; case4: send_5(0x7E,0x03,0x18,0x01,0xEF);// 查看當(dāng)前設(shè)備US break; case5: if(SD==1) { send_5(0x7E,0x03,0x15,0x01,0xEF); //SD卡總曲目 }else { send_5(0x7E,0x03,0x16,0x01,0xEF); //U盤(pán)總曲目 } break; case6: if(SD==1) { send_5(0x7E,0x03,0x19,0x01,0xEF); //SD播放當(dāng)前曲目數(shù) }else { send_5(0x7E,0x03,0x1A,0x01,0xEF); //U盤(pán)當(dāng)前曲目 } break; } }voidkey(){ ucharfs=255; P0=0xff; if((P0!=0xff)||(n!=0)) { delay(1000); //消除按鍵抖動(dòng) P0=0xff;if(P0!=0xff||(n!=0)) { if(P0==0xff) {fs=n;} else{fs=P0;} time=0; P0=0xff; while(P0!=0xff) { if(time>39&&Again==0) { Again=1; // time=40; switch(fs) { case0xfe: //音量+ if(vol<30)vol=15; if(vox<30)vox++; send_6(0x7E,0x04,0x31,vox,0x22,0xEF); break; case0xfd: if(vol>0)vol=15; if(vox>0)vox--; //音量— send_6(0x7E,0x04,0x31,vox,0x22,0xEF); break; case0xfb: times+=28; if(times>timer)times=timer; //快進(jìn) min=times/600; sec=times/10%60; send_5(0x7E,0x03,0x0A,0x09,0xEF); break; case0xf7: if(times>27)times-=28; //快退 elsetimes=0; min=times/600; sec=times/10%60; send_5(0x7E,0x03,0x0B,0x08,0xEF); break; } } show(); // read_dat(); } switch(fs) { case0xfe: if(time<40) { send_5(0x7E,0x03,0x04,0x07,0xEF); //上一首 state=1; once=1; ACIS=6; } break; case0xfd: if(time<40) { send_5(0x7E,0x03,0x03,0x00,0xEF); //下一首 state=1; once=1; ACIS=6; } break; case0xfb: if(time<40) //短按快進(jìn) { times+=27; if(times>timer)times=timer; min=times/600; sec=times/10%60; send_5(0x7E,0x03,0x0A,0x09,0xEF); } break; case0xf7: if(time<40) //短按快退 { if(times>26)times-=27; elsetimes=0; min=times/600; sec=times/10%60; send_5(0x7E,0x03,0x0B,0x08,0xEF); } break; case0xef: if(state==2|state==0) { state=1; send_5(0x7E,0x03,0x01,0x02,0xEF); //播放歌曲 }else { state=2; send_5(0x7E,0x03,0x02,0x01,0xEF); //暫停歌曲 } break; case0xdf: state=0; send_5(0x7E,0x03,0x0E,0x0D,0xEF); //停止歌曲 break; case0xbf: EQ=(EQ+1)%6; send_6(0x7E,0x04,0x32,EQ,0x36,0xEF); //設(shè)置音效 break; case0x7f: mode=(mode+1)%5; //設(shè)置循環(huán)模式 send_6(0x7E,0x04,0x33,mode,0x35,0xEF); break; } } n=0; } }voidmain(){ TMOD=0x21; //定時(shí)器T1工作方式2,定時(shí)器T0工作方式1 TH1=0xfd; //波特率9600 TL1=0xfd; TH0=0x3c; TL0=0xb0; SCON=0x50; //只發(fā)送串口工作方式1 EA=1; //開(kāi)中斷 ES=1; //開(kāi)串口中斷 ET0=1; //開(kāi)T0中斷 TR1=1; //開(kāi)定時(shí)器1 S2CON=0x50; BRT=0XFD; AUXR=0x10; IE2=0x01; LCD1602_cls(); //LCD1206初始化 OLED_Init(); //初始化OLEDOLED_Clear(); LCD1602_Save(ss); //自定義字符 TR0=1; //開(kāi)定時(shí)器0 send_6(0x7E,0x04,0x31,15,0x22,0xEF); //設(shè)置音量初值15 while(1) { times=min*600+sec*10; //歌曲當(dāng)前時(shí)間值 timer=min1*600+sec1*10; //歌曲總時(shí)間 show(); //顯示

溫馨提示

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

評(píng)論

0/150

提交評(píng)論