多功能電子琴設(shè)計報告_第1頁
多功能電子琴設(shè)計報告_第2頁
多功能電子琴設(shè)計報告_第3頁
多功能電子琴設(shè)計報告_第4頁
多功能電子琴設(shè)計報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、中國民航飛行學院中國民航飛行學院 綜合課程設(shè)計綜合課程設(shè)計 項目名稱:項目名稱:多功能電子琴設(shè)計多功能電子琴設(shè)計 指導老師:指導老師:高麗霞高麗霞 姓姓 名:名:劉琛劉琛 潘龍潘龍 劉繁榮劉繁榮 劉宜武劉宜武 陸韜陸韜 專專 業(yè):業(yè):電子信息工程電子信息工程 2010 年 11 月 19 日 目錄 1.系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計 .- 2 - 1.1 系統(tǒng)設(shè)計要求 .- 2 - 1.2 系統(tǒng)總體設(shè)計方案 .- 2 - 1.2.1 系統(tǒng)設(shè)計思路.- 2 - 1.2.2 系統(tǒng)總體組成框圖.- 3 - 2.2. 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計.- 4 - 2.1 主控制模塊 .- 4 - 2.2 琴鍵控制模

2、塊 .- 4 - 2.3 播放模塊 .- 5 - 2.4 顯示模塊 .- 6 - 2.5 電源模塊 .- 7 - 3.3.系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.- 7 - 3.1 主程序流程說明 .- 7 - 3.2 琴鍵掃描程序 .- 8 - 3.3 顯示程序流程說明 .- 9 - 3.4 播放程序 .- 10 - 3.5 尋音程序 .- 11 - 4 系統(tǒng)測試系統(tǒng)測試.- 13 - 4.1 顯示模塊測試.- 13 - 4.2 播放模塊測試.- 13 - 4.3 整體測試.- 13 - 5.5.總結(jié)總結(jié).- 15 - 參考文獻參考文獻.- 16 - 附錄附錄.- 17 - 附錄一 元件清單 .- 17

3、- 附錄二 系統(tǒng)使用說明 .- 18 - 附錄三 系統(tǒng)仿真電路 .- 19 - 附錄四 程序清單 .- 20 - 1.系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計 1.11.1 系統(tǒng)設(shè)計要求系統(tǒng)設(shè)計要求 本設(shè)計利用單片機的控制程序、44 的鍵盤矩陣、LED 數(shù)碼顯示管設(shè)計一 臺多功能電子琴。 其基本功能如下: (1)可以播放兩個八度的音階; (2)可以彈奏想要的音樂; (3)可以播放預先存儲在單片機里的音樂; (4)可以在 LED 數(shù)碼管上顯示正在播放和彈奏的音階。 1.21.2 系統(tǒng)總體設(shè)計方案系統(tǒng)總體設(shè)計方案 本系統(tǒng)采用 AT89C52 為電子琴控制中心,系統(tǒng)主要包括主控制模塊、琴鍵 控制模塊、播放模塊、顯示

4、模塊和電源模塊。下面對這幾個模塊的設(shè)計進行論 證比較。 1.2.1 系統(tǒng)設(shè)計思路 本設(shè)計采用 AT89C52 單片機作為整個系統(tǒng)的控制中心,控制整個系統(tǒng)的運 行,外加琴鍵控制模塊、播放模塊、顯示模塊和電源模塊使制作的電子琴可以 完成上述功能。琴鍵控制模塊由 16 個按鍵組成,使用者可以通過按不同的琴鍵 彈奏出不同的音階,一段音樂是由許多不同的音階組成,而每個音階對應著不 同的頻率,這樣我們就可以根據(jù)不同的頻率組合得到我們想要的音樂。電源模 塊向單片機、LED 數(shù)碼管等需要供電器件提供電源。播放模塊負責播放琴鍵彈 奏的音階以及播放預先存放在單片機里的音樂,同時顯示模塊會顯示出相應的 音階。下表是

5、不同的音階對應的頻率(以 12MHz 為例) 。 音階頻率(Hz)音階頻率(Hz) 中音 1523高音 11046 中音 2587高音 21174 中音 3659高音 31318 中音 4698高音 41396 中音 5784高音 51567 中音 6880高音 61760 中音 7988高音 71975 表 1.1 各音階對應頻率表 1.2.2 系統(tǒng)總體組成框圖 下圖即為根據(jù)上述描述所繪制的多功能電子琴系統(tǒng)的總體組成框圖: 圖 1.1 系統(tǒng)總體框圖 2.2. 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 2.12.1 主控制模塊主控制模塊 本系統(tǒng)的主控制模塊采用 AT89C52 單片機,AT89C52 單片機是

