基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 畢業(yè)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 畢業(yè)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 畢業(yè)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 畢業(yè)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(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、2012 屆畢業(yè)設(shè)計(jì)(論文)論文題目:基于單片機(jī)的音樂(lè)播放器設(shè)計(jì) 系 別: 機(jī)電系專 業(yè): 應(yīng)用電子技術(shù)班 級(jí): 09 應(yīng)電 32學(xué)生姓名: 方榮祥學(xué) 號(hào): 090103223指導(dǎo)老師: 曹雙蘭 提交時(shí)間: 2012 年 1 月基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)2摘 要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)新月異更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。本設(shè)計(jì)是以單片機(jī)at89c51為核心數(shù)據(jù)處理器件,由lcd液晶顯示屏lm016

2、l顯示歌曲的曲號(hào)、播放時(shí)間、開(kāi)機(jī)畫(huà)面及鍵號(hào),開(kāi)機(jī)畫(huà)面為交替顯示welcomhere和作者姓名,采用4*4行形式鍵盤實(shí)現(xiàn)曲號(hào)的選擇,其中1a號(hào)按鍵用來(lái)選擇曲號(hào),c鍵控制下一曲,d鍵控制上一曲,e鍵控制播放/暫停,f鍵為開(kāi)機(jī)畫(huà)面顯示,元件以低消耗、高能、耐用、精確、易于操作等為優(yōu)先考慮因素。采用鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器t0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器t1,顯示樂(lè)曲播放的時(shí)間,并驅(qū)動(dòng)lcd,顯示歌曲號(hào)及播放時(shí)間。at89c51單片機(jī)的內(nèi)存小,就用了一個(gè)74ls373鎖存器和27512外部擴(kuò)展芯片對(duì)該單片機(jī)進(jìn)行了內(nèi)存的擴(kuò)充,增大了它的存儲(chǔ)空間,讓他可以存儲(chǔ)足夠

3、多的歌曲。本論文詳細(xì)介紹了其硬件結(jié)構(gòu)和設(shè)計(jì)方法,整個(gè)設(shè)計(jì)簡(jiǎn)單實(shí)用,功能完整。關(guān)鍵詞關(guān)鍵詞: 音樂(lè)播放 單片機(jī) 液晶顯示基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)3目錄前言.5第一章 系統(tǒng)的方案論證與分析.6第二章 硬件設(shè)計(jì).9 2.1 電路組成及工作原理 .92.1.1 電路組成.92.1.2 電路工作原理 .9 2.2 at89c51 的簡(jiǎn)介.9 2.2.1 at89c51 功能概述.9 2.2.2 at89c51 的管腳圖.10 2.2.3 at89c51 單片機(jī)的引腳介紹.10 2.3 晶振電路.11 2.4 揚(yáng)聲器電路.11 2.5 顯示電路.12 2.6 更換歌曲電路.13 2.7 復(fù)位電路.13

4、2.8 程序存儲(chǔ)外部擴(kuò)展電路.14 2.9 液晶顯示原理及分類 .15 2.9.1 液晶顯示原理 .15 2.9.2 液晶顯示器的分類 .15 2.9.3 液晶顯示器各種圖形的顯示原理及 lcd1602 簡(jiǎn)介.15第三章 軟件系統(tǒng)設(shè)計(jì).18 3.1 軟件流程設(shè)計(jì).18基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)4 3.2 性能分析 .20第四章 音樂(lè)播放器的仿真及分析.21 4.1 keil uvision 2 軟件簡(jiǎn)介.21 4.2 keil 的調(diào)試.22 4.3 proteus 仿真圖及過(guò)程.22結(jié)論.24參考文獻(xiàn).25謝辭.26附錄一 protel 原理圖 .27附錄二 protel 仿真圖.28附錄三

5、程序清單 .29基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)5前 言 電子音樂(lè)是現(xiàn)代音樂(lè)的一種形式,是一種與古典截然不同的音樂(lè)形式。而今,越來(lái)越多鐘情于電子音樂(lè)的音樂(lè)家們相信,通過(guò)電流產(chǎn)生的聲音打破音樂(lè)的結(jié)構(gòu)及人們習(xí)慣的聽(tīng)覺(jué)經(jīng)驗(yàn),人與人之間的情感是可以溝通的。電子音樂(lè)是一種科技的見(jiàn)證。也就是說(shuō),借助電子音樂(lè),技術(shù)可以見(jiàn)證音樂(lè),音樂(lè)可以見(jiàn)證技術(shù)。電子音樂(lè)是對(duì)傳統(tǒng)音樂(lè)的延承和背叛,它緊密地依偎著這個(gè)“科技與信息”的時(shí)代。音樂(lè)電聲的一個(gè)重要內(nèi)容就是電子音樂(lè)。電子琴的出現(xiàn),開(kāi)辟了音樂(lè)的一個(gè)新天地。但是自從電子合成器問(wèn)世以來(lái),電子音樂(lè)就又進(jìn)入了一個(gè)更高的階段。 目前,由于電子音樂(lè)的普及,電子合成器(合成器實(shí)際上是一臺(tái)聲音

6、的頻率合成儀,可以制作各種聲音,改變各種音色)可以解決相當(dāng)一部分的歌唱及舞廳的伴奏問(wèn)題??梢允孪戎谱靼樽嘁魳?lè)或背景音樂(lè),而不需要樂(lè)隊(duì),或者部分代替樂(lè)隊(duì)。由于音樂(lè)合成器制作和修改方便,成本低,音樂(lè)豐滿,所以市場(chǎng)需求量很大,因此,世界許多國(guó)家的廠商都不斷地在發(fā)展并推出新的型號(hào),每年都要更新?lián)Q代。當(dāng)前的發(fā)展趨勢(shì)是不斷的采用先進(jìn)技術(shù),例如有的合成器有“跟隨”功能,即經(jīng)預(yù)置,每一個(gè)音后可以跟隨一個(gè)二度或三度音, “重疊”功能,輕奏或重奏時(shí)可以發(fā)不同音調(diào)或音色;另外,合成器還向輕便、使用操作方便等方向發(fā)展。熟練的運(yùn)用 89c51 單片機(jī)定時(shí)器產(chǎn)生固定頻率的方波信號(hào),推動(dòng)喇叭發(fā)出旋律,按下單鍵可以演奏預(yù)先設(shè)

