畢業(yè)設計論文:基于51單片機的音樂發(fā)生器設計WORD_第1頁
畢業(yè)設計論文:基于51單片機的音樂發(fā)生器設計WORD_第2頁
畢業(yè)設計論文:基于51單片機的音樂發(fā)生器設計WORD_第3頁
畢業(yè)設計論文:基于51單片機的音樂發(fā)生器設計WORD_第4頁
畢業(yè)設計論文:基于51單片機的音樂發(fā)生器設計WORD_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、文檔可能無法思考全面,請瀏覽后下載! 本文是應用MCS-51單片機原理和控制理論技術設計音樂發(fā)生器的硬件電路,并利用C語言進行軟件開發(fā)和程序設計。通過控制單片機內部的定時器產生不同頻率的方波,驅動喇叭發(fā)出不同音調的音樂,再利用延遲控制發(fā)音時間的長短。把樂譜轉化成相應的定時常數(shù),從而達到從發(fā)音設備中演奏出悅耳動聽的音樂的效果。該音樂盒主要由按鍵電路、復位電路、時鐘電路以及蜂鳴器組成。使用兩個按鍵控制音樂盒,一個用來切換歌曲,另一個用來切換8路LED的變化花樣,本音樂盒共有兩首歌曲,花樣燈花樣共計3種。播放歌曲時,蜂鳴器發(fā)出某個音調,與之對應的LED亮起。本設計利用KEIL編程軟件對音樂盒源程序進

2、行編程并調試,配合PROTEUS仿真軟件對硬件進行仿真調試,節(jié)約了設計時間。本系統(tǒng)采用C語言進行軟件設計。正文中首先簡單描述系統(tǒng)硬件工作原理,且附以系統(tǒng)硬件設計框圖,論述了本次畢業(yè)設計所應用的各硬件接口技術和各個接口模塊的功能及工作過程。其次闡述了程序的流程和實現(xiàn)過程。本文撰寫的主導思想是軟、硬件相結合,以硬件為基礎,來進行各功能模塊的編寫。關 鍵 詞單片機;音樂;C語言;STC89C51;KEIL;PROTEUS39 / 53AbstractIn this paper, The music generator and its hardware circuit is designed by M

3、CS-51 single-chip microcomputer principle and control theory, and the Software development and programming are based on C language programming. According to control the MCU internal timer to produce different frequency Square wave to drive the horn sounds of different tones of music, then use the de

4、lay to control the length of time. The music Transformationed into the timing constants corresponding so that the sound equipment can play Melodious music.The music box is mainly composed of keypad circuit, reset circuit, clock circuit and a buzzer. Two buttons are used to control the music box, one

5、 to switch songs, another is used to switch the 8 LED pattern, the music box has two songs, a total of 3 kinds of pattern light pattern. While the music is playing, the buzzer sounded a tone, and the corresponding LED lights up. The design of programming the music box and debug source code using KEI

6、L programming software, and to save the design time the PROTEUS simulation software is used to simulate the hardware debugging.The system uses C language for software design. Firstly, in the text describes the working principle of the system hardware, and attached to the system block diagram of hard

7、ware design to discusse the function and working process of the graduation design and the application of the hardware interface technology and the interface module. Secondly, expound the procedures and processes to achieve process. The main idea of this writing is a combination of software and hardw

8、are, on the base of hardware, write to each function module.Key wordsSinglechip; music; C language; STC89C51; KEIL; PROTEUS目 錄前 言- 1 -1 概述- 3 -1.1 課題意義- 3 -1.2 國內外研究的現(xiàn)狀及發(fā)展趨勢- 3 -1.3 音樂發(fā)生器的擴展- 4 -1.3.1設計方案- 4 -2 51單片機介紹- 4 -2.1 Intel 51系列單片機- 4 -2.1.1 MCS-51單片機簡述- 5 -2.1.2 8051與80C51的區(qū)別- 5 -2.1.

