單片機(jī)電子琴設(shè)計(jì)_第1頁(yè)
單片機(jī)電子琴設(shè)計(jì)_第2頁(yè)
單片機(jī)電子琴設(shè)計(jì)_第3頁(yè)
單片機(jī)電子琴設(shè)計(jì)_第4頁(yè)
單片機(jī)電子琴設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 單片機(jī)多功能音樂(lè)盒設(shè)計(jì) 【摘要】本設(shè)計(jì)是一個(gè)基于at89c51系列單片機(jī)的音樂(lè)盒,依據(jù)單片機(jī)技術(shù)原理,通過(guò)硬件電路制作以及軟件編譯,設(shè)計(jì)制作出一個(gè)多功能多功能音樂(lè)盒。該音樂(lè)盒主要由按鍵電路、復(fù)位電路、時(shí)鐘電路以及蜂鳴器組成。使用兩個(gè)按鍵控制音樂(lè)盒,一個(gè)用來(lái)暫停歌曲,另一個(gè)用來(lái)切換歌曲本音樂(lè)盒共有四首歌曲,還有4*4矩陣鍵盤(pán)電子琴?gòu)椬喙δ埽シ鸥枨鷷r(shí),蜂鳴器發(fā)出音調(diào),矩陣鍵盤(pán)無(wú)掃描信號(hào),不動(dòng)作。當(dāng)按下暫停歌曲鍵時(shí),可繼續(xù)彈奏電子琴。本設(shè)計(jì)利用keil編程軟件對(duì)音樂(lè)盒源程序進(jìn)行編程并調(diào)試,配合proteus仿真軟件對(duì)硬件進(jìn)行仿真調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。設(shè)計(jì)作者: 吳文豪 專(zhuān)業(yè)

2、班級(jí)/學(xué)號(hào): 10應(yīng)電三班 1006020144 合作者1: 專(zhuān)業(yè)班級(jí)/學(xué)號(hào): 合作者2: 專(zhuān)業(yè)班級(jí)/學(xué)號(hào): 指導(dǎo)教師: 王明文 設(shè)計(jì)時(shí)間: 2012年5月12日2012年6月3日 目 錄引言.11 設(shè)計(jì)任務(wù)及要求.211設(shè)計(jì)任務(wù).212設(shè)計(jì)要求.2 1. 3研究?jī)?nèi)容.22 系統(tǒng)總體設(shè)計(jì).321系統(tǒng)結(jié)構(gòu)框圖設(shè)計(jì)及說(shuō)明.33 軟、硬件設(shè)計(jì).3.1 系統(tǒng)硬件設(shè)計(jì)311系統(tǒng)硬件原理圖及工作原理說(shuō)明312單元電路設(shè)計(jì)原理與元件參數(shù)選擇3 2系統(tǒng)軟件設(shè)計(jì).3 2 1軟件系統(tǒng)總流程圖及設(shè)計(jì)思路說(shuō)明.3 2 2軟件各功能模塊的流程圖設(shè)計(jì)及思路說(shuō)明.4 安裝與調(diào)試.41安裝調(diào)試過(guò)程42調(diào)試中遇到的問(wèn)題5 結(jié)論

3、.6 使用儀器設(shè)備清單.7 收獲、體會(huì)和建議.8 參考文獻(xiàn).9 附錄引言21世紀(jì),電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著cmos化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。單片機(jī)應(yīng)用的重要意義還在于它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技

4、術(shù)也稱(chēng)為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開(kāi)單片機(jī)。隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,人類(lèi)所接觸的信息也在不斷增加并且日益復(fù)雜。面對(duì)浩如煙海的信息,人們已經(jīng)能夠利用計(jì)算機(jī)等工具高效準(zhǔn)確地對(duì)之進(jìn)行處理,但要想將處理完的信息及時(shí),清晰地傳遞給別人,還必須通過(guò)尋求更加卓越的顯示技術(shù)來(lái)實(shí)現(xiàn)。單片機(jī)技術(shù)與液

