基于單片機的音樂播放器設(shè)計 畢業(yè)設(shè)計_第1頁
基于單片機的音樂播放器設(shè)計 畢業(yè)設(shè)計_第2頁
基于單片機的音樂播放器設(shè)計 畢業(yè)設(shè)計_第3頁
基于單片機的音樂播放器設(shè)計 畢業(yè)設(shè)計_第4頁
基于單片機的音樂播放器設(shè)計 畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20、列直插式封裝(dip) ,其引腳排列和邏輯符號如圖 2-2 所示,4 個并行口共有 32 根引腳,可分別作地址線、數(shù)據(jù)線和 i/o 線;2 根電源線;2 根時鐘振蕩電路引腳和 4 根控制線。2.2.3 at89c51 單片機的引腳介紹at89c51 單片機是高性能單片機,因為受引腳數(shù)目的限制,所以有許多引腳具有第二功能,各引腳功能說明如下:(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 地址鎖存控制信號

21、在系統(tǒng)擴展時,ale 用于控制把0p口輸出的底 8 位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此外由于 ale 是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。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 芯片引腳圖基于單片機的音樂播放器設(shè)計11(3)pse

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

50、樂。基于單片機的音樂播放器設(shè)計26附錄 1:proteus 原理圖基于單片機的音樂播放器設(shè)計27附錄 2:proteus 仿真圖基于單片機的音樂播放器設(shè)計28附錄 3:程序清單 rs bit p2.0 ;定義液晶顯示端口標號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,光標 on,閃爍 on lcall enable mov p0,#06h ;計數(shù)地址加 1,顯示幕 on基于單片機的音樂播放器設(shè)計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),第一行無按鍵 mov a,#00h ljmp lkl1: jb acc.5,l2 mov a,#04h基于單片機的音樂播放器設(shè)計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 ;若同時有其他按鍵,則等待 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基于單片機的音樂播放器設(shè)計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基于單片機的音樂播放器設(shè)計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;-;開機提示字;-kaiji: mov a,37h cjne a,#0fh,dff mov p0,#80h ;設(shè)光標地址 call enable mov dptr,#table1;寫數(shù)據(jù) call write1 call delay10 call delay10 call delay10 call delay10 call delay10 mov a,37h基于單片機的音樂播放器設(shè)計33 cjne a,#0fh,dff mov p0,#80h ;設(shè)光標地址 call enable mov dptr,#table5;寫數(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基于單片機的音樂播放器設(shè)計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:基于單片機的音樂播放器設(shè)計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 ;顯示小時十位 call enable call write2 mov a,b add a,#30h mov p0,#0c9h ;顯示小時個位 call enable call write2 mov a,#3ah mov p0,#0dh ;顯示冒號 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基于單片機的音樂播放器設(shè)計36 add a,#30h mov p0,#0cch ;顯示分個位 call enable call write2 mov a,#3ah mov p0,#0cdh ;顯示冒號 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 ;顯示秒個位 call enable

溫馨提示

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

評論

0/150

提交評論