基于單片機的簡易電子琴電路設計_第1頁
基于單片機的簡易電子琴電路設計_第2頁
基于單片機的簡易電子琴電路設計_第3頁
基于單片機的簡易電子琴電路設計_第4頁
基于單片機的簡易電子琴電路設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計任務書題 目: 基于單片機的簡易電子琴電路設計 初始條件:簡易電子琴一般具有彈奏一個自然大調7聲音階的功能。本課程設計,要求用AT89C51等系列芯片實現(xiàn)控制功能,利用按鍵實現(xiàn)音符和音調的輸入;兩位的數(shù)碼管進行被操作的按鍵顯示;用LM386放大電路實現(xiàn)低音頻功率放大;最后用蜂鳴器進行播放“送別”。要求完成的主要任務: 1.設計任務 根據(jù)已知條件,設計并制作一個簡易電子琴。 2.設計要求 (1)基本要求: 具備7個按鍵,能夠分別較準確地彈奏出17八個音符。 選擇電路方案,完成對確定方案電路的設計。計算電路元件參數(shù)與元件選擇、并畫出總

2、體電路原理圖,闡述基本原理。用EWB或MULTISIM軟件完成仿真,之后制作出相應實物,并按規(guī)定格式寫出課程設計報告書。(2)擴展要求:(在完成基本要求的前提下,學有余力的同學可完成)  能夠彈奏出至少21個音符(三個音階)。  能夠較便捷地完成音階的升降。(用另外三個按鍵開關實現(xiàn)正常、升8度和降8度的切換)。時間安排: 序號階 段 內 容所需時間(周)1方案選擇及電路設計假期進行2制作、編程、調試13撰寫課程設計報告及答辯1合 計2指導教師簽名: 年 月 日 基于單片機的簡易電子琴控制系統(tǒng)設計摘要目的:本設計主要研究基于AT89C52單片機的簡易電子琴

3、設計。方法:它是以單片機作為主控核心,設置鍵盤、蜂鳴器等外圍器件;另外還用到一些簡單器件如:兩位數(shù)碼管,和NPN型三極管及電阻等。利用按鍵實現(xiàn)音符和音調的輸入;兩位的數(shù)碼管進行被操作的按鍵顯示;用NPN型三極管8550實現(xiàn)低音頻功率放大;最后用蜂鳴器進行播放“送別”。結果:本設計硬件部分主要由最小系統(tǒng),按鍵系統(tǒng)模塊、數(shù)碼管顯示模塊和蜂鳴器模塊組成。其軟件部分主要有主程序模塊、定時中斷程序、定時計數(shù)程序、顯示程序。(1)最小系統(tǒng):它是單片機應用系統(tǒng)的設計基礎。它包括單片機的選擇、時鐘系統(tǒng)設計、復位電路設計、簡單的I/O口擴展、掉電保護等。(2)按鍵系統(tǒng)模塊:本設計采用10個按鍵,其中7個按鍵用來

4、顯示7個音調,其它3個按鍵可以進行高低中音的切換,并自動播放已存歌曲。(3)數(shù)碼管顯示模塊:SM420562段選端接在單片機的P0口,兩個位選端分別接在P20和P21。(4)蜂鳴器模塊:此電子琴發(fā)音電路是通過三極管驅動蜂鳴器發(fā)音,經(jīng)過上拉電阻提高驅動能力。結論:本次設計首先對單片機設計簡易電子琴仔細分析,接著制作硬件電路和編寫軟件的程序,最后進行軟硬件的調試運行。并且從原理圖,主要芯片,各模塊的原理和各個模塊的程序調試來闡述。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,實現(xiàn)高、中、低共21個音符的發(fā)音和顯示和音樂播放時的控制顯示,并且能自動播放程序中編排的音樂。系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡

