課程設計(論文)-基于單片機控制的電子琴設計.doc
《課程設計(論文)-基于單片機控制的電子琴設計.doc》由會員分享,可在線閱讀,更多相關《課程設計(論文)-基于單片機控制的電子琴設計.doc(34頁珍藏版)》請在裝配圖網上搜索。
1、基于單片機控制的電子琴設計 摘 要電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要內容是用AT89c51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。本系統運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統可靠,性價比較高等,具有一定的實用和參考價值。關鍵字:單片機 89C51 LM386 Abstract Electronic organ is a mo
2、dern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. MCU has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content
3、 is AT89C51 control of the core components, design of a electronic organ. MCU 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
4、 system and high cost performance is its advantages. It also has certain practical and reference value.Keywords:MCU 89C51 LM386目錄緒論4第一章 總體方案51.1系統設計要求51.2 電子琴系統的組成51.3 系統框圖5第二章 硬件簡介72.1 AT89C5172.1.1 AT89C51簡介72.1.2 主要的功能特性72.1.3 管腳功能82.1.4 芯片擦除92.2 矩陣式鍵盤的識別92.2.1. 矩陣式鍵盤的結構與工作原理92.2.2. 矩陣式鍵盤的按鍵識別方法1
5、02.2.3. 鍵盤接口必須具有的4個基本功能。102.3 LM386音頻放大電路112.3.1 LM386音頻放大電路原理112.3.2 LM386引腳圖122.3.3 LM386應用電路132.3.5 用LM386設計的音頻放大電路16第三章 軟件設計173.1 音樂彈奏設計173.2 整體程序處理流程圖18第四章 調試與制作204.1 調試過程204.2 制作過程20第五章 結論23致 謝24參考資料25附錄1 單片機口線分布26附錄2 完整程序27附錄3 電路原理圖32附錄4 PCB制版33緒論 隨著大規(guī)模集成電路的出現和發(fā)展,芯片生產廠家把中央處理器CPU,隨機存取內存RAM,只讀存
6、儲器ROM,定時器/計數器以及I/O接口電路等主要計算機部件,集成在一塊集成電路芯片(硅片)上,形成芯片級計算機,稱為單片微型計算機,直譯為單片機。單片機雖只是一個芯片,但從組成和功能上看,它已具有了微機系統的含義,又稱微型處理部件MCU(Micro Controller Unit),單片機商品名稱為微控制器單元。雖然單片機出現的歷史并不長,但發(fā)展十分迅猛,在集成度、功能、速度、可靠性、應用領域等全方位向更高水平發(fā)展。目前單片機已用于工業(yè)控制、機電一體化設備、儀器儀表、信號處理、現代兵器、交通能源、商用設備、醫(yī)療設備及家用電器等各個領域,隨著單片機性能的不斷提高,它的應用將會更加廣泛。單片機技
7、術發(fā)展非常快,所以目前的產品都致力于在功能全面、技術先進、操作簡便、安全可靠、價格合理等方面進行仔細研究,精心設計;及時掌握最新的單片機技術,在條件允許的情況下,盡可能地利用最新的單片機技術來研制其應用系統,再利用單片機體積小、價格低、功能強等特點,以保證所設計的產品在未來的一段時間內仍具生命力。在生活和生產的各個領域中,凡是有自動控制要求的地方都會有單片機的身影出現;從簡單到復雜,從空中、地面到地下,凡是能想象到的地方幾乎都有使用單片機的需求?,F在,盡管單片機的應用已經很普遍了,但仍有許多可以用單片機控制而尚未實現的項目,因此,單片機的應用大有可以想象和拓展的空間。單片機的應用有利于產品的小
8、型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,提高產品質量,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。但是,單片機應用的意義絕不僅限于它的廣闊范圍以及所帶來的經濟效益上,更重要的意義還在于:單片機的應用正從根本上改變著傳統的控制系統設計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分控制功能,現在已能使用單片機通過軟件(編程序)方法實現了。這種以軟件取代硬件并能提高系統性能的控制系統“軟化”技術,稱之為微控制技術。微控制技術是一種全新的概念,是對傳統控制技術的一次革命。隨單片機應用的推廣普及,微控制技術必將不斷發(fā)展、日益完善和更加充實。簡易電子琴系統就是以單片機為主要元
9、器件設計的一個簡易電子琴,這只是單片機應用的一個點,由點及面,希望可以更好的了解和應用單片機技術。 之所以以單片機電子琴為選題,目的在于從日常生活能接觸到的細微處著手,通過理論與實踐的結合,更明確自己的所學所用,也在實踐中發(fā)現理論的不足,對目前日益廣泛應用的單片機有了更加理性化和感性化的認識,使理論和實踐相得益彰。 通過單片機電子琴這個選題,更深層次的了解了單片機技術,以前只是有理論,實踐的機會不是很多,在作單片機電子琴這個選題的過程中,更加熟練的掌握了一些單片機芯片的應用,也解決了很多以前理論和實踐脫節(jié)的問題,可謂對單片機的認識有了一個小的飛躍。第一章 總體方案1.1系統設計要求本系統分為兩
10、個部分,一個是鍵盤彈入,另一個就是電子琴演奏。 關于聲音的處理,使用單片機C語言,利用定時器來控制頻率,而每個音符的符號只是存在我自己定義的表中。具體要求如下: 1.要求達到電子琴的基本功能,可以用彈奏出簡單的樂曲。 2.用鍵盤作出電子琴的按鍵,每鍵代表一個音符。 3.各音符按一定的順序排列,必須符合電子琴的按鍵排列順序。 5.彈奏電子琴時能播放出準確的聲音1.2 電子琴系統的組成單片機因體積小、功能強、價格低廉而得到廣泛應用。AT89C51單片機設計微型電子琴的方法,僅需AT89C51最小系統,擴展一組矩陣鍵盤,再接一個音頻放大電路。聲音輸出部分:聲音實際上是有固定周期的信號。本文介紹用AT
11、89C51的兩個定時器(如T0,T1)控制,在P2.0腳上輸出方波周期信號,產生樂音,通過矩陣鍵盤按鍵產生不同的音符,由此操作人員可以隨心所欲的彈奏自己所喜愛的樂曲,這樣就做出了一臺微型電子琴。由于一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可彈奏出我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。演奏中,每一音符對應著確定的頻率,我們將每一音符的時間常數和其相應的節(jié)拍常數作為一組,按順序將樂曲中的所有常數排列成一個表
12、,然后由查表程序依次取出,產生音符并控制節(jié)奏,就可以實現演奏效果。電子琴彈奏部分:實際上就是把每個按鍵所對應的值經過處理后發(fā)給單片機,再在單片機內把數字當作指針指向所對應的音符。1.3 系統框圖該系統通過電子琴按鍵隨意鍵入所要表達的音符,作為電平送給主體電路,中央處理器通過識別,解碼輸出音符,在揚聲器中發(fā)出有效的聲音。通過這樣可以不斷的彈奏音樂。嵌入式電路,按鍵電路,音頻放大電路。其主要模塊由三個部分組成,具體關系如圖2-1所示:圖1-1電子琴框圖上圖即為此次設計中的電子琴的硬件結構圖,我們運用單片機的最小系統,用P0口的高四位和P0口的低四位作4X4矩陣式按鍵的接口,用P2.0作信號輸出口。
13、第二章 硬件簡介圖2-1 AT89C512.1 AT89C512.1.1 AT89C51簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C5
14、1是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3-1所示。2.1.2 主要的功能特性 與MCS-51 兼容4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數據保留時間:10年全靜態(tài)工作:0Hz-24MHz三級程序存儲器鎖定1288位內部RAM32可編程I/O線兩個16位定時器/計數器5個中斷源可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路2.1.3 管腳功能VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時
15、,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸
16、入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功
17、能口,如下表所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸
18、出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程
19、序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.1.4 芯片擦除整個PEROM陣列和三個鎖定位的電
20、擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。圖2-2 AT89c51單片機最小系統2.2 矩陣式鍵盤的識別2.2.1. 矩陣式鍵盤的結構與工作原理在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩
21、陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,
22、則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及編程方法如下所述。2.2.2. 矩陣式鍵盤的按鍵識別方法確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。1、判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將
23、行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。2.2.3. 鍵盤接口必須具有的4個基本功能。 (1)去抖動:每個按鍵在按下或松開時,都會產生短時間的抖動。抖動的持續(xù)時間與鍵的質量相關,一般為520mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。去抖問題可通過軟件延時或硬件電路解決。 (2)防串鍵:防串鍵是為了解決多個鍵同時按下或者前一按鍵沒有釋放又有新的按鍵按下時產生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩
24、種方法。雙鍵鎖定,是當有兩個或兩個以上的按鍵按下時,只把最后釋放的鍵當作有效鍵并產生相應的鍵碼。N鍵輪回,是當檢測到有多個鍵被按下時,能根據發(fā)現它們的順序依次產生相應鍵的鍵碼。 (3)被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結合的方法完成。常用的方法有行掃描法和線反轉法兩種。行掃描法的基本思想是,由程序對鍵盤逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設置入口、輸出口一個,該方法在微機系統中被廣泛使用。線反轉法的基本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個可編程的雙向輸入/輸出端口。 (4)鍵碼產生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,
25、一般在內存區(qū)中建立一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用AT89C51的并行口P0接44矩陣鍵盤,以P0.0P0.3作輸入線,以P0.4P0.7作輸出線;在數碼管上顯示每個按鍵的“0F”序號。圖2-3 44鍵盤電路圖2.3 LM386音頻放大電路2.3.1 LM386音頻放大電路原理 LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應用于錄音機和收音機之中。LM386內部電路原理圖如下圖所示。與通用型集成運放相類似,它是一個三級放大電路。第一級為差分放大電路,T1和T3、T2和T4分別構成復合管,作為差分放大電路的放大管;
26、T5和T6組成鏡像電流源作為T1和T2的有源負載;T3和T4信號從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。第二級為共射放大電路,T7為放大管,恒流源作有源負載,以增大放大倍數。第三級中的T8和T9管復合成PNP型管,與NPN型管T10構成準互補輸出級。二極管D1和D2為輸出級提供合適的偏置電壓,可以消除交越失真。引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL(省去輸出變壓器的功率放大電路通常稱為OTL電路。其中,OTL為Output TransformerLe
27、ss 的縮寫)電路。輸出端(引腳5)應外接輸出電容后再接負載。電阻R7從輸出端連接到T2的發(fā)射極,形成反饋通路,并與R5和R6構成反饋網絡,從而引入了深度電壓串聯負反饋,使整個電路具有穩(wěn)定的電壓增益。2.3.2 LM386引腳圖LM386的外形和引腳的排列如下圖所示。引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設定端;使用時在引腳7和地之間接旁路電容,通常取10F。查LM386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時,帶寬為300KHz;輸入
28、阻抗為50K;音頻功率0.5W。 盡管LM386的應用非常簡單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調節(jié)鈕)都會帶來的瞬態(tài)沖擊,在輸出喇叭上會產生非常討厭的噪聲。1、通過接在1腳、8腳間的電容(1腳接電容+極)來改變增益,斷開時增益為20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會帶來好處-噪音減少,何樂而不為?2、PCB設計時,所有外圍元件盡可能靠近LM386;地線盡可能粗一些;輸入音頻信號通路盡可能平行走線,輸出亦如此。這是死理,不用多說了吧。3、選好調節(jié)音量的電位器。質量太差的不要,否則受害的是耳朵;阻值不要太大,10K最
29、合適,太大也會影響音質,轉那么多圈圈,不煩那!4、盡可能采用雙音頻輸入/輸出。好處是:“”、“”輸出端可以很好地抵消共模信號,故能有效抑制共模噪聲。5、第7腳(BYPASS)的旁路電容不可少!實際應用時,BYPASS端必須外接一個電解電容到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個電容的容值,減緩直流基準電壓的上升、下降速度,有效抑制噪聲。在器件上電、掉電時的噪聲就是由該偏置電壓的瞬間跳變所致,這個電容可千萬別省啊!6、減少輸出耦合電容。此電容的作用有二:隔直 + 耦合。隔斷直流電壓,直流電壓過大有可能會損壞喇叭線圈;耦合音頻的交流信號。它與揚聲器負載構成了一
30、階高通濾波器。減小該電容值,可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會使截止頻率(fc1/(2*RL*Cout))提高。分別測試,發(fā)現10uF/4.7uF最為合適,這是我的經驗值。7、電源的處理,也很關鍵。如果系統中有多組電源,太好了!由于電壓不同、負載不同以及并聯的去耦電容不同,每組電源的上升、下降時間必有差異。非??尚械姆椒ǎ簩⑸想?、掉電時間短的電源放到+12V處,選擇上升相對較慢的電源作為LM386的Vs,但不要低于4V,效果確實不錯!2.3.3 LM386應用電路1、電壓增益為20的放大電路2、電壓增益為50的放大電路3、電壓增益為200的放大電路4、在85Hz具有6db增益的放大
31、電路5、收音機中的LM386:2.3.5 用LM386設計的音頻放大電路圖2-4 LM386設計的音頻放大電路第三章 軟件設計3.1 音樂彈奏設計一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。現在以單片機12MHZ晶振為例,例出高中低音符與單片機計數T0相關的計數值如下表所示音符頻率(HZ)簡譜碼(T值) 音符頻率(HZ)簡譜碼(T值)低1DO26263628# 4
32、 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400 # 2 RE#124565134# 646664463高 3 M131865157低 7 SI49
33、464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283下面我們要為這個音符建立一個表格,有助于單片機通過查表的方式來獲得相應的數據低音019之間,中音在2039之間,高音在4059之間 1 2 3 4 5 6 7 8 9 10TABLE:DW 0 ,63628,6
34、3835,64021,64103,64260,64400,64524,0 ,0DW 0 ,63731,63928,0 ,64185,64331,64463,0 ,0 ,0DW 0 ,64580,64684,64777,64820,64898,64968,65030,0 ,0DW 0 ,64633,64732,0 ,64860,64934,64994,0 ,0 ,0DW 0 ,65058,65110,65157,65178,65217,65252,65283,0 ,0DW 0 ,65085,65134,0 ,65198,65235,65268,0 ,0 ,0DW 0unsigned int co
35、de tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178; 2、音樂的音拍,一個節(jié)拍為單位(C調)曲調值DELAY 曲調值DELAY調4/4125ms 調4/462ms調3/4187ms 調3/494ms調2/4250ms 調2/4125ms對于不同的曲調我們也可以用單片機的另外一個定時/計數器來完成。3.2 整體程序處理流程圖圖3-1 整體程序處理流程圖第四章 調試與制作4.1 調試過程在調試過程中,發(fā)現P2.0輸出的音頻信號過小,所以加了
36、一個PNP的三極管進行放大。4.2 制作過程1.先將發(fā)到的元器件,焊接到已經制成的印刷電路板上,用普通按鈕進行調試2.對外殼進行鉆孔,把16個鉆孔按照愛心形狀排列。并且將新按鈕按照愛心的形狀排列在2塊萬能板上進行焊接。將焊接的2塊萬能板對準插進外殼已經打孔完成的孔內并固定。將愛心鍵盤的線引出。同理,把開關和喇叭的線也引出來。3.把鍵盤、喇叭、開關上面引出的先焊接到印刷電路板上,這樣就完成了外部元器件的引出工作。4.將印刷電路板固定在底部盒子上,并且蓋上蓋子。5.對外殼進一步美化。第五章 結論將程序導入AT89C51芯片,調試成功后,可任意彈奏自己想要的旋律。本課題通過制作電子琴,將幾個模塊很好
37、的融合起來,對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,于是我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可,然后我們利用功放電路來將音樂聲音放大。通過這次課程設計,我感覺收獲了很多:首先,通過實踐,加深對單片機系列知識及其系統的認識。這個設計題目并不是新的,但從中能體現到一個系統開發(fā)設計的過程,足于讓
38、我們受益。第二,通過設計學習到了很多軟件的使用。本次設計,軟件部分用到了用keil進行程系編譯,用protel進行制板。第三,提高了自己的動手能力。動手在一定程度上反映了一個人的能力,作為當代大學生,社會要求的我們不是只能說而不能做的人才;作為電機的一員,三能人才標準更讓我們清醒地認識到,實際動手能力無比重要。從這次實物制作中,我的動手能力提高了,更加進一步提高了我們對產品的認知度,一個好的產品不光要有好的功能,更要有一個漂亮的外觀,這次的課程設計與以往的最大不同在于要對已經制作的板子進行包裝,所以也鍛煉了我們的藝術細胞。感謝學院給了我們這次實踐動手的機會,更感謝我們的劉老師教育了我們單片機相
39、關知識。 致 謝能夠得以順利完成,是所有曾經指導過我的老師,幫助過我的同學,一直支持著我的家人對我的教誨、幫助和鼓勵的結果。我要在這里對他們表示深深的謝意!首先,要特別感謝我的指導老師 老師。劉老師在我課程設計過程中,給我提供了極大的幫助和指導。從開始選題到中期修正,再到最終定稿, 老師給我提供了許多寶貴建議。劉老師淵博的專業(yè)知識,嚴謹的治學態(tài)度,精益求精的工作作風,誨人不倦的高尚師德,樸實無華、平易近人的人格魅力對我影響深遠。不僅使我樹立了遠大的學術目標、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。其次,要感謝所有曾經給我們教過數字電路和模擬電路的 老師和 老師,老師們教
40、會我的不僅僅是專業(yè)知識,更多的是對待學習、對待生活的態(tài)度。第三,感謝我的室友及其他好友,因為有你們的幫助,我的設計得以順利完成。感謝你們,三周給我了那么多的幫助和支持。參考資料1 康年光.電子技術基礎(數字部分).高等教育出版社.2005.07 2 劉樂喜.微機計算機接口技術及應用.華中科技大學出版社.2005.083 謝嘉奎.電子線路(線性部分).高等教育出版社.2004.044 潭浩強.C語言程序設計.清華大學出版社.2005.075 李群芳,肖看.單片機原理、接口及應用嵌入式系統技術基礎.清華大學出版社.2005.036 馮博琴.微型計算機原理與接口技術.清華大學出版社.20047 長德
41、,李華,李東.MCS51/98系列單片機原理與應用.機械工業(yè)出版社.19978 李群芳,張士軍,黃建.單片微型計算機原理與接口技術.電子工業(yè)出版社.20029 石東海等.單片機數據通信技術從入門到精通.西安電子科技大學出版社.200210 謝自美等.電子線路設計、實驗、測試(第二版).華中科技大學出版社.200011 R.L.Geiger,P.E.Allen,N.R.Strader.VLSI.DLSI Design Techniques for Analog And Digital Ciruits.McGraw-Hill Inc.199012N.R.Mallik.Electronic Ciru
42、its-Analysis Simulation and Design.Prentice Hall,1995.附錄1 單片機口線分布P0口低四位作為鍵盤的輸入P0口高四位作為鍵盤的輸出P2.0作為音頻信號輸出端附錄2 完整程序#include sbit P2_0=P20;sbit P0_4=P04;/橫1 sbit P0_5=P05;/橫2sbit P0_6=P06;/橫3sbit P0_7=P07;/橫4unsigned char temp; unsigned char key; unsigned char i,j; unsigned char STH0; unsigned char STL0
43、; unsigned int code tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178; void main(void) TMOD=0 x01; ET0=1; EA=1; while(1) P0=0 xff; P0_4=0; temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P0; temp=temp & 0 x0f; i
44、f (temp!=0 x0f) temp=P0; temp=temp & 0 x0f; switch(temp) case 0 x0e: key=3; break; case 0 x0d: key=2; break; case 0 x0b: key=1; break; case 0 x07: key=0; break; temp=P0; /多P2_0=P2_0; STH0=tabkey/256; STL0=tabkey%256; TR0=1; temp=temp & 0 x0f; while(temp!=0 x0f) temp=P0; temp=temp & 0 x0f; TR0=0; P0=
45、0 xff; P0_5=0; temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) temp=P0; temp=temp & 0 x0f; switch(temp) case 0 x0e: key=7; break; case 0 x0d: key=6; break; case 0 x0b: key=5; break; case 0 x07: key=4; break; temp=P0; /多P2_0=
46、P2_0; STH0=tabkey/256; STL0=tabkey%256; TR0=1; temp=temp & 0 x0f; while(temp!=0 x0f) temp=P0; temp=temp & 0 x0f; TR0=0; P0=0 xff; P0_6=0; temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) temp=P0; temp=temp & 0 x0f; switch(tem
47、p) case 0 x0e: key=11; break; case 0 x0d: key=10; break; case 0 x0b: key=9; break; case 0 x07: key=8; break; temp=P0; /多P2_0=P2_0; STH0=tabkey/256; STL0=tabkey%256; TR0=1; temp=temp & 0 x0f; while(temp!=0 x0f) temp=P0; temp=temp & 0 x0f; TR0=0; P0=0 xff; P0_7=0; temp=P0; temp=temp & 0 x0f; if (temp!
48、=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P0; temp=temp & 0 x0f; if (temp!=0 x0f) temp=P0; temp=temp & 0 x0f; switch(temp) case 0 x0e: key=15; break; case 0 x0d: key=14; break; case 0 x0b: key=13; break; case 0 x07: key=12; break; temp=P0; /多P2_0=P2_0; STH0=tabkey/256; STL0=tabkey%256; TR0=1; temp=temp & 0 x0f; while(temp!=0 x0f) temp=P0; temp=temp & 0 x0f; TR0=0; void t0(void) interrupt 1 using 0 TH0=STH0; TL0=STL0; P2_0=P2_0; 附錄3 電路原理圖附錄4 PCB制版34
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。