基于51單片機(jī)的音樂播放器制作_第1頁
基于51單片機(jī)的音樂播放器制作_第2頁
基于51單片機(jī)的音樂播放器制作_第3頁
基于51單片機(jī)的音樂播放器制作_第4頁
基于51單片機(jī)的音樂播放器制作_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘 要本次課程設(shè)計(jì)是基于at89c51單片機(jī)設(shè)計(jì)一個(gè)音樂播放器。通過單片機(jī)音樂播放器系統(tǒng)設(shè)計(jì)和研究,對(duì)于切實(shí)掌握單片機(jī)相關(guān)知識(shí)具有重要的理論和實(shí)際意義。這次課程設(shè)計(jì)的音樂播放器是軟件和硬件的結(jié)合,樂曲中不同的音符,實(shí)質(zhì)就是不同頻率的聲音。通過單片機(jī)產(chǎn)生不同的頻率的脈沖信號(hào),經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲。根據(jù)各音階頻率算出定時(shí)器定時(shí)常數(shù),根據(jù)節(jié)拍給出該音階持續(xù)的時(shí)間,最終實(shí)現(xiàn)播放簡(jiǎn)單歌曲的功能。例如“世上只有媽媽好”。關(guān)鍵字:?jiǎn)纹瑱C(jī),音樂播放器,音節(jié)頻率abstractthis course is designed based on single chip microcom

2、puter at89c51 design a music playerthrough the single-chip microcomputer music player system design and research, to be mastered microcontroller related knowledge is of important theoretical and practical significance.the course design of the music player is the combination of software and hardware,

3、different notes in the music, the essence is different frequency of sound. through the single-chip microcomputer produce different frequency of the pulse signal, amplified circuit, released by a buzzer to produce the harmonious beauty of music.according to each octave frequency calculate timer time

4、constant, according to beat the the duration of the scale are given, finally realizes the play simple songs function. for example there is only a good mother.keywords: mcu,music player, syllable frequency目 錄第1章引言11.1 選題背景11.2 設(shè)計(jì)原理11.3 單片機(jī)簡(jiǎn)介21.4 單片機(jī)的發(fā)展歷史21.5 單片機(jī)的應(yīng)用領(lǐng)域及發(fā)展趨勢(shì)2第2章方案論證52.1 設(shè)計(jì)要求52.2 系統(tǒng)描述52.

5、3 設(shè)計(jì)方案62.3.1 集成電路62.3.2 單片機(jī)最小系統(tǒng)102.3.3 結(jié)論12第3章硬件設(shè)計(jì)133.1 硬件結(jié)構(gòu)133.2 中心控制模塊133.3 電源模塊163.4 控制電路173.5 復(fù)位電路173.6 電路設(shè)計(jì)所需要的器件19第4章軟件設(shè)計(jì)204.1 音樂發(fā)聲設(shè)計(jì)原理204.1.1 發(fā)聲原理204.1.2 單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理204.1.3 鍵控子程序234.1.4 播放/暫停子程序244.1.5 曲目選擇子程序244.2 音樂播放程序設(shè)計(jì)25第5章系統(tǒng)調(diào)試295.1 軟件調(diào)試295.2 keil開發(fā)系統(tǒng)295.3 調(diào)試中遇到的問題及解決305.4 仿真結(jié)果315.5

6、 誤差分析32第6章結(jié)論33參考文獻(xiàn)34致謝35附錄36附錄一:完整的音樂程序36附錄二:原理圖40附錄三:仿真圖41附錄四:pcb圖42第1章 引言1.1 選題背景單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(microcontroller unit),常用英文字母的縮寫mcu表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)由運(yùn)算器,控制器,存儲(chǔ)器,輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個(gè)微型的計(jì)算機(jī)(最小系統(tǒng)),和計(jì)算機(jī)相比,單片機(jī)缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)

7、格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。intel的8080是最早按照這種思想設(shè)計(jì)出的處理器,當(dāng)時(shí)的單片機(jī)都是8位或4位的。其中最成功的是intel的8051,此后在8051上發(fā)展出了mcs51系列單片機(jī)系統(tǒng)。因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。盡管2000年以后arm已經(jīng)發(fā)展出了32位的主頻超過300m的高端單片機(jī),直到現(xiàn)在基于8051的單片機(jī)還在廣泛的使用。現(xiàn)代人類生活中所用的幾乎每件有電子器件的產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電子產(chǎn)品中都含有單片機(jī)。 汽車上一般配備40多片單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百片單片機(jī)在同時(shí)工作

8、!利用單片機(jī)實(shí)現(xiàn)音樂播放有很多優(yōu)點(diǎn),例如外部電路簡(jiǎn)單,控制方便等,因而備受廣大單片機(jī)愛好者的喜愛。通過音樂發(fā)生器的設(shè)計(jì)方案,掌握c語言的編程方法。并熟練的運(yùn)用89c51單片機(jī)定時(shí)器產(chǎn)生固定頻率的方波信號(hào),驅(qū)動(dòng)喇叭發(fā)出旋律,按下按鍵可以演奏預(yù)先設(shè)置的歌曲旋律,最重要的是自己還可以通過程序設(shè)計(jì)輸入自己喜歡的歌曲來演奏。1.2 設(shè)計(jì)原理樂曲中不同的音符,實(shí)質(zhì)就是不同頻率的聲音。通過單片機(jī)產(chǎn)生不同的頻率的脈沖信號(hào),經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲。1.3 單片機(jī)簡(jiǎn)介單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器ro

