基于單片機(jī)音樂演奏系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  如今,單片機(jī)控制音樂播放的例子不勝枚舉,音樂演奏系統(tǒng)也廣泛的應(yīng)用,而利用單片機(jī)存儲(chǔ)音樂,控制播放,彈奏樂曲更為廣泛。它有功能多﹑價(jià)格優(yōu)﹑外圍電路簡(jiǎn)單的特點(diǎn),不僅很受音樂愛好者及音樂芯片制造商的熱衷,而且是一般家庭都能承受得了的經(jīng)濟(jì)投入范圍之內(nèi)。利用單片機(jī)發(fā)聲鍵盤操作直觀簡(jiǎn)單。對(duì)于初學(xué)者來說,是很容易彈奏的。本設(shè)計(jì)為基于單片機(jī)的

2、音樂演奏系統(tǒng),設(shè)計(jì)出一種不僅要使單片機(jī)可以播放音樂關(guān)鍵在于還有能夠彈奏自己想彈奏的音樂。</p><p>  本文設(shè)計(jì)出一種基于STC89C52的簡(jiǎn)單音樂演奏系統(tǒng),利用單片機(jī)技術(shù)、LM386音頻功放芯片、4x4鍵盤、SPEAKER、以及74HC595和LED數(shù)碼管實(shí)現(xiàn)原理圖設(shè)計(jì)到電路板設(shè)計(jì)開發(fā),并用C51高級(jí)語言進(jìn)行鍵盤識(shí)別程序設(shè)計(jì)和音頻脈沖輸出程序的設(shè)計(jì)。最終能夠?qū)崿F(xiàn)樂曲演奏和自動(dòng)播放音樂,并且可以通過LED數(shù)

3、碼管顯示音符和音調(diào)的高低。</p><p>  關(guān)鍵詞:STC89C52;音頻脈沖;鍵盤識(shí)別;播放音樂</p><p><b>  Abstract</b></p><p>  At present, the examples of microcontroller control music playback is too numerous t

4、o enumerate, at the same time,the music performance system is also widely used, make the best use of microcontroller which can store music, control playback, playing music.The advantage of the music performance system co

5、ntains multiple functions,excellent price,simple peripheral circuit.The features of the music performance system not only popular with music lovers and music chip manufacturers, but also accepted </p><p><

6、;b>  目 錄</b></p><p><b>  1 緒論1</b></p><p><b>  2 設(shè)計(jì)概述3</b></p><p>  2.1主要器件的概述3</p><p>  2.2 設(shè)計(jì)思想3</p><p>  2.3 功能說明

7、3</p><p>  2.4 電路圖說明4</p><p>  3 單片機(jī)的介紹6</p><p>  3.1 單片機(jī)簡(jiǎn)介6</p><p>  3.2 單片機(jī)的發(fā)展7</p><p>  3.3 單片機(jī)內(nèi)部結(jié)構(gòu)7</p><p>  3.4 引腳電路連接及說明10</p

8、><p>  3.5 引腳結(jié)合電路的說明11</p><p>  3.6 89C51的展望12</p><p>  3.7 STC89C52與AT89C51的區(qū)別12</p><p>  4 硬件電路設(shè)計(jì)13</p><p>  4.1 單片機(jī)的最小系統(tǒng)13</p><p>  4.1.

9、1電源電路13</p><p>  4.1.2 時(shí)鐘電路14</p><p>  4.1.3 復(fù)位電路15</p><p>  4.2 音頻功放電路設(shè)計(jì)16</p><p>  4.2.1 LM386音頻功放芯片介紹16</p><p>  4.2.2 LM386引腳圖16</p><p

10、>  4.2.3 LM386內(nèi)部結(jié)構(gòu)17</p><p>  4.2.4音頻處理模塊電路原理圖18</p><p>  4.3 控制電路18</p><p>  4.3.1鍵盤接口電路18</p><p>  4.3.2 識(shí)別按鍵的方法19</p><p>  4.4 顯示電路21</p>

11、<p>  4.4.1 74HC595串入并出移位寄存器21</p><p>  4.4.2 LED8段數(shù)碼管22</p><p>  4.4.3 顯示電路23</p><p>  5 系統(tǒng)軟件設(shè)計(jì)25</p><p>  5.1 軟件開發(fā)環(huán)境25</p><p>  5.1.1 keil u

12、vision介紹25</p><p>  5.1.2 keil uvision的功能特點(diǎn)25</p><p>  5.2 流程圖26</p><p>  5.3 揚(yáng)聲器發(fā)聲原理27</p><p>  5.3.1 單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理27</p><p>  5.3.2 單片機(jī)產(chǎn)生不同音調(diào)的程序設(shè)

13、計(jì)28</p><p>  5.4 鍵盤矩陣的設(shè)計(jì)29</p><p>  5.5 鍵盤矩陣與不同頻率音調(diào)發(fā)聲的結(jié)合31</p><p>  5.6 音樂自動(dòng)演奏和音樂彈奏的轉(zhuǎn)換32</p><p>  5.7 數(shù)碼管顯示程序設(shè)計(jì)32</p><p>  5.7.1 數(shù)碼管顯示程序設(shè)計(jì)32</p>

14、;<p>  5.7.2 數(shù)碼管數(shù)據(jù)發(fā)送的程序設(shè)計(jì)33</p><p>  5.7.3 數(shù)碼管所需要發(fā)送的數(shù)據(jù)程序設(shè)計(jì)33</p><p>  5.8 音樂自動(dòng)演奏程序設(shè)計(jì)34</p><p>  5.8.1 音樂代碼庫的建立方法34</p><p>  5.8.2 選曲34</p><p> 

15、 5.8.3音符的節(jié)拍35</p><p>  5.8.4 音樂演奏的程序設(shè)計(jì)35</p><p><b>  結(jié) 論38</b></p><p><b>  致 謝39</b></p><p><b>  參考文獻(xiàn)40</b></p><p>

16、;  附錄A 英文原文41</p><p>  附錄B 漢語翻譯46</p><p>  附錄C 程序50</p><p>  附錄D 原理圖59</p><p><b>  1 緒論</b></p><p>  現(xiàn)如今,單片機(jī)控制音樂播放的例子不勝枚舉,音樂演奏系統(tǒng)也廣泛的應(yīng)用

