基于單片機(jī)的電子琴畢業(yè)設(shè)計(jì)說明_第1頁(yè)
基于單片機(jī)的電子琴畢業(yè)設(shè)計(jì)說明_第2頁(yè)
基于單片機(jī)的電子琴畢業(yè)設(shè)計(jì)說明_第3頁(yè)
基于單片機(jī)的電子琴畢業(yè)設(shè)計(jì)說明_第4頁(yè)
基于單片機(jī)的電子琴畢業(yè)設(shè)計(jì)說明_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、湄洲灣職業(yè)技術(shù)學(xué)院基于單片機(jī)的電子琴設(shè)計(jì)系 別:自動(dòng)化工程系年 級(jí): 10級(jí) 專 業(yè): 電氣自動(dòng)化 姓 名: 林家家 學(xué) 號(hào): 1001010111導(dǎo)師: 許振龍 職 稱:講師2013年5月29日- 7 - / 17目錄1前言- 1 -2系統(tǒng)設(shè)計(jì)技術(shù)參數(shù)要求- 2 -2.1設(shè)計(jì)要求- 2 -3系統(tǒng)設(shè)計(jì)- 2 -3.1系統(tǒng)設(shè)計(jì)總框圖- 2 -3.2各模塊原理說明- 2 -3.3系統(tǒng)總原理圖說明- 3 -3.4系統(tǒng)印刷電路板的制作圖- 4 -3.5系統(tǒng)的操作說明- 4 -3.6系統(tǒng)操作注意事項(xiàng)- 4 -系統(tǒng)設(shè)計(jì)參考文獻(xiàn)- 5 -致詞- 6 -附錄- 7 -附錄1.電路總原理圖- 7 -附錄2.電路

2、元件清單- 7 -附錄3.程序- 8 -1. 前言單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要容是用STC89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控

3、制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。并且本文分別從原理圖,主要芯片,各模塊原理與各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。本系統(tǒng)是簡(jiǎn)易電子琴的設(shè)計(jì),按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放器對(duì)應(yīng)的音符。通過設(shè)計(jì)本系統(tǒng)可了解單片機(jī)的基本功能。對(duì)單片機(jī)的了解有一個(gè)小的飛躍。2系統(tǒng)設(shè)計(jì)技術(shù)參數(shù)要求2.1設(shè)計(jì)要求(1)鍵盤矩陣識(shí)別。即矩陣掃描,顯示當(dāng)前按鍵。(2)不同頻率音符播放??梢酝ㄟ^按鍵控制15種發(fā)音。(3)設(shè)有一個(gè)按鍵,按下后可以

4、播放預(yù)設(shè)的歌曲。3系統(tǒng)設(shè)計(jì)3.1系統(tǒng)設(shè)計(jì)總體框圖3.2各模塊原理說明主控模塊:STC89C52單片機(jī)最初是由Intel 公司開發(fā)設(shè)計(jì)的,但后來(lái)Intel 公司把51 核的設(shè)計(jì)方案賣給了幾家大的電子設(shè)計(jì)生產(chǎn)商,譬如 SST、Philip、Atmel 等大公司。如是市面上出現(xiàn)了各式各樣的但均以51 為核的單片機(jī),倒是Intel 公司自己的單片機(jī)卻顯得遜色了。這些各大電子生產(chǎn)商推出的單片機(jī)都兼容51 指令、并在51 的基礎(chǔ)上擴(kuò)展一些功能而部結(jié)構(gòu)是與51 一致的。STC89C52有40個(gè)引腳,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行口,同時(shí)含5個(gè)中斷源,2個(gè)優(yōu)先級(jí),2個(gè)16位定時(shí)/計(jì)數(shù)器。STC89C

5、52的存儲(chǔ)器系統(tǒng)由4K的程序存儲(chǔ)器(掩膜ROM),和128B的數(shù)據(jù)存儲(chǔ)器(RAM)組成。鍵盤模塊:矩陣式鍵盤模式以N個(gè)端口連接控制N*N個(gè)按鍵,實(shí)時(shí)在LED數(shù)碼管上顯示按鍵信息。顯示按鍵信息,省下了很多的I/O端口為他用,相反,獨(dú)立式按鍵雖編程簡(jiǎn)單,但占用I/O口資源較多,不適合在按鍵較多的場(chǎng)合應(yīng)用。并且在實(shí)際應(yīng)用中經(jīng)常要用到輸入數(shù)字、字母、符號(hào)等操作功能,如電子密碼鎖、機(jī)鍵盤、計(jì)算器按鍵等,至少都需要12到16個(gè)按鍵。矩陣式鍵盤簡(jiǎn)介:矩陣式鍵盤又稱行列鍵盤,它是用N條I/O線作為行線,N條I/O線作為列線組成的鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為N*N個(gè)。這

