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

下載本文檔

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

文檔簡介

1、圖書分類號:密 級:畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的MP3播放器設(shè)計(jì)學(xué)生姓名湯明學(xué)院名稱信電工程學(xué)院專業(yè)名稱電子信息工程指導(dǎo)教師陳豹2012年5月10日 徐州工程學(xué)院畢業(yè)設(shè)計(jì)(論文)摘要因?yàn)閱纹瑱C(jī)編寫的MP3播放器具有執(zhí)行效率高、頻率輸出穩(wěn)定、易于修改、高可靠性、高性價(jià)比、低電壓、低功耗等,使單片機(jī)近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、及通訊設(shè)備、日常消費(fèi)類產(chǎn)品、玩具等 1 。利用單片機(jī)設(shè)計(jì)的MP3播放器具有硬件電路簡單,軟件運(yùn)行可靠等特點(diǎn)。本文介紹了一種以 AT89S52 單片機(jī)為控制核心的MP3。該設(shè)計(jì)采用2*16個(gè)點(diǎn)陣液晶模塊LCD1602作為

2、顯示界面,蜂鳴器作為發(fā)聲元件,并利用定時(shí)器進(jìn)行中斷控制。本文分析了基于單片機(jī)的MP3播放器的工作原理,詳細(xì)介紹了MP3播放器的功能及其硬件設(shè)計(jì)和軟件設(shè)計(jì)的方法,給出了基于MCS-51單片機(jī)的MP3播放器的具體實(shí)現(xiàn)方案并重點(diǎn)講述了其硬件實(shí)現(xiàn)與軟件編寫,實(shí)現(xiàn)了單片機(jī)MP3播放器對音樂的演奏。關(guān)鍵詞:MP3播放器;AT89S52;LCD1602目 錄摘要I1緒論12設(shè)計(jì)綜述22.1單片機(jī)工作原理22.1.1 單片機(jī)概述22.1.2 單片機(jī)的應(yīng)用領(lǐng)域及發(fā)展趨勢22.2 單片機(jī)產(chǎn)生音調(diào)的方法32.3 KEIL開發(fā)系統(tǒng)42.4 PROTEUS的操作83硬件設(shè)計(jì)93.1總體方案設(shè)計(jì)93.2 單片機(jī)最小系統(tǒng)電

3、路93.2.1 AT89S52芯片性能介紹93.2.2 電源電路133.2.3 時(shí)鐘振蕩電路133.3 鍵盤掃描模塊143.4 顯示模塊153.5 播放模塊164 系統(tǒng)軟件設(shè)計(jì)184.1編程原理及流程圖185 調(diào)試與仿真結(jié)果225.1 軟件調(diào)試225.1.1 測試LED顯示模塊225.1.2 測試鍵盤控制模塊235.1.3 測試P3.0口輸出235.2 調(diào)試中遇到的問題及解決245.3 仿真結(jié)果25結(jié)束語26致 謝27參考文獻(xiàn)28附錄29附錄1 源程序29II1緒論幾千年來,各種樂器的發(fā)聲無一不是依靠琴弦、簧片、哨片引起管柱振動而作為聲源的。隨著現(xiàn)代電子工業(yè)技術(shù)的飛速發(fā)展,一種用新的聲源來制造

4、音響的新型樂器脫穎而出,這就是目前人們熟知的電子MP3播放器。目前市場上的MP3播放器形形色色,例如大家所熟悉的MP3,隨著電子技術(shù)的不斷發(fā)展,MP3播放器的發(fā)展也會進(jìn)一步發(fā)展。目前單片機(jī)的應(yīng)用滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。本課題即是在這種背景下,對基于MCS51單片機(jī)的M

5、P3播放器的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了硬件及軟件的設(shè)計(jì),并給出了一套完整的解決方案,實(shí)現(xiàn)了單片機(jī)MP3播放器對音樂的演奏?;趩纹瑱C(jī)的MP3播放器可應(yīng)用于MP3,MP4,擴(kuò)音器等很多方面,并可作為很多系統(tǒng)的輔助功能,作為單片機(jī)的重要硬件資源之一,利用定時(shí)器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括"Do"、"Re"、"Me"-等音階在內(nèi)的各種頻率聲音。將各個(gè)音階連接在一起,便可組成一支曲子或是演奏一段旋律?;谶@個(gè)思想,我設(shè)計(jì)了一款特殊的"MP3播放器",本播放器可實(shí)現(xiàn)播放、暫停、選曲等功能。由于時(shí)間及條件限制,本設(shè)計(jì)實(shí)