17、,而利用單片機(jī)存儲(chǔ)音樂,控制播放最為廣泛。它有功能多﹑價(jià)格優(yōu)﹑外圍電路簡(jiǎn)單的特點(diǎn),不僅很受音樂愛好者及音樂芯片制造商的熱衷,而且是一般家庭都能承受得了的經(jīng)濟(jì)投入范圍之內(nèi)。利用單片機(jī)發(fā)聲鍵盤操作直觀簡(jiǎn)單。對(duì)于初學(xué)者來說,尤其對(duì)識(shí)譜的人來說是很容易彈奏的,一首簡(jiǎn)單的曲子對(duì)于基礎(chǔ)好的人甚至不用過多的練習(xí)和教師的輔導(dǎo)就能很容易的彈奏出來。這樣就更大的提高了學(xué)習(xí)者的學(xué)習(xí)興趣,迅速地提高了電子音樂的普及率。由于本課題定為基于單片機(jī)的音樂演奏系統(tǒng),那

18、么不僅要使單片機(jī)可以播放音樂關(guān)鍵在于還有能夠彈奏自己想彈奏的音樂。 </p><p>  隨著以法國(guó)、德國(guó)、意大利為代表的歐洲電子音樂和以美國(guó)為代表的電子音樂、計(jì)算機(jī)音樂早期得到了充分發(fā)展,國(guó)際上許多國(guó)家紛紛開始引入電子音樂研究與創(chuàng)作。六十年代,美國(guó)物理學(xué)家研制出了小型實(shí)用的電子音樂演奏設(shè)備。從此,首先在歐美地區(qū),電子音樂演奏作為新型的樂器被音樂家特別是流行音樂家所采用并快速的流行起來。到當(dāng)今21世紀(jì),電子音樂演

19、奏系統(tǒng)的發(fā)展已經(jīng)經(jīng)過了很多代產(chǎn)品,尤其是電氣琴已經(jīng)非常完善,它可以說是無所不能了。</p><p>  本設(shè)計(jì)用4x4鍵盤來對(duì)應(yīng)每一個(gè)音樂的音符已達(dá)到彈奏的效果,為便于理解與說明,加入了LED數(shù)碼管以顯示對(duì)應(yīng)的歌曲的編碼和音調(diào)的高低等。本設(shè)計(jì)從選題、編程、搭接電路、焊接芯片至論文編寫在本文都會(huì)詳細(xì)的闡述。</p><p>  近年來,電子音樂越來越受到人們的關(guān)注,它有功能多﹑價(jià)格優(yōu)﹑外圍電

20、路簡(jiǎn)單的特點(diǎn),很受音樂愛好者及音樂芯片制造商的青睞。本文設(shè)計(jì)的一種基于STC89C52的簡(jiǎn)單音樂演奏系統(tǒng),利用單片機(jī)技術(shù)、LM386音頻功放芯片、4x4鍵盤、SPEARK實(shí)現(xiàn)原理圖設(shè)計(jì)到電路板設(shè)計(jì)開發(fā),并用C51高級(jí)語言進(jìn)行鍵盤識(shí)別程序設(shè)計(jì)和音頻脈沖輸出程序的設(shè)計(jì)。經(jīng)過硬件的調(diào)試,該音樂發(fā)生器能通過鍵盤彈奏出來的樂曲,音樂播放良好,音調(diào)和節(jié)拍都由單片機(jī)控制,使之產(chǎn)生精確的音樂。</p><p>  該系統(tǒng)能夠?qū)崿F(xiàn)

21、樂曲演奏和自動(dòng)播放音樂兩種功能。</p><p>  當(dāng)實(shí)現(xiàn)樂曲演奏時(shí),P0.3端子的信號(hào)為高電平,采用4x4矩陣鍵盤作為發(fā)生器的輸入設(shè)備。為了放大單片機(jī)STC89C52產(chǎn)生的樂曲聲音,采用了功率放大器LM386,通過SPEAKER進(jìn)行發(fā)生。彈出不同的音調(diào)都可以通過LED數(shù)碼管顯示出來。</p><p>  當(dāng)實(shí)現(xiàn)自動(dòng)播放音樂時(shí),將P0.3端子的電壓拉成低電平,用矩陣鍵盤的按鍵去控制所選取

22、的歌曲,可以由LED數(shù)碼管顯示所選取歌曲的序號(hào)。</p><p><b>  2 設(shè)計(jì)概述</b></p><p>  2.1主要器件的概述</p><p>  本次設(shè)計(jì)的核心是STC89C52芯片,本論文涉及了有關(guān)STC89C52的所有功能,并針對(duì)設(shè)計(jì)中所用到的STC89C52進(jìn)行拓展。大致上包括STC89C52芯片的引腳功能介紹、圖表的說

23、明、以及它的輸入/輸出(I/O)口的說明。對(duì)于輸入/輸出(I/O)口的說明會(huì)有詳細(xì)的說明,接下來是電路的硬件部分說明,最后是軟件設(shè)計(jì)。</p><p>  設(shè)計(jì)的主要器件包括LM386音頻功放芯片,4x4鍵盤,以及74HC595和LED數(shù)碼管。LM386是音頻功放電路的核心。4x4鍵盤用于控制電路,74HC595和LED數(shù)碼管用于顯示電路。</p><p><b>  2.2 設(shè)

24、計(jì)思想</b></p><p>  本設(shè)計(jì)主要分成選題思想、硬件思想、編程思想三個(gè)方面。</p><p>  選題思想,它實(shí)際上就是一個(gè)音樂演奏系統(tǒng),在人的操作下,通過LM386功放和SPEAKER播放,用4x4鍵盤進(jìn)行彈奏,并可以顯示彈奏的樂曲和音調(diào)。</p><p>  硬件思想,它的基礎(chǔ)是選題思想,根據(jù)題目,硬件也就要配合著來選擇。這里所用的單片機(jī)

25、是STC89C52,選擇它,首先市場(chǎng)上大部分賣的都是STC89C52型號(hào)的。其次,STC89C52是STC89C51的加強(qiáng)版,功能多穩(wěn)定性好,本次設(shè)計(jì)業(yè)非常適合這款單片機(jī)。</p><p>  在它們的輸出端分別接有LM386音頻放大器和74HC595串入并出寄存器。</p><p>  程序編寫階段,在程序中分了兩個(gè)大程序塊:</p><p>  主程序段。包括對(duì)