7、置的歌曲旋律,最重要的是自己還可以通過(guò)程序設(shè)計(jì)輸入自己喜歡的歌曲來(lái)演奏中,本設(shè)計(jì)采用簡(jiǎn)易音階編碼直覺(jué)式輸入法方便設(shè)計(jì)音樂(lè)旋律,可以擴(kuò)充其功能如下:(1)可以顯示歌曲的名稱;(2)可以設(shè)置睡眠關(guān)機(jī)時(shí)間;(3)可以設(shè)置歌曲的播放模式,單曲循環(huán)還是順序播放;(4)可以存儲(chǔ)多首歌曲?;趩纹瑱C(jī)的音樂(lè)播放器設(shè)計(jì)6第一章 系統(tǒng)的方案論證與分析方案一利用 at89c51、74ls373 鎖存器和 27512 外部擴(kuò)展組成的音樂(lè)播放器(1)硬件設(shè)計(jì) 揚(yáng)聲電路數(shù)碼管晶振電路更換歌曲電路(2)軟件設(shè)計(jì)程序中根據(jù)音選取的是 c 調(diào)三個(gè) 8 度內(nèi)的音符,共 24 個(gè)音階。每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器 t0 產(chǎn)生。為了程序

8、調(diào)用方便,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。在程序中以查表的方式加載計(jì)數(shù)初值。當(dāng)值為 00h 時(shí)表示空拍,與節(jié)拍碼配合完成節(jié)拍發(fā)音。節(jié)拍碼也占一個(gè)字節(jié),每個(gè)音符的時(shí)間長(zhǎng)度等于基本時(shí)間乘以節(jié)拍碼的值,由定時(shí)器產(chǎn)生。當(dāng)節(jié)拍碼值為 01h 時(shí),表示當(dāng)前樂(lè)曲結(jié)束,為 00h 時(shí),表示全部樂(lè)曲結(jié)束。為了編碼簡(jiǎn)單,一般節(jié)拍碼高半字節(jié)表示整拍,低半字節(jié)表示分?jǐn)?shù),只要基本延時(shí)設(shè)定恰當(dāng)即可并且在按開(kāi)始按鈕后,可以播放歌曲。在播放程序中設(shè)置三個(gè)變量,分別用于用于存放時(shí)、分、秒,每次定時(shí)中斷發(fā)生時(shí),對(duì)基準(zhǔn)時(shí)間計(jì)數(shù),當(dāng)達(dá)到一秒時(shí),把秒加一,達(dá)到一分時(shí),將分加一同時(shí)調(diào)用數(shù)碼管顯示子程序,將時(shí)分秒分別拆分為個(gè)位、十位

9、進(jìn)行顯示。利用外部中斷 1、2 實(shí)現(xiàn)上一曲、下一曲以及暫停功能,設(shè)置一個(gè)計(jì)數(shù)變量,檢測(cè)到上一曲或下一曲按下時(shí),分別對(duì)計(jì)數(shù)變量加一或減一,檢測(cè)到暫停被按下時(shí),等待按鍵再一次按下后,繼續(xù)播放,方案中歌曲的循環(huán)模式為列表循環(huán)。方案二(1)硬件設(shè)計(jì)電路以 at89c51 為主控制器,74ls373 和 27512 進(jìn)行外部程序存儲(chǔ)器的擴(kuò)展,采用利用 4x4 組成的 16 個(gè)按鈕矩陣鍵盤來(lái)實(shí)現(xiàn)對(duì)播放的控制,其中包括下一曲、上一曲、暫停按鈕(分別為 c、d、e 鍵) ,當(dāng)按下 1a 其中的一個(gè)時(shí),跳到相應(yīng)的曲譜進(jìn)行演奏,顯示電路采用六個(gè)共陰極數(shù)碼管進(jìn)行顯示,晶振采用 12mhz,音樂(lè)信號(hào)由 p30 口輸出

10、,經(jīng)喇叭發(fā)聲而播放歌曲,如圖 2-2 所示。at89c51 單片機(jī)復(fù)位電路存儲(chǔ)器擴(kuò)展電路圖 2-1 方案一框架圖基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)7(2)軟件設(shè)計(jì)程序中音選取的是 c 調(diào)三個(gè) 8 度內(nèi)的音符,共 24 個(gè)音階。每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器 t0 產(chǎn)生。為了程序調(diào)用方便,演奏時(shí)時(shí)每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。在程序中以查表的方式加載計(jì)數(shù)初值,為了編碼簡(jiǎn)單,一般節(jié)拍高半字節(jié)表示整拍,低半字節(jié)表示分?jǐn)?shù),只要基本延時(shí)設(shè)定恰當(dāng)即可,為了及時(shí)響應(yīng)鍵盤操作,程序的編寫(xiě)以鍵盤掃描為主線編寫(xiě)(即主程序循環(huán)掃描按鍵,在按鍵模塊中調(diào)用其他功能模塊),按鍵每按下一次,按鍵掃描模塊計(jì)算出鍵值,并儲(chǔ)存鍵值,根

11、據(jù)鍵值跳轉(zhuǎn)至響應(yīng)的標(biāo)號(hào)執(zhí)行程序,播放相應(yīng)的歌曲,歌曲循環(huán)模式為單曲循環(huán),其他功能的實(shí)現(xiàn)與方案一類同。方案三(1)硬件設(shè)計(jì)電路以 at89c51 為主控制器,采用利用 4x4 組成的 16 個(gè)按鈕矩陣鍵盤來(lái)上實(shí)現(xiàn)對(duì)播放的控制,其中 c、d、e 分別為功能鍵上一曲、下一曲以及暫停。f 鍵為開(kāi)機(jī)畫(huà)面顯示,1a 號(hào)按鍵中每按一個(gè)鍵,跳到相應(yīng)的曲譜進(jìn)行演奏,顯示電路采用液晶顯示器 lm016l 進(jìn)行顯示,晶振采用 12mhz,音樂(lè)信號(hào)由 p30 口輸出,經(jīng)喇叭發(fā)聲而播放歌曲,如圖 2-3 所示。晶振電路4*4 矩陣鍵盤揚(yáng)聲器電路復(fù)位電路數(shù)碼管存儲(chǔ)器擴(kuò)展電路at89c51 單片機(jī)圖 2-2 方案二框架圖基