6、現(xiàn)了一種簡單的MP3播放器,其核心器件采用AT89S52單片機(jī),本播放器具有電路簡單,功能強(qiáng)大,易于拓展等特點(diǎn)。在此基礎(chǔ)上,可以添加按鍵,LED顯示屏等模塊,實(shí)現(xiàn)切換歌曲,歌名顯示,動感音樂屏等功能2。2設(shè)計(jì)綜述2.1單片機(jī)工作原理2.1.1 單片機(jī)概述單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。AT89S52是一種低功耗、高性能CMOS8位微控制

7、器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。2.1.2 單片機(jī)的應(yīng)用領(lǐng)域及發(fā)展趨勢單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為如下幾個(gè)范疇:一、在智能儀器儀表的應(yīng)用單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表

8、中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計(jì)、示波器、各種分析儀)。 二、在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。三、在工業(yè)控制中的應(yīng)用用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。

9、 四、在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機(jī)等。單片機(jī)的發(fā)展趨勢現(xiàn)在可以說是百花齊放,百家爭鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地??v觀單片機(jī)的發(fā)展過程,可以預(yù)示

10、單片機(jī)的發(fā)展趨勢,大致有:一、微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機(jī)將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,

11、其中SMD(表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。二、低功耗CMOS化MCS-51系列的8031推出時(shí)的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。2.2

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

13、節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍。如果1拍為0.4S,1/4拍為0.1S,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,那么1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY,其余的節(jié)拍就是它的倍數(shù)??偠灾?,一首樂曲是由音階和節(jié)拍兩大要素構(gòu)成。一首樂曲演奏的原理是:不同音階分別對應(yīng)不同的頻率,發(fā)出不同的音調(diào),而節(jié)拍則控制發(fā)出音調(diào)時(shí)間的長短;若將樂曲的音調(diào)連續(xù)發(fā)出,并使其按相應(yīng)的節(jié)拍變化,即可演奏一首樂曲。根據(jù)這一特點(diǎn),我們采用單片機(jī)輔以相應(yīng)的接口來設(shè)計(jì)MP3播放器。2.3 KEIL開發(fā)系統(tǒng)使用Keil軟件建立一個(gè)工程:Keil是目前進(jìn)行51

14、單片機(jī)開發(fā)最常用的編譯軟件。關(guān)于Keil的使用,有很多的資料介紹,這里只介紹其整個(gè)編譯過程。在Keil里,每一個(gè)完整的程序,都是以一個(gè)工程的形式建立的。一個(gè)工程里可以有一個(gè)或多個(gè)*.c文件和*.h文件,但只可以有一個(gè)main()函數(shù)。一般的做法是將包含main()函數(shù)的C文件加入到工程中,其他文件以#include頭文件的形式加到這個(gè)C文件里。這樣,在編譯的時(shí)候,其他的文件會被自動的導(dǎo)入到工程里來。打開Keil軟件后,出現(xiàn)(圖2-3-1)所示界面。當(dāng)然,如果Keil在上次關(guān)閉時(shí)有打開的工程,再一次打開時(shí)它會自動加載上一次的工程文件。圖2-3-1 Keil軟件主界面首先點(diǎn)擊Project->

15、;New Project(Project->Open Project為打開一個(gè)已經(jīng)存在的工程),如圖2-3-2所示。圖2-3-2 Keil軟件打開新工程界面點(diǎn)開后,在出現(xiàn)的對話框中選擇工程存在路徑,單擊“保存”后,出現(xiàn)(如圖2-3-3所示)界面。在此界面上選擇電路板上所用的單片機(jī)型號:Atmel AT89S51(或者是AT89S52,視開發(fā)板上具體型號而定),單擊“確定”。圖2-3-3 選擇電路板上所用的單片機(jī)型號設(shè)置完成后,軟件會提示“是否將8051上電初始化程序添加入工程?”如圖2-3-4所示,這個(gè)一般選擇“否”。(關(guān)于STARTUP.A51的相關(guān)內(nèi)容可查閱相應(yīng)資料)圖2-3-4 是

16、否將8051上電初始化程序添加入工程這樣,就建立了一個(gè)空的51工程。接下來的事,就是在這個(gè)工程里面加入自己的程序代碼。點(diǎn)擊,或者File->New,便建立了一個(gè)空的文本框?,F(xiàn)在,就可以開始在里面輸入你的代碼了。保存時(shí)注意:如果是用C語言寫的程序,則將文本保存成*.c,如果是用匯編寫的程序,則將文本存成*.asm。到目前為步,我們已經(jīng)建立了一個(gè)工程,也寫了一個(gè)程序代碼。但現(xiàn)在還不能開始編譯。因?yàn)檫€沒有將程序代碼添加到工程里面去。下一步就是將寫完的程序添加到工程里面,如圖2-3-5所示,在左邊Project Workspace里的Source Group 1上右擊,選擇Add Files t

