單片機音樂播放器畢業(yè)論文_第1頁
單片機音樂播放器畢業(yè)論文_第2頁
單片機音樂播放器畢業(yè)論文_第3頁
單片機音樂播放器畢業(yè)論文_第4頁
單片機音樂播放器畢業(yè)論文_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、單片機音樂播放器畢業(yè)論文 i 目 錄 摘 要.1 前 言.2 第 1 章 設計綜述 .3 1.1 單片機產(chǎn)生音調(diào)的基本原理 .3 1.2 開發(fā)環(huán)境簡介 .3 1.3 設計內(nèi)容與目標 .4 第 2 章 音樂播放器的功能與組成.5 2.1 音樂播放器的功能 .5 2.2 音樂播放器的組成 .5 第 3 章 系統(tǒng)總體設計與關鍵技術.7 3.1 系統(tǒng)總體設計 .7 3.1.1 音樂播放器的工作原理.7 3.1.2 音階對應頻率計數(shù)初值的計算.8 3.1.3 樂曲節(jié)拍的計算.8 3.1.4 樂譜在程序中的編制.9 3.2 系統(tǒng)中應用的關鍵技術 .9 第 4 章音樂播放器的硬件設計.10 4.1 單片機最

2、小系統(tǒng) .10 4.1.1 單片機復位電路.10 4.1.2 單片機晶振電路.10 4.2 鍵盤接口電路的設計.11 4.3 led 顯示接口電路的設計 .12 4.4 揚聲器控制電路的設計.13 4.5 硬件原理圖 .13 第 5 章 音樂播放器的軟件設計.15 5.1 主控軟件的設計與流程圖 .15 5.2 定時中斷服務子程序的設計與流程圖 .16 5.3 鍵盤控制模塊的設計與流程圖 .17 單片機音樂播放器畢業(yè)論文 ii 5.4 演奏樂曲模塊的設計與流程圖 .22 第 6 章 系統(tǒng)的實現(xiàn)與調(diào)試.25 6.1 硬件系統(tǒng)的焊接與調(diào)試 .25 6.2 軟件調(diào)試 .26 6.2.1 測試 led

3、 顯示模塊.26 6.2.2 測試鍵盤控制模塊.27 6.2.3 測試 p3.0 口輸出.28 6.3 調(diào)試中遇到的問題及解決 .28 第 7 章 結 論.30 參 考 文 獻.34 致 謝.35 單片機音樂播放器畢業(yè)論文 1 摘摘 要要 隨著科技的不斷發(fā)展,目前市場上出現(xiàn)了許許多多的音樂播放器,人們對播放器的 需求也越來越廣泛,對其要求也越來越高。 本文分析了基于單片機的音樂播放器的工作原理,詳細介紹了音樂播放器的功能及 其硬件設計和軟件設計的方法,給出了基于 mcs-51 單片機的音樂播放器的具體實現(xiàn)方案 并重點講述了其硬件實現(xiàn)與軟件編寫,實現(xiàn)了單片機音樂播放器對音樂的演奏。 關鍵詞關鍵詞

4、 : 音樂播放器、mcs-51 單片機、led 顯示器 單片機音樂播放器畢業(yè)論文 2 abstract with the continuous development of science and technology, the market appeared many music players, the demand of players has become increasingly extensive and increasing their demands. this paper analyzes the scm-based music players working princip

5、le, described in detail the function of music player and its hardware design and software design methods, given mcs-51 single- chip based on the music player to achieve the specific program and focus on the achievement of its hardware and software development, to achieve a single chip music player f

6、or playing music. keywords : music player、mcs-51 single-chip microcomputer、led 單片機音樂播放器畢業(yè)論文 3 前前 言言 幾千年來,各種樂器的發(fā)聲無一不是依靠琴弦、簧片、哨片引起管柱振動而作為聲 源的。隨著現(xiàn)代電子工業(yè)技術的飛速發(fā)展,一種用新的聲源來制造音響的新型樂器脫穎 而出,這就是目前人們熟知的電子音樂播放器1。目前市場上的音樂播放器形形色色, 例如大家所熟悉的mp3,隨著電子技術的不斷發(fā)展,音樂播放器的發(fā)展也會進一步發(fā)展。 目前單片機的應用滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機 的蹤跡。導彈的

7、導航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,工 業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 ic 卡,民用豪華轎車的安全 保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這 些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械了2。 本課題即是在這種背景下,對基于 mcs51 單片機的音樂播放器的設計與實現(xiàn)進行了 硬件及軟件的設計,并給出了一套完整的解決方案,實現(xiàn)了單片機音樂播放器對音樂的 演奏。 單片機音樂播放器畢業(yè)論文 第第1 1章章 設設計計綜綜述述 1.11.1 單片機產(chǎn)生音調(diào)的基本原理單片機產(chǎn)生音調(diào)的基本原理 音樂播放

8、器是利用單片機產(chǎn)生樂曲音符,再把樂曲音符翻譯成計算機音樂語言,用 單片機進行信息處理,再通過蜂鳴器或喇叭放出音樂。 音樂的產(chǎn)生主要是通過單片機的 i/o 口輸出高低不同的脈沖信號來控制蜂鳴器發(fā)音。 要想產(chǎn)生音頻脈沖信號,需要算出某一音頻的周期(1/頻率),然后將此周期除以 2,即為 半周期的時間。利用單片機定時器計時這個半個周期時間,每當計時到后就將輸出脈沖 的 i/o 口反相,然后重復計時此半周期時間再對 i/o 口反相,這樣就能在此 i/o 口上得 到此頻率的脈沖。 通常,利用單片機的內(nèi)部定時器 0,工作在方式 1 下,改變計數(shù)初值 th0 和 tl0 來產(chǎn) 生不同頻率。 對于音樂的節(jié)拍,

