電子琴畢業設計(論文)_第1頁
電子琴畢業設計(論文)_第2頁
電子琴畢業設計(論文)_第3頁
電子琴畢業設計(論文)_第4頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、( 此文檔為 word 格式,下載后您可任意編輯修改!)畢業設計(論文)( 2013屆)題目 電子琴音樂的產生與演奏電路的設計學院電子與電氣工程系專業應用電子技術班級應電 1001 班學生姓名王雅琴指導教師黎楊梅1摘要本文的主要內容是用 STC89C51單片機為核心控制元件, 設計一個可以實現演奏和播放音樂的簡易電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊。 在主控模塊上設有 16 個按鍵和揚聲器, 應用中斷系統和定時計數原理控制其發聲。本系統運行穩定,其優點是硬件電路簡單,軟件功能完善,控制系統可靠,性價比較高等,具有一定的實用和參考價值。關鍵詞單片機;電子琴;鍵盤目

2、錄1.引言12.總體方案12.1系統的設計要求12.2電子琴系統的組成22.3系統設計框圖23.硬件電路設計簡介33.1單片機 STC89C513STC89C51 的簡介3管腳功能4在線編程5電子琴系統單片機最小系統設計圖53.2矩陣式鍵盤6矩陣式鍵盤的結構與工作原理6矩陣式鍵盤的按鍵識別方法6鍵盤接口必須具備的4 個基本功能7電子琴系統矩陣鍵盤硬件電路圖73.3音頻功放電路設計8LM386 的結構與工作原理8LM386 的主要特性8LM386 的典型應用電路8電子琴中音頻功放電路圖94.軟件設計104.1音樂播放程序設計10音樂背景知識10單片機產生音樂的方法10音樂播放軟件設計124.2放

3、歌子程序設計134.3系統整體軟件流程設計145.系統調試145.1 keil 簡介155.2硬件調試155.3軟件調試155.4綜合調試156.結論16參考文獻17謝辭181. 引言單片微型計算機是大規模集成電路技術發展的產物,屬第四代電子計算機,他具有高性能、高速度、體積小、價格低廉、穩定可靠、應用廣泛的特點。它的應用必定導致傳統的控制技術從根本上發生變革。因此,單片機的開發應用已成為高科技和工程領域的一項重大課題。電子琴是箱子電子科技與音樂結合的產物。之所以受到群眾們喜愛 , 是因為它能模擬各種樂器的音色 , 如笛、號、琴、顫音、和旋音等以及打擊樂板音、鼓樂、沙錘等。本設計介紹一種除有普

4、通電子琴功能外 , 還有不需要按琴鍵就能模擬電子琴自動演奏樂曲的電子琴音樂的產生和演奏電路。若與音響放大器相結合 , 則樂曲的音響效果會更好。 20 世紀 80 年代中期,出現的現場可編程門陣列 (FPGA)具有體系結構、邏輯單元靈活、集成度高以及適用范圍廣等特點,可實現大規模和超大規模的集成電路,而且編程靈活。 STC89C51單片機為核心控制元件,可提高開發效率,縮短研發周期,降低研發成本,且易于進行功能擴展。簡易電子琴系統就是以單片機為核心部件設計的一個簡易的電子琴,這只是單片機應用的一個點,由點及面,希望能更好的了解和應用單片機技術。我選單片機電子琴這個選題的目的在于通過從日常生活中的

5、細微之處著手,將所學的理論知識與實踐更好的結合起來,在設計制作電子琴的過程中,更加熟練的掌握單片機的應用,在更深刻的理解理論知識的同時鍛煉提高自己的動手實踐能力,使理論和實際能夠相得益彰。2. 總體方案2.1系統的設計要求本系統設計的功能有兩個部分,一個是音樂的播放功能,另一個就是電子琴樂曲的演奏功能。具體的要求如下所示:1. 產生各個音符的頻率信號。2. 產生低、中、高三個音區的音符。3. 能播放預置的音樂,并能自動和人工選曲。2.2電子琴系統的組成本系統主要由兩個部分組成:音樂播放部分和電子琴演奏部分。音樂的播放部分:一個樂音其實就是一個具有固定周期的信號。本設計就是用單片機 STC89C

