版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Liaoning開放實(shí)驗(yàn)室項(xiàng)目研究論文題目:基于單片機(jī)的電子琴電路設(shè)計(jì)學(xué)院:物理與電子技術(shù)學(xué)院專業(yè):電子信息工程班級序號:學(xué)號:學(xué)生姓名:指導(dǎo)教師:2011年12月PAGE16基于單片機(jī)的電子琴電路設(shè)計(jì)學(xué)生:指導(dǎo)教師:物理與電子技術(shù)學(xué)院電子信息工程專業(yè)2009級摘要:電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89c51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價(jià)比較高等,具有一定的實(shí)用和參考價(jià)值。關(guān)鍵詞:電子琴;AT89C51;編程;可控前言隨著大規(guī)模集成電路的出現(xiàn)和發(fā)展,芯片生產(chǎn)廠家把中央處理器CPU,隨機(jī)存取內(nèi)存RAM,只讀存儲器ROM,定時(shí)器/計(jì)數(shù)器以及I/O接口電路等主要計(jì)算機(jī)部件,集成在一塊集成電路芯片(硅片)上,形成芯片級計(jì)算機(jī),稱為單片微型計(jì)算機(jī),直譯為單片機(jī)。單片機(jī)雖只是一個(gè)芯片,但從組成和功能上看,它已具有了微機(jī)系統(tǒng)的含義,又稱微型處理部件MCU(MicroControllerUnit),單片機(jī)商品名稱為微控制器單元。雖然單片機(jī)出現(xiàn)的歷史并不長,但發(fā)展十分迅猛,在集成度、功能、速度、可靠性、應(yīng)用領(lǐng)域等全方位向更高水平發(fā)展。目前單片機(jī)已用于工業(yè)控制、機(jī)電一體化設(shè)備、儀器儀表、信號處理、現(xiàn)代兵器、交通能源、商用設(shè)備、醫(yī)療設(shè)備及家用電器等各個(gè)領(lǐng)域,隨著單片機(jī)性能的不斷提高,它的應(yīng)用將會更加廣泛。單片機(jī)技術(shù)發(fā)展非???,所以目前的產(chǎn)品都致力于在功能全面、技術(shù)先進(jìn)、操作簡便、安全可靠、價(jià)格合理等方面進(jìn)行仔細(xì)研究,精心設(shè)計(jì);及時(shí)掌握最新的單片機(jī)技術(shù),在條件允許的情況下,盡可能地利用最新的單片機(jī)技術(shù)來研制其應(yīng)用系統(tǒng),再利用單片機(jī)體積小、價(jià)格低、功能強(qiáng)等特點(diǎn),以保證所設(shè)計(jì)的產(chǎn)品在未來的一段時(shí)間內(nèi)仍具生命力。在生活和生產(chǎn)的各個(gè)領(lǐng)域中,凡是有自動控制要求的地方都會有單片機(jī)的身影出現(xiàn);從簡單到復(fù)雜,從空中、地面到地下,凡是能想象到的地方幾乎都有使用單片機(jī)的需求?,F(xiàn)在,盡管單片機(jī)的應(yīng)用已經(jīng)很普遍了,但仍有許多可以用單片機(jī)控制而尚未實(shí)現(xiàn)的項(xiàng)目,因此,單片機(jī)的應(yīng)用大有可以想象和拓展的空間。單片機(jī)的應(yīng)用有利于產(chǎn)品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。但是,單片機(jī)應(yīng)用的意義絕不僅限于它的廣闊范圍以及所帶來的經(jīng)濟(jì)效益上,更重要的意義還在于:單片機(jī)的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分控制功能,現(xiàn)在已能使用單片機(jī)通過軟件(編程序)方法實(shí)現(xiàn)了。這種以軟件取代硬件并能提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱之為微控制技術(shù)。微控制技術(shù)是一種全新的概念,是對傳統(tǒng)控制技術(shù)的一次革命。隨單片機(jī)應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實(shí)。簡易電子琴系統(tǒng)就是以單片機(jī)為主要元器件設(shè)計(jì)的一個(gè)簡易電子琴,這只是單片機(jī)應(yīng)用的一個(gè)點(diǎn),由點(diǎn)及面,希望可以更好的了解和應(yīng)用單片機(jī)技術(shù)。之所以以單片機(jī)電子琴為選題,目的在于從日常生活能接觸到的細(xì)微處著手,通過理論與實(shí)踐的結(jié)合,更明確自己的所學(xué)所用,也在實(shí)踐中發(fā)現(xiàn)理論的不足,對目前日益廣泛應(yīng)用的單片機(jī)有了更加理性化和感性化的認(rèn)識,使理論和實(shí)踐相得益彰。通過單片機(jī)電子琴這個(gè)選題,更深層次的了解了單片機(jī)技術(shù),以前只是有理論,實(shí)踐的機(jī)會不是很多,在作單片機(jī)電子琴這個(gè)選題的過程中,更加熟練的掌握了一些單片機(jī)芯片的應(yīng)用,也解決了很多以前理論和實(shí)踐脫節(jié)的問題,可謂對單片機(jī)的認(rèn)識有了一個(gè)小的飛躍。1.總體方案1.1系統(tǒng)設(shè)計(jì)要求本系統(tǒng)分為兩個(gè)部分,一個(gè)是音樂播放,另一個(gè)就是電子琴彈奏。關(guān)于聲音的處理,使用單片機(jī)C語言,利用定時(shí)器來控制頻率,而每個(gè)音符的符號只是存在我自己定義的表中。具體要求如下:1.要求達(dá)到電子琴的基本功能,可以用彈奏出簡單的樂曲。2.用鍵盤作出電子琴的按鍵,每鍵代表一個(gè)音符。3.各音符按一定的順序排列,必須符合電子琴的按鍵排列順序。4.固定音樂播放有按鍵控制:“播放”、“彈奏/停止”。5.彈奏電子琴時(shí)能播放出準(zhǔn)確的聲音,不彈奏時(shí)可以播放內(nèi)置音樂。1.2電子琴系統(tǒng)的組成單片機(jī)因體積小、功能強(qiáng)、價(jià)格低廉而得到廣泛應(yīng)用。AT89C51單片機(jī)設(shè)計(jì)微型電子琴的方法,僅需AT89C51最小系統(tǒng),擴(kuò)展一組矩陣鍵盤,再接一組發(fā)光二極管用來指示電子琴的工作狀態(tài)。本系統(tǒng)分為兩個(gè)部分,一個(gè)是音樂另一個(gè)就是電子琴。音樂播放部分:樂音實(shí)際上是有固定周期的信號。本文介紹用AT89C51的兩個(gè)定時(shí)器(如T0,T1)控制,在P3.7腳上輸出方波周期信號,產(chǎn)生樂音,通過矩陣鍵盤按鍵產(chǎn)生不同的音符,由此操作人員可以隨心所欲的彈奏自己所喜愛的樂曲,當(dāng)不想彈奏時(shí)通過按放歌鍵可以演奏事先存放在單片機(jī)中的幾首動聽的曲子供消遣。當(dāng)歌曲演奏完時(shí),通過按復(fù)位鍵便可回到初始狀態(tài),這樣就做出了一臺微型電子琴。由于一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。樂曲中,每一音符對應(yīng)著確定的頻率,我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。電子琴彈奏部分:實(shí)際上就是把每個(gè)按鍵所對應(yīng)的值經(jīng)過處理后發(fā)給單片機(jī),再在單片機(jī)內(nèi)把數(shù)字當(dāng)作指針指向所對應(yīng)的音符。1.3系統(tǒng)框圖該系統(tǒng)通過電子琴按鍵隨意鍵入所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過識別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過這樣可以不斷的彈奏音樂。嵌入式電路,按鍵電路,LED顯示電路和兩個(gè)功能鍵組成,通過功能鍵可以選擇播放音樂。其主要模塊由五個(gè)部分組成,具體關(guān)系如圖3-1所示:圖3-1帶存儲的電子琴框圖用P0口的高四位和P0口的低四位作4X4矩陣式按鍵的接口,用P2口作數(shù)碼管的接口,用P3.7作信號輸出口。2.硬件簡介2.1AT89C512.1.1AT89C51簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖3-2所示。2.1.2主要的功能特性_與MCS-51兼容_4K字節(jié)可編程閃爍存儲器_壽命:1000寫/擦循環(huán)_數(shù)據(jù)保留時(shí)間:10年_全靜態(tài)工作:0Hz-24MHz_三級程序存儲器鎖定_128_8位內(nèi)部RAM_32可編程I/O線_兩個(gè)16位定時(shí)器/計(jì)數(shù)器_5個(gè)中斷源_可編程串行通道_低功耗的閑置和掉電模式_片內(nèi)振蕩器和時(shí)鐘電路2.1.3管腳功能VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.1.4芯片擦除整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。2.2矩陣式鍵盤的識別和顯示2.2.1.在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及編程方法如下所述。2.2.2.矩陣式鍵盤的按鍵識別方法確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。1、判斷鍵盤中有無鍵按下將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。2.2.3(1)去抖動:每個(gè)按鍵在按下或松開時(shí),都會產(chǎn)生短時(shí)間的抖動。抖動的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為5—20mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識別正確無誤。去抖問題可通過軟件延時(shí)或硬件電路解決。(2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒有釋放又有新的按鍵按下時(shí)產(chǎn)生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。N鍵輪回,是當(dāng)檢測到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。(3)被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。(4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用AT89C51的并行口P0接4_4矩陣鍵盤,以P0.0-P0.3作輸入線,以P0.4-P0.7作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“0-F”序號。2.3LED數(shù)碼管【數(shù)碼管的分類】數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。圖3-3為2位數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮?!緮?shù)碼管的驅(qū)動方式】 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。①靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動5個(gè)數(shù)碼管靜態(tài)顯示則需要5*8=40根I/O端口來驅(qū)動,要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。②動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。2.4硬件設(shè)計(jì)圖圖中的矩陣鍵盤,從上到下,從左到右,依次為鍵盤的0-15,在數(shù)碼管上顯示時(shí)順序?yàn)?-9和A-F,在按功能鍵時(shí),圖上的兩個(gè)指示燈會根據(jù)功能的不同實(shí)現(xiàn)亮/滅狀態(tài)的切換。在播放內(nèi)置音樂時(shí),指示燈在一定程度上能指示出曲目的音符。第四章軟件設(shè)計(jì)3.1整體程序處理流程圖圖4-1整體程序處理流程圖在電子琴開始工作時(shí),系統(tǒng)默認(rèn)電子琴處于彈奏狀態(tài),歌曲選擇功能鍵的目的是賦予矩陣鍵盤第二功能,即對系統(tǒng)內(nèi)置的歌曲進(jìn)行選擇,在放歌時(shí)能且只能通過彈奏/停止鍵來結(jié)束放歌,選歌時(shí)必須先按下歌曲選擇功能鍵,在通過矩陣鍵盤來選擇和切換曲目。3.2I/O并行口直接驅(qū)動LED顯示把“AT89C51”區(qū)域中的P2.0/A8-P2.7/A15端口用8芯排線連接到一位數(shù)碼管的a-h(huán)端口上;要求:P2.0/A8與a相連,P2.1/A9與b相連,P2.2/A10與c相連,表1字形碼表及對應(yīng)的音符10x3f低5SO90x7f中6LA20x06低6LAA0x6f中7SI30x5b低7SIb0x77高1DO40x4f中1DOC0x7c高2RE50x66中2RED0x39高3M60x6d中3ME0x5e高4FA70x7d中4FAF0x79高5SO80x07中5SO00x71高6LA在本設(shè)計(jì)中,數(shù)碼管的顯示通過P2=DSY_CODE[k]這句語言來查表并輸出,實(shí)現(xiàn)音符的顯示。3.3音樂播放設(shè)計(jì)一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P3.7反相,然后重復(fù)計(jì)時(shí)再反相。就可在P3.7引腳上得到此頻率的脈沖。利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fi/2/fr式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:T=65536-N=65536-fi/2/fr例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。T=65536-N=65536-fi_2_fr=65536-1000000/2/fr=65536-500000/fr低音DO的T=65536-500000/262=63628中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1046=65058單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表4-1所示我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù)uintcodetab[]={0,63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217,65252,65283}音樂的音拍,一個(gè)節(jié)拍為單位(C調(diào))(如表4-2所示)表4-2曲調(diào)值表曲調(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/4125ms對于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來完成。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來完成的。其中T0用來產(chǎn)生音符頻率,T1用來產(chǎn)生音拍。 圖4-3音頻播放流程圖3.5放歌子程序流程圖該程序?qū)崿F(xiàn)的是單首曲目循環(huán)播放,無法在程序內(nèi)部實(shí)現(xiàn)歌曲的切換。只能通過外部功能鍵來實(shí)現(xiàn)曲目及功能的切換,是該電子琴設(shè)計(jì)的一個(gè)缺憾。相信如果有更多的時(shí)間來進(jìn)行調(diào)試和設(shè)計(jì),這個(gè)設(shè)計(jì)會更加好。4.結(jié)論將程序?qū)階T89C51芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本課題通過制作電子琴,將幾個(gè)模塊很好的融合起來,對使用單片機(jī)設(shè)計(jì)簡易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。說明一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大,同時(shí)通過顯示模塊來確知自己所彈的音符。通過這次課程設(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)行制板。第三,提高了自己的動手能力。動手在一定程度上反映了一個(gè)人的能力,作為當(dāng)代大學(xué)生,社會要求的我們不是只能說而不能做的人才;作為海大的一員,三能人才標(biāo)準(zhǔn)更讓我們清醒地認(rèn)識到,實(shí)際動手能力無比重要。從這次實(shí)物制作中,我的動手能力提高了。感謝學(xué)院給了我們這次實(shí)踐動手的機(jī)會,更感謝我們的周老師教育了我們單片機(jī)相關(guān)知識。本設(shè)計(jì)還可以擴(kuò)展其他功能,比如記憶功能,即可以存儲彈奏者所彈奏的音樂且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂一點(diǎn),增加一些彩燈使彩燈隨著音調(diào)變化而產(chǎn)生不同的樣式。致謝能夠得以順利完成,是所有曾經(jīng)指導(dǎo)過我的老師,幫助過我的同學(xué),一直支持著我的家人對我的教誨、幫助和鼓勵的結(jié)果。我要在這里對他們表示深深的謝意!首先,要特別感謝我的指導(dǎo)老師——老師。老師在我畢
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文明傳播責(zé)任狀
- 國防生教育培養(yǎng)協(xié)議模板
- 工程審計(jì)分包合同版
- 水泥磚供應(yīng)合同格式
- 婚禮攝影攝像服務(wù)合同
- 家電零售分銷合同
- 專業(yè)家政服務(wù)小時(shí)工合同
- 農(nóng)村養(yǎng)雞設(shè)備采購合同
- 軟件合作開發(fā)合同
- 混凝土構(gòu)件訂購合同
- 北師版七年級數(shù)學(xué)上冊期末復(fù)習(xí)考點(diǎn) 清單04 基本平面圖形(12個(gè)考點(diǎn)梳理+題型解讀+提升訓(xùn)練)
- Pep小學(xué)英語六年級上冊教案-全冊
- 2024粵東西粵北地區(qū)教師全員輪訓(xùn)培訓(xùn)心得總結(jié)
- 服務(wù)類驗(yàn)收單
- MOOC 健身健美-北京林業(yè)大學(xué) 中國大學(xué)慕課答案
- 人生悟理-透過物理看人生智慧樹知到期末考試答案2024年
- 教育信息化2.0時(shí)代教師新技能進(jìn)階智慧樹知到期末考試答案2024年
- 國開2023年春《理工英語3》機(jī)考網(wǎng)考期末復(fù)習(xí)資料參考答案
- 中國古建筑行業(yè)分析報(bào)告
- 蜂產(chǎn)品訂購合同范本
- 建筑工程雜填土基坑邊坡支護(hù)方案及效果評價(jià)分析
評論
0/150
提交評論