9、m、多種i/o口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域的廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300m的高速單片機(jī)。它的最大優(yōu)點(diǎn)是體積小,可放在儀表內(nèi)部,但儲(chǔ)存量小,輸入輸出接口簡(jiǎn)單,功能較低。由于其發(fā)展的非常迅速,舊的單片機(jī)的定義已經(jīng)不能滿足,所以在很多應(yīng)用場(chǎng)合被稱為范圍更廣的微控制器。由于單晶片微電腦常用于當(dāng)控制器故又名single chip microcontroller。1.4 單片機(jī)的發(fā)展歷史單片機(jī)誕生于1971年,

10、經(jīng)歷了scm、mcu、soc三大階段,早期的scm單片機(jī)都是8位或4位的。其中最成功的是intel的8031,此后在8031上發(fā)展出了mcs51系列mcu系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著intel i960系列特別是后來的arm系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。高端的32位soc單片機(jī)主頻已經(jīng)超過300

11、mhz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的windows和linux操作系統(tǒng)。1.5 單片機(jī)的應(yīng)用領(lǐng)域及發(fā)展趨勢(shì)單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為如下幾個(gè)范疇:一、在智能儀器儀表的應(yīng)用單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可

12、實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(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)成二級(jí)控制系統(tǒng)等。四、在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片

13、機(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ī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無線電對(duì)講機(jī)等。單片機(jī)的發(fā)展趨勢(shì)現(xiàn)在可以說是百花齊放,百家爭(zhēng)鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流c51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地??v觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì),大致有:一、微型單片化現(xiàn)在常