6、美國 ATMEL 公 司生產(chǎn)的低電壓、高性能 CMOS 單片機,片內(nèi)含 8k bytes 的可反復擦除的 flash 只讀程序存儲器和 256k bytes 的隨機存取數(shù)字存儲器(RAM) ,與標準的 MSC-51 指令系統(tǒng)及 8052 引腳兼容,片內(nèi)置通用 8 位中央處理器(CPU) ,可以 滿足不同控制應用場合的要求。對于本次的多功能電子琴系統(tǒng),AT89C52 可以 滿足其對琴鍵的控制要求、輸出音階的控制要求、顯示輸出音階等各模塊的控 制要求。 圖 2.1 AT89C52 管腳圖 2.22.2 琴鍵控制模塊琴鍵控制模塊 電子琴利用 44 的鍵盤矩陣作為電子琴的琴鍵,共有 16 個琴鍵,分別

7、彈 奏兩個八度的音階。其中 14 個作為音符輸入,一個作為播放鍵。將鍵盤矩陣的 接口與 AT89C52 單片機的 P1 口相連接,使鍵盤矩陣受單片機的控制。這樣,當 按下各個音階所代表的按鍵時,系統(tǒng)播放該按鍵代表的音階;當按下播放鍵時 可以使系統(tǒng)播放預存在單片機里的音樂。下表為所用 44 鍵盤矩陣每個按鍵所 代表的音階或功能。 圖 2.2 鍵盤矩陣實物圖 代表音階或功能按鍵代表音階或功能按鍵 中音 1 A 高音 1 # 中音 2 B 高音 2 2 中音 3 C 高音 3 5 中音 4 D 高音 4 8 中音 5 3 高音 5 0 中音 6 6 高音 6 1 中音 7 9 高音 7 4 播放鍵

8、7 表 2.2 4x4 矩陣各按鍵代表音階或功能 2.32.3 播放模塊播放模塊 電子琴的播放模塊是由蜂鳴器組成。蜂鳴器與 AT89C52 單片機的 P3.7 口相 連接,使蜂鳴器受單片機的控制,通過軟件編程,使蜂鳴器播放音階的功能受 鍵盤矩陣的按鍵控制。這樣,當按下某個琴鍵后,蜂鳴器便會發(fā)出的相應的音, 若按下的是播放鍵,蜂鳴器會播放預存在單片機里的音樂。 圖 2.3 播放模塊仿真電路圖 2.42.4 顯示模塊顯示模塊 電子琴的顯示模塊由 LED 數(shù)碼顯示管組成。LED 有著顯示亮度高、響應 速度快的特點,常用的有七段 LED 顯示器。七段 LED 顯示器由 7 個條形發(fā)光 二極管和一個小圓

9、點發(fā)光二極管組成,根據(jù)各管的亮暗組成字符。本系統(tǒng)使用 的 LED 數(shù)碼顯示管是共陰極數(shù)碼顯示管,數(shù)碼顯示管與單片機 P0 口相連接, 受單片機控制,通過軟件編程使數(shù)碼顯示管受鍵盤矩陣控制。這樣,當按下某 個琴鍵后,LED 數(shù)碼顯示管會顯示出所彈奏音符對應的數(shù)字。 圖 2.4 顯示模塊仿真電路圖 2.52.5 電源模塊電源模塊 電子琴的電源模塊有一個手機充電器外加 LM117-5.0 穩(wěn)壓向單片機、LED 數(shù)碼顯示管等元件供電。下圖即為 LM1117-5.0 穩(wěn)壓電源模塊的原理圖。 圖 2.5 LM117-5.0 電源模塊原理圖 3.3.系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 軟件是多功能電子琴系統(tǒng)的主要組成

10、部分,在系統(tǒng)的軟件部份也采用 了模塊化設(shè)計,將系統(tǒng)各模塊的功能編寫成子函數(shù)的形式,這樣增加了系 統(tǒng)軟件的可讀性和可移植性。 3.13.1 主程序流程說明主程序流程說明 總體思想:本系統(tǒng)軟件設(shè)計部分分為三個模塊:琴鍵掃描模塊,顯示模塊, 播放模塊,尋音模塊。尋音模塊是將顯示模塊和播放模塊集合在一個函數(shù)中, 再把幾個模塊的程序結(jié)合在一個主程序中,同時實現(xiàn)鍵盤掃描、LED 數(shù)碼管顯 示音階、播放音階功能。下圖即為主程序流程圖: 圖 3.1 主程序流程圖 3.23.2 琴鍵掃描程序琴鍵掃描程序 (1)44 鍵盤矩陣的識別處理:每個琴鍵都有它的行值和列值,行值和列值 的組合就是這個琴鍵的編碼。矩陣的行線

