數(shù)字音樂盒的設計大連海事大學_第1頁
數(shù)字音樂盒的設計大連海事大學_第2頁
數(shù)字音樂盒的設計大連海事大學_第3頁
數(shù)字音樂盒的設計大連海事大學_第4頁
數(shù)字音樂盒的設計大連海事大學_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設計報告 題目: 數(shù) 字 音 樂 盒 設 計 學生: 指導老師: 趙 國 庫 專業(yè): 自 動 化 1 班 學號: 2015年7月數(shù)字音樂盒的設計摘要:本次課設是基于AT89C51單片機的可控數(shù)字音樂盒的程序設計。該音樂盒是一個依據(jù)單片機技術原理,通過PROTEUS仿真軟件對硬件電路進行仿真制作以及利用KEIL軟件對音樂盒源程序進行C語言編譯,而設計制作出的一個多功能數(shù)字音樂盒。該音樂盒通過控制單片機內部的定時器來產生不同頻率的方波,驅動喇叭發(fā)出不同音調的音樂。該程序通過把樂譜轉化成相應的定時常數(shù)來驅動發(fā)音設備演奏出悅耳動聽的音樂。本音樂盒一共設計了三首歌曲,同時還設計了LCD歌曲的顯示。在

2、按下啟動鍵后,音樂盒開始播放音樂,同時還設計了上一曲下一曲和暫停鍵,使音樂盒能夠播放出美妙的音樂。關鍵詞:數(shù)字音樂盒;AT89C51;PROTEUS;KELL;LCD1. 背景介紹音樂盒的起源可以追溯到歐洲文藝復興時期,當時為教會的鐘塔報時,而將大小的機械裝置稱為可“發(fā)聲音的組鐘”。進入20世紀,隨著日本Sankyo在音樂盒市場的突起,音樂盒開始受到國人的關注,尤其是年輕學生。每個時期的音樂盒都是一面鏡子,折射出社會的心態(tài)和文明程度。2. 音樂盒的總體設計2.1設計的基本要求1. 利用I/O口產生一定頻率的方波,驅動蜂鳴器,發(fā)出不同音調,從而演奏音樂(最少三首音樂,每首不少于30s);2. 采

3、用LCD顯示:1) 開機時有英文歡迎提示字符,播放時顯示歌曲名稱;2) 可以通過按鍵選擇歌曲,上一曲,下一曲,暫停;3) 具有循環(huán)播放的功能。2.2硬件結構AT89C51芯片:主控制器;LCD顯示屏:顯示播放歌曲的名稱及序號;晶振:給單片機正常工作提供穩(wěn)定的時鐘信號,電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。電容:保持一個恒定的偏執(zhí)電壓供給;喇叭:發(fā)出聲音,P3.7控制喇叭電源:供電;電阻;控制電路;開關:控制音樂,P2.7控制LCD顯示屏的切換,P1.0 ,P1.2控制音樂的切換,P1.2歌曲暫停。3. 3.音樂盒總體設計3.1 音樂盒的主體結構該音樂盒主要是通過控制單

4、片機內部的定時器來產生不同頻率的方波,驅動喇叭發(fā)出不同音調的音樂,程序設計的主要部分包括簡譜音調,計時及鍵盤掃描。如圖:AT89C51喇叭晶振復位電路 本設計是一個基于AT89C51系列單片機的數(shù)字音樂盒,一共設計了三首不同風格的歌曲,在播放歌曲同時LCD顯示屏隨著歌曲的切換變化而變化。一共設計了四個開關,一個總開關按鈕,一個上一曲按鈕,一個下一曲按鈕,一個暫停按鈕。3.2音樂盒總設計框圖AT89C51通過前面的介紹,本文的設計思路已經基本清晰,總設計框圖如下:開關鍵LCD顯示屏晶振復位電路歌曲控制按鍵喇叭3.3各部分硬件的作用硬件除了AT89C51芯片外,主要的就是時鐘振蕩電路、LCD顯示器