12、于單片機(jī)的音樂(lè)播放器設(shè)計(jì)8(2)軟件設(shè)計(jì)程序中音選取的是 c 調(diào)一個(gè) 8 度內(nèi)的音符,共 7 個(gè)音階。根據(jù)十二平均律, (即將八度定義為 1200 音分,其中全因音符占 200 音分,半音占 100 音分,共十二個(gè)半音)每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器 t0 產(chǎn)生。為了程序調(diào)用方便,將十二個(gè)半音的定時(shí)器初值放于表中,演奏時(shí)無(wú)需計(jì)算定時(shí)器初值,在程序中以查表的方式加載計(jì)數(shù)初值,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。由于人耳的分辨力有限,為了編程簡(jiǎn)單,曲譜中的節(jié)拍碼用延時(shí)來(lái)代替,每個(gè)音符發(fā)音 30ms。由于采用的是矩陣式鍵盤,為了及時(shí)響應(yīng)按鍵,程序的編寫(xiě)以鍵盤掃描為主線編寫(xiě)(即主程序循環(huán)掃描按鍵,在按鍵模

13、塊中調(diào)用其他功能模塊) 。按鍵每按下一次,按鍵掃描模塊計(jì)算出鍵值,并儲(chǔ)存鍵值,跳轉(zhuǎn)至響應(yīng)的標(biāo)號(hào)執(zhí)行程序,并調(diào)用液晶顯示子程序,將鍵值在液晶顯示器制定位置顯示,如果檢測(cè)到 f 鍵被按下,調(diào)用液晶顯示模塊,顯英文字符歡迎,以及作者信息,本程序中,由于音符的長(zhǎng)度是固定的 30ms,t1 用于更新剩余時(shí)間。剩余時(shí)間的顯示同上。方案比較從以上三種方案,方案一采用的是獨(dú)立式按鍵,按鍵太少,不能實(shí)現(xiàn)歌曲的快速選擇,幾乎沒(méi)有拓展功能的可能,而方案二雖然采用的是矩陣式鍵盤,無(wú)論從擴(kuò)展功能上將還是快速選擇都優(yōu)于方案一,但數(shù)碼管顯示不穩(wěn)定,編程以及困難,占用 cpu 時(shí)序太多,方案三顯然不存在方案一、方案二的缺點(diǎn),

14、使用了液晶顯示屏,編程簡(jiǎn)單,顯示穩(wěn)定,占用 cpu 時(shí)序少,并且可以實(shí)現(xiàn)許多方案一、方案二無(wú)法實(shí)現(xiàn)的功能,無(wú)論是矩陣式鍵盤,還是液晶顯示器,都有許多可擴(kuò)展的功能,并且在播放音樂(lè)時(shí)簡(jiǎn)單實(shí)用,在使用上及其功能的實(shí)現(xiàn)上都優(yōu)于前兩種方案。更重要的是液晶顯示器是當(dāng)今電子設(shè)計(jì)的主流,通過(guò)這次設(shè)計(jì),我能夠?qū)W習(xí)到許多東西。通過(guò)方案對(duì)比,最終選擇方案三,音樂(lè)發(fā)生器電路原理圖見(jiàn)附錄所示。at89c51 單片機(jī)晶振電路4*4 矩陣鍵盤揚(yáng)聲器電路圖 2-3 方案三框架圖復(fù)位電路液晶顯示屏存儲(chǔ)器擴(kuò)展電路基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)9第二章 硬件設(shè)計(jì)2.1 電路組成及工作原理2.1.1 電路組成音樂(lè)發(fā)生器的電路設(shè)計(jì)方框圖如

15、上圖方案三所示,電路原理圖見(jiàn)附錄 1 所示,主要由單片機(jī)控制系統(tǒng)、行列式鍵盤、液晶顯示屏、內(nèi)存外部擴(kuò)充電路、復(fù)位電路等組成。單片機(jī) at89c51 是本系統(tǒng)的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作。在其外圍接上:復(fù)位電路、液晶顯示屏、按鈕及揚(yáng)聲器。元件為:晶振 x1、電容、電阻、揚(yáng)聲器、4*4 行列式鍵盤、74ls373 鎖存器、27512 外部程序存儲(chǔ)器擴(kuò)展、lm016l 液晶顯示屏。硬件電路中用 p1.0p1.7 控制按鍵,其中 p1.0p1.3 掃描行,p1.4p1.7掃描列,用,p2.0p2.2 作為 lcd 的 rs,r/w,e 的控制信號(hào)。用 p0.0p0.7 作為 lcd的 d0d

16、7 的控制信號(hào)。用 p3.7 口控制蜂鳴器,電路為 12mhz 晶振頻率工作,起振電路中 c1,c2 均為 30pf。將 p0 口作為 74ls373 鎖存器的輸入以及 27c512 的數(shù)據(jù)輸入口,鎖存器輸出至 27c512 的低八位地址口,將 p2 口作為 27c512 高八位地址口,27c512 的控制信號(hào) oe/vpp 接至單片機(jī)的 psen,實(shí)現(xiàn)片外 rom 的讀寫(xiě)控制。2.1.2 電路工作原理本音樂(lè)發(fā)生器是用單片機(jī)來(lái)設(shè)計(jì)制作完成,其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成, at89c51 單片機(jī)片內(nèi)帶有 4kb 和外部程序存儲(chǔ)器擴(kuò)展的 256k 的內(nèi)存,并且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。

17、該音樂(lè)發(fā)生器的效率較高,其誤差主要由晶振自身的誤差所造成。存儲(chǔ)歌曲是采用的外部擴(kuò)展,4*4 行列式鍵盤來(lái)實(shí)現(xiàn)的,按鍵將單片機(jī) i/0 口的電平拉低,單片機(jī)檢測(cè)到 i/o 口電平為 0 時(shí),判斷并存儲(chǔ)鍵值。并自動(dòng)跳轉(zhuǎn)至相應(yīng)曲號(hào)的標(biāo)號(hào)處執(zhí)行代碼。顯示采用的是液晶顯示屏 lm016l,顯示穩(wěn)定清晰,并且能顯示多個(gè)信息,當(dāng)片內(nèi) 4k 的程序存儲(chǔ)器存滿后,自動(dòng)跳轉(zhuǎn)到片外256k 程序存儲(chǔ)器繼續(xù)存儲(chǔ)。2.2 at89c51 的簡(jiǎn)介2.2.1 at89c51 功能概述自從 1971 年微型計(jì)算機(jī)問(wèn)世以來(lái),隨著大規(guī)模集成電路技術(shù)的進(jìn)一步發(fā)展,導(dǎo)致微型計(jì)算機(jī)正向兩個(gè)主要方向發(fā)展:一是高速度、高性能、大容量的高檔

18、微型機(jī)及其系列化向大、中型計(jì)算機(jī)的挑戰(zhàn);另一個(gè)是穩(wěn)定可靠、小而廉、能適應(yīng)各種控制領(lǐng)域需要的單片機(jī)。mcs51 系列是 intel 公司在 1980 年推出的高檔 8 位單片機(jī),具有性能價(jià)格比高、品種多、兼容性強(qiáng)、開(kāi)發(fā)用的仿真機(jī)較完善等優(yōu)點(diǎn),所以在國(guó)際上和國(guó)內(nèi)的占有率相當(dāng)高。它擁有 8 位微處理器和控制器,內(nèi)含一個(gè)一位布爾運(yùn)算處理器,可直接對(duì)數(shù)據(jù)的位進(jìn)行操作和運(yùn)算,特別適用于邏輯控制。內(nèi)部含有 4kb 的程序 rom 并且在外部擴(kuò)展了 256k 的存儲(chǔ)空間,2 個(gè) 16 位的計(jì)數(shù)/定時(shí)器。本次采用的是at89c51 單片機(jī),其電路如 3-1 所示,它的中斷功能比較強(qiáng),有 5 個(gè)中斷源,即外部中斷

