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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論