電子琴課程設計報告_第1頁
電子琴課程設計報告_第2頁
電子琴課程設計報告_第3頁
電子琴課程設計報告_第4頁
電子琴課程設計報告_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-. z目 錄一、設計要求 . 2 二、設計目的 . 2三、總體電路設計及描述 . 2 3.1、總體電路設計框圖 . 2 3.2、硬件電路的分析描述 . 23.2.1、時鐘電路 . 33.2.2、復位電路與喇叭接口電路 . 3 3.2.3、按鍵輸入電路 . 4 3.3、小結 . 5四、軟件設計流程及描述 . 6 4.1、電子琴發(fā)聲原理 . 6 4.2、程序設計框圖及分析描述 . 8 4.3、電子琴設計報告 . 9五、設計總結 . 10 5.1、心得體會 . 10 5.2、缺乏之處 . 10六、參考文獻 . 11另、附錄 . 12 附錄一、電子琴總體設計程序 . 12 附錄二、電子琴設計整體電路

2、圖 . 20 附錄三、電子琴設計電路所用器件清單 . 21一、設計要求1 利用鍵盤能夠發(fā)出低音5高音1等不同音階。2 能通過按鍵編輯歌曲。3 編輯一首歌曲存儲,硬件電路可自動連續(xù)演奏。二、設計目的1了解令揚聲器發(fā)出聲音的方法,熟悉按鍵輸入的處理方法。2能根據(jù)樂譜,找到并熟悉硬件電路自動演奏歌曲的方法。練習將樂譜的音階、音拍編寫成計算機樂譜。3根據(jù)設計要求認真熟悉單片機的知識以及程序的整體設計及布局。(4)通過資料查詢,網(wǎng)上搜索查找與自己設計相關的知識,合理有效的利用在自己的課程設計中。三、總體電路設計及描述3.1、總體電路設計框圖這次課程設計中電子琴的總體電路主要是由四個局部組成,它們分別是單

3、片機、時鐘與復位電路、12個按鍵輸入電路和揚聲器電路。電子琴的硬件電路設計框圖如下: 圖1:電 子 琴 硬 件 電 路 設 計 框 圖3.2、硬件電路的分析描述3.2.1、時鐘電路 從第一個電路時鐘電路開場,這個電路比擬容易,為了方便起見我直接采用部時鐘模式。電路如下列圖所示: 時鐘電路中的晶振頻率,為計算方 便,我采用12MHz,則得到的 時鐘周期便為1s,在追求速度 與電路板工藝方面都比擬適宜。對 于電容我也采用典型值30pf。另 外在焊接電路板時,電容與晶振應 盡可能與單片機芯片距離遠一些, 以減少寄生電容,保證振蕩電路更 圖2 :時鐘電路圖 好更穩(wěn)定的工作。 3.2.2、復位電路與喇叭

4、接口電路 1復位電路 對于復位電路,如下頁圖中所示,C取典型值22f,一方面可通過開機電容充放電實現(xiàn)上電后自動復位,另外為了實現(xiàn)可以按鍵手動復位的要求為滿足在不切斷電源的情況下,使連續(xù)播放的歌曲停頓,進入其他狀態(tài),我選擇電平手動復位方式,復位電路中接地端電阻取1,另外一電阻取200。 2喇叭接口電路揚聲器電路 喇叭接口電路揚聲器電路,此電路的主要功能是其接線方式如下列圖。在這里為使所演奏歌曲聲響較大,設計方案采用功率2W,阻值8來驅動揚聲器,但單片機的P0.0口輸出電流值比擬小,驅動能力弱,故在此采用兩個三極管將歌曲聲響信號放大。三極管我采用常見型號NPN2SC1384與PNP2SA1085,

5、三極管集電極電阻選330的大阻值。這樣可以更好的保護三極管,也可以進展音頻放大與音頻發(fā)聲功能。 圖3:復位電路與喇叭接口電路3.2.3、按鍵輸入電路 1鍵盤接口具有的根本功能:去抖動、防串鍵、按鍵識別和鍵碼產生。 去抖動:每個按鍵在按下或松開時,都會產生短時間的抖動。抖動的持續(xù)時間與鍵的質量相關,一般為520mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。去抖問題可通過軟件延時或硬件電路解決。 防串鍵:防串鍵是為了解決多個鍵同時按下或者前一按鍵沒有釋放又有新的按鍵按下時產生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當有兩個

6、或兩個以上的按鍵按下時,只把最后釋放的鍵當作有效鍵并產生相應的鍵碼。N鍵輪回,是當檢測到有多個鍵被按下時,能根據(jù)發(fā)現(xiàn)它們的順序依次產生相應鍵的鍵碼。 被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結合的方法完成。常用的方法有行掃描法和線反轉法兩種。行掃描法的根本思想是,由程序對鍵盤逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設置入口、輸出口一個,該方法在微機系統(tǒng)中被廣泛使用。線反轉法的根本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個可編程的雙向輸入/輸出端口。 鍵碼產生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,一般在存區(qū)中建立一個鍵盤編碼表,通過查表

