單片機(jī)音樂(lè)發(fā)生器畢業(yè)設(shè)計(jì)論文_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p>  設(shè)計(jì)(論文)題目: 單片機(jī)音樂(lè)發(fā)生器 </p><p>  專 業(yè): 應(yīng)用電子 </p><p>  班 級(jí): 應(yīng)電G09-3 </p><p>  學(xué) 號(hào): &

2、lt;/p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p>  2011年4月20日</p><p><b>  目錄</b></p><p><b>  摘 要1&l

3、t;/b></p><p><b>  緒 論2</b></p><p>  1.1研究的目的和意義2</p><p>  1.2國(guó)內(nèi)外研究的現(xiàn)狀及發(fā)展趨勢(shì)2</p><p>  1.2.1國(guó)內(nèi)外研究的現(xiàn)狀2</p><p>  1.3音樂(lè)發(fā)生器的擴(kuò)展3</p>&l

4、t;p>  第1章 設(shè)計(jì)方案4</p><p>  1.1 設(shè)計(jì)方案論證4</p><p>  1.1.1 方案一4</p><p>  1.1.2 方案二4</p><p>  1.1.3 方案三5</p><p>  1.1.3 方案比較6</p><p>  第2章 硬件

5、設(shè)計(jì)7</p><p>  2.1 電路組成及工作原理7</p><p>  2.1.1 電路組成7</p><p>  2.1.2 電路工作原理7</p><p>  2.2 AT89C51的簡(jiǎn)介8</p><p>  2.2.1 AT89C51功能概述8</p><p>  2.

6、2.2 AT89C51的管腳圖9</p><p>  2.2.3 AT89C5 單片機(jī)的引腳介紹9</p><p>  2.2.4 晶振電路10</p><p>  2.3 揚(yáng)聲器電路10</p><p>  2.4 顯示電路11</p><p>  2.5 更換歌曲電路11</p><

7、p>  2.6 復(fù)位電路12</p><p>  2.7 程序存儲(chǔ)器外部擴(kuò)展電路12</p><p>  第3章 軟件系統(tǒng)設(shè)計(jì)13</p><p>  3.1 軟件流程設(shè)計(jì)13</p><p>  第4章 系統(tǒng)調(diào)試14</p><p>  4.1 常用調(diào)試工具14</p><p&g

8、t;  4.1.1 Keil C 軟件14</p><p>  4.1.2 PROTEUS軟件15</p><p>  4.2 系統(tǒng)調(diào)試及性能分析15</p><p><b>  心得體會(huì)16</b></p><p><b>  參考文獻(xiàn)17</b></p><p>

9、;<b>  附 錄18</b></p><p>  附錄1 音樂(lè)發(fā)生器電路原理圖18</p><p>  附錄2 元件明細(xì)表19</p><p>  附錄3 源程序代碼20</p><p><b>  摘 要</b></p><p>  近年來(lái)隨著科技的飛速發(fā)展,單

10、片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。</p><p>  當(dāng)今,利用單片機(jī)控制音樂(lè)播放多不勝舉,音樂(lè)芯片也相當(dāng)之多,而利用單片機(jī)存儲(chǔ)音樂(lè),控制播放最為廣泛。它有功能多﹑價(jià)格優(yōu)﹑外圍電路簡(jiǎn)單的特點(diǎn),很受音樂(lè)愛(ài)好者及音樂(lè)芯

11、片制造商的青昧。本文中,用單片機(jī)芯片及少數(shù)外圍電路控制音樂(lè)播放。</p><p>  本設(shè)計(jì)是以單片機(jī)AT89C51為核心數(shù)據(jù)處理器件,由數(shù)碼管顯示調(diào)整歌曲的曲號(hào)和播放中,顯示歌曲的曲號(hào),四個(gè)數(shù)據(jù)輸入按鍵組成七功能分別是對(duì)歌曲曲號(hào)進(jìn)行加一設(shè)置、對(duì)歌曲曲號(hào)進(jìn)行減一設(shè)置、對(duì)歌曲曲號(hào)進(jìn)行復(fù)位、對(duì)在播放中的歌曲進(jìn)行暫停;元件以低耗、高能、耐用、精確、易于操作等為優(yōu)先考慮因素。采用獨(dú)立式輸入按鈕,用作對(duì)歌曲播放的設(shè)置,通過(guò)

12、按鍵將單片機(jī)I/0 口的電平拉低,單片機(jī)檢測(cè)到I/O口電平為0時(shí),在下一曲按鈕中,自動(dòng)將歌曲的編號(hào)加一;在播放/暫停按鈕中,自動(dòng)將歌曲暫停、播放;在上一曲按鈕中自動(dòng)將歌曲的編號(hào)減一。當(dāng)播放歌曲時(shí),會(huì)在數(shù)碼管上顯示該歌曲的序號(hào)。在顯示時(shí)使用的是由一個(gè)七段數(shù)碼管顯示,在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法?并通過(guò)查表法,將其在數(shù)碼管上顯示出來(lái),P1口低7位為字選段輸入端。通過(guò)查表將字型碼送給7段數(shù)碼管顯示數(shù)字。軟件去抖動(dòng)功能,如果“開(kāi)始

13、鍵”按下就向下執(zhí)行,否者跳到開(kāi)始。AT89C51單片機(jī)的內(nèi)存較小,就用了一個(gè)74LS373鎖存器和27512外部擴(kuò)展芯片對(duì)該單片機(jī)進(jìn)行了內(nèi)存的擴(kuò)充,增大了它的存儲(chǔ)空間,讓他可以存儲(chǔ)足夠多的歌曲。</p><p>  該音樂(lè)發(fā)生器的論文詳細(xì)介紹了其硬件結(jié)構(gòu)和設(shè)計(jì)方法,整個(gè)設(shè)計(jì)簡(jiǎn)單實(shí)用,功能完整。</p><p><b>  結(jié)論</b></p><p