6、51 的兩個定時器( T0, T1)控制,在 P1.0 腳上輸出方波周期信號,產生其對應頻率的樂音,通過矩陣式鍵盤的按鍵產生不同的音符,所以彈奏者可以隨心所欲的彈奏出自己喜愛的音樂樂曲,不彈奏時也可以播放單片機程序設置的音樂歌曲來試聽,共有十幾首可以自由選擇。電子琴演奏部分:實際上就是把彈奏的每個按鍵的所對應的值處理后送給單片機,然后在單片機內把處理后的數字當作指針指向所對應的音符,從而發出對應的聲音 4-6。2.3系統設計框圖本系統通過矩陣式鍵盤按鍵隨意鍵入樂曲的音符,作為電平送給主體電路單片機最小系統,中央處理器經過識別,解碼輸出音符,在揚聲器中發出對應音符的準確發音。該系統的主要模塊由四

7、個部分組成,具體關系如圖2-1 所示 7:功能選擇(彈奏/播放)4*4 矩陣鍵盤51單片機中心控制模塊音頻功放模塊圖 2-1總體設計系統框圖由 P0 口的高四位和低四位作矩陣式鍵盤的鍵盤接口,用P1.0 作信號輸出口。3. 硬件電路設計簡介3.1單片機 STC89C51 STC89C51 的簡介STC89C51 單片機是一款增強型的單片機,它完全兼容MCS-51 單片機。STC89C51 不但可以代替AT89C51,而且速度更快,功能更強,壽命更長,價格更低,使用方便。該單片機共有 40 個引腳,采用的是雙列直插式 DIP-40 的封裝。 STC89C51 可以完成 ISP 在線編程功能,而

8、AT89C51 則不具備此功能。因此只需將 AT89C51 中的程序直接燒錄到 STC89C51 中后,STC89C51 就可以代替 AT89C51 在電路中工作,還可以在線修改下載,使用起來非常方便。STC 推出的 51 系列單片機芯片全面兼容其他51 單片機。它的內部有 E2PROM ,所以可以任意修改程序, 而且斷電也不會丟失數據。此外,還增加了兩級中斷優先級等等,此系列的單片機的基本特性如圖 3-1 所示 8,管腳如圖 3-2 所示 9:圖 3-1STC89 系列單片機的基本特性結構圖圖 3-2STC89C51 管腳圖 管腳功能VCC :供電電壓。GND :接地。P0 口:八位雙向 I

9、O 口, P0 口能夠用于外部程序數據存儲器,可以被定義為數據地址的第八位。P1 口: P1 口是一個有上拉電阻的八位雙向IO 口, P1 口管腳寫入“ 1”后,被內部上拉為高電平,可用作輸入。當它被外部下拉為低電平時,將輸出電流。P2 口: P2 口是一個提供上拉電阻的八位雙向IO 口, P2 口管腳寫入“ 1”后,被內部上拉電阻拉高,且作為輸入。所以在作為輸入時,如果管腳被外部拉低,它將輸出電流。在P2 口用于外部程序存儲器或16 位地址外部存儲器存取時,P2 口則輸出地址的高八位。在地址為1 時,它利用內部上拉的優勢,在對外部八位地址數據存儲器進行讀寫時, P2 口將輸出其特殊功能寄存器