17、o Group Source Group 1。在打開的對話框中,選擇剛存的文件路徑和對應(yīng)的文件名。圖2-3-5 添加文件到工程中下一步,就開始編譯剛輸入進(jìn)去的代碼。點(diǎn)擊工具欄中的按鈕。接著,Keil會打出下面的提示:Build target 'Target 1'assembling led.asm.linking.Program Size: data=8.0 xdata=0 code=100"first" - 0 Error(s), 0 Warning(s).其中“"first" - 0 Error(s), 0 Warning(s).”說

18、明現(xiàn)在的工程編譯通過,0個(gè)錯(cuò)誤和0個(gè)警告。建立工程的時(shí)候,默認(rèn)是不生成HEX文件的,得在編譯做如下設(shè)置:單擊,或者在Project Workspace里Target 1上右擊,選擇“Options for Target Target 1”。出現(xiàn)如圖2-3-6所示對話框,選擇“Output”按圖示,將箭頭所指的多選框勾上,點(diǎn)“確定”?,F(xiàn)在再點(diǎn)擊重新編譯,系統(tǒng)提示:“creating hex file from "first".”。便會在工程所在文件夾里生成HEX文件。圖2-3-6 生成HEX文件2.4 PROTEUS的操作1.硬件電路圖的接法操作3(1)放置選擇(刪除)元器件

19、(2)移動元器件(3)縮放視圖(4)連接導(dǎo)線(5)仿真,調(diào)試2. 單片機(jī)系統(tǒng)PROTEUS設(shè)計(jì)與仿真過程4 Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使它可成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)手段之一。全部過程都是在計(jì)算機(jī)上通過Proteus來完成的。其過程一般也可分為三步:(1)在ISIS平臺上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測等。簡稱Proteus電路設(shè)計(jì)。(2)在Keil平臺上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級調(diào)試,最后生成目標(biāo)代碼文件(*.hex)。簡稱Proteus源程序設(shè)計(jì)和生成目標(biāo)代碼文件。(3)在ISIS平臺上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中

20、,并實(shí)現(xiàn)單片機(jī)系統(tǒng)的實(shí)時(shí)交互、協(xié)同仿真。它在相當(dāng)程度上反映了實(shí)際單片機(jī)系統(tǒng)的運(yùn)行情況。簡稱Proteus仿真。3硬件設(shè)計(jì)3.1總體方案設(shè)計(jì)以AT89S52為核心,通過單片機(jī)的定時(shí)器產(chǎn)生一定長度的方波,方波脈沖驅(qū)動蜂鳴器發(fā)聲。要產(chǎn)生音頻脈沖,只需算出某一音頻的周期(1/音頻),然后取半周期的時(shí)間定時(shí)。利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對I/O口反相,就可在I/O腳上得到此頻率的脈沖。當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時(shí)在LCD顯示歌曲序號和歌曲名稱5??傮w如圖3-1所示:AT89S5

21、2 鍵盤掃描模塊液晶顯示模塊蜂鳴器發(fā)聲模塊圖3-1 總體方案圖3.2 單片機(jī)最小系統(tǒng)電路3.2.1 AT89S52芯片性能介紹AT89S52是低電壓,高性能CMOS八位單片機(jī),片內(nèi)含8K字節(jié)的可反復(fù)擦寫的只讀程序存儲器和256字節(jié)的隨機(jī)存取數(shù)據(jù)存儲器,器件采用ATMEL公司的高密度、非易失存儲技術(shù)生產(chǎn)與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用八位中央處理器和Flash存儲單元,功能強(qiáng)大適合于許多較復(fù)雜控制應(yīng)用場合6。AT89S52主要性能參數(shù):u Ø與MCS-51產(chǎn)品指令和引腳完全兼容u Ø8K字節(jié)可重復(fù)擦寫Flash閃速存儲器u Ø1000次擦

22、寫周期u Ø全靜態(tài)操作:0Hz33MHzu Ø三級加密程序存儲器u Ø256×8字節(jié)內(nèi)部RAMu Ø32個(gè)可編程I/O口線u Ø3個(gè)16位定時(shí)/計(jì)數(shù)器u Ø8個(gè)中斷源u Ø全雙工可編程串行UART通道u Ø低功耗空閑和掉電模式u Ø掉電后中斷可喚醒 u Ø看門狗定時(shí)器 u Ø雙數(shù)據(jù)指針u Ø掉電標(biāo)識符u Ø快速編程周期u Ø靈活I(lǐng)SP編程(字節(jié)和模式)芯片如圖3-2-1所示:圖3-2-1 AT89S52引腳圖功能特性概述:AT89S52提供以下標(biāo)