5、單,軟件功能完善,控制系統(tǒng)可靠,性價比高等,具有一定的使用和參考價值。關鍵詞: 單片機 定時中斷 蜂鳴器 數(shù)碼管 c語言編程1 系統(tǒng)設計本項目所制作的電子琴控制系統(tǒng)是以51單片機為核心的系統(tǒng),它主要包括模擬信號主控芯片89C52、發(fā)音單元、顯示模塊、按鍵模塊組成。具體方案如圖1-1所示: 89C52單片機發(fā)音單元 按鍵模塊顯示模塊圖1-1 系統(tǒng)模塊采用AT89C52單片機作為主控芯片,設置鍵盤、蜂鳴器等外圍器件,另外還用到一些簡單器件如:兩位數(shù)碼管,和NPN型三極管及電阻等。利用按鍵實現(xiàn)音符和音調的輸入;兩位的數(shù)碼管進行被操作的按鍵顯示;用NPN型三極管8550實現(xiàn)低音頻功率放大;最后用蜂鳴器

6、發(fā)音。2 硬件電路設計2.1顯示部分設計(1)數(shù)碼顯示方式數(shù)碼顯示有靜態(tài)顯示方式與動態(tài)顯示方式兩種。工作在靜態(tài)顯示方式時,數(shù)碼管的位線與電源一直相連,數(shù)碼管中的二極管均處于通電狀態(tài),即在靜態(tài)工作方式下,顯示電路中數(shù)碼管的位選線是同時選通,而數(shù)碼管的段選線是獨立輸入。工作在動態(tài)顯示方式時,數(shù)碼管的位線在掃描控制電路的控制下按設定順序導通,即電路中的數(shù)碼管是逐個接通電源,數(shù)碼管的段選線以并聯(lián)方式與譯碼電路聯(lián)接,即在動態(tài)工作方式下,數(shù)碼管不是同時導通顯示而是按照設定順序分時導通顯示。 (2)八位數(shù)碼管的結構本次課程設計的顯示電路采用兩位數(shù)碼管進行顯示,由于此設計采用的是共陰極的,使用時不加限流電阻為

7、了顯示字符,要為 LED 顯示器段碼,除了組成8字形的字符的 7段,另加上1個小數(shù)點位,共計8段, 因此提供給 LED 顯示器的顯示段碼為1個字節(jié)。 圖2-1 數(shù)碼管電路2.2按鍵部分設計(1)操作鍵設計常用的按鍵有三種:機械觸點式按鍵、導電橡膠式和柔性按鍵(又稱觸摸式鍵盤)。  機械觸點式按鍵是利用機械彈性使鍵復位,手感明顯,連線清晰,工藝簡單,適合單件制造。但是觸點處易侵入灰塵而導致接觸不良,體積相對較大。  導電橡膠按鍵是利用橡膠的彈性來復位,通過壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量生產(chǎn)。但是時間長了,橡膠老化而使彈力下

8、降,同時易侵入灰塵。  柔性按鍵是近年來迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。柔性按鍵最大特點是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形和面板的布局、色彩、鍵距可按照整機的要求來設計。但是由于客觀條件與經(jīng)濟能力有限,本系統(tǒng)采用機械觸點式按鍵。(2)鍵盤設計鍵盤在單片機應用系統(tǒng)中是一個關鍵的部件,它能實現(xiàn)向計算機輸入數(shù)據(jù),傳送命令等功能,是人工干預計算機的主要手段。鍵盤可以分為2類:獨立連接式鍵盤和矩陣式鍵盤。矩陣式鍵盤:單片機系統(tǒng)中,若按鍵較多時,通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上。顯然,在按鍵數(shù)量較

9、多時,矩陣式鍵盤較之獨立式按鍵鍵盤要節(jié)省很多I/O口。矩陣式鍵盤中,行、列線分別連接到按鍵開關的兩端,行線通過上拉電阻接到+5V上當無鍵按下時,行線處于高電平狀態(tài);當有鍵按下時,行、列線將導通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關鍵。獨立連接式鍵盤:獨立式按鍵是直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。獨立式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一根I/O口線,然而,在按鍵較多時,I/O口線浪費較大,不宜采用。獨立式按鍵軟件常采用查詢式結構。先逐位查詢每根I/O口線的輸入

