基于STC89C52的數(shù)字式音樂盒設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
基于STC89C52的數(shù)字式音樂盒設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁
基于STC89C52的數(shù)字式音樂盒設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁
基于STC89C52的數(shù)字式音樂盒設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁
基于STC89C52的數(shù)字式音樂盒設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院 畢業(yè)論文畢業(yè)論文 基于 stc89c52 的數(shù)字式音樂盒設(shè)計(jì) 姓姓 名:名: xxxxxx 指導(dǎo)教師:指導(dǎo)教師: xxxxxx 專專 業(yè):業(yè): 應(yīng)用電子技術(shù)應(yīng)用電子技術(shù) 班班 級(jí):級(jí): xxxxxx 20112011 年年 1010 月月 2020 日日 目 錄 前前 言言.2 2 1.1.系統(tǒng)基本設(shè)計(jì)思路系統(tǒng)基本設(shè)計(jì)思路.3 3 1.1 課題意義 .3 1.2 設(shè)計(jì)方案 .3 1.3 研究內(nèi)容 .3 2.2.單元電路方案論證單元電路方案論證.3 3 2.1 控制器模塊 .3 2.2 顯示模塊 .4 2.3 最終方案 .4 3.3.系統(tǒng)總體方案介紹

2、系統(tǒng)總體方案介紹.4 4 3.1 系統(tǒng)硬件組成圖 .4 3.2 最小系統(tǒng)設(shè)計(jì) .5 3.2.1 時(shí)鐘電路 .5 3.2.2 復(fù)位電路 .5 3.3 主控機(jī)模塊 .6 3.4 音樂機(jī)模塊 .7 3.5 按鍵模塊 .7 4.4.節(jié)拍的確定節(jié)拍的確定.7 7 結(jié)結(jié) 論論.9 9 附錄:附錄:.1212 主控機(jī)程序.12 音樂機(jī)程序.16 黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院機(jī)電工程系畢業(yè)論文 1 基于 stc89c52 數(shù)字式音樂盒的設(shè)計(jì) 摘摘 要要:本設(shè)計(jì)是以 stc89c51 芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來實(shí)現(xiàn)音樂演 奏控制器的硬件電路,通過軟件程序來控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽的音樂

3、。 用戶可以按照自己的喜好選擇音樂并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對于不同型號(hào) 的單片機(jī)只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實(shí)際使 用價(jià)值,為廣大的單片機(jī)和音樂愛好者提供了很好的借鑒。 關(guān)鍵詞關(guān)鍵詞:單片機(jī),數(shù)碼管,機(jī)間通訊 2 前前 言言 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é)奏也越來越快。 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著 cmos 化、低功耗、小體 積、大容量、高性能

4、、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。單片機(jī)應(yīng)用的重要意義還在 于它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí) 現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也 稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難 找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通 訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能 ic 卡,民用豪華 轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等, 這些都離不開單片機(jī)。

5、隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,人類所接觸的信息也在不斷增加并且日益復(fù)雜。面對 浩如煙海的信息,人們已經(jīng)能夠利用計(jì)算機(jī)等工具高效準(zhǔn)確地對之進(jìn)行處理,但要想將處理完 的信息及時(shí),清晰地傳遞給別人,還必須通過尋求更加卓越的顯示技術(shù)來實(shí)現(xiàn)。單片機(jī)技術(shù)與 液晶顯示技術(shù)的結(jié)合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。 隨著人類社會(huì)的發(fā)展,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂 盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂盒多是機(jī)械型的,體積笨 重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量生產(chǎn)。本文設(shè)計(jì)的音樂盒是以單片機(jī)為核心元件的電子式音樂盒, 體積小,重量輕,能演奏和旋音樂,功能多

6、,外觀效果多彩,使用方便,并具有一定的商業(yè)價(jià) 值。 3 1.系統(tǒng)基本設(shè)計(jì)思路 1.1 課題意義 音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會(huì)的鐘塔報(bào)時(shí),而將 大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘” 。音樂盒有著 300 多年的發(fā)展歷史, 是人類文明發(fā)展的歷史見證。 傳統(tǒng)的音樂盒多是機(jī)械音樂盒,其工作原理是通過齒輪帶動(dòng)一個(gè)帶有鐵釘?shù)蔫F桶轉(zhuǎn)動(dòng), 鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂盒體積比較大, 比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā) 音跑調(diào)。另外,機(jī)械音樂盒放音時(shí)為了讓音色穩(wěn)定,必須放平不能動(dòng)搖,而且價(jià)