5、晶顯示技術(shù)的結(jié)合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。隨著人類(lèi)社會(huì)的發(fā)展,人們對(duì)視覺(jué)、聽(tīng)覺(jué)方面的享受提出了越來(lái)越高的要求。小小的音樂(lè)盒可以給人們帶來(lái)美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂(lè)盒多是機(jī)械型的,體積笨重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量生產(chǎn)。本文設(shè)計(jì)的音樂(lè)盒是以單片機(jī)為核心元件的電子式音樂(lè)盒,體積小,重量輕,能演奏和旋音樂(lè),功能多,外觀效果多彩,使用方便,并具有一定的商業(yè)價(jià)值。 電子琴是高科技在音樂(lè)領(lǐng)域的一個(gè)代表,它是古典文化與現(xiàn)代文明的一個(gè)濃縮體。它不但可以幫助我們的音樂(lè)教師進(jìn)行傳統(tǒng)音樂(lè)文化的教育教學(xué)工作,而且由于它又具備現(xiàn)代音樂(lè),特別是電子音樂(lè)、電腦音樂(lè)的基本結(jié)構(gòu)、特征,因而使我

6、們的教師在進(jìn)行現(xiàn)代音樂(lè)、電子音樂(lè)、電腦音樂(lè)的教學(xué)時(shí),更直接、更簡(jiǎn)便。單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開(kāi)發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89c51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器

7、等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)彈奏按鍵、1個(gè)播放鍵,1個(gè)暫停鍵和揚(yáng)聲器。概述本設(shè)計(jì)是以at89c51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來(lái)實(shí)現(xiàn)音樂(lè)演奏控制器的硬件電路,通過(guò)軟件程序來(lái)控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽(tīng)的音樂(lè)。用戶可以按照自己的喜好選擇音樂(lè)并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實(shí)際使用價(jià)值,為廣大的單片機(jī)和音樂(lè)愛(ài)好者提供了很好的借鑒。課題意義音樂(lè)盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會(huì)的鐘塔報(bào)時(shí),而將大小的鐘表裝上機(jī)械裝置,被稱(chēng)為“可發(fā)出聲音的組鐘”

8、。音樂(lè)盒有著300多年的發(fā)展歷史,是人類(lèi)文明發(fā)展的歷史見(jiàn)證。傳統(tǒng)的音樂(lè)盒多是機(jī)械音樂(lè)盒,其工作原理是通過(guò)齒輪帶動(dòng)一個(gè)帶有鐵釘?shù)蔫F桶轉(zhuǎn)動(dòng),鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂(lè)盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂(lè)盒放音時(shí)為了讓音色穩(wěn)定,必須放平不能動(dòng)搖,而且價(jià)格昂貴,不能實(shí)現(xiàn)大批量生產(chǎn)。本文設(shè)計(jì)的音樂(lè)盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂(lè)盒。與傳統(tǒng)的機(jī)械式音樂(lè)盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂(lè)。電子式音樂(lè)盒動(dòng)力來(lái)源是電池,制作工藝簡(jiǎn)單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子式音

9、樂(lè)盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存儲(chǔ)歌曲。另外,可以設(shè)計(jì)彩燈外觀效果,使音樂(lè)盒的功能更加豐富。1設(shè)計(jì)任務(wù)及要求1.1設(shè)計(jì)任務(wù)(1)設(shè)計(jì)一個(gè)基于at89c51系列單片機(jī)的音樂(lè)盒,利用按鍵切換演奏出不同的樂(lè)曲。由蜂鳴器發(fā)出音調(diào);(2)設(shè)計(jì)一個(gè)(4x4)的鍵盤(pán),并將16個(gè)鍵設(shè)計(jì)成16個(gè)音;(3)可彈奏自己想要表達(dá)的音樂(lè)。1.2設(shè)計(jì)要求(1)按設(shè)計(jì)指標(biāo)進(jìn)行電路設(shè)計(jì);(2)列出音階與單片機(jī)定時(shí)器輸出頻率關(guān)系表格;(3)制作符合設(shè)計(jì)指標(biāo)的硬件電路。1.3研究?jī)?nèi)容(1)電路有兩種工作模式:演奏音樂(lè)模式和電子琴模式。演奏音樂(lè)模式:演奏完整的一首的歌曲。電子琴模式