10、狀態(tài),如某一根I/O口線輸入為低電平,則可確認該I/O口線所對應的按鍵已按下,然后,再轉向該鍵的功能處理程序。由于本程序較為簡單,為了使用方便及節(jié)省資源,選擇獨立式鍵盤。下圖為獨立式鍵盤電路圖: 圖2-2 獨立式鍵盤電路圖(3)去抖動鍵盤編程中主要考慮去抖動的問題。當測試表明有鍵被按下之后,緊接著就進行去抖動處理。因為鍵是機械開關結構,由于機械觸點的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動。為保證鍵識別的準確,在電壓信號抖動的情況下不能進行行狀態(tài)輸入。為此需進行去抖動處理。去抖動有硬件和軟件兩種方法。硬件方法就是加去抖動電路,從根本上避免抖動的產(chǎn)生。軟件消抖,在第一次檢測到有

11、鍵按下時,執(zhí)行一段延時程序之后,再檢測此按鍵,如果第二次檢測結果仍為按下狀態(tài),CPU便確認此按鍵己按下,消除了抖動。2.3發(fā)音部分設計如下圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構成。由三極管來驅動揚聲器發(fā)音的,同時加上拉電阻增強驅動電流,提高驅動能力。圖2-3 獨立式鍵盤電路圖3 軟件程序設計3.1 系統(tǒng)分析(1)系統(tǒng)軟件的組成 鍵盤掃描程序:檢測是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉至功能轉移程序;無按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測。 功能轉移程序:對檢測到的按鍵值進行判斷,是琴鍵則跳轉至琴鍵處理程序,是功能鍵則跳轉至相應的功能程序,我們設計的功能程序有兩種,即音色調

12、節(jié)功能和自動播放樂曲的功能。 琴鍵處理程序:根據(jù)檢測到的按鍵值,查詢音調表,給計時器賦值,使發(fā)出相應頻率的聲音。 自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有按鍵按。3.2 參數(shù)計算(1)發(fā)音原理若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P1.0反相,然后重復計時再反相。就可在P1.0引腳上得到此頻率的脈沖。利用AT89C51的內部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及

13、TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。(2) 計算舉例例如,頻率為523Hz,其周期T1/5231912s,因此只要令計數(shù)器計時956s/1s956,每計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。計數(shù)脈沖值與頻率的關系式是:Nfi÷2÷fr,式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計數(shù)初值T的求法如下:T65536N65536fi÷2÷fr例如:設K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi÷2÷fr65536100

14、0000÷2÷fr65536500000/fr,中音DO的T65536500000/52364580。(3)計算結果(1)單片機12MHZ晶振,中音符與計數(shù)T0相關的計數(shù)值如表所示:音符頻率(HZ)計數(shù)值(T值)音符頻率(HZ)計數(shù)值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104

15、665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283采用查表程序進行查表時

16、,可以為這個音符建立一個表格,有助于單片機通過查表的方式來獲得相應的數(shù)據(jù):低音019之間,中音在2039之間,高音在4059之間。用單片機播放音樂,或者彈奏電子琴,實際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應該知道音符與頻率的關系。(2)音調數(shù)據(jù)表曲調值DELAY曲調值DELAY調4/4125ms調4/462ms調3/4187ms調3/494ms調2/4250ms調2/4125ms上表中的頻率數(shù)值,有些過多,去掉不常用的黑鍵頻率,只是把白鍵對應的數(shù)據(jù)存放在單片機中,即可滿足絕大部分的應用需求。定義音調數(shù)據(jù)表的程序如下:DW 63628,63835,64021,64103

17、,64260,64400,64524 64580,低音區(qū):1 2 3 4 5 6 7 DW 64580,64671,64777,64820,64898,64968,65030 65058中音區(qū):1 2 3 4 5 6 7 DW 65058,65110,65157,65178,65217,65252,65283 65312高音區(qū):1 2 3 4 5 6 7把這個數(shù)據(jù)表,放在程序中,需要播音的時候,就從表中取出一個數(shù)據(jù)送到定時器,當定時器溢出中斷的時候,再對輸出引腳取反,那么,在揚聲器中,即可聽到上表中頻率的聲音。3.3程序設計(1) 判斷音階(高中低音)子程序 在軟件設計中采用yinjie代表音

