基于51單片機(jī)的16鍵電子琴課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于51單片機(jī)的16鍵電子琴課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于51單片機(jī)的16鍵電子琴課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于51單片機(jī)的16鍵電子琴課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于51單片機(jī)的16鍵電子琴課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)評(píng)語(yǔ):考勤10分守紀(jì)10分過程30分設(shè)計(jì)報(bào)告30分答其20分總成績(jī)(100)專業(yè):自動(dòng)化班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:蘭州交通大學(xué)自動(dòng)化與電氣工程學(xué)院2 015年 12月30 日基于單片機(jī)得16鍵電子琴一、電子琴設(shè)計(jì)得目得、要求與設(shè)計(jì)方法1、1設(shè)計(jì)目得現(xiàn)代樂器中,電子琴就是高新科技在音樂領(lǐng)域得一個(gè)代表,體現(xiàn)了人類電子技術(shù)與藝術(shù)得完美結(jié)合.電子琴自動(dòng)伴奏得穩(wěn)定性、準(zhǔn)確性,以及鮮明得強(qiáng)弱規(guī)律、隨人設(shè)置得速度要求,都更便于人們由易到難、深入淺出得準(zhǔn)確掌握歌曲節(jié)奏與樂曲風(fēng)格,對(duì)其節(jié)奏得穩(wěn)定性與準(zhǔn)確性訓(xùn)練能起到非常大得作用.1、2設(shè)計(jì)要求本設(shè)計(jì)主要就是用AT89C52單片機(jī)為核心控

2、制元件,設(shè)計(jì)一個(gè)微縮版得電子琴。單片機(jī)與按鍵構(gòu)成主控制模塊,在主控制模塊上設(shè)置有9個(gè)按鍵,分別達(dá)成不同目標(biāo)。本系統(tǒng)主要為了完成電子琴得三大功能:電子琴?gòu)椬嗯c音樂播放及錄音。1、3電子琴設(shè)計(jì)方法1、3、1設(shè)計(jì)工具表1軟件簡(jiǎn)介軟件名稱設(shè)計(jì)作用KeiluVision4編寫程序與編譯PROTEUS繪制硬件電路圖、數(shù)字仿真MicrosoftVisio繪制程序流圖與框圖1、3、2設(shè)計(jì)思路(1)功能按鍵觸發(fā)外部中斷,以完成不同曲目得得切換。(2)設(shè)置定時(shí)器產(chǎn)生不同頻率得方波,I/O口輸出,經(jīng)功放后揚(yáng)聲器發(fā)聲.(3)采用4M矩陣鍵盤彈奏16個(gè)音(低XI到高DO)。二、電子琴得設(shè)計(jì)方案及原理2、1設(shè)計(jì)總體方案本

3、系統(tǒng)采用AT89C52為主控芯片.輸入電路有16個(gè)琴鍵按鍵,通過按鍵隨意按下所要表達(dá)得音符,作為電平送給主體電路,中央處理器通過識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效得聲音.1個(gè)音樂按鍵用于播放音樂與切換歌曲,通過按鍵觸發(fā)中斷,重置定時(shí)器初值,于另一個(gè)揚(yáng)聲器中發(fā)出有效音響??傇O(shè)計(jì)框圖如下圖1所示。時(shí)鐘復(fù)位電路數(shù)碼管顯示電路琴鍵控制電路音頻播放電路音樂切換電路圖1基于單片機(jī)得電子琴電路原理框圖2、2發(fā)聲原理利用AT89c52得內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率得方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912仙斷此只要令計(jì)

4、數(shù)器計(jì)時(shí)956u/1小石956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz).計(jì)數(shù)脈沖值與頻率得關(guān)系式就是:蟲=fi-2-fro式中,N就是計(jì)數(shù)值;fi就是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr就是想要產(chǎn)生得頻率。三、電子琴得硬件設(shè)計(jì)基于單片機(jī)AT89c51得電子琴電路由琴鍵控制電路、數(shù)碼管顯示電路、音頻播放電路、時(shí)鐘一復(fù)位電路、音樂切換電路與電源電路六部分所構(gòu)成.3、1琴鍵控制電路琴鍵控制電路作為人機(jī)聯(lián)系得輸入部分,也就是間接控制數(shù)碼顯示與音頻功放得重要組成部分.鍵盤按照連接方式可以分為獨(dú)立式與矩陣式鍵盤兩類。3、1、1矩陣式鍵盤如圖2所示為4X4矩陣式