9、每個音符使用 1 個字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位 代表音符的節(jié)拍。如果 1 拍為 0.4s,1/4 拍為 0.1s,只要設定延遲時間就可求得節(jié)拍的 時間。假設 1/4 拍為 1delay,那么 1 拍應為 4delay,以此類推。所以只要求得 1/4 拍的 delay,其余的節(jié)拍就是它的倍數(shù)。 總而言之,一首樂曲是由音階和節(jié)拍兩大要素構成。一首樂曲演奏的原理是:不同 音階分別對應不同的頻率,發(fā)出不同的音調(diào),而節(jié)拍則控制發(fā)出音調(diào)時間的長短;若將 樂曲的音調(diào)連續(xù)發(fā)出,并使其按相應的節(jié)拍變化,即可演奏一首樂曲。根據(jù)這一特點, 我們采用單片機輔以相應的接口來設計音樂播放器3。 1.

10、21.2 開發(fā)環(huán)境簡介開發(fā)環(huán)境簡介 隨著單片機的不斷發(fā)展,以c為主流的單片機高級語言也不斷被更多的單片機愛好者 和工程師所喜愛。使用c語言肯定要使用到c編譯器,以便把寫好的c程序編譯為機器碼, 這樣單片機才能執(zhí)行編寫好的程序。keil uvision2是眾多單片機應用開發(fā)軟件中優(yōu)秀的 軟件之一,它支持眾多不同公司的mcs-51架構的芯片,它集編輯,編譯,仿真等于一體, 同時還支持,plm,匯編和c 語言的程序設計,它的界面和常用的微軟vc+的界面相似, 界面友好,易學易用,在調(diào)試程序,軟件仿真方面也有很強大的功能4。 本系統(tǒng)采用的開發(fā)環(huán)境為 keil uvision2,軟件開發(fā)環(huán)境主界面見圖

11、1-1。 單片機音樂播放器畢業(yè)論文 圖 1-1 keil uvision2 集成開發(fā)環(huán)境主界面 1.31.3 設計內(nèi)容與目標設計內(nèi)容與目標 本設計以 at89c51 單片機為核心。通過對其定時器的設定來實現(xiàn)音樂的播放,通過 對鍵盤的設置可以實現(xiàn)人機對話,借助鍵盤可以向計算機系統(tǒng)輸入程序,置數(shù)、送操作 命令、控制程序的執(zhí)行走向等,并最終通過 led 顯示器顯示出播放的樂曲。 重點研究內(nèi)容有: 單片機最小系統(tǒng)的設計與實現(xiàn) 鍵盤電路的設計與控制 揚聲器控制電路的設計與實現(xiàn) led 顯示器的驅動及顯示 定時初值的計算 軟件模塊的設計與編寫 單片機音樂播放器畢業(yè)論文 第第2 2章章 音樂播放器的功能與組

12、成音樂播放器的功能與組成 2.12.1 音樂播放器的功能音樂播放器的功能 基于單片機的定時和控制裝置在許多行業(yè)中有著廣泛的應用,而音樂播放器是 其應用之一。在基于單片機的音樂播放器電路中,除了基本的單片機系統(tǒng)和外圍電 路外,還需要外部的控制和顯示裝置。在本設計中,輸入裝置是按鍵開關,由于控 制音樂播放器的運行模式,顯示裝置是 led 七段數(shù)碼管5。 此次設計的音樂播放器要求具有以下功能: 音樂播放器按照從頭到尾的順序自動播放預先設定的 14 共 4 首樂曲,全部樂曲 播放完畢則停止。 音樂播放器按照從頭到尾的順序自動循環(huán)播放預先設定的全部樂曲。 選定某一樂曲,隨即輸入選定樂曲的序列號(14),

13、即按下 14 數(shù)字鍵之一,音 樂播放器對選定的某一樂曲開始循環(huán)播放。 選定某一樂曲,隨即輸入選定樂曲的序列號(14),即按下 14 數(shù)字鍵之一,音 樂播放器就從選定的某一樂曲開始播放,按照順序自動播放到最后一首樂曲,樂曲播放 完畢則停止。 當用戶按下暫停鍵時,音樂播放器打斷正在播放的某一樂曲,用戶再次按下暫停 鍵時,該樂曲繼續(xù)播放。 當用戶按下復位鍵時,音樂播放器終止正在播放的某一樂曲。 2.22.2 音樂播放器的組成音樂播放器的組成 根據(jù)系統(tǒng)音樂播放器的功能要求,一個完整的音樂播放器電路相當于一個簡單的單 片機系統(tǒng),該系統(tǒng)由按鍵開關、單片機、led 顯示電路、揚聲器控制電路 4 個方面構成。

14、 51 單片機。51 單片機為整個系統(tǒng)的核心部分,是帶動整個系統(tǒng)工作的重要部件。 鍵盤輸入。鍵盤輸入用來控制輸入指令,發(fā)出指令至單片機,使單片機按照指令 工作。 揚聲器。揚聲器作為輸出部分按照鍵盤給單片機的指令發(fā)出樂曲。 led 顯示電路。led 顯示器也作為輸出部分,按照鍵盤給單片機的指令,顯示正在 演奏的樂曲。 單片機音樂播放器畢業(yè)論文 音樂播放器的系統(tǒng)組成框圖如圖 2-1 所示: 圖 2-1 音樂播放器的系統(tǒng)組成框圖 cpu at89c51 鍵盤輸入揚聲器 led 顯示電路 單片機音樂播放器畢業(yè)論文 第第3 3章章 系統(tǒng)總體設計與關鍵技術系統(tǒng)總體設計與關鍵技術 3.13.1 系統(tǒng)總體設計

