簡易電子琴設(shè)計與實(shí)現(xiàn)_第1頁
簡易電子琴設(shè)計與實(shí)現(xiàn)_第2頁
簡易電子琴設(shè)計與實(shí)現(xiàn)_第3頁
簡易電子琴設(shè)計與實(shí)現(xiàn)_第4頁
簡易電子琴設(shè)計與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..簡易電子琴設(shè)計與實(shí)現(xiàn)一、概述1.1課題設(shè)計目的及其意義單片機(jī)〔單片微型計算機(jī)〕是大規(guī)模集成電路技術(shù)開展的產(chǎn)物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠等特點(diǎn)。單片機(jī)的應(yīng)用相當(dāng)廣泛,從平常的家用電器到航空航天系統(tǒng)和國防軍事、尖端武器都能找到它的身影。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。隨著社會的開展進(jìn)步,人們的生活水平也逐步提高,音樂已經(jīng)成為了我們生活中很重要的一局部,在工作和學(xué)習(xí)之余,欣賞音樂不僅使身心得到放松,同時也提高人們的精神品質(zhì)和個人素養(yǎng)。當(dāng)代,愛好音樂的年輕人越來越多,也有不少人自己練習(xí)彈奏樂器,作為業(yè)余愛好和一種放松的手段,鑒于一些樂器學(xué)習(xí)難度大需花費(fèi)太多精力,且其價格太過于高昂,使得一局部有這種想法的人不得不放棄這種想法,而電子琴又是一種新型的鍵盤樂器,它是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,價格相對廉價,能夠滿足一般愛好者的需求,因此,在現(xiàn)代音樂中扮演著重要的角色。故簡易電子琴的研制具有一定的社會意義。1.2課題設(shè)計的任務(wù)與主要容本文的主要容是用AT89C51單片機(jī)為核心控制元件,設(shè)計一個簡單的電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個按鍵和揚(yáng)聲器。定時器按設(shè)置的定時參數(shù)產(chǎn)生中斷,由于定時參數(shù)不同,就會發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出不同音調(diào)。先根據(jù)要求設(shè)計硬件電路和編寫相應(yīng)的程序,然后進(jìn)展仿真調(diào)試,最后細(xì)心焊接硬件電路圖,將程序烤入芯片中,最終到達(dá)設(shè)計目的。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比擬高等,具有一定的實(shí)用和參考價值。具體實(shí)現(xiàn)的功能:按下音符鍵可以發(fā)出相應(yīng)的音符。二、根本組成和原理2.1音樂相關(guān)知識在人類還沒有產(chǎn)生語言時,就已經(jīng)知道利用聲音的上下、強(qiáng)弱等來表達(dá)自己的思想和感情。聲帶、琴弦等物體振動時會發(fā)出聲波,聲波通過空氣傳播進(jìn)入人耳,人們就聽到了聲音。聲音有噪音和樂音之分振動有規(guī)律的聲音是樂音,音樂中所用的聲音主要是樂音。樂音聽起來有的高、有的低,這就叫做音高。音高是由發(fā)聲物體振動頻率的上下決定的,頻率高聲音就高,頻率低聲音就低。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同的頻率,這樣就可以利用不同的頻率組合,加以拍數(shù)對應(yīng)的延時,構(gòu)成音樂。如果單片機(jī)要自己播放音樂就必須考慮到節(jié)拍的設(shè)置。對于AT80C51而言要產(chǎn)生一定頻率的方波一般是先將某口線輸出高電平,延遲一段時間后再輸出低電平。通過改變延遲時間可以改變單片機(jī)的輸出頻率。單片機(jī)的延時主要有兩種方式,即軟件延時和使用定時/計數(shù)器延時。其中軟件延時不是很準(zhǔn)確,而電子琴電路由于每個音符的頻率值要求比擬嚴(yán)格,因此我們選用定時/計數(shù)器延時。由于本課程設(shè)計是由用戶通過鍵盤輸入彈奏樂曲的,所以節(jié)拍由用戶掌握,不由程序控制。因此,我們只需弄清楚音樂中的音符和對應(yīng)的頻率,利用單片機(jī)的定時/計數(shù)器來產(chǎn)生方波頻率信號即可。要產(chǎn)生相應(yīng)的音頻脈沖,只需要計算出某音頻的周期,再除以2。利用計數(shù)器計時半周期,計滿時使P2.0反向,然后重復(fù)計時再反向。本例中,單片機(jī)工作在12MHz時鐘,使用定時器/計數(shù)器T0,工作模式為1,改變計數(shù)初值TH0、TL0就可產(chǎn)生不同頻率的脈沖信號。例如低3MI音,頻率為330Hz,其周期T=1/f=1/330=3030us,計數(shù)值N=3030/2=1515,所以每計數(shù)1515次P2.0反向。計數(shù)初值T=65536-N=64021。C調(diào)的各音符頻率與計數(shù)值T的對照表如表1所示。表1C調(diào)各音符頻率與計數(shù)值T對照表音符頻率(HZ)簡譜碼(T值)音符頻率(HZ)簡譜碼(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463853#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI1967652832.2簡易電子琴根本原理及其框圖根本思想:簡易的電子琴系統(tǒng)主要是采用AT89C51單片機(jī),單片機(jī)工作于12MHZ的時鐘頻率,使用其定時/計數(shù)器T0,工作模式為1,設(shè)計4*4鍵盤矩陣,設(shè)置成16個音,可隨意彈奏想要表現(xiàn)的音樂,因為單片機(jī)產(chǎn)生的音頻脈沖沒有足夠的驅(qū)動能力,所以用三極管放大電路實(shí)現(xiàn)音頻的放大,保證揚(yáng)聲器能產(chǎn)生所要實(shí)現(xiàn)的音符聲音。2、硬件框圖:軟件設(shè)計流程圖:本設(shè)計采用AT89C51單片機(jī)作為核心處理器件,按下復(fù)位鍵,進(jìn)入初始化,調(diào)用鍵盤掃面子程序,獲得鍵值,查詢音階表,獲取定時初值,向喇叭輸入相應(yīng)頻率的脈沖驅(qū)動,發(fā)出相應(yīng)的音調(diào),假設(shè)按鍵沒有釋放,那么一直發(fā)聲;假設(shè)按鍵松開,那么停頓發(fā)聲。當(dāng)讀到完畢符時,停頓播放音樂。具體軟件流程圖如下:1〕中斷效勞子程序流程圖:2〕主程序流程圖:三、系統(tǒng)的硬件構(gòu)造硬件電路的設(shè)計主要包括芯片89C51,、4*4鍵盤電路、振蕩電路、復(fù)位電路及音頻電路組成。簡易電子琴硬件電路圖:3.1單片機(jī)89C51的簡介AT89C51是一個低功耗,高性能CMOS8位單片機(jī),片含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳構(gòu)造,芯片集成了通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點(diǎn):40個引腳,4kBytesFlash片程序存儲器,128bytes的隨機(jī)存取數(shù)據(jù)存儲器〔RAM〕,32個外部雙向輸入/輸出〔I/O〕口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗〔WDT〕電路,片時鐘振蕩器。此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停頓芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。該系列單片機(jī)引腳與封裝如下列圖所示:主要引腳功能:RST〔9〕:復(fù)位輸入。當(dāng)振蕩器復(fù)位時,要保持RST引腳2個機(jī)器周期的高電平時間;XTAL1〔19〕:反向振蕩器放大器的輸入及部時鐘工作電路的輸入;XTAL2〔18〕:來自反向振蕩器的輸出;P1口〔1-8〕:P1口是從部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個TTL門電流;/:當(dāng)保持低電平時,單片機(jī)只訪問外部程序存儲器。為高電平時,單片機(jī)只訪問部程序存儲器。3.2鍵盤電路鍵盤是最常用的單片機(jī)輸入設(shè)備,大致可以分為獨(dú)立連接式鍵盤和矩陣式。獨(dú)立連接式鍵盤是最簡單的鍵盤電路,每個鍵獨(dú)立接入一根數(shù)據(jù)線。這種鍵盤構(gòu)造簡單,使用方便,但是占用的I/O口線較多。矩陣式鍵盤由行線和列線組成,按鍵位于行列的穿插點(diǎn)上,行列式鍵盤可節(jié)省I/O口,適合按鍵數(shù)較多的場合。所以本設(shè)計的4*4鍵盤采用矩陣式鍵盤。3.3振蕩電路單片機(jī)的時鐘信號用來提供單片機(jī)各種位操作的時間基準(zhǔn),時鐘信號通常有兩種電路形式得到:部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器〔簡稱晶振〕或瓷諧振器,就構(gòu)成了部震蕩方式。由于單片機(jī)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6MHz、12MHz或者24MHz。本設(shè)計中采用的是12MHz。電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般5~30pF。部振蕩方式所得的時鐘信號比擬穩(wěn)定,電路中使用較多。振蕩方式如下列圖:3.4復(fù)位電路復(fù)位操作完成單片機(jī)電路的初始化,是單片機(jī)從一種確定的狀態(tài)開場運(yùn)行。當(dāng)單片機(jī)的復(fù)位引腳RET出現(xiàn)5ms以上的高電平時,單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序。因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。根據(jù)應(yīng)用要求,復(fù)位操作通常有2種根本形式:上電復(fù)位、開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實(shí)現(xiàn)復(fù)位操作。開關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。上電后,由于電容要充電,是RST持續(xù)一段時間高電平時間。當(dāng)單片機(jī)已經(jīng)在運(yùn)行之中時,按下復(fù)位鍵也能使RST持續(xù)一段時間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。通常選擇C=10~30uF,R=10~1k?常用的復(fù)位電路如下列圖所示:在單片機(jī)啟動后,電容C兩端的電壓持續(xù)充電為5V,這是時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時候,開關(guān)導(dǎo)通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開場釋放之前充的電量。隨著時間的推移,電容的電壓從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動復(fù)位。3.5音頻放大電路使用PNP管來放大,其中發(fā)射極接5V電源,集電極接喇叭,電路中的電容是用來隔離直流電用的。PNP管放大原理:當(dāng)PNP管的VC<VB<VE時,使得集電結(jié)反偏,發(fā)射結(jié)正偏時,管子的發(fā)射極電流流入管子,基極電流和集電極電流流出管子,且集電極電流跟基極電流之間成β關(guān)系,三極電流滿足IE=IB+IC=IB(1+β·IB)。即,基極電流可以控制集電極電流,這種控制作用就稱為管子的放大作用。本課程設(shè)計的音頻放大電路圖〔三極管型號為9015〕:四、系統(tǒng)軟件的設(shè)計4.1系統(tǒng)的軟件主程序:#include<reg51.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharsbitP20=P2^0;//P2.0外接揚(yáng)聲器uintFTemp;unsignedintcodetab[]={//定時半周期的初始值64021,64103,64260,64400,//低音345664524,64580,64684,64777,//低音7,中音12364820,64898,64968,65030,//中音456765058,65110,65157,65178};//高音1234/**************************************************************函數(shù)功能:用掃描法讀P1外接4×4鍵盤**************************************************************/ucharKeyscan(void){uchari,j,temp,Buffer[4]={0xfe,0xfd,0xfb,0xf7};for(j=0;j<4;j++)//循環(huán)四次,掃描四行{P1=Buffer[j];//在低四位分別輸出一個低電平_nop_();temp=0x80;//方案先讀出P1.7位for(i=0;i<4;i++)//循環(huán)四次,檢查四列{if(!(P1&temp))//從高四位,截取1位{return(i+j*4);//返回取得的按鍵值}temp>>=1;//換右邊一位}}return16;//沒有鍵按下就返回16}主函數(shù)***************************************************************/voidMain(void){ucharKey_Value=16,Key_Temp1,Key_Temp2;//讀出的鍵值TMOD=0x01;//T0定時方式1ET0=1;//允許T0中斷EX0=1;//允許INT0中斷EA=1;//開總中斷while(1){TR0=0;//T0工作停,暫不發(fā)音Key_Temp1=Keyscan();//第一次讀入按鍵if(Key_Temp1!=16){//有鍵按下Key_Temp2=Keyscan();//再讀一次if(Key_Temp1==Key_Temp2)//兩次相等{Key_Value=Key_Temp1;//就確認(rèn)下來FTemp=tab[Key_Value];//根據(jù)鍵值,取出定時半周期的初始值TR0=1;//啟動定時器T0,發(fā)音while(Keyscan()<16);//等待釋放P20=1;//停頓發(fā)音}}}}//==============================================================voidT0_INT(void)interrupt1{TL0=FTemp;//載入定時半周期的初始值TH0=FTemp>>8;P20=~P20;//發(fā)音}4.2系統(tǒng)的軟件的調(diào)試仿真硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機(jī)試運(yùn)行。這里我們使用Proteus軟件進(jìn)

溫馨提示

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

評論

0/150

提交評論