已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機課程設計題目名稱: 基于單片機的可演奏電子琴設計 專業(yè)班級: 學生姓名: 學 號: 指導教師: 成績:評語:指導老師簽名: 日期: 摘 要電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要內容是用AT89c51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。Abstract Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content is AT89C51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value. 目錄 摘 要1Abstract11 系統(tǒng)概述31.1 課程設計的目的和意義31.2 本系統(tǒng)主要研究內容31.3 本系統(tǒng)主要研究目標41.4主要芯片簡介42 方案論證42.1 控制模塊選擇方案42.2 按鍵模塊選擇方案53 方案的實現53.1系統(tǒng)實現的具體措施53.2系統(tǒng)硬件設計63.2.1 系統(tǒng)硬件總體設計63.2.2子系統(tǒng)(模塊)一63.2.3子系統(tǒng)(模塊)二73.2.4 子系統(tǒng)(模塊)三83.3系統(tǒng)軟件設計93.3.1系統(tǒng)軟件總體設計93.3.2子程序(模塊)一:LED顯示93.3.3子程序(模塊)二:揚聲器103.3.4子程序(模塊)三:矩陣鍵盤114 系統(tǒng)調試124.1 Proteus 簡介124.2 keil 簡介124.3 Proteus和Keil的聯調135 設計心得14參考文獻15附錄1:16 1 系統(tǒng)概述 1.1課程設計的目的和意義 單片微型計算機是大規(guī)模集成電路技術發(fā)展的產物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應用廣泛的特點。它的應用必定導致傳統(tǒng)的控制技術從根本上發(fā)生變革。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項重大課題。 電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要內容是用AT89S51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。 本文主要對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調試來詳細闡述。本系統(tǒng)是簡易電子琴的設計,按下鍵盤矩陣中的按鍵會使數碼管顯示當前按鍵,揚聲器播放器對應的音符。通過設計本系統(tǒng)可了解單片機的基本功能。對單片機的了解有一個小的飛躍。1.2 本系統(tǒng)主要研究內容本系統(tǒng)設計制作一個可演奏的電子琴。綜合應用了兩項設計。(1)鍵盤矩陣識別。即矩陣掃描,顯示當前按鍵。(2)不同頻率音符播放??梢酝ㄟ^按鍵控制16種發(fā)音。1.3 本系統(tǒng)主要研究目標 本系統(tǒng)的設計是為了實現按下矩陣鍵盤中的按鍵會使數碼管顯示當前按鍵,揚聲器播放對應音符的目標。1.4主要芯片簡介 AT89c51簡介AT89c51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89c51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。 AT89c51具有如下特點:40個引腳(引腳圖如圖1-2所示),4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。 此外,AT89c51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。2 方案論證2.1 控制模塊選擇方案方案一:用可控硅制作電子琴。將220V交流電經變壓器降壓,再經過整流、濾波,獲得+13.5V直流電壓。將單向可控硅SCR和電阻、電容組成馳張振蕩器電路。但該設計方案制作成本高且復雜。 方案二: 采用AT89C51單片機進行控制,由于其性價比高,完全滿足了本作品智能化的要求,它的內部程序存儲空間達到4K,使軟件設計有足夠的內部使用空間并且方便日后系統(tǒng)升級,使用方便,抗干擾性能提高。 選擇方案:鑒于上述對比與分析,AT89C51單片機設計微型電子琴的方法,僅需AT89C51最小系統(tǒng),擴展一組矩陣鍵盤,再接一組發(fā)光二極管用來指示電子琴的工作狀態(tài)。所以,本設計采用方案二。2.2 按鍵模塊選擇方案傳統(tǒng)電子琴可以用鍵盤上的“1”到“A”鍵演奏從低SO到高DO等11音。該設計有16個按鈕矩陣,設計成16個音,可以實現音階在低音4-高音5之間。比傳統(tǒng)音階范圍大,彈奏效果好。3 方案的實現3.1系統(tǒng)實現的具體措施 鍵盤接口必須具有的4個基本功能。(1)去抖動:每個按鍵在按下或松開時,都會產生短時間的抖動。抖動的持續(xù)時間與鍵的質量相關,一般為520mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。去抖問題可通過軟件延時或硬件電路解決。(2)防串鍵:防串鍵是為了解決多個鍵同時按下或者前一按鍵沒有釋放又有新的按鍵按下時產生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當有兩個或兩個以上的按鍵按下時,只把最后釋放的鍵當作有效鍵并產生相應的鍵碼。N鍵輪回,是當檢測到有多個鍵被按下時,能根據發(fā)現它們的順序依次產生相應鍵的鍵碼。(3)被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結合的方法完成。常用的方法有行掃描法和線反轉法兩種。行掃描法的基本思想是,由程序對鍵盤逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設置入口、輸出口一個,該方法在微機系統(tǒng)中被廣泛使用。線反轉法的基本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個可編程的雙向輸入/輸出端口。(4)鍵碼產生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,一般在內存區(qū)中建立一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用AT89C51的并行口P0接44矩陣鍵盤,以P0.0P0.3作輸入線,以P0.4P0.7作輸出線;在數碼管上顯示每個按鍵的“0F”序號。3.2系統(tǒng)硬件設計3.2.1 系統(tǒng)硬件總體設計本系統(tǒng)由鍵盤矩陣、LED顯示管、揚聲器這幾個部分組成,LED顯示管顯示當前按鍵,揚聲器發(fā)出對應音符。硬件總體設計圖如下: 圖13.2.2子系統(tǒng)(模塊)一LED顯示模塊如圖2-2所示,利用AT89c51單片機的P0端口的P0.0P0.7連接到一個七段數碼管的ah的筆段上,數碼管的公共端接電源。矩陣掃描顯示當前按鍵模塊如下: 圖23.2.3子系統(tǒng)(模塊)二矩陣掃描揚聲器發(fā)出對應音符模塊如下:圖33.2.4 子系統(tǒng)(模塊)三矩陣鍵盤模塊如下:圖4矩陣式鍵盤的結構與工作原理在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及編程方法如下所述。3.3系統(tǒng)軟件設計3.3.1系統(tǒng)軟件總體設計本系統(tǒng)的軟件總的流程圖如下:圖5系統(tǒng)總程序見附錄子程序(模塊)一:LED顯示I/O并行口直接驅動LED顯示把“AT89C51”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到一位數碼管的ah端口上;要求:P2.0/A8與a相連,P2.1/A9與b相連,P2.2/A10與c相連,P2.7/A15與h相連。表1: 表1 字形碼表及對應的音符10x3f低 5 SO90x7f中 6 LA20x06低 6 LAA0x6f中 7 SI30x5b低 7 SIb0x77高 1 DO40x4f中 1 DOC0x7c高 2 RE50x66中 2 RED0x39高 3 M60x6d中 3 ME0x5e高 4 FA70x7d中 4 FAF0x79高 5 SO80x07中 5 SO00x71高 6 LA在本設計中,數碼管的顯示通過 P2=DSY_CODEk 這句語言來查表并輸出,實現音符的顯示。具體程序見附錄13.3.3子程序(模塊)二:揚聲器一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。若要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P3.7反相,然后重復計時再反相。就可在P3.7引腳上得到此頻率的脈沖。利用AT89C51的內部定時器使其工作計數器模式(MODE1)下,改變計數值TH0及TL0以產生不同頻率的方法產生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計數器計時956s/1s956,每計數956次時將I/O反相,就可得到中音DO(523Hz)。 計數脈沖值與頻率的關系式是: Nfi2fr 式中,N是計數值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產生的頻率。其計數初值T的求法如下: T65536N65536fi2fr例如:設K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數值。 T65536N65536fi2fr6553610000002fr 65536500000/fr低音DO的T65536500000/26263628中音DO的T65536500000/52364580高音DO的T65536500000/104665058我們要為這個音符建立一個表格,單片機通過查表的方式來獲得相應的數據:uint code Tone_Delay_Table = 64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178 ; 具體程序見附錄13.3.4子程序(模塊)三:矩陣鍵盤矩陣式鍵盤的按鍵識別方法:確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。1、判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。具體程序見附錄14 系統(tǒng)調試4.1 Proteus 簡介 Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。該軟件的特點: 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產品中具有明顯的優(yōu)勢。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片。總之該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AVR、PIC。4.2 keil 簡介單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。4.3 Proteus和Keil的聯調使用步驟: 1、打開keil,建立工程,輸入程序2、編譯和生成hex文件。3、打開Proteus,設計硬件電路圖。4、導入hex文件。將鼠標置于電路圖中AT89C51器件上,右擊后再左擊,在出現的窗口中找到如下圖所示的Program File對話框,并填入hex文件對應的路徑。 圖65、 點擊面板左下角的,開始調試。6、 按下任意鍵,揚聲器發(fā)出對應的聲音,并在數碼管上顯示出鍵值,例如,按下KF按鍵,仿真結果如下:圖77、按下另外一個K9鍵,仿真結果如下:圖8其他的同理。5 設計心得 將程序導入AT89C51芯片,調試成功后,可任意彈奏自己想要的旋律。本課題通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,于是我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可,然后我們利用功放電路來將音樂聲音放大,同時通過顯示模塊來確知自己所彈的音符。通過這次課程設計,我感覺收獲了很多:首先,通過實踐,加深對單片機系列知識及其系統(tǒng)的認識。這個設計題目并不是新的,但從中能體現到一個系統(tǒng)開發(fā)設計的過程,足于讓我們受益。第二,通過設計學習到了很多軟件的使用。本次設計,軟件部分用到了proteus進行硬件設計,用keil4進行程編譯。第三,提高了自己的動手能力。動手在一定程度上反映了一個人的能力,作為當代大學生,社會要求的我們不是只能說而不能做的人才;三能人才標準更讓我們清醒地認識到,實際動手能力無比重要。從這次實物制作中,我的動手能力提高了。感謝學院給了我們這次實踐動手的機會,更感謝我們的郭老師教會了我們單片機相關知識。 本設計還可以擴展其他功能,比如記憶功能,即可以存儲彈奏者所彈奏的音樂且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂一點,增加一些彩燈使彩燈隨著音調變化而產生不同的樣式。 參考文獻1譚浩強編著.C程序設計.北京:清華大學出版社,2002.2王東峰等.單片機C語言應用100例M.電子工業(yè)出版社,2009.3李平等.單片機入門與開發(fā)M.機械工業(yè)出版社,2008.4周潤景等.Proteus在MCS-51&ARM7系統(tǒng)中的應用百例M.電子工業(yè)出版社,200.5馮博琴.微型計算機原理與接口技術.清華大學出版社,2004.6張曉麗等數據結構與算法北京:機械工業(yè)出版社,2002.7黃鑫,馬善農,趙永科.基于CPLD的電子琴研究與設計J.科技廣場,2007(5).8趙輝,劉印華.PROTEL99電子線路CAD.北京郵電大學出版社,2008.9求是科技.單片機典型模塊設計實例導航.北京:人民郵電出版社,2005.10馬忠梅,籍順心等.單片機的C語言應用程序設計H.北京:北京航空航天大學出版社,2007.附錄1:/名稱:可演奏的電子琴/本例在矩陣鍵盤上模擬演奏電子琴,數碼管顯示按鍵號#include #define uchar unsigned char#define uint unsigned int /共
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030德國工業(yè)自動化行業(yè)市場發(fā)展現狀行業(yè)政策分析投資評估發(fā)展研究報告
- 2025-2030德國工業(yè)機器人行業(yè)市場現狀供需考察及自動化設備投資未來規(guī)劃分析文件
- 2025-2030德國尖銳濕疣的表皮生長因子行業(yè)市場現狀分析及投資評估規(guī)劃
- 2025-2030德國醫(yī)療耗材生產制造業(yè)市場供需分析及投資價值預估規(guī)劃評估研究報告
- 2025-2030德國信息技術行業(yè)市場供需分析發(fā)展評估投資分析規(guī)劃研究報告
- 2025-2030循環(huán)經濟行業(yè)市場發(fā)展現狀分析及發(fā)展趨勢與投資前景預測研究報告
- 2025-2030循環(huán)經濟產業(yè)價值鏈重構與資源再利用技術創(chuàng)新研究
- 2025-2030廢棄物處理供應鏈市場發(fā)展供給需要分析投資評估規(guī)劃報告
- 2025-2030布隆迪-logistics園區(qū)標準化建設運營現狀投資風險評估方案
- 2025-2030布基納法索農產品加工市場供需生產力考察分析及投資動力轉移規(guī)劃方案
- 物流倉儲管理表格庫存狀態(tài)與操作指導模板
- 日本風格家居空間設計解析
- 商鋪應急預案范本(3篇)
- 淺析國有參股企業(yè)股權管理優(yōu)化方案構建與實施
- 住院患者非計劃性拔管循證預防與安全管理體系構建
- 后勤工作會議講話稿
- DB11∕T 1831-2021 裝配式建筑評價標準
- 2024-2025學年度陜西能源職業(yè)技術學院單招《職業(yè)適應性測試》考試歷年機考真題集(易錯題)附答案詳解
- 2025-2026學年度武漢市部分學校高三年級九月調研考試 數學試卷(含答案解析)
- 2025年護士長競聘上崗理論測試題(附答案)
- 小區(qū)樓道物業(yè)清理方案(3篇)
評論
0/150
提交評論