19、 2 個(gè),定時(shí)器中斷 2 個(gè),串行中斷 1 個(gè),有 2 個(gè)中斷優(yōu)先級(jí)。中斷控制電路主要包括用于中斷控制的四個(gè)寄存器:定時(shí)器控制寄存器 tcon,串行口控制寄存器scon,中斷允許控制寄存器 ie,中斷優(yōu)先級(jí)控制寄存器 ip 等。內(nèi)部時(shí)鐘振蕩器,全雙工方式的串行接口(uart) ,兩極中斷優(yōu)先權(quán)的 6 個(gè)中斷源/5 個(gè)中斷矢量的中斷邏輯。哈佛結(jié)構(gòu)的存儲(chǔ)器組織,支持高達(dá) 64k 為單周期指令,支持六種尋址方式。基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)10最高時(shí)鐘振蕩頻率可達(dá) 12mhz,大部分指令執(zhí)行時(shí)間為 1s,乘、除指令為 4s。2.2.2 at89c51 的管腳圖mcs-51 系列單片機(jī)采用 40 引腳雙

20、列直插式封裝(dip) ,其引腳排列和邏輯符號(hào)如圖 2-2 所示,4 個(gè)并行口共有 32 根引腳,可分別作地址線、數(shù)據(jù)線和 i/o 線;2 根電源線;2 根時(shí)鐘振蕩電路引腳和 4 根控制線。2.2.3 at89c51 單片機(jī)的引腳介紹at89c51 單片機(jī)是高性能單片機(jī),因?yàn)槭芤_數(shù)目的限制,所以有許多引腳具有第二功能,各引腳功能說(shuō)明如下:(1)輸入/輸出口線a0 . 0p 7 . 0p 0p口 8 位雙向口線b0 . 1p 7 . 1p 1p口 8 位雙向口線c0 . 2p 7 . 2p 2p口 8 位雙向口線d0 . 3p 7 . 3p 3p口 8 位雙向口線(2)ale 地址鎖存控制信號(hào)

21、在系統(tǒng)擴(kuò)展時(shí),ale 用于控制把0p口輸出的底 8 位地址送入鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外由于 ale 是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此可作為外部時(shí)鐘或外部定時(shí)脈沖使用。ea/v xtal1xtal2rst/v rdwrint0int1t0t1p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7psenale/progtxdrxdpppd803180518751ea/v xtal1xtal2rst/v p3.7/rd

22、p3.6/wrp3.2/int0p3.3/int1p3.4/t0p3.5/t1p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7psenale/progp3.1/txdp3.0/rxdvssvcc12345678910111213141516171819202122232425262728293031323334353637383940pdpp803180518751a)b)圖 2-2 at89c51 芯片引腳圖基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)11(3)pse

23、n外部程序存儲(chǔ)器讀選通信號(hào)在讀外部 rom 時(shí)psen有效(低電平) ,以實(shí)現(xiàn)外部 rom 單元的讀操作。(4)ea訪問(wèn)程序存儲(chǔ)器控制信號(hào)當(dāng)ea信號(hào)為低電平時(shí),對(duì) rom 的讀操作限定在外部程序存儲(chǔ)器;而當(dāng)ea信號(hào)為高電平時(shí),對(duì) rom 的讀操作是從內(nèi)部程序存儲(chǔ)器開(kāi)始,并可延續(xù)至外部程序存儲(chǔ)器。(5)rst 復(fù)位信號(hào)當(dāng)輸入的復(fù)位信號(hào)延續(xù) 2 個(gè)機(jī)器周期以上高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位操作。(6)xtal1 和 xtal2 外接晶體引線端當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),這兩個(gè)引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。(7)電源、地線 gndvcc、gnd。vcc

24、 一般接+5v 電源,gnd 接地。2.3 晶振電路mcs-51 片內(nèi)有一個(gè)高增益的反相放大器,其輸入端為引腳 xtal1 和輸出端為引腳為 xtal2,用于外接石英晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,如圖 2-3 所示。電容 c1 和 c2 對(duì)頻率有微調(diào)作用,電容一般取 20pf 左右。晶體振蕩頻率范圍是 12mz12mhz,一般情況下,選用振蕩頻率為 12mhz 的石英晶體。振蕩脈沖信號(hào)經(jīng)過(guò)內(nèi)部時(shí)鐘發(fā)生器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘信號(hào)。2.4 揚(yáng)聲器電路本設(shè)計(jì)是采用蜂鳴器用來(lái)發(fā)出聲音,由于在實(shí)際應(yīng)用中,單片機(jī)輸出的標(biāo)準(zhǔn)高電平為 5 伏,

25、輸出功率很有限,所以本設(shè)計(jì)中,理論聯(lián)系實(shí)際,用一個(gè) pnp 型三極管驅(qū)動(dòng)蜂鳴器,由于三極管具有放大作用,在實(shí)際應(yīng)用中,輸出功率將會(huì)提高很多。 圖 2-3 晶振電路基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)12 2.5 顯示電路本設(shè)計(jì)顯示是采用液晶顯示器 lm016l 進(jìn)行顯示, lm016l 的功能、顯示原理以及使用方法將會(huì)在后文中介紹,p0 口是一個(gè)地址/數(shù)據(jù)復(fù)用的雙向 i/o 口,當(dāng)使用p0 口訪問(wèn)外部存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器時(shí),p0 口內(nèi)部已有上拉電阻,當(dāng) p0 口作程序檢驗(yàn),輸出指令字節(jié)時(shí),必須外接上拉電阻。lm016l 的控制信號(hào) rs、rw、e 分別接到單片機(jī)的 p2.0、p2.1、p2.2。本設(shè)計(jì)中主

26、要用 lm016l 顯示開(kāi)機(jī)畫(huà)面、作者信息、播放剩余時(shí)間、歌曲號(hào)/鍵號(hào)。電路如圖 2-5 所示圖 2-5 顯示電路圖 2-4 揚(yáng)聲器電路基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)132.6 更換歌曲電路采用 4*4 行列式鍵盤來(lái)實(shí)現(xiàn)選擇歌曲播放,以及對(duì)歌曲號(hào)做基本的操作,即上一曲、下一曲以及暫停/播放。在本設(shè)計(jì)中 1-a 號(hào)按鍵用于選擇歌曲的曲號(hào)播放,c、d、e 分別為下一曲、上一曲、播放/暫停按鈕,此外 f 鍵用于開(kāi)機(jī)畫(huà)面顯示,0號(hào)按鍵在本設(shè)計(jì)中未使用,留作擴(kuò)展功能使用。用 p1.0p1.7 控制按鍵,其中p1.0p1.3 掃描行,p1.4p1.7 掃描列。電路如圖 2-6 所示。 2.7 復(fù)位電路at89