14、規(guī)的單片機(jī)普遍都是將中央處理器(cpu)、隨機(jī)存取數(shù)據(jù)存儲(chǔ)(ram)、只讀程序存儲(chǔ)器(rom)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如a/d轉(zhuǎn)換器、pmw(脈寬調(diào)制電路)、wdt(看門狗)、有些單片機(jī)將lcd(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中smd(表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。二、低功耗cmos化mcs-51系列的803

15、1推出時(shí)的功耗達(dá)630mw,而現(xiàn)在的單片機(jī)普遍都100mw左右,隨著對(duì)單片機(jī)功耗要求越來越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了cmos(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80c51就采用了hmos(即高密度金屬氧化物半導(dǎo)體工藝)和chmos(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。cmos雖然功耗低,但由于其物理特征決定其工作速度不夠高,而chmos則具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場(chǎng)合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。第2章 方案論證2.1 設(shè)計(jì)要求具體的設(shè)計(jì)要求應(yīng)該滿足以下功能:硬件方面:1、可以通過按鍵進(jìn)行曲目的選著;2、可以通過按鍵進(jìn)行曲

16、目的播放和停止;3、可以控制聲音的音節(jié)和長(zhǎng)短;4、音頻數(shù)據(jù)信息記錄需要大量的非易失性數(shù)據(jù)存儲(chǔ)器實(shí)時(shí)快速地記錄數(shù)據(jù)。因此需要具有掉電保護(hù)功能的大容量存儲(chǔ)器。軟件方面:1、系統(tǒng)中外的各器件的初始化工作均在主程序中完成,其次,要設(shè)計(jì)如何調(diào)用顯示子程序以及樂曲播放程序。2、在實(shí)際的控制過程中,常要求有實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)定時(shí)或延時(shí)控制所以需要此類中斷服務(wù)程序。2.2 系統(tǒng)描述本課題主要任務(wù)是利用單片機(jī)等部件設(shè)計(jì)一個(gè)多功能音樂盒,實(shí)現(xiàn)音樂的播放,以及通過按鍵的控制實(shí)現(xiàn)上敘述的功能。本文分析基于at89c51單片機(jī)的音樂播放器的硬件電路和軟件設(shè)計(jì),具體過程包括數(shù)據(jù)處理子程序的設(shè)計(jì),顯示子程序的設(shè)計(jì),最后針對(duì)仿

17、真過程中遇到的現(xiàn)象進(jìn)行咯說明和分析。2.3 設(shè)計(jì)方案2.3.1 集成電路集成電路(integrated circuit)如圖2-1是一種微型電子器件或部件。采用一定的工藝,把一個(gè)電路中所需的晶體管、二極管、電阻、電容和電感等元件及布線互連一起,制作在一小塊或幾小塊半導(dǎo)體晶片或介質(zhì)基片上,然后封裝在一個(gè)管殼內(nèi),成為具有所需電路功能的微型結(jié)構(gòu);其中所有元件在結(jié)構(gòu)上已組成一個(gè)整體,使電子元件向著微小型化、低功耗和高可靠性方面邁進(jìn)了一大步。它在電路中用字母“ic”表示。集成電路發(fā)明者為杰克基爾比(基于硅的集成電路)和羅伯特諾伊思(基于鍺的集成電路)。當(dāng)今半導(dǎo)體工業(yè)大多數(shù)應(yīng)用的是基于硅的集成電路。圖2-

18、1 集成電路1、特點(diǎn)集成電路或稱微電路(microcircuit)、微芯片(microchip)、芯片(chip)在電子學(xué)中是一種把電路(主要包括半導(dǎo)體裝置,也包括被動(dòng)元件等)小型化的方式,并通常制造在半導(dǎo)體晶圓表面上。前述將電路制造在半導(dǎo)體芯片表面上的集成電路又稱薄膜(thin-film)集成電路。另有一種厚膜(thick-film)混成集成電路(hybrid integrated circuit)是由獨(dú)立半導(dǎo)體設(shè)備和被動(dòng)元件,集成到襯底或線路板所構(gòu)成的小型化電路。集成電路具有體積小,重量輕,引出線和焊接點(diǎn)少,壽命長(zhǎng),可靠性高,性能好等優(yōu)點(diǎn),同時(shí)成本低,便于大規(guī)模生產(chǎn)。它不僅在工、民用電子設(shè)

19、備如收錄機(jī)、電視機(jī)、計(jì)算機(jī)等方面得到廣泛的應(yīng)用,同時(shí)在軍事、通訊、遙控等方面也得到廣泛的應(yīng)用。用集成電路來裝配電子設(shè)備,其裝配密度比晶體管可提高幾十倍至幾千倍,設(shè)備的穩(wěn)定工作時(shí)間也可大大提高。2、分類按功能結(jié)構(gòu)分類集成電路,又稱為ic,按其功能、結(jié)構(gòu)的不同,可以分為模擬集成電路、數(shù)字集成電路和數(shù)/模混合集成電路三大類。模擬集成電路又稱線性電路,用來產(chǎn)生、放大和處理各種模擬信號(hào)(指幅度隨時(shí)間變化的信號(hào)。例如半導(dǎo)體收音機(jī)的音頻信號(hào)、錄放機(jī)的磁帶信號(hào)等),其輸入信號(hào)和輸出信號(hào)成比例關(guān)系。而數(shù)字集成電路用來產(chǎn)生、放大和處理各種數(shù)字信號(hào)(指在時(shí)間上和幅度上離散取值的信號(hào)。例如3g手機(jī)、數(shù)碼相機(jī)、電腦cp

20、u、數(shù)字電視的邏輯控制和重放的音頻信號(hào)和視頻信號(hào))。按制作工藝分類集成電路按制作工藝可分為半導(dǎo)體集成電路和膜集成電路。膜集成電路又分類厚膜集成電路和薄膜集成電路。按集成度高低分類集成電路按集成度高低的不同可分為:ssi 小規(guī)模集成電路(small scale integrated circuits)msi 中規(guī)模集成電路(medium scale integrated circuits)lsi 大規(guī)模集成電路(large scale integrated circuits)vlsi 超大規(guī)模集成電路(very large scale integrated circuits)ulsi 特大規(guī)模集

21、成電路(ultra large scale integrated circuits)gsi 巨大規(guī)模集成電路也被稱作極大規(guī)模集成電路或超特大規(guī)模集成電路(giga scale integration)。按導(dǎo)電類型不同分類集成電路按導(dǎo)電類型可分為雙極型集成電路和單極型集成電路,他們都是數(shù)字集成電路。雙極型集成電路的制作工藝復(fù)雜,功耗較大,代表集成電路有ttl、ecl、htl、lst-tl、sttl等類型。單極型集成電路的制作工藝簡(jiǎn)單,功耗也較低,易于制成大規(guī)模集成電路,代表集成電路有cmos、nmos、pmos等類型。按用途分類集成電路按用途可分為電視機(jī)用集成電路、音響用集成電路、影碟機(jī)用集成電

22、路、錄像機(jī)用集成電路、電腦(微機(jī))用集成電路、電子琴用集成電路、通信用集成電路、照相機(jī)用集成電路、遙控集成電路、語言集成電路、報(bào)警器用集成電路及各種專用集成電路。(1)電視機(jī)用集成電路包括行、場(chǎng)掃描集成電路、中放集成電路、伴音集成電路、彩色解碼集成電路、av/tv轉(zhuǎn)換集成電路、開關(guān)電源集成電路、遙控集成電路、麗音解碼集成電路、畫中畫處理集成電路、微處理器(cpu)集成電路、存儲(chǔ)器集成電路等。(2)音響用集成電路包括am/fm高中頻電路、立體聲解碼電路、音頻前置放大電路、音頻運(yùn)算放大集成電路、音頻功率放大集成電路、環(huán)繞聲處理集成電路、電平驅(qū)動(dòng)集成電路,電子音量控制集成電路、延時(shí)混響集成電路、電子

23、開關(guān)集成電路等。(3)影碟機(jī)用集成電路有系統(tǒng)控制集成電路、視頻編碼集成電路、mpeg解碼集成電路、音頻信號(hào)處理集成電路、音響效果集成電路、rf信號(hào)處理集成電路、數(shù)字信號(hào)處理集成電路、伺服集成電路、電動(dòng)機(jī)驅(qū)動(dòng)集成電路等。(4)錄像機(jī)用集成電路有系統(tǒng)控制集成電路、伺服集成電路、驅(qū)動(dòng)集成電路、音頻處理集成電路、視頻處理集成電路。按應(yīng)用領(lǐng)域分類集成電路按應(yīng)用領(lǐng)域可分為標(biāo)準(zhǔn)通用集成電路和專用集成電路。按外形分類集成電路按外形可分為圓形(金屬外殼晶體管封裝型,一般適合用于大功率)、扁平型(穩(wěn)定性好,體積小)和雙列直插型。3、簡(jiǎn)史1947年:貝爾實(shí)驗(yàn)室肖特萊等人發(fā)明了晶體管,這是微電子技術(shù)發(fā)展中第一個(gè)里程碑

24、;1950年:結(jié)型晶體管誕生1950年: r ohl和肖特萊發(fā)明了離子注入工藝1951年:場(chǎng)效應(yīng)晶體管發(fā)明1958年:仙童公司robert noyce與德儀公司基爾比間隔數(shù)月分別發(fā)明了集成電路,開創(chuàng)了世界微電子學(xué)的歷史;1962年:美國(guó)rca公司研制出mos場(chǎng)效應(yīng)晶體管1963年:f.m.wanlass和c.t.sah首次提出cmos技術(shù),今天,95%以上的集成電路芯片都是基于cmos工藝1964年:intel摩爾提出摩爾定律,預(yù)測(cè)晶體管集成度將會(huì)每18個(gè)月增加1倍1966年:美國(guó)rca公司研制出cmos集成電路,并研制出第一塊門陣列(50門),為現(xiàn)如今的大規(guī)模集成電路發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ),具有

25、里程碑意義1971年:intel推出1kb動(dòng)態(tài)隨機(jī)存儲(chǔ)器(dram),標(biāo)志著大規(guī)模集成電路出現(xiàn)1971年:全球第一個(gè)微處理器4004由intel公司推出,采用的是mos工藝,這是一個(gè)里程碑式的發(fā)明1978年:64kb動(dòng)態(tài)隨機(jī)存儲(chǔ)器誕生,不足0.5平方厘米的硅片上集成了14萬個(gè)晶體管,標(biāo)志著超大規(guī)模集成電路(vlsi)時(shí)代的來臨1979年:intel推出5mhz 8088微處理器,之后,ibm基于8088推出全球第一臺(tái)pc1985年:80386微處理器問世,20mhz1988年:16m dram問世,1平方厘米大小的硅片上集成有3500萬個(gè)晶體管,標(biāo)志著進(jìn)入超大規(guī)模集成電路(vlsi)階段198

26、9年:1mb dram進(jìn)入市場(chǎng)1989年:486微處理器推出,25mhz,1m工藝,后來50mhz芯片采用 0.8m工藝1992年:64m位隨機(jī)存儲(chǔ)器問世1997年:300mhz奔騰問世,采用0.25m工藝1999年:奔騰問世,450mhz,采用0.25m工藝,后采用0.18m工藝2003年:奔騰4 e系列推出,采用90nm工藝。2005年:intel 酷睿2系列上市,采用65nm工藝。2007年:基于全新45納米high-k工藝的intel酷睿2 e7/e8/e9上市。2009年:intel酷睿i系列全新推出,創(chuàng)紀(jì)錄采用了領(lǐng)先的32納米工藝,并且下一代22納米工藝正在研發(fā)。我國(guó)集成電路發(fā)展歷

27、史我國(guó)集成電路產(chǎn)業(yè)誕生于六十年代,共經(jīng)歷了三個(gè)發(fā)展階段:1965年-1978年:以計(jì)算機(jī)和軍工配套為目標(biāo),以開發(fā)邏輯電路為主要產(chǎn) 品,初步建立集成電路工業(yè)基礎(chǔ)及相關(guān)設(shè)備、儀器、材料的配套條件1978年-1990年:主要引進(jìn)美國(guó)二手設(shè)備,改善集成電路裝備水平,在“治散治亂”的同時(shí),以消費(fèi)類整機(jī)作為配套重點(diǎn),較好地解決了彩電集成電路的國(guó)產(chǎn)化1990年-2000年:以908工程、909工程為重點(diǎn),以cad為突破口,抓好科技攻關(guān)和北方科研開發(fā)基地的建設(shè),為信息產(chǎn)業(yè)服務(wù),集成電路行業(yè)取得了新的發(fā)展。集成電路產(chǎn)業(yè)是對(duì)集成電路產(chǎn)業(yè)鏈各環(huán)節(jié)市場(chǎng)銷售額的總體描述,它不僅僅包含集成電路市場(chǎng),也包括ip核市場(chǎng)、ed

28、a市場(chǎng)、芯片代工市場(chǎng)、封測(cè)市場(chǎng),甚至延伸至設(shè)備、材料市場(chǎng)。集成電路產(chǎn)業(yè)不再依賴cpu、存儲(chǔ)器等單一器件發(fā)展,移動(dòng)互聯(lián)、三網(wǎng)融合、多屏互動(dòng)、智能終端帶來了多重市場(chǎng)空間,商業(yè)模式不斷創(chuàng)新為市場(chǎng)注入新活力。目前我國(guó)集成電路產(chǎn)業(yè)已具備一定基礎(chǔ),多年來我國(guó)集成電路產(chǎn)業(yè)所聚集的技術(shù)創(chuàng)新活力、市場(chǎng)拓展能力、資源整合動(dòng)力以及廣闊的市場(chǎng)潛力,為產(chǎn)業(yè)在未來5年10年實(shí)現(xiàn)快速發(fā)展、邁上新的臺(tái)階奠定了基礎(chǔ)。2.3.2 單片機(jī)最小系統(tǒng)在設(shè)計(jì)的時(shí)候我們了解了2款芯片,at89c51和at89c52。下面是2款芯片的簡(jiǎn)介:at89c51:是一種帶4k字節(jié)flash存儲(chǔ)器(fperomflash programmable a

29、nd erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機(jī)。at89c2051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡(jiǎn)版本。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。主要功能特性:1) 與mcs-51 兼容;2) 4k字節(jié)可編程f

30、lash存儲(chǔ)器;3) 全靜態(tài)工作:0hz-24mhz;4) 1288位內(nèi)部ram;5) 兩個(gè)16位定時(shí)器/計(jì)數(shù)器;6) 5個(gè)中斷源;7) 可編程串行通道;8) 低功耗的閑置和掉電模式;9) 片內(nèi)振蕩器和時(shí)鐘電路。at89c52:是一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲(chǔ)單元,at89c52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性:1) 兼容mcs51指令系