23、準(zhǔn)功能:8K字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器。一個(gè)6向量兩級中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí)AT89S52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。而本畢業(yè)設(shè)計(jì)中用到了, AT89S52的各個(gè)口, P1口接RZ-1602液晶顯示電路,P2口接按鍵,P3口接晶振,蜂鳴器,工作指示燈,復(fù)位等電路。AT89S52使一個(gè)功能強(qiáng)大的芯片

24、,各個(gè)口由以下功能7:P0口是一組8位漏極開路型雙向 I/O 口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動8個(gè)TTL邏輯門電路,對端口 P0 寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。 P1口是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 I/O 口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個(gè) TTL 邏輯門電路,對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,1 不同之處是,P1.0 和 P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1此時(shí)可

25、作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流。IL與 AT89S5.1/T2EX)。表3-2-1 P1.0和P1.1的第二功能表引腳號功能特性P1.0T2(定時(shí)/計(jì)數(shù)器2外部計(jì)數(shù)脈沖輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)/計(jì)數(shù)2捕獲/重裝載觸發(fā)和方向控制)P2口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向 I/O,P2的輸出緩沖級可驅(qū)動吸(收或輸出電流4個(gè)TTL邏輯門電路。對端口 P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(I )。IL在訪問外部程序存儲器或 16

26、 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR 指令)時(shí),P2口送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行 MOVX RI 指令)時(shí),P2口輸出P2 鎖存器的內(nèi)容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號。 P3口是一組帶有內(nèi)部上拉電阻的8位雙向 I/O 口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個(gè) TTL 邏輯門電路。對 P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能。表3-2-2 P3口第二功能表端口引腳第二功能P

27、3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外中斷0)P3.3(外中斷1 )P3.4T0(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.6(外部數(shù)據(jù)存儲器寫選通)P3.7(外部數(shù)據(jù)存儲器讀選通)RST:復(fù)位輸入,當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的 8EH 單元的 D0 位置位,

28、可禁止 ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng) AT89C52 由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次 PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次 PSEN信號。EA/VPP:外部訪問允許。欲使 CPU 僅訪問外部程序存儲器(地址為 0000HFFFFH),EA 端必須保持低電平。需注意的是:如果加密位 LB1 被編程,復(fù)位時(shí)內(nèi)部會鎖存 EA端狀態(tài)。如 EA端為高電平,C

29、PU 則執(zhí)行內(nèi)部程序存儲器中的指令。Flash 存儲器編程時(shí),該引腳加上+12V 的編程允許電源 Vpp,當(dāng)然這必須是該器件是使用 12V 編程電壓 Vpp。XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2: 振蕩器反相放大器的輸出。 3.2.2 電源電路系統(tǒng)直流9V或者12V電池供電,由一片LM7805將9V/12V電源穩(wěn)壓在5V上。5V電源給所有芯片和電路供電。在電源電路中我們使用了兩個(gè)濾波電容,使用濾波電容主要目的是為了消除電源波動對系統(tǒng)的干擾,提高系統(tǒng)的抗干擾能力,其中104電容是用來濾高頻雜波干擾,220uF電容是用來濾低頻雜波干擾。如圖3-2-2所示: 圖3-2-

30、2 電源電路圖3.2.3 時(shí)鐘振蕩電路AT89S52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自激振蕩器。片外石英晶體或者陶瓷諧振器及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。這里我們采用電容30pF,晶振采用12MHZ。電路圖如圖3-2-3所示: 圖3-2-3 時(shí)鐘振蕩電路3.2.4 復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引

31、起的抖動而影響復(fù)位。 復(fù)位電路采用RC充電電路組成上電復(fù)位單片機(jī)電路,當(dāng)系統(tǒng)上電時(shí),在上電初期,電容C充電,使復(fù)位腳持續(xù)高電平,當(dāng)C充電到達(dá)一定程度復(fù)位腳電位會慢慢變低,最后被電阻R完全拉低,高電平復(fù)位的時(shí)間由充電的時(shí)間決定,充電時(shí)間又由R與C的阻值和容值之積決定。一旦單片機(jī)復(fù)位腳拉低后就一直都低電平,只有下電后再上電才重新開始復(fù)位過程。電路圖如圖3-2-4所示: 圖3-2-4 復(fù)位電路3.3 鍵盤掃描模塊本方案采用獨(dú)立式按鍵接口設(shè)計(jì),各按鍵相互獨(dú)立,每個(gè)按鍵單獨(dú)占用一根I/O口線,每根I/O口線的按鍵工作狀態(tài)不會影響其他I/O口線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個(gè)