10、:數(shù)碼管上0f表示十六種音調(diào)。包括高低音實(shí)現(xiàn)更多音樂(lè)彈奏(2)按下按鍵2進(jìn)入演奏音樂(lè)模式,再按切換歌曲,共四首歌曲。(3)按下按鍵1進(jìn)入暫停歌曲模式,可以進(jìn)行電子琴?gòu)椬唷? 系統(tǒng)總體方案介紹21系統(tǒng)結(jié)構(gòu)框圖設(shè)計(jì)及說(shuō)明2.12 系統(tǒng)組成框圖及說(shuō)明音樂(lè)盒的系統(tǒng)結(jié)構(gòu)以at89c51單片機(jī)位控制核心,4*4矩陣鍵盤(pán),加上2個(gè)按鍵、時(shí)鐘復(fù)位電路、蜂鳴器、數(shù)碼管6模塊組成。單片機(jī)負(fù)責(zé)接收按鍵的輸入,根據(jù)的輸入按鍵所對(duì)應(yīng)的音符蜂由鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。 圖2.1 系統(tǒng)組成框圖2.1.2 音樂(lè)盒的功能結(jié)構(gòu)圖及說(shuō)明音樂(lè)盒的功能結(jié)構(gòu)如圖2.2所示。key2負(fù)責(zé)切換播放歌曲,播放歌曲共4首,分別是千

11、年之戀和寂寞沙冷,七子之歌,感恩的心key1負(fù)責(zé)暫停。圖2.2 音樂(lè)盒功能結(jié)構(gòu)圖2.1.3電子琴的功能結(jié)構(gòu)圖及說(shuō)明電子琴的功能結(jié)構(gòu)圖如2.3所示。4*4鍵盤(pán)按下獲取相應(yīng)的鍵值和音符有do到xi高低音共16個(gè)音。并在數(shù)碼管上顯示。 圖2.3電子琴功能結(jié)構(gòu)圖3.軟、硬件設(shè)計(jì)3.1 總體設(shè)計(jì)框圖圖3.1總體設(shè)計(jì)框圖3.2各部分硬件設(shè)計(jì)及其原理3.2.1 at89c51簡(jiǎn)介at89c51是一種帶4k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,俗稱(chēng)單片機(jī)。at89c2

12、051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡(jiǎn)版本。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖3.2所示圖3.2 at89c51系列單片機(jī)3.2.2 數(shù)碼管顯示電路和4*4鍵盤(pán)設(shè)計(jì)與原理對(duì)4*4矩陣鍵盤(pán)及單片機(jī)p1口進(jìn)行掃描得到0f的按鍵值由單片機(jī)p0口輸出顯示到

13、數(shù)碼管上,并由揚(yáng)聲器發(fā)出相對(duì)應(yīng)的聲音。3.2.3 時(shí)鐘振蕩電路at89c51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容c1、c2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容c1,c2雖然沒(méi)有什么嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pf10pf,而如果使用陶瓷振蕩器建議選擇40pf10pf。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示

14、。這種情況下,外部時(shí)鐘脈沖接到xtal1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,xtal2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:圖3.2.3 單片機(jī)內(nèi)部、外部振蕩電路3.24硬件電路圖及功能總體硬件電路實(shí)現(xiàn)功能如下,如圖3.2.4所示1.電路中用p3.2、p3.3控制按鍵。2.p1.0p1.7控制4*4矩陣鍵盤(pán)3.p3.7控制蜂鳴器。4.p2.0p2.7數(shù)碼管顯示5.電路為12mhz晶振頻率工作,起振電路中c1、c2均為30pf。圖3.2.4 硬件電