26、定時(shí)計(jì)數(shù)器的初始化,音樂演奏與音樂彈奏的轉(zhuǎn)變和數(shù)碼管的顯示。</p><p>  音樂自動(dòng)演奏的編碼。這里包括了化蝶和渴望兩首歌曲的音調(diào)和節(jié)拍。</p><p>  以上是大致的劃分,在程序中還有許多子程序塊,來具體的執(zhí)行這些,例如最基本的鍵盤掃描,數(shù)碼管數(shù)據(jù)發(fā)送等等。</p><p><b>  2.3 功能說明</b></p>

27、<p>  當(dāng)實(shí)現(xiàn)樂曲演奏時(shí),P0.3端子的信號(hào)為高電平,采用4x4矩陣鍵盤作為發(fā)生器的輸入設(shè)備。為了放大單片機(jī)STC89C52產(chǎn)生的樂曲聲音,采用了功率放大器LM386,通過SPEAKER進(jìn)行發(fā)生。彈出不同的音調(diào)都可以通過LED數(shù)碼管顯示出來。</p><p>  當(dāng)實(shí)現(xiàn)自動(dòng)播放音樂時(shí),將P0.0端子的電壓拉成低電平,用矩陣鍵盤的按鍵去控制所選取的歌曲,可以由LED數(shù)碼管顯示所選取歌曲的序號(hào)<

28、/p><p>  通過按鍵開關(guān)來實(shí)現(xiàn)P0.3的高低電平變換。</p><p><b>  2.4 電路圖說明</b></p><p>  可參見附錄 D,為該設(shè)計(jì)的電路圖,它大至上分為五個(gè)部分:</p><p>  為STC89C52芯片,上面畫出了各個(gè)引腳所對(duì)應(yīng)的連接方法,有晶振的連接引腳X1和X2,復(fù)位鍵連接到引腳RES

29、ET,P3.7接LM386音頻放大器電路用于發(fā)聲,P3.0—P3.2接74HC595寄存器,控制LED顯示。</p><p>  音頻放大電路,主要有LM386芯片,LM386的外形和引腳的排列:引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,通常取10μF。</p><p>  兩個(gè)74HC595

30、串行輸入輸出或并行輸出移位寄存器,用于LED數(shù)碼管發(fā)光。有效的減少了單片機(jī)輸入/輸出端口的占用。</p><p>  電源。DC接口,接有二極管(保護(hù)作用),100UF的電解電容(濾低頻)和1UF的獨(dú)石電容(濾高頻)</p><p>  (5)電平轉(zhuǎn)換,包括DB9和MAX232.</p><p>  本設(shè)計(jì)最初有兩種方案,一種是利用STC89C52、74LS373鎖

31、存器和27512外部擴(kuò)展組成的音樂播放器。電路以STC89C52為主控制器,74LS373和27512進(jìn)行外部程序存儲(chǔ)器的擴(kuò)展,播放/暫停鍵為播放/暫停歌曲,下一曲鍵和上一曲鍵分別為調(diào)整歌曲的下一曲和上一曲選擇鍵的按鈕。晶振采用12MHz,音樂信號(hào)由P3.0口輸出,經(jīng)喇叭發(fā)聲而播放歌曲。程序根據(jù)音選取的是C調(diào)三個(gè)8度內(nèi)的音符,共16個(gè)音。每個(gè)音符對(duì)應(yīng)頻率由定時(shí)器T0產(chǎn)生。為了程序調(diào)用方便,每個(gè)音符都對(duì)應(yīng)一個(gè)編碼,占用一個(gè)字節(jié)。在程序中以

32、查表的方式加載計(jì)數(shù)初值。當(dāng)值為00H時(shí)表示空拍,與節(jié)拍碼配合完成節(jié)拍發(fā)音。節(jié)拍碼也占一個(gè)字節(jié),其總時(shí)間長(zhǎng)度等于基本時(shí)間乘以節(jié)拍碼的值。節(jié)拍碼值為01H時(shí),表示當(dāng)前樂曲結(jié)束,為00H時(shí),表示全部樂曲結(jié)束。為了編碼簡(jiǎn)單,一般節(jié)拍碼高半字節(jié)表示整拍,低半字節(jié)表示分?jǐn)?shù),只要基本延時(shí)設(shè)定恰當(dāng)即可并且在按開始按鈕后,可以播放歌曲。另一種是利用STC89C52和LM386(音頻功放) 組成的音樂播放器。電路以STC89C52為主控制器,LM386(音

33、頻功放)來實(shí)現(xiàn)的。經(jīng)喇叭發(fā)聲而播放歌曲。程序中根據(jù)每個(gè)</p><p>  最終,考慮到方案二可以彈奏任意歌曲而采用了方案二,并加以改良使之能演奏存儲(chǔ)好的歌曲,并通過LED數(shù)碼管顯示聲調(diào)和曲號(hào)。</p><p><b>  3 單片機(jī)的介紹</b></p><p><b>  3.1 單片機(jī)簡(jiǎn)介</b></p>