9、3 8051單片機的引腳功能- 5 -2.2 51單片機內部結構- 8 -2.3 51系列的特性- 8 -2.4 并行I/O口- 8 -2.4.1 P0端口的結構及工作原理- 9 -2.4.2 P1端口的結構及工作原理- 11 -2.4.3 P2端口的結構及工作原理- 11 -2.4.4 P3端口的結構及工作原理- 12 -2.5 驅動能力- 13 -3 系統(tǒng)總體方案介紹- 13 -3.1 系統(tǒng)組成框圖- 13 -3.2 音樂發(fā)生器的功能結構圖- 14 -3.3主要設計軟件介紹- 14 -3.3.1 PROTEUS軟件簡介- 14 -3.3.2 KEIL簡介- 14 -4 硬件設計- 15 -

10、4.1 總體設計框圖- 15 -4.2各部分硬件設計及其原理- 16 -4.2.1 STC89C51簡介- 16 -4.2.2 LED顯示電路設計與原理- 16 -4.2.3 時鐘振蕩電路- 17 -4.3 硬件電路圖及功能- 17 -5 軟件設計- 18 -5.1音調、節(jié)拍以及編碼的確定方法- 19 -5.1.1 音調的確定- 19 -5.1.2 節(jié)拍的確定- 20 -5.1.3 編碼- 21 -5.2 軟件程序設計- 23 -5.2.1 程序流程圖及相應代碼塊- 23 -5.2.2 程序源代碼(見附錄A)- 27 -6 調試- 27 -6.1 檢查硬件連接- 27 -6.2 檢查軟件系統(tǒng)-

11、 27 -6.3 仿真測試結果- 27 -6.3.1 總體運行圖- 27 -6.3.2 花樣燈3種花樣圖- 28 -7 總結- 30 -致謝:- 31 -參考文獻:- 32 -附錄A:- 33 -程序源代碼:- 33 -前 言音樂電聲的一個重要內容就是電子音樂。電子琴的出現(xiàn),開辟了音樂的一個新天地。但是自從電子合成器問世以來,電子音樂就又進入了一個更高的階段。目前,由于電子音樂的普及,電子合成器(合成器實際上是一臺聲音的頻率合成儀,可以制作各種聲音,改變各種音色)可以解決相當一部分的歌唱及舞廳的伴奏問題??梢允孪戎谱靼樽嘁魳坊虮尘耙魳?,而不需要樂隊,或者部分代替樂隊。由于音樂合成器制作和修改方

12、便,成本低,音樂豐滿,所以市場需求量很大,因此,世界許多國家的廠商都不斷地在發(fā)展并推出新的型號,每年都要更新?lián)Q代。當前的發(fā)展趨勢是不斷的采用先進技術,以取得更多、更好的音色。如擴展容量,這包括擴展槽口,增加軟盤驅動器或硬盤,增加最大發(fā)音數(shù)目,增大存貯量,擴展琴鍵等;使功能多樣化,如一臺合成器可以同時發(fā)二種、四種甚至八種音色,即一臺當作幾臺使用,或者把鼓機的節(jié)奏發(fā)生器功能、音序器的編輯功能放入合成器,讓合成器代替計算機的主機等;擴展功能,例如有的合成器有“跟隨”功能,即經預置,每一個音后可以跟隨一個二度或三度音,“重疊”功能,輕奏或重奏時可以發(fā)不同音調或音色;另外,合成器還向輕便、使用操作方便等

13、方向發(fā)展。隨著以法、德、意為代表的歐洲和以美國為代表的電子音樂、計算機音樂早期的大力發(fā)展,國際上許多國家紛紛開始引入電子音樂研究與創(chuàng)作。因此,電子音樂創(chuàng)作作為音樂科技領域發(fā)展的重要標志,在風格上也體現(xiàn)出比以往任何時代都鮮明的個性化特征。電腦音樂也許不會成為今后音樂的主流,但它在整個人類音樂史上的地位已經不容置疑地確立了,相信它會越來越深入地浸透到音樂創(chuàng)作和欣賞的領域中,并且將在一定程度上影響人們對音樂的理解和詮釋。用單片機制作的音樂發(fā)生器也會越來越多,這將必然成為一種趨勢。1 概述本設計是以STC89C51芯片的電路為基礎,外部加上放音設備,以此來實現(xiàn)音樂演奏控制器的硬件電路,通過軟件程序控制

