版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 通信工程學(xué)院</b></p><p> 課程設(shè)計說明書(論文)</p><p> 題 目 帶存儲播放功能的簡易電子琴設(shè)計 </p><p> 課 程 名 稱 單片機原理及應(yīng)用 B </p><p> 專 業(yè) 通信工程 &l
2、t;/p><p> 班 級 </p><p><b> 1.前言3</b></p><p> 1.1. 課題背景3</p><p> 1.2. 電子琴系統(tǒng)設(shè)計的意義3</p><p> 1.3. 簡易電子琴功能概述4</p>
3、<p> 2. 系統(tǒng)總體設(shè)計方案4</p><p> 2.1. 系統(tǒng)的組成4</p><p> 2.2. 工作原理5</p><p> 3. 硬件電路設(shè)計5</p><p> 3.1. 總體設(shè)計軟件模型5</p><p> 3.2. AT89C51單片機相關(guān)介紹6</p>
4、;<p> 3.2.1. AT89C51簡介6</p><p> 3.2.2. AT89C51管腳說明7</p><p> 3.2.3. 芯片擦除8</p><p> 3.3. 矩陣式鍵盤的識別和顯示9</p><p> 3.3.1. 矩陣式鍵盤的結(jié)構(gòu)與工作原理9</p><p>
5、3.3.2. 矩陣式鍵盤的按鍵識別方法9</p><p> 3.3.3. 鍵盤接口必須具有的4個基本功能11</p><p> 3.4. 按鍵顯示模塊12</p><p> 3.4.1. 數(shù)碼管的分類12</p><p> 3.4.2. 數(shù)碼管的驅(qū)動方式12</p><p> 3.5. 功能顯示燈模
6、塊13</p><p> 3.6. 音樂播放裝置14</p><p> 4. 軟件電路設(shè)計17</p><p> 4.1. 系統(tǒng)整體程序處理流程圖17</p><p> 4.2. I/O并行口直接驅(qū)動LED顯示19</p><p> 4.3. 音樂播放設(shè)計19</p><p&g
7、t; 4.4. 放歌子程序20</p><p> 5. 系統(tǒng)調(diào)試21</p><p> 5.1. 系統(tǒng)運行環(huán)境21</p><p> 5.2. 系統(tǒng)安裝及配置21</p><p> 6. 設(shè)計總結(jié)22</p><p><b> 參考文獻22</b></p>&
8、lt;p><b> 附錄23</b></p><p><b> 1.前言</b></p><p><b> 課題背景</b></p><p> 隨著社會的發(fā)展進步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會向惡。我們都會抽空欣賞世界名曲,作為對精神的洗禮。本論文設(shè)計
9、一個基于單片機的簡易電子琴。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。電子科技也在不斷的前進,電子技術(shù)正在以不同的方式改變著我們的生活,本系統(tǒng)的電子琴設(shè)計也是希望給人們帶來一些生活的樂趣。本系統(tǒng)可以應(yīng)用在很多方面,比如一些簡易的玩具上或手機上。單片機技術(shù)使我們可以利用軟硬件實現(xiàn)電子琴的功能,從而
10、實現(xiàn)電子琴的微型化,也可以對本系統(tǒng)進行一些擴展的加入一些其他功能。</p><p> 本系展統(tǒng)的簡易電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器,它在現(xiàn)代音樂扮演著重要的角色。簡單是因為旋律與和聲缺乏音量變化,過于協(xié)和、單一;在模仿各類館、弦樂器時,音色還不夠逼真,模仿提琴類樂器的音色時,失真度更大,還需要不斷改進。</p><p> 本文的主要內(nèi)容是用AT89C51單片
11、機為核心控制元件,設(shè)計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個按鍵和揚聲器。</p><p> 本文主要對使用單片機設(shè)計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細闡述。</p><
12、p> 電子琴系統(tǒng)設(shè)計的意義</p><p> 單片微型計算機是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。 </p><p> 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它
13、在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89S51單片機為核心控制元件,設(shè)計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個按鍵和揚聲器。 </p><p> 本文主要對使用單片機設(shè)計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片
14、機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細闡述。本系統(tǒng)是簡易電子琴的設(shè)計,按下鍵盤矩陣中的按鍵會使數(shù)碼管顯示當前按鍵,揚聲器播放器對應(yīng)的音符。本系統(tǒng)電子琴設(shè)計,設(shè)計簡單,所需器件價格便宜,總體價格比較便宜,功能健全,能夠滿足一般消費者,或愛好音樂的人的基本需求。因此本系統(tǒng)設(shè)計既實用又便宜。對于人們的業(yè)余生活意義較大。單片機是在一塊芯片內(nèi)集成了計算
15、機的各個功能部件,構(gòu)成一種單片式的微型計算機。</p><p> 通過單片機電子琴這個選題,更深層次的了解了單片機技術(shù),以前只是有理論,實踐的機會不是很多,在作單片機電子琴這個選題的過程中,更加熟練的掌握了一些單片機芯片的應(yīng)用,也解決了很多以前理論和實踐脫節(jié)的問題,可謂對單片機的認識有了一個小的飛躍。</p><p><b> 目的:</b></p>
16、<p> 掌握單片機與行列式鍵盤接口電路的工作原理與使用方法</p><p> 掌握單片機總線擴展的基本原理及操作時序</p><p> 掌握通過C51操作外部擴展RAM程序的設(shè)計方法</p><p> 掌握利用單片機內(nèi)部定時器產(chǎn)生不同頻率聲音的方法</p><p> 軟件的介紹(keil Proteus)</p
17、><p> Keil是德國開發(fā)的一個51單片機開發(fā)軟件平臺,最開始只是一個支持C語言和匯編語言的編譯軟件。Keil的μVision3可以進行純粹的軟件仿真(仿真軟件程序、不接硬件電路),也可以利用硬件仿真器,搭接上單片機硬件系統(tǒng),在仿真器中載入項目程序后進行實時仿真,在不需要額外的硬件仿真器的條件下,搭接單片機硬件系統(tǒng)對項目程序進行實時仿真。</p><p> Proteus是英國Labc
18、enter Electronics公司開發(fā)的多功能EDA軟件。Proteus是目前較先進的單片機和嵌入式系統(tǒng)的設(shè)計與仿真平臺。它實現(xiàn)了在計算機上完成從原理圖與電路設(shè)計、電路分析與仿真、單片機代碼級調(diào)試與仿真、系統(tǒng)測試與功能驗證到形成PCB的完整的電子設(shè)計、研發(fā)過程。由于Proteus軟件包逼真、真實的協(xié)同仿真功能,得到了包括劍橋在內(nèi)的眾多大學(xué)用戶,作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實驗和水平考試平臺。</p><p&
19、gt; 利用Proteus與Keil整合構(gòu)建單片機虛擬實驗室,為解決電路設(shè)計以及仿真提供了很好的發(fā)展平臺。</p><p> 本設(shè)計是在Keil使用89C51單片機及單片機C語言,在Proteus仿真平臺上實現(xiàn)基于單片機的簡易電子琴。對于提高和改進電子琴功能的設(shè)計有著重要參考意義。</p><p><b> 簡易電子琴功能概述</b></p>&l
20、t;p> 單片機因體積小、功能強、價格低廉而得到廣泛應(yīng)用。AT89C51單片機設(shè)計微型電子琴的方法,僅需AT89C51最小系統(tǒng),擴展一組矩陣鍵盤,再接一組發(fā)光二極管用來指示電子琴的工作狀態(tài)。</p><p> 本系統(tǒng)分為兩個部分,一個是音樂,另一個就是電子琴。</p><p> 1.單片機并行連接4*4矩陣鍵盤和一位數(shù)碼管</p><p> 2.利用單
21、片機內(nèi)部定時器T0的定時功能產(chǎn)生音符所對應(yīng)的音調(diào)</p><p> 3.經(jīng)功率放大器后輸出至音箱</p><p> 4.在彈奏音樂的同時將音符顯示與數(shù)碼管</p><p> 5.具備存儲在播放所彈奏的音樂的功能</p><p><b> 系統(tǒng)總體設(shè)計方案</b></p><p><b
22、> 系統(tǒng)的組成</b></p><p> 嵌入式電路,按鍵電路,LED顯示電路和三個功能鍵組成,通過功能鍵可以選擇播放音樂。(按鍵一:是否錄音;按鍵二:是否播放;按鍵三:復(fù)位鍵)</p><p> 該系統(tǒng)通過電子琴按鍵隨意鍵入所要表達的音符,作為電平送給主體電路,中央處理器通過識別,解碼輸出音符,在揚聲器中發(fā)出有效的聲音。通過這樣可以不斷的彈奏音樂。</p&g
23、t;<p><b> 工作原理</b></p><p> 打開電子琴電源開關(guān)后,電子琴默認為彈奏狀態(tài)(錄音LED燈亮表示按鍵彈奏錄音,不亮則普通按鍵彈奏功能),彈奏/播放顯示燈點亮。此時可以進行彈奏音樂,按下矩陣鍵盤中的任意鍵,揚聲器發(fā)相應(yīng)的音調(diào),數(shù)碼管顯示對應(yīng)的數(shù)字。</p><p> 按下播放按鈕,電子琴處于自動播放狀態(tài),彈奏/播放顯示燈不亮,
24、就會播放剛才彈走過的音樂,并循環(huán)進行播放,如果按下錄音按鍵,將錄音燈滅掉,此時播放的音樂改變,播放電子琴內(nèi)置的音樂,并顯示相應(yīng)音符,循環(huán)播放。</p><p> 此時,如果按下復(fù)位鍵,數(shù)碼管顯示0,清楚錄音,此時系統(tǒng)又處于彈奏狀態(tài)。</p><p><b> 硬件電路設(shè)計</b></p><p><b> 總體設(shè)計軟件模型<
25、;/b></p><p><b> 連線:</b></p><p> P3^7————蜂鳴器</p><p> P2^0————連接LED0(模式指示燈:彈奏--亮,播放--不亮)</p><p> P2^1————連接LED1和獨立開關(guān)(錄音指示燈:彈奏保存--亮,彈奏不保存--不亮)</p>
26、<p> P3^2————獨立按鍵,外部中斷控制復(fù)位鍵</p><p> P3^3————獨立按鍵,外部中斷播放/彈奏切換按鍵</p><p> P1————連接數(shù)碼管顯示</p><p> P0————連接矩陣鍵盤</p><p> 此設(shè)計模塊實現(xiàn)的功能有:</p><p> 1.把不同的頻
27、率也就是節(jié)拍的聲音輸入到放大器,播放彈奏的聲音;</p><p> 2.在彈奏音樂的同時將音符顯示于數(shù)碼管;</p><p> 3.彈奏音樂的時候要將音符輸入到數(shù)碼管;</p><p> 4.播放內(nèi)置儲存的音樂時要顯示此時播放的音樂音符;</p><p> 5.具備存儲在播放所彈奏的音樂的功能;</p><p>
28、; 6.復(fù)位功能,模式復(fù)位、錄音清楚,數(shù)碼管顯示為0。</p><p> AT89C51單片機相關(guān)介紹</p><p><b> AT89C51簡介</b></p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Mem
29、ory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C51它是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3.2所示。</p><p> AT89C
30、51管腳說明</p><p> ·VCC:供電電壓。</p><p> ·P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。</p><p> 當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗
31、時,P0輸出原碼,此時P0外部必須被拉高。</p><p> ·P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p> ·P2口:P2口為一個內(nèi)
32、部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時
33、接收高八位地址信號和控制信號。</p><p> ·P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> ·RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間
34、。</p><p> ·ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有
35、在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> ·PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將不出現(xiàn)。</p><p> ·EA/VPP:當保持低電平時,則在此期間外部程序存儲器(0000H-
36、FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> ·XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> ·XTAL2:來自反向振蕩器的輸出。</p><p> 另
37、外,P3口也可作為AT89C51的一些特殊功能口,如下所示。</p><p><b> 口管腳 備選功能</b></p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P
38、3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時器0外部輸入)</p><p> P3.5 T1(記時器1外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> AT89C51主要特性
39、</p><p> ·與MCS-51 兼容 </p><p> ·4K字節(jié)可編程閃爍存儲器 </p><p> ·壽命:1000寫/擦循環(huán)</p><p> ·數(shù)據(jù)保留時間:10年</p><p> ·全靜態(tài)工作:0Hz-24MHz</p>&l
40、t;p> ·三級程序存儲器鎖定</p><p> ·128×8位內(nèi)部RAM</p><p> ·32可編程I/O線</p><p> ·兩個16位定時器/計數(shù)器</p><p><b> ·5個中斷源 </b></p><p&
41、gt;<b> ·可編程串行通道</b></p><p> ·低功耗的閑置和掉電模式</p><p> ·片內(nèi)振蕩器和時鐘電路</p><p><b> 芯片擦除</b></p><p> 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持
42、ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。</p><p> 此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM、定時器、計數(shù)器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。&
43、lt;/p><p> 矩陣式鍵盤的識別和顯示</p><p> 矩陣式鍵盤的結(jié)構(gòu)與工作原理</p><p> 矩陣用法方面,節(jié)省材料。</p><p> 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,本系統(tǒng)中的矩陣鍵盤中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。</
44、p><p> 當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。</p><p> 行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。</p><p> 矩陣式鍵盤如圖所示。</p><p><b> 矩陣式鍵盤</b></p><p>
45、; 矩陣式鍵盤的按鍵識別方法</p><p><b> 矩陣掃描法:</b></p><p> 行掃描法 ,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。</p><p> 判斷鍵盤中有無鍵按下。將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4
46、個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p> 判斷閉合鍵所在的位置。在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。</p><p><b> 相關(guān)代碼:
47、</b></p><p> P0 = 0xff;</p><p><b> Line = 1;</b></p><p> Mask = 0x01;</p><p> for(i=0;i<4;i++)</p><p><b> {</b></
48、p><p><b> Col = 0;</b></p><p> P0 = ~Mask;</p><p> ScanCode = P0 & 0xf0;</p><p> if(ScanCode!=0xf0) delay();</p><p> ScanCode = P0 &
49、 0xf0;</p><p> switch(ScanCode)</p><p><b> {</b></p><p> case 0xe0:Col = 1;break;</p><p> case 0xd0:Col = 2;break;</p><p> case 0xb0:Col =
50、 3;break;</p><p> case 0x70:Col = 4;break;</p><p> default:Col = 0;break;</p><p><b> }</b></p><p><b> if(Col>0)</b></p><p>&
51、lt;b> {</b></p><p> num = (Line-1)*4+Col;</p><p> if(SAVE==0) //保存 ,燈亮</p><p><b> {</b></p><p> save[a]=num;</p><p><b> a+
52、+;</b></p><p><b> }</b></p><p> if(num==0)</p><p><b> {</b></p><p><b> TR0=0;</b></p><p> SPK=1; //在未按鍵時,防
53、止長期高電平損壞喇叭</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> P1 = CharCode[num-1];</p><p> High=tab[n
54、um-1][0];</p><p> Low =tab[num-1][1];</p><p><b> TR0=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> ScanC
55、ode = P0 & 0xf0;</p><p> if(ScanCode == 0xf0)</p><p><b> { </b></p><p><b> TR0 = 0;</b></p><p><b> SPK=1;</b></p><
56、;p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p>&
57、lt;p> Mask <<=1;</p><p><b> Line ++;</b></p><p><b> }</b></p><p> 鍵盤接口必須具有的4個基本功能</p><p> 去抖動:每個按鍵在按下或松開時,都會產(chǎn)生短時間的抖動。抖動的持續(xù)時間與鍵的質(zhì)量相
58、關(guān),一般為5—20mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。</p><p> 被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。</p><p> ?。?)鍵碼產(chǎn)生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。</p><
59、;p><b> 如下為鍵盤編碼表:</b></p><p> unsigned char code tab[][2]=</p><p><b> { </b></p><p> 0x00,0x00,</p><p> 0xf8,0x8c,</p><p>
60、0xf9,0x5b,</p><p> 0xfa,0x15,</p><p> 0xfa,0x67,</p><p> 0xfb,0x04,</p><p> 0xfb,0x90,</p><p> 0xfc,0x0c,</p><p> 0xfc,0x44,</p>
61、<p> 0xfc,0xac,</p><p> 0xfd,0x09,</p><p> 0xfd,0x34,</p><p> 0xfd,0x82,</p><p> 0xfd,0xc8,</p><p> 0xfe,0x06,</p><p> 0xfe,0x22,&
62、lt;/p><p> 0xfe,0x56,</p><p> 0xfe,0x85,</p><p> 0xfe,0x9a,</p><p> 0xfe,0xc1,</p><p> 0xfe,0xe4,</p><p><b> 0xff,0x03</b></
63、p><p><b> };</b></p><p> 這是個二維數(shù)組,第一列是高位(THx),第二列是地位(TLx),一共有16行,第一行對應(yīng)休止符。</p><p> 用AT89C51的并行口P0接4×4矩陣鍵盤,以P0.0-P0.3作輸入線,以P0.4-P0.7作輸出線;</p><p> (4)在數(shù)碼
64、管上顯示每個按鍵的“0-F”序號。</p><p><b> 按鍵顯示模塊</b></p><p><b> 數(shù)碼管的分類</b></p><p> 本設(shè)計用的是七段碼??娠@示0-F。還可以用八段碼。</p><p> 按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。</p&g
65、t;<p> 共陽數(shù)碼管:是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。</p><p> 共陰數(shù)碼管:在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當某一字段發(fā)
66、光二極管的陽極為高電平時,相應(yīng)字段就點亮。當某一字段的陽極為低電平時,相應(yīng)字段就不亮。</p><p><b> 數(shù)碼管相關(guān)代碼:</b></p><p> unsigned char code CharCode[]=</p><p><b> {</b></p><p> 0xc0,
67、0xf9, 0xa4,0xb0,0x99, 0x92,0x82,0xf8,</p><p> 0x80, 0x90, 0x88, 0x83, 0xc6,0xa1,0x86,0x8e</p><p><b> };</b></p><p><b> 數(shù)碼管的驅(qū)動方式</b></p><p>
68、數(shù)碼管的驅(qū)動方式分為:靜態(tài)式和動態(tài)式兩類。</p><p> ①靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。</p><p> 優(yōu)點是:編程簡單,顯示亮度高,缺點是占用I/O端口多。</p><p> ?、趧討B(tài)顯示驅(qū)動:動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆
69、劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,
70、這就是動態(tài)驅(qū)動。</p><p> 在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p><b> 顯示模塊如圖所示。</b>
71、</p><p><b> 功能顯示燈模塊</b></p><p> 當按下彈奏/播放功能鍵時,LED0燈亮(P2^0)表示彈奏模式,再次按下LED0熄滅表示播放模式;當獨立開關(guān)控制LED1亮?xí)r表示彈奏保存錄音或者播放錄音歌曲,不亮?xí)r則表示彈奏不會保存錄音或者播放內(nèi)置音樂。</p><p><b> 音樂播放裝置</b&g
72、t;</p><p> 本次設(shè)計很簡陋,沒有MP3那樣優(yōu)美的音樂,但此次設(shè)計分成“音調(diào)”和“節(jié)拍”兩部分,聽起來還是不錯的。</p><p> 音調(diào):表示一個音符唱多高的頻率</p><p> 節(jié)拍:表示一個音符唱多長的時間。</p><p> 音樂相關(guān)知識與頻率的聯(lián)系:</p><p> 在音樂中常把中央C
73、上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與,2(來)與……正好相差一個倍頻程,在音樂學(xué)中稱它相差一個八度音。在一個八度音內(nèi),有12個半音。以1—i八音區(qū)為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數(shù)關(guān)系來劃分的
74、。如果我們只要知道了這十二個音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。</p><p> 知道了一個音符的頻率后,若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P3.7反相,然后重復(fù)計時再反相。就可在P3.7引腳上得到此頻率的脈沖。為了讓單片機發(fā)出不同頻率的聲音,我們只需將定時器
75、預(yù)置不同的定時值就可實現(xiàn)。</p><p> 利用AT89C51的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。</p><p> 計數(shù)脈沖值與頻率的關(guān)系式是:</p><p> N=fi÷2÷fr </p><p>
76、 式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p> 其計數(shù)初值T的求法如下:</p><p> T=65536-N=65536-fi÷2÷fr</p><p> 例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(104
77、6Hz)的計數(shù)值。</p><p> T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr</p><p> =65536-500000/fr</p><p> 低音DO的T=65536-500000/262=63628</p><p> 中音DO的T=65536
78、-500000/523=64580</p><p> 高音DO的T=65536-500000/1046=65058</p><p> 單片機12MHZ晶振,高中低音符與計數(shù)T0相關(guān)的計數(shù)值如表2所示。</p><p> 將數(shù)值轉(zhuǎn)換為16進制的數(shù),分成高八位和低八位,我們要為這個音符建立一個表格,單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù)。</p>&l
79、t;p> unsigned char code tab[][2]=</p><p><b> { </b></p><p> 0x00,0x00,</p><p> 0xf8,0x8c,</p><p> 0xf9,0x5b,</p><p> 0xfa,0x15,</p&
80、gt;<p> 0xfa,0x67,</p><p> 0xfb,0x04,</p><p> 0xfb,0x90,</p><p> 0xfc,0x0c,</p><p> 0xfc,0x44,</p><p> 0xfc,0xac,</p><p> 0xfd,0
81、x09,</p><p> 0xfd,0x34,</p><p> 0xfd,0x82,</p><p> 0xfd,0xc8,</p><p> 0xfe,0x06,</p><p> 0xfe,0x22,</p><p> 0xfe,0x56,</p><p&
82、gt; 0xfe,0x85,</p><p> 0xfe,0x9a,</p><p> 0xfe,0xc1,</p><p> 0xfe,0xe4,</p><p><b> 0xff,0x03</b></p><p><b> };</b></p>
83、<p> 音符的節(jié)拍我們可以舉例來說明。在一張樂譜中,我們經(jīng)常會看到這樣的表達式,如1=C 、1=G…… 等等,這里1=C,1=G表示樂譜的曲調(diào), 、就是用來表示節(jié)拍的。以為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:</p><p> 其中1 、2 為一拍,3、4、5為一拍,6為一拍,共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十
84、六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節(jié)拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。</p><p> 可見,在單片機上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時長的延時程序
85、,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調(diào)用一次延時程序,如果它為八分音符,則只需調(diào)用二次延時程序,如果它為四分音符,則只需調(diào)用四次延時程序,依次類推。</p><p> 音樂的音拍,以一個節(jié)拍為單位(C調(diào)),如表3所示。</p><p> 實現(xiàn)演奏不同音樂的方法為:</p><p> 將樂譜中的每個音符的音調(diào)及
86、節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取出一個音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放整個樂曲。</p><p> 音樂播放裝置的工作原理:</p><p> 當打開電子琴電源后,當按下彈奏/播放功能鍵時,LED0燈亮(P2^0)表示彈奏模式,再次按下L
87、ED0熄滅表示播放模式;當獨立開關(guān)控制LED1亮?xí)r表示彈奏保存錄音或者播放錄音歌曲,不亮?xí)r則表示彈奏不會保存錄音或者播放內(nèi)置音樂。</p><p> [1]晶體振蕩器,產(chǎn)生頻率,在通過定時器進行定時以產(chǎn)生不同頻率,即發(fā)出不同聲音</p><p> [2]控制按鈕,控制是彈奏還是演唱(P3.3)以及復(fù)位功能(P3.2)</p><p><b> [3]
88、擴音器</b></p><p><b> 軟件電路設(shè)計</b></p><p> 系統(tǒng)整體程序處理流程圖</p><p> 系統(tǒng)整體程序處理流程圖4.1所示。</p><p> 圖4.1 整體程序處理流程圖</p><p> 在電子琴開始工作時,系統(tǒng)默認電子琴處于彈奏狀態(tài),當
89、按下彈奏/播放功能鍵時,LED0燈亮(P2^0)表示彈奏模式,再次按下LED0熄滅表示播放模式;當獨立開關(guān)控制LED1亮?xí)r表示彈奏保存錄音或者播放錄音歌曲,不亮?xí)r則表示彈奏不會保存錄音或者播放內(nèi)置音樂。</p><p> 本設(shè)計存儲了二首音樂,可循環(huán)播放.(小星星和歡樂頌)</p><p> I/O并行口直接驅(qū)動LED顯示</p><p><b>
90、對應(yīng)鍵值的顯示:</b></p><p> 在本設(shè)計中,數(shù)碼管的顯示通過 </p><p> P1=DSY_CODE[x]</p><p> 這句語言來查表并輸出,實現(xiàn)音符的顯示。</p><p><b> 音樂播放設(shè)計</b></p><p> 在音樂播放程序中用到了兩個定
91、時/計數(shù)器。其中T0用來產(chǎn)生音調(diào),播放彈奏是的按鍵音調(diào)聲音,T1用來播放音樂。</p><p> 音樂播放流程圖如圖所示。</p><p> 彈奏時根據(jù)不同的鍵值,調(diào)用不同的音符表中的值,并賦值給定時器以便產(chǎn)生不同的聲音。下圖為演奏發(fā)聲的流程圖:</p><p><b> 放歌子程序</b></p><p> 放
92、歌子程序設(shè)計類似于音樂播放,將每個音調(diào)循環(huán)播放出來。</p><p> if(MODE==1)//播放模式 ,燈不亮</p><p><b> {</b></p><p> if(SAVE==1)//保存燈不亮,播放內(nèi)置音樂</p><p><b> {</b></p>&
93、lt;p><b> SPK = 1;</b></p><p> //P1 = CharCode[Song[Tone_Index]];</p><p> dis = Song[Tone_Index]; </p><p> High = tab[Song[Tone_Index]][0];</p><p>
94、Low = tab[Song[Tone_Index]][1];</p><p><b> TR1 = 1;</b></p><p> delay1((6000*Pai[Tone_Index]));//取音節(jié)</p><p><b> TR1 = 0;</b></p><p><b&
95、gt; SPK=1;</b></p><p> //if(((Tone_Index+1)%7)==0)</p><p> delay1(1000);</p><p> //else delay1(400);</p><p> Tone_Index++;</p><p> if(Tone_Inde
96、x==sizeof(Song)) </p><p> Tone_Index =0;</p><p><b> }</b></p><p> if(SAVE==0)//保存燈亮,播放錄制的音樂</p><p><b> {</b></p><p> Tone_In
97、dex =0;</p><p> SPK = 1;</p><p> for(j=0;j<a;j++)</p><p><b> {</b></p><p> //P1 = CharCode[save[j]-1];</p><p> dis = save[j]-1;</
98、p><p> High = tab[save[j]-1][0];</p><p> Low = tab[save[j]-1][1];</p><p><b> TR1 = 1;</b></p><p> delay1(6000);//取音節(jié)</p><p><b> TR1 = 0
99、;</b></p><p><b> SPK=1;</b></p><p> delay1(1000);</p><p> if(MODE!=1&&a==0)break;</p><p><b> }</b></p><p><
100、b> }</b></p><p><b> }</b></p><p><b> 系統(tǒng)調(diào)試</b></p><p><b> 系統(tǒng)運行環(huán)境</b></p><p> Windows XP環(huán)境下安裝</p><p> prot
101、eus (Proteus 7 Professional\BIN\ISIS.EXE)</p><p> keil u V3(Keil\UV3\Uv3.exe).</p><p><b> 單片機硬件</b></p><p> 課程設(shè)計要保證良好的情況下要先在軟件proteus下仿真,最后再進行移植到硬件上進行實踐。</p>
102、<p><b> 系統(tǒng)安裝及配置</b></p><p> ·步驟一:安裝Proteus軟件。</p><p> ·步驟二:安裝Keil軟件。</p><p> ·步驟三:Keil和Proteus的配置</p><p> 為了讓系統(tǒng)運行起來,我們需要做一些配置工作,具體工
103、作如下:</p><p> ?。?)首先啟動Proteus,打開要仿真的工程文件,然后配置Proteus軟件,選擇“Debug”→“Use Remote Debug Monitor”。</p><p> ?。?)調(diào)出編輯AT89C51屬性的對話框,將其程序文件設(shè)置為空。</p><p> ?。?)Keil uV4的設(shè)定,首先啟動Proteus仿真項目對應(yīng)的Keil中
104、的工程。</p><p> ?。?)在工程工作區(qū)選中“Target1”,并右擊選中“Options for Target ‘Target1’”。選中“Output”中“Creat HEX Fi”和“Debug”中“Use Remote Debug Monitor”。</p><p> 在硬件上進行仿真調(diào)試,達到自已預(yù)期效果。</p><p><b>
105、設(shè)計總結(jié)</b></p><p> 調(diào)試成功后,可任意彈奏自己想要的旋律。本研究通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機設(shè)計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是
106、我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大,同時通過顯示模塊來確知自己所彈的音符。</p><p><b> 功能列表:</b></p><p> 1.把不同的頻率也就是節(jié)拍的聲音輸入到放大器,播放彈奏的聲音;</p><p> 2
107、.在彈奏音樂的同時將音符顯示于數(shù)碼管;</p><p> 3.彈奏音樂的時候要將音符輸入到數(shù)碼管;</p><p> 4.播放內(nèi)置儲存的音樂時要顯示此時播放的音樂音符;</p><p> 5.具備存儲在播放所彈奏的音樂的功能;</p><p> 6.復(fù)位功能,模式復(fù)位、錄音清楚,數(shù)碼管顯示為0。</p><p>
108、; 通過這次畢業(yè)設(shè)計,我弄懂了不少課本上的知識,還擴展了一些課本沒有的知識,再通過隊友的合作與交流,很好的完成了這次課程設(shè)計。 </p><p> 首先在課程設(shè)計剛開始的調(diào)研階段,我學(xué)會了怎么通過各種方式查詢相關(guān)的資料。通過對這些資料的學(xué)習(xí),我大致了解了單片機的發(fā)展現(xiàn)狀以及未來的發(fā)展趨勢,認識到目前單片機方面的各種各樣的發(fā)展,和它們之間的競爭。了解了單片機方面的先進技術(shù),這些都為我的未來的學(xué)習(xí)指明了
109、方向。</p><p><b> 參考文獻</b></p><p> [1] 岳俊生 宗慧 編 《單片機原理及應(yīng)用 實驗與課程設(shè)計指導(dǎo)書》.2013.2</p><p> [2] 謝維成 楊加國 .《單片機原理與應(yīng)用及C51 程序設(shè)計》.</p><p> [3] 潭浩強.C語言程序設(shè)計.清華大學(xué)出版社.2010
110、.07</p><p> [4] 陳明熒.8051單片機課程設(shè)計實訓(xùn)教材[M].北京:清華大學(xué)出版社,2003年9月. </p><p> [5] 徐新艷.單片機原理、應(yīng)用與實踐[M].北京:高等教育出版社,2005年3月. </p><p><b> 附錄</b></p><p
111、><b> 程序代碼:</b></p><p> #include<reg52.h> //頭文件</p><p> /*------------------------------------------------</p><p><b> 全局變量</b></p><p
112、> ------------------------------------------------*/</p><p> unsigned char High,Low; //定時器預(yù)裝值的高8位和低8位</p><p> sbit SPK = P3^7; //定義喇叭接口</p><p> unsigned char num;<
113、;/p><p> unsigned char Tone_Index=0; //放音樂的參數(shù)</p><p> sbit MODE = P2^0;</p><p> sbit SAVE = P2^1;</p><p> unsigned char save[100];</p><p> unsigned ch
114、ar a=0;//保存數(shù)組引索數(shù)</p><p> unsigned char j;</p><p> unsigned char dis;</p><p> unsigned char code CharCode[]=</p><p><b> {</b></p><p> 0xc
115、0, 0xf9, 0xa4,0xb0,0x99, 0x92,0x82,0xf8,</p><p> 0x80, 0x90, 0x88, 0x83, 0xc6,0xa1,0x86,0x8e</p><p><b> };</b></p><p> unsigned char code tab[][2]=</p><p&g
116、t;<b> { </b></p><p> 0x00,0x00,</p><p> 0xf8,0x8c,</p><p> 0xf9,0x5b,</p><p> 0xfa,0x15,</p><p> 0xfa,0x67,</p><p> 0xfb,0x
117、04,</p><p> 0xfb,0x90,</p><p> 0xfc,0x0c,</p><p> 0xfc,0x44,</p><p> 0xfc,0xac,</p><p> 0xfd,0x09,</p><p> 0xfd,0x34,</p><p&g
118、t; 0xfd,0x82,</p><p> 0xfd,0xc8,</p><p> 0xfe,0x06,</p><p> 0xfe,0x22,</p><p> 0xfe,0x56,</p><p> 0xfe,0x85,</p><p> 0xfe,0x9a,</p&g
119、t;<p> 0xfe,0xc1,</p><p> 0xfe,0xe4,</p><p><b> 0xff,0x03</b></p><p><b> };</b></p><p> unsigned char code Song[]=</p><p&
120、gt;<b> {</b></p><p> 8,8,12,12,13,13,12, 11,11,10,10,9,9,8,</p><p> 12,12,11,11,10,10,9, 12,12,11,11,10,10,9,</p><p> 8,8,12,12,13,13,12, 11,11,10,10,9,9,8,//小星星&l
121、t;/p><p> 10,10,11,12,12,11,10,9,8,8,9,10,3,2,2,</p><p> 10,10,11,12,12,11,10,9,8,8,9,10,9,8,8,</p><p> 9,9,10,8,9,10,11,10,8,9,10,11,10,8,8,9,12,</p><p> 10,10,11,12,
122、12,11,10,9,8,8,9,10,9,8,8//歡樂頌</p><p><b> };</b></p><p> unsigned char code Pai[]=</p><p><b> {</b></p><p> 1,1,1,1,1,1,8, 1,1,1,1,1,1,8,
123、</p><p> 1,1,1,1,1,1,8, 1,1,1,1,1,1,8,</p><p> 1,1,1,1,1,1,8, 1,1,1,1,1,1,8,//</p><p> 1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,</p><p> 1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,</p
124、><p> 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,</p><p> 8,1,1,1,1,1,1,1,1,1,1,1,8,1,1//</p><p><b> };</b></p><p> /*------------------------------------------------
125、</p><p><b> 函數(shù)聲明</b></p><p> ------------------------------------------------*/</p><p> void Init_Timer0(void);//定時器初始化</p><p> void delay(void);/* 鍵
126、消抖延時函數(shù) */</p><p> void delay1(unsigned char ms); //播放歌曲時實現(xiàn)節(jié)拍的延時函數(shù)</p><p> /*------------------------------------------------</p><p><b> 主函數(shù)</b></p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計----簡易單片機電子琴設(shè)計
- 單片機電子琴課程設(shè)計--基于單片機的可存儲式電子琴設(shè)計
- 單片機電子琴課程設(shè)計
- 單片機電子琴課程設(shè)計
- 單片機課程設(shè)計簡易電子琴
- 電子琴課程設(shè)計--基于單片機的電子琴設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 單片機課程設(shè)計簡易電子琴
- 單片機課程設(shè)計——簡易電子琴
- 單片機課程設(shè)計---簡易電子琴
- 電子琴課程設(shè)計--基于單片機的電子琴設(shè)計
- 電子琴課程設(shè)計-- 基于單片機的電子琴設(shè)計
- 單片機課程設(shè)計--簡易電子琴設(shè)計
- 單片機電子琴課程設(shè)計 (2)
- 單片機電子琴課程設(shè)計報告
- 單片機電子琴課程設(shè)計報告
- 單片機電子系統(tǒng)課程設(shè)計—簡易電子琴
- 電子琴單片機課程設(shè)計--電子琴模擬實驗
評論
0/150
提交評論