32、按鍵被按下。鍵盤工作方式采用定時(shí)掃描方式,采用定時(shí)器T0定時(shí),通過讀取輸出數(shù)據(jù),識別按鍵工作狀態(tài)。鍵盤按鍵所用開關(guān)為機(jī)械彈性開關(guān),利用了機(jī)械觸點(diǎn)的合斷作用。由于機(jī)械觸點(diǎn)的的彈性作用,一個(gè)按鍵開關(guān)在閉合和斷開的瞬間均有一連串的抖動。抖動時(shí)間的長短由按鍵的機(jī)械特性決定,一般為10100ms。電平信號的波動,有可能令CPU誤解為多次按鍵操作,從而引起誤處理。為了確保CPU對一次按鍵動作只確認(rèn)一次按鍵,必須消除抖動的影響。按鍵的消抖通常有軟件和硬件兩種消除方法。如果按鍵較多,硬件消抖將無法勝任,常采用軟件消抖。本設(shè)計(jì)雖然按鍵少但還是采用常規(guī)的軟件延時(shí)的方法:在第一次檢測到有鍵按下時(shí),執(zhí)行一段延時(shí)子程序

33、后,再確認(rèn)電平是否仍保持閉電平,如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下,進(jìn)行相應(yīng)處理工作,消除了抖動的影響。判斷鍵盤程序流程如圖3-3所示: 有鍵按下? 開始 去鍵盤抖動 同一鍵按下?根據(jù)鍵值執(zhí)行功能功能 循環(huán)YESNOYESNO圖3-3 鍵盤判斷程序流程圖3.4 顯示模塊常見的基于單片機(jī)設(shè)計(jì)的MP3播放器基本不能顯示歌曲。該音樂播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,可為使用者提供曲目信息。由于LED數(shù)碼管只能顯示數(shù)字而無法顯示其他中英文字符,并對成本及功能考慮,因此從設(shè)計(jì)的成本及功能的角度考慮,采用LCD-1602顯示模塊,它可以顯示每首曲目的英文名字。LCD-1602驅(qū)動電路簡單,可以由單片機(jī)直

34、接輸出命令驅(qū)動。LCD各引腳功能如圖表3-4所示:表3-4 LCD引腳功能編號符號引腳說明編號符號引腳說明1VSS電源地9D2雙向數(shù)據(jù)口2VDD電源正極10D3雙向數(shù)據(jù)口3VL對比度調(diào)節(jié)11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口7D0雙向數(shù)據(jù)口15BLK背光源地08D1雙向數(shù)據(jù)口16BLA背光源正極 VDD:電源正極,4.55.5V,通常使用5V電壓。VL:LCD對比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05V。接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,但對比度過高時(shí)會產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來調(diào)整對比度

35、,或者直接串接一個(gè)電阻到地。 RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時(shí),使RS為低電平;MCU要寫入數(shù)據(jù)時(shí),使RS為高電平。R/W:讀寫控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫入數(shù)據(jù)。E:LCD模塊使能信號控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。D0D7:8位三態(tài)雙向數(shù)據(jù)總線。如果MCU的I/O口資源緊張的話,該模塊也可只使用4位數(shù)據(jù)線D4D7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式。BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測該模塊的背光電流為50mA左右。BLK: LED背光地端。3.5 播放模塊 通過蜂鳴器實(shí)現(xiàn)發(fā)

36、聲,當(dāng)三極管基級由單片機(jī)控制變成高電平時(shí),V1導(dǎo)通并工作在飽和區(qū),由于集電極和發(fā)射極之間的電壓差幾乎等于0,故相當(dāng)于蜂鳴器的另一個(gè)腳接地,蜂鳴器會發(fā)出蜂鳴聲。當(dāng)三極管基級由單片機(jī)控制變成高低電平時(shí),V1不導(dǎo)通并工作在截止區(qū),那么蜂鳴器的另一個(gè)腳接到高電平,蜂鳴器不發(fā)出蜂鳴聲??梢酝ㄟ^改變?nèi)龢O管基級的開關(guān)頻率來控制蜂鳴器發(fā)出各種不同頻率的聲音。另外,蜂鳴器需要三極管驅(qū)動,而不能由單片機(jī)口線直接驅(qū)動,因?yàn)榉澍Q器的工作電流比較大(大概100mA),故單片機(jī)口線不能承受。 圖3-5 蜂鳴器發(fā)聲模塊圖4 系統(tǒng)軟件設(shè)計(jì)4.1編程原理及流程圖音樂發(fā)聲設(shè)計(jì)原理8:(1)總體原理: 一首樂曲是由多個(gè)音符構(gòu)成的。