14、>  1.1研究的目的和意義</p><p>  音樂(lè)電聲的一個(gè)重要內(nèi)容就是電子音樂(lè)。電子琴的出現(xiàn),開(kāi)辟了音樂(lè)的一個(gè)新天地。但是自從電子合成器問(wèn)世以來(lái),電子音樂(lè)就又進(jìn)入了一個(gè)更高的階段。 目前,由于電子音樂(lè)的普及,電子合成器(合成器實(shí)際上是一臺(tái)聲音的頻率合成儀,可以制作各種聲音,改變各種音色)可以解決相當(dāng)一部分的歌唱及舞廳的伴奏問(wèn)題??梢允孪戎谱靼樽嘁魳?lè)或背景音樂(lè),而不需要樂(lè)隊(duì),或者部分代替樂(lè)隊(duì)。由于音樂(lè)合

15、成器制作和修改方便,成本低,音樂(lè)豐滿,所以市場(chǎng)需求量很大,因此,世界許多國(guó)家的廠商都不斷地在發(fā)展并推出新的型號(hào),每年都要更新?lián)Q代。當(dāng)前的發(fā)展趨勢(shì)是不斷的采用先進(jìn)技術(shù),例如有的合成器有“跟隨”功能,即經(jīng)預(yù)置,每一個(gè)音后可以跟隨一個(gè)二度或三度音,“重疊”功能,輕奏或重奏時(shí)可以發(fā)不同音調(diào)或音色;另外,合成器還向輕便、使用操作方便等方向發(fā)展。電腦音樂(lè)也許不會(huì)成為今后音樂(lè)的主流,但它在整個(gè)人類音樂(lè)史上的地位已經(jīng)不容置疑地確立了,相信它會(huì)越來(lái)越深入

16、地浸透到音樂(lè)創(chuàng)作和欣賞的領(lǐng)域中,并且將在一定程度上影響人們對(duì)音樂(lè)的理解和詮釋。用單片機(jī)制作的音樂(lè)發(fā)生器也會(huì)越來(lái)越多,這將必然成為一種趨勢(shì)。</p><p>  1.2國(guó)內(nèi)外研究的現(xiàn)狀及發(fā)展趨勢(shì) </p><p>  1.2.1國(guó)內(nèi)外研究的現(xiàn)狀</p><p>  隨著以法、德、意為代表的歐洲和以美國(guó)為代表的電子音樂(lè)、計(jì)算機(jī)音樂(lè)早期的大力發(fā)展,國(guó)際上許多國(guó)家紛紛開(kāi)始引

17、入電子音樂(lè)研究與創(chuàng)作。因此,電子音樂(lè)創(chuàng)作作為音樂(lè)科技領(lǐng)域發(fā)展的重要標(biāo)志,在風(fēng)格上也體現(xiàn)出比以往任何時(shí)代都鮮明的個(gè)性化特征。六十年代,美國(guó)物理學(xué)家Robert Moog 研制出了小型實(shí)用的電子合成器。從此,首先在歐美地區(qū),合成器作為新型的樂(lè)器被音樂(lè)家尤其是流行音樂(lè)家所采用并飛快的流行開(kāi)來(lái)。由于美國(guó)雄厚的經(jīng)濟(jì)和科技基礎(chǔ),在早期計(jì)算機(jī)音樂(lè)獲得巨大成功后,越來(lái)越多的音樂(lè)家和科學(xué)家步入到計(jì)算機(jī)音樂(lè)的研究與開(kāi)發(fā)的領(lǐng)域中來(lái),他們一起工作、共同開(kāi)展研究

18、,許多新產(chǎn)品和新設(shè)計(jì)不斷涌現(xiàn)。</p><p>  1.3音樂(lè)發(fā)生器的擴(kuò)展</p><p>  熟練的運(yùn)用89C51單片機(jī)定時(shí)器產(chǎn)生固定頻率的方波信號(hào),推動(dòng)喇叭發(fā)出旋律,按下單鍵可以演奏預(yù)先設(shè)置的歌曲旋律,最重要的是自己還可以通過(guò)程序設(shè)計(jì)輸入自己喜歡的歌曲來(lái)演奏中,本設(shè)計(jì)采用簡(jiǎn)易音階編碼直覺(jué)式輸入法方便設(shè)計(jì)音樂(lè)旋律,可以擴(kuò)充其功能如下:</p><p>  設(shè)計(jì)三個(gè)

19、按鍵操作來(lái)更改歌曲的序號(hào);</p><p>  可以按照歌曲的序號(hào)來(lái)播放歌曲;</p><p>  可以顯示播放中歌曲的序號(hào);</p><p><b>  可以存儲(chǔ)多首歌曲;</b></p><p><b>  第1章 設(shè)計(jì)方案</b></p><p>  1.1 設(shè)計(jì)方案論

20、證</p><p><b>  1.1.1 方案一</b></p><p>  利用AT89C51和LM386(音頻功放) 組成的音樂(lè)播放器</p><p><b>  (1)功能特色。</b></p><p>  LM386(音頻功放)來(lái)實(shí)現(xiàn)音樂(lè)的播放。</p><p>&

21、lt;b> ?。?)硬件設(shè)計(jì)。</b></p><p>  電路以AT89C51為主控制器,LM386(音頻功放)來(lái)實(shí)現(xiàn)的。晶振采用12MHz,音樂(lè)信號(hào)由P3.0口輸出,經(jīng)喇叭發(fā)聲而播放歌曲,框架圖如圖1-1所示。</p><p><b> ?。?)軟件設(shè)計(jì)。</b></p><p>  程序中根據(jù)每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器T0

22、產(chǎn)生。為了程序調(diào)用方便,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。</p><p><b>  1.1.2 方案二</b></p><p>  利用AT89C51、74LS373鎖存器和27512外部擴(kuò)展組成的音樂(lè)播放器</p><p><b> ?。?)功能特色</b></p><p>  對(duì)內(nèi)存進(jìn)行