15、路圖3.2.5硬件總體方案及說(shuō)明51單片機(jī)p1口通過(guò)連接4*4的矩陣鍵盤(pán),作為琴鍵鍵盤(pán);p3.3接播放音樂(lè)鍵;p3.7口接喇叭,通過(guò)執(zhí)行相應(yīng)的功能程序使電子琴發(fā)出不同音色的聲音。(一)芯片介紹:在本次電子琴設(shè)計(jì)中,我們組成員單片機(jī)芯片選用了at89c51芯片,而89c51系列的兼容性也比較好。p3口也可作為at89c51的一些特殊功能口,如下表所示:p3口引腳特殊功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2(外部中斷0)p3.3(外部中斷1)p3.4t0(定時(shí)器0外部輸入)p3.5t1(定時(shí)器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3.7rd(外部數(shù)據(jù)存儲(chǔ)器讀

16、先通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。(二)硬件接線:(1)利用p1口為按鍵接入口,形成44組成16個(gè)按鍵矩陣,設(shè)計(jì)成16個(gè)音,下圖所示:0123456789abcdef所對(duì)應(yīng)的鍵碼為(2)p3.7口音頻輸出,接一個(gè)喇叭。(3)復(fù)位電路我們本來(lái)在方案選擇的時(shí)候有兩種選擇的,上電復(fù)位和按扭復(fù)位,上電復(fù)位是利用電容充電來(lái)實(shí)現(xiàn)的,而按扭復(fù)位是電源對(duì)外節(jié)電容的充電使rst為高電平,復(fù)位松開(kāi)后,電容通過(guò)下拉電阻放電,使rst恢復(fù)低電平。為了制作軟件的方便我們還是選擇用按扭復(fù)位,因?yàn)樗容^直觀。()電路設(shè)計(jì)圖如下:3.3系統(tǒng)軟件設(shè)計(jì)3.3軟件系統(tǒng)總流程圖及設(shè)計(jì)思路說(shuō)明在本程序中設(shè)置了個(gè)標(biāo)志

17、count2,分別初始化為1和0。按鍵key2使得count2在14之間切換。程序檢測(cè)count2的值,count2等于1時(shí)播放第一首歌曲,等于2時(shí)播放第二首,以此類(lèi)推。另一方面根據(jù)中斷0 key1來(lái)控制count2的值等于0時(shí)來(lái)暫停歌曲。歌曲停止后,矩陣鍵盤(pán)可以輸入音符,相對(duì)應(yīng)的數(shù)值由數(shù)碼管上顯示。3.3.1音調(diào)、節(jié)拍以及編碼的確定方法一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。3.3.2音調(diào)的確定不同音高的樂(lè)音是用c、d、e、f、g、a

18、、b來(lái)表示,這7個(gè)字母就是音樂(lè)的音名,它們一般依次唱成do、re、mi、fa、so、la、si,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫“音調(diào)”,即tone。把c、d、e、f、g、a、b這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤(pán)樂(lè)器上,cd、de、fg、ga、ab兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;ef、bc兩音之間沒(méi)有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號(hào)或者b號(hào)的叫變化音。叫升記

19、號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音do的頻率(1046hz)剛好是中音do的頻率(523hz)的一倍,中音do的頻率(523hz)剛好是低音do頻率(266 hz)的一倍;同樣的,高音re的頻率(1175hz)剛好是中音re的頻率(587hz)的一倍,中音re的頻率(587hz)剛好是低音re頻率(294 hz)的一倍。1.要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的i/o反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)i/o反相,就可在i/o腳上得到此頻率

20、的脈沖。2.利用at89c51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式mode1下,改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00h和ffh來(lái)表示,若查表結(jié)果為00h,則表示曲子終了;若查表結(jié)果為ffh,則產(chǎn)生相應(yīng)的停頓效果。3.例如頻率為523hz,其周期t=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在每次計(jì)數(shù)956次時(shí)將i/o反相,就可得到中音do(523hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:n=fi2frn:計(jì)算值;fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1mhz;其計(jì)數(shù)值的求法如下:t=65536-n=65536-fi2fr例

21、如:設(shè)k=65536,f=1000000=fi=1mhz,球低音do(261hz)。中音do(523hz)。高音的do(1046hz)的計(jì)算值t=65536-n=65536-fi2fr=65536-10000002fr=65536-500000/fr低音do的t=65536-500000/262=63627低音do的t=65536-500000/523=64580低音do的t=65536-500000/1047=65059c調(diào)各音符頻率與計(jì)數(shù)值t的對(duì)照表如表4.1所示。表3.3.1 c調(diào)各音符頻率與計(jì)數(shù)值t的對(duì)照表低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù)do2621908229do52395

22、6115do10465757do2771805217do554903108do11095454re2941701204re587852102re11755151re3111608193re62280497re12454848mi3301515182mi65975991mi13184545fa3491433172fa69871686fa13974343fa3701351162fa74067681fa14804141so3921276153so78463877so15683838so4151205145so83160272so16613636la4401136136la88056868la1760

23、3434la4641078129la93253664la18653232si4941012121si98850661si197630303.3.3 節(jié)拍的確定若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽(tīng)音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒(méi)有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽(tīng)的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂(lè)是由許多不同的音符組成