18、階,如下所示音階Yinjie值高2中1低0初始化狀態(tài)為中音(yinjie=1),電路中設計高、低兩個音階鍵。上電后,若無按鍵按下,則為中音模式。若音階鍵被按下,則如下流程圖所示,初始化后進行按鍵掃描,在高音鍵按下,若初始yinjie不為2,則另yinjie=2,進入高音工作模式,若初始yinjie為2,則對yinjie進行初始化,即另yinjie=1,重新進入進入中音工作模式,這樣即實現(xiàn)了高音鍵切換高、中音方式的轉換。同理,用低音鍵實現(xiàn)中、低音的切換。圖3-1 判斷音階(高中低音)子程序(2) 播放子程序(包括自動播放存儲音樂和按鍵發(fā)音)本設計共兩種播放模式,包括自動播放存儲音樂和按鍵發(fā)音。上

19、電后,首先開中斷并設定定時器0為工作方式1,當自動播放鍵按下時,進入中斷,根據(jù)樂譜在定義的音頻數(shù)組中查找相應音律,然后給定時器賦初值,即開始播放音樂。當DO、RE、MI、FA、SO、LA、SI七種音符鍵按下時,根據(jù)音階值(如3.3.1中高中低對應)和音符值在定義的音頻數(shù)組中查找相應音律,然后給定時器賦初值,即按鍵發(fā)音。圖3-2 播放子程序(3)由此可得系統(tǒng)總體功能流程圖 圖3-3 系統(tǒng)總功能流程圖 4 系統(tǒng)仿真與調試4.1硬件調試硬件調試主要是針對單片機部分進行的調試。在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個調試工作的第一步,也是非常重要的一個步驟。在這部分調試中主要使用的

20、工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況的任務。注意焊點之間,確保焊點沒有短接在一起,同時注意焊點的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常且無異常情況(斷路或短路)的情況下方可上電調試,上電調試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確,在本次設計中,上電調試主要是檢測單片機控制部分、數(shù)碼管點亮部分、和音頻轉換電路硬件調試。(1)、數(shù)碼管LED電路調試:接通電源,隨機按下按鈕可以看到數(shù)碼管顯示數(shù)字。(2)、鍵盤單片機控制部分調試:上電后,隨機按動鍵盤可以發(fā)現(xiàn)各個按鍵對應的音正確。4.2 軟件調試調試主要方法和技巧:通常一個調試程序應該具備至少四種性能:

21、跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調用各個子程序實現(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運行,各個模塊的子程序的正確與平穩(wěn)運行必不可少,所以在軟件調試的最初階段就是把各個子程序模塊進行分別調試。4.3 仿真結果(任舉一例)圖4-1 低音音符DO仿真圖4.4 結果分析根據(jù)仿真結果可知,本次課程設計能夠準確并徹底的完成設計要求。左側數(shù)碼管可以顯示a、b、c三種結果,分別代表低音、中音和高音。右側數(shù)碼管可以顯示1、2、3、4、5、6、7七個數(shù)字,分別代表DO、RE、MI、FA、SO、LA、SI七種音符。下面以4.3為例具體進行分析:當系統(tǒng)上電后,若按下低音鍵(如圖P3.6),,

22、則選定工作方式為低音模式,圖中a即代表低音。P0口連接數(shù)碼管段選端,右側數(shù)碼管顯示的1即代表DO。兩位數(shù)碼管即代表低音DO。5 總結與展望總體來說,此次單片機課程設計使我們收獲良多,雖然課程設計的過程中遇到了很多困難與問題,但我們最終還是完成了設計的任務及要求。具體來說可以分為以下幾點:第一,不夠細心,不夠嚴謹(如因為粗心大意而焊錯線);第二,因對課本理論的掌握度不夠導致編程出現(xiàn)錯誤;第三,硬件方面,剛開始有的程序模塊不能實現(xiàn)預期的效果,對于有的硬件,在實物制作過程中焊了比較多的排線,同時對于整體各元器件的布局都有很高的要求。不過在向同學請教,各方面都有了不同程度的改善;第四,在做人方面,我認

23、識到,無論做什么事情,只要你足夠堅強,有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。這次課程設計中,經(jīng)過我們的努力,在仿真軟件和實物上都實現(xiàn)了高、中、低21個音符的發(fā)聲和音樂的自動播放,使我們有了一定的成就感,也使我們進一步熟悉和掌握了單片機的內部結構和工作原理,了解了單片機應用系統(tǒng)設計的基本方法和步驟, 掌握了單片機仿真軟件Proteus的使用方法和鍵盤、顯示器在的單片機控制系統(tǒng)中的應用,同時也掌握了撰寫課程設計報告的方法??傊ㄟ^這次課程設計,我們都清楚明白了自己的能力有多深,想提高還得歸于多鍛煉,多動手,多向別人學習。6 參考文獻【1】余發(fā)山、王福忠. 單片機原理及應

24、用技術. 中國礦業(yè)大學出版社.2008年6月第1 版【2】楊凌霄. 微型計算機原理與應用,中國礦業(yè)大學出版社.2008年8月第一版【3】康華光. 電子技術基礎(數(shù)字部分),高等教育出版社.第五版【4】徐志軍,伊廷輝等. EDA技術與PLD設計 人民郵電出版社, 2006年2月第1版【5】李朝青. 單片機原理及接口技術M. 北京:北京航天航空大學出版色,2001.【6】胡漢才. 單片機原理及其接口技術M. 北京:清華大學出版社,2004.附件1:源程序代碼#include<reg52.h> #define keyport P1#define uchar unsigned char#d

25、efine uint unsigned intuchar high,low; /定時器預裝值的高8位和低8位sbit speak=P30;sbit gao=P35;sbit di=P36;sbit zdbf=P37;uchar yinjie=1;uchar time;uchar n=0;uchar bo=0;uchar code fre2= 0x8c,0xf8,0x5b,0xf9,0x15,0xfa,0x67,0xfa,0x90,0xfb,0xae,0xfb,0x0c,0xfc, /低音 0x44,0xfc,0xac,0xfc,0x09,0xfd,0x34,0xfd,0x82,0xfd,0xc

26、2,0xfd,0x06,0xfe, /中音0x22,0xfe,0x56,0xfe,0x85,0xfe,0x9a,0xfe,0xc1,0xfe,0xe4,0xfe,0x03,0xff, /高音 ;void delay(uint );void ITimer0(void);/定時器初始化void key(void);void dtxs(int,int);void song()TH0=high;TL0=low;TR0=1;delay(time*240); void yinyue()uchar code hls= 5,2,2, 3,2,1, 5,2,1, 1,3,4, 6,2,2, 1,3,2, 5,2

27、,4, 5,2,2, 1,2,1, 2,2,1 ,3,2,2 ,2,2,1, 1,2,1 ,2,2,6, 5,2,2, 3,2,1, 5,2,1, 1,3,3, 7,2,1, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6, 6,2,2, 1,3,2, 1,3,4, 7,2,2, 6,2,1, 7,2,1, 1,3,4 ,6,2,1,7,2,1, 1,3,1 ,6,2,1, 6,2,1 ,5,2,1 ,3,2,1, 1,2,1, 2,2,6, 5,2,2, 3,2,1, 1,2,1, 1,3,3, 7,2,1, 6,2

28、,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6 ;uchar m;n=0; while(n<174) m=hlsn+7*(hlsn+1-1)-1;high=frem1;low=frem0;time=hlsn+2;n=n+3;song(); void main (void)uchar num;ITimer0();speak=0;while(1)key();switch(keyport)case 0xfe:num=1;break;case 0xfd:num=2;break;case 0xfb:num= 3;break; case 0xf7:num= 4;break; case 0xef:num= 5;break; case 0xdf:num= 6;break; case 0xbf:num= 7;break; case 0x7f:num= 8;break; default:num=

溫馨提示

  • 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

提交評論