7、格昂貴,不 能實(shí)現(xiàn)大批量生產(chǎn)。 本文設(shè)計(jì)的音樂盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒 相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動(dòng)力來源是電池,制作工藝簡 單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子式音樂盒,控制功能強(qiáng)大, 可根據(jù)需要選歌,使用方便。根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存儲(chǔ)歌曲。另外,可 以設(shè)計(jì)彩燈外觀效果,使音樂盒的功能更加豐富。 1.2 設(shè)計(jì)方案 設(shè)計(jì)一個(gè)單片機(jī)的音樂盒,利用按鍵切換演奏出不同的樂曲。揚(yáng)聲器發(fā)出樂曲,與之 相對應(yīng)的 led 亮起。使用五個(gè)按鍵,兩個(gè)用來切換歌曲,兩個(gè)切換八路 led 的變化花樣。 一個(gè)用來啟動(dòng)和停止。

8、 1.3 研究內(nèi)容 (1)電路有兩種工作模式:演奏音樂模式和花樣燈模式。演奏音樂模式:演奏完整的一 首的歌曲,八路 led 隨著音樂變化?;訜裟J剑喊寺?led 變化出各種花樣,蜂鳴器隨著發(fā)出 “嘀嘀”聲 (2)按下按鍵 1 進(jìn)入演奏音樂模式,再按切換歌曲,共兩首歌曲。 (3)按下按鍵 2 進(jìn)入花樣燈模式,再按切換 led 花樣,共三種花樣。此電路的程序只占 用了 1k 左右,可編制更多的音樂和 led 花樣,使系統(tǒng)的功能更加俱全。 2.單元電路方案論證 根據(jù)設(shè)計(jì)要求,本系統(tǒng)主要由控制器模塊、顯示模塊構(gòu)成。為較好的實(shí)現(xiàn)各模塊的功 能,我們分別設(shè)計(jì)了幾種方案并分別進(jìn)行了論證。 2.1控制器模塊

9、 方案1:采用51系列作為系統(tǒng)控制器 單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏 輯控制。由于其功耗低、體積較小、技術(shù)成熟和成本低等優(yōu)點(diǎn),在各個(gè)領(lǐng)域應(yīng)用廣泛。而 且抗干擾性能好。 方案2:采用凌陽系列單片機(jī)為系統(tǒng)的控制器 凌陽系列單片機(jī)可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,模塊大,密度高,它將所有器件集成 在一塊芯片上,減少了體積,提高了穩(wěn)定性。凌陽系列單片機(jī)提高了系統(tǒng)的處理速度,適 4 合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。 因51單片機(jī)價(jià)格比凌陽系列低得多,且本設(shè)計(jì)不需要很高的處理速度,從經(jīng)濟(jì)和方便 使用角度考慮,本設(shè)計(jì)選擇了方案1。 2.2 顯示模塊 方案1:采用led數(shù)

10、碼管 采用控制用單片機(jī),顯示用led數(shù)碼管這種方案。雖然顯示的內(nèi)容有限,但是也可以顯 示數(shù)字和幾個(gè)英文字母,在這個(gè)設(shè)計(jì)中已經(jīng)足夠了,并且價(jià)格比液晶字符式要低的多,為 了控制設(shè)計(jì)制作的成本,在此設(shè)計(jì)中我們選用led數(shù)碼管顯示。 方案2:采用液晶字符顯示器 控制用單片機(jī),顯示用液晶字符式,可以用軟件達(dá)到很好的控制,硬件不復(fù)雜,液晶 字符顯示器可以顯示很豐富的內(nèi)容,但是液晶字符式價(jià)格昂貴,在本設(shè)計(jì)中不需要用到復(fù) 雜的顯示內(nèi)容,因此我們放棄了此方案。 從濟(jì)濟(jì)的角度考慮,我們選擇了方案1。 2.3 最終方案 經(jīng)過反復(fù)論證,最終確定了如下方案: 1.主控制器:選用兩片 51 內(nèi)核的單片機(jī)作為主控制器 主控