5、鍵盤電路,由一個(gè)4X4得行、列結(jié)構(gòu)可以構(gòu)成一個(gè)16個(gè)按鍵鍵盤.矩陣中無按鍵按下時(shí),行線為高電平;當(dāng)有按鍵按下時(shí),行線電平狀態(tài)將由與此行線相連得列線得電平?jīng)Q定。列線得電平如果為低,則行線電平為低;列線得電平如果為高,則行線得電平也為高,這就是識(shí)別按鍵就是否按下得關(guān)鍵所在.? ALE圖2矩陣式鍵盤0 1 2 3 d- 5- 6 7臼川p 1P 1P 1P 1P 1P 13、1、2獨(dú)立式鍵盤/O 口線,通獨(dú)立式鍵盤得特點(diǎn)就是一鍵一線,各鍵相互獨(dú)立,每個(gè)鍵各接一條I過檢測(cè)I/O輸入線得電平狀態(tài),可判斷出被按下得按鍵。3、1、3方案比較表2鍵盤類型比較鍵盤類型優(yōu)點(diǎn)缺點(diǎn)電路簡(jiǎn)單,編程簡(jiǎn)單占用I/O口線多矩

6、陣式占用I/O口線較少編程比較復(fù)雜由于此次設(shè)計(jì)得琴鍵控制電路需要16個(gè)按鍵,故單純從I/O口線得占用得角度比較,獨(dú)立式需要占用16條I/O口線,而矩陣式卻只需8條.故選擇矩陣式鍵盤電路比較合理。3、2數(shù)碼管顯示電路LED(LightEmittingDiode)發(fā)光二極管縮寫。LED數(shù)碼管就是由發(fā)光二極管構(gòu)成得。常見得LED數(shù)碼管為8”字型得,共計(jì)8段。一般來說分共陽(yáng)極與共陰極兩種接法.3、2、1LED數(shù)碼管靜態(tài)顯示靜態(tài)顯示方式即無論多少位LED數(shù)碼管,同時(shí)處于顯示狀態(tài)。如果送往各個(gè)LED數(shù)碼管所顯示字符得段碼一經(jīng)確定,則相應(yīng)I/O口鎖存器鎖存得段碼輸出將維持不變,直到送入另一個(gè)字符得段碼為止。

7、3、2、2LED數(shù)碼管動(dòng)態(tài)顯示靜態(tài)顯示方式就就是無論在任何時(shí)刻只有一個(gè)LED數(shù)碼管處于顯示狀態(tài),即單片機(jī)采用掃描”方式控制各個(gè)數(shù)碼管輪流顯示。3、3、3方案比較對(duì)于以上兩種數(shù)碼管驅(qū)動(dòng)電路得得優(yōu)缺點(diǎn)比較如表3所示。由于靜態(tài)驅(qū)動(dòng)方式得顯示無閃爍,亮度較高,編程簡(jiǎn)單,加上本次設(shè)計(jì)得數(shù)碼管顯示電路只需要2個(gè)數(shù)碼管,且分別接兩部分管腳,故選擇靜態(tài)驅(qū)動(dòng)方式來顯示數(shù)碼管更為合理。如圖3所示為數(shù)碼管顯示電路,采用靜態(tài)驅(qū)動(dòng)方式與共陽(yáng)極接法.表3數(shù)碼管顯示方式比較驅(qū)動(dòng)方式優(yōu)點(diǎn)缺點(diǎn)靜態(tài)顯示顯示無閃爍,鳧度較局,編程簡(jiǎn)單數(shù)碼管越多,所需得電流越大,電源得要求越高動(dòng)態(tài)顯示電路簡(jiǎn)單,數(shù)碼管越多,不如靜態(tài)顯示得亮度高,可能

