單片機簡易電子琴課程設計匯本報告_第1頁
單片機簡易電子琴課程設計匯本報告_第2頁
單片機簡易電子琴課程設計匯本報告_第3頁
單片機簡易電子琴課程設計匯本報告_第4頁
單片機簡易電子琴課程設計匯本報告_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...山東交通學院單片機原理課程設計說明書題目:簡易電子琴設計院(系)別交通與物流工程學院專業(yè)物聯(lián)網(wǎng)工程班級物聯(lián)141學號140516112姓名解文博指導教師侯貽蒙二○一六年六月摘要本課題的主要內容就是用單片機實現(xiàn)簡易電子琴的設計。本設計的主要內容是用AT89C52單片機為核心控制元件并與鍵盤、揚聲器等模塊聚城核心主控制模塊,利用所給鍵盤的1,2,3,4,5,6,7,8,八個鍵,能夠發(fā)出8個不同的音調,并且要求按下按鍵發(fā)聲。當系統(tǒng)掃描到鍵盤上有鍵被按下,則快速檢測出是哪一個鍵被按下,然后單片機的定時器被啟動,發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅動電路放大濾波后,就會發(fā)出相應的音調。如果在前一個按下的鍵發(fā)聲的同時有另一個鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停頓,轉到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音調。先根據(jù)要求設計硬件電路和編寫相應的程序,然后進展仿真調試,最后細心焊接硬件電路圖,將程序烤入芯片中,最終到達設計目的。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比擬高等,具有一定的實用和參考價值。關鍵詞:單片機,按鍵,音階,揚聲器1設計的目的和意義單片機〔單片微型計算機〕是大規(guī)模集成電路技術開展的產物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠等特點。單片機的應用相當廣泛,從平常的家用電器到航空航天系統(tǒng)和國防軍事、尖端武器都能找到它的身影。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項重大課題。音樂隨著人們的生活水平也逐步提高已經(jīng)成為了我們生活中很重要的一局部,在工作和學習之余,欣賞音樂不僅使身心得到放松,同時也提高人們的精神品質和個人素養(yǎng)。當代,愛好音樂的年輕人越來越多,也有不少人自己練習彈奏樂器,作為業(yè)余愛好和一種放松的手段,鑒于一些樂器學習難度大需花費太多精力,且其價格太過于高昂,使得一局部有這種想法的人不得不放棄這種想法,而電子琴又是一種新型的鍵盤樂器,它是現(xiàn)代電子科技與音樂結合的產物,價格相對廉價,能夠滿足一般愛好者的需求,因此,在現(xiàn)代音樂中扮演著重要的角色。故簡易電子琴的研制具有一定的社會意義。2設計系統(tǒng)的功能利用所給鍵盤的1,2,3,4,5,6,7,8八個鍵,能夠發(fā)出8個不同的音調當系統(tǒng)掃描到鍵盤上有鍵被按下單片機的定時器被啟動,發(fā)出一定頻率的脈沖,如果在該頻率的脈沖經(jīng)喇叭驅動電路放大濾波后,就會發(fā)出相應的音調。中間再按別的鍵則發(fā)另一音調的聲音前一個按下的鍵發(fā)聲的同時有另一個鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停頓,轉到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音調。并且要求按下按鍵發(fā)聲,松開延時一段時間停頓3硬件系統(tǒng)構造3.1總體電路設計電子琴總體電路分別由單片機最小系統(tǒng)模塊、顯示模塊、按鍵模塊、發(fā)音模塊四個模塊組成。如以下列圖所示。圖3-1總體電路設計3.2原理圖圖3-2原理圖3.3鍵盤設計鍵盤在單片機應用系統(tǒng)中是一個關鍵的部件,它能實現(xiàn)向計算機輸入數(shù)據(jù),傳送命令等功能,是人工干預計算機的主要手段。鍵盤可以分為2類:獨立連接式鍵盤和矩陣式鍵盤。(1)矩陣式鍵盤單片機系統(tǒng)中,假設按鍵較多時,通常采用矩陣式〔也稱行列式〕鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的穿插點上。顯然,在按鍵數(shù)量較多時,矩陣式鍵盤較之獨立式按鍵鍵盤要節(jié)省很多I/O口。矩陣式鍵盤中,行、列線分別連接到按鍵開關的兩端,行線通過上拉電阻接到+5V上.當無鍵按下時,行線處于高電平狀態(tài);當有鍵按下時,行、列線將導通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關鍵。(2)獨立連接式鍵盤獨立式按鍵是直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。獨立式按鍵電路配置靈活,軟件構造簡單,但每個按鍵必須占用一根I/O口線,然而,在按鍵較多時,I/O口線浪費較大,不宜采用。獨立式按鍵軟件常采用查詢式構造。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認該I/O口線所對應的按鍵已按下,然后,再轉向該鍵的功能處理程序。由于本程序較為簡單,為了使用方便及節(jié)省資源,選擇獨立式鍵盤。以下列圖為獨立式鍵盤電路圖:圖3-3獨立式鍵盤電路圖鍵盤編程中主要考慮去抖動的問題。當測試說明有鍵被按下之后,緊接著就進展去抖動處理。因為鍵是機械開關構造,由于機械觸點的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動。為保證鍵識別的準確,在電壓信號抖動的情況下不能進展行狀態(tài)輸入。為此需進展去抖動處理。去抖動有硬件和軟件兩種方法。硬件方法就是加去抖動電路,從根本上防止抖動的產生。軟件消抖,在第一次檢測到有鍵按下時,執(zhí)行一段延時程序之后,再檢測此按鍵,如果第二次檢測結果仍為按下狀態(tài),CPU便確認此按鍵己按下,消除了抖動。3.4發(fā)音模塊設計如以下列圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構成。由三極管來驅動揚聲器發(fā)音的,同時加上拉電阻增強驅動電流,提高驅動能力。圖3-4發(fā)音電路圖一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系正確即可。4軟件功能實現(xiàn)4.1軟件系統(tǒng)流程分析〔1〕鍵盤掃描程序:檢測是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉至功能轉移程序;無按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測?!?〕琴鍵處理程序:根據(jù)檢測到的按鍵值,查詢音調表,給計時器賦值,使發(fā)出相應頻率的聲音。開場開場初始化初始化開啟定時器開啟定時器判斷是否按鍵判斷是否按鍵NN關閉定時器,無聲音發(fā)出關閉定時器,無聲音發(fā)出YY鍵盤掃描,確定按下的按鍵鍵盤掃描,確定按下的按鍵發(fā)出相應音調發(fā)出相應音調圖4-1主程序流程圖4.2關鍵代碼的實現(xiàn)4.2.1鍵盤掃描unsignedcharkeys_scan(void){unsignedcharTmp,k=16;P2=0x0F;delay_1ms(2000);Tmp=P2^0x0F;switch(Tmp)//確定掃描的是哪一列{case1:k=0;break;case2:k=1;break;case3:k=2;break;case4:k=3;break;default:return16;//無鍵按下,返回}P2=0xF0;delay_1ms(2000);Tmp=(P2>>4)^0x0F;switch(Tmp)//確定掃描的是那一行{case1:k+=0;break;case2:k+=4;break;case3:k+=8;break;case4:k+=12;break;default:return16;//無鍵按下,返回}returnk;}4.2.2發(fā)聲程序//音符發(fā)生的中斷voidplay_tone()interrupt1{TH0=Sound_Temp_TH0;TL0=Sound_Temp_TL0;beep=!beep;}4.3其他關鍵技術定時器產生音樂原理利用單片機的內部定時器使其工作計數(shù)器模式〔MODE1〕下,改變計數(shù)值TH0及TL0以產生不同頻率的方法產生不同音階。例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時956μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中音DO〔523Hz〕。計數(shù)脈沖值與頻率的關系式(如式2-1所示)是:N=fi÷2÷fr

2-1式中,N是計數(shù)值;fi是機器頻率〔晶體振蕩器為12MHz時,其頻率為1MHz〕;fr是想要產生的頻率。其計數(shù)初值T的求法如下:T=65536-N=65536-fi÷2÷fr例如:設K=65536,fi=1MHz,求低音DO〔261Hz〕、中音DO〔523Hz〕、高音DO〔1046Hz〕的計數(shù)值。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1046=65059音符頻率表音符頻率〔HZ〕簡譜碼〔T值〕音符頻率〔HZ〕簡譜碼〔T值〕低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283采用查表程序進展查表時,可以為這個音符建設一個表格,有助于單片機通過查表的方式來獲得相應的數(shù)據(jù):低音0-19之間,中音在20-39之間,高音在40-59之間。用單片機彈奏電子琴,實際上是按照特定的頻率,輸出一連串的方波。為了輸出適宜的方波,首先應該知道音符與頻率的關系。5設計中的難點本次課程對知識的要求較為綜合,我們用到了單片機,數(shù)字電路,單片機各引腳,中斷系統(tǒng)原理等知識。在教師的幫助下,以及自己不斷查找資料,慢慢進入狀態(tài)。我們將編好的源程序輸入電腦,編譯后出現(xiàn)很多錯誤,這些錯誤有許多是平時實驗遇到過的,例如:輸入的分號格式不正確,零和字母O弄混淆。對于中斷程序,運行過程中按鍵控制不穩(wěn)定,不能按照預想的要求控制中斷。鍵盤編程中主要考慮去抖動的問題。當測試說明有鍵被按下之后,緊接著就進展去抖動處理。因為鍵是機械開關構造,由于機械觸點的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動。為保證鍵識別的準確,在電壓信號抖動的情況下不能進展行狀態(tài)輸入。6設計結果當按下鍵盤的1,2,3,4,時,可以發(fā)出DO,RE,M,FA四個音調;按5,6,7,8,八個鍵,能夠發(fā)出升一調的DO,RE,M,FA,如果在前一個按下的鍵發(fā)聲的同時有另一個鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停頓,轉到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音調。7總結與心得在為期一周的單片機課程設計中,我在增長知識、提高能力的同時,產生了很深的感觸。從初步定下方案到編出程序,從不斷的運行排錯到調試成功,在整個設計過程中,著實受益匪淺,不僅可以穩(wěn)固以前所學過的知識,而且學到了很多在書本上所沒有學到過的東西。通過這次的課程設計作品的制作讓我對單片機的理論有了更加深入的了解,同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應用存在著不小的差距,書本上的知識很多都是理想化后的結論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預想中的結果,有時結果甚至很差異很大。通過這次設計,我根本掌握了如何利用keil生成hex文件。通過開發(fā)板的設計和硬件搭建的過程,使我對89c52系單片機的接口有了更深層次的理解,熟悉了一些單片機常用的外圍電路引腳和連接方法。我熟悉了89c52系列單片機內部的存放器和編程規(guī)則,以及如何控制外圍電路。總之,通過這次課程設計,我們都清楚明白了自己的能力有多深,想提高還得歸于多鍛煉,多動手,多向別人學習。8參考文獻[1]陳明熒.8051單片機課程設計實訓教材[M].北京:清華大學出版社,2003年9月[2]徐新艷.單片機原理、應用與實踐[M].北京:高等教育出版社,2005年3月[3]張淑清,姜萬錄等,單片微型計算機接口技術及應用[M].國防工業(yè)出版社,2003[4]馮博琴,微型計算機原理與接口技術[M].清華大學出版社,20049附錄:系統(tǒng)程序源碼/***********************************************************實驗名稱:簡易電子琴的程序程序說明:能夠實現(xiàn)單獨演奏功能,其中按鍵-8是用于單獨演奏的***********************************************************/#include<reg52.h>#include<intrins.h>//本程序是電子琴的程序,能夠實現(xiàn)單獨演奏功能。其中,按鍵1-8是用于單獨演奏的unsignedintcodetone_delay_table[]={63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110};//各音符對應的延時表sbitbeep=P3^5;//蜂鳴器的位定義unsignedcharSound_Temp_TH0,Sound_Temp_TL0;//音符定時器初值暫存voiddelay_1ms(unsignedinti){while(i--);}//延時//鍵盤矩陣掃描//返回按下的鍵的值unsignedcharkeys_scan(void){unsignedcharTmp,k=16;P2=0x0F;delay_1ms(2000);Tmp=P2^0x0F;switch(Tmp)//確定掃描的是哪一列{case1:k=0;break;case2:k=1;break;case3:k=2;break;case4:k=3;break;default:return16;//無鍵按下,返回}P2=0xF0;delay_1ms(2000);Tmp=(P2>>4)^0x0F;switch(Tmp)//確定掃描的是那一行{case1:k+=0;break;case2:k+=4;break;case3:k+=8;break;case4:k+=12;break;default:return16;/

溫馨提示

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

評論

0/150

提交評論