11、機(jī):負(fù)責(zé)顯示狀態(tài),檢測按鍵以及向下位機(jī)傳輸數(shù)據(jù) 音樂機(jī):在接受到上位機(jī)的引號(hào)后產(chǎn)生一定頻率方波從而發(fā)聲 2.外設(shè)裝置:這部分是由按鍵、數(shù)碼管、led、揚(yáng)聲器等組成 3.系統(tǒng)總體方案介紹 3.1 系統(tǒng)硬件組成圖 ea/vp 31 x1 19 x2 18 reset 9 rd 17 wr 16 int0 12 int1 13 t0 14 t1 15 p10/t 1 p11/t 2 p12 3 p13 4 p14 5 p15 6 p16 7 p17 8 p00 39 p01 38 p02 37 p03 36 p04 35 p05 34 p06 33 p07 32 p20 21 p21 22 p22

12、23 p23 24 p24 25 p25 26 p26 27 p27 28 psen 29 ale /p 30 txd 11 rxd 10 gnd 20 vcc 40 一一一 89c52rc ea/vp 31 x1 19 x2 18 reset 9 rd 17 wr 16 int0 12 int1 13 t0 14 t1 15 p10/t 1 p11/t 2 p12 3 p13 4 p14 5 p15 6 p16 7 p17 8 p00 39 p01 38 p02 37 p03 36 p04 35 p05 34 p06 33 p07 32 p20 21 p21 22 p22 23 p23 24

13、 p24 25 p25 26 p26 27 p27 28 psen 29 ale /p 30 txd 11 rxd 10 gnd 20 vcc 40 一一一 89c52rc 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 10k一一 p00 p01 p02 p03 p04 p05 p06 p10 p11 p12 p13 p14 p15 p16 p17 p30 p31 p32 p33 p34 p35 p36 p37 p07 p27 p26 p25 p24 p23 p21 p20 p22

14、 10uf r1 10k s1 一一一一 一一+ 一一 一一- 一一一 一一一 vcc 10uf r5 10k s1 一一一一 vcc 30p 30p 11.0592m hz 30p 30p 11.0592m hz vcc vcc 1 2 3 p07 p06 p05 bee p p33 p34 p35 p37 p36 in+ 3 in- 2 gnd 4 v out 5 gain 1 gain 8 bypa ss 7 vcc 6 386一一 lm 386 r2 470 r3 10k bee p 10uf 47uf 104 473 r4 10 vcc + - bee p r6 200 r7 200

15、 r8 200 r9 200 r10 200 r11 200 r12 200 r13 200 p25p24 p22 p23 p20p21 p27 p26 vcc 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 1h 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 4h 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 2h 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c

16、 g d e dp 3h 1 2 3 4 5 6 7 8 p17 p16 p15 p14 p13 p12 p11 p10 1 2 3 4 p03 p02 p01 p00 圖1 設(shè)計(jì)原理圖 5 3.2 最小系統(tǒng)設(shè)計(jì) 最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時(shí)鐘、復(fù)位等部件,能使單片機(jī)始終處 于正常的運(yùn)行狀態(tài)。電源、時(shí)鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作 為應(yīng)用系統(tǒng)的核心部分,通過對其進(jìn)行存儲(chǔ)器擴(kuò)展、a/d擴(kuò)展等,使單片機(jī)完成較復(fù)雜的功 能。 89c52是片內(nèi)有rom/eprom的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡單可靠。用89c52 單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上

17、時(shí)鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖2所示, 由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。 圖2 單片機(jī)最小系統(tǒng)原理框圖 3.2.1 時(shí)鐘電路 89c52 單片機(jī)的時(shí)鐘信號(hào)通常有兩種方式產(chǎn)生:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方 式。內(nèi)部時(shí)鐘方式如圖 3 所示。在 89s51 單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的 xtal1(18)和 xtal2(19)引腳外接石英晶體(簡稱晶振) ,就構(gòu)成了自激振蕩器并在單片 機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。圖中電容 c1 和 c2 的作用是穩(wěn)定頻率和快速起振,電容值在 530pf,典型值為 30pf。晶振 cys 的振蕩頻率范圍在 1.212mhz 間選擇

