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

下載本文檔

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

文檔簡介

1、摘 要本次課程設(shè)計是基于at89c51單片機設(shè)計一個音樂播放器。通過單片機音樂播放器系統(tǒng)設(shè)計和研究,對于切實掌握單片機相關(guān)知識具有重要的理論和實際意義。這次課程設(shè)計的音樂播放器是軟件和硬件的結(jié)合,樂曲中不同的音符,實質(zhì)就是不同頻率的聲音。通過單片機產(chǎn)生不同的頻率的脈沖信號,經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲。根據(jù)各音階頻率算出定時器定時常數(shù),根據(jù)節(jié)拍給出該音階持續(xù)的時間,最終實現(xiàn)播放簡單歌曲的功能。例如“世上只有媽媽好”。關(guān)鍵字:單片機,音樂播放器,音節(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è)計原理11.3 單片機簡介21.4 單片機的發(fā)展歷史21.5 單片機的應(yīng)用領(lǐng)域及發(fā)展趨勢2第2章方案論證52.1 設(shè)計要求52.2 系統(tǒng)描述52.

5、3 設(shè)計方案62.3.1 集成電路62.3.2 單片機最小系統(tǒng)102.3.3 結(jié)論12第3章硬件設(shè)計133.1 硬件結(jié)構(gòu)133.2 中心控制模塊133.3 電源模塊163.4 控制電路173.5 復(fù)位電路173.6 電路設(shè)計所需要的器件19第4章軟件設(shè)計204.1 音樂發(fā)聲設(shè)計原理204.1.1 發(fā)聲原理204.1.2 單片機產(chǎn)生不同頻率脈沖信號的原理204.1.3 鍵控子程序234.1.4 播放/暫停子程序244.1.5 曲目選擇子程序244.2 音樂播放程序設(shè)計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參考文獻34致謝35附錄36附錄一:完整的音樂程序36附錄二:原理圖40附錄三:仿真圖41附錄四:pcb圖42第1章 引言1.1 選題背景單片微型計算機簡稱單片機,是典型的嵌入式微控制器(microcontroller unit),常用英文字母的縮寫mcu表示單片機,它最早是被用在工業(yè)控制領(lǐng)域。單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。單片機由運算器,控制器,存儲器,輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個微型的計算機(最小系統(tǒng)),和計算機相比,單片機缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價

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

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

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

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

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

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

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

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

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

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

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

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

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