27、c51 的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳 rst 通過(guò)一個(gè)施密特觸發(fā)器用來(lái)抑制噪聲,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。本設(shè)計(jì)是采用上電自動(dòng)復(fù)位,上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要 vcc 的上升時(shí)間不超過(guò) 1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。時(shí)鐘頻率用12mhz 時(shí) c 取 20pf。2.8 程序存儲(chǔ)器外部擴(kuò)展電路本設(shè)計(jì)是采用了一個(gè) 74ls373 鎖存器和一個(gè) 27512 程序存儲(chǔ)器外部擴(kuò)展組成,其主要的功能就是為了在外部擴(kuò)展單片機(jī)內(nèi)存,使它有足夠的空間存放系統(tǒng)中的程圖 2-6 選擇及更換歌曲電路圖 2-7 復(fù)位電路基于

28、單片機(jī)的音樂(lè)播放器設(shè)計(jì)14序,而達(dá)到使它實(shí)現(xiàn)所要得到的功能和應(yīng)用的領(lǐng)域,其圖如圖 2-8 所示2.9 液晶顯示原理及分類2.9.1 液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、pda 移動(dòng)通信工具等眾多領(lǐng)域。2.9.2 液晶顯示器的分類液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動(dòng)方式來(lái)分,可以分為靜態(tài)驅(qū)動(dòng)(stat

29、ic) 、單純矩陣驅(qū)動(dòng)(simple matrix)和主動(dòng)矩陣驅(qū)動(dòng)(active matrix)三種。2.9.3 液晶顯示器各種圖形的顯示原理:(1) 線段的顯示點(diǎn)陣圖形式液晶由 mn 個(gè)顯示單元組成,假設(shè) lcd 顯示屏有 64 行,每行有128 列,每 8 列對(duì)應(yīng) 1 字節(jié)的 8 位,即每行由 16 字節(jié),共 168=128 個(gè)點(diǎn)組成,屏上 6416 個(gè)顯示單元與顯示 ram 區(qū) 1024 字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由 ram 區(qū)的 000h00fh 的 16 字節(jié)的內(nèi)容決定,當(dāng)(000h)=ffh 時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為

30、 8 個(gè)點(diǎn);當(dāng)(3ffh)=ffh 時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000h)=ffh, (001h)=00h, (002h)=00h,(00eh)=00h, (00fh)=00h 時(shí),則在屏幕的頂部顯示一圖 2-8 存儲(chǔ)器擴(kuò)展電路基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)15條由 8 段亮線和 8 條暗線組成的虛線。這就是 lcd 顯示的基本原理。(2) 字符的顯示用 lcd 顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由 68 或 88 點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示 ram 區(qū)的 8 字節(jié),還要使每字節(jié)的不同位為“1” ,其它的為“0” ,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來(lái)就組成

31、某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō),顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在 lcd 上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示 ram 對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。(3) 漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件) ,每個(gè)漢字占 32b,分左右兩半,各占 16b,左邊為1、3、5右邊為 2、4、6根據(jù)在 lcd 上開(kāi)始顯示的行列號(hào)及每行的列數(shù)可找出顯示 ram 對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)直到 32b 顯示完就可以 l

32、cd 上得到一個(gè)完整漢字。2.9.3 lcd1602 簡(jiǎn)介lm016l 與 lcd1602 原理是一樣的,只不過(guò) proteus 中 016 沒(méi)顯示調(diào)1602lcd 主要技術(shù)參數(shù):顯示容量:162 個(gè)字符芯片工作電壓:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓:5.0v字符尺寸:2.954.35(wh)mm(1) 引腳功能說(shuō)明:1602lcd 采用標(biāo)準(zhǔn)的 14 腳(無(wú)背光)或 16 腳(帶背光)接口,各引腳接口說(shuō)明如表 4-1 所示:表 4-1:引腳接口說(shuō)明表引腳名稱omingcheng符號(hào)引腳說(shuō)明引腳名稱引腳說(shuō)明vss電源地d2d2數(shù)據(jù)vdd電源正極d3d3數(shù)據(jù)vl液晶顯

33、示偏壓d4d4數(shù)據(jù)rsrs數(shù)據(jù)/命令選擇d5d5數(shù)據(jù)r/w讀/寫(xiě)選擇d6d6數(shù)據(jù)e使能信號(hào)d7d7數(shù)據(jù)d0d0數(shù)據(jù)led+bla背光源正極d1d1數(shù)據(jù)led-blk背光源負(fù)極基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)16第 1 腳:vss 為地電源。第 2 腳:vdd 接 5v 正電源。第 3 腳:vl 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè) 10k 的電位器調(diào)整對(duì)比度。第 4 腳:rs 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第 5 腳:r/w 為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng) rs和 r

34、/w 共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng) rs 為低電平 r/w為高電平時(shí)可以讀忙信號(hào),當(dāng) rs 為高電平 r/w 為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第 6 腳:e 端為使能端,當(dāng) e 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第 714 腳:d0d7 為 8 位雙向數(shù)據(jù)線。第 15 腳:背光源正極。第 16 腳:背光源負(fù)極。(2) 1602lcd 的指令說(shuō)明及時(shí)序1602 液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1 為高電平、0 為低電平)指令 1:清顯示,指令碼 01h,光標(biāo)復(fù)位到地址 00h 位置。指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00h。指令 3:光標(biāo)和

35、顯示模式設(shè)置 i/d:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令 4:顯示開(kāi)關(guān)控制。 d:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 c:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令 5:光標(biāo)或顯示移位 s/c:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令 6:功能設(shè)置命令 dl:高電平時(shí)為 4 位總線,低電平時(shí)為 8 位總線 n:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 f: 低電平時(shí)顯示 5x7 的點(diǎn)陣字符,高電平時(shí)顯示 5x10 的點(diǎn)陣字符。指令 7

36、:字符發(fā)生器 ram 地址設(shè)置。指令 8:ddram 地址設(shè)置。指令 9:讀忙信號(hào)和光標(biāo)地址 bf:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令 10:寫(xiě)數(shù)據(jù)。指令 11:讀數(shù)據(jù)?;趩纹瑱C(jī)的音樂(lè)播放器設(shè)計(jì)17第三章 軟件系統(tǒng)設(shè)計(jì)3.1 軟件流程設(shè)計(jì)本設(shè)計(jì)采用了自定下下的設(shè)計(jì)流程,即在編制一個(gè)程序時(shí),先考慮程序的總體結(jié)構(gòu)而忽略一些細(xì)節(jié)問(wèn)題,然后逐步的一步一步的細(xì)化,直至用程序語(yǔ)言完全描述每一個(gè)細(xì)節(jié)為止。主要程序流程有:主程序、判斷有無(wú)按鍵子程序、鍵盤掃描子程序、顯示鍵號(hào)/歌曲號(hào)子程序、開(kāi)機(jī)畫(huà)面子程序、按鍵值播放歌曲子程序、播放時(shí)間初始化子程序、液晶顯示屏寫(xiě)