18、,典型值為 12mhz 和 6mhz。 y1 11.0592mhz c2 30pf c3 30pf 18 19 圖3 89c51內(nèi)部時(shí)鐘電路 3.2.2 復(fù)位電路 當(dāng)在 89c52 單片機(jī)的 rst 引腳引入高電平并保持 2 個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí) 行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)) 。 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。 最簡單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充放電來實(shí)現(xiàn) 的。只要 vcc 的上升時(shí)間不超過 1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。 除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)

19、位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過 rst(9)端與電源 vcc 接通而實(shí)現(xiàn)的。 按鍵手動(dòng)復(fù)位電路見圖 4。時(shí)鐘頻率用 11.0592mhz 時(shí) c 取 10uf,r 取 10k。 時(shí)鐘電路 復(fù)位電路 51 系列單片機(jī) i/ o 接 口 6 r1 10k c1 10uf s4vcc 9 圖4 89c52 復(fù)位電路 3.3 主控機(jī)模塊 作為此次設(shè)計(jì)的核心硬件,主控機(jī)的作用幾乎囊括了除音樂播放外的其他所有功能。 功能一:控制顯示模塊 功能二:控制按鍵模塊 功能三:控制炫彩模塊 功能四:向下位機(jī)傳 ea/vp 31 x1 19 x2 18 reset 9 rd 17 wr 16 int0

20、 12 int1 13 t0 14 t1 15 p10/t 1 p11/t 2 p12 3 p13 4 p14 5 p15 6 p16 7 p17 8 p00 39 p01 38 p02 37 p03 36 p04 35 p05 34 p06 33 p07 32 p20 21 p21 22 p22 23 p23 24 p24 25 p25 26 p26 27 p27 28 psen 29 ale /p 30 txd 11 rxd 10 gnd 20 vcc 40 一一一 89c52rc 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3

21、4 5 6 7 8 1 2 3 4 5 6 7 8 10k一一 p00 p01 p02 p03 p04 p05 p06 p10 p11 p12 p13 p14 p15 p16 p17 p30 p31 p32 p33 p34 p35 p36 p37 p07 p27 p26 p25 p24 p23 p21 p20 p22 10uf r1 10k s1 一一一一 vcc 30p 30p 11.0592mhz vcc vcc 圖 5 主控機(jī)模塊 3.4 顯示模塊 顯示模塊主要包括數(shù)碼管,單片機(jī),led 等其他元件。 該模塊的主要功能: (1)播放開機(jī)動(dòng)畫 (2)顯示點(diǎn)歌的曲目 (3)顯示炫彩小燈的閃爍

22、速度 7 r6 200 r7 200 r8 200 r9 200 r10 200 r11 200 r12 200 r13 200 p25p24 p22 p23 p20p21 p27 vcc 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 1h 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 4h 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 gnd a bf c g d e dp 2h 1 2 3 4 5 6 7 a b c d e f g 8 d

23、p 9 gnd a bf c g d e dp 3h 1 2 3 4 5 6 7 8 p17 p16 p15 p14 p13 p12 p11 p10 1 2 3 4 p03 p02 p01 p00 圖 6 顯示模塊 3.4 音樂機(jī)模塊 該模塊只用于讀取上位機(jī)的信號(hào)后播放音樂。 3.5 按鍵模塊 (1)按鍵是輸入信號(hào)的主要工具。 (2)該模塊主要由五個(gè)獨(dú)立按鍵組成: 按鍵 1:加速度 按鍵 2:啟動(dòng)循環(huán) 按鍵 3:減速度 按鍵 4:下一曲 按鍵 5:上一曲 4.節(jié)拍的確定 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說 不能象電子琴那樣能奏出多種音色的聲音。因此單