31、統(tǒng);2) 8kb可反復(fù)擦寫(大于1000次)flash rom;3) 32個(gè)雙向i/o口;4) 256x8bit內(nèi)部ram;5) 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷;6) 時(shí)鐘頻率0-24mhz;7) 2個(gè)串行中斷,可編程uart串行通道;8) 2個(gè)外部中斷源,共8個(gè)中斷源;9) 2個(gè)讀寫中斷口線,3級(jí)加密位;10) 低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能。2.3.3 結(jié)論我們通過集成電路和2款單片機(jī)的屬性和優(yōu)缺點(diǎn)對(duì)比,我們覺得at89c51單片機(jī)芯片更加適合本次實(shí)驗(yàn)的中心控制芯片。第3章 硬件設(shè)計(jì)3.1 硬件結(jié)構(gòu)圖3-1是以at89c51單片機(jī)為核心的音樂播放器系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)框圖。該系

32、統(tǒng)主要是由復(fù)位電路、按鍵電路、時(shí)鐘電路、中心模塊、揚(yáng)聲器驅(qū)動(dòng)等組成。其工作原理為:此音樂播放器,有三個(gè)按鍵及控制按鈕:播放/暫停、下一曲、上一曲;通過控制按鈕控制單片機(jī),播放所要求的音樂,并通過放大電路和喇叭輸出聲音。圖3-1 硬件結(jié)構(gòu)圖3.2 中心控制模塊 中控采用的是at89c51芯片,下面是at89c51的引腳圖:圖3-2 at89c51引腳圖各端口作用: p0口:p0口是一個(gè)8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)ttl邏輯電平。對(duì)p0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。

