簡易電子琴課程設(shè)計(jì)_第1頁
簡易電子琴課程設(shè)計(jì)_第2頁
簡易電子琴課程設(shè)計(jì)_第3頁
簡易電子琴課程設(shè)計(jì)_第4頁
簡易電子琴課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-18-微型計(jì)算機(jī)課程設(shè)計(jì)PAGE18-課程設(shè)計(jì)課程名稱微型計(jì)算機(jī)課程設(shè)計(jì)題目名稱簡易電子琴課程設(shè)計(jì)報(bào)告專業(yè)班級11電子信息科學(xué)與技術(shù)3班學(xué)生姓名吳俊學(xué)號51102023001指導(dǎo)教師謝春祥目錄第1節(jié)引言………………………41.1單片機(jī)發(fā)音概述…………41.1.1音調(diào)…………………41.1.2 節(jié)拍……………………71.1.3單片機(jī)演奏音樂的方法………………81.2本次設(shè)計(jì)的任務(wù)和主要內(nèi)容………………8第2節(jié)系統(tǒng)的主要硬件電路的設(shè)計(jì)………………9單片機(jī)控制系統(tǒng)原理……………………9芯片的選用…………9簡易電子琴的組成框圖……………10單片機(jī)主機(jī)系統(tǒng)電路……………………11時(shí)鐘頻率……………11晶振電路……………11鍵盤掃描……………12發(fā)音電路……………14供電及復(fù)位電路……………………14系統(tǒng)的軟件設(shè)計(jì)…………16程序…………………16結(jié)束語…………………28參考文獻(xiàn)…………39基于AT89C51單片機(jī)的簡易電子琴引言隨著生活水平的提高,在放松自己的同時(shí)又能提高各個(gè)方面的能力。學(xué)習(xí)和欣賞音樂可以在使人們得到放松的同時(shí),提高人們的精神品質(zhì)和個(gè)人素養(yǎng)。當(dāng)代,愛好音樂的年輕人越來越多,有不少人自己練習(xí)彈奏樂器,作為業(yè)余愛好和一種放松的手段,鑒于一些樂器學(xué)習(xí)難度大需要太多的學(xué)習(xí)時(shí)間,且其價(jià)格又太過于高昂,使得一部分有這種想法的人不得不放棄這種想法。而一些簡易的電子樂器價(jià)格相對便宜,學(xué)習(xí)上手快,價(jià)格相對便宜,一般人容易負(fù)擔(dān)的起,能夠滿足一般愛好者的需求。故簡易電子樂器的研制具有一定的社會意義。本次課程設(shè)計(jì)主要研究基于AT89C52單片機(jī)的16鍵簡易電子琴的設(shè)計(jì)。單片機(jī)發(fā)音概述由于單片機(jī)的強(qiáng)大功能,除了在測試控制領(lǐng)域中有著廣泛的應(yīng)用外,還有一些而有趣的應(yīng)用。比如,使用單片機(jī)可以驅(qū)動蜂鳴器或者揚(yáng)聲器發(fā)出聲音,還可以控制其發(fā)出不同的聲調(diào),從而連接起來構(gòu)成一個(gè)曲子。目前,市場上有很多種音樂模塊或者音樂芯片,可以直接產(chǎn)生各種曲子。但是,這種模塊價(jià)格比較昂貴,電路結(jié)構(gòu)比較復(fù)雜。如果系統(tǒng)中僅需要產(chǎn)生簡單的音符或者簡短的曲子,可以使用單片機(jī)配合簡單的揚(yáng)聲器而產(chǎn)生需要的音樂效果。一般說來,單片機(jī)不像其他專業(yè)樂器那樣能奏出多種音色的聲音,即不包含相應(yīng)幅度的諧波頻率。單片機(jī)演奏的音樂基本都是單音頻率。因此單片機(jī)演奏音樂比較簡單,只需要清楚“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率節(jié)拍表示一個(gè)音符唱多長的時(shí)間1.1.1音調(diào)音調(diào)是音樂學(xué)中的名詞,與平時(shí)所說的音高十分相似。在音樂中常把中音C上方的A音定為標(biāo)準(zhǔn)音高,其頻率為f=440Hz,其余音均與其進(jìn)行比較。和為兩個(gè)音符,如果兩個(gè)音符的頻率相差一倍時(shí),即時(shí),則稱比高一個(gè)倍頻程。在音樂中音符1(do)與音符ⅰ之間正好相差一個(gè)倍頻程,在音樂學(xué)中稱它相差一個(gè)八度音。在一個(gè)八度音里,有12個(gè)半音。以1--ⅰ八音區(qū)為例。12個(gè)半音是:1--#1,#1--2,2--#2,#2—3,3—4,4--#4,#4—5,5--#5,#5—6,6--#6,#6—7,7--ⅰ。由于人耳的聽覺效果,這12個(gè)音節(jié)的分度基本上是以對數(shù)關(guān)系來劃分的。只要知道了這12個(gè)音符的音高,也就是其基本的音樂的頻率,就可以根據(jù)音符之間的倍頻程關(guān)系得到其他音符基本的音調(diào)頻率。知道了一個(gè)音符的頻率后,便可以讓單片機(jī)發(fā)出相應(yīng)的頻率的振蕩信號,從而產(chǎn)生相應(yīng)的音符聲音。常采用的方法是通過單片機(jī)的定時(shí)器進(jìn)行定時(shí)中斷,在中斷服務(wù)子程序中將單片機(jī)上外界揚(yáng)聲器的I/O口來回置高電平或置低電平,從而讓揚(yáng)聲器發(fā)出聲音。為了讓單片機(jī)發(fā)出不同頻率音符的聲音,只需將定時(shí)器預(yù)置不同的定時(shí)值來實(shí)現(xiàn)。以標(biāo)準(zhǔn)音高A為例:標(biāo)準(zhǔn)音高A的頻率f=440Hz,其對應(yīng)的周期為:(1-1)因此需要在單片機(jī)I/O口輸出周期為T=2272us的方波脈沖,如圖1-1所示圖1-1單片機(jī)控制音調(diào)示意圖由上圖可知:單片機(jī)輸出高電平和低電平信號均為:(1-2)也就是說,單片機(jī)上定時(shí)器的中斷觸發(fā)時(shí)間為1136us。如果單片機(jī)采用定時(shí)器工作方式1,它以振蕩器的十二分頻信號為計(jì)數(shù)脈沖。設(shè)外接晶振的振蕩器頻率為f0,則定時(shí)器的預(yù)置初值由下式來確定:(1-3)式中,Count==65536,為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為:(1-4)(1-5)如果單片機(jī)外接12MHz的晶振,則,將t=1136us和代入上面兩式,即可求得標(biāo)準(zhǔn)音高A在單片機(jī)定時(shí)器工作方式1下的定時(shí)器高低計(jì)數(shù)器的初值為:(1-6)(1-7)根據(jù)上面的求法,我們可以求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的預(yù)置初值。在單片機(jī)晶振頻率,定時(shí)器在工作方式1下定時(shí)器計(jì)數(shù)初值見表1-1表1-1晶振頻率定時(shí)器在工作方式1下定時(shí)器計(jì)數(shù)初值表音符頻率/Hz計(jì)數(shù)初值音符頻率/Hz計(jì)數(shù)初值低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#1RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964013中7SI98895030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3MI65964777#6LA#186565268中4FA69864820高7SI1967652831.1.2節(jié)拍在一張完整樂譜開頭,都有如1=CEQ、1=G……等等的標(biāo)識。這里1=C,1=G標(biāo)識樂譜的曲調(diào),簡單的說就是跟音調(diào)有關(guān)系;這里的、用來表示節(jié)拍。對于音符的節(jié)拍,以為例。它表示樂譜中以四分音符為節(jié)拍,每一小節(jié)有三拍。1=G的節(jié)拍示意圖,見圖1-2在圖中,總共有三拍:1、2為一拍,3、4、5為一拍,6為一拍。從時(shí)長角度看,1、2的時(shí)長為四分音的一半,即為八分音符長;3、4的時(shí)長為八分音符的一半,即為十六分音符長;5的時(shí)長為四分音符的一半,即為八分音符長;6的時(shí)長為四分音符長。1=G1=G圖1-2節(jié)拍示意圖對于一拍的發(fā)音時(shí)間,如果樂曲沒有特殊說明,一般說來,一拍的時(shí)長大約為400~450ms。如果這里規(guī)定一拍的時(shí)長為400ms,那么以四分音符為節(jié)拍時(shí),四分音符的時(shí)長為400ms,八分音符的時(shí)長為200ms,十六分音符的時(shí)長為100ms。 從而,在單片機(jī)上可采用循環(huán)延時(shí)的辦法來實(shí)現(xiàn)控制一個(gè)音符唱多長時(shí)間。首先要編寫一個(gè)精確的基本時(shí)長的延時(shí)程序,比如說以八分音符的時(shí)長為基本延時(shí)時(shí)間,那么對于一個(gè)音符,如果它是四分音符,只需調(diào)用四次延時(shí)程序,如果它是二分音符,則只需調(diào)用八次延時(shí)程序,以此類推。1.1.3單片機(jī)電子琴演奏音樂的方法步驟一:將樂譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍數(shù)。步驟二:將這些參數(shù)做成數(shù)據(jù)表格,存放在存儲器中。步驟三:通過按鍵調(diào)用程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符。步驟四:播放完該音符后,等待下一次按鍵調(diào)用程序去取出下一次的音符的相關(guān)參數(shù),再播放音符。對于演奏樂曲,一般將休止符的音調(diào)參數(shù)設(shè)置為FFH,節(jié)拍參數(shù)設(shè)置為00H。1.2本設(shè)計(jì)任務(wù)和主要內(nèi)容本次課程設(shè)計(jì)主要研究基于AT89C51單片機(jī)的8鍵簡易電子琴的設(shè)計(jì)。具體要求實(shí)現(xiàn)以下功能:按下音符鍵可以發(fā)出相應(yīng)的音符按下音樂播放鍵可以自動播放預(yù)先存在內(nèi)存中的曲子系統(tǒng)主要硬件電路設(shè)計(jì)單片機(jī)控制系統(tǒng)原理2.1.1芯片選用在本次課程設(shè)計(jì)中我采用Atmel公司的AT89C51單片機(jī)。AT89C51是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),片內(nèi)含8KB的可反復(fù)檫寫的程序存儲器和12B的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用Atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。AT89C52單片機(jī)屬于AT89C51單片機(jī)的增強(qiáng)型,與Intel公司的80C52在引腳排列、硬件組成、工作特點(diǎn)和指令系統(tǒng)等方面兼容。AT89C52引腳圖見圖2-1.圖2-1AT89C51引腳圖其主要功能特性:·兼容MCS51指令系統(tǒng)·8k可反復(fù)擦寫(>1000次)FlashROM·32個(gè)雙向I/O口·256x8bit內(nèi)部RAM·3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷·時(shí)鐘頻率0-24MHz·2個(gè)串行中斷·可編程UART串行通道·2個(gè)外部中斷源·共6個(gè)中斷源·2個(gè)讀寫中斷口線·3級加密位·低功耗空閑和掉電模式·軟件設(shè)置睡眠和喚醒功能2.1.2簡易電子琴的組成框圖發(fā)音電路AT89C51AT89C51獨(dú)立鍵盤和發(fā)生電路LED燈路供電及復(fù)位電路晶振電路圖2-2電子琴系統(tǒng)原理框圖2.2單片機(jī)主機(jī)系統(tǒng)電路2.2.1時(shí)鐘頻率單片機(jī)必須在時(shí)鐘的驅(qū)動下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。外部振蕩源電路一般選用石英晶體振蕩器,此電路在加電大約延遲10mS后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容C1,C2,作用有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號的周期稱為時(shí)鐘周期。起大小是時(shí)鐘信號頻率的倒數(shù),常用fosc表示。如時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12μs。2.2.2晶振電路AT89C51單片機(jī)的定時(shí)控制功能是用時(shí)鐘電路和振蕩器完成的,而根據(jù)硬件電路的不同,連接方式分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)中采用內(nèi)部時(shí)鐘方式。 單片機(jī)內(nèi)部有一個(gè)反相放大器XTAL1、XTAL2分別為反相放大器的輸入端和輸出端,外接定時(shí)反饋元件組成振蕩器(內(nèi)部時(shí)鐘方式),產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部各元件。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。 一般來說單片機(jī)內(nèi)部有一個(gè)帶反饋的線性反相放大器,外界晶振(或接陶瓷振蕩器)和電容就可組成振蕩器,如圖2-4所示。加電以后延時(shí)一段時(shí)間(約10ms)振蕩器產(chǎn)生時(shí)鐘,不受軟件控制,圖中X1為晶振,震蕩產(chǎn)生的時(shí)鐘頻率主要由Y1確定。電容C1,C2的作用有兩個(gè):一是幫助振蕩器起振,二是對振蕩器的頻率起微調(diào)作用,典型值為30pF。圖2-4晶振電路2.2.3鍵盤掃描在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤,如圖2-5,圖2-6所示。圖2-5獨(dú)立鍵盤它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。本次課程設(shè)計(jì),我采用矩陣式鍵盤電路,這樣可以大大的節(jié)省單片機(jī)I/O的開銷。鍵盤電路見圖2-7:圖2-7鍵盤電路在按鍵過程中常產(chǎn)生“毛刺”現(xiàn)象,如圖2-8所示,要消除“毛刺”現(xiàn)象,這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊獭泵}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測到有按鍵動靜后,再延時(shí)一段時(shí)間(10ms~20ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。圖2-8“毛刺”現(xiàn)象2.2.4發(fā)音電路電子琴發(fā)音電路見圖2-9。圖2-9電子琴發(fā)音電路2.2.5供電及復(fù)位電路電子琴的供電電路和復(fù)位電路見圖2-10。圖2-10電子琴供電及復(fù)位電路2.2.6電子琴總體電路第3節(jié)系統(tǒng)的軟件設(shè)計(jì)3.1主程序3.1.1主程序的流程圖主程序的程序流程圖見圖3-1.按鍵是否按下按鍵是否按下開始去抖動,延時(shí)10ms掃描按鍵位置做一次按鍵處理,播放相應(yīng)的音符或音樂按鍵是否按下圖3-1程序流程圖3.1.2程序#include<reg51.h>#defineLEDP1#defineSW_PortP2sbitbuzzer=P3^7;unsignedcharkeys;unsignedcharcodetone[]={115,102,91,86,77,68,61,57};voidsound(unsignedchar);voiddelay8us(unsignedchar);main(){while(1){LED=SW_Port=0xff; keys=~SW_Port; switch(keys) {case0x01:sound(0);break; case0x02:sound(1);break; case0x04:sound(2);break; case0x08:sound(3);break; case0x10:sound(4);break; case0x20:sound(5);break; case0x40:sound(6);break; case0x80:sound(7);break; } } } voidsound(unsignedcharx) {unsignedchari; LED=SW_Port; for(i=0;i<60;i++) {buzzer=0;delay8us(tone[x]); buzzer=1;delay8us(tone[x]);} LED=0xff; } voiddelay8us(unsignedcharx) {unsignedchari,j; for(i=0;i<x;i++) for(j=0;j<1;j++); }結(jié)束語單片機(jī)作為一門軟硬件相結(jié)合的學(xué)科,讓許多像我這樣的非電子專業(yè)的學(xué)生頭疼不已。起初,我也屬于一個(gè)比較“怕硬”的計(jì)算機(jī)學(xué)生,由于大一大二的數(shù)電模電沒學(xué)好,所以一提到硬件方面的東西,我就覺得頭疼。最初聽余老師講的單片機(jī)的課的時(shí)候,屬于余老師每問必倒的學(xué)生之一。因此,最初對于這門課并沒有多少興趣。最初從指令系統(tǒng),尋址方式,到單片機(jī)的內(nèi)部資源,一點(diǎn)概念都沒有。雖然每次課都看著大屏幕,聽著老師講課,但還是覺得整門課聽的比較吃力。我覺得單片機(jī)作為微型計(jì)算機(jī)的一種,必然和計(jì)算機(jī)有一定的共性。后來有一段時(shí)間,我在課余的時(shí)間去旁聽了幾堂韓建民老師的《計(jì)算機(jī)組成原理》,對計(jì)算機(jī)的指令系統(tǒng)和尋址方式有了點(diǎn)認(rèn)識,再回過頭來看單片機(jī)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論