14、單片機內部的定時器,把樂譜轉化成相應的定時常數(shù),使其演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要改變相應的地址即可實現(xiàn)功能。本系統(tǒng)的軟件編程和硬件系統(tǒng)設計具有很好的通用性,具有一定的實際使用價值,為廣大的音樂愛好者提供了利用單片機實現(xiàn)音樂播放和設計方法和思路提供了較好的借鑒。1.1 課題意義音樂盒的起源,可追溯至中世紀歐洲文藝復興時期。當時為使教會的鐘塔報時,而將大小的鐘表裝上機械裝置,被稱為“可發(fā)出聲音的組鐘”。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。傳統(tǒng)的音樂盒多是機械音樂盒,其工作原理是通過齒輪帶

15、動一個帶有鐵釘?shù)蔫F桶轉動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機械式的音樂盒體積比較大,比較笨重,且發(fā)音單調。水、灰塵等外在因素,容易使內部金屬發(fā)音條變形,從而造成發(fā)音跑調。另外,機械音樂盒放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產。本文設計的音樂盒,是基于單片機設計制作的電子式音樂盒。與傳統(tǒng)的機械式音樂盒相比更小巧,音質更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進行批量生產,所以價格便宜?;趩纹瑱C制作的電子式音樂盒,控制功能強大,可根據(jù)需要選歌,使用方便。根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。另外,可以設計彩燈外

16、觀效果,使音樂盒的功能更加豐富。1.2 國內外研究的現(xiàn)狀及發(fā)展趨勢 隨著以法、德、意為代表的歐洲和以美國為代表的電子音樂、計算機音樂早期的大力發(fā)展,國際上許多國家紛紛開始引入電子音樂研究與創(chuàng)作。因此,電子音樂創(chuàng)作作為音樂科技領域發(fā)展的重要標志,在風格上也體現(xiàn)出比以往任何時代都鮮明的個性化特征。六十年代,美國物理學家Robert Moog 研制出了小型實用的電子合成器。從此,首先在歐美地區(qū),合成器作為新型的樂器被音樂家尤其是流行音樂家所采用并飛快的流行開來。由于美國雄厚的經濟和科技基礎,在早期計算機音樂獲得巨大成功后,越來越多的音樂家和科學家步入到計算機音樂的研究與開發(fā)的領域中來,他們一起工作、

17、共同開展研究,許多新產品和新設計不斷涌現(xiàn)。1.3 音樂發(fā)生器的擴展熟練的運用89C51單片機定時器產生固定頻率的方波信號,推動喇叭發(fā)出旋律,按下單鍵可以演奏預先設置的歌曲旋律,最重要的是自己還可以通過程序設計輸入自己喜歡的歌曲來演奏中,本設計采用簡易音階編碼直覺式輸入法方便設計音樂旋律,可以擴充其功能如下:1.設計三個按鍵操作來更改歌曲的序號;2.可以按照歌曲的序號來播放歌曲;3.可以顯示播放中歌曲的序號;4.可以存儲多首歌曲;1.3.1設計方案設計一個基于STC89C51系列單片機的音樂盒,利用按鍵切換演奏出不同的樂曲。蜂鳴器發(fā)出某個音調,與之相對應的LED亮起。使用兩個按鍵,一個用來切換歌

18、曲,另一個切換八路LED的變化花樣。1)電路有兩種工作模式:演奏音樂模式和花樣燈模式。演奏音樂模式:演奏完整的一首的歌曲,八路LED隨著音樂變化?;訜裟J剑喊寺稬ED變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲2)按下按鍵1進入演奏音樂模式,再按切換歌曲,共兩首歌曲。3)按下按鍵2進入花樣燈模式,再按切換LED花樣,共三種花樣。此電路的程序只占用了1K左右,可編制更多的音樂和LED花樣,使系統(tǒng)的功能更加強大。2 51單片機介紹2.1 Intel 51系列單片機2.1.1 MCS-51單片機簡述MCS-51是指由美國INTEL公司生產的一系列單片機的總稱,這一系列單片機包括了好些品種,如

