【正文】
對照如下表 21所示。音持續(xù)的長短即時值 ,一般用拍數(shù)表示 ,休止符表示暫停發(fā)音。 樂譜表上用來表示正在進(jìn)行的音的長短的符號,叫做音符。人耳能聽到的聲音頻率大約在 11— 20210Hz,而音樂使用的音一般在 27— 4100Hz。 2 基本原理及總體 方案框圖 硬件組成部分 單片機(jī)音樂播放器系統(tǒng)總體設(shè)計(jì)由五個部分構(gòu)成:晶振電路模塊、復(fù)位電路模塊、 ST89C52 單片機(jī) 、發(fā)聲模塊以及按鍵模塊。 (2)可通過功能鍵選擇樂曲,暫停,播放,上一曲,下一曲。 圖 21 單片機(jī)音樂播放器系統(tǒng)原理圖 總體設(shè)計(jì)方案 音樂作為一種物理現(xiàn)象,是由于物體振動而產(chǎn)生的,振動產(chǎn)生的聲波作用于人耳,聽覺系統(tǒng)將神經(jīng)沖動傳達(dá)給大腦,進(jìn)而產(chǎn)生聽覺。樂音中有幾十個高低不同的音,但是最基本只有這七個音,其他高、低音名都是在這個基礎(chǔ)上變化出來的。此外,還有附點(diǎn)音符,它就是指帶附點(diǎn)的音符,所謂附點(diǎn)就是記在音符右邊的小圓點(diǎn),表示增加前面音符時值的一半。在本設(shè)計(jì)中,單片機(jī)工作在 12MHz 時鐘頻率下,其時鐘周期為 1us,因此可以利用 ST89C52 的內(nèi)部定時 /計(jì)數(shù)器 T0,使其工作模式為 1,根據(jù)對應(yīng)音符的不同頻率求出計(jì)數(shù)器的初值 T(即是 TH0 和 TL0的值),則 TH0=T/256, TL0=T%256。 表 22 不同曲調(diào)下 1/4和 1/8節(jié)拍的延時表 曲調(diào)值 (1/8 節(jié)拍 ) delay(ms) 曲調(diào)值 (1/4 節(jié)拍 ) delay(ms) 調(diào) 4/4 62 調(diào) 4/4 125 調(diào) 3/4 94 調(diào) 3/4 187 調(diào) 2/4 125 調(diào) 2/4 250 (1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期 (1/音頻 ),然后將此周期除以2,即為半周期的時間 ,利用定時器計(jì)時這個半周期時間 ,每當(dāng)計(jì)時到后就將輸出脈沖的 I/O反相 ,然后重復(fù)計(jì)時此半周期時間再對 I/O口反相 ,就可在 I/O腳上得到此頻率的脈沖 (2)利用 8051 的內(nèi)部定時器使其工作在計(jì)數(shù)器模式 MODE1 下 ,改變記數(shù)值TH0 及 TL0 以產(chǎn)生不同頻率的方法。 STC89C52具有: 8kB Flash, 256字節(jié) RAM, 32 位 雙向 I/O 口線,看門狗 ( WDT) 定時器, 2個數(shù)據(jù)指針, 2個 16位 可編程 定時器 /計(jì)數(shù)器, 1個 6向量 2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi) 時鐘振蕩 器 。 STC89C52的工作電壓是 ~,時鐘頻率可以在 0~33MHz范圍內(nèi)選擇,采用 PDIP、TQFP和 PLCC三種封裝形式。作為輸出口,每位能驅(qū)動 8個 TTL邏輯電平。在 Flash編程時,P0口也用來接收指令字節(jié);在程序校驗(yàn)時,輸出指令字節(jié)。作為輸入使用時,被外部拉低的引腳端由于內(nèi)部電阻的原因,將輸出電流( IIL)。對 P2端口寫 “1” 時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。在使用 8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時, P2口輸出 P2鎖存器的內(nèi)容。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流( IIL)。晶振工作時, RST腳持續(xù) 2個機(jī)器周期高電平將使單片機(jī)復(fù) 位。 : 地址鎖存控制信號( ALE)是訪問外部程序存儲器時,鎖存低 8 位地址的輸出脈沖。 如果需要,通過將地址為 8EH的 SFR的第 0位置 “1 ” , ALE操作將無效。 : 外部程序存儲器選通信號( )是外部程序存儲器選通信號。為了執(zhí)行內(nèi)部程序指令, 應(yīng)該 接 VCC。 晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò),電工學(xué)上這個網(wǎng)絡(luò)有兩個諧振點(diǎn),以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。一般的晶振的負(fù)載電容為 15p 或 ,如果再考慮元件引腳的等效輸入電容,則兩個 30p的電容構(gòu)成晶振的振蕩電路就是 我為這次課設(shè) 的選擇。 ? 圖 34 復(fù)位按鍵模塊電路圖 由于 端口流出的電流過小,幾乎聽不到音樂聲, 要實(shí)現(xiàn) 發(fā)聲 功能, 只有把 端口流出的電流放大,故加上放大模塊,實(shí)現(xiàn)了發(fā)聲功能。在單極性輸入時,此引腳接地。 Vout( 5 腳):電壓輸出腳,此引腳為音頻功放電路的輸出。 ? 34 功放電路圖 發(fā)聲模塊的主要部件是蜂鳴器 LS1,蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜 發(fā)聲的。這是我們都希望看到的也正是我們進(jìn)行 課程設(shè)計(jì)的目的所在。了解音樂的產(chǎn)生,音樂體系中中音高關(guān)系的最小計(jì)量單位及音符的定義,同時也知道了音符又分為了以下幾種:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分符。 sbit key_start_stop=P1^0。 code unsigned char music1[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1,6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 }。 void delay(unsigned char t) { unsigned char t1。t1++) { for(t2=0。 } void delay_key(int z) { int x,y。y0。 TH0=timer0h。 TL0=timer0l。 TMOD=1。 while(1) { i=0。 if(key_next==0) { ? j=2。 time=music1[i+2]。 timer0h=FREQH[k]。 song()。t charge you more than 35% of your pensation if you win the case. If you are thinking about signing up for a damagesbased agreement, you should make sure you39。s Premier League match at Chelsea on Sunday. I am going to be at the match tomorrow and I have asked to meet Yaya Toure, he told BBC Sport. For me it39。s actions. ?CSKA said they were surprised and disappointed by Toure39??傆X得自己自己似乎應(yīng)該去做點(diǎn)什么,或者寫點(diǎn)什么。t really grow up, it seems is not so important。 Originally, this world, can produce a chemical reaction to an event, in addition to resolutely, have to do, and time. 原來,這個世界上,對某個事件能產(chǎn)生化學(xué)反應(yīng)的,除了非做不可的堅(jiān)決,還有,時間。也曾經(jīng)好像已經(jīng)下定了決心去做某件事,但更多的時候是最后又打起了退堂鼓。 Those were broken into various shapes of stationery。突然想到那件藍(lán)格子襯衫;那些被折成各種各樣形狀的信紙;那段從街角深巷伊始的友誼;還有那場還沒有開始就宣告了終結(jié)的邂逅計(jì)劃 …… 那些年那些天的非做不可,終于和青春一樣,都將在我們的人生中謝幕。t. Baumgartner still will free fall at a speed that would cause you and me to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters). cause there ??