15、系統(tǒng)總體設計 根據(jù)系統(tǒng)的功能與組成,進行系統(tǒng)分析,系統(tǒng)除 cpu 核心部分外還需要與鍵盤連接 以接收輸入指令,連接 led 顯示器將要演奏的樂曲序號顯示出來,通過連接揚聲器使其 發(fā)出音樂。系統(tǒng)總體結構如圖 3-1 所示。 圖 3-1 系統(tǒng)總體結構框圖 3.1.13.1.1 音樂播放器的工作原理音樂播放器的工作原理 音樂播放器可利用單片機的定時器構成電子振蕩器來發(fā)聲。振蕩器是電子樂曲播放 器的聲源,專門用來制造音響,也稱信號發(fā)生器,其作用相當于常規(guī)樂器的琴弦、簧片、 哨片。振蕩器在音樂播放器的應用中有兩個特點,可產(chǎn)生聲音的頻率與不同波形的振蕩。 通過對單片機的定時器設置不同的定時初值,可發(fā)出音樂

16、的不同音階,通過調(diào)整振蕩波 形與泛音的分布,可產(chǎn)生和變換各種音色。 在我們所設計的音樂播放器中,是通過單片機的定時器,產(chǎn)生不同頻率的方波信號, 而沒有調(diào)整振蕩波形,因此音樂播放器發(fā)出的聲音,是矩形波產(chǎn)生的音響,純粹的矩形 波聲音類似于單簧管的音色。 一首樂曲演奏的原理是:一首樂曲是由音階和節(jié)拍兩大要素構成,不同音階分別對 應不同的頻率,發(fā)出不同的音調(diào),而節(jié)拍則控制發(fā)出音調(diào)時間的長短;若將樂曲的音調(diào) 連續(xù)發(fā)出,并使其按相應的節(jié)拍變化,即可演奏一首樂曲。根據(jù)這一特點,我們采用單 片機輔以相應的接口來設計音樂播放器。 晶振、復位電路 單片機 鍵盤輸入控制 led 顯示電路 揚聲器 單片機音樂播放器畢