19、8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產品,該系列其它單片機都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機,而8031是前些年在我國最流行的單片機,所以很多場合會看到8031的名稱。INTEL公司將MCS51的核心技術授權給了很多其它公司,所以有很多公司在做以8051為 核心的單片機,當然,功能或多或少有些改變,以滿足不同的需求,其中89C51就 是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發(fā)生產的。MCS-51系列單片機分為兩大系列,即51子系列與52子系列。51子系列:基

20、本型,根據(jù)片內ROM的配置,對應的芯片為8031、8051、8751、8951;52子系列:增強型,根據(jù)片內ROM的配置,對應的芯片為8032、8052、8752、8952。2.1.2 8051與80C51的區(qū)別 80C51單片機是在8051的基礎上發(fā)展起來的,也就是說在單片機的發(fā)展過程中是先有8051,然后才有80C51的。8051單片機與80C51單片機從外形看 是完全一樣的,其指令系統(tǒng)、引腳信號、總線等完全一致(完全兼容),也就是說在8051下開發(fā)的軟件完全可以在80C51上應用,反過來,在89C51下開發(fā)的軟件也可以在8051上應用。這兩種單片機是完全可移植的。 8051與80C51單

21、片機的主要差別就在于芯片的制造工藝上。80C51的制造工藝是在8051基礎上進行了改進。 8051系列單片機采用的是HMOS工藝:高速度、高密度; 80C51系列單片機采用的是CHMOS工藝:高速度、高密度、低功耗;也就是說80C51單片機是一種低功耗單片機。2.1.3 8051單片機的引腳功能圖中給出了40引腳的8051單片機的引腳圖,40個引腳按引腳功能大致可分為4個種類:電源、時鐘、控制和I/O引腳。圖2.1 8051單片機的引腳圖(1)電源 1)VCC - 芯片電源,接+5V; 2)VSS - 接地端;注:用萬用表測試單片機引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在單

22、片機程序正在工作時候測試結果并不是這個值而是介于0v-5v之間,其實這是萬用表的響應速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者5v。(2)時鐘時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 (3)控制線 1)ALE/PROG:地址鎖存允許/片內EPROM編程脈沖。 ALE功能:用來鎖存P0口送出的低8位地址。 PROG功能:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。2)PSEN:外ROM讀選通信號。3)RST/VPD:復位/備用電源。 RST(Reset)功能:復位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。4)EA/

23、Vpp:內外ROM選擇/片內EPROM編程電源。 EA功能:內外ROM選擇端。 Vpp功能:片內有EPROM芯片,在EPROM編程期間,施加編程電源Vpp。(4)I/O線 80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。 P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。 P3口第二功能為: 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ù)存儲器寫選通(低電平有

24、效)P3.7 RD 外部數(shù)據(jù)存儲器讀選通(低電平有效)2.2 51單片機內部結構振蕩器及定時器電路CPU4K程序存儲器128B數(shù)據(jù)存儲器2個16位定時/計數(shù)器64K總線擴展控制可編程I/O可編程串行口中斷系統(tǒng)圖2.2 51單片機內部結構圖從內部結構簡圖可以看出,51單片機內部有以下主要部分:1) CPU51 2) 振蕩器及定時電路3)4KB程序存儲器 4) 128B數(shù)據(jù)存儲器5) 2個16位定時/計數(shù)器 6) 64KB總線擴展控制7) 可編程I/O 8) 可編程串行口9) 中斷系統(tǒng) 2.3 51系列的特性1)片內存儲器容量較小,一般內部ROM:8KB以下,內部RAM:256KB以下2)可靠性高

