




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 屆電子設(shè)計(jì)大賽論文單片機(jī)音樂(lè)發(fā)生器組長(zhǎng): 組員: - 25 -目 錄1、系統(tǒng)方案- 2 -1.1、方案比較與選擇- 2 -1.1.1、單片機(jī)選擇與論證- 2 -1.1.2、功放選擇與論證- 2 -1.1.3、顯示器件選擇與論證- 2 -1.1.4、鍵盤(pán)形式選擇與論證- 3 -1.1.5、材料選擇與論證- 3 -2、理論分析與計(jì)算- 3 -2.1、聲音播放的原理- 3 -2.1.1、普通聲音產(chǎn)生原理. - 3 -2.1.2、音樂(lè)產(chǎn)生原理.- 4 -2.2、音符節(jié)拍處理- 5 -3、電路與程序設(shè)計(jì)- 6 -3.1、電路的設(shè)計(jì)- 6 -3.1.1、總體框圖設(shè)計(jì)- 6 -3.1.2、時(shí)鐘電路設(shè)計(jì)-
2、 6 -3.1.3、復(fù)位電路設(shè)計(jì)- 7 -3.1.4、按鍵電路設(shè)計(jì)- 7 -3.1.5、顯示電路設(shè)計(jì)- 8 -3.1.6、揚(yáng)聲器電路設(shè)計(jì)- 9 -3.2、程序設(shè)計(jì).- 10 -3.2.1、系統(tǒng)整體流程圖- 10 -3.2.2、鍵盤(pán)子程序流程圖- 10 -3.2.3、液晶顯示子程序流程圖- 11 -4、測(cè)試方案與測(cè)試結(jié)果- 12 -4.1、測(cè)試方案- 12 -4.2、測(cè)試結(jié)果- 12 -4.3、測(cè)試分析- 13 -附錄- 13 -附錄1:電路原理圖- 13 -附錄2:部分源程序- 14 -1、系統(tǒng)方案1.1、方案比較與選擇1.1.1、單片機(jī)選擇與論證方案一:8051單片機(jī)。8051內(nèi)部包含一個(gè)8
3、位CPU,128BRAM,4KBROM,21個(gè)特殊功能寄存器,4個(gè)8位并行I/O口,一個(gè)全雙工串行口,2個(gè)16位定時(shí)器、計(jì)數(shù)器,5個(gè)中斷源。方案二:SST單片機(jī)。SST單片機(jī)省去了開(kāi)發(fā)用的編程器和仿真器。省去了外部EEPROM、電壓監(jiān)控芯片、上電復(fù)位電路和5個(gè)UART的擴(kuò)展芯片。它自帶在線(xiàn)下載和在線(xiàn)仿真功能,帶有5路PCA模塊(主成分分析),PCA功能比普通單片機(jī)有更強(qiáng)的計(jì)時(shí)性。利用PCA的脈沖寬度調(diào)制(PWM)模式可產(chǎn)生一個(gè)8位PWM。方案三:AT89C52單片機(jī)。AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS位單片機(jī),片內(nèi)含4k字節(jié)的可反復(fù)擦寫(xiě)1000次的只讀程序存儲(chǔ)器(P
4、EROM)和128字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元?;趯?duì)功能齊全性的考慮,我們采用方案三。1.1.2、功放選擇與論證方案一:LM386。LM386是一種音頻集成功放,具有自身功耗低、更新內(nèi)鏈增益可調(diào)整、電源電壓范圍大和總諧波失真小等優(yōu)點(diǎn)的功率放大器。方案二:NPN型三極管。集電極電流受基極電流的控制,并且基極電流很小的變化,會(huì)引起集電極電流很大的變化,且變化滿(mǎn)足一定的比例關(guān)系。出于對(duì)市場(chǎng)供應(yīng)情況和價(jià)格方面的考慮,我們采用方案一。1.1.3、顯示器件選擇與論證方案一:數(shù)碼管。數(shù)碼管顯示能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與CMOS、IT
5、L電路兼容。發(fā)光響應(yīng)時(shí)間極短(<01s),高頻特性好,單色性好,亮度高。體積小,重量輕,抗沖擊性能好。壽命長(zhǎng),使用壽命在10萬(wàn)小時(shí)以上,甚至可達(dá)100萬(wàn)小時(shí)。但顯示功能有限,只能顯示數(shù)字和個(gè)別字母。方案二:液晶顯示器(LCD)。液晶顯示器每一個(gè)點(diǎn)在收到信號(hào)后就一直保持那種色彩和亮度,恒定發(fā)光,顯示質(zhì)量高。其接口都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。功耗主要消耗在其內(nèi)部的電極和驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要少得多。方案三:陰極射線(xiàn)管顯示器(CRT)。此種顯示器圖像色彩豐富,還原性好,有豐富的幾何失真調(diào)整能力。但不能長(zhǎng)期暴露在磁場(chǎng)下,會(huì)磁化或損壞,不能讓強(qiáng)光直射,
6、會(huì)降低發(fā)光效率,不能在高溫下使用,工作性能和使用壽命會(huì)大打折扣。出于價(jià)格和電路復(fù)雜程度的考慮,在鍵控音符輸入時(shí)采用方案一,在歌曲信息的顯示時(shí)采用方案三。1.1.4、鍵盤(pán)形式選擇與論證方案一:獨(dú)立式按鍵。獨(dú)立按鍵的輸入線(xiàn)較多,結(jié)構(gòu)復(fù)雜,一般適用于按鍵較少,操作速度較高的場(chǎng)合。方案二:行列式鍵盤(pán)。行列式鍵盤(pán)由行和列線(xiàn)交叉組成,一般適用于按鍵較多的場(chǎng)合。使用4×4矩形鍵盤(pán),這樣鍵盤(pán)模塊僅使用8根線(xiàn)與處理器相連,節(jié)省了系統(tǒng)資源。由于我們功能比較少,矩形鍵盤(pán)占用電路板位置較大且電路復(fù)雜,因此選擇方案一。1.1.5、材料選擇與論證方案一:玻璃板。玻璃板光滑、透明,但是質(zhì)量較重,易碎,并且不易加工
7、。方案二:塑料板。塑料板質(zhì)量輕,不易碎,但是也不好加工,且不環(huán)保。方案三:木板。木板質(zhì)量比塑料板重,但比玻璃板輕,易于加工,可塑性強(qiáng)。基于成本及加工復(fù)雜程度的考率,采用方案二。2、理論分析與計(jì)算2.1、聲音播放的原理2.1.1普通聲音產(chǎn)生原理人耳能聽(tīng)到的聲音頻率范圍是幾十到幾千赫茲之間,單片機(jī)的I/O輸出引腳上能輸出高電平或低電平。設(shè)計(jì)一個(gè)程序,令單片機(jī)的某一個(gè)引腳按照一個(gè)的時(shí)間間隔輸出一些符合規(guī)律的高低電平信號(hào),那么就能得到一系列的矩形波。入伏哦這種時(shí)間間隔反映的頻率在人耳所能聽(tīng)到的頻率范圍內(nèi),那么就能輸出一定的聲音信息。 圖1要輸出的穩(wěn)定的矩形波,可以利用延時(shí)程序來(lái)控制輸出高電平或低電平的
8、持續(xù)時(shí)間,當(dāng)持續(xù)時(shí)間到時(shí)就令該信號(hào)反向,從而實(shí)現(xiàn)電平的轉(zhuǎn)換,如圖1所示。圖中,從單片機(jī)引腳上輸出的信號(hào),高電平和低電平保持的時(shí)間分別為t1和t2,信號(hào)的基本輸出周期為T(mén),即頻率f的倒數(shù)。在程序編寫(xiě)時(shí),可令t1和t2相等。這樣,當(dāng)要產(chǎn)生某一頻率的音頻信號(hào)時(shí),只要先計(jì)算得到這個(gè)周期時(shí)間的一半,然后利用延時(shí)程序來(lái)控制單片機(jī)的輸出引腳在該時(shí)間內(nèi)輸出穩(wěn)定的高電平或低電平。該時(shí)間結(jié)束時(shí),又利用程序使單片機(jī)的輸出引腳的輸出信號(hào)電平發(fā)生反相。如此循環(huán)執(zhí)行后,就能得到設(shè)計(jì)要求的音頻信號(hào)了。2.1.2音樂(lè)產(chǎn)生原理一首樂(lè)曲是由多個(gè)音符構(gòu)成的。每一個(gè)音符都對(duì)應(yīng)著一個(gè)確定的頻率。另外,每一個(gè)音符會(huì)根據(jù)樂(lè)曲的要求設(shè)定一個(gè)
9、確定的節(jié)拍音符頻率的處理方法如下:程序設(shè)計(jì)如果利用定時(shí)器計(jì)數(shù)的方式來(lái)產(chǎn)生延時(shí)的效果,就可以將歌曲中每一個(gè)音符所對(duì)應(yīng)的頻率換算成相對(duì)應(yīng)的技術(shù)初值。然后,將這首音樂(lè)所有音符的計(jì)數(shù)初值編成一個(gè)表,并把每一個(gè)音符的計(jì)數(shù)初值與一個(gè)確定的數(shù)字碼來(lái)聯(lián)系。如表1所示為利用定時(shí)器T0工作于方式1時(shí),一些簡(jiǎn)譜音符所對(duì)應(yīng)的頻率,計(jì)數(shù)初值和簡(jiǎn)譜碼。音符頻率(Hz)簡(jiǎn)譜碼(T)音符頻率(Hz)簡(jiǎn)譜碼(T)低1D026263628#4FA#74064860#1D0#27763731中5SO74864898低2RE29463835#5S0#83164934#2RE#31163928中6LA88064968低3M330640
10、21#6LA#93264994低4FA34964103中7S198865030#4FA#37064185高1DO104665058低5SO39264260#DO#110965085#5S0#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3M131865157低7S149464524高4FA139765178中1DO52364580#4FA#148065198#1D0#55464633高5SO156865217中2RE57864684#5SO#166165235#2RE#62264723高6LA176065252中3M6
11、5964777#6LA#186565268中4FA69864820高7SI196765283 表1例如,要計(jì)算中音DO、中音RE、中音MI的計(jì)數(shù)初值中音DO: TC=216 106/(523*2)=65536-956=65480=0FC44H中音RE: TC=216 - 106/(587*2)=65536-888=64684=0FCACH中音MI: TC=216 - 106/(659*2)=65536-759=64777=0FD09H2.2、音符節(jié)拍的處理一首樂(lè)曲的每一個(gè)音符除了頻率之外,還有不同的節(jié)拍,也就是這個(gè)音符發(fā)音的持續(xù)時(shí)間。如表2所示為節(jié)拍碼與實(shí)際碼之間的對(duì)照表。節(jié)拍碼實(shí)際節(jié)拍節(jié)拍碼
12、實(shí)際節(jié)拍11/4拍51又1/4拍22/4拍61又1/2拍33/4拍82拍41拍A2又1/2拍 表2如果1拍為0.4s,1/4拍是0.1s,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,那么1拍應(yīng)為4DELAY。如表3所示為1/4和1/8拍的時(shí)間設(shè)定。1/4拍的時(shí)間設(shè)定1/8拍的時(shí)間設(shè)定曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms 表31/4拍的延遲時(shí)間=187ms延時(shí)程序?yàn)椋篋ELAY: MOV R7,#02DELA1:MOV R4, #187DELA1:MOV R3,#248DJNZ
13、 R3, $DJNZ R4, DELA2DJNZ R7, DELA13、電路與程序設(shè)計(jì)3.1、電路的設(shè)計(jì)3.1.1、總體框圖設(shè)計(jì)系統(tǒng)總體框圖如圖2所示。 單 片 機(jī)時(shí)鐘與復(fù)位鍵盤(pán)輸入拓展RAM拓展ROM音頻發(fā)生音頻放大大揚(yáng)聲器LCD顯示 圖23.1.2、時(shí)鐘電路設(shè)計(jì)AT89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為芯片引腳XTAL1,輸出端引腳為XTAL2。這兩個(gè)引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,如圖3所示為AT89C52的內(nèi)部時(shí)鐘方式的電路。 圖3圖中電容C1和C2的值選擇為30pF。該電容的大小會(huì)影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶
14、體振蕩頻率的范圍通常是在1.212MHz。晶體的頻率越高,系統(tǒng)的時(shí)鐘頻率越高,單片機(jī)的運(yùn)行速度也就越快。但同時(shí),運(yùn)行速度快對(duì)存儲(chǔ)器的速度要求也就越高,對(duì)印制電路板的工藝要求也就越高,即要求線(xiàn)間的寄生電容要小。晶體和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作。3.1.3、復(fù)位電路設(shè)計(jì)AT89C52的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的,在本次設(shè)計(jì)中,我們采用了按鍵電平復(fù)位電路。按鍵手動(dòng)電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源Vcc接通來(lái)實(shí)現(xiàn),具體電路如圖4所示。 圖43.1.4、按鍵電路設(shè)計(jì)此電路實(shí)現(xiàn)的功能是每當(dāng)有按鍵按下時(shí),通過(guò)數(shù)碼管顯示相應(yīng)數(shù)字。每個(gè)按鍵代表不同的
15、音符,通過(guò)程序控制揚(yáng)聲器發(fā)出不同音符。如圖5所示為獨(dú)立式按鍵的具體電路。 圖53.1.5、顯示電路3.1.5.1 LED數(shù)碼管顯示電路在本次設(shè)計(jì)中我們采用的是7管LED數(shù)碼管,它由7個(gè)發(fā)光二極管組成。這七個(gè)發(fā)光二極管a-g呈“日”字形排列,當(dāng)某一發(fā)光二極管導(dǎo)通時(shí),相應(yīng)地點(diǎn)亮某一點(diǎn)或某一段筆畫(huà),通過(guò)發(fā)光二極管不停地亮暗組合形成不同的數(shù)字、字母等符號(hào)。由于采用的是共陰極接法,所以在單片機(jī)輸出口和LED輸入口相連時(shí)沒(méi)有外接電阻。如圖6所示為數(shù)碼管實(shí)際連接電路。 圖63.1.5.2 LCD液晶顯示器電路在本次設(shè)計(jì)中,我們采用的是FG12864E LCD,它是一種圖形點(diǎn)陣液晶顯示器。由于LCD的電源供電
16、情況有別于普通的+5V電源,其驅(qū)動(dòng)電源情況必須通過(guò)一個(gè)供電電路來(lái)提供,如圖7所示。 圖7 圖8如圖8所示為L(zhǎng)CD具體連接電路。顯示數(shù)據(jù)通過(guò)單片機(jī)的P0引腳來(lái)傳送;左半屏與右半屏顯示的選擇,引腳分別連接LCD的CS1和CS2。3.1.6、揚(yáng)聲器電路 圖9如圖9所示為揚(yáng)聲器電路實(shí)際連接圖,將單片機(jī)與喇叭通過(guò)一個(gè)LM386連接,揚(yáng)聲器的工作原理是當(dāng)兩輸入端有電平差時(shí),揚(yáng)聲器發(fā)聲。所以將喇叭的一個(gè)輸出端接地,另一端與集成運(yùn)放的輸出相連。突出采用的連接方式,可以通過(guò)改變滑動(dòng)變阻器的大小來(lái)改變接入運(yùn)放的電壓,并實(shí)現(xiàn)控制音量大小的調(diào)節(jié)。3.2、程序的設(shè)計(jì)3.2.1、系統(tǒng)整體流程圖 圖10如圖10所示為系統(tǒng)整
17、體流程圖。將歌曲的節(jié)拍和頻率儲(chǔ)存到數(shù)據(jù)表中,播放歌曲時(shí)利用查表函數(shù)為計(jì)數(shù)器賦初值,產(chǎn)生周期不等的方波,即可播放音樂(lè)。3.2.3、鍵盤(pán)子程序流程圖如圖11所示為鍵盤(pán)子程序流程圖。圖11 3.2.2、液晶顯示子程序流程圖如圖12所示為液晶顯示子程序流程圖。圖124、測(cè)試方案與測(cè)試結(jié)果4.1、測(cè)試方案基本要求(1):能播放標(biāo)準(zhǔn)C調(diào)的Do、Re、Mi、Fa、So、La、Si、Do作為起始測(cè)試音?;疽螅?):測(cè)試音結(jié)束后等待2秒,播放一首自選曲目,時(shí)間>30秒。發(fā)揮部分(1):能播放指定曲目。發(fā)揮部分(2):具有鍵盤(pán),可現(xiàn)場(chǎng)編曲并播放。發(fā)揮部分(3):具有液晶顯示功能,可顯示簡(jiǎn)譜。發(fā)揮部分(4
18、):可將簡(jiǎn)譜轉(zhuǎn)換成顯示五線(xiàn)譜。4.2、測(cè)試結(jié)果4.2.1、仿真測(cè)試通過(guò)Keil和Proteus仿真,在播放Do,Re,Mi,Fa,So,La,Xi,Do等待兩秒后,可以聽(tīng)到自選歌曲和指定曲目,LCD顯示歌曲信息。按下控制鍵后,進(jìn)入編曲模式,7個(gè)獨(dú)立鍵盤(pán)分別代表七個(gè)音符,可現(xiàn)場(chǎng)編曲。同時(shí),數(shù)碼管顯示每個(gè)按鍵代表的數(shù)字。如圖13所示,為數(shù)碼管仿真結(jié)果。 圖134.2.2、成品測(cè)試 通過(guò)對(duì)成品進(jìn)行調(diào)試實(shí)驗(yàn),所得到的結(jié)果與仿真結(jié)果相同。4.3、測(cè)試分析由測(cè)試結(jié)果可以看出,成品滿(mǎn)足基本要求和發(fā)揮部分的部分要求。附錄附錄1:電路原理圖附錄2:部分源程序#include<reg51.h>#inc
19、lude<absacc.h> #defineuchar unsigned char#define uint unsigned int #define LCDPORT P0#define E P31#define RW P33#define DI P34#define CS1 P36#define CS2 P35#define BUSYSTATUS P07#define LCDSTARTROW 0xc0#define LCDPAGE 0xB8#define LCDLINE 0x40void Run(void);/主程序void KeyScan(void);/ 按鍵void PlayK
20、ey(void); /按鍵程序void delay_1ms(uchar i);/延時(shí)1msvoid PlayMusic1(void); / 播放12345671void PlayMusic(void); /播放同一首歌void PlayMusic2(void); /播放規(guī)定曲目1void DisPlay(void);/ 數(shù)碼管/void lcd_init(void); /lcd初始化void init_com(void);void sound_delay(uchar n);void timer0(void);uchar code hz1;/*一系列變量*/sbit Beep=P27;/sbit
21、 busy=P01;ucharTh0,Tl0;ucharflag=0;/模式,0表示音樂(lè),1表示按鍵ucharkey=0;/按鍵代號(hào)uchara;uchargaodi=0;/uchar data count=0;/uint counter=0;/12345671的頻率uchar code SONG_TONE=115,102,91,86,77,68,61,0;/12345671的節(jié)拍uchar code SONG_LONG=17,18,20,21,23,25,28,0; /*比賽規(guī)定曲目*/魂斗羅 赤色要塞uchar code SONG_TONE2=34,38,45,51,45,51,57,61
22、, 57,61,68,77,68,102,91,77, 68,68,45,51,45,43,38, 68,68,45,51,45,43,57, 68,68,45,51,45,43,38, 68,68,45,51,45,43,57,0;/魂斗羅的節(jié)拍uchar code SONG_LONG2=13,12,10,9,10,9,8,28, 8,7,6,6,6,5,5,6, 35,13,10,9,19,11,85, 35,13,10,9,19,11,68, 35,13,10,9,19,11,85, 35,13,10,9,19,11,68,0; /*同一首歌的源代碼*/uchar codeMusic=0
23、Xef,0Xef, 0X88,0X14,0X24,0X36,0X42,0X34,0X14,0X28,0X14,0X94,0X1f,0X88,0X14,0X24,0X34,0X32,0X42,0X54,0X14,0X46,0X32,0X54,0X22,0X32,0X32,0X22,0X2C,0X38,0X54,0X74,0X76,0X62,0X68,0X54,0X52,0X62,0X74,0X62,0X52,0X3f,0X46,0X42,0X54,0X64,0X54,0X42,0X32,0X28,0X0a4,0Xa2,0X92,0X84,0X94,0X1f,0Xb8,0X68,0X46,0X52
24、,0X68,0X74,0X72,0X72,0X74,0X62,0X52,0X3f,0Xb8,0X68,0X46,0X52,0X68,0X64,0X62,0X62,0X64,0X42,0X32,0X2f,0X58,0X14,0X24,0X36,0X42,0X34,0X12,0X12,0X26,0X22,0X24,0X22,0X12,0X94,0X9c,0Xa8,0Xa6,0X92,0X84,0X64,0X54,0X22,0X22,0X46,0X42,0X44,0X32,0X22,0X5f,0Xef,0Xef,0xFF,/按鍵音符ucharcodeKeyCode =0XFF,0XFF,0xF8,0
25、x8B,0xF9,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B,/低音0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0xC7,0xFE,0x05,/中音0xFE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02,/高音;/功能程序void Run(void)if(flag=0)PlayMusic1(); /12345671PlayMusic(); /同一首歌PlayMusic2();/魂斗
26、羅elsePlayKey();void KeyScan(void)/按按鍵1-7,數(shù)碼管的顯示if(P1=0X7f)/如果P1.7=0delay_1ms(5);if(P1=0X7f)gaodi+;if(gaodi>2)gaodi=0;a=gaodi;else if(P1=0XFE)delay_1ms(12);if(P1=0XFE)key=1;a=key;else if(P1=0XFD)delay_1ms(12);if(P1=0XFD)key=2;a=key;else if(P1=0XFB)delay_1ms(12);if(P1=0XFB)key=3;a=key;else if(P1=0X
27、F7)delay_1ms(12);if(P1=0XF7)key=4;a=key;else if(P1=0XEF)delay_1ms(12);if(P1=0XEF)key=5;a=key; else if(P1=0XDF)delay_1ms(12);if(P1=0XDF)key=6;a=key;else if(P1=0XBF)delay_1ms(12);if(P1=0XBF)key=7;a=key;elsereturn;void PlayKey(void)if(key=0)return;elseTh0=KeyCodegaodi*14+key*2;Tl0=KeyCodegaodi*14+key*2
28、+1;TR0=1;delay_1ms(187);TR0=0;key=0;time0() interrupt 1 /定時(shí)器0中斷TH0=Th0;TL0=Tl0;Beep=Beep;void interrupt0() interrupt 0 /外部終端0flag=flag;if(flag=0)a=8;P2=0;/延時(shí)1msvoid delay_1ms(uchar i)uchar j,k;for(j=0;j<i;j+)for(k=0;k<148;k+); /*播放音樂(lè)主程序*/12345671void PlayMusic1(void) uint i=0; uint j,k; while(
29、SONG_LONGi!=0|SONG_TONEi!=0) /播放各個(gè)音符,SONG_LONG 為拍子長(zhǎng)度 for(j=0;j<SONG_LONGi*30;j+) Beep=Beep; /SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率 for(k=0;k<SONG_TONEi/3;k+); delay_1ms(10); i+; TR0=0;if(flag!=0)break; /同一首歌的實(shí)現(xiàn)部分void PlayMusic(void)uchar yinfu,jiepai;uchar i,j;for(i=0;Musici!=0XFF;i+)yinfu=(Musici>>4)
30、;jiepai=(Musici&0X0F);if(yinfu=0)continue;Th0=MusicCode(yinfu-1)*2;Tl0=MusicCode(yinfu-1)*2+1;TR0=1;for(j=jiepai;j>0;-j)delay_1ms(150);/調(diào)歌曲快慢:187(越大越慢) TR0=0;if(flag!=0)break;void PlayMusic2(void) uint i=0; uint j,k; while(SONG_LONG2i!=0|SONG_TONE2i!=0) /播放各個(gè)音符,SONG_LONG 為拍子長(zhǎng)度 for(j=0;j<SO
31、NG_LONG2i*30;j+) Beep=Beep; /SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率 for(k=0;k<SONG_TONE2i/3;k+); delay_1ms(10); i+; TR0=0;if(flag!=0)break; /*數(shù)碼管顯示模塊*/ void Display(void)/顯示switch(a)case 0: P2=0X3F;break;case 1:P2=0X06;break;case 2:P2=0X5B;break;case 3:P2=0X4F;break;case 4:P2=0X66;break;case 5:P2=0X6D;break;cas
32、e 6:P2=0X7D;break;case 7:P2=0X07;break;default: P2=0X00;break;void delay (unsigned int n)unsigned int i ; for( ; n>0 ;n-)for ( i=500; i>0 ; i-);bit bCheckBusy () LCDPORT=0xff; RW = 1; DI=0; E=1; E=0; return BUSYSTATUS ;void vWriteData (unsigned char ucData) while(bCheckBusy() ; LCDPORT=0xff; R
33、W=0; DI=1; LCDPORT=ucData; E=1; E=0;void vWriteCMD(unsigned char ucCMD) while ( bCheckBusy() ); LCDPORT=0xff; RW=0; DI=0; LCDPORT=ucCMD; E=1; E=0; void vLCDInitialize()CS1=1;CS2=1;vWriteCMD (0x38) ;vWriteCMD (0x0f) ;vWriteCMD (0x01) ;vWriteCMD (0x06) ;vWriteCMD (LCDSTARTROW); Void vShowCustomRow ( unsigned char ucPage ,unsigned char ucLine ,unsigned char ucWidth ,unsigned char *ucaRow) unsigned char ucCount ; if(ucLine<64) CS1=1; CS2=0; vWriteCMD(LCDPAGE+ucPage) ; vWriteCMD(LCDLINE+ucLine) ; if (ucLine + ucWidth)<64) for (ucCount =0 ; ucCount<ucWidth ;ucC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蛋品加工企業(yè)信息化管理考核試卷
- 輪胎行業(yè)知識(shí)產(chǎn)權(quán)應(yīng)用與保護(hù)體系建設(shè)成效考核試卷
- 糕點(diǎn)烘焙中的色彩學(xué)與美學(xué)應(yīng)用考核試卷
- 寶寶月子護(hù)理指導(dǎo)
- 腫瘤破潰傷口處理
- 婚后網(wǎng)絡(luò)文學(xué)改編收益分配協(xié)議
- 離婚訴訟電子游戲賬號(hào)分割及財(cái)產(chǎn)處理協(xié)議
- 求職者信息真實(shí)披露及就業(yè)保障服務(wù)協(xié)議
- 醫(yī)療設(shè)備廠(chǎng)商合規(guī)性審查及質(zhì)量認(rèn)證合同
- 文化產(chǎn)業(yè)投資風(fēng)控補(bǔ)充協(xié)議
- 公共組織績(jī)效評(píng)估-形考任務(wù)一(占10%)-國(guó)開(kāi)(ZJ)-參考資料
- 《慢性阻塞性肺疾病》課件
- 家校共育 靜待花開(kāi) 課件高二下學(xué)期學(xué)考動(dòng)員家長(zhǎng)會(huì)
- 2025陜西氫能產(chǎn)業(yè)發(fā)展有限公司所屬單位招聘(101人)筆試參考題庫(kù)附帶答案詳解
- 2025安全生產(chǎn)月安全生產(chǎn)知識(shí)競(jìng)賽題庫(kù)及答案(共1418題)
- 2024年內(nèi)蒙古師范大學(xué)招聘事業(yè)編制人員考試真題
- 切割鋼絲企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 企業(yè)融資的多樣選擇試題及答案
- 郵輪概論考試題及答案
- 2024年春八年級(jí)生物下冊(cè) 25.1 發(fā)酵技術(shù)教學(xué)設(shè)計(jì) (新版)北師大版
- 課題申報(bào)書(shū):特殊兒童隨班就讀支持保障機(jī)制研究
評(píng)論
0/150
提交評(píng)論