17、業(yè)論文 3.1.23.1.2 音階對應頻率計數(shù)初值的計算音階對應頻率計數(shù)初值的計算 單片機的振蕩頻率為fosc12mhz ,通過定時器 t0 溢出后對 p3.0 口取反產(chǎn)生方波, 故定時器溢出時間為 1/2f 。 由: , 則定時初值為: nosc n ff x 2 112 )2( 1616 2 24 osc n n f x f 以音階“1”為例:f523 hz,則 t1/f 定時初值: 6 1616 12 10 226458044 2424 523 osc n n f xfch f 用同一方法可求出其它音階所對應的頻率定時初值,將其制表放在程序中,通過查 表向定時器 t0 裝入所要求的定時初

18、值,即可產(chǎn)生某一音階所對應的頻率的方波信號。c 調(diào)的音階及其頻率、在單片機中的定時初值對應如下: 音 名 c d e f g a b 簡譜音階 1 2 3 4 5 6 7 頻率/ hz 262 294 330 349 392 440 494 定時初值 63628 63835 64021 64103 64260 64400 64524 表中序號 1 2 3 4 5 6 7 音 名 c d e f g a b 簡譜音階 1 2 3 4 5 6 7 頻率/ hz 523 587 659 698 784 880 988 定時初值(hex) 64580 64684 64777 64820 64898 6

19、4968 65030 表中序號 8 9 10 11 12 13 14 音 名 c d e f g a b 簡譜音階 1 2 3 4 5 6 7 頻率/ hz 1046 1175 1318 1397 1568 1760 1967 定時初值(hex) 65058 65110 65157 65178 65217 65252 65283 表中序號 15 16 17 18 19 20 21 3.1.33.1.3 樂曲節(jié)拍的計算樂曲節(jié)拍的計算 取樂曲節(jié)拍的長度為 0.4s ,即 1 拍0.4s ,由定時器 t1 控制延時。設置定時器 單片機音樂播放器畢業(yè)論文 t1 的定時中斷 t50ms ,采用定時方式

20、1。 由: ,則定時初值 x3c0bht f x osc 12 )2( 16 因此 1 拍0.4s8*50ms,即通過定時器 t1 的定時中斷 8 次,產(chǎn)生 8*50ms 的定時, 就可以滿足 1 節(jié)拍的定時要求。以此類推,通過定時中斷 n 次,可產(chǎn)生 n*50ms 的定時以 滿足 1/4 拍、1/2 拍、1 拍、2 拍等不同節(jié)拍的定時要求。由此可知,節(jié)拍值只能是整數(shù) 值。不同節(jié)拍在單片機中的中斷次數(shù)(音長)對應如下: 節(jié) 拍 1/8 1/4 1/2 3/4 1 3/2 2 3 4 時間長度 0.05s 0.1s 0.2s 0.3s 0.4s 0.6s 0.8s 1.2s 1.6s 音長(de

21、c) 1 2 4 6 8 12 16 24 32 音長(hex) 01h 02h 04h 06h 08h 0ch 10h 18h 20h 3.1.43.1.4 樂譜在程序中的編制樂譜在程序中的編制 將樂譜轉換為代碼,應包含樂曲的總長度、音階、音長(節(jié)拍)等信息。 具體設計如下: (1) 將音階代碼組成一個字節(jié),節(jié)拍代碼組成一個字節(jié),按照:音階代碼,節(jié)拍代 碼,音階代碼,節(jié)拍代碼 的順序,將一個樂譜轉換為一定長度的代碼數(shù)據(jù)表。 (2) 在程序執(zhí)行時順序查此表,取出音階代碼,并根據(jù)音階代碼查頻率表,以得到 該音階對應的頻率,隨后將對應的定時初值送定時器 t0,使定時器 t0 產(chǎn)生該音階對應的 頻率

22、,并通過 p3.0 口輸出,驅動外接揚聲器發(fā)聲。 (3) 取出節(jié)拍代碼 n,由定時器 t1 控制延時,通過定時中斷 n 次,產(chǎn)生 n*50ms 的定 時。 t0、t1 啟動后,根據(jù)樂譜表,某一個音階發(fā)出相應頻率的聲音,并持續(xù)相應的節(jié)拍, 連續(xù)起來,我們就可以聽到一個完整樂曲的演奏。 3.23.2 系統(tǒng)中應用的關鍵技術系統(tǒng)中應用的關鍵技術 基于單片機的音樂播放器在設計時需要解決以下 4 個方面的問題: 有關單片機中定時器的使用。 利用鍵盤控制實現(xiàn)對單片機的控制。 led 顯示模塊的驅動和編制。 揚聲器控制電路,用于發(fā)出不同頻率的音調(diào)。 單片機音樂播放器畢業(yè)論文 第第4 4章章音樂播放器的硬件設計

23、音樂播放器的硬件設計 一個完整的音樂播放器電路相當于一個簡單的單片機系統(tǒng),該系統(tǒng)由按鍵開關、 單片機、晶振和復位電路、led 顯示電路、揚聲器控制電路 5 個方面構成。其中, 除了單片機是集成的 ic 芯片,而其他 4 個部分則需根據(jù)應用要求而設計。 4.14.1 單片機最小系統(tǒng)單片機最小系統(tǒng) 單片機芯片,配以必要的外部器件就能構成單片機最小系統(tǒng)。單片機具有較強的外 部擴展、通信能力,能方便地擴展至應用系統(tǒng)所要求的規(guī)模。 當使用帶 rom 或 eprom 的 mcs51 系列單片機時,只要一個芯片即可構成一個單片機 的最小系統(tǒng)。選用 80c51 或 8051 或 at89c51 單片機作為主機

24、,它們都具有 4k 片內(nèi) rom,128 字節(jié)片內(nèi) ram,片外 rom 尋址范圍達 64k,片外 ram 尋址范圍達 64k,2 個 16 位 計數(shù)器,5 個中斷源,4 個并行口,1 個串行口。簡易自動樂曲播放器采用單片機最小系 統(tǒng)足以滿足系統(tǒng)設計要求,同時要設計單片機最小系統(tǒng)的晶振和復位電路。 4.1.14.1.1 單片機復位電路單片機復位電路 復位是單片機的初始化操作,其作用是使 cpu 中的各個部件都處于一個確定的 初始狀態(tài),并從這個狀態(tài)開始工作。當 8051 的 ale 及 兩腳輸出高電平,rst 引腳 高電平時,單片機復位。 8051 單片機的復位電路有上電復位和手動按鈕復位兩種形

25、式,rst/vpd 端的高 電平直接由上電瞬間產(chǎn)生高電平則為上電復位;若通過按鈕產(chǎn)生高電平復位信號稱 為手動按鈕復位。圖 4-1 為兼有上電復位與按鈕復位的電路。圖中,上電瞬間 rst 端的電位與 vcc 相同,隨著電容充電電流的減小,+5v 立即加到了 rst/vpd 端,該 高電平使 8051 復位。若運行過程中,需要程序從頭開始執(zhí)行,這只需按圖 4-1 中 的按鈕即可。按下按鈕則直接把+5v 加到了 rst/vpd 端從而復位,這稱為手動復位。 在實際應用系統(tǒng)中,有些外圍芯片也需要復位,如果這些復位端的復位電平要求與 單片機的要求一致,則可以與之相連。 4.1.24.1.2 單片機晶振電

26、路單片機晶振電路 晶振是給單片機提供工作信號脈沖的,這個脈沖就是單片機的工作速度。比如 12m 晶 單片機音樂播放器畢業(yè)論文 振,單片機工作速度就是每秒 12m。當然,單片機的工作頻率是有范圍的,不能太大, 一般 24m 就不上去了,不然不穩(wěn)定 。圖 4-2 為晶振電路。 圖 4-1 復位電路 圖 4-2 晶振電路 4.24.2鍵盤接口電路的設計鍵盤接口電路的設計 單片機應用系統(tǒng)中的人機對話通道是用戶為了對應用系統(tǒng)進行干預以及了解應用系 統(tǒng)運行狀態(tài)所設置的通道。主要有鍵盤、顯示器等通道接口。 在單片機應用系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài)以及向系統(tǒng)中輸入數(shù)據(jù),應用系統(tǒng) 單片機音樂播放器畢業(yè)論文 設

27、置鍵盤,用于系統(tǒng)復位,功能轉換以及數(shù)字輸入。鍵盤的設置可以實現(xiàn)人機對話,借 助鍵盤可以向計算機系統(tǒng)輸入程序、置數(shù)、送操作命令、控制程序的執(zhí)行走向等。 在本次設計中鍵盤由 p1 口輸入, 按鍵設置:14 四個數(shù)字鍵,af 六個功能鍵。 數(shù)字鍵(14): 用于輸入 14 共 4 首樂曲的序列號。 功能鍵(af): a 鍵:樂曲從 14 按順序播放 b 鍵:樂曲從 14 循環(huán)播放 c 鍵:循環(huán)播放某一樂曲 d 鍵:從某一樂曲開始播放至最后一首樂曲 e 鍵:暫停/播放 f 鍵:停止播放 各功能鍵(af)的意義與操作: a 鍵:樂曲從 14 按順序播放。 當用戶按下 a 鍵后,led 顯示器清屏,簡易自