5、的設計。3.3.1時鐘振蕩電路AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易、程序及溫度穩(wěn)定性1。振蕩器電路圖如下:3.3.2 LCD顯示屏的設計圖開始取第一首歌字符串寫(X,Y)字符=0?查忙寫上一個字符串寫下一個字符串結束寫字符串 4. 音調和節(jié)拍的設計一般說來,單片

6、機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和節(jié)拍表示一個音符唱多長的時間2。不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,

7、CD、DE、FG、GA、AB兩音之間隔著一個黑鍵,他們之間的距離就是全音;EF、BC兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成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)的一倍。

8、利用AT89C51的內部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產生不同頻率的方法。此外結束符和休止符7可以分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生相應的停頓效果。在簡譜中,數(shù)字上面帶一個點就是高8度,兩個點代表高16度。數(shù)字下面帶一個點就是低8度,兩個點代表低16度。若要構成音樂,光有音調是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調節(jié)各個音的快滿度?!肮?jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少秒,并沒有嚴

9、格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。根據(jù)節(jié)拍表編定所需節(jié)拍代碼。5.設計流程圖總體初始化顯示歡迎界面 根據(jù)歌曲序號顯示歌曲歌曲1歌曲2歌曲3歌曲結束符休止符 NY歌曲號加1時間清零設定時器初值YN延時取音調,節(jié)拍指針指向下一組音調每次到設定時間P1.2取反一次,產生音調歌曲3N指向下一組音調節(jié)拍=R7?按鍵處理LCD顯示歌曲名歌曲設為1 Y6.PROTEUS仿真圖像7主程序:#include #include Player.h#include lcd.hvoid mai

10、n()Sounder=0;LCDInit();LCD_Display(Welcome!,);delay_ms(2000);PlayerInit();while(1)if(BTN_Next=0)+i;i%=3;pointer=0;cnt=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(status=0)disp_cnt+;Status_Display();delay_ms(600);else if(BTN_Last=0)if(i=0)i=2;else -i;pointer=0;cnt=0;TH0=(65536-50000)/256;TL0=(65

11、536-50000)%256;if(status=0)disp_cnt+;Status_Display();delay_ms(600);else if(BTN_Pause=0)isPause=!isPause;if(isPause=1 & ET0=1) Sounder=0; ET0=0; TR0=0; ET1=0; TR1=0; status=0;else if(isPause=0 & ET0=0)ET0=1;TR0=1;ET1=1;TR1=1;status=1;disp_cnt+;Status_Display();delay_ms(600);Status_Display();7.1音樂程序#

12、include Player.h#include lcd.h#include static u16 code note=0,63628,63835,64021,64103,64260,64400,64524,0,64580,64684,64777,64820,64898,64968,65030;u8 code LittleStar=0,0,0,0,0,0,0,0,011,0,011,0,015,0,015,0,016,0,016,0,015,015,0,0,014,0,014,0,013,0,013,0,012,0,012,0,011,011,0,0,015,0,015,0,014,0,014

13、,0,013,0,013,0,012,012,0,0,015,0,015,0,014,0,014,0,013,0,013,0,012,012,0,0,011,0,011,0,015,0,015,0,016,0,016,0,015,015,0,0,014,0,014,0,013,0,013,0,012,0,012,0,011,011,0,0,;u8 code HoshiNoArika=0,0,0,0,0,0,0,0,011,011,07,07,011,011,013,013,07,07,07,07,0,0,0,0,06,06,05,05,06,06,011,011,05,05,05,05,0,0

14、,0,0,04,04,03,03,04,04,011,011,07,07,07,07,05,05,0,0,06,06,07,07,011,011,013,013,012,012,012,012,0,0,0,0,011,011,07,07,011,011,013,013,07,07,0,0,05,05,0,0,06,06,07,07,011,011,012,012,013,013,0,0,013,013,0,0,014,014,013,013,012,012,011,011,07,07,013,013,05,05,07,07,06,06,06,06,0,0,0,0;u8 code LittleA