6、種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。最常見的鍵盤布局如圖1所示。一般由16個(gè)按鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式,本設(shè)計(jì)就采用這個(gè)鍵盤模式。功率放大模塊:功率放大模塊我們選用了LM386作為功率放大模塊的主要芯片,LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM38

7、6特別適用于電池供電的場(chǎng)合。3.3系統(tǒng)總原理圖說明主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。并且本文分別從原理圖,主要芯片,各模塊原理與各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。本系統(tǒng)是簡(jiǎn)易電子琴的設(shè)計(jì),按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放器對(duì)應(yīng)的音符。通過設(shè)計(jì)本系統(tǒng)可了解單片機(jī)的基本功能。3.4系統(tǒng)印刷電路板的制作圖3.5系統(tǒng)的操作說明(1)鍵盤矩陣識(shí)別。即矩陣掃描,顯示當(dāng)前按鍵。(2)不同頻率音符播放。可以通過按鍵控制15種發(fā)音。(3)設(shè)有一個(gè)按鍵,按下后可以播放預(yù)設(shè)的歌曲。

8、3.6系統(tǒng)操作注意事項(xiàng)1.通電使用前先對(duì)照電路板與電路圖是否有錯(cuò)焊、漏焊、短路、開路、元器件相碰等現(xiàn)象,有要處理好后再使用。2.通電使用前先檢查好電路板是否與電源供電線、驅(qū)動(dòng)電路開關(guān)與負(fù)載供電線、負(fù)載供電線之間相互接反,不得在接錯(cuò)的情況下通電,要處理好后再使用。3.通電使用時(shí)人體不得與電路板線路任何一個(gè)部位相碰,防止觸電,注意安全。4.應(yīng)把電極片與電路板隔離,避免電極片與電路板上元器件相碰觸發(fā)生短路現(xiàn)象。 5.通電時(shí)應(yīng)把電路板放在絕緣物體上,避開其他導(dǎo)電物體避免發(fā)生短路現(xiàn)象。 6.使用時(shí)聞到燒焦味、發(fā)現(xiàn)元器件或集成塊冒煙燒毀應(yīng)立即斷開電源,待電路板查明原因處理好后才可以繼續(xù)通電使用。系統(tǒng)設(shè)計(jì)參

9、考文獻(xiàn) 1 偉. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例M. :電子工業(yè), 2009 2 吳運(yùn)昌模擬電子線路基礎(chǔ)M:華南理工大學(xué),2004 3 閻石數(shù)字電子技術(shù)基礎(chǔ)M:高等教育,1997 4 羅亞非,凌陽(yáng)單片機(jī)原理與畢業(yè)設(shè)計(jì)精選M. :科學(xué),2006 5 華東,protel電路設(shè)計(jì)M. :清華大學(xué),2007 6 黃健,單片機(jī)原理與應(yīng)用M. :西北工業(yè)大學(xué),2008 7 周明德,單片機(jī)原理與技術(shù)M. :人民郵電,2008 8 建忠,單片機(jī)原理與應(yīng)用M. :電子科技大學(xué),2008 9 王正謀,Protel99se電路設(shè)計(jì)與仿真技術(shù)M. :科學(xué)技術(shù),2004 10 郝萬(wàn)新,電路基礎(chǔ)M. :理工大學(xué),200

10、5 致詞各位老師,通過這次畢業(yè)設(shè)計(jì),我學(xué)到了不少課本上沒有的知識(shí),也鍛煉了自己的動(dòng)手能力,將以前學(xué)過的零散的知識(shí)串到一起。經(jīng)過我長(zhǎng)時(shí)間的設(shè)計(jì)與調(diào)試,本系統(tǒng)基本能實(shí)現(xiàn)按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符。但由于仿真系統(tǒng)原因,本設(shè)計(jì)音頻效果不是很好。不足之處有:1.可彈奏的音符數(shù)較少,只能在一定圍滿足用戶需要。可通過改進(jìn)鍵盤識(shí)別模塊和發(fā)生模塊來(lái)增加其復(fù)雜度2.音量不可調(diào)。我的綜合設(shè)計(jì)主要涉與硬件和軟件兩方面的容,通過這些我的硬件和軟件開發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開發(fā)流程和所要做的工作?;菊莆樟薖rotel99SE原理圖的方法,并設(shè)計(jì)了一個(gè)單

11、片機(jī)最小系統(tǒng)。通過開發(fā)板的設(shè)計(jì)和硬件搭建的過程,使我對(duì)51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤等。并且我學(xué)會(huì)了分析問題解決問題的能力,加深了對(duì)所學(xué)理論知識(shí)和大的提高,創(chuàng)新意識(shí)得到了鍛煉 。附錄附錄1.電路總原理圖附錄2.電路元件清單序號(hào)元件名稱阻值數(shù)量位號(hào)1電容30PF22電阻10K3個(gè)3電阻1K14 電容10UF2個(gè)5排阻10K1個(gè)6電位器10K1個(gè)7插座DIP401個(gè)8輕觸按鍵17個(gè)9LM386 1個(gè)10晶振12M1個(gè)11揚(yáng)聲器1個(gè)附錄3.程序#include <intrins.h>/本程序是電子琴的程序,能夠?qū)崿F(xiàn)