24、片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是 “音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長的時(shí)間。在音樂中 所謂“音調(diào)”,其實(shí)就是我們常說的“音高”。在音樂中常把中央 c 上方的 a 音定為標(biāo)準(zhǔn)音高,其 頻率 f=440hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即 f2=2f1 時(shí),則稱 f2 比 f1 高一個(gè)倍頻程, 在音樂中 1(do)與,2(來)與正好相差一個(gè)倍頻程,在音樂學(xué)中稱它相差一個(gè)八度音。 在一個(gè)八度音內(nèi),有 12 個(gè)半音。以 1i 八音區(qū)為例,12 個(gè)半音是:11、12、2 2、23、34、44,45、5 一5、56、66、67、7i。這 12 個(gè)音 階的分

25、度基本上是以對數(shù)關(guān)系來劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其 基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。知道了一個(gè)音符 的頻后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說來,常采用的方法就是通過單片機(jī)的定 時(shí)器定時(shí)中斷,將單片機(jī)上對應(yīng)蜂鳴器的 i/o 口來回取反,或者說來回清零,置位,從而讓蜂鳴 器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí) 現(xiàn)。那么怎樣確定一個(gè)頻率所對應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高 a 為例: a 的頻率 f = 440 hz,其對應(yīng)的周期為: . 1 . 2 8 t = 1/ f = 1/440

26、 =2272s t t 由上圖可知,單片機(jī)上對應(yīng)蜂鳴器的 i/o 口來回取反的時(shí)間應(yīng)為: t = t/2 = 2272/2 = 1136s 這個(gè)時(shí)間 t 也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂時(shí)定時(shí)器為工 作方式 1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為 f0, 則定時(shí)器的予置初值由下式來確定: t = 12 *(tall thl)/ f0,式中 tall = 216 = 65536,thl 為定時(shí)器待確定的計(jì)數(shù)初值。因此 定時(shí)器的高低計(jì)數(shù)器的初值為: th = thl / 256 = (tallt* f0/12) / 256tl = thl % 256

27、= (tallt* f0/12) %256 將 t=1136s 代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致) ,即可求出標(biāo)準(zhǔn)音 高 a 在單片機(jī)晶振頻率 f0=12mhz,定時(shí)器在工作方式 1 下的定時(shí)器高低計(jì)數(shù)器的予置初值為 : th440hz = (65536 1136 * 12/12) /256 = fbh tl440hz = (65536 1136 * 12/12)%256 = 90h 根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 說明* 曲譜存貯格式 unsigned char code musicname音高,音長,音高,音長., 0,0;末尾: 0

28、,0 表示結(jié)束(important) 音高由三位數(shù)字組成: 個(gè)位是表示 17 這七個(gè)音符 十位是表示音符所在的音區(qū):1-低音,2-中音,3-高音; 百位表示這個(gè)音符是否要升半音: 0-不升,1-升半音。 音長最多由三位數(shù)字組成: 個(gè)位表示音符的時(shí)值,其對應(yīng)關(guān)系是: |數(shù)值(n): |0 |1 |2 |3 | 4 | 5 | 6 |幾分音符: |1 |2 |4 |8 |16 |32 |64 音符=2n 十位表示音符的演奏效果(0-2): 0-普通,1-連音,2-頓音 百位是符點(diǎn)位: 0-無符點(diǎn),1-有符點(diǎn) 調(diào)用演奏子程序的格式 play(樂曲名,調(diào)號(hào),升降八度,演奏速度); 9 |樂曲名 : 要

29、播放的樂曲指針,結(jié)尾以(0,0)結(jié)束; |調(diào)號(hào)(0-11) :是指樂曲升多少個(gè)半音演奏; |升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度; |演奏速度(1-12000):值越大速度越快; 10 結(jié) 論 單片機(jī)的設(shè)計(jì)至今為止已經(jīng)進(jìn)入了令人鼓舞的階段,在進(jìn)行了長達(dá)兩個(gè)多月的時(shí)間的摸索 與實(shí)驗(yàn),使我不僅僅是對于單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使我對于一項(xiàng)設(shè)計(jì)研 究的制作過程所需要的詳細(xì)步驟和具體的實(shí)現(xiàn)方法的力度的掌握。 當(dāng)然在這次寶貴的畢業(yè)設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對于我們最大的收獲,而且還增強(qiáng)了自身對 未知問題以及對知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語來概括這次難忘的活動(dòng)