24、的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。了解音樂(lè)的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè)。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。表3.3.2節(jié)拍與節(jié)拍碼對(duì)照節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍a2又1/2拍a1又1/4拍c3拍c1又1/2拍f3又3/4拍每個(gè)音符使用1個(gè)字節(jié),

25、字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖5.2為節(jié)拍碼的對(duì)照。如果1拍為0.4秒,1/4拍實(shí)0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1delay,則1拍應(yīng)為4delay,以此類(lèi)推。所以只要求得1/4拍的delay時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時(shí)間設(shè)定。表3.3.3 1/4和1/8節(jié)拍的時(shí)間設(shè)定曲調(diào)值delay曲調(diào)值delay調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒3.3.4 編碼do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停

26、頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類(lèi)推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長(zhǎng)度為半拍,即八分音符,將其編碼為0x22歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類(lèi)型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4

27、位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。表4.4 簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、t值、節(jié)拍數(shù)簡(jiǎn)譜發(fā)音簡(jiǎn)譜碼t值節(jié)拍碼節(jié)拍數(shù)5低音so16426011/4拍6低音la26440022/4拍7低音ti36452433/4拍1中音do46458041拍2中音re56468451又1/4拍3中音mi66477761又1/2拍4中音fa76482082拍5中音so864898a2又1/2拍6中音la964968c3拍7中音tia65030f3又3/4拍1高音dob650582高音rec651103高音mid651574高音fae651785高音sof652173.4軟件系統(tǒng)總流程圖及設(shè)計(jì)思路說(shuō)明(1)鍵盤(pán)掃描程序:檢測(cè)

28、是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無(wú)鍵按下,則返回鍵盤(pán)掃描程序繼續(xù)檢測(cè) (2)功能轉(zhuǎn)移程序:對(duì)檢測(cè)到得按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們?cè)O(shè)計(jì)的功能程序有兩種,即音色調(diào)節(jié)功能和自動(dòng)播放樂(lè)曲功能(3)琴鍵處理程序:根據(jù)檢測(cè)到得按鍵值,查詢音律表,給計(jì)時(shí)器賦值,使發(fā)出相應(yīng)頻率的聲音(4)自動(dòng)播放歌曲程序:檢測(cè)到按鍵按下的是自動(dòng)播放歌曲功能鍵后執(zhí)行該程序,電子琴會(huì)自動(dòng)播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動(dòng)返回至鍵盤(pán)掃描程序,繼續(xù)等待是否有鍵按下程序總流程圖開(kāi)始鍵盤(pán)掃描程序t0初始化并開(kāi)中斷允許t0中斷有鍵按下否 否延時(shí)

29、去抖動(dòng)識(shí)別按鍵功能 是是否彈奏鍵播放鍵 否 是取相應(yīng)的音符碼裝入t0根據(jù)按鍵功能裝入相應(yīng)音符值到t0啟動(dòng)t0啟動(dòng)t0按鍵釋放成功否按鍵釋放成功否停止t0工作停止t0工作3.4.1軟件各功能模塊的流程圖設(shè)計(jì)及思路說(shuō)明彈奏程序流程圖開(kāi)始開(kāi)中斷并允許中斷設(shè)定定時(shí)器工作方式取鍵值根據(jù)鍵值查音律表給定時(shí)器t0賦值開(kāi)始計(jì)時(shí)進(jìn)入中斷fm-p3.7.退出中斷延時(shí)返回鍵盤(pán)掃描程序自動(dòng)播放歌曲程序流程圖開(kāi)始開(kāi)中斷,設(shè)定定時(shí)器t0工作模式取簡(jiǎn)譜碼取該音符的節(jié)拍碼count2=0stop y n查音律表,給定時(shí)器賦值返回鍵盤(pán)掃描 開(kāi)始計(jì)時(shí) 進(jìn)入中斷fm3.7退出中斷延時(shí)4.安裝與調(diào)試4.1 檢查硬件連接在protue

