![有附錄-基于單片機(jī)控制的MP3音樂播放器的設(shè)計(jì)畢業(yè)論文(冉玉梅)_第1頁(yè)](http://file4.renrendoc.com/view/045b7f5e9719bbf15efe8da7d241bec0/045b7f5e9719bbf15efe8da7d241bec01.gif)
![有附錄-基于單片機(jī)控制的MP3音樂播放器的設(shè)計(jì)畢業(yè)論文(冉玉梅)_第2頁(yè)](http://file4.renrendoc.com/view/045b7f5e9719bbf15efe8da7d241bec0/045b7f5e9719bbf15efe8da7d241bec02.gif)
![有附錄-基于單片機(jī)控制的MP3音樂播放器的設(shè)計(jì)畢業(yè)論文(冉玉梅)_第3頁(yè)](http://file4.renrendoc.com/view/045b7f5e9719bbf15efe8da7d241bec0/045b7f5e9719bbf15efe8da7d241bec03.gif)
![有附錄-基于單片機(jī)控制的MP3音樂播放器的設(shè)計(jì)畢業(yè)論文(冉玉梅)_第4頁(yè)](http://file4.renrendoc.com/view/045b7f5e9719bbf15efe8da7d241bec0/045b7f5e9719bbf15efe8da7d241bec04.gif)
![有附錄-基于單片機(jī)控制的MP3音樂播放器的設(shè)計(jì)畢業(yè)論文(冉玉梅)_第5頁(yè)](http://file4.renrendoc.com/view/045b7f5e9719bbf15efe8da7d241bec0/045b7f5e9719bbf15efe8da7d241bec05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄引..........................................................................................................................................硬件設(shè)..................................................................................................................................22.1硬件電路的設(shè)計(jì)框....................................................................................................2.2硬件電路設(shè)計(jì)模塊的選............................................................................................2中心模.....................................................................................................................播放模.....................................................................................................................顯示模.....................................................................................................................電子琴模.................................................................................................................2.3各硬件電路的具體設(shè)................................................................................................5AT89S52控制模塊的設(shè).........................................................................................5按鍵模塊的設(shè).........................................................................................................6揚(yáng)聲器播放模塊的設(shè).............................................................................................7LCD示電路的設(shè)................................................................................................7彩燈伴奏電路的設(shè).................................................................................................3件設(shè)..................................................................................................................................93.1單片機(jī)發(fā)聲的基本原................................................................................................93.2設(shè)計(jì)的相關(guān)音樂說明................................................................................................3.3切換原......................................................................................................................103.4音樂播放器軟件程序設(shè)..........................................................................................按鍵掃描子程序設(shè)...............................................................................................延時(shí)程序設(shè)計(jì)...................................................................................................14LCD示子程序設(shè)..............................................................................................15函數(shù)初始化子程序設(shè)...........................................................................................系統(tǒng)主程序設(shè).......................................................................................................174........................................................................................................................................19參考文...................................................................................................................................20i附錄一硬件原理.................................................................................錯(cuò)!未定書簽。附錄二軟件主程.................................................................................錯(cuò)!未定書簽。致...........................................................................................................!未定義書簽。ii要目前流行的放器的音質(zhì)已相當(dāng)好略感遺憾的是除了選擇歌曲和顯示歌名外,絕大部分播放器沒有諸如隨意彈奏樂曲、樂曲節(jié)奏跳動(dòng)等功能。而隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一。要為現(xiàn)代人工作、生活提供更好的更方便的服務(wù)就需要從單片機(jī)技術(shù)著手,一切向著數(shù)字化控制、智能化控制方向發(fā)展。本設(shè)計(jì)是采用單片機(jī)為核心設(shè)計(jì)的數(shù)字音樂播放器。本設(shè)計(jì)在實(shí)現(xiàn)音樂的播放及歌曲名顯示等基本功能的基礎(chǔ)上進(jìn)行了擴(kuò)展,添加了彩燈伴奏、按鍵彈奏、顯示音樂節(jié)拍等功能。本論文給出了系統(tǒng)方案的建立、硬件電路的詳細(xì)設(shè)計(jì)及軟件的程序?qū)崿F(xiàn)。并通過軟硬件的聯(lián)立調(diào)試,驗(yàn)證了設(shè)計(jì)方案的可行性。關(guān)鍵詞:功能;MP3音樂播放器;單片機(jī);按鍵彈奏iiiAbstractThecurrentMP3soundbeenbutfeelregretfulslightlyisinadditionthechoiceofsongsdisplaythesongname,mostplayerswithoutplayButlivingstandardofthatpursue.lifeofwork,toprovidebettermoreservicefromtowardtechnology,alldigitalintelligentdirection.ofmicrocomputerascoreofdigitalplayer.Theintheimplementationmusicplayingandthedisplayandbasedexpansion,accompaniment,playdisplayofmusicandfunctions.papersystemscheme,hardwaresoftwareAndtheofdebugging,verifytheofthedesignKeyfunction;player;chipplaybuttoniv引言二十世紀(jì)九十年代以來,計(jì)算機(jī)、信息、電子、控制、通信等技術(shù)得到迅速發(fā)展,促使了社會(huì)生產(chǎn)力的提高,也使人們的生產(chǎn)方式和生活方式產(chǎn)生了日新月異的變化。隨著人們生活水平的提高及對(duì)音樂的喜愛,對(duì)音樂播放器的品質(zhì),功能,品種等提出了越來越多的要求,表現(xiàn)在對(duì)控制系統(tǒng)性能、可靠性等要求越來越高。而品質(zhì)的提高,功能的更新,可靠性的增強(qiáng),品種的變化無不與產(chǎn)品的核心控制部分水平的提高密不可分。家用音樂播放器產(chǎn)品及其它有關(guān)消費(fèi)電器產(chǎn)品都是一些開環(huán)或閉環(huán)控制系統(tǒng),都由核心控制部分,執(zhí)行部分與人機(jī)界面三部分組成。而最為重要的控制部分一般是由單片機(jī)來執(zhí)行完成的,這就必將導(dǎo)致和促進(jìn)單片機(jī)在音樂領(lǐng)域應(yīng)用的發(fā)展?,F(xiàn)在這些由單片機(jī)實(shí)現(xiàn)的音樂播放器的功能越來越強(qiáng)、費(fèi)用越來越低。例如,就目前市場(chǎng)上MP3的功能越來越強(qiáng)大體積卻越來越小,價(jià)格也逐漸便宜,被大多數(shù)人所能接受。但這些音樂播放器也或多或少的存在著一些問題,解決這些問題,非智能化的單片機(jī)莫屬。本設(shè)計(jì)由硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)兩大部分組成整個(gè)硬件電路是由中心控制、播放、選曲、顯示、電子琴和彩燈等模塊組成,中心控制模塊采用AT89S52單片機(jī),播放模塊是由8550NPN三極和電磁蜂鳴器組成,采用LCD1602顯示模塊,電子琴設(shè)有8按鍵,其7作為音符輸入,另1作為模式轉(zhuǎn)換按鍵實(shí)現(xiàn)用戶自彈作曲。軟件程序運(yùn)用C語言編程現(xiàn)。12.1硬件電路的設(shè)計(jì)框圖硬件電路如圖所示由控制模塊、按鍵模塊、顯示模塊、揚(yáng)聲器播放模塊、彩燈伴奏模塊組成。彩燈伴奏模塊AT89S52控
顯示模塊按鍵模塊
制模塊揚(yáng)聲器播放模塊圖1件體圖按鍵模塊共由8個(gè)按鍵組成,中1個(gè)鍵用于實(shí)現(xiàn)播放器自動(dòng)播放和自行彈奏兩模式間的轉(zhuǎn)換個(gè)鍵作為音符的輸入或音樂的播放選擇顯示模塊利用對(duì)當(dāng)前播放的歌曲名稱進(jìn)行顯示彩燈伴奏模塊則是LED通過控制模塊的控制伴隨音樂節(jié)奏閃亮。揚(yáng)聲器播放模塊由三極管及無源蜂鳴器組成,通過控制模塊的控制對(duì)當(dāng)前音樂進(jìn)行播放。2.2硬件電路設(shè)計(jì)模塊的選定中心模塊目前應(yīng)用較為流行的單片機(jī)有和51片機(jī)。51列的單片機(jī)優(yōu)點(diǎn)之一在于從內(nèi)部硬件到軟件有著一套完整的按位操作系統(tǒng),即位處理器,也稱布爾處理器,它的處理對(duì)象不是字或字節(jié),而是位,這就意味著它不僅能對(duì)片內(nèi)某些特殊功能寄存器的某位進(jìn)行處理,例如傳送、置位、清零、測(cè)試等,還2能進(jìn)行位的邏輯運(yùn)算,這一點(diǎn)使其他種類單片機(jī)很難實(shí)現(xiàn)的。51系的單片機(jī)的另一個(gè)優(yōu)點(diǎn)便是具備了乘法和除法指令,其中八位除以八位的除法指令商為八位,精度顯得有些不足,因此在應(yīng)用方面不是很多,但八位乘以八位的乘法指令積為十六位,這樣的精度已經(jīng)足以滿足大部分應(yīng)用的要求了,更為重要的是,直接具備了乘法與除法指令,這就使得在實(shí)際應(yīng)用時(shí),使用者不必額外編寫相應(yīng)的子程序以備調(diào)用,與其他系列單片機(jī)相比,系列的單片機(jī)在編程操作方面的簡(jiǎn)便與實(shí)用性無疑上了一個(gè)新臺(tái)階。而同屬指令系統(tǒng)規(guī)范完整這一范疇所帶來的便利還包括了二進(jìn)制—十進(jìn)制調(diào)整指令DA,可將二進(jìn)制變?yōu)锽CD,這使得十進(jìn)制的計(jì)量更為快捷簡(jiǎn)便,省去了其他系列單片機(jī)還需要編寫調(diào)用相應(yīng)子程序的冗余過程,節(jié)省了大量的勞動(dòng)力和時(shí)間。AVR片機(jī)作為一個(gè)新興起的系列,也具有了大多數(shù)新興事物的特點(diǎn),即在原有系列的基礎(chǔ)上,擁有高性能、高速度、甚至是更低的功耗,但這些優(yōu)化與更新的性能背后,也存在著一些問題,例如其價(jià)格相比之下顯得較為昂貴,此外,它的3通用寄存器中前16個(gè)寄存器都不能直接與立即數(shù)打交道,而不像51系列的單片機(jī)中所有的通用寄存器均可直接與立即數(shù)打交道,因AVR列的單片機(jī)在通用性方面無疑有所下降。由此可見,較高的價(jià)格、較低的適用性,這兩點(diǎn)便是VR單片機(jī)進(jìn)行市場(chǎng)推廣所存在的最大制約。所以,從本系統(tǒng)設(shè)計(jì)的功能需求及成本考慮,51單片機(jī)性價(jià)比高,是擁有個(gè)外部中斷,2個(gè)16定時(shí)器,2個(gè)可編程串行UART的單片機(jī)。中心控制模塊采用單片機(jī)已完全滿足設(shè)計(jì)需要,實(shí)現(xiàn)整個(gè)系統(tǒng)控制。播放模塊播放模塊是由8050NPN三極管和電磁蜂鳴器組成。輸出高電平控制信號(hào),啟動(dòng)8050NPN極管使信號(hào)放大,從而啟動(dòng)電磁蜂鳴器。與LM386喇叭的組合相比較,該播放模塊存在一定噪聲,音響效果較差。但由于所需驅(qū)動(dòng)功率較小,驅(qū)動(dòng)器件要求不高并能降低設(shè)計(jì)成本因此必須選用NPN三極管和電磁蜂鳴器則能滿足系統(tǒng)要求[。3[[2]顯示模塊LED數(shù)碼管是一種數(shù)顯器件。我們知道,發(fā)光二極管(英文縮寫LED)是由半導(dǎo)體材料制成的、能將電信號(hào)轉(zhuǎn)換成光信號(hào)的結(jié)型電致發(fā)光器件。如果把發(fā)光二極管制成條狀,再按照一定方式連接,組成數(shù)字“8”,就構(gòu)成數(shù)碼管,簡(jiǎn)稱。使用時(shí)按規(guī)定使某些筆段上的發(fā)光二極管發(fā)光,即可組成9一系列數(shù)字。液晶顯示器,簡(jiǎn)稱LCD(LiquidDisplay),是一種液晶利用光調(diào)制的受光型顯示器件。的特點(diǎn)是體積小、形狀薄、重輕、耗能少(1~10瓦/方厘米)、低發(fā)熱、工作電壓低(~6伏)、無污染,無輻射、無靜電感應(yīng),尤其是視域?qū)?、顯示信息量大、無閃爍,并能直接與CMOS集成電路相匹配,同時(shí)還是真正的平板”式顯示設(shè)備。常見的基于單片機(jī)設(shè)計(jì)的音樂播放器基本不能顯示歌曲信息。該音樂播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,可為使用者提供曲目信息。由LED數(shù)碼管只能顯示數(shù)字而無法顯示其他中英文字符,從設(shè)計(jì)的成本及功能的角度考慮,采LCD1602顯示模塊,它可以顯示每首曲目的英文名字LCD1602驅(qū)動(dòng)電路簡(jiǎn)單可以由單片機(jī)直接輸出命令驅(qū)動(dòng)。電子琴模塊電子琴設(shè)有8個(gè)按鍵,其中7個(gè)作為音符輸入,另外1個(gè)作為模式轉(zhuǎn)換按鍵,實(shí)現(xiàn)用戶自彈作曲。7按鍵分別代表7個(gè)音符,包括中音段的全部音符。通過軟件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時(shí),再次按下模式轉(zhuǎn)換按鍵引起外部中斷.即可退出電子琴功能而返回到原來音樂播放處。42.3各硬件電路的具體設(shè)計(jì)AT89S52控制模塊的設(shè)計(jì)控制模塊如圖所示,由核心芯片單片機(jī)、單片機(jī)復(fù)位電路及外接晶振組成。如圖2示,電容C5和12M晶振與片機(jī)引腳XTAL1和相連構(gòu)成外接晶振電路。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL2分別是此放大器的輸入和輸出端。在XTAL1XTAL2兩端跨接晶體就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,為單片機(jī)的工作提供時(shí)序而XTAL1端和XTAL2端將電容C5內(nèi)部的反相放大器連接起來組成并聯(lián)諧振電路,C5、取31pF,對(duì)頻率有微調(diào)作用。單片機(jī)有一個(gè)復(fù)位引腳,復(fù)位條件是:在時(shí)鐘電路工作后,當(dāng)外部電路在RST引腳施加持續(xù)個(gè)機(jī)器周期以上的高電平時(shí),使系統(tǒng)復(fù)位。一般只要保持正脈沖的寬度為10秒,就可是單片機(jī)安全復(fù)位。本系統(tǒng)采用按鍵手動(dòng)復(fù)位,在上電瞬間RST引腳電位與VCC相同隨著電容上充電電壓的增加引腳電位逐漸下降。在單片機(jī)運(yùn)行期間,按下按鍵電容瞬間放電RST腳電位與VCC相同,系統(tǒng)復(fù)位;隨著按鍵的斷開,電容又開始充電,引腳電位電位逐漸降,系統(tǒng)開始正常工作。
圖2最系統(tǒng)5按鍵模塊的設(shè)計(jì)鍵盤在系統(tǒng)中作用在于手動(dòng)切換播放器模式、音樂彈奏時(shí)音符的輸入以及曲目的選擇。因在本系統(tǒng)中需要的按鍵并不多,單片機(jī)的數(shù)完全可以滿足,所以采用了獨(dú)立式鍵盤設(shè)計(jì),如圖所示。如圖示,按鍵均低電平有效。此外,上拉電阻保證了按鍵斷開時(shí),I/O口有確定的高電平。在設(shè)計(jì)鍵盤的時(shí)候,還要考慮去抖問題。常見的去抖的方法有兩種:硬件方法和軟件方法。單片機(jī)中常用軟件法,因此在硬件方面將不做處理。如圖3示,鍵盤輸入電路中共用到八個(gè)按鍵,用于播放器模式的切換,在軟件中計(jì)算按下的次數(shù),一次為播放模式,二次為自行彈奏模式鍵在播放器為自動(dòng)播放模式時(shí)為曲目選擇鍵,即七個(gè)按鍵依次對(duì)應(yīng)一首歌曲,按下其中一個(gè)鍵就播放對(duì)應(yīng)的歌曲。而在播放器為自行彈奏模式時(shí),七個(gè)鍵就對(duì)應(yīng)著七個(gè)音符,即按下某一按鍵,播放器就發(fā)出對(duì)應(yīng)音符的節(jié)奏[。VCCR2R410k10k10kS1S2S3S4S5S6S7S81011
VCCP1.1/T2EXP1.2P0.1/AD1P1.3P0.2/AD2P1.4P0.3/AD3P1.5P0.4/AD4P1.6P0.5/AD5P1.7P0.6/AD6RSTP2.6/A14P2.5/A13P2.4/A12XTAL2XTAL1GND
4039383736353433323130292827262524232221圖3按鍵輸電6揚(yáng)聲器播放模塊的設(shè)計(jì)揚(yáng)聲器播放模塊是由NPN三極管和無源蜂鳴器成如圖4所示源蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。無源蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此設(shè)計(jì)過程中增加一個(gè)由NPN三極管組成的電流放電路如圖所示鳴器的負(fù)極直接接地,蜂鳴器的正極接到三極管的發(fā)射極上,三極管的基級(jí)經(jīng)過限流電阻R9后由單片機(jī)的腳控制,當(dāng)出高電平時(shí),三極截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)輸出低電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。LCD示電路的設(shè)計(jì)LCD顯示電路由單片機(jī)及P3.0-P3.2端口控制。我們選用的是工業(yè)字符型液晶顯示屏LCD1602,能同時(shí)顯示16*2即32個(gè)字符(列行硬件連接如圖5所示。其中變位器是為調(diào)節(jié)對(duì)比度而設(shè)計(jì)LCD顯示驅(qū)動(dòng)在軟件中完成件中不做處理。lcd314700PPPPP
圖5LCD顯電7彩燈伴奏電路的設(shè)計(jì)根據(jù)設(shè)計(jì)要求,本設(shè)計(jì)中設(shè)計(jì)了彩燈伴奏電路,彩燈采用普通發(fā)光二級(jí)管。播放器工作時(shí),發(fā)光二級(jí)管根據(jù)音樂節(jié)拍閃亮。當(dāng)播放器發(fā)duo時(shí),亮;當(dāng)播放器發(fā)出ruai音時(shí),D2亮;當(dāng)播放器發(fā)出音時(shí),D3;當(dāng)播放器發(fā)出音時(shí),亮;當(dāng)播放器發(fā)出音時(shí),、D4亮;當(dāng)播放器發(fā)出la音時(shí),D2、亮;當(dāng)播放器發(fā)出xi音時(shí),D3亮。在程序執(zhí)行過程中,單片機(jī)對(duì)發(fā)出的音符進(jìn)行檢測(cè),再輸出對(duì)應(yīng)的彩燈信號(hào)。硬件電路較簡(jiǎn)單,如圖6所示。
D1
R10LED
330
D2
R11LED
330
D3
R12LED
330
D4
R13LED
330圖彩燈奏路83.1單片機(jī)發(fā)聲的基本原理我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制高、低電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。音符的節(jié)拍我們可以用定時(shí)T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘拍,即一拍為0.64秒。但是,由的最大定時(shí)時(shí)間只能為131秒因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不同節(jié)拍我們可以用來產(chǎn)生毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長(zhǎng)短。例如對(duì)拍音符,定時(shí)時(shí)間為秒,相應(yīng)的時(shí)間常數(shù)為(即10H);拍音符,定時(shí)時(shí)間1.92,相應(yīng)時(shí)間長(zhǎng)數(shù)為192(即C0H)。我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。此外,結(jié)束符和休止符可以分別用代和FFH來示,若查表結(jié)果為,則表示曲子終了;若查表結(jié)果為,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符3.2設(shè)計(jì)的相關(guān)音樂說明
[。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期1/頻率),然后將此周期除2,即為半周期時(shí)間。利用半周期時(shí)間定時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出的I/O反向,然后重復(fù)計(jì)時(shí)此半周期再對(duì)向,就可以在I/O上得到此頻率的脈沖。記數(shù)脈沖值與頻率的關(guān)系公式如N:記數(shù)值Fi:內(nèi)部計(jì)時(shí)依次1us,故其頻率為1;要產(chǎn)生的頻率。其記數(shù)值的求法如:T=65536-N=65536-Fi/2/Fr。例:K=65536F=1000000=Fi=1MHZ。求低音DO(26HZ),中音DO(523HZ),高音的記數(shù)值。每個(gè)音符使用1音節(jié),字節(jié)的高四位代表音符的高低,低四位代表音符的節(jié)拍。9如果1為0.4秒,為0.1秒,假設(shè)為DELAY,則1拍為DELAY。3.3切換原理播放器具有手動(dòng)彈奏和自行播放兩種模式,對(duì)于這兩種模式的切換,本設(shè)計(jì)是通過軟件判斷模式轉(zhuǎn)換按鍵按下的次數(shù)來實(shí)現(xiàn)的。當(dāng)模式轉(zhuǎn)換按鍵按下一次時(shí),播放器為自動(dòng)播放模式;當(dāng)按鍵連續(xù)按下兩次時(shí),播放器為手動(dòng)彈奏模式。在軟件中的流程圖大致如圖7示。
開始按鍵掃描計(jì)算模式轉(zhuǎn)換鍵按下次數(shù)判斷按鍵次數(shù)
次自動(dòng)播放模式次數(shù)清零
手動(dòng)彈奏模式次數(shù)清零圖7切換原流圖3.4音樂播放器軟件程序設(shè)計(jì)按鍵掃描子程序設(shè)計(jì)本設(shè)計(jì)中采用的獨(dú)立式鍵盤,按鍵的閉合與否直接反應(yīng)在口線的電平上,即口線的電平是呈現(xiàn)的高電平還是低電平。因此可以通過口線的電平高、低狀態(tài)檢測(cè),來確認(rèn)按鍵是否按下。但如果在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按10[6][6]鍵一次按下或釋放被錯(cuò)誤的認(rèn)為是多次操作,為克服按鍵點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)錯(cuò)誤,確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一按鍵,必須采取去抖動(dòng)的措施。軟件中去抖動(dòng)的措施即在第一次檢測(cè)到有鍵按下時(shí)執(zhí)行一段延時(shí)10ms的子程序然后再次檢測(cè)該鍵的電平狀態(tài),如果該鍵電平仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下[5]。一般把按鍵掃描程序設(shè)計(jì)成子程序,以便其他程序調(diào)用。程序流程圖如圖8所示:開始有否鍵按下yes延時(shí)去抖有否鍵按下yes計(jì)算并保存鍵按鍵是否釋yes恢復(fù)鍵值返回圖按鍵描程流圖
程序如下:key_scan(){if(key1==0)//---------------key1為模式轉(zhuǎn)換鍵)--------------------{延時(shí),用于消抖動(dòng)11if(key1==0)//延時(shí)后再次確認(rèn)按鍵按下{while(!key1);set++;式轉(zhuǎn)換按鍵選擇模式}
}if(key2==0)//---------------key2為曲目2或音符duo--------------------{延時(shí),用于消抖動(dòng)if(key2==0)//延時(shí)后再次確認(rèn)按鍵按下{duo=1;while(!key2);}}if(key3==0)//---------------key3為曲目3或ruai)--------------------{延時(shí),用于消抖動(dòng)if(key3==0)//延時(shí)后再次確認(rèn)按鍵按下{ru=1;while(!key3);}}if(key4==0)//---------------key4為曲目4或mi)--------------------{延時(shí),用于消抖動(dòng)if(key4==0)//延時(shí)后再次確認(rèn)按鍵按下12{mi=1;while(!key4);}}if(key5==0)//---------------key5為曲目5或){延時(shí),用于消抖動(dòng)if(key5==0)//延時(shí)后再次確認(rèn)按鍵按下{fa=1;while(!key5);}}if(key6==0)//---------------key6為曲目6或){延時(shí),用于消抖動(dòng)if(key6==0)//延時(shí)后再次確認(rèn)按鍵按下{while(!key6);}}if(key7==0)//---------------key7為曲目7或)--------------------{延時(shí),用于消抖動(dòng)if(key7==0)//延時(shí)后再次確認(rèn)按鍵按下{la=1;13[[7]while(!key7);}}if(key8==0)//---------------key8為曲目8或xi)--------------------{延時(shí),用于消抖動(dòng)if(key8==0)//延時(shí)后再次確認(rèn)按鍵按下{xi=1;while(!key8);}}}延時(shí)程序設(shè)計(jì)延時(shí)程序一般是通過一層或多層循環(huán)實(shí)現(xiàn),整個(gè)過程延時(shí)的時(shí)間是程序執(zhí)行的指令總條數(shù)乘以執(zhí)行每條指令所用的時(shí)間。由于該系統(tǒng)的晶振選用的是所以執(zhí)行每條指令所所用時(shí)間為2us,程序執(zhí)行流程如圖9所示。程序如下://延時(shí)函數(shù),有參函數(shù){uintx,for(y=110;y>0;y--);}14[8][8]
開始是否yesx--是否yesy--結(jié)束圖延時(shí)序程LCD顯子程序設(shè)計(jì)本設(shè)計(jì)中利用LCD1602顯示當(dāng)前播放曲目名稱以及彈奏時(shí)的音符LCD開始工作是靠軟件來實(shí)現(xiàn)的。整個(gè)顯示過程中的程序工作流程圖如圖10所示:程序如下:lcd_display(){WriteCMD(0x80);{WriteData(name[y]);}mydelay(2);WriteCMD(0x80+0x40);for(z=0;z<12;z++){WriteData(num[z]);mydelay(5);}15{WriteCMD(0x18);mydelay(5);}}開始液晶初始化寫指令選擇第一行數(shù)據(jù)地址指針LCD專延時(shí)時(shí)間FOR循將顯示數(shù)據(jù)逐位寫入顯示在第一行寫指令選擇第二行數(shù)據(jù)地址指針LCD專延時(shí)時(shí)間FOR循將顯示據(jù)逐位寫入顯示在第二行返回圖10顯示程流圖函數(shù)初始化子程序設(shè)計(jì)函數(shù)初始化程序即把在主函數(shù)內(nèi)對(duì)某些參數(shù)和標(biāo)記位賦初值編寫成一個(gè)函數(shù),這樣使程序更具有條理化清晰易懂由于整個(gè)程序要用到定時(shí)器和定時(shí)器1所以初始化程序主要是對(duì)定時(shí)器相關(guān)內(nèi)容作說明,程序的簡(jiǎn)單框圖如圖11所示。16
TH0,TL0賦
TH1,TL1賦圖11初始化序圖
程序如下:InitialSound(void){=
//計(jì)算TL1應(yīng)裝入的初值的初值}
(10ms的初裝值=(65536-(1/1200)*SYSTEM_OSC)%256;//計(jì)算TH1應(yīng)裝入TH1=Sound_Temp_TH1;TL1=TMOD=0x11;ET0=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 2 Shopping Lesson2(說課稿)-2024-2025學(xué)年北師大版(三起)英語四年級(jí)上冊(cè)
- 2024年三年級(jí)品社下冊(cè)《馬路不是游戲場(chǎng)》說課稿 山東版
- 2024-2025學(xué)年高中地理 第4章 旅游與區(qū)域的發(fā)展 第1節(jié) 旅游業(yè)的發(fā)展及其對(duì)區(qū)域的影響說課稿 中圖版選修3
- Unit 1 Growing up 單元說課稿-2024-2025學(xué)年高中英語外研版(2019)選擇性必修第二冊(cè)
- 下城區(qū)汽車租賃合同范本
- 保安獎(jiǎng)罰合同范例
- 醫(yī)用耗材寄售合同范例
- 加貿(mào)合同范本
- 專利注冊(cè)合同范本
- 人工智能購(gòu)銷合同范例
- 河南2025年河南職業(yè)技術(shù)學(xué)院招聘30人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年長(zhǎng)沙穗城軌道交通有限公司招聘筆試參考題庫(kù)含答案解析
- 2024年湖南有色金屬職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2025年山東華魯海運(yùn)有限公司招聘筆試參考題庫(kù)含答案解析
- 銀川經(jīng)濟(jì)技術(shù)開發(fā)區(qū)2024年綜合考核評(píng)價(jià)指標(biāo)表及評(píng)分細(xì)則
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- 讀書分享《給教師的建議》課件
- 《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》專題講座
- 廣東省茂名市2023-2024學(xué)年高一上學(xué)期物理期末試卷(含答案)
- 沙發(fā)市場(chǎng)需求與消費(fèi)特點(diǎn)分析
- 2024統(tǒng)編版新教材道德與法治七年級(jí)全冊(cè)內(nèi)容解讀課件(深度)
評(píng)論
0/150
提交評(píng)論