25、3)易擴展 4)控制功能強 5)易于開發(fā)2.4 并行I/O口51單片機有四個并行I/O口:P0,P1,P2,P3。2.4.1 P0端口的結構及工作原理P0端口由鎖存器、輸入緩沖器、切換開關、一個與非門、一個與門及V1、V2場效應管驅動電路構成。在P0口中,有兩個三態(tài)的緩沖器,在其的輸出端可以是高電平、低電平,同時還有一種就是高阻狀態(tài)(或稱為禁止狀態(tài)),上面一個是讀鎖存器的緩沖器,下面一個是讀引腳的緩沖器,讀取P0.X引腳上的數(shù)據(jù),要使這個三態(tài)緩沖器有效,引腳上的數(shù)據(jù)才會傳輸?shù)絻炔繑?shù)據(jù)總線上。在51單片機的32根I/O口線中都是用一個D觸發(fā)器來構成鎖存器的。D端是數(shù)據(jù)輸入端,

26、CP是控制端(也就是時序控制信號輸入端),Q是輸出端,Q非是反向輸出端。在51單片機中,不需要外擴展存儲器時,P0口可以作為通用的輸入輸出端口(即I/O)使用,對于8031(內部沒有ROM)的單片機或者編寫的程序超過了單片機內部的存儲器容量,需要外擴存儲器時,P0口就作為地址/數(shù)據(jù)總線使用。這個多路選擇開關就是用于選擇是做為普通I/O口使用還是作為數(shù)據(jù)/地址總線使用的選擇開關了。當多路開關與下面接通時,P0口是作為普通的I/O口使用的,當多路開關是與上面接通時,P0口是作為地址/數(shù)據(jù)總線使用的。P0口的輸出是由兩個MOS管組成的推拉式結構,也就是說,這兩個MOS管一次只能導通一個,當V1導通時

27、,V2就截止,當V2導通時,V1截止。P0口作為I/O端口使用時,多路開關的控制信號為0(低電平),V1管截止,多路開關是與鎖存器的Q非端相接的(即P0口作為I/O口線使用)。作為地址/數(shù)據(jù)線使用時,多路開關的控制信號為1,V1管由地址/數(shù)據(jù)線決定,多路開關與地址/數(shù)據(jù)線連接。輸出過程:當寫鎖存器信號CP有效,數(shù)據(jù)總線的信號鎖存器的輸入端D鎖存器的反向輸出Q非端多路開關V2管的柵極V2的漏極到輸出端P0.X。這時多路開關的控制信號為低電平0,V1管是截止的,所以作為輸出口時,P0是漏極開路輸出,類似于OC門,當驅動上接電流負載時,需要外接上拉電阻。地址輸出過程時,控制信號為1,地址信號為0時,

28、與門輸出低電平,V1管截止;反相器輸出高電平,V2管導通,輸出引腳的地址信號為低電平。反之,控制信號為0、地址信號為1,“與門”輸出為高電平,V1管導通;反相器輸出低電平,V2管截止,輸出引腳的地址信號為高電平??梢?,在輸出“地址/數(shù)據(jù)”信息時,V1、V2管是交替導通的,負載能力很強,可以直接與外設存儲器相連,無須增加總線驅動器。作為數(shù)據(jù)總線的輸出過程時,如果該指令是輸出數(shù)據(jù),如MOVX   DPTR,A(將累加器的內容通過P0口數(shù)據(jù)總線傳送到外部RAM中),則多路開關“控制”信號為1,“與門”解鎖,與輸出地址信號的工作流程類似,數(shù)據(jù)據(jù)由“地址/數(shù)據(jù)”線反相器V2場效應管柵

29、極V2漏極輸出。輸入過程:讀芯片引腳上的數(shù)據(jù)時,讀引腳緩沖器打開,通過內部數(shù)據(jù)總線輸入。通過打開讀鎖存器三態(tài)緩沖器,讀取鎖存器輸出端Q的狀態(tài)。作為數(shù)據(jù)總線使用時,在訪問外部程序存儲器時,P0口輸出低8位地址信息后,將變?yōu)閿?shù)據(jù)總線,以便讀指令碼(輸入)。在取指令期間,“控制”信號為“0”,V1管截止,多路開關也跟著轉向鎖存器反相輸出端Q非;CPU自動將0FFH(11111111,即向D鎖存器寫入一個高電平1)寫入P0口鎖存器,使V2管截止,在讀引腳信號控制下,通過讀引腳三態(tài)門電路將指令碼讀到內部總線,這個過程和I/O讀引腳過程是一樣的。在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也