8、出現(xiàn)閃爍現(xiàn)象優(yōu)勢(shì)越明顯圖3數(shù)碼管靜態(tài)顯示電路3、3音樂切換電路通過按鍵拉低電平,觸發(fā)中斷0.3、4音頻播放電路使用兩個(gè)揚(yáng)聲器,一個(gè)作為琴鍵輸出,一個(gè)作為樂曲輸出。3、5時(shí)鐘復(fù)位電路3、5、1時(shí)鐘電路時(shí)鐘頻率直接影響單片機(jī)得速度,時(shí)鐘電路得質(zhì)量也直接影響單片機(jī)系統(tǒng)得穩(wěn)定性。常用得時(shí)鐘電路有兩種方式,一種就是內(nèi)部時(shí)鐘方式,另一種就是外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式做時(shí)鐘電路.3、5、2復(fù)位電路在單片機(jī)得實(shí)用系統(tǒng)中,一般有兩種復(fù)位操作形式:上電復(fù)位與手動(dòng)復(fù)位。上電復(fù)位在單片機(jī)系統(tǒng)每次通電時(shí)執(zhí)行.手動(dòng)復(fù)位在系統(tǒng)出現(xiàn)操作錯(cuò)誤或程序運(yùn)行出錯(cuò)時(shí)使用。由于本設(shè)計(jì)得需要,同時(shí)采用這兩種復(fù)位方式.整體電路圖如

9、下圖4所示。四、電子琴得軟件設(shè)計(jì)系統(tǒng)功能得實(shí)現(xiàn)一般包括硬件部分與軟件部分,一旦硬件確定下來,軟件要實(shí)現(xiàn)得功能也隨之確定.而為使編程思路清晰,應(yīng)先繪制程序流程圖。4、1系統(tǒng)硬件接口定義表4系統(tǒng)硬件接口定義引腳名接口說明備注P0、0P0、7琴鍵數(shù)碼管與單片機(jī)通信數(shù)碼管顯示電路P2、0P2、7曲目數(shù)碼管與單片機(jī)通信數(shù)碼管顯示電路P3、2(INT0)外部中斷源輸入端音樂切換電路P1、0P1、7矩陣鍵盤接口琴鍵控制電路P3、0,P3、7控制揚(yáng)聲器首頻播放電路4、2主函數(shù)主函數(shù)流程圖如圖5所示利用模塊化得思想,主函數(shù)只執(zhí)行初始化函數(shù)、鍵盤掃碼函數(shù)、音頻處理函數(shù)與數(shù)碼管顯示函數(shù)N圖5主函數(shù)流程圖4、3初始化

10、函數(shù)定時(shí)器初始化得流程框圖如圖6所示。該函數(shù)對(duì)所需得I/O口、外部中斷0、0、定時(shí)器T1以及數(shù)碼管進(jìn)行初始化配置。TMOD=0x11;/T0方式1,T1方式1IP=0x01;/INT0中斷優(yōu)先級(jí)最高EA=1;ET0=1;ET1=1;EXO=1;允許中斷TR0=0;/關(guān)定時(shí)器0P1=0Xbf;/鍵盤初始化flag=0;?/標(biāo)志位置0初始化開始j關(guān)閉數(shù)碼管外部中斷0邊沿觸發(fā)允許外部中斷定時(shí)器工作方式1允許定時(shí)器中斷關(guān)閉定時(shí)器結(jié)束圖6初始化流程圖4、4數(shù)碼管顯示及音頻處理函數(shù)根據(jù)鍵值掃描函數(shù)讀取得鍵碼,揚(yáng)聲器發(fā)聲并結(jié)合數(shù)碼管顯示出來圖7數(shù)碼管顯示流程圖4、5中斷函數(shù)中斷函數(shù)用到了外部中斷與定時(shí)器中斷