10、的內容。P3 口: P3 口是 8 個帶內部上拉電阻的雙向IO 口,當它寫入“ 1”時,內部則被上拉為高電平,并且用作輸入。作為輸入,由于外部下拉為低電平,P3 口將會輸出電流。同時, P3 口還可以作為一些特殊功能口。RST :復位輸出。當振蕩器復位器件后,此腳要維持兩個機器周期的高電平。ALEPROG :在訪問外部存儲器的時候, 地址鎖存允許的輸出電平用于鎖存地址。在沒有編程時, ALE 端以固定的頻率周期輸出正脈沖信號,此信號的頻率為振蕩器頻率的 16。因此,它可以對外輸出脈沖信號,也可以用于定時。PSEN:外部程序存儲器的選通信號。在外部程序存儲器取指期間,每個機器周期內兩次 PSEN

11、 有效,但是在訪問外部數據存儲器的時候,這兩次有效的PSEN 信號將不會出現。EAVPP :當 EA 保持低電平的期間使用外部程序存儲器( 0000H-FFFFH ),不管是否有內部程序存儲器。注意為加密方式時,EA 將內部鎖定為RESET ,當 EA 保持高電平時為內部程序存儲器。XTAL1 :反向振蕩放大器的輸入端以及內部工作時鐘電路的輸入端。XTAL2 :反向振蕩器的輸出 10。 在線編程STC 支持 ISP 功能,編程的時候不需要拔出,也不需要專門的編程器,只需要一個 MAX232 做串口通信電路,利用串口進行在線編程,非常方便。 電子琴系統單片機最小系統設計圖本設計的電子琴的單片機最

12、小系統原理圖如圖3-3 所示:圖 3-3單片機最小系統電路圖3.2矩陣式鍵盤 矩陣式鍵盤的結構與工作原理在鍵盤中按鍵的數目比較多時,為了減少IO 的占用,我們通常將按鍵排列成矩陣的形式。在矩陣式鍵盤中,每一條水平線和垂直線在交叉處并沒有直接連通,而是通過一個個的按鍵加以連接。 這樣的話,每一個端口(例如 P1 口)連接構成 4*4=16個按鍵,比直接用端口線接成鍵盤多了一倍,并且線數越多,區別就越明顯,若再多加一條線就可以構成有20 個按鍵的鍵盤了,而若直接用端口線的話,卻只能多一個鍵( 9 鍵),因此,在需要按鍵的數目較多時,運用矩陣式鍵盤才是合理的11。顯然,矩陣式鍵盤要比直接法復雜, 識

13、別時也要復雜一些, 例如下圖 3-4 所示 12:圖 3-4矩陣式鍵盤結構垂直線即列線通過電阻接正電源, 并且把水平線即行線所接的單片機的 IO 口作為輸出端,列線所接的單片機的 IO 口作為輸入端。這樣,在沒有按鍵被按下時,所有的輸出端都是高電平,表示沒有按鍵被按下,一旦有按鍵被按下,輸入線則會被拉低,因此,只要讀入輸入線的狀態就可以判斷是否有按鍵被按下了。 矩陣式鍵盤的按鍵識別方法在判斷矩陣式鍵盤上的哪個鍵被按下可以采用“行掃描法”。行掃描法又稱逐行(或列)掃描查詢法,是一種我們最常用的按鍵識別方法,具體過程如下:1、判斷鍵盤中有無按鍵按下將全部行線置低電平,然后監測列線的狀態,只要有一列

14、的電平為低電平,則表示有按鍵被按下,并且按下的鍵位于低電平的列線與 4 根行線相交叉的 4 個按鍵之中,若所有的列線均為高電平,則表示鍵盤中并沒有按鍵按下。2、判斷按下的按鍵的具體位置在判斷鍵盤中有按鍵被按下后,就可以開始確定被按下按鍵的具體位置了。具體方法是:依次將行線置為低電平,就是在把某根行線置為低電平的時候,要使其它的幾根行線均為高電平。在確定某根行線為低電平后,再逐行檢測各個列線的電平狀態。如果某列線的電平為低電平,則此列線與置為低電平的行線交叉處的按鍵就是被按下的按鍵 13。 鍵盤接口必須具備的4 個基本功能去抖動:每個按鍵在按下或者松開時,都會產生短時間的抖動,對我們按鍵識別檢測