7、獲得被按鍵的鍵碼 2按鍵電路的連接 對于按鍵輸入電路的信號輸入,我接至單片機芯片的P1.0至P1.7還有P3.4至P3.7等十二支引腳。因為這些引腳都靠近實際芯片的下端,在設計制作電路板時比擬容易布線。在初始化程序中,將這些端口設置為高電平,當按下按鍵后,端口被鎖定為低電平,在程序中,采用數(shù)條JNB位變量條件轉移指令,當單片機檢測到此低電平后便跳轉至效勞程序處,根據(jù)程序中相關量變化時發(fā)出具有一定頻率的低音5至高音3等不同音階的聲響。其單片機電子琴按鍵電路程序設計流程圖如下列圖所示: 圖4:按鍵電路的流程圖 3.3、小結 以上便是硬件局部電路的根本設計與分析描述,詳細總體的電路圖附加在附錄頁中,

8、供仔細參考使用。 電路中因為沒有擴展外部存儲裝置,故單片機EA非引腳必須接高電平,以選中部ROM。 電路的有利改良:設計中所用的揚聲器也滿足這里的設計要求,但揚聲器假設附加有音箱例如隨身聽用的小音箱則效果更佳。四、軟件設計流程及描述 4.1、電子琴發(fā)聲原理1聲音產生方法:只要讓揚聲器speaker通過會產生大小變化的電流即脈動電流或交流,就能使揚聲器發(fā)出聲音。因此假設以程序不斷的輸出10101就可令揚聲器發(fā)出聲音。2要生產音頻脈沖,只要算出*一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間.利用延時程序計時這個半周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期

9、時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖.3例如中音DO的頻率為262Hz,其周期T1/2623816s,因此只要編寫延時1908s的子程序,在1908s后再將I/O反相延時1908s,就可得到中音DO (262Hz).4延時時間的方法:(以中音DO為例)假設以程序 MOV R6, *DATA ;1周 ACALL DELAY ;2周DELAY: MOV B, R6 MOV R7, *06HDL: DJNZ R7, DL DJNZ R6, DL MOV R6, B RET來到達半個周期的目的,則因半個周期t=1908s,且 MOV R6, *DATA ACALL DELAY MOV

10、B, R6 MOV R6, BRET這5個指令共耗時9s,所以在延時子程序DELAY中,循環(huán)的局部只能是1 908s-9s=1899s,循環(huán)的局部每執(zhí)行一次耗時15s,故要延時1908s需要執(zhí)行1899/15=126次,即R6=126=7EH就可產生所需的中音DO音。以此類推,可得到計算延時的參數(shù)公式:R6=(500000/f-9)/15 各音階的延時參數(shù)下列圖表所示:音 階 D O R E M IF AS OL AS I 高音 音符1+2+3+4+5+6+7+ 頻率522587559700784880988 延時參數(shù)63565047423733 音長參數(shù)6573828898110124 音階

11、代碼21222324252627 中音 音符1234567 頻率262294330349392440494 延時參數(shù)12611310095857567 音長參數(shù)33374144495562 音階代碼11121314151617 低音 音符 1-2-3-4-5-6-7- 頻率131147165175196220247 延時參數(shù)254226201190170150134 音長參數(shù)16182122252831 音階代碼01020304050607 特殊功能 特殊功能 休止符 重復演奏 停頓演奏 簡譜 0 音節(jié)代碼 00 40 255 所以只要讓揚聲器Speaker通過會產生大小變化的電流即脈動的電流

12、或交流,就能使揚聲器發(fā)出聲音。因此假設按照程序不斷的輸出1010就可令揚聲器發(fā)出聲音。由于MCS-51單片機的輸出端口輸出電流不夠大,所以必須加上晶體三極管把電流放大后再驅動揚聲器,如下列圖左半圖所示: 圖5:揚聲器的電路圖與其流程圖 上圖中所示的右半圖是產生聲音的根本流程圖,只要改變半周期t的時間長短,就可以改變硬件電路圖中電路的輸出頻率,在課程設計編寫相關程序時也是依據(jù)這個原理來編寫設計流程的。在電子琴設計流程中有具體程序編寫,在附錄中會有顯示。 4.2、程序設計框圖及分析描述 課程設計中彈奏音樂程序設計包括主程序和各個子程序。在課程設計報告附頁中有具體程序,可以供參考審核用。在這里給出音