28、動樂曲播放器按照從頭到尾的順序自動 播放預先設定的 14 共 4 首樂曲,全部樂曲播放完畢則停止。 b 鍵:樂曲從 14 循環(huán)播放。 當用戶按下 b 鍵后,led 顯示器清屏,簡易自動樂曲播放器按照從頭到尾的順序自動 循環(huán)播放預先設定的全部樂曲。 c 鍵:循環(huán)播放某一樂曲 當用戶按下 c 鍵后,并選定某一樂曲,隨即輸入選定樂曲的序列號(14),即按下 14 數(shù)字鍵之一,簡易自動樂曲播放器對選定的某一樂曲循環(huán)播放。 d 鍵:從某一樂曲開始播放至最后一首樂曲 當用戶按下 d 鍵后,并選定某一樂曲,隨即輸入選定樂曲的序列號(14),即按下 14 數(shù)字鍵之一,簡易自動樂曲播放器就從選定的某一樂曲開始播

29、放,直到樂曲播放完 畢則停止。 e 鍵:暫停/播放。 當用戶按下 e 鍵時,簡易自動樂曲播放器打斷正在播放的某一樂曲,用戶再次按下 e 鍵時,該樂曲繼續(xù)播放。 f 鍵:停止播放。 當用戶按下 f 鍵時,簡易自動樂曲播放器終止正在播放的某一樂曲。 本設計中按鍵作為輸入部分,由 p1 口輸入。 單片機音樂播放器畢業(yè)論文 4.34.3ledled 顯示接口電路的設計顯示接口電路的設計 在單片機應用系統(tǒng)中,使用的顯示器主要有 led 顯示器(發(fā)光二極管顯示器) 。這種 顯示器成本低廉,配置靈活,與單片機接口方便。在本系統(tǒng)的設計中采用 led 顯示器。 led 顯示器由 8 位 led 數(shù)碼管組成,用于

30、顯示系統(tǒng)在各種不同條件下的狀態(tài)。 用單片機驅動 led 數(shù)碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動態(tài)顯示,按 譯碼方式分為硬件譯碼和軟件譯碼。 靜態(tài)顯示是顯示驅動電路具有輸出鎖存功能,單片機將要顯示的數(shù)據(jù)送出后不再控 制 led,直到下次顯示時再傳送一次新的顯示數(shù)據(jù)。靜態(tài)顯示的數(shù)據(jù)穩(wěn)定,占用 cpu 時間 少。 動態(tài)顯示要 cpu 時刻對顯示器件進行數(shù)據(jù)刷新,顯示數(shù)據(jù)會有閃爍,占用的 cpu 時 間多。 這兩種顯示方式各有利弊:靜態(tài)顯示雖然數(shù)據(jù)顯示穩(wěn)定,占用很少的 cpu 時間,但 每個顯示單元都需要單獨的顯示驅動電路,使用的電路硬件較多;動態(tài)顯示雖然閃爍, 占用的 cpu 時間多,但使用

31、的硬件少,能節(jié)省線路板空間。 在本設計中由于顯示部分比較簡單,所以選用了靜態(tài)顯示方式,led 顯示器由 74ls373 來驅動,為了擴展外部存儲器需一塊 74ls373(地址鎖存器) 。 led 發(fā)光器件一般常用的有兩類:數(shù)碼管和點陣。常用的數(shù)碼管一般為 8 字型數(shù)碼管, 分為 a、b、c、d、e、f、g、dp 八段,其中 dp 為小數(shù)點。數(shù)碼管常用的有 10 根管腳, 每一段有一根管腳,另外兩根管腳為一個數(shù)碼管的公共端,兩根之間相連通。 數(shù)碼管從電路上來看可分為共陰和共陽兩種,在本設計中用了共陽的 led。 4.44.4揚聲器控制電路揚聲器控制電路的設計的設計 揚聲器控制電路用于發(fā)出不同頻率

32、的音調(diào),是在 p3.0 口加一反相器再連接到喇叭這 樣就可夠成。 4.54.5 硬件原理圖硬件原理圖 通過以上分析,本次設計的音樂播放器的電路原理圖如圖 4-4 所示。 單片機音樂播放器畢業(yè)論文 圖 4-4 音樂播放器的原理圖 單片機音樂播放器畢業(yè)論文 開機加電 顯示等待提示狀態(tài) f 讀取鍵盤 是否有鍵輸入? n 是否是a鍵? y 是否是 b 鍵? n 是否是d鍵? n y a 鍵子程序 y b 鍵子程序 關閉定時器 t0、t1 置定時器 t0、t1 工作方式 y d 鍵子程序 是否是 c 鍵? c 鍵子程序 n y 第第5 5章章 音樂播放器的軟件設計音樂播放器的軟件設計 軟件設計的重點在于

33、定時中斷的設計、鍵盤控制、顯示的實現(xiàn)、樂曲的演奏等方面。 5.15.1 主控軟件的設計主控軟件的設計與流程圖與流程圖 主模塊是系統(tǒng)軟件的框架。本系統(tǒng)的主模塊的程序框圖可用圖 5-1 來表示。主控模 塊用于控制系統(tǒng)的工作。該模塊先初始化,接著接受到復位信號后讀取鍵盤信號,再調(diào) 用各鍵子程序。 圖 5-1 主控模塊的流程圖 主控程序主要源程序代碼如下: start: mov sp, #60h mov tmod, #11h mov ie, #8ah 單片機音樂播放器畢業(yè)論文 中斷入口 產(chǎn)生周期方波 啟動定時器 t0 查頻率表重裝音頻初值 中斷返回 關閉定時器 t0 mov ip, #08h ;t1

34、中斷優(yōu)先于 t0 中斷 mov th1, #3ch mov tl1, #0bh;以上為系統(tǒng)初始化,t=50ms w1: mov p2, #10001110b ;等待提示f lcallgetkey cjne a, #0ffh, w1 mov a, b cjne a, #0ah, w2 lcall key_a ;輸入鍵是a,轉 key_a sjmpw1 w2: cjnea, #0bh, w3 lcall key_b ;輸入鍵是b,轉 key_b w3: cjnea, #0ch, w4 lcall key_c ;輸入鍵是c,轉 key_c w4: cjnea, #0dh, w5 lcall key_