30、我覺得再 合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時(shí)候就懷著將作品 制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下, 隨著對單片機(jī)這門學(xué)科的認(rèn)識(shí)加深,到達(dá)了拓展的程度,我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí) 現(xiàn)。 總之,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血。真是 曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯(cuò)誤而郁悶苦惱過,也曾經(jīng)為某一功能不能 實(shí)現(xiàn)而猶豫彷徨過,但最終我成功了。 我不僅品味到了結(jié)果的喜悅,更明白了過程的彌足珍貴。 11 參考文獻(xiàn) 1 李建忠.單片機(jī)原理及應(yīng)用m,西安電子科技大學(xué)出版社,2008

31、.2. 2 黃智偉.全國大學(xué)生電子設(shè)計(jì)競賽系統(tǒng)設(shè)計(jì)m,北京:北京航空航天大學(xué)出版社,2006.6. 3 黃智偉.凌陽單片機(jī)課程設(shè)計(jì)指導(dǎo)m,北京:北京航空航天大學(xué)出版社,2006.11. 4 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)m,北京:北京航空航天大學(xué)出版社,2001.7. 5 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用m,西安:西安電子科技大學(xué), 2000. 6 候伯亨.vhdl 硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)m, 西安:西安電子科技大學(xué)出版社, 1999. 7 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)m, 武漢:華中理工大學(xué)出版社,1999. 8 譚浩強(qiáng).c 語言程序設(shè)計(jì)(第二版)m,

32、北京:清華大學(xué)出版社,1991. 9 陳小忠,黃寧. 單片機(jī)接口技術(shù)實(shí)用子程序m,北京:北京人民郵電出版社, 2005. 10 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設(shè)計(jì)m,西安電子科技大學(xué)出版社,2005.9. 11 賈立新,王涌.電子系統(tǒng)設(shè)計(jì)與實(shí)踐m,北京:清華大學(xué)出版社,2007. 12 羅亞非.凌陽 16 位單片機(jī)應(yīng)用基礎(chǔ)m,北京:北京航空航天大學(xué)出版社,2003. 13 雷思孝.凌陽單片機(jī)原理及實(shí)用技術(shù)m,西安電子科技大學(xué),2004. 12 致 謝 這次畢業(yè)設(shè)計(jì)得到了很多人的幫助,其中 xxx 老師對我的關(guān)心和支持尤為重要,每次遇到 難題,我首先想到的就是向 xxx 老師尋求幫助。另外

33、,他嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使我的論文即使在謹(jǐn)小細(xì) 微處也給予了糾正,讓我的論文無論是結(jié)構(gòu)還是內(nèi)容變得更加公整、緊湊,感謝 xxx 老師對我 的悉心指導(dǎo)。 感謝校方給予我這樣一次機(jī)會(huì),能夠獨(dú)立地完成這樣一個(gè)設(shè)計(jì),作為檢驗(yàn)這些年來學(xué)習(xí)的 成果,在這個(gè)過程當(dāng)中,學(xué)校給予我們各種方便,使我們在即將離校的最后一段時(shí)間里,能夠更 多學(xué)習(xí)一些實(shí)踐應(yīng)用知識(shí),增強(qiáng)了我們實(shí)踐操作和動(dòng)手應(yīng)用能力,提高了獨(dú)立思考的能力。再 一次對我的母校表示感謝。 感謝在整個(gè)畢業(yè)設(shè)計(jì)期間和我密切合作的同學(xué),和曾經(jīng)在各個(gè)方面給予過我?guī)椭幕锇閭儯?正是因?yàn)橛辛四銈兊膸椭?,才讓我不僅學(xué)到了本次課題所涉及的新知識(shí),更讓我感覺到了知識(shí) 以外的東西,那就

34、是團(tuán)結(jié)的力量。 此外特別感謝桂林電子工業(yè)學(xué)院提供的51單片機(jī)音樂編碼軟件! 13 附錄: 主控機(jī)程序 #include #include unsigned int huanqu,d,f,f1,f2,hq1,hq2,s,c,l,p; sbit kaishi=p36; sbit up=p33; sbit down=p34; sbit ledz=p37; sbit ledf=p35; sbit h1=p00; sbit h2=p01; sbit h3=p02; sbit h4=p03; sbit wu=p05; sbit liu=p06; sbit qi=p07; unsignedcharcodew