37、每個(gè)音符都對應(yīng)著一個(gè)確定的頻率,樂曲中不同的音符,實(shí)質(zhì)就是不同頻率的聲音;另外每個(gè)音符會根據(jù)樂曲的要求設(shè)定一個(gè)確定的節(jié)拍??梢钥刂茊纹瑱C(jī)產(chǎn)生不同頻率不同節(jié)拍的脈沖信號,由蜂鳴器發(fā)出就產(chǎn)生了美妙和諧的樂曲。 (2) 單片機(jī)產(chǎn)生不同頻率脈沖信號的原理: 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖(1/頻率),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期的時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期的時(shí)間再對I/O反相,就可以在I/O腳上得到此頻率的脈沖。 2)利用單片機(jī)內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法如下

38、: 例如,頻率為523Hz,其周期天/523 S=1912uS,因此只要令計(jì)數(shù)器計(jì)時(shí)956uS/1us=956,在每計(jì)數(shù)956次時(shí)就將I/O反接,就可得到中音DO(532Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi/2/Fr 其中N表示計(jì)數(shù)值;Fi表示內(nèi)部計(jì)時(shí)一次為1uS,故其頻率為1MHz;Fr表示要產(chǎn)生的頻率。 3)其計(jì)數(shù)值的求法如下: T=65536-N=65536-Fi/2/Fr 計(jì)算舉例: 設(shè)K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、 高音DO(1046Hz)的計(jì)數(shù)值。 T=65536-N=65536-Fi/2/Fr

39、=65536-1000000/2/Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63628 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1047=650594) 每個(gè)音符使用1個(gè)字節(jié),字節(jié)高4位代表音符高低,低4位代表音符 節(jié)拍。假設(shè)1/4節(jié)拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。只要求得1/4拍的DELAY時(shí)間,其余節(jié)拍則為它的倍數(shù),本設(shè)計(jì)取4/4調(diào)值,延時(shí)時(shí)間為125ms,其中節(jié)拍碼與實(shí)際節(jié)拍對照表4-1-1。表4-1-1簡譜對應(yīng)的頻率、簡譜碼和計(jì)數(shù)初值表 簡譜 發(fā)音 頻率(Hz)

40、計(jì)數(shù)初值 簡譜碼 5 低音SO 392 64260 1 6 低音LA 440 64400 2 7 低音SI 494 64524 3 1 中音DO 523 64580 4 2 中音RE 587 64684 5 3 中音MI 659 64777 6 4 中音FA 698 64820 7 5 中音SO 784 64898 8 6 中音LA 880 64968 9 7 中音SI 988 65030 A 1 高音DO 1046 65058 B 2 高音RE 1175 65110 C 3 高音MI 1318 65157 D 4 高音FA 1397 65178 E 5 高音SO 1568 65217 F 不

41、發(fā)音 0 表4-1-2節(jié)拍碼與實(shí)際節(jié)拍對照表 節(jié)拍碼 實(shí)際節(jié)拍 節(jié)拍碼 實(shí)際節(jié)拍 節(jié)拍碼 實(shí)際節(jié)拍 1 1/4拍 5 1又1/4拍 C 3拍 2 2/4拍 6 1又1/2拍 F 3又3/4拍 3 3/4拍 8 2拍 4 1拍 A 2又1/2拍建立音樂步驟:1)先把樂譜的音符找出,然后由上表建立T值表的順序。 2)把T值表構(gòu)成一個(gè)編碼表,構(gòu)成發(fā)音符的計(jì)數(shù)值放在計(jì)數(shù)初值編碼表里。 3)簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序 的簡譜編碼表里。 建立編碼表具體如下:1)定時(shí)值為十六進(jìn)制4位數(shù),拆分為兩組,如5對應(yīng)的定時(shí)值為FD80H,拆分FDH和80H兩組.前者裝入定時(shí)器的

42、高位TH0,后組裝入定時(shí)器的低位TL0。2)在程序中使用定時(shí)器T0方式1來產(chǎn)生來產(chǎn)生歌譜中各音符對應(yīng)頻率的音頻脈沖,由P3.7輸出,經(jīng)三極管將信號放大后驅(qū)動蜂鳴器發(fā)出不同音節(jié)的聲音。3)程序中的節(jié)拍控制是通過調(diào)用延時(shí)子程序DELAY的次數(shù)來實(shí)現(xiàn),1拍為500ms,即需要調(diào)用4次DELAY;3/4拍需要調(diào)用3次DELAY;2/4拍需要調(diào)用2次DELAY。 4)節(jié)拍的控制碼在表TABLE中位于音符碼的后面。5)當(dāng)一個(gè)音符的發(fā)音時(shí)間到時(shí),再查下一個(gè)音符的定時(shí)常數(shù)和延時(shí)常數(shù)。依此進(jìn)行下去,就可演奏出悅耳動聽的樂曲。程序流程圖如圖4-1所示: 圖4-1 主程序流程圖如圖4-2所示,開始播放自定義音樂程序