15、會有一定的影響。只有避開抖動處在穩定接通或者斷開的狀態才能保證按鍵識別準確無誤。這個問題可以利用軟件延時或者硬件電路來解決。防串鍵:防串鍵是為了解決多個按鍵同時被按下或者前一個按鍵還沒有松開就有新的按鍵又被按下所產生的問題。這個問題我們常用雙鍵鎖定和 N 鍵輪回兩種方法來解決。按鍵識別:如何識別被按下的按鍵是接口解決的主要問題,一般情況下,我們都是采用軟硬結合的方法來解決此問題。常用的方法有行掃描法和線反轉法。鍵碼產生:我們一般是在內存區內建一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。 電子琴系統矩陣鍵盤硬件電路圖圖 3-5矩陣鍵盤硬件電路圖上圖 3-5 即為本設計的電子琴系統中的按鍵鍵盤的電路

16、原理圖。3.3音頻功放電路設計 LM386 的結構與工作原理在一定頻率范圍內的振動能夠產生樂音,但是用單片機產生的音頻脈沖直接來驅動揚聲器并不能夠產生所要實現的音樂,因為它并沒有足夠大的驅動能力,這時就需要有音頻功率放大電路。LM386 是一種音頻集成功放,具有自身消耗低、電壓增益可調整、電源電壓范圍大、外接元件少和總諧波失真小等優點,故廣泛應用于錄音機和收音機之中。其封裝形式如下圖3-6 所示 14:圖 3-6LM386 的封裝形式 LM386 的主要特性1、靜態功耗低,約為4mA,可用于電池供電。2、工作電壓范圍寬, 4-12V 或 5-18V 。3、外圍元件少。4、電壓增益可調, 20-

17、200.5、低失真度。 LM386 的典型應用電路LM386 應用十分廣泛,如圖3-7、3-8 所示:圖 3-7放大器增益為20(最少器件)圖 3-8低頻提升放大器 電子琴中音頻功放電路圖圖 3-9電子琴系統音頻功放電路圖上圖 3-9 所示即為本設計的電子琴系統的音頻功放的電路原理圖。4. 軟件設計4.1音樂播放程序設計 音樂背景知識音高是由發音物體的振動頻率的高低決定的,樂音持續時間的長短即時值,一般用拍數來表示,休止符的含義則是暫停發音。 單片機產生音樂的方法一首音樂是由許多不同的音符構成的,而每個音符則對應著不同的振動頻率,這樣,我們就可以利用不同頻率的組合,加之與其拍數對應的延時來構成

18、一首音樂。若要產生音頻脈沖,只要計算出某一音頻的周期(頻率的倒數)即可,再將計算出的周期時間除以2,得到半周期的時間, 利用單片機的定時器計時半周期的時間,每當計時終止后再反相并重復計時,這樣循環計時反相就可以得到對應頻率的方波脈沖 15。計數脈沖值與頻率的關系式是:N=fi÷ 2÷ fr 15式中, N 是計數值; fi 是機器的頻率; fr 是想要得到的頻率。其計數初值 T 的計算方法如下:T=65536N=65536fi÷2÷fr例如:設 K=65536,fi=1MHz ,求低音 DO(262Hz)、中音 DO( 523Hz)、高音DO (1046

19、Hz)的計數值。利用上式可求出:低音DO 的 T=65536500000÷ 262=63628中音 DO 的 T=65536500000÷523=64580高音 DO 的 T=65536500000÷1046=65058單片機若為 12M 晶振,高中低音符與其對應計數初值對照表如表.154 1所示 :表 4.1 音符頻率對照表音符頻率簡譜碼(T 值) 音符頻率( HZ ) 簡譜碼( T 值)(HZ )休止00中 4FA69864820低 1DO26263628中 5SO78464898低 2RE29463835中 6LA88064968低 3M33064021中