35、ei=0 xfe,0 xfe,0 xfd,0 xfb,0 xf7,0 xf7,0 xf7,0 xfb,0 xfd,0 xfe,0 xfe,0 xfe,0 xfd,0 xfb,0 xf7,0 xf7; unsignedcharcodeduan=0 x20,0 x01,0 x01,0 x01,0 x01,0 x02,0 x40,0 x40,0 x40,0 x40,0 x10,0 x08,0 x08,0 x0 8,0 x08,0 x04; unsignedcharcodetab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;

36、unsignedcharcodetab0=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef; void yanshi(unsigned int q) unsigned int i,j; for(i=q;i0;i-) for(j=110;j0;j-); void job() hq1=huanqu/10; hq2=huanqu%10; f1=d/10; f2=d%10; h1=0; h2=1; h3=1; h4=1; p1=tabhq1; yanshi(5); h1=1; h2=0; h3=1; h4=1; 14 p1=tab0

37、hq2; yanshi(5); h1=1; h2=1; h3=0; h4=1; p1=tabf1; yanshi(5); h1=1; h2=1; h3=1; h4=0; p1=tabf2; yanshi(5); void ledsd(unsigned int d) unsigned int x; for(x=d;x0;x-) job(); void kaiji() unsigned char a; for(a=0;a3) huanqu=1; while(!up) job(); if(down=0) yanshi(5); if(down=0) huanqu-; if(huanqu=-1) hua

38、nqu=3; while(!down) job(); if(ledz=0) yanshi(5); if(ledz=0) c=1; d=d+1; if(d10) d=0; while(!ledz) job(); 16 if(ledf=0) yanshi(5); if(ledf=0) c=1; d=d-1; if(d0) d=10; while(!ledf) job(); void chuansong() if(huanqu=1) liu=0; qi=0; if(huanqu=2) liu=0; qi=1; if(huanqu=3) liu=1; qi=0; if(huanqu=4) huanqu

39、=1; main() f=0 xfe; d=10; s=0; huanqu=0; kaiji(); 17 while(1) anjian(); job(); chuansong(); if(c=0) led(); 音樂機(jī)程序 #include #include soundplay.h unsigned char qu,kaishi; sbit ling=p10; sbit yi=p11; sbit er=p12; void yanshi(unsigned int q)/系統(tǒng)延時(shí) unsigned int i,j; for(i=q;i0;i-) for(j=110;j0;j-); /祝你平安 u

40、nsigned char code music_ping= 0 x17,0 x03, 0 x19,0 x03, 0 x19,0 x0e, 0 x17,0 x03, 0 x19,0 x0e, 0 x19,0 x01, 0 x17,0 x03, 0 x15,0 x03, 0 x15,0 x0d, 0 x10,0 x04, 0 x15,0 x0e, 0 x15,0 x01, 0 x17,0 x03, 0 x19,0 x03, 0 x19,0 x0e, 0 x1a,0 x67, 0 x19,0 x01, 0 x16,0 x03, 0 x17,0 x03, 0 x19,0 x03, 0 x16,0 x0

41、e, 0 x17,0 x04, 0 x16,0 x01, 0 x17,0 x03, 0 x15,0 x03, 0 x15,0 x0d, 0 x10,0 x04, 0 x17,0 x04, 0 x17,0 x66, 0 x0f,0 x02, 0 x16,0 x03, 0 x15,0 x04, 0 x10,0 x04, 0 x17,0 x03, 0 x16,0 x0e, 0 x16,0 x02, 0 x0f,0 x04, 0 x0f,0 x04, 0 x0f,0 x04, 0 x16,0 x0e, 0 x17,0 x67, 0 x15,0 x15, 0 x1f,0 x03, 0 x1f,0 x03

42、, 0 x17,0 x03, 0 x19,0 x0d, 0 x19,0 x66, 0 x17,0 x0e, 0 x16,0 x04, 0 x15,0 x03, 0 x15,0 x03, 0 x1a,0 x03, 0 x19,0 x0d, 0 x19,0 x01, 0 x1a,0 x03, 0 x1a,0 x03, 0 x1a,0 x03, 0 x15,0 x0d, 0 x15,0 x67, 0 x10,0 x04, 0 x15,0 x04, 0 x19,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x17,0 x03, 0 x17,0 x0d, 0 x16,0 x01,

