ppt內(nèi)容預覽:
一、任務設計: 1、設計任務:設計并制作一個流水燈音樂盒。 2、設計要求 - 流水燈音樂盒電路使用兩個按鍵控制音樂盒,一個用來切換歌曲,另一個用來切換LED燈的變化花樣;
- 利用按鍵切換演奏出不同的樂曲;
- 蜂鳴器發(fā)出某個音調(diào),與之相對應的LED亮起;
- 音樂盒共有五首歌曲,花樣燈花樣共計五種。
3.發(fā)揮部分 - 實此電路的程序只占用了2K左右,可以方便的添加更多的音樂和LED花樣,
4.創(chuàng)新部分 - 演奏完整的一首的歌曲,八路LED隨著音樂變化
- 八路LED變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲
- 按下按鍵1進入演奏音樂模式,再按時就可以切換歌曲,共擁有五首歌曲。
- 按下按鍵2進入花樣燈模式,再按時就可以切換LED花樣,共有五種花樣。
二、方案論證 2.1方案一:單片機接+5V電源供電,晶振電路產(chǎn)生單片機所需的時鐘信號,通過功能鍵產(chǎn)生外部中斷,控制音樂盒的上一首和下一首曲目,再由I/0接口輸出控制揚聲器發(fā)聲,LCD顯示。另外,復位電路在于營造一個程序運行的初始狀態(tài),在程序出錯時,重新啟動單片機工作。系統(tǒng)組成框圖如圖1所示
圖1方案一 系統(tǒng)框圖 方案二:設計一個音樂播放器同樣使用AT89C51,蜂鳴器一端與一個按鈕串聯(lián)后再和P17焊接,另一端直接接地;P31和RST端口并聯(lián)后和主電源串接,如圖2所示: 圖2方案二系統(tǒng)框圖 2.2方案比較 方案一是通過按鍵控制系統(tǒng)的音樂播放。利用I/0口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏出樂曲;采用LCD顯示信息,開機時有歡迎提示字符,播放時顯示歌曲序號或名稱;可通過功能鍵選擇樂曲暫停,播放;當鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲,同時啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器T1,在LCD顯示歌曲號。通過單片機P1口控制,實現(xiàn)功能鍵盤的功能;功能鍵盤采用按鍵開關,通過單片機P2口控制,實現(xiàn)歌曲播放順序的調(diào)換和暫停播放功能;揚聲器由單片機的P3控制,實現(xiàn)歌曲播放。方案二是利用AT89C51芯片通過播放按鍵直接控制音樂,使得蜂鳴器發(fā)出聲音,方案一所需的電子元件少,這就大大減少了生產(chǎn)成本,此外,對于一個輕便易攜的音樂盒,其附加能耗越低越好。 2.3方案論證 雖然方案一的設計比較全面,但其難度較大,且編程方面要求較高;方案二要求簡單,容易實現(xiàn),編程方面也較簡單,因設計的是翻蓋式音樂盒,其功能是在翻開翻蓋的同時開關閉合,播放音樂,翻蓋蓋上,開關斷開,音樂盒停止運行,因此方案二更符合實際需要達到了設計音樂盒的目的。 2.4 方案選擇 通過2.3的方案論證,決定選擇方案二,方案二的實施性更強。 三、總體方案 1.工作原理 本設計采用AT89C51單片機作為本系統(tǒng)的控制模塊。依據(jù)單片機技術(shù)原理,通過硬件電路制作以及軟件編譯,設計制作出一個多功能多功能音樂盒,最終達到設計電路的樂器演奏、點歌、存儲及顯示功能。設計中應用中斷系統(tǒng)和定時/計數(shù)原理控制演奏器發(fā)聲,對音樂發(fā)生所必須確定的音符和節(jié)拍分別用程序語言實現(xiàn),可以用它來彈奏和播放樂曲。
2.總體設計 設計總體框架圖如圖1 音樂盒的系統(tǒng)結(jié)構(gòu)以AT89C52單片機位控制核心,加上2個按鍵、時鐘復位電路、蜂鳴器、LED模塊組成。單片機負責接收按鍵的輸入,根據(jù)輸入控制音樂播放曲目和音樂花樣燈的顯示樣式以及蜂鳴器發(fā)音。
四、系統(tǒng)硬件設計(單元電路設計及分析) 1.AT89C51簡介 功能特性:AT89S52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式?臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52。 主要性能:與MCS-51單片機產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz 、 三級加密程序存儲器 、32個可編程I/O口線 、三個16位定時器/計數(shù)器八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標識符。 2. LED顯示模塊 LED顯示電路是由8個LED發(fā)光二極管組成,LED接到單片機的P1口,若為低電平,可使LED亮起。發(fā)光二極管的亮、滅由內(nèi)部程序控制,8個LED發(fā)光二極管分別對應不同的音階,所以LED會隨著音階的變化按規(guī)律亮、滅。 
3.時鐘振蕩模塊 AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。 如果使用石英晶體,我們推薦電容使用30PF  10PF,而如果使用陶瓷振蕩器建議選擇40PF  10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下: 晶振電路 4.按鍵控制模塊 按下按鍵1進入演奏音樂模式,再按時就可以切換歌曲,共擁有五首歌曲。 按下按鍵2進入花樣燈模式,再按時就可以切換LED花樣,共有五種花樣。當按下電路是就會回到流水燈樣式一。 6. 蜂鳴器電路 蜂鳴器用于音樂的發(fā)音,受P0.4腳的控制。 7.整體電路 系統(tǒng)整體電路如圖8 所示
圖8 系統(tǒng)總體電路圖 仿真圖 五、系統(tǒng)軟件設計流程 1.主程序流程如圖9所示 圖9 系統(tǒng)主程序流程 2. 播放音樂子程序流程圖10所示
 圖10 播放音樂子程序流程