23、了擴(kuò)展,可以播放三首以上的歌曲。</p><p><b> ?。?)硬件設(shè)計(jì)</b></p><p>  電路以AT89C51為主控制器,74LS373和27512進(jìn)行外部程序存儲(chǔ)器的擴(kuò)展,播放/暫停鍵為播放/暫停歌曲,下一曲鍵和上一曲鍵分別為調(diào)整歌曲的下一曲和上一曲選擇鍵的按鈕。晶振采用12MHz,音樂(lè)信號(hào)由P3.0口輸出,經(jīng)喇叭發(fā)聲而播放歌曲如圖1-2所示框架圖。

24、</p><p><b> ?。?)軟件設(shè)計(jì)</b></p><p>  程序中根據(jù)音選取的是C調(diào)三個(gè)8度內(nèi)的音符,共16個(gè)音。每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器T0產(chǎn)生。為了程序調(diào)用方便,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。在程序中以查表的方式加載計(jì)數(shù)初值。當(dāng)值為00H時(shí)表示空拍,與節(jié)拍碼配合完成節(jié)拍發(fā)音。節(jié)拍碼也占一個(gè)字節(jié),其總時(shí)間長(zhǎng)度等于基本時(shí)間乘以節(jié)拍碼的值。節(jié)拍碼值

25、為01H時(shí),表示當(dāng)前樂(lè)曲結(jié)束,為00H時(shí),表示全部樂(lè)曲結(jié)束。為了編碼簡(jiǎn)單,一般節(jié)拍碼高半字節(jié)表示整拍,低半字節(jié)表示分?jǐn)?shù),只要基本延時(shí)設(shè)定恰當(dāng)即可并且在按開(kāi)始按鈕后,可以播放歌曲。</p><p><b>  1.1.3 方案三</b></p><p><b>  (1)功能特色</b></p><p>  本播放器是由4X

26、4組成的16個(gè)按鈕矩陣鍵盤(pán),設(shè)計(jì)成16個(gè)音組成的聲音發(fā)生器并且能夠播放音樂(lè)。</p><p><b>  (2)硬件設(shè)計(jì)</b></p><p>  電路以AT89C51為主控制器,下一曲、上一曲分別為上一曲、下一曲選擇鍵的按鈕并且采用利用4X4組成的16個(gè)按鈕矩陣鍵盤(pán)來(lái)每按一個(gè)鍵,發(fā)出一個(gè)音。晶振采用12MHz,音樂(lè)信號(hào)由P3.0口輸出,經(jīng)喇叭發(fā)聲而播放歌曲,如圖1

27、-3所示。</p><p><b> ?。?)軟件設(shè)計(jì)</b></p><p>  程序中音選取的是C調(diào)三個(gè)8度內(nèi)的音符,共16個(gè)音。每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器T0產(chǎn)生。為了程序調(diào)用方便,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。在程序中以查表的方式加載計(jì)數(shù)初值,為了編碼簡(jiǎn)單,一般節(jié)拍高半字節(jié)表示整拍,低半字節(jié)表示分?jǐn)?shù),只要基本延時(shí)設(shè)定恰當(dāng)即可,為了及時(shí)響應(yīng)鍵盤(pán)操作,鍵掃描

28、指令安排在基本延時(shí)時(shí)間子程序中,按鍵每按下一次,樂(lè)曲數(shù)目計(jì)數(shù)器R5加"1"或減"1",根據(jù)R5的內(nèi)容轉(zhuǎn)向不同的樂(lè)曲并且在按下開(kāi)始按鈕后,就開(kāi)始播放歌曲。</p><p>  1.1.3 方案比較</p><p>  從以上三種方案,方案三只能利用按鍵發(fā)音,可以發(fā)出16個(gè)音并且只能播放三首歌曲,而方案二進(jìn)行了內(nèi)存的擴(kuò)充而可以播放三首以上的歌曲,在播放的

29、過(guò)程中,方案二可以隨時(shí)的暫停播放歌曲的進(jìn)度,而方案一不具有該功能。方案二從實(shí)現(xiàn)的功能上優(yōu)于方案一、三,方案二在使用上及其功能的實(shí)現(xiàn)上都較方案三簡(jiǎn)潔,并且由于單片機(jī)具有優(yōu)越的高集成電路性,使其工作速度更快、效率更高。另外AT89C51單片機(jī)采用12MHz的晶振,提高了信號(hào)的測(cè)量精度,并且使該系統(tǒng)可以通過(guò)軟件改進(jìn)來(lái)擴(kuò)張功能。</p><p>  通過(guò)方案對(duì)比,最終選擇方案二,音樂(lè)發(fā)生器電路原理圖見(jiàn)附錄1所示。<

30、/p><p><b>  第2章 硬件設(shè)計(jì)</b></p><p>  2.1 電路組成及工作原理</p><p>  2.1.1 電路組成</p><p>  音樂(lè)發(fā)生器的電路設(shè)計(jì)方框圖如圖2-1所示,電路原理圖見(jiàn)附錄1所示,主要由單片機(jī)控制系統(tǒng)、調(diào)整歌曲序號(hào)、顯示歌曲序號(hào)、內(nèi)存外部擴(kuò)充電路、復(fù)位電路等組成。</p&

31、gt;<p>  單片機(jī)AT89C51是本系統(tǒng)的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作。在其外圍接上:復(fù)位電路、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振X1、電容、電阻、與非門(mén)、非門(mén)、數(shù)碼管、揚(yáng)聲器、四個(gè)按鍵、74LS373鎖存器、27512外部程序存儲(chǔ)器擴(kuò)展。其中,四個(gè)按鍵分別是上一曲、下一曲、暫停/播放、復(fù)位。P1.0-P1.6是位選口,P3.2、P3.6、P3.7共同為上、下歌曲的調(diào)整口,實(shí)現(xiàn)對(duì)歌曲的調(diào)整操作,并且加減調(diào)整歌