34、;<p>  單片機(jī)是一種集成電路芯片。它采用超大規(guī)模技術(shù)將具有數(shù)據(jù)處理能力的微處理器(CPU)、存儲(chǔ)器(含程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,構(gòu)成一個(gè)即小巧又很完善的計(jì)算機(jī)硬件系統(tǒng),在單片機(jī)程序的控制下能準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。所以說,一片單片機(jī)芯片就具有了組成計(jì)算機(jī)的全部功能。由此來看,單片機(jī)有著一般微處理器(CPU)芯片所不具備的功能,它可

35、單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。</p><p>  然而單片機(jī)又不同于單板機(jī)(一種將微處理器芯片、存儲(chǔ)器芯片、輸入輸出接口芯片安裝在同一塊印制電路板上的微型計(jì)算機(jī)),單片機(jī)芯片在沒有開發(fā)前,它只是具備功能極強(qiáng)的超大規(guī)模集成電路,如果對(duì)它進(jìn)行應(yīng)用開發(fā),它便是一個(gè)小型的微型計(jì)算機(jī)控制系統(tǒng),但它與單板機(jī)或個(gè)人電腦(PC機(jī))有著本質(zhì)的區(qū)別。</p><p> 

36、 單片機(jī)的應(yīng)用屬于芯片級(jí)應(yīng)用,需要用戶(單片機(jī)學(xué)習(xí)者與使用者)了解單片機(jī)芯片的結(jié)構(gòu)和指令系統(tǒng)以及其它集成電路應(yīng)用技術(shù)和系統(tǒng)設(shè)計(jì)所需要的理論和技術(shù),用這樣特定的芯片設(shè)計(jì)應(yīng)用程序,從而使該芯片具備特定的功能。</p><p>  不同的單片機(jī)有著不同的硬件特征和軟件特征,即它們的技術(shù)特征均不盡相同,硬件特征取決于單片機(jī)芯片的內(nèi)部結(jié)構(gòu),用戶要使用某種單片機(jī),必須了解該型產(chǎn)品是否滿足需要的功能和應(yīng)用系統(tǒng)所要求的特性指標(biāo)。

37、這里的技術(shù)特征包括功能特性、控制特性和電氣特性等等,這些信息需要從生產(chǎn)廠商的技術(shù)手冊(cè)中得到。軟件特征是指指令系統(tǒng)特性和開發(fā)支持環(huán)境,指令特性即我們熟悉的單片機(jī)的尋址方式,數(shù)據(jù)處理和邏輯處理方式,輸入輸出特性及對(duì)電源的要求等等。開發(fā)支持的環(huán)境包括指令的兼容及可移植性,支持軟件(包含可支持開發(fā)應(yīng)用程序的軟件資源)及硬件資源。要利用某型號(hào)單片機(jī)開發(fā)自己的應(yīng)用系統(tǒng),掌握其結(jié)構(gòu)特征和技術(shù)特征是必須的。</p><p>  

38、單片機(jī)控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),可以以軟件控制來實(shí)現(xiàn),并能夠?qū)崿F(xiàn)智能化,現(xiàn)在單片機(jī)控制范疇無所不在,例如通信產(chǎn)品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機(jī)的應(yīng)用領(lǐng)域越來越廣泛。</p><p>  誠(chéng)然,單片機(jī)的應(yīng)用意義遠(yuǎn)不限于它的應(yīng)用范疇或由此帶來的經(jīng)濟(jì)效益,更重要的是它已從根本上改變了傳統(tǒng)的控制方法和設(shè)計(jì)思想,是控制技術(shù)的一次革命,是一座重要的里程碑。&l

39、t;/p><p>  3.2 單片機(jī)的發(fā)展</p><p>  單片機(jī)由于這種特殊的結(jié)構(gòu)形式,在某些應(yīng)用領(lǐng)域中承擔(dān)了大中型計(jì)算機(jī)和通用微型計(jì)算機(jī)無法完成的一些工作??傮w來說,單片機(jī)的發(fā)展可分為三個(gè)階段:</p><p>  第一階段(1976——1978年):以Intel公司的MCS-48系列單片機(jī)為代表,該系列單片機(jī)在片內(nèi)集成了8位CPU、并行I/O接口、8位定時(shí)/計(jì)

40、數(shù)器、RAM和ROM等,片內(nèi)RAM和ROM容量較小,尋址范圍不大于4KB。</p><p>  第二階段(1978——1983年):以Intel公司的MCS-51系列單片機(jī)為代表,該系列單片機(jī)均帶有串行I/O接口,具有多級(jí)中斷處理系統(tǒng),定時(shí)/計(jì)數(shù)器位16位,片內(nèi)RAM和ROM容量相對(duì)增大,有的片內(nèi)還帶有A/D轉(zhuǎn)換接口。</p><p>  第三階段(1983年至今):高檔8位單片機(jī)鞏固發(fā)展

41、及16位單片機(jī)推出階段。此階段主要特征是:一方面不斷完善高檔8位單片機(jī),改善其性能、結(jié)構(gòu),另一方面發(fā)展16位單片機(jī)及專用單片機(jī)。16位單片機(jī)除了CPU位16位外,片內(nèi)RAM和ROM的容量進(jìn)一步增大,片內(nèi)RAM為232位,ROM為8KB,片內(nèi)帶有高速輸入/輸出部件,多通道10位A/D轉(zhuǎn)換部件,8級(jí)中斷處理系統(tǒng)。近年來,32位單片機(jī)已進(jìn)入了實(shí)用階段[1]。</p><p>  3.3 單片機(jī)內(nèi)部結(jié)構(gòu)</p>

42、;<p>  STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,STC89C52是一種高效微控制器,為很多嵌入式

43、控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  3.3.1 主要特征 ·與MCS-51 兼容 ·8K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年 ·全靜態(tài)工作:0Hz-24Hz ·三級(jí)程序存儲(chǔ)器鎖定</p><p>  ·128*8位內(nèi)部RAM ·32可編程I/O線 

44、83;兩個(gè)16位定時(shí)器/計(jì)數(shù)器 ·6個(gè)中斷源 ·可編程串行通道 ·低功耗的閑置和掉電模式 ·片內(nèi)振蕩器和時(shí)鐘電路</p><p>  3.3.2 管腳說明[2]     VCC:供電電壓。     GND:接地。</p><p>  P0口:P0口

45、為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。   P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可

46、用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸

47、出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功