11、.外部中斷得流程框圖如圖8所示,當(dāng)按鍵按下時(shí),外部信號(hào)觸發(fā)外部中斷,執(zhí)行鍵值掃描函數(shù),讀取對(duì)應(yīng)得鍵值.定時(shí)中斷得流程框圖如圖9所示,定時(shí)器溢出中斷后,進(jìn)行重裝載初值,同時(shí)執(zhí)行相應(yīng)得音頻控制操作。4、6鍵值掃描函數(shù)將輸入端置為高電平,輸出端置為低電平。這樣,當(dāng)按鍵沒有按下時(shí),所有得輸入端無變化,代表無鍵按下。一旦有鍵按下,則輸入線就受輸出線得影響被拉低,這樣,通過讀入輸入線得狀態(tài)就可得知就是否有鍵按下了。流程圖如圖10所示。鍵盤中斷開始鍵值掃描結(jié)束圖8外部鍵盤中斷流程圖圖9定時(shí)器中斷流程*取低位輸入,高位輸出,得到列值取高位輸入,低位輸出,得到列值1(結(jié)束圖1。鍵值掃描流程圖五、電子琴得系統(tǒng)仿真

12、5、1部分仿真結(jié)果表5仿真結(jié)果按鍵編號(hào)發(fā)聲音調(diào)數(shù)碼管顯示備注0低XI0,-1中DO1,一2中RI2,-無播放曲目及停止1,2,或-重復(fù)按切換音樂RP1RE§PACK-e圖11音樂顯示為“-”或不顯示得時(shí)候,琴鍵按下DO有效RP1圖12按音樂鍵,播放音樂1,琴鍵彈奏無效5、2調(diào)試中出現(xiàn)得問題及解決電子琴得設(shè)計(jì)并非一帆風(fēng)順,在這期間遇到了很多問題,下面談幾個(gè)關(guān)鍵得問題.首先就是數(shù)碼管顯示亂碼得問題,原本以為就是數(shù)碼管字形碼表得代碼有錯(cuò)檢查幾遍發(fā)現(xiàn)代碼基沒錯(cuò),后來結(jié)合硬件圖一瞧,才知道硬件圖中數(shù)碼管就是共陽(yáng)極接法,軟件中得數(shù)碼管字形碼表就是共陰極得。其二就是按鍵引入中斷檢測(cè)時(shí)遇到得問題,按

13、音樂鍵后琴鍵無法發(fā)聲與顯示,浪費(fèi)了很多時(shí)間,最終發(fā)現(xiàn)就是程序得判斷條件有問題.其三就是揚(yáng)聲器發(fā)出得音調(diào)不對(duì),甚至沒有聲音,這個(gè)問題后來還就是不能解決,最后放棄了1乂386得功放電路,直接接揚(yáng)聲器,但就是導(dǎo)致了部分琴鍵發(fā)聲帶雜音。六、總結(jié)在本次設(shè)計(jì)八路多功能搶答器得課設(shè)過程中,我利用AT89C52單片機(jī)及外圍接口實(shí)現(xiàn)電子琴,利用單片機(jī)得定時(shí)器/計(jì)數(shù)器定時(shí)與計(jì)數(shù)得原理實(shí)現(xiàn)對(duì)彈奏與播放得功能,利用Proteus與Keil軟件設(shè)計(jì)出實(shí)驗(yàn)電路,完成了課設(shè)得任務(wù)。在本次課設(shè)中,我意識(shí)到將理論知識(shí)與實(shí)踐相結(jié)合得重要性,對(duì)于單片機(jī)這樣得課程,僅僅通過了解課本上得知識(shí)就是遠(yuǎn)遠(yuǎn)不夠得,我通過查資料與搜集有關(guān)文獻(xiàn),

14、培養(yǎng)了自學(xué)能力,通過利用軟件仿真與焊接電路,在很大程度上提高了我得動(dòng)手能力。我們?cè)谡n設(shè)得過程中,遇到了很多問題,比如我在仿真得過程中錯(cuò)把共陰極數(shù)碼管字模當(dāng)作共陽(yáng)極使用,使得數(shù)碼管無法正常顯示,通過查資料我明白了共陰極數(shù)碼管就是高電平驅(qū)動(dòng),公共端就是負(fù)極,共陽(yáng)極數(shù)碼管就是低電平驅(qū)動(dòng),公共端就是正極,類似得問題出現(xiàn)了很多,我們通過一一排查,終于完成了課設(shè)任務(wù),結(jié)果表明,有付出必有收獲,把握重點(diǎn)、攻克難關(guān),活學(xué)活用對(duì)于牢固得掌握知識(shí),就是非常有用得。在此次課設(shè)中,我學(xué)到了很多,也通過不斷糾正自己得錯(cuò)誤,意識(shí)到自身得不足我對(duì)知識(shí)得掌握還沒有實(shí)現(xiàn)深層次得理解記憶,我相信這些教訓(xùn)都為我以后得學(xué)習(xí)奠定了良好

15、得基礎(chǔ),時(shí)刻牢記團(tuán)隊(duì)合作、堅(jiān)持與努力得重要性.參考文獻(xiàn)口王思明張金敏,茍軍年、單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M、北京:人民郵電出版社,2008、2馮育長(zhǎng),鄒小兵、單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例指導(dǎo)M、西安:西安電子科技大學(xué)出社,2004、3彭偉、單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例M、北京:電子工業(yè)出版社,2009、:4單丹,馬淑云、基于AT89C51單片機(jī)電子琴得設(shè)計(jì)J、中國(guó)高新技術(shù)企業(yè),2002、附錄#include<reg52、h#defineucharunsignedchar#defineuintunsignedint/共陽(yáng)極數(shù)碼管UcharcodeLED口=OxcO,0xf9,0xa4,0xbO,

