畢業(yè)論文-基于單片機的簡易電子琴系統(tǒng)設計_第1頁
畢業(yè)論文-基于單片機的簡易電子琴系統(tǒng)設計_第2頁
畢業(yè)論文-基于單片機的簡易電子琴系統(tǒng)設計_第3頁
畢業(yè)論文-基于單片機的簡易電子琴系統(tǒng)設計_第4頁
畢業(yè)論文-基于單片機的簡易電子琴系統(tǒng)設計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本科畢業(yè)論文基于單片機的簡易電子琴系統(tǒng)設計Simplekeyboardsystemdesignbasedonsinglechipmicrocomputer學院名稱:專業(yè)班級:電子信息工程(專升本)2013級學生姓名:學號:指導教師姓名:指導教師職稱:2015年5月基于單片機的簡易電子琴系統(tǒng)設計摘要:隨著科學技術的不斷發(fā)展,單片機的應用日益成熟。單片機集成度高、處理功能強大、價格低廉使其在各個領域得到廣泛應用。電子琴作為科學技術與音樂共同發(fā)展的產(chǎn)物,在這個電子信息化的時代,為音樂的大眾化做出了不可代替的貢獻。本系統(tǒng)是基于單片機的簡易電子琴的設計。系統(tǒng)以STC89C52單片機作為主控單元,與4*4矩陣鍵盤、復位電路、揚聲器等組成主控核心模塊。利用定時器中斷產(chǎn)生不同頻率來實現(xiàn)不同音階,用鍵盤掃描實現(xiàn)矩陣琴鍵的識別。音頻處理部分采用LM386進行信號放大,通過揚聲器發(fā)音。簡易電子琴可以實現(xiàn)用矩陣琴鍵彈奏樂曲和播放一段示例音樂的功能。設計中采用了AltiumDesigner畫出原理圖、PCB圖,然后通過Keil軟件進行C語言程序進行編譯,對電子琴進行軟件編程編譯,然后在進行軟硬件的調試運行并將程序燒錄到STC89C52芯片中。此系統(tǒng)運行比較穩(wěn)定,具有硬件設計電路簡單、清晰,成本低,軟件功能完善,控制系統(tǒng)牢靠,性價比高等優(yōu)點,具有一定的實用和參考價值。關鍵字:簡易電子琴;STC89C52;LM386;矩陣鍵盤SimplekeyboardsystemdesignbasedonsinglechipmicrocomputerAbstract:Withthecontinuousdevelopmentofscienceandtechnology,theapplicationofsingle-chipmicrocomputerisbecomingmoreandmoremature.Singlechipmicrocomputerhighintegration,dealwithpowerfulfunctions,lowpriceiswidelyappliedinvariousfields.Electronicorganasaproductofscienceandtechnologyandthemusiccommondevelopment,intheelectronicinformationage,contributingtotheforthepopularityofthemusic.Thissystemisthedesignofsimpleelectronicorganbasedon51singlechipmicrocomputer.SystemtoSTC89C52single-chipmicrocomputerasmaincontrolunit,and4*4matrixkeyboard,resetcircuit,speakerandsoonmastercoremodules.Usingthetimerinterruptproduceddifferentfrequenciestoachievedifferentscales,thekeyboardscanachievedtheidentificationofthekeysofmatrix.ProcessingpartadoptsLM386audiosignalamplification,pronunciationthroughthespeaker.Simplekeyboardkeyscanbeachievedwithmatrixplaymusicandplayasamplefunctionofmusic.ThissystemmainlyUSESmicrocontrollerhardwaredesignandsoftwarestructuredesign,combiningtomakeelectronicorgan.UsingtheAltiumDesignerdrawaschematicdiagramandPCBdiagram,andthenthroughKeilsoftwarewithClanguageprogramming,softwareprogrammingcompilationwascarriedoutonthekeyboard,andthentorunthehardwareandsoftwaredebuggingandwillburntoSTC89C52chipintheprogram.Thesystemrunningisstable,hasthehardwarecircuitissimple,cleardesign,lowcost,softwarefunctionisperfect,reliablecontrolsystem,highcostperformance,hascertainpracticalandreferencevalue.Keywords:simpleelectronicorgan;STC89C52;LM386;matrixkeyboard目錄TOC\o"1-3"\h\u摘要 4Abstract 5引言 7第一章 緒論 91.1設計目的及其意義 91.2設計方案選擇 9第二章系統(tǒng)概述 112.1系統(tǒng)結構圖 112.2軟件設計流程圖 112.3整體設計要求 122.4單片機發(fā)音選擇 122.5按鍵模塊方案選擇 122.6音頻處理模塊方案選擇 122.7單片機語言程序的選擇 13第三章系統(tǒng)主要硬件電路設計 133.1單片機控制系統(tǒng)原理 133.1.1芯片選用 133.1.2芯片引腳介紹 143.1.3STC89C52時鐘介紹 163.2音頻處理模塊 163.2.1LM386簡介 163.3鍵盤控制電路 183.3.1矩陣式鍵盤的概述 183.3.2矩陣式鍵盤按鍵識別原理及方法 183.4晶振電路 203.5復位電路 203.6音頻放大電路 21第四章軟件部分 214.1音樂產(chǎn)生原理 214.2音階產(chǎn)生方法 224.3利用單片機實現(xiàn)音樂節(jié)拍 224.4用單片機產(chǎn)生音頻脈沖 224.4.1音符和頻率的關系 224.4.2定義初值 244.5音樂發(fā)聲程序流程圖 24第五章調試 255.1Proteus簡介 255.2keil簡介 255.3利用keil與Proteus進行的調試 26結論 28致謝 29參考文獻 30附錄 31附錄一:電子琴電路原理圖 31附錄二:PCB電路圖 32附錄三:電子琴實物圖 32附錄四:程序清單 33引言隨著現(xiàn)代社會科學技術的快速發(fā)展,電子技術已經(jīng)改變了人們生活的各個方面。電子琴作為一種新型的鍵盤樂器,是音樂與現(xiàn)代電子科學技術發(fā)展相結合的產(chǎn)物,雖然沒有其它樂器那么多鮮明的特點,但是電子琴的簡單易學已經(jīng)讓它在現(xiàn)代音樂中占到了一個很重要的位置。而單片機具有強大的編程實現(xiàn)特性和靈活的控制功能,單片機成為了電子琴中不可替代的重要一部分,這次系統(tǒng)設計的主要任務是用STC89C52單片機作為核心控制元件,設計一個簡易電子琴,主要介紹了電子琴硬件系統(tǒng)的組成并對相關軟件程序方面做了相關的分析研究和調試。雖然單片機產(chǎn)生的時間并不是太長,但它的發(fā)展速度令人驚訝,它的高水平發(fā)展在集成度、可靠性、速度、應用等領域表現(xiàn)的淋漓精致。隨著單片機性能的不斷提高,單片機的應用變得更加廣泛,目前它已用于工業(yè)控制、機電一體化設備、儀器儀表、信號處理、現(xiàn)代兵器、交通能源、商用設備、醫(yī)療設備及家用電器等多個領域。單片機技術的發(fā)展速度非常之快,目前的產(chǎn)品都運用于各個功能方面進行更加全面的設計研究;在社會消費的需求競爭之下,盡可能地利用單片機的最新技術來研制其應用系統(tǒng),再利用單片機靈便、性價比高等特點,來確保所設計出來的產(chǎn)品能夠具有強大的競爭力和存活力。在社會活動的各個方面中,始終都有單片機的身影;從簡易的到復雜的,各個地點,凡是能看到的地方幾乎都有使用單片機的需求。雖然現(xiàn)在單片機供應的應用已經(jīng)普及開來了,但還是有許多單片機尚未涉足到的地方,因此,單片機的應用和需求在現(xiàn)在現(xiàn)代社會的運用中還是有發(fā)展的。電子琴在當前的音樂玩具市場上是一個非常好的應用方面。單片機技術可以利用軟件和硬件開發(fā)出電子琴功能,從而實現(xiàn)電子琴的微型化,可以用作教學琴、玩具琴等。還可以對相關功能做出一些拓展。參照傳統(tǒng)電子琴可以用鍵盤上的“k0”到“k8”鍵演奏從低So到高DO等8個音,從而可以用來彈奏喜歡的樂曲。緒論1.1設計目的及其意義單片機(單片微型計算機)是大規(guī)模集成電路技術發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠等特點。單片機的應用相當廣泛,從平常的家用電器到航空航天系統(tǒng)和國防軍事、尖端武器都能找到它的身影。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項重大課題。隨著社會的發(fā)展進步,人們的生活水平也逐步提高,音樂已經(jīng)成為了人們生活中很重要的一部分,在工作和學習之余,欣賞音樂不僅使身心得到放松,同時也提高人們的精神品質和個人素養(yǎng)。當代,愛好音樂的年輕人越來越多,也有不少人自己練習彈奏樂器,作為業(yè)余愛好和一種放松的手段,鑒于一些樂器學習難度大需花費太多精力,且其價格太過于高昂,使得一部分有這種想法的人不得不放棄這種想法,而電子琴又是一種新型的鍵盤樂器,是現(xiàn)代電子科技與音樂結合的產(chǎn)物,價格相對便宜,能夠滿足一般愛好者的需求,在現(xiàn)代音樂中扮演著重要的角色,簡易電子琴的研制具有一定的社會意義。1.2設計方案選擇實現(xiàn)本次設計的方案有多種,下面比較說明一下最佳方案的選擇。方案一:采用單個的邏輯器件組合音樂是有由不同的音階組成的,而不同的音階又是由不同的按鍵頻率發(fā)出的,那么利用不同的頻率,就可以發(fā)出不同的音樂了。計數(shù)器8253可以產(chǎn)生任意頻率的方波頻率信號,因此,只要把一首歌曲的音階對應頻率與計數(shù)器的頻率對應起來就可通過計數(shù)器產(chǎn)生音樂了。根據(jù)本實驗要求,采用8279將按鍵上掃描得到的鍵值,通過查表得到相應的8253的頻率值,將從8253得到相對應的按鍵彈奏信號經(jīng)過LM386進行放大,再用喇叭輸出,就實現(xiàn)了簡易電子琴的基本功能,也就完成了實驗的要求。方案二:采用STC89C52單片機作為主控芯片,設置鍵盤、揚聲器等外圍器件,另外還用到一些簡單器件如:晶振、有極電容、4*4矩陣鍵盤及電阻等。利用按鍵實現(xiàn)音符和音調的輸入,用LM386音頻放大器實現(xiàn)低音頻功率放大,最后用揚聲器發(fā)音。二種方案的比較:方案一采用單個的邏輯器件組合實現(xiàn)。這樣雖然比較直觀,邏輯器件分工鮮明,思路也比清晰,一目了然,但是由于元器件種類、個數(shù)比較多,太過于復雜的硬件電路也容易引起系統(tǒng)的精度不高、體積過大等不利因素。例如七個不同的音符是由七個不同的頻率來控制發(fā)出的,所用儀器之多顯而易見。方案二與前一種方案相比,主控芯片采用STC89C52單片機,它是大規(guī)模集成電路技術發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應用廣泛的特點。同時具有強大的控制功能和靈活的編程實現(xiàn)特性,由于本設計主要用于人們娛樂方面,因此在設計上盡量使其安全以及簡單易操作。而第三種方案具有經(jīng)濟可行性、技術可行性、實物應用性。綜上所述,本次課程設計采用第二種方案。第二章系統(tǒng)方案確定2.1系統(tǒng)結構圖單片機晶振電路4*4矩陣鍵盤單片機晶振電路4*4矩陣鍵盤音頻處理電路復位電路電源電路撫慰系統(tǒng)結構圖圖2.1系統(tǒng)結構圖系統(tǒng)圖顯示的是設計電子琴所需要的所有硬件結構,通過這些硬件來完成電子琴的系統(tǒng)設計。在下面的寫作中,會詳細的介紹各個模塊的作用和功能。2.2軟件設計流程圖軟件流程圖如圖2.2。初始化初始化掃描按鍵掃描按鍵開關?開關?圖2.2軟件設計流程圖本系統(tǒng)采用STC89C52單片機作為核心處理器件,按下復位鍵,進入初始化,調用鍵盤掃面子程序,獲得鍵值,獲取定時初值,向喇叭輸入相應頻率的脈沖驅動,發(fā)出相應的音調,若按鍵沒有釋放,則一直發(fā)聲;若按鍵松開,則停止發(fā)聲??梢赃x擇自動播放音樂。

