版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、I 基于單片機(jī)的音樂(lè)盒設(shè)計(jì) 學(xué)生:XXX 指導(dǎo)老師:XXX 內(nèi)容摘要: 本設(shè)計(jì)是一個(gè)基于 AT89C51 系列單片機(jī)的音樂(lè)盒,依據(jù)單片機(jī)技術(shù)原理, 通過(guò)硬件電路制作以及軟件編譯,設(shè)計(jì)制作出一個(gè)多功能數(shù)字音樂(lè)盒。該音樂(lè)盒主要 由按鍵電路、復(fù)位電路、時(shí)鐘電路以及蜂鳴器組成。使用兩個(gè)按鍵控制音樂(lè)盒,一個(gè) 用來(lái)切換歌曲,另一個(gè)用來(lái)切換 8 路 LED 的變化花樣,本音樂(lè)盒共有兩首歌曲,花樣 燈花樣共計(jì) 3 種。播放歌曲時(shí),蜂鳴器發(fā)出某個(gè)音調(diào),與之對(duì)應(yīng)的 LED 亮起。本設(shè)計(jì) 利用 KEIL 編程軟件對(duì)音樂(lè)盒源程序進(jìn)行編程并調(diào)試,配合 PROTEUS 仿真軟件對(duì)硬件進(jìn) 行仿真調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。 關(guān)鍵
2、詞: 音樂(lè)盒 AT89C51 KEIL PROTEUS 音調(diào) II DesignDesign forfor AT89C51AT89C51 digitdigit musicmusic boxbox Abstract:Abstract: The digest this text has introduced the basic AT89C51 digit music box,According to AT89C51 principle,take it by hardware circuit and software compile to made a multifunction digit mus
3、ic box.this box main form button circuit rest circuit clock circuit and buzzer.Use two button to control it,the one use to change music ,and the other one made the LED change the kind of light.this box had two songs,and LED had three kind of light.then the music has playing,the buzzer will take amon
4、g of tone,meanwhile LED will give out light.the design on the basic of KEIL to compile and debugging this music box,at the same times match up PROTEUS to hardware going to simulation debugging,So save a lot of times. Keywords:Keywords: music box AT89C51 KEIL PROTEUS Tone III 目 錄 前言 .1 1 概述.2 1.1 課題意
5、義 .2 1.2 設(shè)計(jì)方案.2 1.3 研究?jī)?nèi)容.2 2 系統(tǒng)總體方案介紹 .3 2.1 系統(tǒng)組成框圖 .3 2.2 音樂(lè)盒的功能結(jié)構(gòu)圖 .3 2.3 主要設(shè)計(jì)軟件介紹 .4 2.3.1 PROTEUS 軟件簡(jiǎn)介 .4 2.3.2 KEIL 簡(jiǎn)介 .4 3 硬件設(shè)計(jì).5 3.1 總體設(shè)計(jì)框圖 .5 3.2 各部分硬件設(shè)計(jì)及其原理.5 3.2.1 AT89C51 簡(jiǎn)介 .5 3.2.2 LED 顯示電路設(shè)計(jì)與原理 .6 3.2.3 時(shí)鐘振蕩電路.6 3.3 硬件電路圖及功能 .7 4 軟件設(shè)計(jì).8 4.1 音調(diào)、節(jié)拍以及編碼的確定方法.8 4.1.1 音調(diào)的確定.9 4.1.2 節(jié)拍的確定.10
6、 4.1.3 編碼.11 4.2 軟件程序設(shè)計(jì) .12 4.2.1 程序流程圖及相應(yīng)代碼塊.12 4.2.2 程序源代碼(見(jiàn)附錄 A) .17 5 調(diào)試.17 IV 5.1 檢查硬件連接 .17 5.2 檢查軟件系統(tǒng) .18 5.3 測(cè)試結(jié)果 .18 5.3.1總體運(yùn)行圖.18 5.3.2花樣燈 3 種花樣圖.19 6 結(jié)束語(yǔ) .20 附錄 .21 參考文獻(xiàn) .30 1 1 基于單片機(jī)的數(shù)字音樂(lè)盒設(shè)計(jì) 前言 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)品更新
7、換代的節(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) 了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(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ù)處理,廣泛使用的各種智
8、能 IC 卡,民用豪華轎車的安全保障系統(tǒng), 錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不 開單片機(jī)。 隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,人類所接觸的信息也在不斷增加并且日益復(fù) 雜。面對(duì)浩如煙海的信息,人們已經(jīng)能夠利用計(jì)算機(jī)等工具高效準(zhǔn)確地對(duì)之進(jìn)行處理, 但要想將處理完的信息及時(shí),清晰地傳遞給別人,還必須通過(guò)尋求更加卓越的顯示技 術(shù)來(lái)實(shí)現(xiàn)。單片機(jī)技術(shù)與液晶顯示技術(shù)的結(jié)合,使信息傳輸交流向著智能可視化方向 迅速發(fā)展。 隨著人類社會(huì)的發(fā)展,人們對(duì)視覺(jué)、聽覺(jué)方面的享受提出了越來(lái)越高的要求。小 小的音樂(lè)盒可以給人們帶來(lái)美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂(lè)盒多是 機(jī)械型
9、的,體積笨重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量生產(chǎn)。本文設(shè)計(jì)的音樂(lè)盒是以單片機(jī) 為核心元件的電子式音樂(lè)盒,體積小,重量輕,能演奏和旋音樂(lè),功能多,外觀效果 多彩,使用方便,并具有一定的商業(yè)價(jià)值。 2 1 概述 本設(shè)計(jì)是以 AT89C51 芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來(lái)實(shí)現(xiàn)音樂(lè)演奏 控制器的硬件電路,通過(guò)軟件程序來(lái)控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽的 音樂(lè)。用戶可以按照自己的喜好選擇音樂(lè)并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。 對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的 通用性,很高的實(shí)際使用價(jià)值,為廣大的單片機(jī)和音樂(lè)愛(ài)好者提供了很好的借鑒。 1.1 課題
10、意義 音樂(lè)盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會(huì)的鐘塔報(bào)時(shí), 而將大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘” 。音樂(lè)盒有著 300 多年的 發(fā)展歷史,是人類文明發(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è)盒。與傳
11、統(tǒng)的機(jī)械式音 樂(lè)盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂(lè)。電子式音樂(lè)盒動(dòng)力來(lái)源是電池,制 作工藝簡(jiǎn)單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子式音樂(lè)盒,控 制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存 儲(chǔ)歌曲。另外,可以設(shè)計(jì)彩燈外觀效果,使音樂(lè)盒的功能更加豐富。 1.2 設(shè)計(jì)方案 設(shè)計(jì)一個(gè)基于 AT89C51 系列單片機(jī)的音樂(lè)盒,用按鍵切換演奏出不同樂(lè)曲。蜂鳴 器發(fā)出某個(gè)音調(diào),與之相對(duì)應(yīng) LED 亮起。使用兩個(gè)按鍵,一個(gè)用來(lái)切換歌曲,另一個(gè) 切換八路 LED 變化花樣。 1.3 研究?jī)?nèi)容 電路有兩種工作模式:演奏音樂(lè)模式和花樣燈模式。演奏音樂(lè)模式:演奏完
12、整的 一首的歌曲,八路 LED 隨著音樂(lè)變化。花樣燈模式:八路 LED 變化出各種花樣,蜂鳴 器隨著發(fā)出“嘀嘀”聲。按下按鍵 1 進(jìn)入演奏音樂(lè)模式,再按切換歌曲,共兩首歌曲。 按下按鍵 2 進(jìn)入花樣燈模式,再按切換 LED 花樣,共三種花樣。此電路的程序只占用了 3 1K 左右,可編制更多的音樂(lè)和 LED 花樣,使系統(tǒng)的功能更加強(qiáng)大。 2 系統(tǒng)總體方案介紹 2.1 系統(tǒng)組成框圖 音樂(lè)盒的系統(tǒng)結(jié)構(gòu)以 AT89C51 單片機(jī)位控制核心,加上 2 個(gè)按鍵、時(shí)鐘復(fù)位電路、 蜂鳴器、LED 模塊組成。單片機(jī)負(fù)責(zé)接收按鍵的輸入,根據(jù)輸入控制音樂(lè)播放曲目和音 樂(lè)花樣燈的顯示樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如
13、圖 2.1-1 所示。 圖 2.1-1 系統(tǒng)組成框圖 2.2 音樂(lè)盒的功能結(jié)構(gòu)圖 音樂(lè)盒的功能結(jié)構(gòu)如圖 2.2-1 所示。Key1 負(fù)責(zé)切換播放歌曲,播放歌曲共 2 首, 分別是揮著翅膀的女孩和寂寞沙洲冷。Key2 負(fù)責(zé)切換 LED 顯示花樣,顯示花樣共 3 種, 第一種順序顯示,第二種由兩邊向中間移動(dòng)然后向兩邊移動(dòng),第三種循環(huán)顯示。 4 圖 2.2-1 音樂(lè)盒功能結(jié)構(gòu)圖 2.3 主要設(shè)計(jì)軟件介紹 本設(shè)計(jì)利用 KEIL 編程軟件對(duì)音樂(lè)盒源程序進(jìn)行編程并調(diào)試,配合 PROTEUS 仿真軟 件對(duì)硬件進(jìn)行仿真調(diào)試,兩種軟件的簡(jiǎn)介如下: 2.3.1 PROTEUS 軟件簡(jiǎn)介 Proteus 軟件是英國(guó)
14、 Labcenter electronics 公司出版的 EDA 工具軟件(該軟件中 國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司) 。它不僅具有其它 EDA 工具軟件的仿真功能, 還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目 前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī) 開發(fā)應(yīng)用的科技工作者的青睞。Proteus 是世界上著名的 EDA 工具(仿真軟件),從原理 圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計(jì),真正實(shí)現(xiàn)了 從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB 設(shè)計(jì)軟件和虛擬模 型仿真軟件三合一的
15、設(shè)計(jì)平臺(tái),其處理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年即將增加 Cortex 和 DSP 系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面, 它也支持 IAR、Keil 和 MPLAB 等多種編譯器。 2.3.2 KEIL 簡(jiǎn)介 單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語(yǔ)言源程序要變 為 CPU 可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已 極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于 MCS-51 單片機(jī)的匯編
16、軟件有早期的 A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使 用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil 軟件是 5 目前最流行開發(fā) MCS-51 系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支 持 Keil 即可看出。Keil 提供了包括 C 編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng) 大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(uVision)將這些部 份組合在一起。運(yùn)行 Keil 軟件需要 Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以 上空閑的硬盤空間、WIN 98、NT、WIN2000、WINXP 等操作系統(tǒng)
17、。掌握這一軟件的使用 對(duì)于使用 51 系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必要的,如果你使用 C 語(yǔ)言編程,那么 Keil 幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可 能只支持該軟件) ,即使不使用 C 語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、 強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。Keil C51 生成的目標(biāo)代碼效率非常之高, 多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的 優(yōu)勢(shì)。 3 硬件設(shè)計(jì) 3.1 總體設(shè)計(jì)框圖 圖 3.1-1 總體設(shè)計(jì)框圖 3.2 各部分硬件設(shè)計(jì)及其原理 3.2.1 AT89C51 簡(jiǎn)介 AT89C51 是一種帶
18、 4K 字節(jié)閃存可編程可擦除只讀存儲(chǔ)器( FPEROMFlash 6 Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處 理器,俗稱單片機(jī)。 AT89C2051 是一種帶 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 是它的一種精
19、簡(jiǎn)版本。 AT89C51 單片機(jī)為很多嵌入式 控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖 3.2-1 所示。 圖 3.2-1 AT89C51 系列單片機(jī) 3.2.2 LED 顯示電路設(shè)計(jì)與原理 LED 顯示電路是由 8 個(gè) LED 發(fā)光二極管組成,連接方式為共陽(yáng)極,LED 接到單片機(jī) 的 P 1 口,若為低電平,可使 LED 亮起。發(fā)光二極管的亮、滅由內(nèi)部程序控制,8 個(gè) LED 發(fā)光二極管分別對(duì)應(yīng)不同的音階,所以 LED 會(huì)隨著音階的變化按規(guī)律亮、滅。 3.2.3 時(shí)鐘振蕩電路 AT89C5 輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一中 有一個(gè)用于構(gòu)成內(nèi)部
20、振蕩器高增益反相放大器,引腳 XTAL1 和 XTAL2 分別是該放大器 的輸入端和起構(gòu)成自然振蕩器。外接石英晶體及電容 C1、C2 接在放大器的反饋回路中 構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容 C1,C2 雖然沒(méi)有什么嚴(yán)格的要求,但電容容量大小會(huì) 輕微影響振蕩頻率的高低、振蕩器工作穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。振蕩 器電路圖如下: 7 圖 3.2.3-1 單片機(jī)內(nèi)部、外部振蕩電路 3.3 硬件電路圖及功能 總體硬件電路實(shí)現(xiàn)功能如下,如圖 3.3-1 所示,電路中用 P3.2、P3.3 控制按鍵。 P1.0P1.7 控制 LED。P2.3 控制蜂鳴器。電路為 12MHZ 晶振頻率工作,起振電路中
21、 C1、C2 均為 30PF。 8 圖 3.3-1 硬件電路圖 4 軟件設(shè)計(jì) 在本程序中設(shè)置了兩個(gè)標(biāo)志count1 和 count2,分別初始化為 1 和 0。按鍵 1 使得 count1 在 1 和 2 之間切換,按鍵 2 使得 count2 在 14 之間切換。程序檢測(cè) count1 的值,count1 等于 1 時(shí)播放第一首歌曲,等于 2 時(shí)播放第二首。另一方面根據(jù) count2 的值來(lái)切換 LED 的花樣。count1 和 count2 的值是互斥的,設(shè)置 count1 等于 1、2 時(shí),count2 同時(shí)設(shè)置為 0;設(shè)置 count2 等于 14 時(shí),count1 也同時(shí)設(shè)置為 0。
22、 9 4.1 音調(diào)、節(jié)拍以及編碼的確定方法 一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率, 也就是說(shuō)不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè) 概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 4.1.1 音調(diào)的確定 不同音高的樂(lè)音是用 C、D、E、F、G、A、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 這一組音的距
23、離分成 12 個(gè)等 份,每一個(gè)等份叫一個(gè)“半音” 。兩個(gè)音之間的距離有兩個(gè)“半音” ,就叫“全音” 。在 鋼琴等鍵盤樂(lè)器上,CD、DE、FG、GA、AB 兩音之間隔著一個(gè)黑鍵,他們之 間的距離就是全音;EF、BC 兩音之間沒(méi)有黑鍵相隔,它們之間的距離就是半音。 通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些在它們的左上角加上號(hào)或者 b 號(hào)的叫變化音。叫升記號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b 叫降記音,表示在 原來(lái)的基礎(chǔ)上降低半音。例如高音 DO 的頻率(1046Hz)剛好是中音 DO 的頻率 (523Hz)的一倍,中音 DO 的頻率(523Hz)剛好是低音 DO 頻率(266 H
24、z)的一倍; 同樣的,高音 RE 的頻率(1175Hz)剛好是中音 RE 的頻率(587Hz)的一倍,中音 RE 的頻率(587Hz)剛好是低音 RE 頻率(294 Hz)的一倍。 要產(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 腳上得到此頻率的脈沖。 利用 AT89C51 的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式 MODE1 下,改變計(jì)數(shù)值 TH0 及 TL0。 此外結(jié)束符和休止符可以分別用代碼 00H 和 FFH 來(lái)表示
25、,若查表結(jié)果為 00H,則表示曲 子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應(yīng)的停頓效果。例如頻率為 523Hz,其周期 T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí) 956us/1us=956,在每次技術(shù) 956 次時(shí)將 I/O 反相,就可得到中音 DO(523Hz) 。其計(jì)數(shù)值的求法如下: 表 4.1.1-1 C 調(diào)各音符頻率與計(jì)數(shù)值 T 的對(duì)照表 低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù) Do2621908229Do523956115Do10465757 10 Do 2771805217 Do 554903108 Do 11095454 Re2941701204Re587852102
26、Re11755151 Re 3111608193 Re 62280497 Re 12454848 Mi3301515182Mi65975991Mi13184545 Fa3491433172Fa69871686Fa13974343 Fa 3701351162 Fa 74067681 Fa 14804141 So3921276153So78463877So15683838 So 4151205145 So 83160272 So 16613636 La4401136136La88056868La17603434 La 4641078129 La 93253664 La 18653232 Si494
27、1012121Si98850661Si19763030 4.1.2 節(jié)拍的確定 若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)) , 而且可以調(diào)節(jié)各個(gè)音的快滿度。 “節(jié)拍”,即 Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽音 樂(lè)不自主的隨之拍手或跺腳。若 1 拍實(shí) 0.5s,則 1/4 拍為 0.125s。至于 1 拍多少 s, 并沒(méi)有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘 72 下,有些人快一點(diǎn), 有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休 止符表示暫停發(fā)音。 一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以
28、 利用不同的頻率的組合,加以與拍數(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)系。 表 4.1.2-1 節(jié)拍與節(jié)拍碼對(duì)照 節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù) 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 2/1 拍 11 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 8 2 拍 8 1 拍 A
29、2 又 1/2 拍 A 1 又 1/4 拍 C 3 拍 C 1 又 1/2 拍 F 3 又 3/4 拍 每個(gè)音符使用 1 個(gè)字節(jié),字節(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,以此類推。所以只要求 得 1/4 拍的 DELAY 時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖 5.3 為 1/4 和 1/8 節(jié)拍的時(shí) 間設(shè)定。 表 4.1.2-2 1/4 和 1/8 節(jié)拍的時(shí)間設(shè)定 曲調(diào)值DELAY曲調(diào)值DELA
30、Y 調(diào) 4/4125 毫秒調(diào) 4/462 毫秒 調(diào) 3/4187 毫秒調(diào) 3/494 毫秒 調(diào) 2/4250 毫秒調(diào) 2/4125 毫秒 4.1.3 編碼 do re mi fa so la si 分別編碼為 17,重音 do 編為 8,重音 re 編為 9,停頓編 為 0。播放長(zhǎng)度以十六分音符為單位(在本程序中為 165ms) ,一拍即四分音符等于 4 個(gè)十六分音符,編為 4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高 4 位,而播放時(shí) 間作為低 4 位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以 0 xff 作為曲譜的結(jié)束標(biāo)志。比 如,音調(diào) do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為 0 x18。
31、 歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類型為 unsigned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高 4 位得到音調(diào),接著找出相 應(yīng)的值賦給定時(shí)器 0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低 4 位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。 表 4.1.3-1 簡(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 拍 12 2中音 RE56468451 又 1/4 拍 3中音 MI664777
32、61 又 1/2 拍 4中音 FA76482082 拍 5中音 SO864898A2 又 1/2 拍 6中音 LA964968C3 拍 7中音 TIA65030F3 又 3/4 拍 1高音 DOB65058 2高音 REC65110 3高音 MID65157 4高音 FAE65178 5高音 SOF65217 4.2 軟件程序設(shè)計(jì) 4.2.1 程序流程圖及相應(yīng)代碼塊 主程序流程圖 開始 初始化 標(biāo)志位 Count=0 標(biāo)志位 Count=1 標(biāo)志位 Count=2 標(biāo)志位 Count=3 播放音樂(lè) Yes No 花樣燈1 花樣燈1 花樣燈1 Yes Yes Yes No No No 圖 4.2
33、.1-1 主程序流程圖 13 主程序代碼: main() uchar x; count1=0;/流水燈無(wú)花樣 count2=1;/唱第一首歌 P34=0;/選取矩陣鍵盤的一列 EA=1;/開總中斷 EX0=1;/開外部中斷 0 IT0=1;/外部中斷 0 下降沿觸發(fā)方式 EX1=1;/開外部中斷 1 IT1=1;/外部中斷 1 下降沿觸發(fā)方式 TMOD=0 x01;/定時(shí)器 0 工作在方式 1 TH0=0; TL0=0; ET0=1; while(1) if(count1!=0) /音樂(lè)停止,花樣燈開始按照花樣閃爍 switch(count1) case 1: for(x=0;x14;x+)
34、duan=1; P1=huayang1x; beep(); 14 delay1(300); duan=0; if(count1!=1) break; break; case 2: for(x=0;x0;x-) for(y=19000;y0;y-); void delay1(uint z)/延時(shí) 1MS uint x,y; for(x=z;x0;x-) for(y=112;y0;y-); 4.2.2 程序源代碼(見(jiàn)附錄) 18 5 調(diào)試 5.1 檢查硬件連接 在 PROTUES 檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路 的連接,復(fù)位電路是否設(shè)計(jì)正確。 5.2 檢查軟件系統(tǒng) 根
35、據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來(lái)檢查程序是否也對(duì)。 將所有程序組織起來(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)行仿真。 5.3 測(cè)試結(jié)果 5.3.1 總體運(yùn)行圖 19 圖 5.3.1-1 系統(tǒng)總體運(yùn)行圖 5.3.2 花樣燈 3 種花樣圖 由于截圖只能看到靜態(tài)圖,不能看到整體圖樣,下面畫圖說(shuō)明: 圖 5.3.2-1 花樣燈 第一種花樣燈顯為:從 D1 移 D2,然后 D1 滅,再?gòu)?D2 移 D3,然后 D2 滅。 20 圖 5.3.2-2 第一種花樣 第二種花
36、樣燈顯示:從兩邊向中間移動(dòng),先 D1 移 D8,再 D8 移 D2 具體如圖。 圖 5.3.2-3 第 2 種花樣 第三種花樣燈顯示方式為:從 D1 移向 D2,然后 D1 熄滅,再?gòu)?D2 移向 D3,然后 D2 熄滅,以此往復(fù)循環(huán)。與第一種方式的不同之處為:當(dāng) D1 移向 D2 時(shí),D1 不熄滅, 再?gòu)?D2 移向 D3 時(shí),D2 也不熄滅,以此類推。 圖 5.3.2-4 第 3 中花樣 6 結(jié)束語(yǔ) 單片機(jī)的設(shè)計(jì)至今為止已經(jīng)進(jìn)入了令人鼓舞的階段,在進(jìn)行了長(zhǎng)達(dá)兩個(gè)多月的時(shí) 間的摸索與實(shí)驗(yàn),使我不僅僅是對(duì)于單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使 我對(duì)于一項(xiàng)設(shè)計(jì)研究的制作過(guò)程所需要的詳細(xì)步驟
37、和具體的實(shí)現(xiàn)方法的力度的掌握。 當(dāng)然在這次寶貴的課程設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對(duì)于我們最大的收獲,而且還增強(qiáng) 了自身對(duì)未知問(wèn)題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語(yǔ)來(lái)概括這次難 忘的活動(dòng)我覺(jué)得再合適不過(guò)了。但是,光是完成了作品還是不可以自我滿足的,在從 一開始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又 21 方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對(duì)單片機(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)為程序的編寫而冥思查找過(guò),曾經(jīng)為無(wú)法找出錯(cuò)誤而郁悶苦惱過(guò)
38、,也曾 經(jīng)為某一功能不能實(shí)現(xiàn)而猶豫彷徨過(guò),但最終我成功了。我不僅品味到了結(jié)果的喜悅, 更明白了過(guò)程的彌足珍貴。 感謝我的導(dǎo)師 XX 老師,他嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的 榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪。感謝我的爸爸媽媽 的養(yǎng)育之恩,無(wú)以回報(bào),你們永遠(yuǎn)健康快樂(lè)是我最大的心愿。感謝我的室友們,是你 們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。2 年了,仿佛就 在昨天。兩年里,我們沒(méi)有紅過(guò)臉,沒(méi)有吵過(guò)嘴,沒(méi)有發(fā)生上大學(xué)前所擔(dān)心的任何不 開心的事情。只是今后大家就難得再聚在一起吃每年元旦那頓飯了吧,沒(méi)關(guān)系,各奔 前程,大家珍重。我們?cè)谝黄鸬?/p>
39、日子,我會(huì)記一輩子的。在設(shè)計(jì)即將完成之際,我的 心情無(wú)法平靜,從開始進(jìn)入課題到設(shè)計(jì)的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友 給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意! 22 附錄: 程序源代碼及注釋 #include #define uchar unsigned char #define uint unsigned int sbit duan=P26; sbit key1=P32;/按 key1 可切換花樣 sbit key2=P33;/按 key2 可切換歌曲 sbit fm=P37;/蜂鳴器連續(xù)的 IO 口 sbit P34=P34;/矩陣鍵盤的一列 uchar code huayang
40、1=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe, 0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf;/花樣 1 uchar code huayang2=0 x7f,0 xfe,0 xbf,0 xfd,0 xdf,0 xfb,0 xef,0 xf7, 0 xef,0 xfb,0 xdf,0 xfd,0 xbf,0 xfe;/花樣 2 uchar code huayang3=0 x7f,0 x3f,0 x1f,0 x0f,0 x07,0 x03,0 x01,0 x0, 0 x80,0 xc0,0 xe0,0 xf0,0 xf
41、8,0 xfc,0 xfe,0 xff; char code huayang4= 0 x55,0 xaa,0 xcc,0 x33,0 x99,0 x66,0 x0f,0 xf0; uchar count1;/花樣標(biāo)志 uchar count2;/歌曲標(biāo)志 uchar timeh,timel,i; /-簡(jiǎn)譜- /編程規(guī)則:字節(jié)高位是簡(jiǎn)譜,低位是持續(xù)時(shí)間, /代表多少個(gè)十六分音符 /1-7 代表中央 C 調(diào),8-E 代表高八度,0 代表停頓 /最后的 0 是結(jié)束標(biāo)志 uchar code qnzl= /千年之戀 0 x12,0 x22,0 x34,0 x84,0 x74,0 x54,0 x38,0
42、 x42,0 x32,0 x22,0 x42,0 x34,0 x84,0 x72,0 x82, 0 x94,0 xA8,0 x08, /前奏 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62, 23 /竹林的燈火 到過(guò)的沙漠 0 x32,0 x31,0 x21,0 x32,0 x82,0 x71,0 x81,0 x71,0 x51,0 x32,0 x22, /七色的國(guó)度 不斷飄逸風(fēng)中 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62, /有一種神秘 灰色的
43、旋渦 0 x32,0 x31,0 x21,0 x32,0 x83,0 x82,0 x71,0 x72,0 x02, /將我卷入了迷霧中 0 x63,0 xA1,0 xA2,0 x62,0 x92,0 x82,0 x52, /看不清的雙手 0 x31,0 x51,0 x63,0 x51,0 x63,0 x51,0 x63,0 x51,0 x62,0 x82,0 x7C,0 x02, /一朵花傳來(lái)誰(shuí)經(jīng)過(guò)的溫柔 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA2,0 x71,0 x76, /穿越千年的傷痛 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0
44、 x31,0 x36, /只為求一個(gè)結(jié)果 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53, /你留下的輪廓 指引我 0 x42,0 x63,0 x83,0 x83,0 x91,0 x91, /黑夜中不寂寞 0 x61,0 x71,0 x82,0 x71,0 x62,0 x0A2,0 x71,0 x76, /穿越千年的哀愁 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36, /是你在盡頭等我 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0
45、x53, /最美麗的感動(dòng) 會(huì)值得 0 x42,0 x82,0 x88,0 x02,0 x74,0 x93,0 x89,0 xff/結(jié)束標(biāo)志 /用一生守候 ; uchar code jmszl= /寂寞沙洲冷 0 x12,0 x12,0 x22,0 x32,0 x31,0 x22,0 x21,0 x22, 24 /自你走后心憔悴 0 x21,0 x31,0 x51,0 x52,0 x31,0 x52,0 x61,0 x15,0 x14, /白色油桐風(fēng)中紛飛 0 x51,0 x52,0 x31,0 x52,0 x62,0 x13,0 x11,0 x13,0 x32,0 x28,0 x08,0 x2
46、8, /落花似人有情 這個(gè)季節(jié) 0 x31,0 x32,0 x31,0 x32,0 x11,0 x21,0 x51,0 x52,0 x51,0 x52, /河畔的風(fēng)放肆拼命地吹 0 x51,0 x51,0 x31,0 x32,0 x31,0 x32,0 x81,0 x72,0 x63, /不斷撥弄離人的眼淚 0 x62,0 x71,0 x81,0 x72,0 x61,0 x61,0 x52,0 x31,0 x21,0 x32,0 x51,0 x54, /那樣濃烈的愛(ài)再也無(wú)法給 0 x22,0 x12,0 x11,0 x12,0 x11,0 x12,0 x12,0 x14,0 x26,0 x32
47、,0 x26, /傷感一夜一夜 0 x32,0 x61,0 x51,0 x51,0 x31,0 x31,0 x21,0 x31,0 x51,0 x61,0 x51,0 x31,0 x51, /當(dāng)記憶的線纏繞過(guò)往支離破碎 0 x02,0 x32,0 x81,0 x81,0 x81,0 x81,0 x62,0 x52,0 x34, /是慌亂占據(jù)了心扉 0 x31,0 x81,0 x81,0 x81,0 x61,0 x91,0 x82, /有花兒伴著蝴蝶 0 x51,0 x51,0 x51,0 x51,0 x31,0 x61,0 x53, /孤雁可以雙飛 0 x21,0 x11,0 x21,0 x1
48、1,0 x22,0 x11,0 x21,0 x26, /夜深人靜獨(dú)徘徊 0 x32,0 x61,0 x51,0 x51,0 x31,0 x31,0 x21,0 x31,0 x51,0 x61,0 x51,0 x31,0 x51,0 x52, /當(dāng)幸福戀人寄來(lái)紅色分享喜悅 0 x31,0 x31,0 x81,0 x81,0 x81,0 x61,0 x91,0 x81,0 x61,0 x31,0 x56, /閉上雙眼難過(guò)頭也不敢回 0 x32,0 x32,0 x81,0 x81,0 x81,0 x81,0 x91,0 x81,0 x61,0 x81,0 x61,0 x51,0 x31,0 x51,0 x34, /仍然撿盡寒枝不肯安歇微帶著后悔 0 x21,0 x31,0 x51,0 x31,0 x21,0 x11,0 x61,0 x21,0 x16, 25 /寂寞沙洲我該思念誰(shuí) 0 xff; /-簡(jiǎn)譜音調(diào)對(duì)應(yīng)的定時(shí)器初值- - /適合 11.0592M 的晶振 uchar yinyue=0 xff,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 x0,0 x0; /將音調(diào)轉(zhuǎn)化為對(duì)應(yīng)的 LED 樣式 void delay1(uint z); /延時(shí) 1MS void delay(uint z)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度人工智能產(chǎn)業(yè)投資轉(zhuǎn)借款合作協(xié)議模板3篇
- 國(guó)防建設(shè)知識(shí)
- 二零二五年度個(gè)人知識(shí)產(chǎn)權(quán)侵權(quán)糾紛授權(quán)委托書3篇
- 二零二五年度商場(chǎng)消防安全責(zé)任協(xié)議書3篇
- 二零二五年度城市停車場(chǎng)信息化建設(shè)承包協(xié)議3篇
- 二零二五年辦公樓智能安防與保潔服務(wù)合同3篇
- 二零二五版海洋石油鉆井平臺(tái)外派海員聘用合同范本3篇
- 二零二五年度商品房團(tuán)購(gòu)項(xiàng)目合作代理協(xié)議3篇
- 二零二五年度高校研究生學(xué)術(shù)交流活動(dòng)合作協(xié)議3篇
- 藝術(shù)地坪施工方案
- 4.1中國(guó)特色社會(huì)主義進(jìn)入新時(shí)代+課件-2024-2025學(xué)年高中政治統(tǒng)編版必修一中國(guó)特色社會(huì)主義
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會(huì)組織社會(huì)工作專業(yè)人員薪酬指導(dǎo)方案
- 人教版九上化學(xué)第二單元課題2氧氣課件
- 中頻治療儀的使用流程
- 梁湘潤(rùn)《子平基礎(chǔ)概要》簡(jiǎn)體版
- 圖形的位似課件
- 調(diào)料廠工作管理制度
- 人教版《道德與法治》四年級(jí)下冊(cè)教材簡(jiǎn)要分析課件
- 2023年MRI技術(shù)操作規(guī)范
- 辦公用品、易耗品供貨服務(wù)方案
評(píng)論
0/150
提交評(píng)論