12、單獨(dú)演奏和放一首歌曲的功能。其中,按鍵115是用 于單獨(dú)演奏的,按鍵16是用于播放歌曲的/播放歌曲的時(shí)候需要按復(fù)位鍵才能夠停止。/共陰極數(shù)碼管段碼表,最后一字節(jié)為黑屏unsigned char code DSY_CODE=0x28,0xee,0x34,0xa4,0xe2,0xa1,0x21,0xec,0x20,0xa0,0x60,0x23,0x39,0x26,0x31,0x71,0xbf;/各音符對(duì)應(yīng)的延時(shí)表unsigned int code tone_delay_table=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898

13、,64968,65030,65058,65110,65157,65178;/蜂鳴器的位定義sbit beep=P30;#define SOUND_SPACE 4/5 /定義普通音符演奏的長(zhǎng)度分率,/每4分音符間隔/同一首歌的譜子unsigned char code Music= 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0

14、x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02

15、, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0

16、x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19

17、,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 ;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始頻率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;un

18、signed char Sound_Temp_TH0,Sound_Temp_TL0;/音符定時(shí)器初值暫存unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音長(zhǎng)定時(shí)器初值暫存void delay_1ms(unsigned int ms) unsigned char i; while(ms-) for(i=0;i<120;i+); /延時(shí)1ms/播放音樂的子函數(shù)void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)unsi

19、gned int NewFreTab12;/新的頻率表unsigned char i,j; /定義一些中間變量unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i+) / 根據(jù)調(diào)號(hào)與升降八度來(lái)生成新的頻率表j = i + Signature;if(j > 11)j = j-12;NewFreTabi = FreTabj*2;/計(jì)算新的頻率elseNewFreTa

20、bi = FreTabj;if(Octachord = 1)NewFreTabi>>=2;else if(Octachord = 3)NewFreTabi<<=2;SoundLength = 0;while(SoundSoundLength != 0x00)/計(jì)算歌曲長(zhǎng)度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 讀出第一個(gè)音符和它時(shí)時(shí)值LDiv0 = 12000/Speed;/ 算出1分音符的長(zhǎng)度(幾個(gè)10ms) LDiv4 = LDiv0/4; / 算出4分音符的長(zhǎng)度LDiv

21、4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最長(zhǎng)間隔標(biāo)準(zhǔn)TR0 = 0;TR1 = 1;while(Point < SoundLength)SL=Tone%10; /計(jì)算出音符SM=Tone/10%10; /計(jì)算出高低音SH=Tone/100; /計(jì)算出是否升半CurrentFre = NewFreTabSignTabSL-1+SH; /查出對(duì)應(yīng)音符的頻率if(SL!=0)if (SM=1) CurrentFre >>= 2; /低音if (SM=3) CurrentFre <<= 2; /高音Temp_T = 65536-(50000/C

22、urrentFre)*10;/計(jì)算計(jì)數(shù)器初值Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T%256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對(duì)中斷延時(shí)的補(bǔ)償SLen=LengthTabLength%10; /算出是幾分音符XG=Length/10%10; /算出音符類型(0普通1連音2頓音) FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms)if (FD=1) LDiv=LDiv+LDiv/2;if(XG!=1)i

23、f(XG=0) /算出普通音符的演奏長(zhǎng)度if (SLen<=4)LDiv1=LDiv-LDiv4;elseLDiv1=LDiv*SOUND_SPACE;elseLDiv1=LDiv/2; /算出頓音的演奏長(zhǎng)度elseLDiv1=LDiv;if(SL=0) LDiv1=0;LDiv2=LDiv-LDiv1; /算出不發(fā)音的長(zhǎng)度 if (SL!=0)TR0=1;for(i=LDiv1;i>0;i-) /發(fā)規(guī)定長(zhǎng)度的音while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(LDiv2!=0)TR0=0; beep=1

24、;for(i=LDiv2;i>0;i-) /音符間的間隔while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;Point+=2; Tone=SoundPoint;Length=SoundPoint+1;beep = 0;TR0=0;/關(guān)閉定時(shí)器/鍵盤矩陣掃描/返回按下的鍵的值unsigned char keys_scan(void)unsigned char Tmp,k=16;P2=0x0F; delay_1ms(2);Tmp=P2 0x0F;switch(Tmp)/確定掃描的是哪一行case 1: k=0;break;case 2: k=1;break;case 4: k=2;break;case 8: k=3;break;default: return 16; /無(wú)鍵按下,返回P2=0xF0; delay_1ms(2);Tmp=(P2>>4)0x0F;switch(Tmp)/確定掃描的是那一列case 1: k+=0; break;case 2: k+=4; break;case 4: k+=8; bre

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論