33、在flash編程時(shí),p0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 p1口:p1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl邏輯電平。對(duì)p1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex),具體如下表所示。在flash編程和校驗(yàn)時(shí),p1口接收低8位地址字節(jié)。 引腳號(hào)第二功能 l p1.0 t2(定時(shí)器/計(jì)數(shù)器t2的

34、外部計(jì)數(shù)輸入),時(shí)鐘輸出 l p1.1 t2ex(定時(shí)器/計(jì)數(shù)器t2的捕捉/重載觸發(fā)信號(hào)和方向控制) l p1.5 mosi(在系統(tǒng)編程用) l p1.6 miso(在系統(tǒng)編程用) l p1.7 sck(在系統(tǒng)編程用) p2口:p2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl邏輯電平。對(duì)p2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movx dptr)時(shí),p2口送出高八位地址。在這種應(yīng)用中,p2口使用很強(qiáng)的內(nèi)

35、部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口輸出p2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),p2口也接收高8位地址字節(jié)和一些控制信號(hào)。p3口:p3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p3輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl邏輯電平。對(duì)p3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口亦作為at89c52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),p3口也接收一些控制信號(hào)。 端口引腳第二功能 l p3.0 rxd(串行輸入口) l p3.1 txd(

36、串行輸出口) l p3.2 into(外中斷0) l p3.3 int1(外中斷1) l p3.4 to(定時(shí)/計(jì)數(shù)器0) l p3.5 t1(定時(shí)/計(jì)數(shù)器1) l p3.6 wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) l p3.7 rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) 此外,p3口還接收一些用于flash閃存編程和程序校驗(yàn)的控制信號(hào)。 rst復(fù)位輸入。當(dāng)振蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ale/prog當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ale仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于

37、定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ale脈沖。對(duì)flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對(duì)特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位,可禁止ale操作。該位置位后,只有一條movx和movc指令才能將ale激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ale禁止位無效。psen程序儲(chǔ)存允許(psen)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)at89c52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次psen信號(hào)。ea/vpp外部訪問允許