30、有例外。例如,當從內部總線輸出低電平后,鎖存器Q0,Q非1,場效應管T2開通,端口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電乎還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當從內部總線輸出高電平后,鎖存器Q1,Q非0,場效應管T2截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此,8031單片機在對端口P0-P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號,其它指令則從端口引腳線上讀入信號。讀-修改-寫指令的特點是,從端口輸入(讀)信號,在單片機內加以運算(修改)后,再輸出(寫)到該端口上

31、。這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態(tài),修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原端口的狀態(tài)被讀錯。當P0作為地址/數(shù)據(jù)總線使用時,在讀指令碼或輸入數(shù)據(jù)前,CPU自動向P0口鎖存器寫入0FFH,破壞了P0口原來的狀態(tài)。因此,不能再作為通用的I/O端口。在系統(tǒng)設計時務必注意,即程序中不能再含有以P0口作為操作數(shù)(包含源操作數(shù)和目的操作數(shù))的指令。2.4.2 P1端口的結構及工作原理P1端口與P0端口的主要差別在于,P1端口用內部上拉電阻R代替了P0端口的場效應管T1,并且輸出的信息僅來自內部總線。由內部總線輸出的數(shù)據(jù)經鎖存器反相和場效應管反相后,鎖存

32、在端口線上,所以,P1端口是具有輸出鎖存的靜態(tài)口。要正確地從引腳上讀入外部信息,必須先使場效應管關斷,以便由外部輸入的信息確定引腳的狀態(tài)。為此,在作引腳讀入前,必須先對該端口寫入l。具有這種操作特點的輸入/輸出端口,稱為準雙向I/O口。8051單片機的P1、P2、P3都是準雙向口。P0端口由于輸出有三態(tài)功能,輸入前,端口線已處于高阻態(tài),無需先寫入l后再作讀操作。單片機復位后,各個端口已自動地被寫入了1,此時,可直接作輸入操作。如果在應用端口的過程中,已向P1-P3端口線輸出過0,則再要輸入時,必須先寫1后再讀引腳,才能得到正確的信息。此外,隨輸入指令的不同,P1端口也有讀鎖存器與讀引腳之分。2

33、.4.3 P2端口的結構及工作原理P2端口在片內既有上拉電阻,又有切換開關MUX,所以P2端口在功能上兼有P0端口和P1端口的特點。這主要表現(xiàn)在輸出功能上,當切換開關向下接通時,從內部總線輸出的一位數(shù)據(jù)經反相器和場效應管反相后,輸出在端口引腳線上;當多路開關向上時,輸出的一位地址信號也經反相器和場效應管反相后,輸出在端口引腳線上。 對于8031單片機必須外接程序存儲器才能構成應用電路(或者我們的應用電路擴展了外部存儲器),而P2端口就是用來周期性地輸出從外存中取指令的地址(高8位地址),因此,P2端口的多路開關總是在進行切換,分時地輸出從內部總線來的數(shù)據(jù)和從地址信號線上來的地址。因此P2端口是

34、動態(tài)的I/O端口。輸出數(shù)據(jù)雖被鎖存,但不是穩(wěn)定地出現(xiàn)在端口線上。其實,這里輸出的數(shù)據(jù)往往也是一種地址,只不過是外部RAM的高8位地址。 在輸入功能方面,P2端口與P0和H端口相同,有讀引腳和讀鎖存器之分,并且P2端口也是準雙向口。 可見,P2端口的主要特點包括: 1)不能輸出靜態(tài)的數(shù)據(jù); 2)自身輸出外部程序存儲器的高8位地址; 3)執(zhí)行MOVX指令時,還輸出外部RAM的高位地址,故稱P2端口為動態(tài)地址端口。P2作為I/O端口使用時的工作過程:當沒有外部程序存儲器或雖然有外部數(shù)據(jù)存儲器,但容易不大于256B,即不需要高8位地址時(在這種情況下,不能通過數(shù)據(jù)地址寄存器DPTR讀寫外部數(shù)據(jù)存儲器)