20、7SI98865030低 4FA34964103高 1DO104665058低 5SO39264260高 2RE117565110低 6LA44064400高 3M131865157低 7SI49464524高 4FA139765178中 1DO52364580高 5SO156865217中 2RE58764684高 6LA176065252中 3M65964777高 7SI196765283因此,我們就可以在此基礎上為音符建立一個表格,使單片機能夠通過查表的方式獲得相應的數據。除了音符以外,節拍也是一首音樂的關鍵的組成部分。節拍實際上就是樂音的發音的持續時間的長短,在單片機系統中,我們就可以

21、利用軟件延時來實現。如果14 拍的延時時間為0.5 秒,則1 拍的延時時間即為2 秒。因此,只要知道14 拍的延時的時間,就可以計算出其與節拍的延時時間,均為14 節拍延時時間的倍數。如果想讓單片機自己播放音樂,就要注意必須在軟件程序設計中考慮節拍的設置。不同的曲調節拍則需要用另一個定時計數器來完成。所以在此設計中,我需要用到單片機的兩個定時計數器,一個用來產生音符,一個用來產生節拍。 音樂播放軟件設計T0中斷入口置TH0,TL0初始值P1.取0反中斷返回圖 4-2音樂播放程序流程圖本設計的音樂播放程序流程圖如上圖4-2 所示,此程序實現的一首音樂歌曲的播放,在程序中,我使用了兩個定時計數器,

22、其中T0 用來產生音符的頻率, T1 用來產生音符的節拍,兩者結合從而產生完整好聽的音樂。4.2放歌子程序設計T0初始化讀取按鍵值根據按鍵值查表取表值音符值送入T0是結束符N讀取節拍Y并延時恢復初始條件啟動T0計數延時再循環P1.0取反N節拍時間到YT0停止計數位值加1圖 4-3放歌子程序程序流程圖本設計的放歌子程序流程圖如上圖4-3 所示,此程序實現的單首歌曲的循環播放,而沒有辦法在程序內部實現歌曲曲目的切換,只能通過外部的功能按鍵和鍵盤按鍵來實現功能的切換和歌曲曲目的切換,所以這是本設計的一個缺憾,相信如果有更多的時間來設計和調試的話,此次的電子琴設計肯定會更加的完美。4.3系統整體軟件流

23、程設計功能選擇鍵鍵值選擇查表法初始化鍵盤掃描有無按鍵按下NY延時消抖N有無按鍵按下Y根據當前狀態識別按鍵矩陣鍵盤鍵值由鍵值查表查表所得數據送給 P0, P1.0圖 4-4整體系統程序流程圖本設計的整體系統的程序流程圖如上圖4-4 所示,它實現了電子琴音樂的播放與彈奏等基本的功能。系統默認的電子琴所處的狀態為彈奏狀態,我們可以通過功能選擇鍵來改變它的狀態 (播放彈奏)。矩陣鍵盤除了可以作為電子琴彈奏音樂的鍵盤,它還具有第二功能,就是對單片機內置的音樂進行曲目的選擇,在播放音樂是可以通過彈奏停止按鍵來結束放歌。5. 系統調試電路調試是整個系統設計的功能否能實現的關鍵的一步,一般情況下,我們將調試分

24、為三個步驟:硬件調試、軟件調試和綜合調試。5.1keil 簡介單片機開發中除了必要的硬件外,還離不開軟件,我們寫的匯編語言源程序要變為 CPU 可以執行的機器碼有兩種方法,一個是手工匯編,另一個是機器匯編,目前已經幾乎不用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷的發展,Keil 軟件是目前最流行的開發MCS-51 系列單片機的軟件,掌握這一軟件的使用對于使用51 系列單片機的愛好者來說是十分必要的,如果你平時使用C 語言編程,那么 Keil 就是最好的選擇,即使不使用C 語言而僅