35、d sjmpw1 ;輸入鍵是d,轉 key_d 5.25.2 定時中斷服務子程序定時中斷服務子程序的設計與流程圖的設計與流程圖 定時器 t0 用于產(chǎn)生不同頻率的音階,如圖 5-2 為定時器 t0 的中斷服務子程序。而 定時器 t1 控制延時來實現(xiàn)不同的節(jié)拍,定時時間設定為 50ms,圖 5-3 為定時器 t1 的中 斷服務子程序。 圖 5-2 定時器 t0 的中斷服務流程圖 單片機音樂播放器畢業(yè)論文 中斷入口 裝入定時常數(shù)=3c0bh 啟動定時器 t1 節(jié)拍數(shù)減 1 中斷返回 關閉定時器 t1 圖 5-3 定時器 t1 中斷服務流程圖 其程序如下所示 int_t0: clr tr0 ;定時器

36、0 中斷子程序 mov tl0, 20h mov th0, 21h cpl p3.0 setb tr0 reti int_t1: clr tr1 ;定時器 1 中斷子程序 clr tr0 lcallkey_e mov th1, #3ch mov tl1, #0bh djnz 60h, out mov 60h, #20 out:setbtr1 reti 5.35.3 鍵盤控制模塊鍵盤控制模塊的設計與流程圖的設計與流程圖 鍵盤控制模塊分為 6 個功能鍵和讀 4 個數(shù)字鍵。下面分別介紹各個鍵的流程圖和程 序: 單片機音樂播放器畢業(yè)論文 入口 系統(tǒng)復位 系統(tǒng)返回 入口 led 顯示 e tr0、tr1

37、 取反 系統(tǒng)返回 e鍵被按下? n y f 鍵子模塊 f 鍵是用于實現(xiàn)系統(tǒng)復位 圖 5-4 f 鍵流程圖 e 鍵子模塊 e 鍵用于實現(xiàn)對樂曲的暫停和播放 圖 5-5 e 鍵子程序流程圖 按下 e 鍵的主要源程序代碼如下 key_e: jbp3.1, l2 ;中斷鍵盤檢測 lcalldelay2 ;消除抖動 jb p3.1, l2 ;如果是高電平就跳到 l2 jnb p3.1, $ ;如果仍然是低電平就執(zhí)行中斷程序 mov p2, #10000110b ;讓 led 顯示 e l3: jb p3.1, $ ;檢測低電平,直到低電平時才跳出該指令 lcalldelay2 jb p3.1, l3 j

38、nb p3.1, $ ;如果再來一個高電平才跳出中斷 mov p2,r5 單片機音樂播放器畢業(yè)論文 入口 led顯示器清屏 調(diào) a鍵子程序 系統(tǒng)返回 l2: setb tr0 ret a 鍵子模塊 當用戶按下 a 鍵后,led 顯示器清屏,簡易自動樂曲播放器按照從頭到尾的順序自動 播放預先設定的 14 共 4 首樂曲,全部樂曲播放完畢則停止。 入口 led 顯示器清屏 調(diào) music1 music4 子程序 即按順序自動播放 4 首樂 曲,并顯示相應的序號 系統(tǒng)返回 圖 5-6 a 鍵子程序流程圖 a 鍵主要源程序代碼如下: key_a: lcallmusic1 ;樂曲我和你 lcallmus

39、ic2 ;樂曲萬水千山總是情 lcallmusic3 ;樂曲送別 lcallmusic4 ;樂曲北京歡迎您 ret b 鍵子模塊 當用戶按下 b 鍵后,led 顯示器清屏,簡易自動樂曲播放器按照從頭到尾的順序自動 循環(huán)播放預先設定的全部樂曲。 單片機音樂播放器畢業(yè)論文 入口 led 顯示器清屏 數(shù)字鍵按下? n y y 系統(tǒng)返回 是否是4? 是否是3? 是否是2? 是否是1? 樂曲 4 music 4并顯示 樂曲 3 music 3并顯示 樂曲 2 music 2并顯示 樂曲 1 music 1并顯示 y y y n n n n 圖 5-7 b 鍵子程序流程圖 b 鍵主要源程序代碼如下: ke

40、y_b: ;b 鍵子程序(從 14 循環(huán)播放) t11:lcallkey_a sjmpt11 ret d 鍵子模塊 當用戶按下 d 鍵后,并選定某一樂曲,隨即輸入選定樂曲的序列號(14),即按下 14 數(shù)字鍵之一,簡易自動樂曲播放器就從選定的某一樂曲開始播放。 圖 5-8 d 鍵子程序流程圖 d 鍵源程序代碼如下: 單片機音樂播放器畢業(yè)論文 入口 系統(tǒng)返回 顯示輸入數(shù)據(jù) 保存輸入數(shù)據(jù) 讀取鍵盤 有鍵輸入? y 置合法輸入標志 ff y 抖動? n n key_d: ;d 鍵子程序(從某一樂曲開始播放,播放完后停止) t2: lcallgetword cjnea, #0ffh, t2 mov a

41、, b cjnea, #00h, b1 sjmpc0 b1: cjnea, #01h, b2 sjmpc1 b2: cjnea, #02h, c3 sjmpc2 c0: lcallmusic1 ;樂曲我和你 c1: lcallmusic2 ;樂曲 萬水千山總是情 c2: lcallmusic3 ;樂曲送別 c3: lcallmusic4 ;樂曲北京歡迎您 ret 讀數(shù)字鍵 讀取正在播放樂曲的序號,讀取鍵盤后消去鍵盤抖動接著顯示和保存數(shù)據(jù)。 單片機音樂播放器畢業(yè)論文 圖 5-9 getword 子程序(讀數(shù)字鍵 0)流程圖 讀數(shù)字鍵主要源程序代碼如下: getword: ;讀音樂序號子程序 s1