35、,P2口可以I/O口使用。這時,控制信號為“0”,多路開關轉向鎖存器同相輸出端Q,輸出信號經內部總線鎖存器同相輸出端Q反相器V2管柵極V2管9漏極輸出。由于V2漏極帶有上拉電阻,可以提供一定的上拉電流,負載能力約為8個TTL與非門;作為輸出口前,同樣需要向鎖存器寫入“1”,使反相器輸出低電平,V2管截止,即引腳懸空時為高電平,防止引腳被鉗位在低電平。讀引腳有效后,輸入信息經讀引腳三態(tài)門電路到內部數(shù)據(jù)總線。P2作為地址總線使用時的工作過程:P2口作為地址總線時,“控制”信號為1,多路開關車向地址線(即向上接通),地址信息經反相器V2管柵極漏極輸出。由于P2口輸出高8位地址,與P0口不同,無須分時

36、使用,因此P2口上的地址信息(程序存儲器上的A15A8)功數(shù)據(jù)地址寄存器高8位DPH保存時間長,無須鎖存。2.4.4 P3端口的結構及工作原理P3口是一個多功能口,它除了可以作為I/O口外,還具有第二功能P3端口和Pl端口的結構相似,區(qū)別僅在于P3端口的各端口線有兩種功能選擇。當處于第一功能時,第二輸出功能線為1,此時,內部總線信號經鎖存器和場效應管輸入/輸出,其作用與P1端口作用相同,也是靜態(tài)準雙向I/O端口。當處于第二功能時,鎖存器輸出1,通過第二輸出功能線輸出特定的內含信號,在輸入方面,即可以通過緩沖器讀入引腳信號,還可以通過替代輸入功能讀入片內的特定第二功能信號。由于輸出信號鎖存并且有

37、雙重功能,故P3端口為靜態(tài)雙功能端口。使P3端口各線處于第二功能的條件是:1)串行I/O處于運行狀態(tài)(RXD,TXD);2)打開了處部中斷(INT0,INT1);3)定時器/計數(shù)器處于外部計數(shù)狀態(tài)(T0,T1)4)執(zhí)行讀寫外部RAM的指令(RD,WR) 在應用中,如不設定P3端口各位的第二功能,則P3端口線自動處于第一功能狀態(tài),也就是靜態(tài)IO端口的工作狀態(tài)。在更多的場合是根據(jù)應用的需要,把幾條端口線設置為第二功能,而另外幾條端口線處于第一功能運行狀態(tài)。在這種情況下,不宜對P3端口作字節(jié)操作,需采用位操作的形式。2.5 驅動能力P0端口能驅動8個LSTTL負載。如需增加負載能力,可在P

38、0總線上增加總線驅動器。P1,P2,P3端口各能驅動4個LSTTL負載。由于P0-P3端口已映射成特殊功能寄存器中的P0-P3端口寄存器,所以對這些端口寄存器的讀寫就實現(xiàn)了信息從相應端口的輸入輸出。3 系統(tǒng)總體方案介紹3.1 系統(tǒng)組成框圖音樂盒的系統(tǒng)結構以STC89C51單片機位控制核心,加上2個按鍵、時鐘復位電路、蜂鳴器、LED模塊組成。單片機負責接收按鍵的輸入,根據(jù)輸入控制音樂播放曲目和音樂花樣燈的顯示樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。圖3.1 系統(tǒng)組成框圖3.2 音樂發(fā)生器的功能結構圖音樂盒的功能結構如圖2.2所示。Key1負責切換播放歌曲,播放歌曲共2首,分別是揮著翅膀的