11、和列線分別通過兩個并行接口和 CPU 通信。 (2)琴鍵處理程序:確定是否有鍵按下,是哪個鍵按下,鍵的功能是什么;還 要消除鍵按下和斷開時的抖動。兩個并行口中,一個輸出掃描碼,使琴鍵 逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同 形成鍵編碼而實現(xiàn)琴鍵識別,通過軟件查表,查出該鍵的功能。 圖 3.2 鍵盤掃描程序流程圖 3.33.3 顯示程序流程說明顯示程序流程說明 利用單片機的 P0 接口連接到共陰極 LED 數(shù)碼管的 7 個接口上,數(shù)碼管的公 共端接地,這樣數(shù)碼管就可以根據(jù)軟件編程中給出的字型顯示指令顯示相應數(shù) 字。下表為 LED 字型顯示代碼表。 顯示字符十六進制代碼顯

12、示字符十六進制代碼 106H96FH 25BHA77H 34FHB7CH 466HC39H 56DHD5EH 67DHE79H 707HF71H 87FHH76H 表 3.1 LED 字型顯示代碼表 下圖為顯示程序的程序流程圖。 圖 3.3 顯示程序流程圖 3.43.4 播放程序播放程序 利用單片機的 P3.7 接口連接到蜂鳴器上,根據(jù)所按下的琴鍵,發(fā)出相應 的聲音。蜂鳴器發(fā)出聲音是利用單片機的定時/計數(shù)器 0 產(chǎn)生不同的頻率方波 信號。定時/計數(shù)器 0 初值計算方法如下: C=(46083/f)*10 (3-1) 其中 f 為對應音階的頻率。 TH0=(8192-C)/32 (3-2) TL

13、0=(8192-C)%32 (3-3) 利用定時/計數(shù)器的定時功能,使 P3.7 口按一定頻率輸出方波,產(chǎn)生對應 音階的音頻輸出。下圖為顯示模塊的程序流程圖。 圖 3.4 播放程序程序流程圖 3.53.5 尋音程序?qū)ひ舫绦?尋音程序是將播放程序和顯示程序集合在一個程序函數(shù)中,使得單片機控 制蜂鳴器播放音階時,可以同時顯示出相同的音階。下圖為尋音程序的程序流 程圖。 圖 3.5 尋音程序流程圖 4 系統(tǒng)測試系統(tǒng)測試 4.14.1 顯示模塊測試顯示模塊測試 對顯示模塊的測試,主要是為了驗證顯示模塊是否能在鍵盤按下某個按鍵 后顯示出相應的數(shù)字。測試步驟具體如下: 第一步:檢查焊接電路板的線路連接是否

14、有錯誤,是否有虛焊、漏焊的地 方,待確定電路連接、焊接均沒有問題后才能進行下一步。 第二步:接通系統(tǒng)的電源,此時,LED 數(shù)碼管應該顯示“8” 。 第三步:按下鍵盤上的任一按鍵,觀察 LED 數(shù)碼管是否有顯示出相應的 數(shù)字,若顯示出正確的數(shù)字,則表明測試成功。若未成功,則應檢查在程序中 是否有錯誤。 4.24.2 播放模塊測試播放模塊測試 對播放模塊的測試,主要是為了驗證播放模塊是否能在鍵盤按下某個按鍵 后播放相應的音階。測試步驟具體如下: 第一步:檢查焊接電路板的線路連接是否有錯誤,是否有虛焊、漏焊的地 方,待確定電路連接、焊接均沒有問題后才能進行下一步。 第二步:接通系統(tǒng)的電源,此時,蜂鳴