32、曲的曲號(hào),P3.3口為歌曲的暫停/播放按鈕,可對(duì)播放中的歌曲進(jìn)行暫停/播放,P3.0為蜂鳴器的控制口。</p><p>  2.1.2 電路工作原理 </p><p>  本音樂(lè)發(fā)生器是用單片機(jī)來(lái)設(shè)計(jì)制作完成,其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成, AT89C51單片機(jī)片內(nèi)帶有4KB和外部程序存儲(chǔ)器擴(kuò)展的256K的內(nèi)存,并且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。該音樂(lè)發(fā)生器的效率較高,其誤差主要由

33、晶振自身的誤差所造成。存儲(chǔ)歌曲是采用的外部擴(kuò)展,更改歌曲號(hào)是通過(guò)下一曲和上一曲來(lái)實(shí)現(xiàn)的,按鍵將單片機(jī)I/0 口的電平拉低,單片機(jī)檢測(cè)到I/O口電平為0時(shí),自動(dòng)改變顯示的數(shù),實(shí)現(xiàn)更改的功能。顯示是使用一個(gè)的七段共陰極數(shù)碼管顯示,設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法,其中通過(guò)查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。當(dāng)播放歌曲時(shí),會(huì)在數(shù)碼管上顯示該歌曲的編號(hào)提示現(xiàn)在正在播放的歌曲的序號(hào)。軟件去抖動(dòng),如果“開(kāi)始鍵”按下就向下執(zhí)行,否者跳到開(kāi)始。

34、采用延時(shí)程序進(jìn)行對(duì)歌曲的播放。</p><p>  2.2 AT89C51的簡(jiǎn)介</p><p>  2.2.1 AT89C51功能概述</p><p>  自從1971年微型計(jì)算機(jī)問(wèn)世以來(lái),隨著大規(guī)模集成電路技術(shù)的進(jìn)一步發(fā)展,導(dǎo)致微型計(jì)算機(jī)正向兩個(gè)主要方向發(fā)展:一是高速度、高性能、大容量的高檔微型機(jī)及其系列化向大、中型計(jì)算機(jī)的挑戰(zhàn);另一個(gè)是穩(wěn)定可靠、小而廉、能適應(yīng)

35、各種控制領(lǐng)域需要的單片機(jī)。</p><p>  MCS—51系列是Intel公司在1980年推出的高檔8位單片機(jī),具有性能價(jià)格比高、品種多、兼容性強(qiáng)、開(kāi)發(fā)用的仿真機(jī)較完善等優(yōu)點(diǎn),所以在國(guó)際上和國(guó)內(nèi)的占有率相當(dāng)高。它擁有8位微處理器和控制器,內(nèi)含一個(gè)一位布爾運(yùn)算處理器,可直接對(duì)數(shù)據(jù)的位進(jìn)行操作和運(yùn)算,特別適用于邏輯控制。內(nèi)部含有4KB的程序ROM并且在外部擴(kuò)展了256K的存儲(chǔ)空間,2個(gè)16位的計(jì)數(shù)/定時(shí)器。本次采用

36、的是AT89C51單片機(jī),其電路如2-2所示,它的中斷功能比較強(qiáng),有5個(gè)中斷源,即外部中斷2個(gè),定時(shí)器中斷2個(gè),串行中斷1個(gè),有2個(gè)中斷優(yōu)先級(jí)。中斷控制電路主要包括用于中斷控制的四個(gè)寄存器:定時(shí)器控制寄存器TCON,串行口控制寄存器SCON,中斷允許控制寄存器IE,中斷優(yōu)先級(jí)控制寄存器IP等。內(nèi)部時(shí)鐘振蕩器,全雙工方式的串行接口(UART),兩極中斷優(yōu)先權(quán)的6個(gè)中斷源/5個(gè)中斷矢量的中斷邏輯。哈佛結(jié)構(gòu)的存儲(chǔ)器組織,支持高達(dá)64K為單周期

37、指令,支持六種尋址方式。最高時(shí)鐘振蕩頻率可達(dá)12MHZ,大部分指令執(zhí)行時(shí)間為1µs,乘、除指令為4µs。</p><p>  2.2.2 AT89C51的管腳圖</p><p>  MCS-51系列單片機(jī)采用40引腳雙列直插式封裝(DIP),其引腳排列和邏輯符號(hào)如圖2-3所示,4個(gè)并行口共有32根引腳,可分別作地址線、數(shù)據(jù)線和I/O線;2根電源線;2根時(shí)鐘振蕩電路引腳和

38、4根控制線。</p><p>  2.2.3 AT89C5 單片機(jī)的引腳介紹</p><p>  AT89C51單片機(jī)是高性能單片機(jī),因?yàn)槭芤_數(shù)目的限制,所以有許多引腳具有第二功能,各引腳功能說(shuō)明如下:</p><p> ?。?)輸入/輸出口線</p><p>  A. 口8位雙向口線</p><p>  B.

39、 口8位雙向口線</p><p>  C. 口8位雙向口線</p><p>  D. 口8位雙向口線</p><p> ?。?)ALE地址鎖存控制信號(hào)</p><p>  在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把口輸出的底8位地址送入鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外由于ALE是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此

40、可作為外部時(shí)鐘或外部定時(shí)脈沖使用。</p><p> ?。?)外部程序存儲(chǔ)器讀選通信號(hào)</p><p>  在讀外部ROM時(shí)有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。</p><p>  (4)訪問(wèn)程序存儲(chǔ)器控制信號(hào)</p><p>  當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;而當(dāng)信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程

41、序存儲(chǔ)器開(kāi)始,并可延續(xù)至外部程序存儲(chǔ)器。</p><p> ?。?)RST 復(fù)位信號(hào)</p><p>  當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位操作。</p><p>  (6)XTAL1和XTAL2外接晶體引線端</p><p>  當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),這兩個(gè)引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部

42、時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。</p><p> ?。?)電源、地線GND</p><p>  VCC、GND。VCC一般接+5V電源,GND接地。</p><p><b>  2.4 晶振電路</b></p><p>  MCS-51片內(nèi)有一個(gè)高增益的反相放大器,其輸入端為引腳XTAL1和輸出端為引腳為XTAL2,用