39、女孩和寂寞沙洲冷。Key2負責切換LED顯示花樣,顯示花樣共3種,第一種順序顯示,第二種由兩邊向中間移動然后向兩邊移動,第三種循環(huán)顯示。圖3.2 音樂盒功能結構圖3.3主要設計軟件介紹本設計利用KEIL編程軟件對音樂盒源程序進行編程并調試,配合PROTEUS仿真軟件對硬件進行仿真調試,兩種軟件的簡介如下:3.3.1 PROTEUS軟件簡介Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推

40、廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等

41、多種編譯器。 3.3.2 KEIL簡介單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的

42、完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在

43、開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。4 硬件設計4.1 總體設計框圖圖4.1總體設計框圖4.2各部分硬件設計及其原理4.2.1 STC89C51簡介STC89C51是一種帶4K字節(jié)閃存的低電壓高性能的可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory),俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,STC89C51是一種高效微控制器。STC89C51單片機為很

44、多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3.2所示:圖4.2 STC89C51系列單片機4.2.2 LED顯示電路設計與原理LED顯示電路是由8個LED發(fā)光二極管組成,連接方式為共陽極,LED接到單片機的P1口,若為低電平,可使LED亮起。發(fā)光二極管的亮、滅由內部程序控制,8個LED發(fā)光二極管分別對應不同的音階,所以LED會隨著音階的變化按規(guī)律亮、滅。4.2.3 時鐘振蕩電路STC89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自然振蕩器。外接

45、石英晶體及電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF 10PF,而如果使用陶瓷振蕩器建議選擇40PF 10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產品技術條件的要

46、求。振蕩器電路圖如下:圖4.3 單片機內部、外部振蕩電路4.3 硬件電路圖及功能總體硬件電路實現(xiàn)功能如下,如圖3.4所示1) 電路中用P3.2、P3.3控制按鍵。2) P1.0P1.7控制LED。3) P2.3控制蜂鳴器。4) 電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。硬件電路圖如圖所示:圖4.4 硬件電路圖5 軟件設計在本程序中設置了兩個標志count1和count2,分別初始化為1和0。按鍵1使得count1在1和2之間切換,按鍵2使得count2在14之間切換。程序檢測count1的值,count1等于1時播放第一首歌曲,等于2時播放第二首。另一方面根據(jù)count2

47、的值來切換LED的花樣。count1和count2的值是互斥的,設置count1等于1、2時,count2同時設置為0;設置count2等于14時,count1也同時設置為0。5.1音調、節(jié)拍以及編碼的確定方法一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和節(jié)拍表示一個音符唱多長的時間。5.1.1 音調的確定不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、

48、6、7,相當于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、AB兩音之間隔著一個黑鍵,他們之間的距離就是全音;EF、BC兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號或者b號的叫變化音。叫升記號,表示把音在原來的基礎上升高半音,b叫降記音,表示在原來的基礎上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻

49、率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。1)要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。2)利用AT89C51的內部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產生不同頻率的方法。此外結

50、束符和休止符可以分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生相應的停頓效果。3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次技術956次時將I/O反相,就可得到中音DO(523Hz)。計數(shù)脈沖值與頻率的關系公式如下:N=Fi2FrN:計算值;Fi:內部計時一次為1us,故其頻率為1MHz;4)其計數(shù)值的求法如下:T=65536-N=65536-Fi2Fr例如:設K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(10

51、46Hz)的計算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=650595)C調各音符頻率與計數(shù)值T的對照表如表4.1所示。表5.1 C調各音符頻率與計數(shù)值T的對照表低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù)Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re5

52、87852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si19

53、7630305.1.2 節(jié)拍的確定若要構成音樂,光有音調是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調節(jié)各個音的快滿度?!肮?jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成的,而每個音符對應著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應的延時,構成音樂。了解音樂的一些基礎知識,我們可知產生不同頻率的音頻脈沖即能產生音樂。對于單片機來說,產生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應的頻率,以及單片機定時計數(shù)的關系。表5.2節(jié)拍與節(jié)拍碼對照節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4

溫馨提示

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

評論

0/150

提交評論