43、時(shí),指針指向樂譜第一個(gè)字節(jié),將第一字節(jié)拆分為高低字節(jié),其高字節(jié)即為音符中音高對應(yīng)定時(shí)器定時(shí)常數(shù),低字節(jié)即為音符中節(jié)拍對應(yīng)的1/4節(jié)拍的次數(shù),同時(shí)啟動中斷定時(shí)器0工作在方式1,由定時(shí)器定時(shí)常數(shù)得到相應(yīng)音高,通過延時(shí)子程序設(shè)定1/4節(jié)拍的時(shí)間,由節(jié)拍次數(shù)得到節(jié)拍,再讀取下一個(gè)樂譜字節(jié),循環(huán)下去則演奏出美妙和諧的樂曲9。開始程序 指向樂譜第一個(gè)字節(jié) 拆分字節(jié)的高低字節(jié) 由高字節(jié)得音高對應(yīng)定時(shí)器定時(shí)常數(shù) 由低字節(jié)得到節(jié)拍對應(yīng)節(jié)拍次數(shù) 啟動定時(shí)器0 延時(shí)節(jié)拍時(shí)間 關(guān)閉定時(shí)器0 讀取下一個(gè)樂譜字節(jié) 字節(jié)是00H嗎? 程序循環(huán)YESNO 圖4-2 音樂播放子程序流程圖5 調(diào)試與仿真結(jié)果5.1 軟件調(diào)試結(jié)構(gòu)化

44、軟件的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,通調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。在本次設(shè)計(jì)中利用的是KEIL C51軟件仿真器,其評估版本可以免費(fèi)獲取,只是有2KB代碼限制。基于MCS51的MP3播放器的設(shè)計(jì)與實(shí)現(xiàn)的調(diào)試,主要集中在對揚(yáng)聲器的輸出音樂部分的調(diào)試以及鍵盤控制和LED顯示部分的調(diào)試上。在編寫完整的MP3播放器程序前,可以先按照如下的順序分別調(diào)試各個(gè)功能模塊的程序。5.1.1 測試LED顯示模塊(1)調(diào)試目的使用P2口作為輸出口實(shí)現(xiàn)LED的顯示,從而檢測P2口及LED顯示模塊是否正常工作。(

45、2)調(diào)試程序 MAIN: MOV TMOD, #10H ;定時(shí)器T1工作在方式1 MOV TH1, #3CH MOV TL1, #0B0H;T=50msSTART: MOV R1,#00H ;計(jì)數(shù)顯示初始化 MOV DPTR,#TABDISP: MOV A,R1 MOVC A,A+DPTR ;查表得顯示的字型碼 MOV P2,A ;數(shù)碼管顯示0 ACALL DELAY1S ;延時(shí)1S INC R1 ;計(jì)數(shù)值加1 CJNE R1,#10,DISP ;秒值不到10,繼續(xù)顯示;否則清0 MOV R1,#00H ;計(jì)數(shù)值清0 SJMP DISPTAB: DB 0C0H,0F9H,0A4H ;0,1,2

46、 DB 0B0H,99H,92H ;3,4,5 DB 82H,0F8H,80H ;6,7,8 DB 90H ;9DELAY1S: ;延時(shí)子程序 MOV R3,#14H ;置50MS計(jì)數(shù)循環(huán)初值 SETBTR1 ;啟動T1LP1: JBC TF1,LP2 ;查詢計(jì)數(shù)溢出 SJMP LP1 ;未到50MS繼續(xù)計(jì)數(shù)LP2: MOV TH1,#3CH ;重新置定時(shí)器初值 MOV TL1,#0B0H DJNZ R3,LP1 ;未到1S繼續(xù)循環(huán)RET ;返回主程序(3)調(diào)試結(jié)果 LED數(shù)碼管從0到9自動循環(huán)顯示,表明硬件與軟件正確。5.1.2 測試鍵盤控制模塊(1)調(diào)試目的通過鍵盤的控制可使LED數(shù)碼管顯

47、示相應(yīng)的內(nèi)容。(2)調(diào)試程序GETKEY: ;讀A鍵盤子程序 SA:JBP1.0, SB ;讀ALCALLDELAY2JBP1.0, SAJNB P1.0, $MOVP2, #10001000B;顯示AMOVR5, #10001000BMOVA, #0FFHMOVB, #0AHRET(3)調(diào)試結(jié)果鍵盤按下后LED顯示相應(yīng)的內(nèi)容,表明軟硬件正確。5.1.3 測試P3.0口輸出(1)調(diào)試目的使用P3.0口做輸出口使揚(yáng)聲器工作(2)調(diào)試程序START:MOV SP, #60HMOV TMOD, #11HMOV IE, #8AH MOV IP, #08H ;T1中斷優(yōu)先于T0中斷MOVTH1, #3C