38、,欲使cpu僅訪問外部程序存儲(chǔ)器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v編程電壓vpp。3.3 電源模塊對(duì)于一個(gè)電子系統(tǒng)來說,電源部分的設(shè)計(jì)越發(fā)重要。對(duì)于一個(gè)實(shí)際的電子系統(tǒng),要認(rèn)真的分析它的電源需求。不僅僅是關(guān)心輸入電壓,輸出電壓和電流,還要考慮到總的功率,電源實(shí)現(xiàn)的效率,電源部分對(duì)負(fù)載變化的瞬態(tài)響應(yīng)能力,關(guān)鍵器件對(duì)電源波動(dòng)的容忍范圍以及相應(yīng)的允許的

39、電源紋波,還有散熱問題等等。本次設(shè)計(jì)基于at89c51功率因數(shù)測(cè)量系統(tǒng)中使用到咯+5v的電源,電源設(shè)計(jì)的原理圖如下。電路中使用到的芯片是7805,7805是穩(wěn)壓芯片,好處是應(yīng)用比較簡(jiǎn)單,只需要接上幾個(gè)電容就可以使用了。圖3-3 電源電路圖3.4 控制電路控制電路,鍵1與p3.2相連、鍵2與p3.3相連、鍵3與p3.5相連。當(dāng)電鍵按下時(shí)接口接低電平,實(shí)現(xiàn)對(duì)音樂播放器的控制。鍵1連通實(shí)現(xiàn)上一曲更換,鍵二連通實(shí)現(xiàn)下一曲更換,鍵三連通實(shí)現(xiàn)開始暫停操作。3.5 復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以

40、防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。復(fù)位電路采用rc充電電路組成上電復(fù)位單片機(jī)電路,當(dāng)系統(tǒng)上電時(shí),在上電初期,電容c充電,使復(fù)位腳持續(xù)高電平,當(dāng)c充電到達(dá)一定程度復(fù)位腳電位會(huì)慢慢變低,最后被電阻r完全拉低,高電平復(fù)位的時(shí)間由充電的時(shí)間決定,充電時(shí)間又由r與c的阻值和容值之積決定。一旦單片機(jī)復(fù)位腳拉低后就一直都低電平,只有下電后再上電才重新開始復(fù)位過程。電路圖如下所示:圖3-4 復(fù)位電路圖3.6 電路設(shè)計(jì)所需要的器件表3-1 電路設(shè)計(jì)器件表類別序號(hào)型號(hào)數(shù)量(單位)用途電源178051個(gè)系統(tǒng)電源ic芯片2at89c511片cpu3lm3861片實(shí)時(shí)時(shí)鐘日歷芯片電容430pf2個(gè)單

41、片機(jī)時(shí)鐘震蕩電路510f1個(gè)復(fù)位電路60.1f1個(gè)7470f1個(gè)822f1個(gè)947f1個(gè)100.047f1個(gè)11100f1個(gè)晶振1212mhz1支電阻134.5k1支141k2支復(fù)位電路1510k1支限壓保護(hù)164701支喇叭1774f3781個(gè)揚(yáng)聲器硬質(zhì)板18焊接性1塊基礎(chǔ)電路二極管191n40011個(gè)電源部分20發(fā)光二極管1個(gè)檢測(cè)電源第4章 軟件設(shè)計(jì)4.1 音樂發(fā)聲設(shè)計(jì)原理4.1.1 發(fā)聲原理一首樂曲是由多個(gè)音符構(gòu)成的。每個(gè)音符都對(duì)應(yīng)著一個(gè)確定的頻率,樂曲中不同的音符,實(shí)質(zhì)就是不同頻率的聲音;另外每個(gè)音符會(huì)根據(jù)樂曲的要求設(shè)定一個(gè)確定的節(jié)拍??梢钥刂茊纹瑱C(jī)產(chǎn)生不同頻率不同節(jié)拍的脈沖信號(hào),由蜂

42、鳴器發(fā)出就產(chǎn)生了美妙和諧的樂曲。 4.1.2 單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理1、要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖(1/頻率),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期的時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的i/o反相,然后重復(fù)計(jì)時(shí)此半周期的時(shí)間再對(duì)i/o反相,就可以在i/o腳上得到此頻率的脈沖。 2、利用單片機(jī)內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式mode1下,改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同頻率的方法如下: 例如:頻率為523hz,其周期天/523 s=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在每計(jì)數(shù)956次時(shí)就將i/o反接,就可得到中音do(532h

43、z)。 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: n=fi/2/fr (4-1)其中n表示計(jì)數(shù)值;fi表示內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1mhz;fr表示要產(chǎn)生的頻率。 3、其計(jì)數(shù)值的求法如下: t=65536-n=65536-fi/2/fr (4-2)計(jì)算舉例: 設(shè)k=65536,f=1000000=fi=1mhz,求低音do(261hz)、中音do(523hz)、 高音do(1046hz)的計(jì)數(shù)值。 t=65536-n=65536-fi/2/fr=65536-1000000/2/fr=65536-500000/fr低音do的t=65536-500000/262=63628。 中音do的t=655

44、36-500000/523=64580。高音do的t=65536-500000/1047=65059。4、每個(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é)拍對(duì)照表4-1-1。表4-1 簡(jiǎn)譜對(duì)應(yīng)的頻率、簡(jiǎn)譜碼和計(jì)數(shù)初值表簡(jiǎn)譜發(fā)音頻率(hz)計(jì)數(shù)初值簡(jiǎn)譜碼5低音so3926426016低音la4406440027低音si4946452431中音do5236458042中音re5876468453中音m