13、樂眼湊的的程序流程圖,以便更好的查看程序設計。在流程途中樂譜改編為程序中的計算機樂譜必須按照“音階代碼在前,音拍代碼在后的規(guī)則排序,樂譜完畢時,必須以40表示重復演奏或者255表示只演奏一遍就停頓做結尾。4.3、電子琴設計程序詳見附頁 設計總結 5.1、心得體會 1通過這次課程設計,讓我感覺到了單片機的深奧,很多資料沒有,要靠自己去查找。在課程設計過程中,我學會了怎么通過各種方式查詢相關的資料,尤其是要充分利用互聯(lián)網(wǎng)來查找自己想要的資料.2這次的課程設計涉及硬件和軟件兩方面的容,首先硬件方面,根本熟悉了單片機電子產品的開發(fā)流程及方法。本次課程設計的硬件焊接工序也是個關鍵步驟,在焊接過程中要仔細

14、,不要被打攪,否則很容易焊接錯誤。而且焊接量也很大,要有明確的分工,有的必須一個人單獨完成,不然會很浪費時間。 3在軟件方面,由于自己所學有限,所以程序的編寫事件很頭疼的事,所以我們是先從網(wǎng)上下載一些類似的程序,然后對程序進展分析修改加以利用。在進展仿真電路的過程中也有很多不便,很多系統(tǒng)程序軟件不會使用,所以在其中找同學幫助,而且自己也進展了初步學習,更進一步了解了我們專業(yè)所利用的一些經典軟件,給以后的學習提供了很好的定位。 4設計好后,要將程序燒入芯片,經過調試成功后,我們可以任意彈奏自己想要的旋律。本研究通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機設計簡易電子琴進展了分析,并介紹

15、了基于單片機電子琴統(tǒng)硬件組成。利用單片機產生不同頻率來獲得我們要求的音階。說明一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,所以我們只要把一首歌曲的音階對應頻率關系弄正確來,然后我們利用功放電路來將音樂聲音放大,同時通過顯示模塊來確定我們自己所彈的音符。5.2、缺乏之處雖然我們用心設計,但仍有許多缺乏之處:可彈奏的音符數(shù)較少,可通過改良鍵盤識別模塊和發(fā)生模塊來增加氣音樂效果。 2.只有一種頻率輸出。不過可以在外圍設計濾波電路,接在不同的輸出口,通過軟件實現(xiàn)不同端口的輸出,從而接入不同的濾波電路,輸出不同的波形,從而獲

16、得不一樣的音色。 3.不能以和弦形式演奏,只能單個鍵按下輸出單個的音階。而且按鍵后不能進展錄制重放。在以后的學習進程中,也可以利用閑暇時間對其進展進一步探索研究,更深一步的學習專業(yè)知識。參考文獻1、毅坤主編單片微型計算機原理及應用 .電子科技大學2、蔡朝洋主編單片機控制實習與專題制作 .科學3、偉人MCS51系統(tǒng)單片機實用子程序集錦 .清華大學4、丁元杰單片機原理及應用 .機械工業(yè) 附 錄 一 : 電子琴總體設計程序 ORG 0000H ORG P1 , *0FFH ORG P3 , *0FFHTEST: JNB P3.4 , START ; P3.4=0嗎.JNB P3.5 , SOL ;

17、P3.5=0嗎. JNB P3.6 , LAL ;P3.6=0嗎. JNB P3.7 , SIL ; P3.4=0嗎. JNB P1.7 , DO ; P1.7=0嗎. JNB P1.6 , RE ; P1.6=0嗎. JNB P1.5 , MI ; P1.5=0嗎. JNB P1.4 , FA ; P1.4=0嗎. JNB P1.3 , SO ; P1.3=0嗎. JNB P1.2 , LA ; P1.2=0嗎. JNB P1.1 , SI ;P1.1=0嗎. JNB P1.0 , DOH ;P1.0=0嗎. AJMP TEST 設定相對應延時參數(shù)R6SOL: MOV R6,*170 AJM

18、P OUTPUT1LAL: MOV R6,*150 AJMP OUTPUT1SIL: MOV R6,*134 AJMP OUTPUT1DO: MOV R6,*126 AJMP OUTPUT1RE: MOV R6,*113 AJMP OUTPUT1MI: MOV R6,*100 AJMP OUTPUT1FA: MOV R6,*95 AJMP OUTPUT1SO: MOV R6,*85 AJMP OUTPUT1LA: MOV R6,*75 AJMP OUTPUT1SI: MOV R6,*67 AJMP OUTPUT1DOH: MOV R6,*63 AJMP OUTPUT1;輸出一周OUTPUT1:

19、 CLR P0.7 ;令兩揚聲器通電 ACALL DELAY1 ;延時半周期t SETB P0.7 ;令揚聲器斷電 ACALL DELAY1 ;延時半周期t AJMP TEST ;重新測試按鍵 ;延時t=15us*R6+9usDELAY1: MOV B,R6DL1 : MOV R7,*6 DJNZ R7,$ DJNZ R6,DL1 MOV R6,B RETSTART: MOV DPTR , *MUSIC ;DPTR指向樂譜的開頭CONT : CLR A ;讀取樂譜的音階代碼 MOVC A , A+DPTR ;A=音節(jié)代碼 CJNE A , *40 ,CHK AJMP START ;假設音節(jié)代碼

20、為40,則從頭開場重復演奏CHK: CJNE A , *255 , OKSTOP: AJMP STOP ;假設音節(jié)代碼為255,則停頓演奏OK : PUSH ACC INC DPTR CLR A MOVC A, A+DPTR ;讀取樂譜的音階代碼 MOV R4 , A ;R4=音拍代碼 POP ACC 依據(jù)音階代碼發(fā)出相應的聲音CHK1: CJNE A,*01,CHK2 ACALL DOH ;假設代碼為01.,則產生低音DOCHK2: CJNE A,*02,CHK3 ACALL REL ; 假設代碼為01.,則產生低音DOCHK3: CJNE A,*03,CHK4 ACALL MIL ; 假設

21、代碼為01.,則產生低音DOCHK4: CJNE A,*04,CHK5 ACALL FAL ; 假設代碼為01.,則產生低音DOCHK5: CJNE A,*05,CHK6 ACALL SOL2 ; CHK6: CJNE A,*06,CHK7 ACALL LAL2CHK7: CJNE A,*07,CHK11 ACALL SIL2CHK11: CJNE A,*11,CHK12 ACALL DO2CHK12: CJNE A,*12,CHK13 ACALL RE2CHK13: CJNE A,*13,CHK14 ACALL MI2CHK14: CJNE A,*14,CHK15 ACALL FA2CHK1

22、5: CJNE A,*15,CHK16 ACALL SO2CHK16: CJNE A,*16,CHK17 ACALL LA2CHK17: CJNE A,*17,CHK21 ACALL SI2CHK21: CJNE A,*21,CHK22 ACALL DOH2CHK22: CJNE A,*22,CHK23 ACALL REHCHK23: CJNE A,*23,CHK24 ACALL MIHCHK24: CJNE A,*24,CHK25 ACALL FAHCHK25: CJNE A,*25,CHK26 ACALL SOHCHK26: CJNE A,*26,CHK27 ACALL LAHCHK27:

23、 CJNE A,*27,CHK0 ACALL SIHCHK0: CJNE A,*00,CONT2 ACALL NONCONT2: INC DPTR AJMP CONT 設定各音階相對應音階代碼的參數(shù) 設定低音DO的相對應參數(shù)DOL : MOV R6 , *254 MOV R5 , *16 AJMP OUTPUT;設定低音RE的相對應參數(shù)REL: MOV R6 ,*226 MOV R5,*18 AJMP OUTPUT; MIL : MOV R6 ,*201 MOV R5 ,*21 AJMP OUTPUTFAL: MOV R6 ,*190 MOV R5 ,*22 AJMP OUTPUTSOL2:

24、MOV R6 ,*170 MOV R5,*25 AJMP OUTPUTLAL2: MOV R6 ,*150 MOV R5 ,*28 AJMP OUTPUTSIL2 : MOV R6 ,*134 MOV R5 ,*31 AJMP OUTPUTDO2 : MOV R6 ,*126 MOV R5,*33 AJMP OUTPUTRE2: MOV R6 ,*113 MOV R5,*37 AJMP OUTPUTMI2 : MOV R6 ,*100 MOV R5,*41 AJMP OUTPUTFA2: MOV R6 ,*95 MOV R5,*44 AJMP OUTPUTSO2: MOV R6 ,*85 MO

25、V R5 ,*49 AJMP OUTPUTLA2 : MOV R6 ,*75 MOV R5,*55 AJMP OUTPUTSI2 : MOV R6 ,*67 MOV R5,*62 AJMP OUTPUTDOH2: MOV R6 ,*63 MOV R5,*65 AJMP OUTPUTREH: MOV R6 ,*56 MOV R5,*73 AJMP OUTPUTMIH : MOV R6 ,*50 MOV R5,*82 AJMP OUTPUTFAH: MOV R6 ,*47 MOV R5,*88 AJMP OUTPUTSOH: MOV R6 ,*42 MOV R5,*98 AJMP OUTPUTLAH : MOV R6 ,*37 MOV R5 ,*110 AJMP OUTPUTSIH: MOV R6 , *33 MOV R5 , *124 AJMP OUTPUTNON: MOV R6 , *33 MOV R5 , *124 AJMP OUTPUTNON為設定休止符的相對應參數(shù)說明:因為休止符不發(fā)出任何聲音,所以R6與R

溫馨提示

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

評論

0/150

提交評論