43、于外接石英晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,如圖2-3所示。電容C1和C2對(duì)頻率有微調(diào)作用,電容一般取20pF左右。晶體振蕩頻率范圍是1.2MHz~12MHz,一般情況下,選用振蕩頻率為12MHz的石英晶體。振蕩脈沖信號(hào)經(jīng)過(guò)內(nèi)部時(shí)鐘發(fā)生器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘信號(hào)。</p><p><b>  2.3 揚(yáng)聲器電路</b></p

44、><p>  本設(shè)計(jì)是采用蜂鳴器用來(lái)發(fā)出聲音,當(dāng)你按下播放按鈕時(shí),單片機(jī)就開(kāi)始運(yùn)行程序,蜂鳴器開(kāi)始讀程序而播放你所要播放的歌曲,電路如圖2-4所示。</p><p><b>  2.4 顯示電路</b></p><p>  本設(shè)計(jì)顯示是采用一個(gè)七段共陰極LED顯示,當(dāng)片選信號(hào)為0時(shí),數(shù)碼就會(huì)點(diǎn)亮,主要是用來(lái)顯示播放中歌曲的序號(hào)、選擇歌曲來(lái)播放等信息

45、。其分別利用單片機(jī)的P1.0口至P1.7口與數(shù)碼管相連接,完成字段碼顯示歌曲的號(hào)數(shù)。數(shù)碼管的另一引腳接低電平(接地)。電路如圖2-5所示。</p><p>  2.5 更換歌曲電路</p><p>  采用3個(gè)按鈕作為更換歌曲按鍵,上一曲、下一曲和播放/暫停按鍵分別是歌曲的序號(hào)的加、減和對(duì)歌曲進(jìn)行暫停/播放。利用三個(gè)上拉電阻和與非門(mén)、非門(mén)來(lái)實(shí)現(xiàn)歌曲的選擇和暫停,單片機(jī)的P3.2口至P3.7

46、口始終是高電平,當(dāng)沒(méi)有按鍵按下時(shí),就會(huì)一直的播放歌曲。電路如圖2-6所示。</p><p><b>  2.6 復(fù)位電路</b></p><p>  AT89C51的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)施密特觸發(fā)器用來(lái)抑制噪聲,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。</p><p> 

47、 本設(shè)計(jì)是采用上電自動(dòng)復(fù)位,上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。時(shí)鐘頻率用12MHZ時(shí)C取20PF。</p><p>  2.7 程序存儲(chǔ)器外部擴(kuò)展電路</p><p>  本設(shè)計(jì)是采用了一個(gè)74LS373鎖存器和一個(gè)27512程序存儲(chǔ)器外部擴(kuò)展組成,其主要的功能就是為了在外部擴(kuò)展單片機(jī)內(nèi)存,使它有足夠的空間存放系統(tǒng)中

48、的程序,而達(dá)到使它實(shí)現(xiàn)所要得到的功能和應(yīng)用的領(lǐng)域,其圖如圖2-8所示</p><p>  第3章 軟件系統(tǒng)設(shè)計(jì)</p><p>  3.1 軟件流程設(shè)計(jì)</p><p>  主要程序流程有:主程序、顯示子程序、發(fā)聲子程序、更改歌曲曲號(hào)子程序。軟件實(shí)現(xiàn)的基本原理是,當(dāng)單片機(jī)P3.0口為0時(shí),軟件去抖動(dòng)功能,如果“開(kāi)始鍵”按下就向下執(zhí)行,否者跳到開(kāi)始。主程序流程圖校驗(yàn)鍵

49、,歌曲曲號(hào)顯示,發(fā)聲程序等功能子程序組成,系統(tǒng)完成初始化后循環(huán)檢查各個(gè)功能當(dāng)用戶使用某個(gè)功能時(shí),按下相應(yīng)的按鈕(或開(kāi)關(guān))單片機(jī)進(jìn)入相應(yīng)的功能處理。主程序流程圖如圖3-1所示。而外來(lái)脈沖是通過(guò)按鍵產(chǎn)生的,因此實(shí)際上單步執(zhí)行就是按一次鍵執(zhí)行一條指令。</p><p><b>  第4章 系統(tǒng)調(diào)試</b></p><p>  調(diào)試是一個(gè)必不可少的環(huán)節(jié),它將會(huì)驗(yàn)證你的成果,是

50、否實(shí)現(xiàn)了所要完成的功能。系統(tǒng)調(diào)試仿真時(shí)先要使用Keil C編譯器,把所寫(xiě)的程序進(jìn)行編譯,同時(shí)在仿真器里設(shè)置生成HEX文件,編譯無(wú)錯(cuò)誤時(shí)還要進(jìn)行PROTEUS仿真,查看功能是否能夠?qū)崿F(xiàn)。下面就將仿真將會(huì)用到的軟件進(jìn)行簡(jiǎn)單的介紹,并對(duì)仿真過(guò)程予以簡(jiǎn)介。</p><p>  4.1 常用調(diào)試工具</p><p>  4.1.1 Keil C 軟件</p><p>  Ke

51、il C軟件是集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持項(xiàng)目管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹(shù)狀結(jié)構(gòu)顯示,一目了然,支持ASM(匯編)、C語(yǔ)言,多語(yǔ)言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯(cuò)誤指令定位。功能很強(qiáng)大。用于對(duì)程序的調(diào)試和編輯。</p><p>  Keil C軟件界面如圖4-1所示。</p><p>  4.1.2 PROTEUS

52、軟件</p><p>  系統(tǒng)仿真還用到了PROTEUS軟件,可通過(guò)仿真可以完全顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有很大的幫助。</p><p>  首先要新建一個(gè)文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個(gè)器件放到合適的位置都要放到藍(lán)色框內(nèi)。然后根據(jù)自己的設(shè)計(jì)要求連線。把所有的元件都連接好,做出完整的電路圖。</p><p>  4.2 系統(tǒng)