37、指令子程序、液晶顯示屏寫(xiě)數(shù)據(jù)、字符串顯示子程序播放時(shí)間顯示子程序、播放歌曲子程序、播放時(shí)間更新子程序。程序中使用了兩個(gè)定時(shí)中斷,定時(shí)中斷 0 用于產(chǎn)生整個(gè)音程的頻率,以便驅(qū)動(dòng)揚(yáng)聲器。定時(shí)器 t1 用于刷新播放時(shí)間,當(dāng)發(fā)生一秒定時(shí)中斷時(shí),將秒加一,達(dá)到 60 秒時(shí),將分加一,達(dá)到60 分時(shí),將時(shí)加一。程序設(shè)置了溢出處理,即當(dāng)時(shí)間為 23:59:59 時(shí),自動(dòng)將時(shí)間更新為 00:00:00。程序的總體流程是當(dāng) p1 由按鍵按下時(shí),讀鍵盤,并儲(chǔ)存鍵值,若為 f 鍵則通過(guò)查表的方式,調(diào)用字符串顯示子程序顯示開(kāi)機(jī)畫(huà)面,同時(shí)用查表的方式求出鍵號(hào)的 ascii 值,并調(diào)用顯示鍵號(hào)/曲號(hào)自稱序,將鍵號(hào)顯示出來(lái)

38、。若為 1-a,程序根據(jù)儲(chǔ)存的鍵號(hào),將相應(yīng)歌曲的表頭地址賦給 dptr,取出曲譜,判斷是否為休止符,通過(guò)查表的方式將表中的定時(shí)器初值裝入定時(shí)器 t0,在定時(shí)中斷 0里面,重裝初值,將輸出口取反,完成發(fā)聲。本設(shè)計(jì)中,每發(fā)一個(gè)調(diào),調(diào)用一個(gè)30ms 的延時(shí),一次當(dāng)做曲譜的節(jié)拍碼。在此過(guò)程中若有功能鍵按下,將當(dāng)前歌曲的表頭地址加 513/減 513 或等待。于此同時(shí)調(diào)用播放時(shí)間初始化子程序,顯示00:00:00,裝定時(shí)器 t1 的初值,準(zhǔn)備更新播放時(shí)間。程序流程圖如圖 4-1 所示:基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)18單曲唱完?否是是是否是全部唱完?結(jié)束否是是開(kāi)機(jī)畫(huà)面無(wú)否否否開(kāi)始液晶初始化內(nèi)存初始化有無(wú)按鍵

39、?判斷鍵值并存儲(chǔ)取鍵值 ascii 碼顯示有f 鍵?1-a 鍵?鍵?播放時(shí)間初始化按鍵值存儲(chǔ)相應(yīng)曲譜首地址取樂(lè)譜進(jìn)行演奏有無(wú)功能鍵?裝 t1 初值刷新播放時(shí)間暫停?再一次按下?等待是否是有無(wú)下 1 曲曲?樂(lè)譜首地址加 513上 1 曲否樂(lè)譜首地址減 513基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)193.2 性能分析在本設(shè)計(jì)中,一共設(shè)置了 7 首 mid 樂(lè)曲,分別是第一首精忠報(bào)國(guó) 、第二首月亮代表我的心 、第三首看我七十二變 、第四首同一首歌 、第五首大海、第六首兩只蝴蝶 、第七首.在本設(shè)計(jì)中由于對(duì)音樂(lè)知識(shí)欠缺,曲譜為網(wǎng)絡(luò)下載。采用 lcd 顯示,穩(wěn)定清晰,可靠性高,為了及時(shí)響應(yīng)按鍵,在每段子程序里面都調(diào)用

40、了按鍵判斷子程序,并且主程序是以按鍵掃描為主線編寫(xiě)的,系統(tǒng)的靈敏度高。除此之外,在按鍵掃描子程序中還帶有延時(shí)再判斷,軟件去抖動(dòng)功能,大大提高了系統(tǒng)的抗干擾性。采用定時(shí)中斷更新播放時(shí)間,增強(qiáng)了系統(tǒng)的準(zhǔn)確性,鑒于于作者水平有限,播放歌曲程序?yàn)榱撕?jiǎn)單實(shí)用,節(jié)拍碼被設(shè)置為固定的 30ms,演奏也只是在一個(gè)八度里面完成,系統(tǒng)適應(yīng)性有待提高。圖 4-1 系統(tǒng)程序流程圖基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)20第四章 音樂(lè)播放器的仿真及分析4.1 keil uvision 2 軟件簡(jiǎn)介keil c51 是美國(guó) k eil software 公司出品的 51 系列兼容單片機(jī) c 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,c 語(yǔ)言在功

41、能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用 c 來(lái)開(kāi)發(fā),體會(huì)更加深刻。keil c51 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全 windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到 keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。c51 工具包的整體結(jié)構(gòu),其中 uvision 與 ishell 分別是 c51 for windows 和for dos 的集成開(kāi)發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用

42、ide 本身或其它編輯器編輯 c 或匯編源文件。然后分別由c51 及 a51 編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由 lib51 創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng) l51 連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs 文件由 oh51 轉(zhuǎn)換成標(biāo)準(zhǔn)的 hex 文件,以供調(diào)試器 dscope51 或 tscope51 使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如 eprom 中。4.2 keil 的調(diào)試軟件調(diào)試頁(yè)面如下圖 4.2.1 所示圖 4-2-1基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)21調(diào)試無(wú)錯(cuò)誤 如下圖 4.2.2 所示。調(diào)試完成后生成 hex

43、文件4.3 proteus 仿真及過(guò)程在 proteus 軟件中,打開(kāi)此設(shè)計(jì)電路圖后,先點(diǎn)擊調(diào)試,后執(zhí)行,則電路通電。此時(shí)液晶屏亮起,此時(shí)點(diǎn)擊“f”按鍵,則液晶顯示開(kāi)機(jī)話面“welcom here”和”f”等。如圖 4.3.1按下“1a“號(hào)按鍵揚(yáng)聲器就會(huì)發(fā)出對(duì)應(yīng)的歌曲,液晶則顯示你所播放的歌曲號(hào)和歌圖 4-2-2圖 4-3-1基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)22曲播放時(shí)間。如圖本設(shè)計(jì)中,每發(fā)一個(gè)調(diào),調(diào)用一個(gè) 30ms 的延時(shí),一次當(dāng)做曲譜的節(jié)拍碼。在此過(guò)程中若有功能鍵按下,將當(dāng)前歌曲的表頭地址加 513/減 513 或等待。于此同時(shí)調(diào)用播放時(shí)間初始化子程序,顯示 00:00:00,裝定時(shí)器 t1 的