2.3整體設計要求本系統(tǒng)的主要內容是用STC89C52單片機為核心控制元件,設計一個簡單的電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。利用LM386作音頻放大器,可以根據(jù)設計要求來改變功率,來控制聲音的大小。先根據(jù)系統(tǒng)設計要求設計硬件電路和編寫相應的程序,然后進行仿真調試,最后細心焊接硬件電路圖,將程序拷入芯片中,最終達到設計目的。具體實現(xiàn)的功能:按下音符鍵可以發(fā)出相應的音符也可以自動播放一段音樂。2.4單片機發(fā)音選擇由于單片機的強大功能,除了在測試控制領域中有著廣泛的應用外,還有一些有趣的應用。比如,使用單片機可以驅動蜂鳴器或者揚聲器發(fā)出聲音,還可以控制其發(fā)出不同的聲調,從而連接起來構成一個曲子。目前,市場上有很多種音樂模塊或者音樂芯片,可以直接產(chǎn)生各種曲子。但是,這種模塊價格比較昂貴,電路結構比較復雜。如果系統(tǒng)中僅需要產(chǎn)生簡單的音符或者簡短的曲子,可以使用單片機配合簡單的揚聲器而產(chǎn)生需要的音樂效果。一般說來,單片機不像其他專業(yè)樂器那樣能奏出多種音色的聲音,即不包含相應幅度的諧波頻率。單片機演奏的音樂基本都是單音頻率。因此單片機演奏音樂比較簡單,只需要清楚“音調”和“節(jié)拍”2.5按鍵模塊方案選擇使用簡易電子琴彈奏音樂時,需要中音區(qū)的8個音階和低音與高音區(qū)的一部分音階。獨立式按鍵占用的I/O口太多,而使用4*4矩陣鍵盤可以僅用一個四根行輸出線和四根列輸入線,同時可以彈奏低音3至高音5之間的音階,已完全滿足簡單的彈奏需要。所以,根據(jù)設計要求我選擇的是4*4矩陣鍵盤,這樣既節(jié)約了成本,也節(jié)約了時間,制作起來比較簡單。2.6音頻處理模塊方案選擇這次的設計主要靠揚聲器最終發(fā)出聲音。由于單片機驅動能力不夠,在處理音符信號時,需加功率放大裝置。使用LM386:LM386是美國國家半導體公司生產(chǎn)的音頻功率放大器,主要應用于低電壓消費類產(chǎn)品。為保證聲音效果,本設計使用LM386作放大器件。2.7單片機語言程序的選擇當我定了這個題目以后,我和幫助我的同學在一起討論語言程序用哪一種,我對于匯編語言不是很懂,學的不是很好,同學就建議我用C語言來進行編程,C語言相對于匯編語言簡單易懂。相比較以后,最后我選擇了C語言作為我這次設計的語言程序。第三章系統(tǒng)主要硬件電路設計3.1單片機控制系統(tǒng)原理3.1.1芯片選用STC89C52芯片的最小系統(tǒng)如圖3.1。圖3.1單片機最小系統(tǒng)STC89C52是由STC公司生產(chǎn)一款功耗低、性能高的8位微控制器,兼容MSC51指令系統(tǒng),8K可反復擦寫FlashROM。在單塊芯片上,具有8位CPU和可編程的Flash,使得STC89C52能為大多數(shù)嵌入式控制體統(tǒng)提供靈活度且有效的解決方案。3.1.2芯片引腳介紹(1)電源引腳電源引腳用于是接入單片機的工作電源。Vcc(pin40):電源接入,接+5V電源。Vss(pin20):接數(shù)字地。(2)時鐘引腳XTAL1(pin19):片內振蕩電路的輸入端。當使用片內振蕩器時,此引腳接微調電容和石英晶體;當采用外接時鐘源時,引腳接振蕩器信號。XTAL2(pin20):片內振蕩電路的輸出端。當使用片內振蕩器時,和pin19的接法一樣;當采用外部時鐘源時,此引腳懸空。(3)控制引腳RST(pin9):復位信號輸入端,引腳上出現(xiàn)2個機器周期的高電平時單片機復位。Vpp具有第二引腳功能,當對片內Flash進行編程時,此引腳接入編程電壓。ALE/PROG(pin30):用于地址鎖存。若訪問外部程序存儲器(ROM)和數(shù)據(jù)存儲器(RAM),ALE將用于鎖存低8位的地址。此時,ALE仍會以時鐘振蕩頻率的1/6輸出一個固定的脈沖信號,因此它可用于對外輸出時鐘或定時。但是要注意:每次訪問外部數(shù)據(jù)存儲器(RAM)時需要跳過一個ALE脈沖。進行Flash存儲器編程時,此引腳還可用于輸入編程脈沖(PROG)。此外,還可通過對特殊功能寄存器(SFR)中的8EH單元的D0位置位,可以禁止ALE操作。該位置位后,只有MOVX和MOVC指令才能把ALE激活。此外,該引腳將會被拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN(pin29):片外存儲器讀選通信號,低電平有效。EA/Vpp(pin31):程序存儲器的內部讀選通。接低電平從外部存儲器讀取指令,若接高電平從內部程序存儲器讀取指令。(4)并行I/O口引腳(32根)STC89C52有4組8位可編程的I/O口,分別為P0、P1、P2、P3口,共32根。P0口(pin39~pin32):8位雙向I/O口線,分別為P0.0~P0.7。P0口是一個漏極開路的I/O口。作為輸出口,每一位均可以驅動8個TTL負載。當對P0端口寫入“1”的時侯,該引腳可以用作高阻抗輸入。當訪問外部程序存儲器或者數(shù)據(jù)存儲器時,P0口也被作為地址總線(低8位)和數(shù)據(jù)分時復用。在這種模式下,P0不需要外加上拉電阻。P0口也可以作為I/O口使用,也可以用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié),此時需要加10K~4.7K的外部上拉電阻。P1口(pin1~pin8):8位準雙向I/O口線,分別為P1.0~P1.7。P1口內部具有上拉電阻,P1口輸出緩沖器能夠驅動4個TTL邏輯電平。若對P1口寫入“1”的時候,內部上拉電阻就會把端口拉高,此時可以用作輸入口。當作為輸入口使用時,被外部拉低的引腳因為其內部電阻,將輸出電流。此外,P1.0和P1.2分別可以作定時器/計數(shù)器2的外部計數(shù)輸入和定時器/計數(shù)器2的觸發(fā)輸入。具體如下表1-1所示。在Flash編程和校驗時,P1口用于接收低8位地址。表1-1P1口引腳第二功能引腳第二功能說明P1.0T2計數(shù)輸入,時鐘輸出P1.1T2EX捕捉/重載觸發(fā)信號P1.5MOSI在線系統(tǒng)編程用P1.6MISO在線系統(tǒng)編程用P1.7SCK在線系統(tǒng)編程用P2口(pin21~pin28):8位雙向I/O口線,分別為P2.0~P2.7。P2輸出緩沖器能夠驅動4個TTL邏輯電平。當對P2端口寫入“1”的時候,內部上拉電阻就會把端口拉高,此時就可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳因為其內部電阻,就會輸出電流。在訪問其外部ROM或用16位地址讀取外部RAM時,P2口就會送出高八位地址。此時,P2口利用內部上拉發(fā)送“1”。當使用8位地址,訪問其外部數(shù)據(jù)存儲器(RAM)時,P2口將會輸出P2鎖存器的內容。在Flash編程或者校驗時,P2口也用于接收高8位地址和某些控制信號。P3口(pin10~pin17):8位雙向I/O口線,分別為P3.0~P3.7。P3口其內部具有上拉電阻,P2口輸出緩沖器能夠驅動4個TTL邏輯電平。當對P3口寫入“1”的時候,內部上拉電阻就會把端口拉高,此時就可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳因為其內部電阻,將會輸出電流。P3口也作為STC8C52具有第二功能的引腳使用,如下表2-2所示。當然,在Flash編程和校驗時,P3口也接收某些控制信號。表2-2P3口引腳第二功能P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2INT0外中斷0P3.3INT1外中斷1P3.4T0定時/計數(shù)器0P3.5T1定時/計數(shù)器1P3.6WR外部數(shù)據(jù)存儲器寫選通P3.7RD外部數(shù)據(jù)存儲器讀選通3.1.3STC89C52時鐘介紹STC89C52內部有一個高增益的反相放大器,此放大器用于構成振蕩器,其引腳TXD和RXD分別是這個放大器的輸出端和輸入端。STC89C52的時鐘可以由內部方式產(chǎn)生,也可以由外部方式產(chǎn)生。其內部方式的時鐘電路如圖3.2(a)所示,在TXD和RXD引腳上接定時元件,其內部振蕩器就會產(chǎn)生自激振蕩。定時元器件一般采用石英晶體和電容組成并聯(lián)諧振回路。晶體振蕩頻率選擇范圍為:1.2~12MHz,電容值范圍為:5~30pF,電容頻率起到微調的作用。XTAL1XTAL2外部振蕩器時鐘采用外部方式連接的電路如圖3.2(b)所示,TXD接外部振蕩器,RXD接地。對外部振蕩信號沒有特殊要求,只需要保證脈沖的寬度,所以一般采用頻率低于12MHz的方波信號。片內時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供XTAL1XTAL2外部振蕩器XTAL1XTAL1XTAL2(a)內部方式時鐘電路(b)外部方式時鐘電路圖3.2時鐘電路3.2晶振電路單片機的時鐘信號用來提供單片機內各種位操作的時間基準,時鐘信號通常有兩種電路形式得到:內部振蕩方式和外部振蕩方式。時鐘電路如圖3.3所示。圖3.3時鐘電路在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構成了內部震蕩方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6MHz、12MHz或者24MHz。本設計中采用的是12MHz。電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般5~30pF。內部振蕩方式所得的時鐘信號比較穩(wěn)定,電路中使用較多。3.3復位電路系統(tǒng)復位電路如圖3.4。圖3.4復位電路復位操作完成單片機內電路的初始化,是單片機從一種確定的狀態(tài)開始運行。當單片機的復位引腳RET出現(xiàn)5ms以上的高電平時,單片機就完成了復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài),而無法執(zhí)行程序。因此要求單片機復位后能脫離復位狀態(tài)。根據(jù)應用要求,復位操作通常有2種基本形式:上電復位、開關復位。上電復位要求接通電源后,自動實現(xiàn)復位操作。開關復位要求在電源接通的條件下,在單片機運行期間,如果發(fā)生死機,用按鈕開關操作使單片機復位。上電后,由于電容要充電,是RST持續(xù)一段時間高電平時間。當單片機已經(jīng)在運行之中時,按下復位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關復位的操作。通常選擇C=10~30uF,R=10~1k?3.4音頻處理模塊3.4.1LM386簡介LM386是美國國家半導體公司生產(chǎn)的音頻功率放大器,主要應用于低電壓消費類產(chǎn)品。LM386特性:靜態(tài)功耗低,約為4mA,可用于電池供電;工作電壓范圍寬,4V-12V或5V-18V;外圍元件少;電壓增益可調,20-200;低失真度。LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應用于錄音機和收音機之中。LM386應用電路原理圖如圖3.5所示。圖3.5LM386應用電路圖LM386的封裝形式有塑封8引線雙列直插式和貼片式。圖3.6LM386的封裝形式電壓增益內部設置固定為20倍。如果在①腳與⑧腳外接電容器,可增加到200倍,外圍元件少效率高。在音響要求不高的設備中得到廣泛運用