15、器應該不發(fā)出任何聲音。 第三步:按下鍵盤上的任一按鍵,聽蜂鳴器是否有播放出相應的音階,若 播放出了正確的音階,則表明測試成功。若未成功,則應檢查在程序中是否有 錯誤。 4.34.3 整體測試整體測試 對系統(tǒng)的整體測試,主要是為了驗證系統(tǒng)是否能在多模塊的組合下完成設(shè) 計需要的功能。測試步驟具體如下: 第一步:檢查焊接電路板的線路連接是否有錯誤,是否有虛焊、漏焊的地 方,待確定電路連接、焊接均沒有問題后才能進行下一步。 第二步:接通系統(tǒng)的電源,此時,LED 數(shù)碼管應該顯示“8” ,蜂鳴器不播 放聲音。 第三步:根據(jù)下表觀察測試現(xiàn)象是否正常。 按鍵數(shù)碼管顯示蜂鳴器播放音階 A1 中音 1 B2 中音

16、 2 C3 中音 3 D4 中音 4 35 中音 5 66 中音 6 97 中音 7 #8 高音 1 29 高音 2 5A 高音 3 8B 高音 4 0C 高音 5 1D 高音 6 4E 高音 7 7 顯示播放音樂的音階播放預存音樂 表 4.1 系統(tǒng)測試對照表 5.5.總結(jié)總結(jié) 本系統(tǒng)以 AT89C52 單片機為核心,結(jié)合顯示模塊、播放模塊、琴鍵控制模 塊和電源模塊,實現(xiàn)兩個八度音階的彈奏,播放預存音樂,同時顯示播放和彈 奏的音階的功能。本系統(tǒng)的設(shè)計和制作是在對設(shè)計電路的仿真基礎(chǔ)上完成的, 通過仿真中發(fā)現(xiàn)的問題對系統(tǒng)的電路和程序進行進一步的調(diào)試,以達到更好的 效果。再根據(jù)仿真的電路制作實際電路

17、,檢驗仿真的正確性。 通過這次課程設(shè)計,我們把平時學習到的知識應用到了實際中,加深了對 所學知識的理解。同時,我們從這次課程設(shè)計中也意識到自己對所學知識的掌 握不夠深入,對單片機系統(tǒng)的了解還不夠細致,以及在編程能力上的缺陷。例 如,在對播放模塊的編程中,由于仿真中播放模塊只能在按鍵按下松開后才能 放音,這與實際的電子琴的功能有差異,本想通過修改程序使蜂鳴器在按鍵按 下時放音,松開后立即停止播放,不過經(jīng)過幾次的程序修改和仿真都未能實現(xiàn) 這一功能。從這點上,就可以看出我們在軟件編程上的缺陷和不足,在以后的 學習中,應該加強這方面的能力。另外,在本次課程設(shè)計的過程中,我們深刻 體會到了團隊合作的重要

18、性,只有一個團隊齊心協(xié)力,每個成員各司其職才可 以把工作做好。 最后,感謝在這次課程設(shè)計過程中為我們設(shè)計能夠最后完成提供幫助和協(xié) 助的老師和同學們! 參考文獻參考文獻 1 李群芳,張士軍,黃建. 單片微型計算機與接口技術(shù)(第三版)北京:電 子工業(yè)出版社 2009 2 劉潔. 簡易電子琴設(shè)計報告 大慶:大慶石油學院 3 楊文蕊. 基于單片機的簡易電子琴設(shè)計報告 內(nèi)蒙古:內(nèi)蒙古民族大學 4 中國芯片手冊網(wǎng) 5 中國電子網(wǎng) 附錄 附錄一附錄一 元件清單元件清單 序 號名 字數(shù) 量備 注 1AT89C52 1 個 2 LED 數(shù)碼管1 個共陰極數(shù)碼管 3 44 鍵盤矩陣1 個 4 晶振1 個 12MH

19、z 5 手機充電器1 個作為電源供應 6AMS1117-5.0 1 個將電源穩(wěn)壓至 5V 7 蜂鳴器1 個作為播放模塊 導線,電路板,電阻, 電容 若干 附錄二附錄二 系統(tǒng)使用說明系統(tǒng)使用說明 一、接通系統(tǒng)的電源 將電源線的正負極和電路板上正負極相接,此時 LED 數(shù)碼管會顯示“8” , 蜂鳴器不發(fā)出任何聲音。 二、彈奏和播放功能 上圖顯示的是按下鍵盤的 B 鍵,LED 數(shù)碼管會顯示“2” ,同時蜂鳴器會播 放出中音 2,如果按下鍵盤的其他鍵則會顯示和播放出相應的音階,若按下 7 鍵,系統(tǒng)會播放預存在系統(tǒng)中的音樂,LED 數(shù)碼管根據(jù)相應的音樂顯示相應的 音階。 附錄三附錄三 系統(tǒng)仿真電路系統(tǒng)仿