20、u、數(shù)字電視的邏輯控制和重放的音頻信號和視頻信號)。按制作工藝分類集成電路按制作工藝可分為半導(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等類型。單極型集成電路的制作工藝簡單,功耗也較低,易于制成大規(guī)模集成電路,代表集成電路有cmos、nmos、pmos等類型。按用途分類集成電路按用途可分為電視機用集成電路、音響用集成電路、影碟機用集成電

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

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

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

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

26、9年:1mb dram進入市場1989年:486微處理器推出,25mhz,1m工藝,后來50mhz芯片采用 0.8m工藝1992年:64m位隨機存儲器問世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ā)。我國集成電路發(fā)展歷

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43、z)。 計數(shù)脈沖值與頻率的關(guān)系公式如下: n=fi/2/fr (4-1)其中n表示計數(shù)值;fi表示內(nèi)部計時一次為1us,故其頻率為1mhz;fr表示要產(chǎn)生的頻率。 3、其計數(shù)值的求法如下: t=65536-n=65536-fi/2/fr (4-2)計算舉例: 設(shè)k=65536,f=1000000=fi=1mhz,求低音do(261hz)、中音do(523hz)、 高音do(1046hz)的計數(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、每個音符使用1個字節(jié),字節(jié)高4位代表音符高低,低4位代表音符 節(jié)拍。假設(shè)1/4節(jié)拍為1delay,則1拍應(yīng)為4delay,以此類推。只要求得1/4拍的delay時間,其余節(jié)拍則為它的倍數(shù),本設(shè)計取4/4調(diào)值,延時時間為125ms,其中節(jié)拍碼與實際節(jié)拍對照表4-1-1。表4-1 簡譜對應(yīng)的頻率、簡譜碼和計數(shù)初值表簡譜發(fā)音頻率(hz)計數(shù)初值簡譜碼5低音so3926426016低音la4406440027低音si4946452431中音do5236458042中音re5876468453中音m

45、i6596477764中音fa6986482075中音so7846489886中音la8806496897中音si98865030a1高音do104665058b2高音re117565110c3高音mi131865157d4高音fa139765178e5高音so156865217f不發(fā)音0表4-2 節(jié)拍碼與實際節(jié)拍對照表節(jié)拍碼實際節(jié)拍節(jié)拍碼實際節(jié)拍節(jié)拍碼實際節(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òu)成發(fā)音符的計數(shù)值放在計數(shù)初值編

46、碼表里。 (3)簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的簡譜編碼表里。 建立編碼表具體如下:1)定時值為十六進制4位數(shù),拆分為兩組,如5對應(yīng)的定時值為fd80h,拆分fdh和80h兩組.前者裝入定時器的高位th0,后組裝入定時器的低位tl0。2)在程序中使用定時器t0方式1來產(chǎn)生來產(chǎn)生歌譜中各音符對應(yīng)頻率的音頻脈沖,由p3.7輸出,經(jīng)三極管將信號放大后驅(qū)動蜂鳴器發(fā)出不同音節(jié)的聲音。3)程序中的節(jié)拍控制是通過調(diào)用延時子程序delay的次數(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)一個音符的發(fā)音時間到時,再查下一個音符的定時常數(shù)和延時常數(shù)。依此進行下去,就可演奏出悅耳動聽的樂曲。程序流程圖如圖所示:圖4-1 主程序流程圖如圖4-3所示,開始播放自定義音樂程序時,指針指向樂譜第一個字節(jié),將第一字節(jié)拆分為高低字節(jié),其高字節(jié)即為音符中音高對應(yīng)定時器定時常數(shù),低字節(jié)即為音符中節(jié)拍對應(yīng)的1/4節(jié)拍的次數(shù),同時啟動中斷定時器0工作在方式1,由定時器定時常數(shù)得到相應(yīng)音高,通過延時子程序設(shè)定1/4節(jié)拍的時間,由節(jié)拍次數(shù)得到節(jié)拍,再讀取下一個樂譜字節(jié),循環(huán)下去則演奏出美妙和諧的樂曲。4.1.3 鍵控子程序鍵控子程序主要由播放/暫停子程序、上一曲子

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

49、得音高對應(yīng)定時器定時常數(shù) 由低字節(jié)得到節(jié)拍對應(yīng)節(jié)拍次數(shù) 啟動定時器0 延時節(jié)拍時間 關(guān)閉定時器0 讀取下一個樂譜字節(jié) 字節(jié)是00h嗎? 程序循環(huán)yesno圖4-3 程序播放過程4.2 音樂播放程序設(shè)計音樂程序根據(jù)上面的音調(diào)節(jié)拍編碼方案用第一首歌勞動最光榮為例編碼如下: 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ù)void keydelay(void)uchar i;for

52、(i=300;i=0;i-)三、延時函數(shù)void delay(unsigned char time)unsigned char t1;unsigned char t2;for(t1=0;t1t;t1+)for(t2=0;t28000;t2+)四、定時器0中斷服務(wù)子程序void time0_int() interrupt 1 using 0tr0=0;p00=p00; th0=bth0; tl0=btl0;tr0=1;五、賦t0計數(shù)初值,開始計數(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ào)試上,通調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。在本次設(shè)計中利用的是keil c51軟件仿真器,其評估版本可以免費獲取,只是有2kb代碼限制。5.2 keil開發(fā)系統(tǒng)使用keil軟件建立一個工程: keil是目前進行51單片機開發(fā)最常用的編譯軟件。關(guān)于keil的使用,有很多的資料介紹,這里只介紹其整個編譯過程。在keil里,每一個完整的程序,都是以一個工程的形式建立的。一個工程里可以有一個或多個*.c文件和*.h文件,但只可以有一個main()函數(shù)。一般的做法是將包含main()函數(shù)的c文

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論