25、用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。5.2硬件調試硬件調試是針對自己所做的電路板,對其幾個功能塊進行測試。在上電前,首先要確保電路沒有短路或者斷路的地方,這個是調試工作的第一步,同時也是整個調試過程的關鍵一步。在這部分測試過程中用到的重要的測試工具是萬用表。在確保一切電路正常,無異常情況(斷路或短路)后才可以上電調試。上電調試的目的是檢查電路是否有接錯的地方,同時還要檢驗原理是否正確。在本次設計中,主要的調試電路有矩陣鍵盤,單片機下載電路以及音頻功放電路。若調試的結果達到預期并和原理一致即完成硬件調試。5.3軟件調試軟件調試的主要方法: 一般情形下,

26、一個調試程序需要具備至少四種性能:跟蹤、斷點、查看變量、更改數值。整個程序就是一個主程序通過調動各個子程序來實現功能的過程,要想使主程序和整個程序能夠平穩運行,那就必須保證各個模塊的子程序正確并且能夠平穩運行,因此在軟件調試的初始階段,要首先對各個模塊的子程序進行調試。5.4綜合調試在硬件調試與軟件調試均通過的情況下,就可以對整個系統進行綜合調試了。首先將整個程序下載到單片機中,然后再通過彈奏樂曲與播放音樂來檢測電子琴的基本功能。通過調試,使電子琴能夠達到設計的預期效果。6. 結論本次畢業設計通過設計電子琴,遇到了很多問題有硬件上的也有軟件上的。每當遇到困難時我們都能夠耐心的去解決。在每次解決

27、問題的過程中我們都能夠學到很多實際知識,很多是書本上學不到的。在設計制作簡易電子琴的過程當中我們在很多方面都有很大的收獲。在編制程序時遇到的困難是不可預料的,有時有了好的想法,可真正要用程序來實現時就會有很多問題出現,有時候你花兩倍的時間來改錯,編譯通過后希望的功能還不一定能夠實現,或許到后來你發現出發點就是錯誤的。這種情況出現的很多,這時就會感到自己的經驗少的可憐。在解決問題時我們還體會到充分的調用用周圍的資源是多么的重要。我們的一些問題都是自己首先通過查書查資料,通過圖書館,通過網絡來解決的,最后,在還沒有解決的情況下,再去問老師。這不僅培養了自己的解決問題的能力,同時,又熟悉了如何利用周

28、邊的資源快速有效的去解決問題。看的多了,自然就有想法了;查的多了,自然就了解的多了;試的多了,自然經驗就多了;多向比自己強的人問,學的就會豁然開朗。給我最深刻的是作程序的要能夠沉的住氣,要有耐性,耐磨。多看些書也是必要的,多學些前輩的經驗,就會少走些彎路,學的更快些最后,很大程度上提高了自己的動手實踐能力。應用電子技術說明了動手能力反映了一個人的工作能力,這在將來對我更快更好的融入這個社會有很大的幫助。作為電子與電氣工程系的一員讓我更加清醒的認識到動手實踐能力無比重要。在這次畢業設計電子琴實物電路板的制作中,使我的實際動手能力有了很大的提高。本設計還可以擴展其他功能,例如存儲功能,可以將彈奏者

29、自己彈奏的音樂存儲起來并播放給彈奏者聽,也可以更加娛樂一點,加一些變幻的彩燈,隨著音符的變化出現不同的變化,使設計更加有趣 。參考文獻1 電工學秦曾煌主編高等教育出版社2003 年第五版2 數字電子技術 楊志忠主編 高等教育出版社2000 年第一版3 集成電路原理及應用譚博學主編電子工業出版社 2008 第二版4 EDA 技術基礎郭勇主編機械工業出版社2007 年第二版5 電子技能實驗與實訓周福平主編科學出版社 2011 年第一版謝辭畢業論文暫告收尾,這也意味著我在大學學習生活既將結束。回首既往,自己一生最寶貴的時光能于這樣的校園之中,能在眾多學富五車、才華橫溢的老師們的熏陶下度過,實是榮幸之