20、真電路 附圖 1 系統(tǒng)仿真電路圖 下圖為按下某一按鍵后的仿真電路圖。 附圖 2 工作時的系統(tǒng)電路圖 附錄四附錄四 程序清單程序清單 #include sbit P14=P14; /將 P14 位定義為 P1.4 引腳 sbit P15=P15; /將 P15 位定義為 P1.5 引腳 sbit P16=P16; /將 P16 位定義為 P1.6 引腳 sbit P17=P17; /將 P17 位定義為 P1.7 引腳 unsigned char keyval; /定義變量儲存按鍵值 sbit sound=P37; /將 sound 位定義為 P3.7 unsigned int C; /全局變量

21、,儲存定時器的定時常數(shù) unsigned int f; /全局變量,儲存音階的頻率 code char tab17=0,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71,0 x76; code char music=1,2,3,4,5,5,5,4,3,4,4,4,3,2,1,3,5,1,2,3,4,5,5,5,4,3,4,4,4,3, 2,1,3,1; int i; /以下是 C 調(diào)中音的音頻宏定義 #define dao 523 /將“dao”宏定義為中音“1”

22、的頻率 523Hz #define re 587 /將“re”宏定義為中音“2”的頻率 587Hz #define mi 659 /將“mi”宏定義為中音“3”的頻率 659Hz #define fa 698 /將“fa”宏定義為中音“4”的頻率 698Hz #define sao 784 /將“sao”宏定義為中音“5”的頻率 784Hz #define la 880 /將“l(fā)a”宏定義為中音“6”的頻率 880Hz #define xi 988 /將“xi”宏定義為中音“7”的頻率 988Hz /以下是 C 調(diào)高音的音頻宏定義 #define h_dao 1046 /將“h_dao”宏定義

23、為高音“1”的頻率 1046Hz #define h_re 1175 /將“h_re”宏定義為高音“2”的頻率 1174Hz #define h_mi 1318 /將“h_mi”宏定義為高音“3”的頻率 1318Hz #define h_fa 1397 /將“h_fa”宏定義為高音“4”的頻率 1396Hz #define h_sao 1568 /將“h_sao”宏定義為高音“5”的頻率 1567Hz #define h_la 1760 /將“h_la”宏定義為高音“6”的頻率 1760Hz #define h_xi 1967 /將“h_xi”宏定義為高音“7”的頻率 1975Hz void

24、display(unsigned int m) P0=tabm; /* 函數(shù)功能:軟件延時子程序 */ void delay20ms(void) unsigned char i,j; for(i=0;i100;i+) for(j=0;j60;j+); /* 函數(shù)功能:節(jié)拍的延時的基本單位,延時 200ms */ void delay() unsigned char i,j; for(i=0;i250;i+) for(j=0;j250;j+) ; /* 函數(shù)功能:輸出音頻 入口參數(shù):F */ void Output_Sound(void) C=(46083/f)*10; TH0=(8192-C)

25、/32; TL0=(8192-C)%32; TR0=1; delay(); TR0=0; sound=1; keyval=0 xff; /* 函數(shù)功能:根據(jù)按鍵播出相應音頻 */ void xunyin(keyval) switch(keyval) case 1:f=dao; Output_Sound(); display(1); break; case 2:f=re; Output_Sound(); display(2); break; case 3:f=mi; Output_Sound(); display(3); break; case 4:f=fa; Output_Sound(); d

26、isplay(4); break; case 5:f=sao; Output_Sound(); display(5); break; case 6:f=la; Output_Sound(); display(6); break; case 7:f=xi; Output_Sound(); display(7); break; case 8:f=h_dao; Output_Sound(); display(8); break; case 9:f=h_re; Output_Sound(); display(9); break; case 10:f=h_mi; Output_Sound(); disp

27、lay(10); break; case 11:f=h_fa; Output_Sound(); display(11); break; case 12:f=h_sao; Output_Sound(); display(12); break; case 13:f=h_la; Output_Sound(); display(13); break; case 14:f=h_xi; Output_Sound(); display(14); break; case 15:for(i=0;i34;i+) xunyin(musici); break; /* 函數(shù)功能:主函數(shù) */ void main(void) EA=1; /開總中斷 ET0=1; /定時器 T0 中斷允許 ET1=1; /定時器 T1 中斷允許 TR1=1; /定時器 T

溫馨提示

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

評論

0/150

提交評論