1、R3和R18是用來分壓的。因為單片機輸出電平是TTL電平,電壓太高,所以通過兩個電阻分壓。

2、從VOUT到LS1接電容C17是輸出電容,用來隔直流。如果不加,很易燒壞喇叭

3、R19不是單獨用的,它與C18組成高頻濾波,濾除高頻信號。

5、VS是電源,兩個并聯(lián)電容是濾波用的。

3.5鍵盤控制電路3.5.1矩陣鍵盤的概述本系統(tǒng)采用的是非編碼鍵盤中的矩陣鍵盤。矩陣鍵盤也稱為行列式鍵盤,一般用于按鍵數(shù)目較多的場合。它是由行和列組合而成,一組是行線,另一組是列線,按鍵就位于行和列的交叉點。如圖8所示,一個4*4的矩陣鍵盤,有16個按鍵,我們分別用著16個鍵來模擬電子琴的按鍵:低音3、4、5、6、7;中音1、2、3、4、5、6、7;高音1、2、3、4??梢院苊黠@地看出,較獨立鍵盤而言,矩陣式鍵盤節(jié)省了I/O口線。圖3.54*4矩陣式鍵盤接口3.5.2矩陣式鍵盤按鍵識別原理及方法若矩陣鍵盤中沒有按鍵按下,那么鍵盤的行線就會處于高電平;若有鍵按下時,行線電平的狀態(tài)由和它相連的列線的電平?jīng)Q定。假設列線電平為低電平那么行線電平則為低電平;反之,同理。這一點就是識別矩陣式鍵盤哪個按鍵按下的關鍵所在。由于矩陣式鍵盤的行線和列線被多鍵共用,所以各按鍵會相互影響,因此必須將行線和列線的信號配合,才能確定閉合鍵的位置所在。矩陣式鍵盤一般有兩種識別方法,它們分別是掃描法和線反轉法。首先,我們來介紹一下掃描法。它識別按鍵可以分為兩步:第一步,識別有沒有按鍵按下;第二步,若有鍵按下,確定按下鍵的具體位置。舉個簡單的例子來說明這個過程。第一步,識別有沒有按鍵按下。先將所有的列線都置為0電平,接著檢查各行線是不是都是高電平,若不全是高電平,說明有按鍵按下,否則就沒有。例如,當按鍵2被按下,第一行的行線為低電平,但是我們不能確定是哪個鍵被按下了,若是同一行的1、3、4鍵被按下,第一行也會呈現(xiàn)低電平,因此我們只能得出第一行有鍵被按下。第二步,確定哪個鍵被按下。采用掃描法,在某個時刻只讓一條列線處于低電平,其他所有列線都處于高電平。當?shù)?列為低電平的時候,其他各列均處于高電平時,因為是2鍵被按下,所以第1行仍高電平。而當?shù)诙袨榈碗娖降臅r候,其他各列均為高電平,第1行的行處于低電平,故可以判斷第1行第二列的交叉處有鍵被按下,即2號鍵被按下。綜上所述,掃描法的思想就是,先把某一列置為低電平,其他的各列均為高電平,然后檢查各行線的變化,若某行線為低電平,則可以確定被按下的鍵處于此行此列的交叉點上。本系統(tǒng)采用的就是掃描法。其次,我們再簡單的介紹一下線反轉法。掃描法要一列一列的去掃描查詢,若被按下的鍵處于最后一列時,需要經(jīng)過多次才能獲得正確的行列值。而線反轉法則很簡練,不論是哪個鍵被按下,均只需要兩步就可以知道是哪個鍵被按下了。具體操作步驟如下:第一步,讓行線編程為輸入線,列線均為輸出線,并使輸出線全部為低電平,那么行線中電平由高變?yōu)榈偷男?,就是按鍵所在的行。第二部,把行線全部變成為輸出線,列線編程為輸入線,并使輸出線全部為低電平,則列線中由高電平變?yōu)榈碗娖降牧?,就是按鍵所在的列。綜上所述,可以確定按鍵所在的行和列,從而得出按鍵所在位置。因此,線反轉法非常的簡單適用,但是在實際的編程中不要忘記還要進行按鍵去抖動處理。3.6音頻放大電路系統(tǒng)音頻放大電路如圖3.7所示。圖3.7音頻放大電路通過LM386音頻放大器來對聲音音頻進行放大,得到系統(tǒng)所需要的,然后由軟件編程的程序發(fā)出相應的音符,通過揚聲器把聲音傳遞出來。第四章軟件部分4.1音樂產(chǎn)生原理一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,只需將一首歌的音階和頻率相對應即可。4.2音階產(chǎn)生方法本系統(tǒng)主要是要實現(xiàn)由單片機控制的簡單的音樂發(fā)生器,矩陣鍵盤代表16個不同的音階,用戶可以根據(jù)樂譜在鍵盤上彈奏出音樂,通過喇叭將音樂播放出來。4.3利用單片機實現(xiàn)音樂節(jié)拍物體規(guī)則震動發(fā)出的聲音稱為樂音,音樂聽起來有高、有低,這就是音高,發(fā)聲物體的振動頻率決定著音高。頻率低聲音就會低,頻率高聲音就會高。不同的音高的樂音分別用1、2、3、4、5、6、7來表示,這七個樂音名分別念成:DO、RE、ME、FA、SO、LA、SI,這就是唱曲時樂音的發(fā)音,我們把它稱作唱名。音持續(xù)的時間長短,通常用節(jié)拍來表示。一首歌通常有不同的音符表示,不同的音符對應著不同的頻率,不同頻率的組合加上節(jié)拍就構成了音樂。節(jié)拍實際上就是音持續(xù)時間的長短,在單片機中我們可以利用延時來實現(xiàn)。如果是四分之一節(jié)拍就延時0.4s,那么一拍就延時1.6s。只需要知道四分之一節(jié)拍需要延時多久,其他的節(jié)拍就是它延時的倍數(shù)了。如果要單片機自己放音樂就要在程序中設置節(jié)拍的延時時間,但是此系統(tǒng)是簡易的電子琴,只需要用戶自己彈奏時把握節(jié)拍就可以了,不需要程序設置。對于不同的曲調我們可以由單片機的定時器/計數(shù)器來實現(xiàn)音樂,一個節(jié)拍為單位(C調),如表3-3所示:表3-3音樂節(jié)拍表曲調值DELAY曲調值DELAY調4/4125ms調4/462ms調3/4187ms調3/494ms調2/4250ms調2/4125ms4.4用單片機產(chǎn)生音頻脈沖4.4.1音符和頻率的關系用單片機播放音樂亦或是彈奏電子琴,實際上就是按照一定的頻率,輸出一連串的方波。為了輸出適合的方波,首先我們應該知道音符與頻率之間的關系。注意觀察一下幾個6(LA)的頻率,它們都是整數(shù),很容易看出成2倍的關系。其它的音符也是一樣的。如220、440等這些頻率,它們在琴鍵上的位置是統(tǒng)一的,不論是電子琴、鋼琴還是手風琴,都是一樣的。包含黑鍵和白鍵在內的所有音符的頻率數(shù)值都是成“等比數(shù)列”的關系,因此它們之間有一個公比q,可以按照“2倍”的規(guī)律推算出來。例如:已知最低音的6(LA)的頻率是220Hz,我們設它的公比為q,則可以推出7(SI)的頻率為220*q*q。因為6(LA)、7(SI)之間隔了一個黑鍵,所以要乘以兩個q。以此類推,兩個6之間,一共有12個琴鍵,可以得出:220*q*q*q*q*q*q*q*q*q*q*q*q=440。馬上就可以得出,12個q相乘,等于:440÷220=2??梢郧蟪鰍=2,q的12次方根為:1.059463094。