42、: jb p1.4, s2 ;讀 1 鍵 lcalldelay2 jb p1.4, s1 jnb p1.4, $ mov p2, #11111001b ;顯示 1 mov r5, #11111001b mov a, #0ffh mov b, #00h ret 5.45.4 演奏樂曲模塊演奏樂曲模塊的設計與流程圖的設計與流程圖 (1) 將音階代碼組成一個字節(jié),節(jié)拍代碼組成一個字節(jié),按照:音階代碼,節(jié)拍代 碼,音階代碼,節(jié)拍代碼 的順序,將一個樂譜轉換為一定長度的代碼數(shù)據(jù)表。 (2) 在程序執(zhí)行時順序查此表,取出音階代碼,并根據(jù)音階代碼查頻率表,以得到 該音階對應的頻率,隨后將對應的定時初值送定時

43、器 t0,使定時器 t0 產(chǎn)生該音階對應的 頻率,并通過 p3.0 口輸出,驅動外接揚聲器發(fā)聲。 (3) 取出節(jié)拍代碼 n,由定時器 t1 控制延時,通過定時中斷 n 次,產(chǎn)生 n*50ms 的定 時。 演奏樂曲的流程圖如圖 5-10 所示。 單片機音樂播放器畢業(yè)論文 入口 定時器 t1 裝入定時常數(shù) 3c0bh 由音階值查音頻表重裝音頻初值 開中斷 由樂譜表取音階值 由樂譜表取節(jié)拍值 啟動定時器 t0、t1 發(fā)音定時沒到則等待 返 回 圖 5-10 演奏樂曲的流程圖 演奏樂曲主要源程序代碼如下: music: mov r3,#00h;音樂解碼器 next20: mov a, r3 mov d

44、ph, 52h mov dpl, 53h movca, a+dptr mov r2, a jz stop anl a, #0fh mov r1, a mov a, r2 swap a anl a, #0fh jnz sing clr tr0 jmp w11 單片機音樂播放器畢業(yè)論文 入口 調(diào) music 子程序 查樂譜表 table10 關閉定時器 t0、t1 返 回 樂曲演奏結束? n y e 鍵是否按下? e 鍵是否按下? n y 停止播放樂曲 y n 具體的在這里任選一首樂曲(我和你)說明樂曲的播放。演奏一首樂曲的流程圖 如圖 5-11 所示。 圖 5-11 一首樂曲的流程圖 樂曲我和你

45、主要源程序如下: music1: ;第一首我和你 mov p2, #11111001b;顯示 1 mov r5, #11111001b mov 52h, #high table10 mov 53h, #low table10 lcall music ret 單片機音樂播放器畢業(yè)論文 第第6 6章章 系統(tǒng)的實現(xiàn)與調(diào)試系統(tǒng)的實現(xiàn)與調(diào)試 系統(tǒng)焊接與調(diào)試分為硬件的焊接調(diào)試與軟件的調(diào)試。硬件的焊接與調(diào)試側重于原理 設計的正確性驗證和焊接工藝;軟件的調(diào)試則側重于子模塊的功能驗證和模塊與模塊的 接口配合。下面結合本設計實例加以討論。 6.16.1 硬件系統(tǒng)的焊接與調(diào)試硬件系統(tǒng)的焊接與調(diào)試 硬件焊接前首先要仔

46、細核對硬件系統(tǒng)設計原理的正確性,包括參數(shù)選用的正確性與 原理的正確性。確認正確后在通用實驗板直接焊接實際電路來進行實物調(diào)試和驗證。 調(diào)試分為斷電調(diào)試和上電調(diào)試。 第一步:斷電調(diào)試第一步:斷電調(diào)試 為安全起見,首先必須進行斷電調(diào)試。斷電調(diào)試的內(nèi)容至少包括短路檢測和原理正 確性確認。 (1)短路檢測 系統(tǒng)電路焊接完成后,必須進行短路檢測。檢測方法很簡單,選用合適的萬用表歐 姆擋(例如,20k 擋或 200k 擋) ,用紅黑表筆接電路板的+5v 電源的+、-極,如果存在充 放電現(xiàn)象(即電阻指示從大到小再到大或從小到大) ,最后電阻穩(wěn)定在一個適當?shù)奈恢?(一般為幾千歐姆) ,則基本可排除系統(tǒng)短路現(xiàn)象。

47、如果無充放電現(xiàn)象或電阻值穩(wěn)定在很 小的位置(例如幾歐姆) ,則說明系統(tǒng)中可能存在短路故障,不能通電試驗,必須對系統(tǒng) 進行徹底排查,直至解決。 (2)原理正確性確認 關于這個問題,不同的電路有不同的工作原理,因此,必須針對具體電路進行具體 分析。這里按照圖 4-4,檢查各個器件的引腳是否連接正確。 第二步:通電調(diào)試第二步:通電調(diào)試 1) 系統(tǒng)時鐘是否起振 凡是微處理器系統(tǒng),正常運行的必要條件是系統(tǒng)時鐘穩(wěn)定正常。在實際工作中,因 為各種原因導致系統(tǒng)時鐘不正常而出現(xiàn)系統(tǒng)無法正常運行的情況也時有出現(xiàn),因此系統(tǒng) 時鐘是否起振應是通電檢查的首要一環(huán)。檢查方法如下: (1)邏輯筆法。利用邏輯筆看時鐘引腳 1