43、 0 x1f,0 x03, 0 x1f,0 x03, 0 x17,0 x03, 0 x19,0 x0d, 0 x19,0 x66, 0 x17,0 x0e, 0 x16,0 x04, 0 x15,0 x03, 0 x15,0 x03, 0 x1a,0 x03, 0 x19,0 x0d, 0 x19,0 x01, 0 x17,0 x03, 0 x15,0 x04, 0 x15,0 x0e, 0 x15,0 x03, 0 x10,0 x03, 0 x17,0 x0e, 0 x16,0 x03, 0 x16,0 x04, 0 x0f,0 x04, 0 x0f,0 x04, 0 x19,0 x04,

44、0 x19,0 x04, 0 x16,0 x04, 0 x17,0 x67, 0 x15,0 x01, 0 x00,0 x00 ; /鈴兒響叮當(dāng) 18 unsigned char code music_dingdang= 0 x0f,0 x03, 0 x0f,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x15,0 x03, 0 x0f,0 x66, 0 x19,0 x04, 0 x19,0 x04, 0 x0f,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x15,0 x03, 0 x10,0 x66, 0 x10,0 x03, 0 x10,0

45、 x03, 0 x18,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x10,0 x66, 0 x10,0 x03, 0 x19,0 x03, 0 x19,0 x03, 0 x18,0 x03, 0 x16,0 x03, 0 x17,0 x0d, 0 x15,0 x03, 0 x0f,0 x03, 0 x0f,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x15,0 x03, 0 x0f,0 x66, 0 x0f,0 x03, 0 x0f,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x15,0 x03, 0 x10,0

46、x66, 0 x10,0 x03, 0 x10,0 x03, 0 x18,0 x03, 0 x17,0 x03, 0 x16,0 x03, 0 x19,0 x03, 0 x19,0 x03, 0 x19,0 x03, 0 x19,0 x03, 0 x1a,0 x03, 0 x19,0 x03, 0 x18,0 x03, 0 x16,0 x03, 0 x15,0 x66, 0 x17,0 x03, 0 x17,0 x03, 0 x17,0 x02, 0 x17,0 x03, 0 x17,0 x03, 0 x17,0 x02, 0 x17,0 x03, 0 x19,0 x03, 0 x15,0 x

47、03, 0 x16,0 x03, 0 x17,0 x00, 0 x18,0 x03, 0 x18,0 x03, 0 x18,0 x67, 0 x18,0 x04, 0 x18,0 x03, 0 x17,0 x03, 0 x17,0 x03, 0 x17,0 x04, 0 x17,0 x04, 0 x17,0 x03, 0 x16,0 x03, 0 x16,0 x03, 0 x15,0 x03, 0 x16,0 x03, 0 x19,0 x66, 0 x19,0 x03, 0 x19,0 x03, 0 x18,0 x03, 0 x16,0 x03, 0 x15,0 x02, 0 x00,0 x0

48、0 ; /讓我們蕩起雙槳 unsigned char code music_shuangjiang= 0 x15,0 x03, 0 x16,0 x03, 0 x17,0 x03, 0 x19,0 x02, 0 x1a,0 x16, 0 x10,0 x03, 0 x15,0 x03, 0 x16,0 x03, 0 x17,0 x02, 0 x19,0 x16, 0 x0d,0 x03, 0 x0f,0 x03, 0 x10,0 x03, 0 x15,0 x02, 0 x17,0 x02, 0 x16,0 x01, 0 x17,0 x04, 0 x16,0 x04, 0 x15,0 x03, 0 x11,0 x03, 0 x10,0 x02, 0 x10,0 x03, 0 x10,0 x03, 0 x10,0 x17, 0 x10,0 x17, 0 x10,0 x03, 0 x10,0 x03, 0 x15,0 x03, 0 x16,0 x03, 0 x17,0 x65, 0 x19,0 x04, 0 x19,0 x04, 0 x17,0 x03, 0 x15,0 x03, 0 x16,0 x02, 0 x10,0 x15, 0 x15,0 x03, 0

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論