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

下載本文檔

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

文檔簡介

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

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

1、R3和R18是用來分壓的。因?yàn)閱纹瑱C(jī)輸出電平是TTL電平,電壓太高,所以通過兩個(gè)電阻分壓。

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

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

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

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

用這個(gè)公比q,和已知的220進(jìn)行計(jì)算,我們就可以得出全部琴鍵所對應(yīng)的頻率,如表4-4所示表4-4音符和頻率的關(guān)系音符頻率(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定義初值用單片機(jī)來模擬產(chǎn)生音符,只需要計(jì)算出音頻的周期T=1/f,利用音頻的變化來產(chǎn)生不同的電平,從而驅(qū)動(dòng)喇叭發(fā)聲。利用STC89C52的內(nèi)部定時(shí)器使它工作在計(jì)數(shù)器的模式下,工作方式設(shè)為“1”,改變TH0和TH1來產(chǎn)生不同的頻率,從而產(chǎn)生不同的音階。比如:頻率為中音DO(532Hz),它的周期為:T=1/532=1912us,所以計(jì)數(shù)器只需要計(jì)數(shù):956us/1us=956次,每一次計(jì)數(shù)956次時(shí)將I/O口反向,我們就可以得到我們所需要的音階中音(DO)了。計(jì)數(shù)脈沖和頻率的關(guān)系式:N=fi÷2÷fr上式中的N為計(jì)數(shù)值,fi為機(jī)器頻率,fr為想要產(chǎn)生的頻率。計(jì)數(shù)的初值T求法如下:T=65536-N=65536-fi÷2÷fr例如:K=65536,fi=1MHz,求低音DO(261Hz),中音DO(523Hz),高音DO(1046Hz)的計(jì)數(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的晶振,音符與計(jì)數(shù)值T0的關(guān)系如表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ā)聲程序流程圖主程序流程圖如圖所示識別按鍵功能按鍵是識別按鍵功能按鍵是否按下?開始去抖動(dòng)掃描按鍵位置N做一次按鍵處理,播放相應(yīng)的音符或音樂按鍵按下?Y 圖4.1主程序流程圖圖4.1主程序流程圖第五章調(diào)試5.1Proteus簡介Proteus(海神)的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。

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

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

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

④支持大量的存儲(chǔ)器和外圍芯片。總之該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大,可仿真51、AVR、PIC。5.2keil簡介單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。5.3利用keil與Proteus進(jìn)行的調(diào)試打開keil,建立工程,輸入程序編譯和生成hex文件,如圖5.1所示圖5.1利用keil進(jìn)行編譯打開Proteus,設(shè)計(jì)硬件仿真電路圖,見圖5.2圖5.2仿真電路圖4.導(dǎo)入hex文件,見圖5.3圖5.3導(dǎo)入hex文件將鼠標(biāo)置于電路圖中STC89C52器件上,右擊后再左擊,彈出圖5-3中的對話框,在紅線框中導(dǎo)入dzq.hex文件。5.點(diǎn)擊面板左下角的,開始調(diào)試如圖5.4。圖5.4仿真過程圖將程序?qū)胄酒院?,點(diǎn)擊面板左下角的開始按鍵,程序就可以開始仿真了。系統(tǒng)的功能有兩個(gè),一個(gè)是把開關(guān)SW1扳到上面的位置時(shí),可以自由的彈奏琴鍵,鍵盤會(huì)發(fā)出相應(yīng)的音符,可以自己彈奏喜歡的音樂。二是把開關(guān)扳到下面的位置時(shí),可以播放里面設(shè)定好的音樂。結(jié)論將程序?qū)隨TC89C52芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。這次設(shè)計(jì)通過制作電子琴,將幾個(gè)模塊很好的融合起來,對使用單片機(jī)設(shè)計(jì)簡易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得要求的音階,最終可隨意彈奏想要表達(dá)的音樂。說明一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣就可以利用不同的頻率的組合,即構(gòu)成了所想要的音樂,也可以把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確,然后利用功放電路來將音樂聲音放大確知自己所彈的音符。通過這次課程設(shè)計(jì),我感覺收獲了很多:首先,通過實(shí)踐,加深對單片機(jī)系列知識及其系統(tǒng)的認(rèn)識。這個(gè)設(shè)計(jì)題目并不是新的,但從中能體現(xiàn)到一個(gè)系統(tǒng)開發(fā)設(shè)計(jì)的過程,足于讓我們受益。第二,通過設(shè)計(jì)學(xué)習(xí)到了很多軟件的使用。本次設(shè)計(jì),軟件部分用到了protues進(jìn)行硬件設(shè)計(jì),用keil進(jìn)行程系編譯,用protel進(jìn)行制板。第三,提高了自己的動(dòng)手能力。動(dòng)手在一定程度上反映了一個(gè)人的能力,作為當(dāng)代大學(xué)生,社會(huì)要求的我們不是只能說而不能做的人才;這次設(shè)計(jì)更讓我清醒地認(rèn)識到,實(shí)際動(dòng)手能力無比重要。從這次實(shí)物制作中,我的動(dòng)手能力提高了。感謝學(xué)院給了我這次實(shí)踐動(dòng)手的機(jī)會(huì),更感謝我的老師段老師教了我們單片機(jī)相關(guān)知識。本系統(tǒng)設(shè)計(jì)還可以擴(kuò)展其他功能,比如可以利用顯示模塊來顯示所彈奏的音符,在比如記憶功能,即可以存儲(chǔ)彈奏者所彈奏的音樂且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂一點(diǎn),增加一些彩燈使彩燈隨著音調(diào)變化而產(chǎn)生不同的樣式。致謝

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

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

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

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