45、i6596477764中音fa6986482075中音so7846489886中音la8806496897中音si98865030a1高音do104665058b2高音re117565110c3高音mi131865157d4高音fa139765178e5高音so156865217f不發(fā)音0表4-2 節(jié)拍碼與實(shí)際節(jié)拍對(duì)照表節(jié)拍碼實(shí)際節(jié)拍節(jié)拍碼實(shí)際節(jié)拍節(jié)拍碼實(shí)際節(jié)拍11/4拍51又1/4拍c3拍22/4拍61又1/2拍f3又3/4拍33/4拍82拍41拍a2又1/2拍建立音樂步驟:(1)先把樂譜的音符找出,然后由上表建立t值表的順序。 (2)把t值表構(gòu)成一個(gè)編碼表,構(gòu)成發(fā)音符的計(jì)數(shù)值放在計(jì)數(shù)初值編

46、碼表里。 (3)簡(jiǎn)譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的簡(jiǎn)譜編碼表里。 建立編碼表具體如下:1)定時(shí)值為十六進(jìn)制4位數(shù),拆分為兩組,如5對(duì)應(yīng)的定時(shí)值為fd80h,拆分fdh和80h兩組.前者裝入定時(shí)器的高位th0,后組裝入定時(shí)器的低位tl0。2)在程序中使用定時(shí)器t0方式1來產(chǎn)生來產(chǎn)生歌譜中各音符對(duì)應(yīng)頻率的音頻脈沖,由p3.7輸出,經(jīng)三極管將信號(hào)放大后驅(qū)動(dòng)蜂鳴器發(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é)拍的控制

47、碼在表table中位于音符碼的后面。5)當(dāng)一個(gè)音符的發(fā)音時(shí)間到時(shí),再查下一個(gè)音符的定時(shí)常數(shù)和延時(shí)常數(shù)。依此進(jìn)行下去,就可演奏出悅耳動(dòng)聽的樂曲。程序流程圖如圖所示:圖4-1 主程序流程圖如圖4-3所示,開始播放自定義音樂程序時(shí),指針指向樂譜第一個(gè)字節(jié),將第一字節(jié)拆分為高低字節(jié),其高字節(jié)即為音符中音高對(duì)應(yīng)定時(shí)器定時(shí)常數(shù),低字節(jié)即為音符中節(jié)拍對(duì)應(yīng)的1/4節(jié)拍的次數(shù),同時(shí)啟動(dòng)中斷定時(shí)器0工作在方式1,由定時(shí)器定時(shí)常數(shù)得到相應(yīng)音高,通過延時(shí)子程序設(shè)定1/4節(jié)拍的時(shí)間,由節(jié)拍次數(shù)得到節(jié)拍,再讀取下一個(gè)樂譜字節(jié),循環(huán)下去則演奏出美妙和諧的樂曲。4.1.3 鍵控子程序鍵控子程序主要由播放/暫停子程序、上一曲子

48、程序、下一曲子程序組成,分別由一個(gè)計(jì)數(shù)器中斷和兩個(gè)外部中斷實(shí)現(xiàn)。4.1.4 播放/暫停子程序播放/暫停在程序利用內(nèi)部中斷t0口。將t0口設(shè)為計(jì)數(shù)中斷并工作在方式2下。標(biāo)識(shí)符初值賦值為r1=00h,計(jì)數(shù)初值設(shè)為th0=0ffh,tl0=0ffh。當(dāng)按鍵第一次產(chǎn)生中斷信號(hào)時(shí),播放/暫停子程序改變標(biāo)志符r1,將其賦值為01h。此時(shí)播放器由暫停狀態(tài)進(jìn)入播放狀態(tài)。當(dāng)按鍵第二次產(chǎn)生中斷信號(hào)時(shí),播放/暫停子程序判斷r1是否為02h后,將r1再次賦值為00h。此時(shí),播放器由播放狀態(tài)進(jìn)入暫停狀態(tài)。 4.1.5 曲目選擇子程序圖4-2 曲目選擇子程序流程圖開始程序 指向樂譜第一個(gè)字節(jié) 拆分字節(jié)的高低字節(jié) 由高字節(jié)

49、得音高對(duì)應(yīng)定時(shí)器定時(shí)常數(shù) 由低字節(jié)得到節(jié)拍對(duì)應(yīng)節(jié)拍次數(shù) 啟動(dòng)定時(shí)器0 延時(shí)節(jié)拍時(shí)間 關(guān)閉定時(shí)器0 讀取下一個(gè)樂譜字節(jié) 字節(jié)是00h嗎? 程序循環(huán)yesno圖4-3 程序播放過程4.2 音樂播放程序設(shè)計(jì)音樂程序根據(jù)上面的音調(diào)節(jié)拍編碼方案用第一首歌勞動(dòng)最光榮為例編碼如下: uchar code ldzgr =0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x32,0x52,0x12,0x32,0x28, 0x52,0x84,0x52,0x62,0x62,0x54,0x52,0x81,0xa1,0x92,0x52,0x88, 0x83,0x91,0x82,0x52,0x62,