30、s檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。4.2 檢查軟件系統(tǒng)1根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來(lái)檢查程序是否也正確。2將所有程序組織起來(lái),在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過(guò)對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測(cè)試,如果沒(méi)有出現(xiàn)問(wèn)題即可把源程序編譯成hex文件裝載到單片機(jī)中,對(duì)硬件進(jìn)行仿真。4.2.1總體運(yùn)行圖4.3調(diào)試中遇到的問(wèn)題1.電子琴實(shí)現(xiàn),音樂(lè)盒不能進(jìn)行音樂(lè)播放。經(jīng)過(guò)程序不斷修改后??蓪㈦娮忧?,音樂(lè)盒兩種不同的音律在同個(gè)定時(shí)器t0里實(shí)現(xiàn)。5.結(jié)論設(shè)計(jì)簡(jiǎn)單原理介紹一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的

31、頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。在這個(gè)程序中,彈奏音樂(lè)的程序是用定時(shí)/計(jì)數(shù)器t0來(lái)完成的,播放音樂(lè)程序則也是是用定時(shí)/計(jì)數(shù)器t0來(lái)完成的。6.設(shè)計(jì)儀器、設(shè)備和材料清單主要儀器設(shè)備:個(gè)人計(jì)算機(jī)和相關(guān)的軟件主要元器件: 獨(dú)立按鍵18個(gè)單片機(jī)芯片at80c51一片12mhz晶振一個(gè)單個(gè)共陽(yáng)數(shù)碼管不同阻值電阻數(shù)個(gè)usb電源插口一個(gè)喇叭一個(gè)10uf、30pf電容數(shù)個(gè)電路板一塊電烙鐵一個(gè)等7. 收獲、體會(huì)和建議這次設(shè)

32、計(jì)從軟件方面來(lái)講不是很難,程序相對(duì)長(zhǎng)一點(diǎn),但都是書(shū)本上所學(xué)的知識(shí),主要是中端及其服務(wù)程序的編寫(xiě)。在protues上仿真,則起到很好的效果,因?yàn)樵骷际抢硐霠顟B(tài)的,但做出實(shí)物來(lái)卻不是那么簡(jiǎn)單啦。經(jīng)過(guò)多次調(diào)試、修改才得以出結(jié)果。將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。同時(shí)可以播放和切換4首歌曲,但是也有不足之處的,聲音雜音時(shí)而有點(diǎn)大,不穩(wěn)定。經(jīng)過(guò)本次課程設(shè)計(jì),我們比較好的把理論知識(shí)與實(shí)踐相結(jié)合,而我們?cè)谝脖敬卧O(shè)計(jì)中收獲不少。設(shè)計(jì)過(guò)程中,首先,對(duì)于c語(yǔ)言多了一層了解,其次,還有硬件的接線,還有8051芯片的引腳方面,都讓我們收獲不少。加強(qiáng)了自身的動(dòng)手能力。當(dāng)然在這次寶貴的畢業(yè)設(shè)計(jì)活動(dòng)

33、中,經(jīng)驗(yàn)才是對(duì)于我們最大的收獲,而且還增強(qiáng)了自身對(duì)未知問(wèn)題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語(yǔ)來(lái)概括這次難忘的活動(dòng)我覺(jué)得再合適不過(guò)了。但是,光是完成了作品還是不可以自我滿足的,在從一開(kāi)始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對(duì)單片機(jī)這門(mén)學(xué)科的認(rèn)識(shí)加深,到達(dá)了拓展的程度,我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí)現(xiàn)。 總之,這次設(shè)計(jì)從軟件編寫(xiě)、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血。真是曾經(jīng)為程序的編寫(xiě)而冥思查找過(guò),曾經(jīng)為無(wú)法找出錯(cuò)誤而郁悶苦惱過(guò),也曾經(jīng)為某一功能不能實(shí)現(xiàn)而猶豫彷徨過(guò),但最終我成功了。我不僅品味到了結(jié)果的喜

34、悅,更明白了過(guò)程的彌足珍貴。8.參考文獻(xiàn)1周美娟 肖來(lái)勝 單片機(jī)原理及系統(tǒng)設(shè)計(jì)清華大學(xué)出版社2 謝自美.電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試華中理工大學(xué)出版社,199210附錄設(shè)計(jì)源程序#include #define uchar unsigned char#define uint unsigned int/sbit duan=p36;sbit key1=p32;/按key1可暫停歌曲sbit key2=p33;/按key2可切換歌曲sbit fm=p37;/蜂鳴器連續(xù)的io口sbit kk=p20; /點(diǎn)亮一個(gè)數(shù)碼管uchar count2=0;/歌曲標(biāo)志 uchar timeh,timel,i;/*/uc