15、pple=0,0,0,0,0,0,0,0,011,0,011,0,011,0,011,0,011,0,011,0,011,0,0,0,011,0,011,0,011,0,011,0,011,0,011,0,011,0,0,0,05,0,05,0,05,0,05,0,05,0,06,0,05,0,06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,011,0,011,0,011,0,011,0,011,0,011,0,011,0,0,0,011,0,011,0,011,0,011,0,011,0,011,0,011,0,0,0,05,0,05,0,05,0,05,0

16、,05,0,06,0,05,0,06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,06,0,06,0,06,0,07,0,011,0,013,0,012,0,011,0,07,0,07,0,07,0,06,0,07,0,0,0,0,0,0,0,05,0,05,0,05,0,06,0,07,0,012,0,011,0,07,0,06,0,06,0,06,0,05,0,06,0,0,0,0,0,0,0,06,0,06,0,06,0,07,0,011,0,013,0,012,0,011,0,07,0,07,0,07,0,06,0,07,0,0,0,0,0,0,0,05

17、,0,05,0,05,0,06,0,07,0,012,0,011,0,07,0,06,0,0,0,06,0,0,0,06,0,0,0,06,0,0,0,013,0,0,0, 011,0,0,0, 012,0,0,0, 06,0,0,0, 013,0,0,012,011,0,012,0,06,0,0,0,0,0,0,0,013,0,0,0, 011,0,0,0, 012,0,0,0, 012,0,013,0, 015,0,012,0,07,0,0,0,011,0,0,0,011,0,07,0,06,0,0,0,07,0,011,0,012,0,0,0,05,0,0,0,016,0,015,0,0

18、13,0,0,0,013,0,0,0,0,0,012,0,011,0,0,0,013,0,0,0,012,0,013,0,012,0,015,0,0,0,0,0,015,0,015,0,015,0,015,0,015,0,0,0,013,0,0,0, 011,0,0,0, 012,0,0,0, 06,0,0,0, 013,0,012,0,011,0,012,0,06,0,0,0,0,0,0,0,013,0,0,0, 011,0,0,0, 012,0,0,0, 012,0,013,0, 015,0,012,0,07,0,0,0,011,0,0,0,011,0,07,0,06,0,0,0,07,0

19、,011,0,012,0,0,0,05,0,0,0,016,0,015,0,013,0,0,0,013,0,0,0,0,0,012,0,011,0,0,0,013,0,0,0,012,0,0,0,05,0,0,0,06,0,0,0,06,0,0,011,06,0,0,0,0,0,0,0;static u16 syllable=0;u8 i=2;u16 pointer=0;u8 cnt=0;u8 isPause=0;Song songs3;void PlayerInit()TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=syll

20、able/256;TL1=syllable%256;EA=1;ET0=1;ET1=0;TR0=1;TR1=0;songs0.buff=LittleStar;songs0.len=sizeof(LittleStar)/sizeof(u8);songs0.rythm=2;strcpy(songs0.Name,LittleStar);songs1.buff=HoshiNoArika;songs1.len=sizeof(HoshiNoArika)/sizeof(u8);songs1.rythm=4;strcpy(songs1.Name,HoshiNoArika);songs2.buff=LittleApple;songs2.len=sizeof(LittleApple)/sizeof(u8);songs2.rythm=1;strcpy(songs2.Name,LittleApple);void T0Handler() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(cnt0) disp_cnt-;else return;LCD_Display(songsi.Name,_Statusstatus);8. 總結8.1系統(tǒng)總結1. 本次設計對音樂盒的歷史有了了解,音樂盒300多年前都出現(xiàn)了,不過是機械的不是數(shù)字的,而隨著歷史

溫馨提示

  • 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

提交評論