44、初值,準(zhǔn)備更新播放時(shí)間.而“c” 、 “d”兩個(gè)鍵分別為”上一曲“和“下一曲” ,e 鍵表示暫停/播放。圖如下: 而揚(yáng)聲器發(fā)出的歌曲如下圖所示輸出信號(hào)的顏色藍(lán)色可以看出:分析本設(shè)計(jì)是以單片機(jī) at89c51 為核心數(shù)據(jù)處理器件,其儲(chǔ)存歌曲容量可以達(dá)到 10首,采用 lcd 顯示,穩(wěn)定清晰,可靠性高,為了及時(shí)響應(yīng)按鍵,在每段子程序里面都調(diào)用了按鍵判斷子程序,并且主程序是以按鍵掃描為主線編寫(xiě)的,系統(tǒng)的靈敏度高。除此之外,在按鍵掃描子程序中還帶有延時(shí)再判斷,軟件去抖動(dòng)功能,大大提高了系統(tǒng)的抗干擾性。本設(shè)計(jì)中有 2 個(gè)按鍵沒(méi)用到,其可以作為擴(kuò)展功能,可以作為單曲循環(huán)/順序播放,歌曲的名稱等功能。仿真過(guò)

45、程基本順利,本身水平有限?;趩纹瑱C(jī)的音樂(lè)播放器設(shè)計(jì)23結(jié) 論本設(shè)計(jì)報(bào)告主要研究了用單片機(jī)實(shí)現(xiàn)的音樂(lè)發(fā)生器的設(shè)計(jì)方法。系統(tǒng)介紹了該路的硬件構(gòu)成和軟件工作過(guò)程,系統(tǒng)以 at89c51 為核心,主要采用中斷控制系統(tǒng),結(jié)合所學(xué)的單片機(jī)的知識(shí),實(shí)現(xiàn)系統(tǒng)的功能要求。設(shè)計(jì)中很好的使軟、硬件相結(jié)合,基本上達(dá)到了設(shè)計(jì)的要求。通過(guò)這次畢業(yè)設(shè)計(jì),對(duì)于這次的音樂(lè)播放器的研究,我對(duì)自己的見(jiàn)解就是音樂(lè)表達(dá)人與人的感情,我的成果是能夠放出比較和諧、圓潤(rùn)的聲音出來(lái)。經(jīng)過(guò)幾個(gè)月的奮戰(zhàn)我的畢業(yè)設(shè)計(jì)終于完成了。在沒(méi)有做畢業(yè)設(shè)計(jì)以前覺(jué)得畢業(yè)設(shè)計(jì)只是對(duì)這幾年來(lái)所學(xué)知識(shí)的單純總結(jié),但是通過(guò)這次做畢業(yè)設(shè)計(jì)發(fā)現(xiàn)自己的看法有點(diǎn)太片面。對(duì)于我

46、的主張是我們要對(duì)傳統(tǒng)音樂(lè)進(jìn)行繼承與發(fā)展,同時(shí)我們也要通的創(chuàng)新,體現(xiàn)科技信息的時(shí)代精神。在研究當(dāng)中很多元器件根本不知道有什么功效,在仿真儀器中是什么代碼。有的知識(shí),自己感覺(jué)已經(jīng)掌握得差不多了,但是實(shí)際操作起來(lái)就有問(wèn)題出現(xiàn)了。我遇到了不少問(wèn)題,花費(fèi)了很多的時(shí)間。這讓我重新反思我們的學(xué)習(xí),深刻領(lǐng)悟到我們這個(gè)專業(yè)動(dòng)手實(shí)踐的重要性。理論不經(jīng)過(guò)實(shí)踐考驗(yàn),是沒(méi)法實(shí)施的,就像我們編的程序,很多方面考慮的都不夠,幾乎沒(méi)有涉及到實(shí)際應(yīng)用時(shí)的防范方法措施。知識(shí)是永無(wú)止境的,在今后的工作中,我會(huì)理論聯(lián)系實(shí)際,不停的去學(xué)習(xí),不停的去感悟,以彌補(bǔ)我先天的不足以及后天的差距在畢業(yè)設(shè)計(jì)過(guò)程中,很多自己認(rèn)為萬(wàn)無(wú)一失的軟件代碼或

47、者硬件電路,在調(diào)試的過(guò)程中都不會(huì)是風(fēng)平浪凈的,此次畢業(yè)設(shè)計(jì)經(jīng)歷了從概念到成品的漫長(zhǎng)過(guò)程,在此過(guò)程中我學(xué)習(xí)了許多以前沒(méi)有掌握而又是電子類畢業(yè)生必須掌握的知識(shí),比如proteus 從設(shè)計(jì)的第一天起,我就被 proteus 的強(qiáng)大功能所折服,學(xué)會(huì)了 proteus,就相當(dāng)于擁有一個(gè)電子設(shè)計(jì)開(kāi)發(fā)平臺(tái)?;旧衔业囊魳?lè)播放器研究達(dá)到老師所給的要求,能夠顯示歌曲曲號(hào),發(fā)出比較和諧的聲音。參考文獻(xiàn)1 陳大欽主編模擬電子技術(shù)基礎(chǔ)(第二版) m 高等教育出版社 基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)242 閻石主編數(shù)字電子技術(shù)基礎(chǔ)(第五版) m 高等教育出版社 3 譚浩強(qiáng)主編 mcs-51 單片機(jī)應(yīng)用教程m 清華大學(xué)出版社

48、4 周復(fù)三主編 音樂(lè)基礎(chǔ)理論教程m 山東大學(xué)出版社5 李軍主編 單片機(jī)高級(jí)實(shí)例開(kāi)發(fā)指南m 北京航空航天大學(xué)出版社 6 歐偉明主編 單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)m 電子工業(yè)出版社 7 江世明主編 基于 proteus 的單片機(jī)應(yīng)用技術(shù)m 電子工業(yè)出版社基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)25謝 辭本設(shè)計(jì)是在曹老師精心指導(dǎo)下完成的,從選題、方案論證、繪制電路原理圖、軟件編寫(xiě)、調(diào)試仿真,直到起稿、排版,每一個(gè)環(huán)節(jié),我都遇到了我無(wú)法獨(dú)立解決的問(wèn)題,在此期間,曹老師寧愿犧牲自己的業(yè)余時(shí)間,也要幫我解決問(wèn)題,他豐富的專業(yè)知識(shí)和和藹的態(tài)度讓我敬畏。在臨近畢業(yè)之際,我還要借此機(jī)會(huì)向在這三年中給予我諸多教誨和幫助的各位老師表