30、極。在這三年的時間里,我在學習上和思想上都受益非淺。這除了自身努力外,與各位老師、同學和朋友的關心、支持和鼓勵是分不開的。首先,我需要特別感謝我的指導老師黎楊梅老師。老師在我做畢業設計的整個過程中給了我莫大的幫助和指導。從開始選題,到中期修稿,最后再到最終定稿,老師都給我提了很多寶貴的意見。老師淵博的專業知識,嚴謹的治學態度,精益求精的工作作風,誨人不倦的高尚師德,平易近人的人格魅力對我的影響頗深。這不僅使我樹立了遠大的學術目標,熟練的掌握了一些基本的研究方法,還使我更加深刻的明白了許多待人接物與為人處事的一些道理。其次,我要感謝所有曾經為我們講課的任課老師,從他們的身上,我不僅僅學到了很多專

31、業知識,更多的明白了對待生活和人生的態度,對我的人生有很大的影響。再次,我要感謝我的父母,是他們一直默默的支持和鼓勵我,只要有他們,不管我遇到多大的困難,我都會迎難而上,克服困難,走向成功。最后,我還要特別感謝我的室友及其他好友,因為有了他們,我的畢業設計才能順利完成。大學的三年里是你們一直支持和鼓勵我,在我不開心的時候讓我開心起來,我永遠不會忘記我們一起度過的美好時光。畢業設計結束了,通過設計,學生深刻領會到基礎的重要性,畢業設計不僅僅能幫助學生檢驗大學三年的學習成果,更多的是畢業設計可以幫助我們更加清楚的認識自我,磨練學生的意志與耐性,這會為學生日后的工作和生活帶來很大的幫助。附 錄附錄

32、1:原理設計圖附錄 2:元器件清單元器件分類電容電容、電阻電阻單片機集成塊模擬電路晶振顯示模塊數碼管LED燈揚聲器插槽按鍵其它及專用單排排模塊針插針跳線焊錫絲熱轉印紙單面板元器件名元器件型數學生姓指導教備注稱號量名師C1-C81048C9-C1033pF2C11-C1510uF5電解電容R1-R31K3R4-R154K712R16-R2010K5R20-R30010跳線用U1STC89C511U2LM3861U3MAX2321CH1Female1串口Y112M1DS1共陽數碼1管L1-L3紅綠黃31蜂鳴器40P 16P 8P3S1-S2020鍵盤220根31附錄 3: PCB圖PCB 圖 1:

33、音頻放大電路PCB 圖 2:單片機下載電路PCB 圖 3:鍵盤電路附錄 4:完整的程序#include <reg51.50=上表中幾首音樂的旋律中的每一個音符所對應的節拍;* 音符與計數值對應表* 播放歌曲時實現節拍的延時函數*void delay1ms(uint ms)uchar t;while(ms-) for(t=0;t<120;t+);* 鍵消抖延時函數*void delay(void)uchar i;for(i=300;i>0;i-);* 鍵掃描函數 *uchar key_scan()uchar sccode,recode;P0=0xf0;* 發全"0&q

34、uot;的行掃描碼,列線輸入*if(P0&0xf0)!=0xf0) *若有鍵按下*delay1ms(2); * 延時去抖動 * if(P0&0xf0)!=0xf0) * 若有鍵按下 *sccode=0xfe; * 逐行掃描初值 *while(sccode&0x10)!=0)P0=sccode; * 輸出行掃描碼 *void EX1_INT() interrupt 2if(P0&0xf0)!=0xf0)* 本行有鍵按下 *FY=1;LED1=1;LED2=0;* 定時器 0 外部中斷服務子程序 *recode=(P0&0xf0)|0x0f;void timer0_int() interrupt 1 using 0P0=0xf0;* 設置計數初值 *while(scan_key_port&0xf0)!=0xf0);TH0=STH0;P0= 0xff; * 釋放按TL0=STL0;鍵掃描端口 *SPK=!SPK; 反向,產生輸出脈沖return(sccode)+(recode);

溫馨提示

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

評論

0/150

提交評論