53、調(diào)試及性能分析</p><p>  系統(tǒng)的調(diào)試開(kāi)始是把偉福編譯生成的無(wú)錯(cuò)誤后綴名為.HEX的文件加載到AT89C51單片機(jī)中,方法是雙擊單片機(jī)彈出一個(gè)對(duì)話框,在program file后選擇要添加文件,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,當(dāng)出現(xiàn)錯(cuò)誤時(shí),大多都是軟件出了問(wèn)題,經(jīng)過(guò)不斷的改進(jìn)調(diào)試。對(duì)按鍵檢測(cè)、加減歌曲序號(hào)與按鍵之間產(chǎn)生的不一致、歌曲調(diào)用子程序等軟件的修改后,系統(tǒng)基本實(shí)現(xiàn)了所要設(shè)計(jì)的功能

54、。</p><p>  在進(jìn)行系統(tǒng)的測(cè)試過(guò)程中。當(dāng)調(diào)節(jié)歌曲的序號(hào)時(shí),程序是給了一個(gè)初始值“1”,假如調(diào)節(jié)歌曲的序號(hào)后,歌曲播放的就是顯示屏上顯示的歌曲序號(hào)的歌曲。如按下復(fù)位鍵后時(shí)間會(huì)回到初始時(shí)間,即從頭開(kāi)始。數(shù)碼管也跟隨顯示歌曲的序號(hào)為“1”,同時(shí)蜂鳴器發(fā)出了聲響,為第一首歌曲。通過(guò)調(diào)試系統(tǒng)達(dá)到設(shè)計(jì)的任務(wù)要求。</p><p><b>  心得體會(huì)</b></p

55、><p>  本設(shè)計(jì)報(bào)告主要介紹了用單片機(jī)實(shí)現(xiàn)的音樂(lè)發(fā)生器的設(shè)計(jì)方法。系統(tǒng)介紹了該電路的硬件構(gòu)成和軟件工作過(guò)程,系統(tǒng)以AT89C51為核心,主要采用中斷控制系統(tǒng),結(jié)合所學(xué)的單片機(jī)的知識(shí),實(shí)現(xiàn)系統(tǒng)的功能要求。設(shè)計(jì)中很好的使軟、硬件相結(jié)合,基本上達(dá)到了設(shè)計(jì)的要求。通過(guò)這次畢業(yè)設(shè)計(jì),使我對(duì)單片機(jī)及其附屬電路有了一定的了解,對(duì)課本上的知識(shí)有了近一步的掌握,也深刻明白了自己的不足。</p><p>  

56、完成本次課程設(shè)計(jì)的過(guò)程,是一個(gè)從無(wú)到有的過(guò)程,經(jīng)歷了興奮、自信、失落、奮發(fā)、所悟、完成幾個(gè)過(guò)程。課程設(shè)計(jì)時(shí),仔細(xì)閱讀設(shè)計(jì)的題目和要求,以為沒(méi)什么困難的,所用的知識(shí)書(shū)上都有。可是當(dāng)我動(dòng)手開(kāi)始做的時(shí)候,才發(fā)現(xiàn)其中的算法,設(shè)計(jì)是那么繁瑣。經(jīng)過(guò)一天的努力,毫無(wú)結(jié)果。失落的心情油然而生。于是,再到圖書(shū)館和網(wǎng)上查找資料,在經(jīng)過(guò)借鑒很多類似的資料,文獻(xiàn)后,總算是有點(diǎn)眉目了。埋頭苦干的過(guò)程是痛苦的,尤其是在思考算法和程序框架時(shí),迷茫,煩躁,特別是當(dāng)苦思

57、出來(lái)一個(gè)結(jié)果,又被自己推翻,心痛的無(wú)法言繪,在這不斷循環(huán)中,終于最后完善了程序。其中的煎熬是很痛苦的,深刻明白攻克自己“未知領(lǐng)域”的困難。但當(dāng)課程設(shè)計(jì)完成時(shí),那感覺(jué)是甜蜜的,沒(méi)有耕耘,哪來(lái)得收獲的喜悅,不懂付出怎么能知道回報(bào)的快樂(lè),一分耕耘一分收獲,有付出才會(huì)有回報(bào),就在這樣的痛與快樂(lè)的交換中,我學(xué)到了知識(shí), 學(xué)到了做人的道理。</p><p>  通過(guò)這短短幾個(gè)月的制作,我感覺(jué)到自己從課本上學(xué)到的理論知識(shí)和實(shí)踐

58、仍有很大的差距。很多元器件根本不知道有什么功效,在仿真儀器中是什么代碼。有的知識(shí),自己感覺(jué)已經(jīng)掌握得差不多了,但是實(shí)際操作起來(lái)就有問(wèn)題出現(xiàn)了。我遇到了不少問(wèn)題,花費(fèi)了很多的時(shí)間。這讓我重新反思我們的學(xué)習(xí),深刻領(lǐng)悟到我們這個(gè)專業(yè)動(dòng)手,實(shí)踐的重要性。理論不經(jīng)過(guò)實(shí)踐考驗(yàn),是沒(méi)法實(shí)施的,就像我們編的程序,很多方面考慮的都不夠,幾乎沒(méi)有涉及到實(shí)際應(yīng)用時(shí)的防范方法措施。</p><p>  這次的課程設(shè)計(jì),讓我學(xué)到了很多書(shū)本

59、上學(xué)不到的東西,學(xué)到了實(shí)際應(yīng)用時(shí),是取用成本的最小化,做設(shè)計(jì)不僅要考慮大的方面,小的方面也必須做到完美。最大的收獲是:對(duì)按鍵,顯示器,單片機(jī)匯編語(yǔ)言的應(yīng)用有了深刻的了解。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 樊明龍.任麗靜編.單片機(jī)原理與應(yīng)用[M].化學(xué)工業(yè)出版社,2005.</p><p>  [2] 徐