35、har code dsy_table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, /08 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8f; /9,afuint code tone_delay_table= 64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178; /個(gè)音符對(duì)應(yīng)的延時(shí)uchar keyno;/定義按鍵得到的初值void delay_ms(uchar x) /延時(shí)子函數(shù)

36、 uchar i; while(x-) for(i=0;i4)0x0f; /按鍵后11110000將變成xxxx0000,x中1個(gè)為0,3個(gè)仍為1,將高四位移至低四位,并將其中唯一的0 變成1,其余為0/對(duì)03行分別附加其初始值0,4,8,12switch(tmp)case 1:k+=0; break; case 2:k+=4; break; case 4:k+=8; break; case 8:k+=12; break; default:return; keyno=k; /將k的值賦給keyno由數(shù)碼管輸出 /-簡(jiǎn)譜-/編程規(guī)則:字節(jié)高位是簡(jiǎn)譜,低位是持續(xù)時(shí)間,/代表多少個(gè)十六分音符/1-7

37、代表中央c調(diào),8-e代表高八度,0代表停頓/最后的0是結(jié)束標(biāo)志uchar code qnzl= /千年之戀0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xa8,0x08,0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0x

38、32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,0x63,0xa1,0xa2,0x62,0x92,0x82,0x52,0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7c,0x02,0x61,0x71,0x82,0x71,0x62,0xa2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53,0x42,0x63,0x83,0x83,0x91,0x91,0x61,0x

39、71,0x82,0x71,0x62,0x0a2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53,0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff/結(jié)束標(biāo)志;uchar code jmszl= /寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,0x51,0x52,0x31,0x52,0x62,0x

40、13,0x11,0x13,0x32,0x28,0x08,0x28,0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x

41、31,0x51,0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34, 0x31,0x81,0x81,0x81,0x61,0x91,0x82,0x51,0x51,0x51,0x51,0x31,0x61,0x53,0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,0x32,0x32,0

42、x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff/結(jié)束標(biāo)志; uchar code qizige= /七子之歌0x54,0x32,0x52,0x32,0x54,0x62,0x52,0x32,0x62,0x54,0x14,0x12,0x22,0x34,0x52,0x32,0x02,0x32,0x58,0x52,0x52,0x62,0x52,0x32,0x54,0x52,0x62,0x52,0x82,0x62,0x58,0

43、x14,0x52,0x32,0x22,0x12,0x24,0x32,0x54,0x2,0x22,0x34,0x1f,0x18,0x04,0x54,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x62,0x81,0xa2,0x82,0x9c,0x02,0x52,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x64,0xa2,0x92,0x9f,0xa4,0x92,0x81,0x62,0x52,0x54,0x84,0x62,0x52,0x32,0x22,0x14,0x04,0x22,0x32,0x58,0x

44、58,0x04,0x52,0x62,0x8f,0xff/結(jié)束標(biāo)志; uchar code ganen= /感恩的心0x12,0x14,0x22,0x32,0x54,0x32,0x84,0x72,0x62,0x54,0x02,0x62,0x62,0x52,0x54,0x12,0x22,0x32,0x28,0x12,0x14,0x22,0x32,0x54,0x32,0x84,0x92,0x82,0x54,0x32,0x24,0x21,0x61,0x54,0x22,0x32,0x12,0x18,0x22,0x24,0x12,0x24,0x11,0x21,0x34,0x32,0x21,0x31,0x3

45、4,0x12,0x22,0x22,0x22,0x11,0x21,0x22,0x64,0x52,0x52,0x32,0x38,0x31,0x52,0x51,0x52,0x31,0x51,0x58,0x31,0x82,0x81,0x82,0x31,0x61,0x68,0x62,0x62,0x62,0x51,0x61,0x64,0x61,0x82,0x61,0x9c, 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64,0x62,0x94,0x82,0x94,0x61,0x81,0x92,0x91,0x91,0x92,0x81,0xa1,0xa2,0x92,0x94, 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64, 0x52,0x62,0x81,0x81,0x82,0x92,0xa2,0x94,0x82,0x72,0x82,0x88,0xff/結(jié)束標(biāo)志; /-簡(jiǎn)譜音調(diào)對(duì)應(yīng)的定時(shí)器初值-/適合11.0592m的晶振uchar code cuzh

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論