48、8、19,應出現(xiàn)脈沖跳變現(xiàn)象(即高低電平和 脈沖指示燈同時閃亮) ,否則,說明時鐘沒有起振。 (2)數(shù)字萬用表法。用數(shù)值萬用表的直流電壓擋(20v) ,分別測量 18、19 腳的電壓, 其中讀數(shù)應在 2.5v 左右。 單片機音樂播放器畢業(yè)論文 (3)示波器法。波形應為 6mhz 的脈沖方波。 2)復位電路是否正常 復位不正常也會導致系統(tǒng)不工作,例如,9 腳(復位腳)如果始終為高,則系統(tǒng)始終處于 復位狀態(tài);如果始終為低電平(不能產(chǎn)生復位所需的高電平脈沖),則系統(tǒng)也可能無法正常 工作.檢查的重點是相關電路是否正確。 6.26.2 軟件調(diào)試軟件調(diào)試 結構化軟件的調(diào)試一般可以將重點放在分模塊調(diào)試上,通

49、調(diào)是最后一環(huán)。軟件調(diào)試可 以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,借助于軟件仿真器即可; 后者一般需要仿真系統(tǒng)的支持。在本次設計中利用的是 keil c51 軟件仿真器,其評估版 本可以免費獲取,只是有 2kb 代碼限制。 基于 mcs51 的音樂播放器的設計與實現(xiàn)的調(diào)試,主要集中在對揚聲器的輸出音樂 部分的調(diào)試以及鍵盤控制和 led 顯示部分的調(diào)試上。在編寫完整的音樂播放器程序前, 可以先按照如下的順序分別調(diào)試各個功能模塊的程序。 6.2.16.2.1 測試測試ledled顯示模塊顯示模塊 (1)調(diào)試目的 使用 p2 口作為輸出口實現(xiàn) led 的顯示,從而檢測 p2 口及 l

50、ed 顯示模塊是否正常工 作。 (2)調(diào)試程序 main: mov tmod, #10h ;定時器 t1 工作在方式 1 mov th1, #3ch mov tl1, #0b0h;t=50ms start: mov r1,#00h ;計數(shù)顯示初始化 mov dptr,#tab disp: mov a,r1 movc a,a+dptr ;查表得顯示的字型碼 mov p2,a ;數(shù)碼管顯示 0 acall delay1s ;延時 1s inc r1 ;計數(shù)值加 1 cjne r1,#10,disp ;秒值不到 10,繼續(xù)顯示;否則清 0 單片機音樂播放器畢業(yè)論文 mov r1,#00h ;計數(shù)值清

51、 0 sjmp disp tab: db 0c0h,0f9h,0a4h ;0,1,2 db 0b0h,99h,92h ;3,4,5 db 82h,0f8h,80h ;6,7,8 db 90h ;9 delay1s: ;延時子程序 mov r3,#14h ;置 50ms 計數(shù)循環(huán)初值 setbtr1 ;啟動 t1 lp1: jbc tf1,lp2 ;查詢計數(shù)溢出 sjmp lp1 ;未到 50ms 繼續(xù)計數(shù) lp2: mov th1,#3ch ;重新置定時器初值 mov tl1,#0b0h djnz r3,lp1 ;未到 1s 繼續(xù)循環(huán) ret ;返回主程序 (3)調(diào)試結果 led 數(shù)碼管從 0

52、 到 9 自動循環(huán)顯示,表明硬件與軟件正確。 6.2.26.2.2 測試鍵盤控制模塊測試鍵盤控制模塊 (1)調(diào)試目的 通過鍵盤的控制可使 led 數(shù)碼管顯示相應的內(nèi)容。 (2)調(diào)試程序 getkey: ;讀 a 鍵盤子程序 sa: jb p1.0, sb ;讀 a lcalldelay2 jb p1.0, sa jnb p1.0, $ mov p2, #10001000b;顯示 a mov r5, #10001000b mov a, #0ffh mov b, #0ah ret 單片機音樂播放器畢業(yè)論文 (3)調(diào)試結果 鍵盤按下后 led 顯示相應的內(nèi)容,表明軟硬件正確。 6.2.36.2.3

53、測試測試p3.0p3.0口輸出口輸出 (1)調(diào)試目的 使用 p3.0 口做輸出口使揚聲器工作 (2)調(diào)試程序 start: mov sp, #60h mov tmod, #11h mov ie, #8ah mov ip, #08h ;t1 中斷優(yōu)先于 t0 中斷 mov th1, #3ch mov tl1, #0b0h;以上為系統(tǒng)初始化,t=50ms here:sjmp here int_t0: clr tr0 mov tl0, 20h mov th0, 21h cpl p3.0 setbtr0 reti (3)調(diào)試結果 揚聲器有聲音發(fā)出,揚聲器正常工作。 6.36.3 調(diào)試中遇到的問題及解決

54、調(diào)試中遇到的問題及解決 (1)編程前要畫流程圖,這樣會使思路清晰。 (2)編程時要注意,在程序開始時,要寫入各定時器中斷的入口地址。 (3)有時會出現(xiàn)程序一點錯誤也沒有,但就是不能正常運行的現(xiàn)象,最后我們發(fā)現(xiàn) 是因為程序中有的指令書寫得不規(guī)范導致的,例如有的 ret 返回指令一定要按正確格式 書寫。 單片機音樂播放器畢業(yè)論文 (4)程序中的跳轉指令的運用很重要,為保險起見,都用 ljmp,我們就遇到過跳轉指 令用錯程序無法正常運行的現(xiàn)象。 (5)編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便 于查找或更改。 (6)開始時候沒有將單片機的第 31 號引腳接到高電平,結果使音樂播放器的播放 性能不穩(wěn)定(有時候能工作,有時候卻工作不了) ,當接一高電平以后,播放器能正常工 作了。 (7)開始沒有考慮鍵盤的消抖,造成的按鍵工作紊亂,具體的現(xiàn)象是:按 1 次鍵卻 被要機器認為是按了 1 次或多次,這就使播放器有時候可以正常工作,有時候卻不可以。 給鍵盤程序加了消抖呼程序以后,按鍵就工作正常了。 (8)兩個定時器同時工作,存在中斷時序問題,剛開始時我們把定時器 1 設定在方 式 3,計 250us

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論