48、HMOVTL1, #0B0H;以上為系統(tǒng)初始化,T=50msHERE:SJMP HEREINT_T0: CLR TR0MOV TL0, 20HMOV TH0, 21HCPL P3.0SETBTR0RETI(3)調(diào)試結(jié)果揚(yáng)聲器有聲音發(fā)出,揚(yáng)聲器正常工作。5.2 調(diào)試中遇到的問題及解決(1)編程前要畫流程圖,這樣會使思路清晰。(2)編程時(shí)要注意,在程序開始時(shí),要寫入各定時(shí)器中斷的入口地址。(3)有時(shí)會出現(xiàn)程序一點(diǎn)錯(cuò)誤也沒有,但就是不能正常運(yùn)行的現(xiàn)象,最后我們發(fā)現(xiàn)是因?yàn)槌绦蛑杏械闹噶顣鴮懙貌灰?guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書寫。(4)程序中的跳轉(zhuǎn)指令的運(yùn)用很重要,為保險(xiǎn)起見,都用L

49、JMP,我們就遇到過跳轉(zhuǎn)指令用錯(cuò)程序無法正常運(yùn)行的現(xiàn)象。(5)編程過程中要注意加注釋或分割線,否則,在程序過長時(shí)容易變得很亂,不便于查找或更改。(6)開始時(shí)候沒有將單片機(jī)的第31號引腳接到高電平,結(jié)果使MP3播放器的播放性能不穩(wěn)定(有時(shí)候能工作,有時(shí)候卻工作不了),當(dāng)接一高電平以后,播放器能正常工作了。(7)開始沒有考慮鍵盤的消抖,造成的按鍵工作紊亂,具體的現(xiàn)象是:按1次鍵卻被要機(jī)器認(rèn)為是按了1次或多次,這就使播放器有時(shí)候可以正常工作,有時(shí)候卻不可以。給鍵盤程序加了消抖呼程序以后,按鍵就工作正常了。(8)兩個(gè)定時(shí)器同時(shí)工作,存在中斷時(shí)序問題,剛開始時(shí)我們把定時(shí)器1設(shè)定在方式3,計(jì)250us,由

50、于定時(shí)中斷過于頻繁,使CPU負(fù)載過大,導(dǎo)致音樂不能正常播放,時(shí)間不能正常顯示。解決辦法:將定時(shí)器1設(shè)定在工作方式1,16位計(jì)數(shù),計(jì)50ms,效果有很大改觀。5.3 仿真結(jié)果我在keil軟件中建立工程,連接,編譯后生成了.hex文件,在proteus中在單片機(jī)中加載.hex文件仿真中遇到了以下幾個(gè)問題。(1)顯示屏不能工作 剛開始時(shí)lcd只發(fā)亮不顯示字符,我通過查找文獻(xiàn),在網(wǎng)上搜集資料,發(fā)現(xiàn)lcd 的高電平和地引腳接錯(cuò)了,這是一個(gè)常識性的錯(cuò)誤,它給我了深刻的教訓(xùn),做事情要細(xì)心認(rèn)真。(2)蜂鳴器不能正常播放音樂 在protues仿真中的蜂鳴器老是不能正常響,會斷斷續(xù)續(xù)地播放,經(jīng)過我?guī)滋斓恼{(diào)試,我發(fā)

51、現(xiàn)應(yīng)該是電平驅(qū)動的問題,是由于三極管的失真造成的。最后終于能播放音樂了。最終仿真結(jié)果如圖5-3所示: 圖 5-3 仿真圖結(jié)束語我的題目是MP3播放器軟件的設(shè)計(jì),對于我們這些工科學(xué)生來說,這是一次考驗(yàn)。怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最佳結(jié)合點(diǎn)?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的計(jì)劃更具有序性,而不會忙無一用?這都是我們所要考慮和努力的。這次課程設(shè)計(jì)我學(xué)到很多很多的東西,學(xué)會了怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識,掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡單的編程。通過這次使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。我設(shè)計(jì)的MP3播放器采用蜂鳴器作為MP3播放器件,若針對現(xiàn)在流行的WAV、MP3等音樂質(zhì)量很好的系統(tǒng),它就不是一個(gè)好的選擇,這是本設(shè)計(jì)的不足。當(dāng)然本設(shè)計(jì)也要考慮到性能和價(jià)格之比,和它驅(qū)動起來比較簡單。 同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,對單片機(jī)

溫馨提示

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

最新文檔

評論

0/150

提交評論