六、測試及其結(jié)果分析 1.基本部分測試與分析 (1)第一種花樣燈顯示方式為:從D1移向D2,然后D1熄滅,再從D2移向D3,然后D2熄滅,以此類推,當循環(huán)一遍后,就從D4和D5分別向兩邊移動。 第一種花樣 (2)第二種花樣燈顯示方式為:從兩邊向中間移動,首先從D1移向D8,再從D8移向D2,以此類推,往復循環(huán)。 (1) 音調(diào)的確定 不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,C–D、D–E、F–G、G–A、A–B兩音之間隔著一個黑鍵,他們之間的距離就是全音;E–F、B–C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上﹟號或者b號的叫變化音。﹟叫升記號,表示把音在原來的基礎上升高半音,b叫降記音,表示在原來的基礎上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。 要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。 利用AT89C51的內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應的停頓效果。 例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次技術(shù)956次時將I/O反相,就可得到中音DO(523Hz)。 計數(shù)脈沖值與頻率的關系公式如下: N=Fi 2 Fr N:計算值;Fi:內(nèi)部計時一次為1us,故其頻率為1MHz;Fr要產(chǎn)生的頻率。 其計數(shù)值的求法如下: T=65536-N=65536-Fi 2 Fr 例如:設K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計算值 T=65536-N=65536-Fi 2 Fr=65536-1000000 2 Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63627 低音DO的T=65536-500000/523=64580 低音DO的T=65536-500000/1047=65059 C調(diào)各音符頻率與計數(shù)值T的對照表如表1所示: 表1 C調(diào)各音符頻率與計數(shù)值T的對照表
(2)節(jié)拍的確定 若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快滿度!肮(jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。 一首音樂是由許多不同的音符組成的,而每個音符對應著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應的延時,構(gòu)成音樂。了解音樂的一些基礎知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應的頻率,以及單片機定時計數(shù)的關系。如表2節(jié)拍與節(jié)拍碼對照: 表2節(jié)拍與節(jié)拍碼對照
每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍。如果1拍為0.4秒,1/4拍實0.1秒,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù),如表3為1/4和1/8節(jié)拍的時間設定。 表3 1/4和1/8節(jié)拍的時間設定
(3)編碼 do re mi fa so la si分別編碼為1~7,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0xff作為曲譜的結(jié)束標志。 舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。 舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22 歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高4位得到音調(diào),接著找出相應的值賦給定時器0,使之定時操作蜂鳴器,得出相應的音調(diào);接著分離出該數(shù)的低4位,得到延時時間,接著調(diào)用軟件延時[1]。如表4簡譜對應的簡譜碼、T值、節(jié)拍數(shù): 表4 簡譜對應的簡譜碼、T值、節(jié)拍數(shù)
七、總結(jié) 對比兩種方案的設計,可以看出方案一,不論在軟件設計,硬件設計上帶來許多便捷,更能夠體現(xiàn)符合實際生產(chǎn)的需要,節(jié)約成本,服務生活,引導節(jié)能環(huán)保的潮流,具有極強的現(xiàn)實意義和可行性,利用定時器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括"Do"、"Re"、"Me"--等音階在內(nèi)的各種頻率聲音。將各個音階連接在一起,便可組成一支曲子或是演奏一段旋律。 八、設計心得體會 流水燈音樂盒設計是一項趣味性很強的設計,能激發(fā)我的濃厚興趣。同時要求我從程序編程,調(diào)試,軟件仿真和繪制開始,到硬件的焊接和調(diào)試,再到修改程序,在這期間我了解到了單片機開發(fā)的大致流程。 通過這次設計,也讓我學習到了很多新的東西,這些都讓我受益匪淺。單片機的定時器功能,LED的流水顯示,功能鍵盤的設計,這些內(nèi)容都頗為豐富。有以前學習過的舊知識,也有很多未曾注意到得新知識,這些都曾使我的設計出錯,通過自己的努力,老師指導和同學的幫助,終于克服了一個一個的困難,把硬件實物順利做好,把軟件調(diào)試順利完成。通過這次設計能夠更熟悉的進行單片機的控制和編程,也從中發(fā)現(xiàn)了自己很多的不足,通過學習網(wǎng)上的資料和書本上的知識才能很好的完成任務,在實踐的過程中不斷地學習是更高效的學習方法,這次設計也有很多不足的地方,希望在以后的制作過程中能不斷地提高自己,做出更好、更有用的作品。
全部資料51hei下載地址:
流水燈音樂盒.rar
(3.4 MB, 下載次數(shù): 187)
2018-6-26 21:17 上傳
點擊文件名下載附件
|