版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告設(shè)計題目: 單片機多功能音樂盒設(shè)計 【摘要】本設(shè)計是一個基于at89c51系列單片機的音樂盒,依據(jù)單片機技術(shù)原理,通過硬件電路制作以及軟件編譯,設(shè)計制作出一個多功能多功能音樂盒。該音樂盒主要由按鍵電路、復(fù)位電路、時鐘電路以及蜂鳴器組成。使用兩個按鍵控制音樂盒,一個用來暫停歌曲,另一個用來切換歌曲本音樂盒共有四首歌曲,還有4*4矩陣鍵盤電子琴彈奏功能,播放歌曲時,蜂鳴器發(fā)出音調(diào),矩陣鍵盤無掃描信號,不動作。當(dāng)按下暫停歌曲鍵時,可繼續(xù)彈奏電子琴。本設(shè)計利用keil編程軟件對音樂盒源程序進行編程并調(diào)試,配合proteus仿真軟件對硬件進行仿真調(diào)試,節(jié)約了設(shè)計時間。設(shè)計作者: 吳文豪 專業(yè)
2、班級/學(xué)號: 10應(yīng)電三班 1006020144 合作者1: 專業(yè)班級/學(xué)號: 合作者2: 專業(yè)班級/學(xué)號: 指導(dǎo)教師: 王明文 設(shè)計時間: 2012年5月12日2012年6月3日 目 錄引言.11 設(shè)計任務(wù)及要求.211設(shè)計任務(wù).212設(shè)計要求.2 1. 3研究內(nèi)容.22 系統(tǒng)總體設(shè)計.321系統(tǒng)結(jié)構(gòu)框圖設(shè)計及說明.33 軟、硬件設(shè)計.3.1 系統(tǒng)硬件設(shè)計311系統(tǒng)硬件原理圖及工作原理說明312單元電路設(shè)計原理與元件參數(shù)選擇3 2系統(tǒng)軟件設(shè)計.3 2 1軟件系統(tǒng)總流程圖及設(shè)計思路說明.3 2 2軟件各功能模塊的流程圖設(shè)計及思路說明.4 安裝與調(diào)試.41安裝調(diào)試過程42調(diào)試中遇到的問題5 結(jié)論
3、.6 使用儀器設(shè)備清單.7 收獲、體會和建議.8 參考文獻.9 附錄引言21世紀(jì),電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著cmos化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。單片機應(yīng)用的重要意義還在于它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技
4、術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。隨著科學(xué)技術(shù)的進步和社會的發(fā)展,人類所接觸的信息也在不斷增加并且日益復(fù)雜。面對浩如煙海的信息,人們已經(jīng)能夠利用計算機等工具高效準(zhǔn)確地對之進行處理,但要想將處理完的信息及時,清晰地傳遞給別人,還必須通過尋求更加卓越的顯示技術(shù)來實現(xiàn)。單片機技術(shù)與液
5、晶顯示技術(shù)的結(jié)合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。隨著人類社會的發(fā)展,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂盒多是機械型的,體積笨重,發(fā)音單調(diào),不能實現(xiàn)批量生產(chǎn)。本文設(shè)計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小,重量輕,能演奏和旋音樂,功能多,外觀效果多彩,使用方便,并具有一定的商業(yè)價值。 電子琴是高科技在音樂領(lǐng)域的一個代表,它是古典文化與現(xiàn)代文明的一個濃縮體。它不但可以幫助我們的音樂教師進行傳統(tǒng)音樂文化的教育教學(xué)工作,而且由于它又具備現(xiàn)代音樂,特別是電子音樂、電腦音樂的基本結(jié)構(gòu)、特征,因而使我
6、們的教師在進行現(xiàn)代音樂、電子音樂、電腦音樂的教學(xué)時,更直接、更簡便。單片微型計算機是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89c51單片機為核心控制元件,設(shè)計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器
7、等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個彈奏按鍵、1個播放鍵,1個暫停鍵和揚聲器。概述本設(shè)計是以at89c51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來實現(xiàn)音樂演奏控制器的硬件電路,通過軟件程序來控制單片機內(nèi)部的定時器使其演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉(zhuǎn)化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實際使用價值,為廣大的單片機和音樂愛好者提供了很好的借鑒。課題意義音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時期。當(dāng)時為使教會的鐘塔報時,而將大小的鐘表裝上機械裝置,被稱為“可發(fā)出聲音的組鐘”
8、。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。傳統(tǒng)的音樂盒多是機械音樂盒,其工作原理是通過齒輪帶動一個帶有鐵釘?shù)蔫F桶轉(zhuǎn)動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機械音樂盒放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產(chǎn)。本文設(shè)計的音樂盒,是基于單片機設(shè)計制作的電子式音樂盒。與傳統(tǒng)的機械式音樂盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進行批量生產(chǎn),所以價格便宜?;趩纹瑱C制作的電子式音
9、樂盒,控制功能強大,可根據(jù)需要選歌,使用方便。根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。另外,可以設(shè)計彩燈外觀效果,使音樂盒的功能更加豐富。1設(shè)計任務(wù)及要求1.1設(shè)計任務(wù)(1)設(shè)計一個基于at89c51系列單片機的音樂盒,利用按鍵切換演奏出不同的樂曲。由蜂鳴器發(fā)出音調(diào);(2)設(shè)計一個(4x4)的鍵盤,并將16個鍵設(shè)計成16個音;(3)可彈奏自己想要表達的音樂。1.2設(shè)計要求(1)按設(shè)計指標(biāo)進行電路設(shè)計;(2)列出音階與單片機定時器輸出頻率關(guān)系表格;(3)制作符合設(shè)計指標(biāo)的硬件電路。1.3研究內(nèi)容(1)電路有兩種工作模式:演奏音樂模式和電子琴模式。演奏音樂模式:演奏完整的一首的歌曲。電子琴模式
10、:數(shù)碼管上0f表示十六種音調(diào)。包括高低音實現(xiàn)更多音樂彈奏(2)按下按鍵2進入演奏音樂模式,再按切換歌曲,共四首歌曲。(3)按下按鍵1進入暫停歌曲模式,可以進行電子琴彈奏。2 系統(tǒng)總體方案介紹21系統(tǒng)結(jié)構(gòu)框圖設(shè)計及說明2.12 系統(tǒng)組成框圖及說明音樂盒的系統(tǒng)結(jié)構(gòu)以at89c51單片機位控制核心,4*4矩陣鍵盤,加上2個按鍵、時鐘復(fù)位電路、蜂鳴器、數(shù)碼管6模塊組成。單片機負(fù)責(zé)接收按鍵的輸入,根據(jù)的輸入按鍵所對應(yīng)的音符蜂由鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。 圖2.1 系統(tǒng)組成框圖2.1.2 音樂盒的功能結(jié)構(gòu)圖及說明音樂盒的功能結(jié)構(gòu)如圖2.2所示。key2負(fù)責(zé)切換播放歌曲,播放歌曲共4首,分別是千
11、年之戀和寂寞沙冷,七子之歌,感恩的心key1負(fù)責(zé)暫停。圖2.2 音樂盒功能結(jié)構(gòu)圖2.1.3電子琴的功能結(jié)構(gòu)圖及說明電子琴的功能結(jié)構(gòu)圖如2.3所示。4*4鍵盤按下獲取相應(yīng)的鍵值和音符有do到xi高低音共16個音。并在數(shù)碼管上顯示。 圖2.3電子琴功能結(jié)構(gòu)圖3.軟、硬件設(shè)計3.1 總體設(shè)計框圖圖3.1總體設(shè)計框圖3.2各部分硬件設(shè)計及其原理3.2.1 at89c51簡介at89c51是一種帶4k字節(jié)閃存可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,俗稱單片機。at89c2
12、051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3.2所示圖3.2 at89c51系列單片機3.2.2 數(shù)碼管顯示電路和4*4鍵盤設(shè)計與原理對4*4矩陣鍵盤及單片機p1口進行掃描得到0f的按鍵值由單片機p0口輸出顯示到
13、數(shù)碼管上,并由揚聲器發(fā)出相對應(yīng)的聲音。3.2.3 時鐘振蕩電路at89c51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容c1、c2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容c1,c2雖然沒有什么嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pf10pf,而如果使用陶瓷振蕩器建議選擇40pf10pf。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示
14、。這種情況下,外部時鐘脈沖接到xtal1端,即內(nèi)部時鐘發(fā)生器的輸入端,xtal2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:圖3.2.3 單片機內(nèi)部、外部振蕩電路3.24硬件電路圖及功能總體硬件電路實現(xiàn)功能如下,如圖3.2.4所示1.電路中用p3.2、p3.3控制按鍵。2.p1.0p1.7控制4*4矩陣鍵盤3.p3.7控制蜂鳴器。4.p2.0p2.7數(shù)碼管顯示5.電路為12mhz晶振頻率工作,起振電路中c1、c2均為30pf。圖3.2.4 硬件電
15、路圖3.2.5硬件總體方案及說明51單片機p1口通過連接4*4的矩陣鍵盤,作為琴鍵鍵盤;p3.3接播放音樂鍵;p3.7口接喇叭,通過執(zhí)行相應(yīng)的功能程序使電子琴發(fā)出不同音色的聲音。(一)芯片介紹:在本次電子琴設(shè)計中,我們組成員單片機芯片選用了at89c51芯片,而89c51系列的兼容性也比較好。p3口也可作為at89c51的一些特殊功能口,如下表所示:p3口引腳特殊功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2(外部中斷0)p3.3(外部中斷1)p3.4t0(定時器0外部輸入)p3.5t1(定時器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲器寫選通)p3.7rd(外部數(shù)據(jù)存儲器讀
16、先通)p3口同時為閃爍編程和編程校驗接收一些控制信號。(二)硬件接線:(1)利用p1口為按鍵接入口,形成44組成16個按鍵矩陣,設(shè)計成16個音,下圖所示:0123456789abcdef所對應(yīng)的鍵碼為(2)p3.7口音頻輸出,接一個喇叭。(3)復(fù)位電路我們本來在方案選擇的時候有兩種選擇的,上電復(fù)位和按扭復(fù)位,上電復(fù)位是利用電容充電來實現(xiàn)的,而按扭復(fù)位是電源對外節(jié)電容的充電使rst為高電平,復(fù)位松開后,電容通過下拉電阻放電,使rst恢復(fù)低電平。為了制作軟件的方便我們還是選擇用按扭復(fù)位,因為它比較直觀。()電路設(shè)計圖如下:3.3系統(tǒng)軟件設(shè)計3.3軟件系統(tǒng)總流程圖及設(shè)計思路說明在本程序中設(shè)置了個標(biāo)志
17、count2,分別初始化為1和0。按鍵key2使得count2在14之間切換。程序檢測count2的值,count2等于1時播放第一首歌曲,等于2時播放第二首,以此類推。另一方面根據(jù)中斷0 key1來控制count2的值等于0時來暫停歌曲。歌曲停止后,矩陣鍵盤可以輸入音符,相對應(yīng)的數(shù)值由數(shù)碼管上顯示。3.3.1音調(diào)、節(jié)拍以及編碼的確定方法一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和節(jié)拍表示一個音符唱多長的時間。3.3.2音調(diào)的確定不同音高的樂音是用c、d、e、f、g、a
18、、b來表示,這7個字母就是音樂的音名,它們一般依次唱成do、re、mi、fa、so、la、si,即唱成簡譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)”,即tone。把c、d、e、f、g、a、b這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,cd、de、fg、ga、ab兩音之間隔著一個黑鍵,他們之間的距離就是全音;ef、bc兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號或者b號的叫變化音。叫升記
19、號,表示把音在原來的基礎(chǔ)上升高半音,b叫降記音,表示在原來的基礎(chǔ)上降低半音。例如高音do的頻率(1046hz)剛好是中音do的頻率(523hz)的一倍,中音do的頻率(523hz)剛好是低音do頻率(266 hz)的一倍;同樣的,高音re的頻率(1175hz)剛好是中音re的頻率(587hz)的一倍,中音re的頻率(587hz)剛好是低音re頻率(294 hz)的一倍。1.要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當(dāng)計時到后就將輸出脈沖的i/o反相,然后重復(fù)計時此半周期時間再對i/o反相,就可在i/o腳上得到此頻率
20、的脈沖。2.利用at89c51的內(nèi)部定時器使其工作在計數(shù)器模式mode1下,改變計數(shù)值th0及tl0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00h和ffh來表示,若查表結(jié)果為00h,則表示曲子終了;若查表結(jié)果為ffh,則產(chǎn)生相應(yīng)的停頓效果。3.例如頻率為523hz,其周期t=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次計數(shù)956次時將i/o反相,就可得到中音do(523hz)。計數(shù)脈沖值與頻率的關(guān)系公式如下:n=fi2frn:計算值;fi:內(nèi)部計時一次為1us,故其頻率為1mhz;其計數(shù)值的求法如下:t=65536-n=65536-fi2fr例
21、如:設(shè)k=65536,f=1000000=fi=1mhz,球低音do(261hz)。中音do(523hz)。高音的do(1046hz)的計算值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)各音符頻率與計數(shù)值t的對照表如表4.1所示。表3.3.1 c調(diào)各音符頻率與計數(shù)值t的對照表低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù)do2621908229do52395
22、6115do10465757do2771805217do554903108do11095454re2941701204re587852102re11755151re3111608193re62280497re12454848mi3301515182mi65975991mi13184545fa3491433172fa69871686fa13974343fa3701351162fa74067681fa14804141so3921276153so78463877so15683838so4151205145so83160272so16613636la4401136136la88056868la1760
23、3434la4641078129la93253664la18653232si4941012121si98850661si197630303.3.3 節(jié)拍的確定若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快滿度?!肮?jié)拍”,即beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成
24、的,而每個音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時,構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機定時計數(shù)的關(guān)系。表3.3.2節(jié)拍與節(jié)拍碼對照節(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拍每個音符使用1個字節(jié),
25、字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖5.2為節(jié)拍碼的對照。如果1拍為0.4秒,1/4拍實0.1秒,只要設(shè)定延遲時間就可求得節(jié)拍的時間。假設(shè)1/4拍為1delay,則1拍應(yīng)為4delay,以此類推。所以只要求得1/4拍的delay時間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時間設(shè)定。表3.3.3 1/4和1/8節(jié)拍的時間設(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。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22歌曲播放的設(shè)計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時器0,使之定時操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4
27、位,得到延時時間,接著調(diào)用軟件延時。表4.4 簡譜對應(yīng)的簡譜碼、t值、節(jié)拍數(shù)簡譜發(fā)音簡譜碼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è)計思路說明(1)鍵盤掃描程序:檢測
28、是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢測 (2)功能轉(zhuǎn)移程序:對檢測到得按鍵值進行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們設(shè)計的功能程序有兩種,即音色調(diào)節(jié)功能和自動播放樂曲功能(3)琴鍵處理程序:根據(jù)檢測到得按鍵值,查詢音律表,給計時器賦值,使發(fā)出相應(yīng)頻率的聲音(4)自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下程序總流程圖開始鍵盤掃描程序t0初始化并開中斷允許t0中斷有鍵按下否 否延時
29、去抖動識別按鍵功能 是是否彈奏鍵播放鍵 否 是取相應(yīng)的音符碼裝入t0根據(jù)按鍵功能裝入相應(yīng)音符值到t0啟動t0啟動t0按鍵釋放成功否按鍵釋放成功否停止t0工作停止t0工作3.4.1軟件各功能模塊的流程圖設(shè)計及思路說明彈奏程序流程圖開始開中斷并允許中斷設(shè)定定時器工作方式取鍵值根據(jù)鍵值查音律表給定時器t0賦值開始計時進入中斷fm-p3.7.退出中斷延時返回鍵盤掃描程序自動播放歌曲程序流程圖開始開中斷,設(shè)定定時器t0工作模式取簡譜碼取該音符的節(jié)拍碼count2=0stop y n查音律表,給定時器賦值返回鍵盤掃描 開始計時 進入中斷fm3.7退出中斷延時4.安裝與調(diào)試4.1 檢查硬件連接在protue
30、s檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計正確。4.2 檢查軟件系統(tǒng)1根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。2將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成hex文件裝載到單片機中,對硬件進行仿真。4.2.1總體運行圖4.3調(diào)試中遇到的問題1.電子琴實現(xiàn),音樂盒不能進行音樂播放。經(jīng)過程序不斷修改后??蓪㈦娮忧?,音樂盒兩種不同的音律在同個定時器t0里實現(xiàn)。5.結(jié)論設(shè)計簡單原理介紹一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的
31、頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器t0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。在這個程序中,彈奏音樂的程序是用定時/計數(shù)器t0來完成的,播放音樂程序則也是是用定時/計數(shù)器t0來完成的。6.設(shè)計儀器、設(shè)備和材料清單主要儀器設(shè)備:個人計算機和相關(guān)的軟件主要元器件: 獨立按鍵18個單片機芯片at80c51一片12mhz晶振一個單個共陽數(shù)碼管不同阻值電阻數(shù)個usb電源插口一個喇叭一個10uf、30pf電容數(shù)個電路板一塊電烙鐵一個等7. 收獲、體會和建議這次設(shè)
32、計從軟件方面來講不是很難,程序相對長一點,但都是書本上所學(xué)的知識,主要是中端及其服務(wù)程序的編寫。在protues上仿真,則起到很好的效果,因為元器件都是理想狀態(tài)的,但做出實物來卻不是那么簡單啦。經(jīng)過多次調(diào)試、修改才得以出結(jié)果。將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。同時可以播放和切換4首歌曲,但是也有不足之處的,聲音雜音時而有點大,不穩(wěn)定。經(jīng)過本次課程設(shè)計,我們比較好的把理論知識與實踐相結(jié)合,而我們在也本次設(shè)計中收獲不少。設(shè)計過程中,首先,對于c語言多了一層了解,其次,還有硬件的接線,還有8051芯片的引腳方面,都讓我們收獲不少。加強了自身的動手能力。當(dāng)然在這次寶貴的畢業(yè)設(shè)計活動
33、中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知問題以及對知識的深化認(rèn)識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個最終目的下,隨著對單片機這門學(xué)科的認(rèn)識加深,到達了拓展的程度,我想這個目的將在不遠(yuǎn)的時期內(nèi)被實現(xiàn)。 總之,這次設(shè)計從軟件編寫、調(diào)試到軟硬件聯(lián)機調(diào)試,我傾注了大量的時間和心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯誤而郁悶苦惱過,也曾經(jīng)為某一功能不能實現(xiàn)而猶豫彷徨過,但最終我成功了。我不僅品味到了結(jié)果的喜
34、悅,更明白了過程的彌足珍貴。8.參考文獻1周美娟 肖來勝 單片機原理及系統(tǒng)設(shè)計清華大學(xué)出版社2 謝自美.電子線路設(shè)計實驗測試華中理工大學(xué)出版社,199210附錄設(shè)計源程序#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; /點亮一個數(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; /個音符對應(yīng)的延時uchar keyno;/定義按鍵得到的初值void delay_ms(uchar x) /延時子函數(shù)
36、 uchar i; while(x-) for(i=0;i4)0x0f; /按鍵后11110000將變成xxxx0000,x中1個為0,3個仍為1,將高四位移至低四位,并將其中唯一的0 變成1,其余為0/對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ù)碼管輸出 /-簡譜-/編程規(guī)則:字節(jié)高位是簡譜,低位是持續(xù)時間,/代表多少個十六分音符/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)志; /-簡譜音調(diào)對應(yīng)的定時器初值-/適合11.0592m的晶振uchar code cuzh
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)審和管理評審培訓(xùn)課件
- 手球指紋課件教學(xué)課件
- 營養(yǎng)門診課件教學(xué)課件
- 第三章第一節(jié)第二課時鐵鹽和亞鐵鹽高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 護理學(xué)科建設(shè)競聘
- 2.3.2氣體摩爾體積 課件 高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 新食品安全責(zé)任制度
- 沉與浮科學(xué)教案反思
- 化學(xué)反應(yīng)速率說課稿
- 好玩的沙子說課稿
- 2024年大學(xué)生法律知識競賽題庫及答案(共100題)
- 消費合伙人模式協(xié)議書(2篇)
- 湖北省武漢市洪山區(qū)2023-2024學(xué)年八年級上學(xué)期期中英語試題(無答案)
- 光伏項目施工總進度計劃表(含三級)
- 醫(yī)院培訓(xùn)課件:《健康教育 知-信-行》
- 《Python分支結(jié)構(gòu)》教學(xué)設(shè)計
- 民警三個規(guī)定自查自糾報告6篇范文
- 成立紀(jì)檢監(jiān)察領(lǐng)導(dǎo)小組3篇
- 除數(shù)是兩位數(shù)的除法口算和估算自主學(xué)習(xí)單
- 各種接線端子規(guī)格尺寸檢驗標(biāo)準(zhǔn)
- 全國不明原因肺炎病例監(jiān)測、排查和管理方案
評論
0/150
提交評論