60、愛(ài)卿編.單片微型計(jì)算機(jī)應(yīng)用和開(kāi)發(fā)系統(tǒng)[M].北京航空航天大學(xué)出版社,1998.</p><p>  [3] 戴梅芳編.微型計(jì)算機(jī)技術(shù)及應(yīng)用[M].清華大學(xué)出版社,1996.</p><p>  [4] 李廣弟,朱月秀,王秀山編.單片機(jī)基礎(chǔ)[M].北京航空航天大學(xué)出版社,2001.</p><p>  [5] 吳金戌編.8051單片機(jī)實(shí)踐與應(yīng)用[M].清華大學(xué)出版社,

61、2003.</p><p><b>  附 錄</b></p><p>  附錄1 音樂(lè)發(fā)生器電路原理圖</p><p><b>  附錄2 元件明細(xì)表</b></p><p><b>  附錄3 源程序代碼</b></p><p>  /*******

62、************************************************************</p><p>  SOUND PLAY FOR 51MCU</p><p>  /****************************說(shuō)**********明*************************</p><p>  曲譜存貯格

63、式 unsigned char code MusicName{音高,音長(zhǎng),音高,音長(zhǎng)...., 0,0};末尾:0,0 表示結(jié)束(Important)</p><p>  *******************************************************************/</p><p>  #ifndef __SOUNDPLAY_H_REVISION

64、_FIRST__</p><p>  #define __SOUNDPLAY_H_REVISION_FIRST__</p><p>  //******************************************************************</p><p>  #define SYSTEM_OSC 12000000//定義晶振頻

65、率12000000HZ</p><p>  #define SOUND_SPACE 4/5 //定義普通音符演奏的長(zhǎng)度分率,//每4分音符間隔</p><p>  sbit BeepIO=P3^0; //定義輸出管腳 </p><p>  sbitkey_int0=P3^3;</p><p>  sbit

66、key_add=P3^6;</p><p>  sbitkey_dec=P3^7;</p><p>  sbit key_led=P3^1;</p><p>  unsigned char code table[]={0x06,0x5b,0x4f};</p><p>  unsigned int code FreTab[12] =

67、 { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表</p><p>  unsigned char code SignTab[7] = { 0,2,4,5,7,9,11 }; //1~7在頻率表中的位置</p><p>  unsigned char code LengthTab[7]= { 1,2,4,8,

68、16,32,64 };unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定時(shí)器初值暫存 </p><p>  unsigned char Sound_Temp_TH1,Sound_Temp_TL1; //音長(zhǎng)定時(shí)器初值暫存</p><p>  unsigned char cnt=0;</p><p>

69、;  unsigned char temp=0;</p><p>  unsigned char flag=1;</p><p>  void Delay1ms(unsigned int count); //初始化函數(shù)</p><p>  void InitialSound(void)</p><p>  {BeepIO

70、 = 0; //喇叭關(guān)閉</p><p>  Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;// 計(jì)算TL1應(yīng)裝入的初值 (10ms的初裝值)</p><p>  Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;// 計(jì)算TH1應(yīng)裝入的初值 <

71、/p><p>  TH1 = Sound_Temp_TH1;</p><p>  TL1 = Sound_Temp_TL1;</p><p>  TMOD |= 0x11;//設(shè)置定時(shí)器0、1的工作方式為工作方式1</p><p>  ET0 = 1;//開(kāi)啟定時(shí)啤/計(jì)數(shù)中斷0</p><p>  ET

72、1 = 0;//開(kāi)啟定時(shí)啤/計(jì)數(shù)中斷1</p><p>  TR0 = 0;//啟動(dòng)定時(shí)計(jì)數(shù)器0</p><p>  TR1 = 0;//啟動(dòng)定時(shí)計(jì)數(shù)器1</p><p>  EA = 1;</p><p><b>  EX0=1;</b></p><p&g

73、t;<b>  EX1=1;}</b></p><p>  //定時(shí)器0的中斷程序</p><p>  void BeepTimer0(void) interrupt 1//音符發(fā)生中斷</p><p>  {BeepIO = !BeepIO;</p><p>  TH0 = Sound_Temp_TH0;&l

74、t;/p><p>  TL0 = Sound_Temp_TL0; }</p><p><b>  //播放程序</b></p><p>  int Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)</p>

75、;<p>  {unsigned int NewFreTab[12]; //新的頻率表</p><p>  unsigned char i,j;</p><p>  unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;</p><p>  un

76、signed char Tone,Length,SL,SH,SM,SLen,XG,F(xiàn)D;</p><p>  for(i=0;i<12;i++) // 根據(jù)調(diào)號(hào)及升降八度來(lái)生成新的頻率表 </p><p>  {j = i + Signature;if(j > 11)</p><p>  {j = j-12;NewFreTab[i] = Fr

77、eTab[j]*2;}</p><p><b>  else</b></p><p>  NewFreTab[i] = FreTab[j];</p><p>  if(Octachord == 1)</p><p>  NewFreTab[i]>>=2;</p><p>  else

78、 if(Octachord == 3)</p><p>  NewFreTab[i]<<=2;}</p><p>  SoundLength = 0;</p><p>  while(Sound[SoundLength] != 0x00) //計(jì)算歌曲長(zhǎng)度</p><p>  {SoundLength+=2;}<

79、;/p><p>  Point = 0;</p><p>  Tone = Sound[Point];</p><p>  Length = Sound[Point+1]; // 讀出第一個(gè)音符和它時(shí)時(shí)值</p><p>  LDiv0 = 12000/Speed;// 算出1分音符的長(zhǎng)度(幾個(gè)10ms) </p&g

80、t;<p>  LDiv4 = LDiv0/4; // 算出4分音符的長(zhǎng)度 </p><p>  LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最長(zhǎng)間隔標(biāo)準(zhǔn) </p><p>  TR0 = 0;</p><p>  TR1 = 1;</p><p>  while(Point