再次,感謝我的室友及其他好友,因?yàn)橛心銈兊膸椭?,我的論文得以順利完成。感謝你們,大學(xué)四年給我了那么多的幫助與鼓勵(lì),在我不開心的時(shí)候,總能讓我開心起來。不會(huì)忘記,大學(xué)四年里我們一起度過的歡樂時(shí)光,那些開心的日子,總是那么令人難以忘懷。

最后對老師、同學(xué)和家人再次致以我最衷心的感謝!教導(dǎo)過我的老師,你們的人格魅力永記我心間。身邊的同學(xué)和朋友,有你們,我的大學(xué)才算完整。寢室的好友,你們的天賦猶如上天恩賜,有了你們我的生活更加精彩。參考文獻(xiàn)[1]李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ).北京航空航天大學(xué)出版社[2]馬忠梅,籍順心,張凱等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第四版).北京航空航天大學(xué)出版社[3]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)(第三版).北京航空航天大學(xué)出版社,2011[4]高玉芹.單片機(jī)原理與應(yīng)用及C51編程技術(shù).機(jī)械工業(yè)出版社,2011年[5]徐煜明.C51單片機(jī)及應(yīng)用系統(tǒng)設(shè)技.電子工業(yè)出版社,2009年[6]常喜茂,孔英會(huì).C51基礎(chǔ)與應(yīng)用實(shí)例,電子工業(yè)出版社2009年[7]王景景.單片機(jī)原理及應(yīng)用.機(jī)械工業(yè)出版社,2010年[8]李建忠.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué),2002年[9]賀敬凱,劉德新.單片機(jī)系統(tǒng)設(shè)計(jì)、仿真與應(yīng)用-基于keil和proteus仿真平臺.西安電子科技大學(xué),2011年[10]熊建平.基于proteus電路及單片機(jī)仿真教程.西安電子科技大學(xué),2013年[11]周潤景.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用.電子工業(yè)出版社,2006年[12]王守中.51單片機(jī)開發(fā)入門與典型實(shí)例.人民郵電出版社,2007年[13]陳權(quán)昌.單片機(jī)原理及應(yīng)用.華南理工出版社,2007年[14]胡宴如.模擬電子技術(shù).高等教育出版社,2006年[15]陳權(quán)昌.單片機(jī)原理及應(yīng)用.華南理工大學(xué),2007年附錄附錄一:電子琴電路原理圖圖簡易電子琴電路原理圖附錄二:PCB電路圖圖電子琴PCB電路附錄三:電子琴實(shí)物圖附錄四:程序清單#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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論