用這個公比q,和已知的220進行計算,我們就可以得出全部琴鍵所對應的頻率,如表4-4所示表4-4音符和頻率的關系音符頻率(HZ)簡譜碼(T值)音符頻率(HZ)簡譜碼(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400

#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI1967652834.4.2定義初值用單片機來模擬產(chǎn)生音符,只需要計算出音頻的周期T=1/f,利用音頻的變化來產(chǎn)生不同的電平,從而驅動喇叭發(fā)聲。利用STC89C52的內部定時器使它工作在計數(shù)器的模式下,工作方式設為“1”,改變TH0和TH1來產(chǎn)生不同的頻率,從而產(chǎn)生不同的音階。比如:頻率為中音DO(532Hz),它的周期為:T=1/532=1912us,所以計數(shù)器只需要計數(shù):956us/1us=956次,每一次計數(shù)956次時將I/O口反向,我們就可以得到我們所需要的音階中音(DO)了。計數(shù)脈沖和頻率的關系式:N=fi÷2÷fr上式中的N為計數(shù)值,fi為機器頻率,fr為想要產(chǎn)生的頻率。計數(shù)的初值T求法如下:T=65536-N=65536-fi÷2÷fr例如:K=65536,fi=1MHz,求低音DO(261Hz),中音DO(523Hz),高音DO(1046Hz)的計數(shù)值。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-50000/fr低音DO(261Hz)的T=65536-50000/261=63627中音DO(523Hz)的T=65536-50000/523=64580高音DO(1046Hz)的T=65536-50000/1046=65059采用12MHz的晶振,音符與計數(shù)值T0的關系如表6所示。本系統(tǒng)主要用到的音符為低音:3、4、5、6、7,中音:1、2、3、4、5、6、7,高音1、2、3、4;用到頻率分別為:64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178。4.5音樂發(fā)聲程序流程圖主程序流程圖如圖所示識別按鍵功能按鍵是識別按鍵功能按鍵是否按下?開始去抖動掃描按鍵位置N做一次按鍵處理,播放相應的音符或音樂按鍵按下?Y 圖4.1主程序流程圖圖4.1主程序流程圖第五章調試5.1Proteus簡介Proteus(海神)的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。

該軟件的特點:①全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。

②具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。

③目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。

④支持大量的存儲器和外圍芯片。總之該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大,可仿真51、AVR、PIC。5.2keil簡介單片機開發(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)境、強大的軟件仿真調試工具也會令你事半功倍。5.3利用keil與Proteus進行的調試打開keil,建立工程,輸入程序編譯和生成hex文件,如圖5.1所示圖5.1利用keil進行編譯打開Proteus,設計硬件仿真電路圖,見圖5.2圖5.2仿真電路圖4.導入hex文件,見圖5.3圖5.3導入hex文件將鼠標置于電路圖中STC89C52器件上,右擊后再左擊,彈出圖5-3中的對話框,在紅線框中導入dzq.hex文件。5.點擊面板左下角的,開始調試如圖5.4。圖5.4仿真過程圖將程序導入芯片以后,點擊面板左下角的開始按鍵,程序就可以開始仿真了。系統(tǒng)的功能有兩個,一個是把開關SW1扳到上面的位置時,可以自由的彈奏琴鍵,鍵盤會發(fā)出相應的音符,可以自己彈奏喜歡的音樂。二是把開關扳到下面的位置時,可以播放里面設定好的音樂。結論將程序導入STC89C52芯片,調試成功后,可任意彈奏自己想要的旋律。這次設計通過制作電子琴,將幾個模塊很好的融合起來,對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣就可以利用不同的頻率的組合,即構成了所想要的音樂,也可以把一首歌曲的音階對應頻率關系弄正確,然后利用功放電路來將音樂聲音放大確知自己所彈的音符。通過這次課程設計,我感覺收獲了很多:首先,通過實踐,加深對單片機系列知識及其系統(tǒng)的認識。這個設計題目并不是新的,但從中能體現(xiàn)到一個系統(tǒng)開發(fā)設計的過程,足于讓我們受益。第二,通過設計學習到了很多軟件的使用。本次設計,軟件部分用到了protues進行硬件設計,用keil進行程系編譯,用protel進行制板。第三,提高了自己的動手能力。動手在一定程度上反映了一個人的能力,作為當代大學生,社會要求的我們不是只能說而不能做的人才;這次設計更讓我清醒地認識到,實際動手能力無比重要。從這次實物制作中,我的動手能力提高了。感謝學院給了我這次實踐動手的機會,更感謝我的老師段老師教了我們單片機相關知識。本系統(tǒng)設計還可以擴展其他功能,比如可以利用顯示模塊來顯示所彈奏的音符,在比如記憶功能,即可以存儲彈奏者所彈奏的音樂且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂一點,增加一些彩燈使彩燈隨著音調變化而產(chǎn)生不同的樣式。致謝

這次畢業(yè)論文能夠得以順利完成,是曾經(jīng)指導過我的老師,幫助過我的同學,一直支持著我的家人對我的教誨、幫助和鼓勵的結果。我要在這里對他們表示深深的謝意!

首先,要特別感謝我的指導老師——段德功老師。段老師在我畢業(yè)論文的撰寫過程中,給我提供了極大的幫助和指導。從開始選題到中期修正,再到最終定稿,段老師給我提供了許多寶貴建議。老師淵博的專業(yè)知識,嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風,誨人不倦的高尚師德,樸實無華、平易近人的人格魅力對我影響深遠。不僅使我樹立了遠大的學術目標、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。

其次,要感謝所有曾經(jīng)教我們電子信息的任課老師,老師們教會我的不僅僅是專業(yè)知識,更多的是對待學習、對待生活的態(tài)度。

第三,感謝我的父母親,你們是我力量的源泉,只要有你們,不管面對什么樣的困難,我都不會害怕,謝謝你們對我的支持與鼓勵!

再次,感謝我的室友及其他好友,因為有你們的幫助,我的論文得以順利完成。感謝你們,大學四年給我了那么多的幫助與鼓勵,在我不開心的時候,總能讓我開心起來。不會忘記,大學四年里我們一起度過的歡樂時光,那些開心的日子,總是那么令人難以忘懷。

最后對老師、同學和家人再次致以我最衷心的感謝!教導過我的老師,你們的人格魅力永記我心間。身邊的同學和朋友,有你們,我的大學才算完整。寢室的好友,你們的天賦猶如上天恩賜,有了你們我的生活更加精彩。參考文獻[1]李廣弟,朱月秀,冷祖祁.單片機基礎.北京航空航天大學出版社[2]馬忠梅,籍順心,張凱等.單片機的C語言應用程序設計(第四版).北京航空航天大學出版社[3]周航慈.單片機應用程序設計技術(第三版).北京航空航天大學出版社,2011[4]高玉芹.單片機原理與應用及C51編程技術.機械工業(yè)出版社,2011年[5]徐煜明.C51單片機及應用系統(tǒng)設技.電子工業(yè)出版社,2009年[6]常喜茂,孔英會.C51基礎與應用實例,電子工業(yè)出版社2009年[7]王景景.單片機原理及應用.機械工業(yè)出版社,2010年[8]李建忠.單片機原理及應用.西安電子科技大學,2002年[9]賀敬凱,劉德新.單片機系統(tǒng)設計、仿真與應用-基于keil和proteus仿真平臺.西安電子科技大學,2011年[10]熊建平.基于proteus電路及單片機仿真教程.西安電子科技大學,2013年[11]周潤景.Proteus在MCS-51&ARM7系統(tǒng)中的應用.電子工業(yè)出版社,2006年[12]王守中.51單片機開發(fā)入門與典型實例.人民郵電出版社,2007年[13]陳權昌.單片機原理及應用.華南理工出版社,2007年[14]胡宴如.模擬電子技術.高等教育出版社,2006年[15]陳權昌.單片機原理及應用.華南理工大學,2007年附錄附錄一:電子琴電路原理圖圖簡易電子琴電路原理圖附錄二:PCB電路圖圖電子琴PCB電路附錄三:電子琴實物圖附錄四:程序清單#include<reg51.h> #defineucharunsignedchar #defineuintunsignedint uintkey,i,j,time,m,k; uchartemp; ucharSTH0,STL0,STH1,STL1; sbitsw=P2^7; sbitspeaker=P2^4; sbitP37=P3^7; sbitP36=P3^6; sbitP35=P3^5; sbitP34=P3^4; //櫻花數(shù)據(jù)表 codeunsignedcharsszymmh[]={6,2,2,6,2,2,7,2,4,6,2,2,6,2,2,7,2,4,6,2,2,7,2,2,1,3,2,7,2,2,6,2,2,7,2,1,6,2,1,4,2,4,3,2,2,1,2,2,3,2,2,4,2,2,3,2,2,3,2,1,1,2,1,7,1,4,0,0,0 }; //音階頻率表高八位 codeunsignedcharFREQH[]={ 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, }; //音階頻率表低八位 codeunsignedcharFREQL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,8,i 0xEE,0x44,0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, }; unsignedintcodetab[]={64021,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178,65217}; voidkey_music() { P3=0xff; P34=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case0x0e: key=0; break; case0x0d: key=1; break; case0x0b: key=2; break; case0x07: key=3; break; } speaker=~speaker; STH1=tab[key]/256; STL1=tab[key]%256; TR0=1; temp=P3; temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } TR0=0; } } P3=0xff; P35=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case0x0e: key=4; break; case0x0d: key=5; break; case0x0b: key=6; break; case0x07: key=7; break; } speaker=~speaker; STH1=tab[key]/256; STL1=tab[key]%256; TR0=1; temp=P3; temp=temp&0x0f; while(temp!=0x0f) {

溫馨提示

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

評論

0/150

提交評論