81、 < SoundLength)</p><p>  { if(cnt!=temp) //判斷有無(wú)中斷</p><p>  { return 0;//如果有則跳出此函數(shù)}</p><p>  if(flag==0)//暫停程序.......</p><p>  {flag=1;while(flag

82、==1)</p><p>  { Delay1ms(5); BeepIO=0;}</p><p>  flag=1;//暫停程序........} </p><p>  SL=Tone%10; //計(jì)算出音符 </p><p>  SM=Tone/10%10; //計(jì)算出高低音 </

83、p><p>  SH=Tone/100; //計(jì)算出是否升半 </p><p>  CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出對(duì)應(yīng)音符的頻率 </p><p><b>  if(SL!=0)</b></p><p>  {if (SM==1) Current

84、Fre >>= 2; //低音 </p><p>  if (SM==3) CurrentFre <<= 2; //高音</p><p>  Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計(jì)算計(jì)數(shù)器初值</p><p>  Sound_Temp_TH0

85、 = Temp_T/256; </p><p>  Sound_Temp_TL0 = Temp_T%256; </p><p>  TH0 = Sound_Temp_TH0; </p><p>  TL0 = Sound_Temp_TL0 + 12; //加12是對(duì)中斷延時(shí)的補(bǔ)償 }</p><p>  if(cnt!=temp)

86、 //判斷有無(wú)中斷</p><p>  { return 0; }</p><p>  {flag=1;while(flag==1){}</p><p>  flag=1;}//暫停程序........</p><p>  SLen=LengthTab[Length%10]; //算出是幾分音符</p&g

87、t;<p>  XG=Length/10%10; //算出音符類型(0普通1連音2頓音) </p><p>  FD=Length/100;</p><p>  LDiv=LDiv0/SLen; //算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms)</p><p>  if (FD==1) </p><p>  LDiv

88、=LDiv+LDiv/2;</p><p>  if(XG!=1)</p><p>  if(XG==0) //算出普通音符的演奏長(zhǎng)度 </p><p>  if (SLen<=4);LDiv1=LDiv-LDiv4;</p><p><b>  else</b></p><p>

89、  LDiv1=LDiv*SOUND_SPACE;</p><p><b>  else</b></p><p>  LDiv1=LDiv/2; //算出頓音的演奏長(zhǎng)度 </p><p><b>  else</b></p><p>  LDiv1=LDiv;</p><

90、;p>  if(SL==0) LDiv1=0;</p><p>  LDiv2=LDiv-LDiv1; //算出不發(fā)音的長(zhǎng)度 </p><p>  if (SL!=0)</p><p><b>  {TR0=1;</b></p><p>  for(i=LDiv1;i>0;i--) //發(fā)規(guī)定

91、長(zhǎng)度的音 </p><p>  {while(TF1==0);</p><p>  TH1 = Sound_Temp_TH1;</p><p>  TL1 = Sound_Temp_TL1;</p><p><b>  TF1=0;}}</b></p><p>  if(cnt!=temp)

92、 //判斷有無(wú)中斷 </p><p>  { return 0;}</p><p>  {flag=1;while(flag==1)</p><p><b>  {}</b></p><p>  flag=1; } </p><p>  if(LDiv2

93、!=0)</p><p>  {TR0=0; BeepIO=0;</p><p>  for(i=LDiv2;i>0;i--) //音符間的間隔</p><p>  {while(TF1==0);</p><p>  TH1 = Sound_Temp_TH1;</p><p>  TL1 =

94、Sound_Temp_TL1;</p><p>  TF1=0;}}</p><p>  Point+=2; </p><p>  Tone=Sound[Point];</p><p>  Length=Sound[Point+1]; }</p><p>  BeepIO = 0;cnt++; }</

95、p><p><b>  #endif</b></p><p>  #include <reg51.h></p><p>  #include "SoundPlay.h"</p><p>  void Delay1ms(unsigned int count)</p><p&g

96、t;  {unsigned int i,j;</p><p>  for(i=0;i<count;i++)</p><p>  for(j=0;j<120;j++); }</p><p><b>  //揮著翅膀的女孩</b></p><p>  unsigned char code Music_fi

97、le[3][500]=</p><p>  { { 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,</p><p>  0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,</p><p>  0x19,0x02, 0x16,0x03, 0x17,

98、0x03, 0x18,0x02, 0x18,0x03,</p><p>  0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,</p><p>  0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,</p><p>  0x17,0x02, 0x17,

99、0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,</p><p>  0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,</p><p>  0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,</p><p>  0x18,

100、0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,</p><p>  0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,</p><p>  0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,</p><p

101、>  0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,</p><p>  0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,</p><p>  0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,</p

102、><p>  0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,</p><p>  0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,</p><p>  0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,

103、0x03,</p><p>  0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,</p><p>  0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,</p><p>  0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,

104、0x03, 0x1B,0x03,</p><p>  0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,</p><p>  0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,</p><p>  0x17,0x04, 0x18,0x0E, 0x18,

105、0x03, 0x17,0x04, 0x18,0x0E,</p><p>  0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,</p><p>  0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,</p><p>  0x20,0x03, 0x21,

106、0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,</p><p>  0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,</p><p>  0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,</p><p>  0x15,

107、0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,</p><p>  0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,</p><p>  0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,</p><p

108、>  0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,</p><p>  0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,</p><p>  0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,</p

109、><p>  0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,</p><p>  0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00},</p><p><b>  //同一首歌</b></p><p>  

110、{ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,</p><p>  0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,</p><p>  0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,</p>

111、<p>  0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,</p><p>  0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,</p><p>  0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03

112、,</p><p>  0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,</p><p>  0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,</p><p>  0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D

113、, 0x17,0x03,</p><p>  0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,</p><p>  0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,</p><p>  0x19,0x03, 0x1A,0x01, 0x1B,0x02

114、, 0x1B,0x03, 0x1B,0x03,</p><p>  0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,</p><p>  0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,</p><p>  0x10,0x03, 0x10,0x03

115、, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,</p><p>  0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,</p><p>  0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,</p><p>  0x16,0x03

116、, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,</p><p>  0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,</p><p>  0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,</p><p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論