




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用STC89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可靠,性價(jià)比較高等,具有一定的實(shí)用和參考價(jià)值。目 錄摘 要1目 錄2第一章 緒論3第二章 總體方案42.1系統(tǒng)設(shè)計(jì)要求42.2 電子琴系統(tǒng)的組成42.4 系統(tǒng)框圖5第三章 硬件簡(jiǎn)
2、介53.1 STC89C5253.2 矩陣式鍵盤的識(shí)別和顯示83.3 硬件設(shè)計(jì)圖10第四章 軟件設(shè)計(jì)104.1 整體程序處理104.2 I/O并行口直接驅(qū)動(dòng)LED顯示104.3 音樂播放設(shè)計(jì)11第五章 結(jié)論13參考資料14附錄 完整程序14 實(shí)物圖20焊接圖21實(shí)際工作圖22第一章 緒論 隨著大規(guī)模集成電路的出現(xiàn)和發(fā)展,芯片生產(chǎn)廠家把中央處理器CPU,隨機(jī)存取內(nèi)存RAM,只讀存儲(chǔ)器ROM,定時(shí)器/計(jì)數(shù)器以及I/O接口電路等主要計(jì)算機(jī)部件,集成在一塊集成電路芯片(硅片)上,形成芯片級(jí)計(jì)算機(jī),稱為單片微型計(jì)算機(jī),直譯為單片機(jī)。單片機(jī)雖只是一個(gè)芯片,但從組成和功能上看,它已具有了微機(jī)系統(tǒng)的含義,又稱
3、微型處理部件MCU(Micro Controller Unit),單片機(jī)商品名稱為微控制器單元。雖然單片機(jī)出現(xiàn)的歷史并不長(zhǎng),但發(fā)展十分迅猛,在集成度、功能、速度、可靠性、應(yīng)用領(lǐng)域等全方位向更高水平發(fā)展。目前單片機(jī)已用于工業(yè)控制、機(jī)電一體化設(shè)備、儀器儀表、信號(hào)處理、現(xiàn)代兵器、交通能源、商用設(shè)備、醫(yī)療設(shè)備及家用電器等各個(gè)領(lǐng)域,隨著單片機(jī)性能的不斷提高,它的應(yīng)用將會(huì)更加廣泛。單片機(jī)技術(shù)發(fā)展非???,所以目前的產(chǎn)品都致力于在功能全面、技術(shù)先進(jìn)、操作簡(jiǎn)便、安全可靠、價(jià)格合理等方面進(jìn)行仔細(xì)研究,精心設(shè)計(jì);及時(shí)掌握最新的單片機(jī)技術(shù),在條件允許的情況下,盡可能地利用最新的單片機(jī)技術(shù)來研制其應(yīng)用系統(tǒng),再利用單片機(jī)
4、體積小、價(jià)格低、功能強(qiáng)等特點(diǎn),以保證所設(shè)計(jì)的產(chǎn)品在未來的一段時(shí)間內(nèi)仍具生命力。在生活和生產(chǎn)的各個(gè)領(lǐng)域中,凡是有自動(dòng)控制要求的地方都會(huì)有單片機(jī)的身影出現(xiàn);從簡(jiǎ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)品的小型化、多功能化和智能化,有助于提高勞動(dòng)效率,減輕勞動(dòng)強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動(dòng)環(huán)境,減少能源和材料消耗,保證安全等。但是,單片機(jī)應(yīng)用的意義絕不僅限于它的廣闊范圍以及所帶來的經(jīng)濟(jì)效益上,更重要的意義還在于:?jiǎn)纹瑱C(jī)的應(yīng)用正
5、從根本上改變著傳統(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ù)是一種全新的概念,是對(duì)傳統(tǒng)控制技術(shù)的一次革命。隨單片機(jī)應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實(shí)。 簡(jiǎn)易電子琴系統(tǒng)就是以單片機(jī)為主要元器件設(shè)計(jì)的一個(gè)簡(jiǎn)易電子琴,這只是單片機(jī)應(yīng)用的一個(gè)點(diǎn),由點(diǎn)及面,希望可以更好的了解和應(yīng)用單片機(jī)技術(shù)。 之所以以單片機(jī)電子琴為選題,目的在于從日常生活能接觸到的細(xì)微處著手,通過理論與實(shí)踐的結(jié)合,更明確自己的所學(xué)所用,也在實(shí)
6、踐中發(fā)現(xiàn)理論的不足,對(duì)目前日益廣泛應(yīng)用的單片機(jī)有了更加理性化和感性化的認(rèn)識(shí),使理論和實(shí)踐相得益彰。 通過單片機(jī)電子琴這個(gè)選題,更深層次的了解了單片機(jī)技術(shù),以前只是有理論,實(shí)踐的機(jī)會(huì)不是很多,在作單片機(jī)電子琴這個(gè)選題的過程中,更加熟練的掌握了一些單片機(jī)芯片的應(yīng)用,也解決了很多以前理論和實(shí)踐脫節(jié)的問題,可謂對(duì)單片機(jī)的認(rèn)識(shí)有了一個(gè)小的飛躍。第二章 總體方案2.1系統(tǒng)設(shè)計(jì)要求本系統(tǒng)分為兩個(gè)部分,一個(gè)是音樂播放,另一個(gè)就是電子琴彈奏。 關(guān)于聲音的處理,使用單片機(jī)C語言,利用定時(shí)器來控制頻率,而每個(gè)音符的符號(hào)只是存在我自己定義的表中。具體要求如下: 1.要求達(dá)到電子琴的基本功能,可以用彈奏出簡(jiǎn)單的樂曲。
7、2.用鍵盤作出電子琴的按鍵,每鍵代表一個(gè)音符。 3.各音符按一定的順序排列,必須符合電子琴的按鍵排列順序。 4.固定音樂播放有按鍵控制:“播放”、“彈奏/停止”。 5.彈奏電子琴時(shí)能播放出準(zhǔn)確的聲音,不彈奏時(shí)可以播放內(nèi)置音樂。2.2 電子琴系統(tǒng)的組成單片機(jī)因體積小、功能強(qiáng)、價(jià)格低廉而得到廣泛應(yīng)用。STC89C52單片機(jī)設(shè)計(jì)微型電子琴的方法,僅需STC89C52最小系統(tǒng),擴(kuò)展一組矩陣鍵盤,再接一組發(fā)光二極管用來指示電子琴的工作狀態(tài)。本系統(tǒng)分為兩個(gè)部分,一個(gè)是音樂另一個(gè)就是電子琴。音樂播放部分:音樂實(shí)際上是有固定周期的信號(hào)。本文介紹用STC89C52的兩個(gè)定時(shí)器(如T0,T1)控制,在P1.3腳上
8、輸出方波周期信號(hào),產(chǎn)生樂音,通過矩陣鍵盤按鍵產(chǎn)生不同的音符,由此操作人員可以隨心所欲的彈奏自己所喜愛的樂曲,當(dāng)不想彈奏時(shí)通過按放歌鍵可以演奏事先存放在單片機(jī)中的幾首動(dòng)聽的曲子供消遣。當(dāng)歌曲演奏完時(shí),通過按復(fù)位鍵便可回到初始狀態(tài),這樣就做出了一臺(tái)微型電子琴。由于一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。樂曲中,每一音符對(duì)應(yīng)著確定的頻率,我們將每一音符的時(shí)間常數(shù)和其
9、相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。電子琴彈奏部分:實(shí)際上就是把每個(gè)按鍵所對(duì)應(yīng)的值經(jīng)過處理后發(fā)給單片機(jī),再在單片機(jī)內(nèi)把數(shù)字當(dāng)作指針指向所對(duì)應(yīng)的音符。2.4 系統(tǒng)框圖該系統(tǒng)通過電子琴按鍵隨意鍵入所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過這樣可以不斷的彈奏音樂。嵌入式電路,按鍵電路,LED顯示電路和兩個(gè)功能鍵組成,通過功能鍵可以選擇播放音樂。其主要模塊由五個(gè)部分組成,具體關(guān)系如圖3-1所示:圖3-1 帶存儲(chǔ)的電子琴框圖上圖即為此次設(shè)計(jì)中的電子琴的硬件
10、結(jié)構(gòu)圖,我們運(yùn)用單片機(jī)的最小系統(tǒng),用P0口的高四位和P0口的低四位作4X4矩陣式按鍵的接口,用P2口作數(shù)碼管的接口,用P1.3作信號(hào)輸出口。 第二章 硬件介紹3.1 STC89C523.1.1 STC89C52STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個(gè)16 位定時(shí)器/
11、計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。3.1.2 主要功能特性 與MCS-51 兼容 8K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時(shí)間:10年 全靜態(tài)工作:0Hz-24Hz 三級(jí)程序存儲(chǔ)器鎖定 512內(nèi)部RAM 32可編程I/O線 兩個(gè)16位定時(shí)器/計(jì)數(shù)器 5個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路3.1.3 管腳功能 VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在F
12、IASH編程時(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口
13、當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TX
14、D(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時(shí)器0外部輸入) P3.5 T1(記時(shí)器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部
15、輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET
16、;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。3.2 矩陣式鍵盤的識(shí)別和顯示3.2.1.矩陣式鍵盤的結(jié)構(gòu)與工作原理在鍵盤中按鍵數(shù)量較多時(shí),為了減少I
17、/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。
18、行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識(shí)別及編程方法如下所述。3.2.2.矩陣式鍵盤的按鍵識(shí)別方法確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤,介紹過程如下。1、判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體
19、閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。3.2.3. 鍵盤接口必須具有的4個(gè)基本功能。(1)去抖動(dòng):每個(gè)按鍵在按下或松開時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為520mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別正確無誤。去抖問題可通過軟件延時(shí)或硬件電路解決。(2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒有釋放又有新的按鍵按下時(shí)產(chǎn)生的問題。常用的
20、方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。N鍵輪回,是當(dāng)檢測(cè)到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。(3)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤逐行掃描,通過檢測(cè)到的列輸出狀態(tài)來確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過行列顛倒兩次掃描來識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。(4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼
21、得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用AT89C51的并行口P0接44矩陣鍵盤,以P0.0P0.3作輸入線,以P0.4P0.7作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“0F”序號(hào)。3.3硬件設(shè)計(jì)圖圖中的矩陣鍵盤,從上到下,從左到右,依次為鍵盤的0-15,在數(shù)碼管上顯示時(shí)順序?yàn)?-9和A-F,在按功能鍵時(shí),圖上的兩個(gè)指示燈會(huì)根據(jù)功能的不同實(shí)現(xiàn)亮/滅狀態(tài)的切換。在播放內(nèi)置音樂時(shí),指示燈在一定程度上能指示出曲目的音符。第四章 軟件設(shè)計(jì)4.1 整體程序處理 在電子琴開始工作時(shí),系統(tǒng)默認(rèn)電子琴處于彈奏狀態(tài),歌曲選擇功能鍵的目的是賦予矩陣鍵盤第二功能,即對(duì)系統(tǒng)內(nèi)置的
22、歌曲進(jìn)行選擇,在放歌時(shí)能且只能通過彈奏/停止鍵來結(jié)束放歌,選歌時(shí)必須先按下歌曲選擇功能鍵,在通過矩陣鍵盤來選擇和切換曲目。4.2 I/O并行口直接驅(qū)動(dòng)LED顯示把“STC89C52”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到一位數(shù)碼管的ah端口上;要求:P2.0/A8與a相連,P2.1/A9與b相連,P2.2/A10與c相連,P2.7/A15與h相連。 表1 字形碼表及對(duì)應(yīng)的音符10x3f低 5 SO90x7f中 6 LA20x06低 6 LAA0x6f中 7 SI30x5b低 7 SIb0x77高 1 DO40x4f中 1 DOC0x7c高 2 RE50x66中 2 REd0
23、x39高 3 M60x6d中 3 ME0x5e高 4 FA70x7d中 4 FAF0x79高 5 SO80x07中 5 SO00x71高 6 LA 在本設(shè)計(jì)中,數(shù)碼管的顯示通過 P2=DSY_CODEk 這句語言來查表并輸出,實(shí)現(xiàn)音符的顯示。 4.3 音樂播放設(shè)計(jì)一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將
24、此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P3.7反相,然后重復(fù)計(jì)時(shí)再反相。就可在P1.3引腳上得到此頻率的脈沖。利用STC89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系式是: Nfi2fr 式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如
25、下: T65536N65536fi2fr例如:設(shè)K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。 T65536N65536fi2fr655362fr 65536/fr低音DO的T65536/26263628中音DO的T65536/52364580高音DO的T65536/104665058 單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表4-1所示 表4-1 音符頻率表音符頻率(HZ)簡(jiǎn)譜碼(T值)音符頻率(HZ)簡(jiǎn)譜碼(T值)休止00中 4 FA69864820低1DO26263628中 5 SO78464898低2RE
26、29463835中 6 LA88064968低 3 M33064021中 7 SI98865030低 4 FA34964103高 1 DO104665058低 5 SO39264260高 2 RE117565110低 6 LA44064400高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580高 5 SO156865217中 2 RE58764684高 6 LA176065252中 3 M65964777高 7 SI196765283我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù) uint code tab= 0
27、,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 對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來完成。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來完成的。其中T0用來產(chǎn)生音符頻率,
28、T1用來產(chǎn)生音拍。 第五章 結(jié)論將程序?qū)隨TC89C52芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本課題通過制作電子琴,將幾個(gè)模塊很好的融合起來,對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。說明一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大,同時(shí)通過顯示模塊來
29、確知自己所彈的音符。通過這次課程設(shè)計(jì),我感覺收獲了很多:首先,通過實(shí)踐,加深對(duì)單片機(jī)系列知識(shí)及其系統(tǒng)的認(rèn)識(shí)。這個(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)行程系編譯。第三,提高了自己的動(dòng)手能力。動(dòng)手在一定程度上反映了一個(gè)人的能力,作為當(dāng)代大學(xué)生,社會(huì)要求的我們不是只能說而不能做的人才;作為海大的一員,三能人才標(biāo)準(zhǔn)更讓我們清醒地認(rèn)識(shí)到,實(shí)際動(dòng)手能力無比重要。從這次實(shí)物制作中,我的動(dòng)手能力提高了。感謝學(xué)院給了我們這次實(shí)踐動(dòng)手的機(jī)會(huì),更感謝我們的周老師教育了我們單片機(jī)
30、相關(guān)知識(shí)。 本設(shè)計(jì)還可以擴(kuò)展其他功能,比如記憶功能,即可以存儲(chǔ)彈奏者所彈奏的音樂且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂一點(diǎn),增加一些彩燈使彩燈隨著音調(diào)變化而產(chǎn)生不同的樣式。 參考資料1 康年光.電子技術(shù)基礎(chǔ)(數(shù)字部分).高等教育出版社.2005.07 2 劉樂喜.微機(jī)計(jì)算機(jī)接口技術(shù)及應(yīng)用.華中科技大學(xué)出版社.2005.083 謝嘉奎.電子線路(線性部分).高等教育出版社.2004.044 潭浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社.2005.07 附錄 完整程序#include #include #include #include #define uchar unsigned cha
31、r#define uint unsigned intuchar STHO;uchar STLO;bit FY=0;uchar Song_Index=0,Tone_Index=0;uchar k,key;sbit SPK=P13;sbit LED1=P10;sbit LED2=P11;uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code Song50=1,2,3,1,1,2,3,1,1,3,4,5,3,4,5,5,6,5,3,5,
32、6,5,3,5,3,2,1,2,1,-1,3,3,3,4,5,5,5,5,6,5,3,5,3,2,1,5,6,5,3,3,2,1,1,-1,3,2,1,3,2,1,1,2,3,2,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1,10,10,10,9,10,9,10,9,9,6,6,7,8,9,8,7,6,5,6,-1,10,10,10,9,10,13,12,13,12,12,9,9,10,11,12,11,10,9,8,10,10,-1,13,14,13,12,12,10,12,10,12,9,13,12,10,9,10,10,-1,9,13,13
33、,13,8,13,13,13,13,14,15,14,13,14,13,14,10,10,-1,13,14,13,12,12,10,12,10,12,13,14,13,14,13,14,10,-1,9,13,13,13,8,13,13,13,13,14,15,14,13,13,14,12,13,-1,5,5,10,9,8,5,5,5,5,10,9,8,6,6,6,11,10,9,6,-1,6,12,12,11,9,10,8,5,5,10,9,8,5,5,5,10,9,8,6,-1,6,6,11,10,9,12,12,12,12,13,12,11,9,8,10,10,10,-1,10,10,10
34、,10,12,8,9,10,11,1,11,11,11,10,10,10,10,10,9,9,8,9,12,12,12,11,9,8,-1,13,13,8,13,13,13,13,14,15,14,13,14,13,14,10,10,13,14,13,12,12,10,12,10,12,13,14,13,14,13,14,10,9,13,13,13,8,13,13,13,13,14,15,14,13,13,14,12,13,-1,6,6,11,10,9,12,12,12,12,13,12,11,9,8,10,10,10,10,10,10,10,12,8,9,10,11,11,11,11,11,
35、10,10,10,10,10,9,9,8,9,12,12,12,11,9,8,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,-1;uchar code Len50=1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,-1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,-1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,-1,1,1,1,1,2
36、,1,1,1,1,0,1,1,0,1,1,0,1,1,2,-1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,3,1,-1,0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,2,-1,0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,1,2,1-1,0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,4,-1,0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,4,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-
37、1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,2,0,1,1,0,1,1,0,1,1,0,1,1,2,1,0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,4,0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,4,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1; uint code tab=0,63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283; void delay1(uint ms) uchar t; while(ms-) for(t=0;t0;i-);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 150萬北京購房合同范例
- 景觀池塘基礎(chǔ)施工方案
- 關(guān)聯(lián)代理公司合同范例
- 東莞公司租賃合同范例
- 個(gè)人田地改造合同范本
- 中國(guó)公司 英文合同范例
- 下水維修簡(jiǎn)易合同范例
- 倉庫配貨合同范例
- 內(nèi)蒙合同范例
- 公司訂購水果合同范例
- 語文-湖南省長(zhǎng)郡二十校聯(lián)盟2025屆新高考教學(xué)教研聯(lián)盟高三第一次聯(lián)考(長(zhǎng)郡二十校一聯(lián))試題和答案
- 醫(yī)療衛(wèi)生中心社會(huì)效益與經(jīng)濟(jì)效益分析
- 3月3號(hào)全國(guó)愛耳日-保護(hù)耳朵課件
- 2025年遼寧裝備制造職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(網(wǎng)校專用)
- 2025國(guó)家電投集團(tuán)資本控股限公司本部招聘11人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南中醫(yī)藥高等??茖W(xué)校高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2024新版人教PEP英語(2025春)七年級(jí)下冊(cè)教學(xué)課件:Unit2 Reading Plus
- 《小兔子安家》(說課稿)-2024-2025學(xué)年一年級(jí)下冊(cè)數(shù)學(xué)北師大版
- 小學(xué)生人際交往能力培養(yǎng)的實(shí)踐研究
- 綜合與實(shí)踐 白晝時(shí)長(zhǎng)規(guī)律的探究說課稿 2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)下冊(cè)
- 2025年春新人教版數(shù)學(xué)七年級(jí)下冊(cè)教學(xué)課件 7.4 平移
評(píng)論
0/150
提交評(píng)論