16、0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;sbitbeep=P3A0;ucharkey;/鍵號(hào)sbitbuzzer=P3人7;uchardis_buf;ucharflag;/音符延時(shí)表uintcodeTone_Delay_Table口=64524,64580,64684,64777,64820,64896,64966,65030,65058,65110,65157,65178,65217,65252,65283,65316);/音調(diào)與節(jié)拍ucharcodeSong1_Tone二0,1,2,3,4,5,6,7

17、,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0xff);ucharcodeTime1_Tone=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xff);ucharcodeSong2_Tone=3,5,5,3,2,1,2,3,5,3,2,3,55,3,2,1,2,3,2,1,1,Oxff);ucharcodeTime2_Tone口=2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,0xff);uch

18、arcodeSong3_Tone口=1,1,5,5,6,6,5,4,4,3,3,2,2,1,0xff;ucharcodeTime3Tone口=1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xff;/定義按鍵序號(hào)ucharkeyno;/音樂片段索引,音符索引ucharsong_index=0;uchartone_index=0;/音符指針,延時(shí)指針uchar*tone_pointer,*de1ay_pointer;/從當(dāng)前數(shù)組中取出音符得位置uchari=0;/毫秒延時(shí)voiddclayms(uintms)uchart;?while(ms)for(t=0;t<120;t+);/

19、按鍵產(chǎn)生外部中斷voidKey_Pr6ss()interrupt0TR0=0;?/切換歌曲song_index=(song_index+1)%3;&witch(song_index)"case2tone_pointer=Song1_Tone;delay_pointer=Time1_Tone;?break;?case1:tone_pointer=Song2_Tone;?de1ay_pointer=Time2_Tone;break;?case0:tone_pointer=0;?de1ay_pointcr=0;?break;?/重新開始i=0;TR0=1;?flag=1;/T0中斷

20、播放voidplay_music()interrupt1?if(song_index!=0)?TH0=Tone_Delay_Tabletone_index/256;?TL0=Tone_Delay_Tabletone_index%256;?buzzer=buzzer;?c1sebuzzer=0;/*voidkey_scan()?jchartemp,k;?/高四位置0,放入四行中1=0x0f;?delayms(2);/按鍵后00001111變成0000xxxx,x中1個(gè)為0,3個(gè)仍為1?/以下亦或操作把3個(gè)1變成0,唯一0變成12emp=P1A0x0f;/判斷按鍵發(fā)生于03列得哪一列switch(

21、temp)?Case1:k=0;break;?case2:k=l;break;?Case4:k=2;break;case8:k=3;break;?default:return;?/底四位置0,放入四列?P1=0xf0;?delayms(2);/按鍵后11110000變成xxxx0000,x為1個(gè)0,三個(gè)仍為1/高四位移動(dòng)至底四位,唯一0變1,其余為02emp=(Pl4)A0x0f;/對(duì)03行分別賦起始值0,4,8,12switch(temp)?:ase1:k+=0;break;?case2:k+=4;break;case4:k+=8;break;case8:k+=12;break;?defau

22、lt:return;keyno=k;*/矩陣鍵盤掃描子程序voidkey_scan(void)uchartemp;/低四位輸入P1=0x0F;delayms(2);稍稍延時(shí)temp=P1;/讀P1口temp=temp&0x0F;/取低四位temp=(temp|0xF0);if(temp=1)/檢測(cè)按下得鍵所在得列號(hào),在第一列key=0;elseif(temp=2)/在第二歹!Jkey=1;elseif(t6mp=4)在第三列key=2;elseif(temp=8)在第四列key=3;elsekey=16;/否則顯示-P1=0xF0;/高四位輸入delayms;temp=P1;/讀P1口temp=temp&0xF0;tcmp=(temp4)|0xF0);if(temp=1)/檢測(cè)按下得鍵所在得行號(hào),在第一行key=key+0;elseif(temp=2)/在第二行key

溫馨提示

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

評(píng)論

0/150

提交評(píng)論