48、能口,如下表所示:口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時(shí)器0外部輸入) P3.5 T1(記時(shí)器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些

49、控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此</p><p>  X1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。  X2:來自反向振蕩器的輸出。

50、</p><p>  3.3.3 振蕩器特性  X1和X2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  3.4 引腳電路連接及說明</p&

51、gt;<p>  P2.0~P2.7為I/O口的P2口:內(nèi)部帶有弱上拉的雙向I/O口,作為輸入引腳使用前,先向P2口鎖存器寫入1,使P2口引腳被上拉為高電平RESET為復(fù)位信號(hào)輸入端,高電平有效。</p><p>  /EA為外部程序存儲(chǔ)器選擇信號(hào),低電平有效。在復(fù)位期間CPU檢測(cè)并鎖存該引腳電平狀態(tài),當(dāng)發(fā)現(xiàn)該引腳為高電平時(shí),從片內(nèi)程序存儲(chǔ)器取指令,只有當(dāng)程序計(jì)數(shù)器PC超出片內(nèi)程序存儲(chǔ)器地址編碼范圍

52、時(shí),才轉(zhuǎn)到外部ROM中取指令;當(dāng)該引腳為低電平時(shí),一律從外部程序存儲(chǔ)器中取指令。/EA—在本次設(shè)計(jì)中此引腳接高電平,所以按照它的功能特性它將從內(nèi)部程序存儲(chǔ)器讀取指令碼。</p><p>  X1、X2的功能特性,其中X1接CPU內(nèi)部時(shí)鐘電路。本電路的時(shí)鐘電路采用芯片內(nèi)部的振蕩電路。當(dāng)使用片內(nèi)振蕩電路時(shí),X1、X2與晶體振蕩器及電容C1、C2按電路圖上所示方式連接。晶振、電容C1 /C2及片內(nèi)與非門(作為反饋、放大

53、元件)構(gòu)成了電感三點(diǎn)式振蕩器,振蕩信號(hào)頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定。該設(shè)計(jì)中我所設(shè)計(jì)的晶振頻率為11.0592MHz,C1、C2都為22PF。</p><p>  對(duì)于89C52芯片來說,它內(nèi)置了ROM、EPROM、OTP ROM、Flash ROM,當(dāng)不使用外部存儲(chǔ)器 (包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器)時(shí),P0口可以作為通用的輸入/輸出端口(I/O)使用。</p>&

54、lt;p>  P0口作為I/O端口使用時(shí),多路開關(guān)“控制”信號(hào)為“0”(即低電平)。輸出時(shí),寫鎖存器脈沖CLK有效,輸出信號(hào)經(jīng)內(nèi)部總線至鎖寸器輸入端D至反相輸入端Q反至`多路開關(guān)至V2柵極至V2漏極到輸出端,P0口是漏極開路輸出,當(dāng)驅(qū)動(dòng)拉電流負(fù)載時(shí),需要外接上拉電阻,P0口帶有鎖存器,因此具有輸出鎖存器,因此具有輸出鎖存功能。P0口作為輸入口時(shí),與P1口類似,也必須先執(zhí)行寫端口指令。</p><p>  沒

55、有外部程序存儲(chǔ)器或雖然有外部數(shù)據(jù)存儲(chǔ)器,但容量不大于256字節(jié),不需要高8位地址時(shí)(在這種情況下,不能通過數(shù)據(jù)地址寄存器DPTR讀寫外部數(shù)據(jù)存儲(chǔ)器),P2口可以作為I/O端口使用,這時(shí),“控制”信號(hào)為“0”;作為輸入口前,同樣需要向鎖存器寫入“1”,使反向器輸出低電平。</p><p>  3.5 引腳結(jié)合電路的說明</p><p>  圖 3.1 STC89C52芯片圖</p&

56、gt;<p>  讓圖3.1中31腳從內(nèi)部程序存儲(chǔ)器讀取程序,直接讓其接Vcc;40腳、20腳</p><p>  也分別按照它的功能接到Vcc 5V和GND。</p><p>  2)因?yàn)樾枰褂闷瑑?nèi)振蕩電路,所以在18腳、19腳之間串了一個(gè)12MHz的晶振,</p><p>  在晶振的兩端分別接有一個(gè)22PF的電容,兩個(gè)電容的另一端共同接地。&l

57、t;/p><p>  在RESET位即引腳9接有一個(gè)按鍵,并接有一個(gè)0.01PF的電容與一個(gè)10千歐</p><p>  的電阻串聯(lián),構(gòu)成了復(fù)位按鍵。</p><p>  4)在17引腳處接有一個(gè)LED串聯(lián)一個(gè)10千歐的電阻,LED是工作指示燈,而電</p><p>  阻起到保護(hù)LED的作用。</p><p>  5)引

58、腳P1.6接到音頻放大器,作為音頻的輸出。</p><p>  3.6 89C51的展望</p><p>  有些文獻(xiàn)甚至也將8051泛指MCS-51系列單片機(jī),8051是早期的最典型的代表作,由于MCS-51單片機(jī)影響極深遠(yuǎn),許多公司都推出了兼容系列單片機(jī),就是說MCS-51內(nèi)核實(shí)際上已經(jīng)成為一個(gè)8位單片機(jī)的標(biāo)準(zhǔn)。 其他的公司的51單片機(jī)產(chǎn)品都是和MCS-51內(nèi)核兼容的產(chǎn)品而以。

59、同樣的一段程序,在各個(gè)單片機(jī)廠家的硬件上運(yùn)行的結(jié)果都是一樣的,如ATMEL的89C51(已經(jīng)停產(chǎn))、89S51, PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經(jīng)停產(chǎn)的89C51指的是ATMEL公司的 AT89C51單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由Flash(程序存儲(chǔ)器的內(nèi)容至少可以改寫1000次)存儲(chǔ)器取帶了原來的ROM(一次性寫入),AT89C51的性能相對(duì)于8051已經(jīng)算是非常優(yōu)越的

60、了。     不過在市場(chǎng)化方面,89C51受到了PIC單片機(jī)陣營(yíng)的挑戰(zhàn),89C51最致命的缺陷在于不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續(xù)MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,現(xiàn)在,89S51目前已經(jīng)成為了實(shí)際應(yīng)用</p><p>  3.7 STC89C52與AT89C51的區(qū)別</p><

61、;p><b>  區(qū)別主要有3個(gè):</b></p><p>  1、程序存儲(chǔ)器為8KB比C51多了4KB的存儲(chǔ)空間,在本次存儲(chǔ)歌曲時(shí)起到了重要的作用。</p><p>  2、STC可ISP在線編程</p><p>  3、STC89C52多一個(gè)定時(shí)計(jì)數(shù)器T2</p><p>  本次設(shè)計(jì)采用的是STC89C52

62、單片機(jī)。4 硬件電路設(shè)計(jì)</p><p>  硬件電路的設(shè)計(jì),決定了整個(gè)流程的發(fā)展,其中包含了單片機(jī)以內(nèi)的全部器件的連接以及其他硬件電路的設(shè)計(jì),首先,必須了解選用的的元器件的各項(xiàng)性能指標(biāo)與工作原理,本設(shè)計(jì)硬件電路包括最小系統(tǒng)、音頻功放電路、控制電路和顯示電路四大部分。最小系統(tǒng)只要是為了使單片機(jī)正常工作。音頻功放電路用于產(chǎn)生所要實(shí)現(xiàn)的音樂。控制電路只要由開關(guān)和按鍵組成,由操作者根據(jù)相應(yīng)的工作需要進(jìn)行操作。顯示電路

63、主要是為了顯示歌曲序號(hào)和音調(diào)。電路流程圖如圖4.1所示,下面是對(duì)硬件電路的大環(huán)節(jié)的說明。</p><p>  圖4.1 電路流程圖 </p><p>  4.1 單片機(jī)的最小系統(tǒng)</p><p>  所謂最小系統(tǒng)是指能進(jìn)行正常工作的最簡(jiǎn)單電路。包括電源電路,時(shí)鐘電路,復(fù)位電路,三者缺一不可。</p><p><b>

64、;  4.1.1電源電路</b></p><p>  單片機(jī)的電源電路顧名思義是給單片機(jī)供電的。如圖4.2所示,其中包含DC插口,開關(guān),二極管,電容,電阻和發(fā)光二極管。因?yàn)楸驹O(shè)計(jì)是直接通過USB接口提供5伏的電源所以不需要整流橋電路。</p><p><b>  各部分的作用:</b></p><p>  DC接口接直流電源,電壓5

65、伏</p><p>  電解電容C2:濾除高頻及脈沖干擾。獨(dú)石電容:濾除低頻及脈沖干擾</p><p>  二極管D1:起保護(hù)作用,防止電源接反,使反相電壓不通過。</p><p>  電阻R1:1K 限流作用。發(fā)光二極管D2:指示燈作用</p><p>  圖4.2 單片機(jī)的電源電路</p><p>  4.1.2

66、時(shí)鐘電路</p><p>  單片機(jī)的時(shí)鐘電路信號(hào)通常用兩張電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。本設(shè)計(jì)選用的是內(nèi)部振蕩方式。</p><p>  在引腳XTAL1和XTAL2外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時(shí)鐘脈沖,晶振通常選用6MHZ,12MHZ和24MHZ,本設(shè)計(jì)選用

67、的是11.0592MHZ的晶振。如圖4.3,圖中電容器C15和C14起穩(wěn)定振蕩頻率快速起振的作用,一般選用5—30pF 本設(shè)計(jì)選用22pF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路使用較多。</p><p>  圖4.3 單片機(jī)的時(shí)鐘電路</p><p>  4.1.3 復(fù)位電路</p><p>  復(fù)位操作完成單片機(jī)片內(nèi)的初始化,是單片機(jī)從一種確定的狀態(tài)開始

68、運(yùn)行。</p><p>  當(dāng)單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序。因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。</p><p>  根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開關(guān)復(fù)位要求在電源接通的情況下,在單片機(jī)運(yùn)行期間,如果發(fā)生死

69、機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。</p><p>  常用的是上電且開關(guān)操作,如圖4.4所示。上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。但單片機(jī)已經(jīng)運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。通常選用C=10-30μF,R=10K[3]。 </p><p>  圖4.4 單片機(jī)的復(fù)位電路</p>

70、;<p>  4.2 音頻功放電路設(shè)計(jì)</p><p>  在一定頻率范圍內(nèi),具有一定頻率的振動(dòng)就能產(chǎn)生所要實(shí)現(xiàn)的音符,但因?yàn)閱纹瑱C(jī)沒有足夠的驅(qū)動(dòng)能力,這就需要音頻功率放大電路。</p><p>  4.2.1 LM386音頻功放芯片介紹</p><p>  LM386是一種音頻集成功放,具有自身功耗低、更新內(nèi)鏈增益可調(diào)整、電源電壓范圍大、外接元件少和

71、總諧波失真小等優(yōu)點(diǎn)的功率放大器,廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。 </p><p>  LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電

72、的場(chǎng)合[4]。</p><p><b>  LM386特性:</b></p><p>  靜態(tài)功耗低,約為4mA,可用于電池供電;</p><p>  工作電壓范圍寬,4V-12V或5V-18V;</p><p><b>  外圍元件少;</b></p><p>  電壓增益

73、可調(diào),20-200;</p><p><b>  低失真度。</b></p><p>  LM386的封裝形式有塑封8引線雙列直插式和貼片式。</p><p>  4.2.2 LM386引腳圖</p><p>  LM386引腳圖,如圖4.5所示。引腳1為增益設(shè)定,引腳2為反相輸入端,3為正向輸入端;引腳5為輸出端;引腳

74、6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,一般取10μF。查L(zhǎng)M386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時(shí),帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。 盡管LM386的應(yīng)用非常簡(jiǎn)單,但如果不注意,特別是器件的上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作</p><

75、p> ?。ㄈ绮灏我纛l插頭、旋音量調(diào)節(jié)鈕)都會(huì)帶來的瞬態(tài)沖擊,在輸出喇叭上會(huì)產(chǎn)生噪聲。</p><p>  4.5 LM386引腳圖 </p><p>  4.2.3 LM386內(nèi)部結(jié)構(gòu)</p><p>  LM386內(nèi)部電路原理圖如圖4.6所示。它是一個(gè)三級(jí)放大電路。 </p><p>  圖4.6 LM386的內(nèi)部結(jié)構(gòu)</p&g

76、t;<p>  第一級(jí)為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電流源作為T1和T2的有源負(fù)載;T3和T4信號(hào)從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。 </p><p>  第二級(jí)為共射放大電路,T7為放大管,恒流源作有源負(fù)載,以

77、增大放大倍數(shù)。 </p><p>  第三級(jí)中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級(jí)。二極管D1和D2為輸出級(jí)提供合適的偏置電壓,可以消除交越失真。 </p><p>  引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。輸出端(引腳5)應(yīng)外接輸出電容后再接負(fù)載。 </p><p>  電阻R7從輸出端連接到T2的

78、發(fā)射極,形成反饋通路,并與R5和R6構(gòu)成反饋網(wǎng)絡(luò),從而引入了深度電壓串聯(lián)負(fù)反饋,使整個(gè)電路具有穩(wěn)定的電壓增益[5]。</p><p>  4.2.4音頻處理模塊電路原理圖</p><p>  由于單片機(jī)驅(qū)動(dòng)能力不夠,在處理音符信號(hào)時(shí),需加功率放大裝置。因LM386具有低功耗、高增益的特點(diǎn),適合單片機(jī)低功耗輸出,所以加裝LM386音頻信號(hào)放大器對(duì)信號(hào)進(jìn)行放大。具體電路如圖4.7所示。<

79、/p><p>  圖4.7 音頻功放電路</p><p><b>  4.3 控制電路</b></p><p>  控制電路由開關(guān)和按鍵組成,由操作者根據(jù)相應(yīng)的工作需要進(jìn)行操作。</p><p>  4.3.1鍵盤接口電路</p><p>  1、矩陣式鍵盤的結(jié)構(gòu)及原理</p><

80、p>  單片機(jī)系統(tǒng)中,若使用按鍵的數(shù)量比較多時(shí),通常選用用矩陣式鍵盤。矩陣式鍵由行線和列線構(gòu)成,按鍵位于行、列線的交叉點(diǎn)上,目前計(jì)算機(jī)系統(tǒng)中使用的鍵盤按功能不同一般可分為編碼鍵盤和非編碼鍵盤兩種基本類型。 (1)編碼鍵盤:鍵盤本身帶有實(shí)現(xiàn)接口主要功能所需的硬件電路。不僅能自動(dòng)檢測(cè)被按下的鍵,并完成去抖動(dòng)、防串鍵等功能,而且能提供與被按鍵功能對(duì)應(yīng)的鍵碼(如ASCII碼)送往CPU。所以,編碼鍵盤接口簡(jiǎn)單、使用方便。但由于硬件

81、電路較復(fù)雜,因而價(jià)格較貴。 (2)非編碼鍵盤:鍵盤只簡(jiǎn)單地提供按鍵開關(guān)的行列矩陣。有關(guān)按鍵的識(shí)別、鍵碼的確定與輸入、去抖動(dòng)等功能均由軟件完成。目前微機(jī)系統(tǒng)中,一般為了降低成本大多數(shù)采用非編碼鍵盤[6]。其結(jié)構(gòu)圖如圖4.8所示。</p><p><b>  圖4.8 鍵盤電路</b></p><p>  4.3.2 識(shí)別按鍵的方法</p><

82、p><b>  1、矩陣式方法</b></p><p>  識(shí)別按鍵的方法很多,其中,最常見的方法就是矩陣式方法。下面以圖4.8中8號(hào)鍵的識(shí)別為例來說明掃描法識(shí)別按鍵的過程。</p><p>  鍵盤矩陣是由四行四列構(gòu)成,矩陣的四列和P2口的低四位相連,四行與P2口的高四位相連。</p><p>  第一步:進(jìn)行鍵盤掃描。先將所有的列置1

83、行置為0,如果檢測(cè)到某列被拉為0,則確定有按鍵按下。接下來經(jīng)過10ms去抖,再次檢測(cè)是否有按鍵按下,如果有則確定有按鍵按下。</p><p>  第二步,確定是哪個(gè)按鍵被按下。先將第一行置0其他三行置1,所有列置1,如果有列被拉為0,假設(shè)為第N列,則確定為第一行第N列的按鍵被按下。如果將第一行置0,沒有檢測(cè)到有列被拉為0,則將第二行置0,其他三行被置1,所有列置1,按照上訴方式進(jìn)行鍵盤檢測(cè)。按照此方法依次進(jìn)行按鍵

84、確定,最終得到被按下按鍵確定的行值和列值。</p><p><b>  2、鍵盤的編碼</b></p><p>  對(duì)于獨(dú)立式按鍵盤,因?yàn)榘存I數(shù)量較少,可根據(jù)實(shí)際需要靈活編碼。對(duì)于矩陣式鍵盤,按鍵的位置由行線和列線交叉點(diǎn)唯一確定,因此可對(duì)行號(hào)和列號(hào)進(jìn)行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高4位是行號(hào),低4位是列號(hào)。如圖2.4中的8號(hào)鍵,它位于第2行,第3列,因此,其鍵

85、盤編碼應(yīng)為23H。采用上述編碼對(duì)于不同行的鍵離散性較大,不利于對(duì)按鍵進(jìn)行處理。因此,可采用依次排列鍵號(hào)編碼:01H、02H、03H、…0EH、0FH、10H等16個(gè)鍵號(hào)。編碼相互轉(zhuǎn)換可通過計(jì)算的方法實(shí)現(xiàn)。</p><p><b>  3、鍵盤實(shí)現(xiàn)的功能</b></p><p>  鍵盤接口必須具有去抖動(dòng)、按鍵識(shí)別和鍵碼產(chǎn)生3個(gè)基本功能。 (1)去抖動(dòng):每個(gè)按鍵

86、在按下或松開時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為5—20mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別正確無誤。去抖問題可通過軟件延時(shí)或硬件電路解決。 (2)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤逐行掃描,通過檢測(cè)到的列輸出狀態(tài)來確定閉合鍵,為此,需

87、要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過行列顛倒兩次掃描來識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。 (3)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,可以通過軟件對(duì)行列進(jìn)行計(jì)算來實(shí)現(xiàn)。</p><p><b>  4.4 顯示電路</b></p><p>  4.4.1 74HC595串入并出移位

88、寄存器</p><p>  1、74HC595的介紹</p><p>  74HC595是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。74HC595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。 數(shù)據(jù)在SHcp的上升沿輸入到移位寄存器中,在STcp的上升沿輸入到存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)

89、脈沖。 移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關(guān)斷狀態(tài)。三態(tài)。將串行輸入的8位數(shù)字,轉(zhuǎn)變?yōu)椴⑿休敵龅?位數(shù)字,例如控制一個(gè)8位數(shù)碼管,將不會(huì)有閃爍[7]。</p><p><b>  2、特點(diǎn)及輸出能力&

90、lt;/b></p><p><b>  (1)特點(diǎn):</b></p><p>  8位串行輸入 /8位串行或并行輸出 存儲(chǔ)狀態(tài)寄存器,三種狀態(tài)  </p><p>  輸出寄存器(三態(tài)輸出:就是具有高電平、低電平和高阻抗三種輸出狀態(tài)的門電路。)可以直接清除 100MHz的移位頻率</p><p><b>

91、; ?。?)輸出能力:</b></p><p>  并行輸出,總線驅(qū)動(dòng); 串行輸出;標(biāo)準(zhǔn)中等規(guī)模集成電路   </p><p>  595移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。 </p><p><

92、b> ?。?)引腳說明:</b></p><p>  Q0…Q7 第15腳, 1, 7 并行數(shù)據(jù)輸出</p><p><b>  GND 第8腳 地</b></p><p>  Q7’ 第9腳 串行數(shù)據(jù)輸出</p><p>  MR 第10腳 主復(fù)位(低電平)   </p><p&g

93、t;  SHCP 第11腳 移位寄存器時(shí)鐘輸入   </p><p>  STCP 第12腳 存儲(chǔ)寄存器時(shí)鐘輸入   </p><p>  OE 第13腳 輸出有效(低電平)   </p><p>  DS 第14腳 串行數(shù)據(jù)輸入   </p><p>  VCC 第16腳 電源</p><p>  4.4.2 LED

94、8段數(shù)碼管</p><p>  LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光二極管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)是8個(gè)。如圖4.9所示這些段分別由字母a,b,c,d,e,f,g,dp來表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成不同的數(shù)字樣了。如:顯示一個(gè)“3”字,那么應(yīng)當(dāng)是a亮b亮g亮c亮d亮e不亮f不亮dp不亮。小尺寸數(shù)碼管的顯示常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下

95、,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管[8]。</p><p>  圖4.9 LED7段數(shù)碼管</p><p>  LED數(shù)碼管的結(jié)構(gòu)和工作原理:</p><p>  led數(shù)碼管(LED Segment Displays)是由多個(gè)

96、發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn)。位數(shù)有半位,1,2,3,4,5,6,8,10位等等....,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。led數(shù)碼管廣泛用于儀表,

97、時(shí)鐘,車站,家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,功耗,亮度,波長(zhǎng)等。</p><p>  LED數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。   </p><p>  靜態(tài)顯示驅(qū)動(dòng): 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O埠進(jìn)行驅(qū)動(dòng),或者使用如BC

98、D碼二-十進(jìn)位*器*進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O口來驅(qū)動(dòng),要知道一個(gè)89S52單片機(jī)可用的I/O口才32個(gè)呢。故實(shí)際應(yīng)用時(shí)必須增加驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬體電路的復(fù)雜性。   </p><p>  動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃&qu

99、ot;a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。   透過分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管

100、輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。</p><p>  4.4.3 顯示電路</p><p>  本設(shè)計(jì)的顯示電路由兩個(gè)

101、74HC595串入并出移位寄存器和4位8段LED數(shù)碼管共同組成。</p><p>  為了節(jié)省I/O接口,本設(shè)計(jì)加入了2個(gè)74HC595移位寄存器,如圖3.4.3一個(gè)是控制位選一個(gè)是控制段選。位選是選擇用哪個(gè)LED燈,段選是顯示亮的數(shù)字。</p><p>  工作時(shí),信號(hào)由單片機(jī)P0.0,P0.1,P0.2輸入寄存器。信號(hào)在寄存器中鎖存之后一起并行輸出給LED數(shù)碼管。如圖4.10所示<

102、;/p><p>  圖4.10 74HC595</p><p><b>  5 系統(tǒng)軟件設(shè)計(jì)</b></p><p>  5.1 軟件開發(fā)環(huán)境</p><p>  5.1.1 keil uvision介紹</p><p>  Keil uvision是德國(guó)Keil Software公司生產(chǎn)的51系列

103、兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語言的語法來開發(fā),和匯編語言相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而容易掌握,而且很大的提高了工作效率和項(xiàng)目開發(fā)周期,它還能嵌入?yún)R編,也可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng), 使你可以更加貼近CPU本身,及其它的衍生

104、產(chǎn)品。C51已被完全集成到keil uvision的集成開發(fā)環(huán)境中,此集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uvision IDE可為它們提供單一而靈活的開發(fā)環(huán)境。</p><p>  本設(shè)計(jì)使用的是keil uvision3軟件來編程。</p><p>  5.1.2 keil uvision的功能特點(diǎn)</p><p>  Keil

105、C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面,用戶能輕松的學(xué)會(huì)并使用keil C51來開發(fā)單片機(jī)應(yīng)用程序。</p><p>  操作簡(jiǎn)單,只要看一下編譯后生成的匯編代碼,就能感受到Keil C51生成的目標(biāo)代碼效率高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)[9]。</p><p><b>  5.2 流程圖&

106、lt;/b></p><p><b>  主程序流程圖:</b></p><p><b>  圖5.1 主流程圖</b></p><p><b>  2、子流程圖:</b></p><p><b>  圖5.2 子流程圖</b></p>

107、<p>  5.3 揚(yáng)聲器發(fā)聲原理</p><p>  5.3.1 單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理</p><p>  要產(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腳上得到此頻率的脈沖。</p>

108、<p>  2、利用8051的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法如下:</p><p>  例如,頻率為523Hz,其周期523 HZ=1912uS,因此只要令計(jì)數(shù)器計(jì)時(shí)956uS/1us=956,在每計(jì)數(shù)956次時(shí)就將I/O反接,就可得到中音DO(532Hz)。</p><p>  計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:<

109、;/p><p>  N=Fi/2/Fr </p><p>  (N:計(jì)數(shù)值,F(xiàn)i:內(nèi)部計(jì)時(shí)一次為1uS,故其頻率為1MHz,F(xiàn)r:要產(chǎn)生的頻率 )</p><p>  3、其計(jì)數(shù)值的求法如下:</p><p>  T=65536-N=65536-Fi/2/Fr</p><p>  5.3.2 單片機(jī)產(chǎn)生不同音調(diào)的程序設(shè)計(jì)&

110、lt;/p><p>  對(duì)單片機(jī)內(nèi)部T0定時(shí)\計(jì)數(shù)器設(shè)置中斷,通過對(duì)數(shù)組查詢的方式經(jīng)過P1.6口對(duì)音頻放大器發(fā)送信號(hào),產(chǎn)生不同頻率的脈沖,實(shí)現(xiàn)揚(yáng)聲器音樂演奏。程序設(shè)計(jì)如下:</p><p>  1、根據(jù)不同的音調(diào)頻率設(shè)置不同的T0計(jì)數(shù)器計(jì)數(shù)的次數(shù)</p><p>  //以下是C調(diào)低音的音頻宏定義</p><p>  #define L1 26

111、2 //將“l(fā)_dao”宏定義為低音“1”的頻率262Hz</p><p>  #define L2 286 //將“l(fā)_re”宏定義為低音“2”的頻率286Hz</p><p>  #define L3 311 //將“l(fā)_mi”宏定義為低音“3”的頻率311Hz</p><p>  #define L4 349 //將“l(fā)_fa”宏定

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論