49、示由衷的感謝,感謝他們?nèi)陙?lái)的辛勤栽培。不積跬步無(wú)以至千里,各位任課老師認(rèn)真負(fù)責(zé),在他們的悉心幫助和支持下,我能夠很好的掌握和運(yùn)用專業(yè)知識(shí),并在設(shè)計(jì)中得以體現(xiàn),順利完成畢業(yè)論文。在此,衷心的感謝曹老師對(duì)我畢業(yè)論文的指導(dǎo)和修改!同時(shí),向所有關(guān)心和幫助過(guò)我的老師、同學(xué)和朋友表示由衷的謝意!衷心感謝在百忙之中評(píng)閱論文和參加答辯的各位老師?,F(xiàn)在即將揮別我的學(xué)校、老師、同學(xué),還有我三年的大學(xué)生活,雖然依依不舍,但是對(duì)未來(lái)的路,我充滿了信心。最后,感謝在大學(xué)期間認(rèn)識(shí)我和我認(rèn)識(shí)的所有人,有你們伴隨,才有我大學(xué)生活的豐富多彩,絢麗多姿,努力奮斗,希望每天快樂(lè),健康生活。祝每個(gè)同學(xué)有一個(gè)好的未來(lái),祝老師們健康快

50、樂(lè)。基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)26附錄 1:proteus 原理圖基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)27附錄 2:proteus 仿真圖基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)28附錄 3:程序清單 rs bit p2.0 ;定義液晶顯示端口標(biāo)號(hào)rw bit p2.1e bit p2.2;*l50ms equ 60hl1ms equ 61hl250ms equ 62hsec equ 65hmin equ 64hhou equ 63h;*org 0000hljmp mainorg 000bhljmp tt0org 001bhljmp t1int org 1000hmain;-;液晶初始化mov sp,#70h mov

51、 p0,#01h ;清屏 call enable mov p0,#38h ;8 位,2 行顯示 lcall enable mov p0,#0fh ;屏顯 on,光標(biāo) on,閃爍 on lcall enable mov p0,#06h ;計(jì)數(shù)地址加 1,顯示幕 on基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)29 lcall enable;-內(nèi)存初始化 lcall initil ;-key1: lcall key lcall modd ljmp key1;-鍵盤掃描key: nop nop lcall ks jnz k1 ;有按鍵轉(zhuǎn)到 k1 lcall kaiji lcall sopxn: ljmp keyk1:

52、 lcall modd lcall modd lcall ks jnz k2 ljmp keyk2: mov r2,#0feh ;讀鍵盤 mov r4,#00hk3: mov a,r2 mov p1,a mov a,p1 jb acc.4,l1 ;為 1 跳轉(zhuǎn),第一行無(wú)按鍵 mov a,#00h ljmp lkl1: jb acc.5,l2 mov a,#04h基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)30 ljmp lkl2: jb acc.6,l3 mov a,#08h ljmp lkl3: jb acc.7,next1 mov a,#0ch;-lk: add a,r4 push acck4: lcall

53、 delay1 ;若同時(shí)有其他按鍵,則等待 lcall ks jnz k4;- mov r3,#07h clr a mov r0,#30h mov r1,#31hmm1: mov a,r1 mov r0,a inc r0 inc r1 djnz r3,mm1 pop acc mov r0,a ret;-next1: inc r4 ;-列掃描 mov a,r2 jnb acc.3,n2 ljmp n1基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)31n2: ljmp keyn1: rl a mov r2,a ljmp k3;-ks: mov a,#0f0h ;判斷 p1 口 mov p1,a nop nop mov

54、 a,p1 cpl a anl a,#0f0h ret;-delay1: setb rs0dl: mov r5,#0ahdl2: mov r6,#63dl3: nop nop djnz r6,dl3 djnz r5,dl2 clr rs0 ret;- ;30h-37h 初值為零;-initil: mov r3,#08h mov r0,#30h基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)32m1: mov r0,#00h inc r0 djnz r3,m1 ret;-;顯示 ;-modd: mov p0,#8eh call enable mov a,37h mov dptr,#table3 movc a,a+dp

55、tr call write2 ret;-;開(kāi)機(jī)提示字;-kaiji: mov a,37h cjne a,#0fh,dff mov p0,#80h ;設(shè)光標(biāo)地址 call enable mov dptr,#table1;寫(xiě)數(shù)據(jù) call write1 call delay10 call delay10 call delay10 call delay10 call delay10 mov a,37h基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)33 cjne a,#0fh,dff mov p0,#80h ;設(shè)光標(biāo)地址 call enable mov dptr,#table5;寫(xiě)數(shù)據(jù) call write1 call

56、delay10 call delay10 call delay10 call delay10 call delay10dff: ret;-;按鍵值播放歌曲;-sop: mov a,37h cjne a,#01h,a11 lcall modd mov 52h,#high table10 mov 53h,#low table10 lcall initile2 lcall main0a11: cjne a,#02h,a22 lcall modd mov 52h,#high table20 mov 53h,#low table20 lcall initile2 lcall main0a22: cjne

57、 a,#03h,a33 lcall modd mov 52h,#high table30基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)34 mov 53h,#low table30 lcall initile2 lcall main0 a33: cjne a,#04h,a44 lcall modd mov 52h,#high table40 mov 53h,#low table40 lcall initile2 lcall main0a44: cjne a,#05h,a55 lcall modd mov 52h,#high table50 mov 53h,#low table50 lcall initile2 l

58、call main0a55: cjne a,#06h,a66 lcall modd mov 52h,#high table60 mov 53h,#low table60 lcall initile2 lcall main0 a66: cjne a,#07h,aaa lcall modd mov 52h,#high table70 mov 53h,#low table70 lcall initile2 lcall main0 aaa: ret ;*initile2:基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)35 mov l50ms,#20 mov l1ms,#00h mov l250ms,#00h mov se

59、c,#00h mov min,#00h mov hou,#00h mov a,hou mov b,#10 div ab add a,#30h ;將 bcd 嗎轉(zhuǎn)化為 asiic 碼 mov p0,#0c8h ;顯示小時(shí)十位 call enable call write2 mov a,b add a,#30h mov p0,#0c9h ;顯示小時(shí)個(gè)位 call enable call write2 mov a,#3ah mov p0,#0dh ;顯示冒號(hào) call enable call write2 mov a,min mov b,#10 div ab add a,#30h mov p0,#0

60、cbh ;顯示分十位 call enable call write2 mov a,b基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)36 add a,#30h mov p0,#0cch ;顯示分個(gè)位 call enable call write2 mov a,#3ah mov p0,#0cdh ;顯示冒號(hào) call enable call write2 mov a,sec mov b,#10 div ab add a,#30h mov p0,#0ceh ;顯示秒十位 call enable call write2 mov a,b add a,#30h mov p0,#0cfh ;顯示秒個(gè)位 call enable

溫馨提示

  • 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)論