版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 音樂盒設(shè)計</b></p><p><b> 摘 要</b></p><p> 本文是應(yīng)用STC89C52單片機原理和控制理論來設(shè)計音樂盒的硬件電路,并利用匯編語言進行程序設(shè)計。通過控制單片機內(nèi)部的定時器來產(chǎn)生不同頻率的方波,驅(qū)動喇叭發(fā)出不同音調(diào)的音樂,再利用延遲來控制發(fā)音時間的長短。該程序通過把樂譜轉(zhuǎn)化成
2、相應(yīng)的定時常數(shù)來驅(qū)動發(fā)音設(shè)備演奏出悅耳動聽的音樂。這種控制電路結(jié)構(gòu)簡單,可靠性高,應(yīng)用性強;軟件程序適應(yīng)范圍廣,對于不同的音樂只需要改變相應(yīng)的定時常數(shù)即可。對單片機和音樂愛好者有一定的借鑒價值。</p><p> 關(guān)鍵詞:STC89C52單片機 音樂盒 匯編語言</p><p><b> 目 錄</b></p><p> 1.設(shè)計目的
3、及要求1</p><p> 1.1 設(shè)計目的1</p><p> 1.2 設(shè)計要求1</p><p> 2 .設(shè)計方案及原理1</p><p> 2.1 設(shè)計原理...................................................................................
4、...................................1</p><p> 2.2 總設(shè)計思想2</p><p><b> 3.硬件設(shè)計3</b></p><p><b> 4.軟件設(shè)計3</b></p><p> 4.1 音調(diào)、節(jié)拍以及編碼的確定方法3</p&
5、gt;<p> 4.2 程序流程圖 4</p><p> 4.3 程序(匯編語言) 5</p><p> 5. 總結(jié)….............................................................................................................................
6、.......8</p><p> 參考文獻…….............................................................................................................................8</p><p><b> 1.設(shè)計目的及要求</b></p
7、><p><b> 1.1設(shè)計目的 </b></p><p> 隨著電子技術(shù)及計算機技術(shù)的發(fā)展,單片機在日常生活中的應(yīng)用越來越廣泛,同時也顯現(xiàn)出了它的重要性,尤其在一些特殊的場合更是不可代替。為熟悉單片機的應(yīng)用。要求設(shè)計一個基于STC89C52單片機的帶彩燈外觀的音樂盒。</p><p><b> 1.2 設(shè)計要求</b&g
8、t;</p><p> 音樂盒有三個按鍵key1,key2,key3,其中key1控制彩燈的樣式,本設(shè)計有六種彩燈花樣,每按一次變換一種樣式。Key2控制音樂播放,本設(shè)計有五首音樂,每按一次變換到下一首,同時八路LED燈隨音調(diào)不同而閃爍。Key3為總開關(guān)用于關(guān)閉音樂跟彩燈。</p><p><b> 2.設(shè)計方案及原理</b></p><p&g
9、t;<b> 2.1設(shè)計原理 </b></p><p> 音調(diào)之所以不同是因為頻率的不同。根據(jù)每個音調(diào)的頻率單片機內(nèi)部的定時計數(shù)器來產(chǎn)生相應(yīng)的音樂脈沖。只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O口反相,然后重復(fù)計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。利用STC
10、89C52的內(nèi)部定時計數(shù)器工作在方式1下,改變初值TH0及TL0以產(chǎn)生不同頻率。 此外結(jié)束符和休止符可以分別用代碼0xff和0x00來表示,若查表結(jié)果為0xff,則表示曲子終了;若查表結(jié)果為0x00,則產(chǎn)生相應(yīng)的停頓效果。 </p><p> 例如頻率為523Hz,其周期T=1/523=1912us,定時時間為1912/2=956us因此只要令計數(shù)器計時956us/1
11、us=956次(若晶振頻率為6MHZ),在每次計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。根據(jù)計數(shù)次數(shù)就可算出計數(shù)初值。 要產(chǎn)生音樂光有音調(diào)是不行的,每個音調(diào)還有持續(xù)一定的時間。這可以用延時程序delay()來實現(xiàn)。因此每個音樂代碼有八位數(shù)字組成,高四位控制音調(diào),低四位通過延時程序?qū)υ撘粽{(diào)進行延時。通過子函數(shù)連續(xù)不斷的調(diào)用音樂代碼就產(chǎn)生了動聽的音樂。音調(diào)的頻率與時間都不同,讓DO、RE、MI、FA、SO、LA、
12、SI分別對應(yīng)八路LED燈中的一個,這樣播放音樂的同時就有LED燈對應(yīng)閃爍。</p><p> 2.2總體設(shè)計思想 </p><p><b> 圖1思路圖 </b></p><p> 如圖1所示按鍵部分有三個鍵,分別結(jié)于外部中斷P3.2/INT0,P3.3/INT1,及串行口P3.1/TXD上,P3.2每產(chǎn)生一次中斷co
13、unt1加一,根據(jù)count1的值來決定花樣燈的種類。P3.3每產(chǎn)生一次中斷count2加一,根據(jù)count2的數(shù)值來決定播放哪一首歌曲。P3.1接總開關(guān)的。播放音樂,及花樣燈均通過調(diào)用子程序來實現(xiàn)。八路LED燈燈接到P1口。揚聲器接到P3.7上。總體設(shè)計電路原理圖,如圖2。</p><p><b> 圖2原理圖</b></p><p><b> 3硬件
14、設(shè)計 </b></p><p> 電路由STC89C52八路LED燈,排阻,三個開關(guān),揚聲器及晶振組成,搭建如圖3。</p><p><b> 圖3硬件圖</b></p><p><b> 4.軟件設(shè)計</b></p><p> 在本程序中設(shè)置了一個標志——count1
15、,分別初始化為0。按鍵1使得count1在1~4之間切換。程序檢測count1的值,count1等于1時播放第一首歌曲,等于2時播放第二首。</p><p> 4.1 音調(diào)、節(jié)拍以及編碼的確定方法 </p><p> 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即
16、可,也就是“音調(diào)”和節(jié)拍表示一個音符唱多長的時間。 </p><p> 不同音高的樂音是用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個等份,每一個等份叫
17、一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,C–D、D–E、F–G、G–A、A–B兩音之間隔著一個黑鍵,他們之間的距離就是全音;E–F、B–C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上﹟號或者b號的叫變化音。﹟叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b叫降記音,表示在原來的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好
18、是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音R</p><p><b> 4.2 程序流程圖</b></p><p><b> 4.3匯編語言程序<
19、/b></p><p><b> org 0000h</b></p><p><b> ajmp main</b></p><p> org 000bh </p><p><b> jmp tim0</b></p><p><b>
20、; org 0030h</b></p><p> main: ;主程序</p><p><b> setb p1.1</b></p><p><b> clr p1.4</b></p><p><b> setb p3.0</b></p>&
21、lt;p> mov tmod,#01h ;設(shè)定時方式</p><p> mov ie,#82h ;開中斷</p><p><b> start0:</b></p><p> mov 30h,#00h ; </p><p> next:mov a,30h</p><p> mov
22、dptr,#table</p><p> movc a,@a+dptr ;查表取音調(diào)和節(jié)拍</p><p> mov r2,a </p><p> jz end0 ;為零,不進行處理</p><p> anl a,#0fh</p><p> mov r5,a ;將節(jié)拍存入R5</p><
23、p><b> mov a,r2</b></p><p><b> swap a</b></p><p> anl a,#0fh </p><p> jnz sing ;根據(jù)音調(diào)決定是否演奏</p><p><b> clr tr0</b></p>
24、<p><b> jmp d1</b></p><p> sing:dec a</p><p> mov 22h,a ;將音調(diào)存入22H.</p><p><b> rl a</b></p><p> mov dptr,#table1</p><p>
25、movc a,@a+dptr ;根據(jù)音調(diào)決定定時器初值。</p><p> mov th0,a ;放入TH0</p><p><b> mov 21h,a</b></p><p><b> mov a,22h</b></p><p><b> rl a</b></
26、p><p><b> inc a</b></p><p> movc a,@a+dptr</p><p> mov tl0,a ;放入TL0</p><p><b> mov 20h,a</b></p><p> setb tr0 ;啟動定時</p>&l
27、t;p> d1: call delay</p><p><b> inc 30h</b></p><p><b> jmp next</b></p><p> end0:clr tr0</p><p> jmp start0</p><p> tim0: ;
28、定時器中斷服務(wù)程序</p><p><b> push acc</b></p><p><b> push psw</b></p><p> mov tl0,20h ;重賦初值</p><p> mov th0,21h</p><p><b> cpl p
29、1.7</b></p><p><b> pop psw</b></p><p><b> pop acc</b></p><p> retidelay:mov r7,#02h ;延時子程序</p><p> d2: mov r4,#130</p><p>
30、; d3: mov r3,#248 </p><p> djnz r3,$ </p><p> djnz r4,d3</p><p> djnz r7,d2</p><p> djnz r5,delay </p><p><b> ret</b></p><p&
31、gt; table1: ;決定音調(diào)的定時初值。</p><p> dw 64260,64400,64524,64580</p><p> dw 64684,64777,64820,64898 </p><p> dw 64968,65030,65</p><p><b> ;1</b></p>&
32、lt;p> db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h</p><p><b> ;2</b></p><p> db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,
33、04h</p><p><b> ;3</b></p><p> db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h</p><p><b> ;4</b></p><p> db 82h,01h,81
34、h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00 </p><p><b> end</b></p><p><b> 5. 總結(jié) </b></p><p> 單片機的設(shè)計至今為止已經(jīng)進入了令人鼓舞的階段,在進行了
35、長達一個學期的時間的摸索與實驗,使我們不僅僅是對于單片機入門軟件與硬件的常用設(shè)計與功能,還使我們對于一項設(shè)計研究的制作過程所需要的詳細步驟和具體的實現(xiàn)方法的力度的掌握。 </p><p> 當然在這次寶貴的設(shè)計活動中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從
36、一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個最終目的下,隨著對單片機這門學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內(nèi)被實現(xiàn)。 </p><p> 總之,這次設(shè)計從軟件編寫、調(diào)試到軟硬件聯(lián)機調(diào)試,我們傾注了大量的時間和心血。真是曾經(jīng)為程序的編寫而冥思苦想過,曾經(jīng)為無法找出錯誤而郁悶苦惱過,也曾經(jīng)為某一功能不能實現(xiàn)而猶豫彷徨過,但最終我們
37、完成設(shè)計了。</p><p><b> 參考文獻</b></p><p> 1. 張友德 趙志英 涂時亮.單片微型機-原理、應(yīng)用與實驗【M】.上海:復(fù)旦大學出版</p><p><b> 社.2006.10</b></p><p> 2. 王用倫.微機原理及接口技術(shù)【M】.北京大學出版. 2
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機音樂盒課程設(shè)計
- 單片機課程設(shè)計--音樂盒
- 音樂盒單片機課程設(shè)計
- 單片機音樂盒課程設(shè)計
- 單片機音樂盒課程設(shè)計
- 單片機課程設(shè)計---數(shù)字音樂盒
- 單片機課程設(shè)計--- 數(shù)字音樂盒
- 單片機原理課程設(shè)計---音樂盒的設(shè)計
- 基于51單片機音樂盒課程設(shè)計
- 單片機課程設(shè)計-數(shù)字音樂盒設(shè)計
- 單片機課程設(shè)計-基于單片機的數(shù)字音樂盒設(shè)計
- 課程設(shè)計-基于單片機的音樂盒的設(shè)計
- 單片機課程設(shè)計《數(shù)字音樂盒的設(shè)計》
- 電子音樂盒(單片機課程設(shè)計)
- 電子音樂盒(單片機課程設(shè)計)
- 單片機課程設(shè)計--數(shù)字音樂盒的設(shè)計
- 單片機音樂盒設(shè)計
- 單片機課程設(shè)計--基于單片機的數(shù)字音樂盒
- 單片機課程設(shè)計報告--電子音樂盒的設(shè)計
- 電子音樂盒單片機課程設(shè)計
評論
0/150
提交評論