50、0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, 0x12,0x11,0x21,0x32,0x51,0x51,0x62,0x52,0x84,0x82,0x51,0x61,0x84,0xa4,0x92, 0x52,0x86,0x02, 0x52,0x81,0x81,0x82,0x52,0x62,0x61,0x81,0x54,0x32,0x51,0x61,0x53,0x31,0x12,0x32,0x24, 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x51,0x61,0x81,0xa1,0x92,0x52,0x88, 0x83,

51、0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, 0x12,0x11,0x21,0x32,0x52,0x82,0x52,0x68,0x52,0x61,0x61,0x84,0xa4,0x92,0x52, 0x84,0xff ;一、鍵掃描函數(shù)void scankey()unsigned int keydata;keytmp=p1&0x01;if(keytmp= =0)keydata=0;else if(keytmp= =1)keydata=1;二、鍵延時(shí)函數(shù)void keydelay(void)uchar i;for

52、(i=300;i=0;i-)三、延時(shí)函數(shù)void delay(unsigned char time)unsigned char t1;unsigned char t2;for(t1=0;t1t;t1+)for(t2=0;t28000;t2+)四、定時(shí)器0中斷服務(wù)子程序void time0_int() interrupt 1 using 0tr0=0;p00=p00; th0=bth0; tl0=btl0;tr0=1;五、賦t0計(jì)數(shù)初值,開始計(jì)數(shù)void sing()th0=bth0;tlo=btl0;tr0=1;delay(time);第5章 系統(tǒng)調(diào)試5.1 軟件調(diào)試結(jié)構(gòu)化軟件的調(diào)試一般可以將

53、重點(diǎn)放在分模塊調(diào)試上,通調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。在本次設(shè)計(jì)中利用的是keil c51軟件仿真器,其評(píng)估版本可以免費(fèi)獲取,只是有2kb代碼限制。5.2 keil開發(fā)系統(tǒng)使用keil軟件建立一個(gè)工程: keil是目前進(jìn)行51單片機(jī)開發(fā)最常用的編譯軟件。關(guān)于keil的使用,有很多的資料介紹,這里只介紹其整個(gè)編譯過程。在keil里,每一個(gè)完整的程序,都是以一個(gè)工程的形式建立的。一個(gè)工程里可以有一個(gè)或多個(gè)*.c文件和*.h文件,但只可以有一個(gè)main()函數(shù)。一般的做法是將包含main()函數(shù)的c文

54、件加入到工程中,其他文件以#include頭文件的形式加到這個(gè)c文件里。這樣,在編譯的時(shí)候,其他的文件會(huì)被自動(dòng)的導(dǎo)入到工程里來。打開keil軟件后,出現(xiàn)(圖5-1)所示界面。當(dāng)然,如果keil在上次關(guān)閉時(shí)有打開的工程,再一次打開時(shí)它會(huì)自動(dòng)加載上一次的工程文件。圖5-1 keil軟件主界面5.3 調(diào)試中遇到的問題及解決1、編程時(shí)要注意,在程序開始時(shí),要寫入各定時(shí)器中斷的入口地址。2、有時(shí)會(huì)出現(xiàn)程序一點(diǎn)錯(cuò)誤也沒有,但就是不能正常運(yùn)行的現(xiàn)象,最后我們發(fā)現(xiàn)是因?yàn)槌绦蛑杏械闹噶顣鴮懙貌灰?guī)范導(dǎo)致的,例如有的ret返回指令一定要按正確格式書寫。3、程序中的跳轉(zhuǎn)指令的運(yùn)用很重要,為保險(xiǎn)起見,都用ljmp,我們

55、就遇到過跳轉(zhuǎn)指令用錯(cuò)程序無法正常運(yùn)行的現(xiàn)象。4、編程過程中要注意加注釋或分割線,否則,在程序過長(zhǎng)時(shí)容易變得很亂,不便于查找或更改。5、開始時(shí)候沒有將單片機(jī)的第31號(hào)引腳接到高電平,結(jié)果使mp3播放器的播放性能不穩(wěn)定(有時(shí)候能工作,有時(shí)候卻工作不了),當(dāng)接一高電平以后,播放器能正常工作了。6、開始沒有考慮鍵盤的消抖,造成的按鍵工作紊亂,具體的現(xiàn)象是:按1次鍵卻被要機(jī)器認(rèn)為是按了1次或多次,這就使播放器有時(shí)候可以正常工作,有時(shí)候卻不可以。給鍵盤程序加了消抖呼程序以后,按鍵就工作正常了。7、兩個(gè)定時(shí)器同時(shí)工作,存在中斷時(shí)序問題,剛開始時(shí)我們把定時(shí)器1設(shè)定在方式3,計(jì)250us,由于定時(shí)中斷過于頻繁,使cpu負(fù)載過大,導(dǎo)致音樂不能正常播放,時(shí)間不能正常顯示。解決辦法:將定時(shí)器1設(shè)定在工作方式1,16位計(jì)數(shù),計(jì)50ms,效果有很大改觀。5.4 仿真結(jié)果我在keil軟件中建立工程,連接,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論