單片機設(shè)計項目_第1頁
單片機設(shè)計項目_第2頁
單片機設(shè)計項目_第3頁
單片機設(shè)計項目_第4頁
單片機設(shè)計項目_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機設(shè)計項目報告書項目名稱:單片機奏樂項目設(shè)計班級:07測控二班項目小組成員:沈少龍,劉珍漢,王曉歐,吳文雅單片機設(shè)計項目報告書設(shè)計項目題目:單片機奏樂 項目概述:利用51單片機內(nèi)部TO的溢出中斷編程方法,編制一首樂曲,并播放 設(shè)計思路:1.工作原理通過控制單片機定時器的定時時間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大后驅(qū)動蜂鳴器發(fā)出不同音節(jié)的聲音。用軟件延時來控制發(fā)音時間的 長短,控制節(jié)拍。把樂譜中的音符和相應(yīng)的節(jié)拍變換為定時常數(shù)和延 時常數(shù),作為數(shù)據(jù)表格存放在存儲器當(dāng)中,由程序得到定時常數(shù)和延 時常數(shù),分別用來控制定時器產(chǎn)生的脈沖頻率和發(fā)出該音脈沖的持續(xù) 時間。樂曲中的音符,頻率及定時常數(shù)之間對應(yīng)

2、關(guān)系可制成表格,如 表1-1所列。2.音調(diào)和節(jié)拍的確定方法一般說來,單片機演奏音樂基本都是單音頻率, 它不包含相應(yīng)幅度 的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因 此單片機奏樂只需弄清楚兩個 概念即可,也就是音調(diào)”和節(jié)拍”音 調(diào)表示一個音符唱多咼的頻率,節(jié)拍表示一個音符唱多長的時間。在音樂中所謂 音調(diào)”其實就是我們常說的音高”在音樂中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個聲音信 號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程,在 音樂中1 (do)與i正好相差一個倍頻程,在音樂學(xué)中稱它相差 一個八度音。在一個八度音內(nèi),有 12個半音

3、。以1 i八音區(qū)為例, 12 個半音是:1 # 1、# 1 2、2 # 2、# 2 3、34、4# 4, # 45、5 一# 5、#56、6# 6# 67、7i。這 12 個音階的分 度基本上是以對數(shù)關(guān)系來劃分的。如果我們知道了這十二個音符的音 高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他 音符基本音調(diào)的頻率。知道了一個音符的頻率后,怎樣讓單片機發(fā)出相應(yīng)頻率的聲音 呢? 一般說來,常采用的方法就是通過單片機的定時器定時中斷,將 單片機上對應(yīng)蜂鳴器的I/O 口來回取反,或者說來回清零,置位,從 而讓蜂鳴器發(fā)出聲音,為了讓單片機發(fā)出不同頻率的聲音,我們只需 將定時器予置不同的定時值

4、就可實現(xiàn)。那么怎樣確定一個頻率所對應(yīng) 的定時器的定時值呢?以標(biāo)準(zhǔn)音高 A為例:A的頻率f = 440 Hz,其對應(yīng)的周期為:T = 1/ f = 1/440 =2272 卩 st = T/2 = 2272/2 = 1136這個時間t也就是單片機上定時器應(yīng)有的中斷觸發(fā)時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數(shù)脈沖。音符的節(jié)拍我們可以舉例來說明。在一張樂譜中,我們經(jīng)常會看到這樣的表 達式,如 仁C、1=G 等等,這里1=C,1=G表示樂譜的曲調(diào),和我們前面所 談的音調(diào)有很大的關(guān)聯(lián),、就 是用來表示節(jié)拍的。以 為例加以說明,它表示 樂譜中以四分音符為節(jié)拍,每

5、一小結(jié)有三拍。比如 :1=C 3/4123456其中1、2為一拍,3、4、5為一拍,6為一拍共三拍。1、2的時長為四 分音 符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分 音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音 符長。 那么一拍到底該唱多長呢? 一般說來,如果樂曲沒有特殊說明,一拍的時長大約 為400 500ms我們以一拍的時長為400ms為 例,則當(dāng)以四分音符為節(jié)拍時, 四分音符的時長就為400ms八分 音符的時長就為200ms十六分音符的時長就 為100ms可見,在單片機上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時

6、長的延時程序, 比如說以十六分音符的時長為基 本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調(diào)用一次延時 程序,如果它為八分音符,則只需調(diào)用二次延時程序,如果它為四分音符,則只 需調(diào)用四次延時程序,依次類推。通過上面關(guān)于一個音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機上實現(xiàn)演奏音樂了。具體的實現(xiàn)方法為:將樂譜中的每個音符的音調(diào)及節(jié)拍變換成相 應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取 出一個音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相 關(guān)參數(shù),如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放 整 個樂曲。另外,對于樂曲中的休止

7、符,一般將其音調(diào)參數(shù)設(shè)為FFH FFH其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結(jié)束用節(jié)拍參數(shù)為00H來表示。表1-1音符,頻率及定時常數(shù)對應(yīng)關(guān)系C調(diào)音 符低1低2低3低4低5低6低7頻率262294330349392440494定時值F894HF95CHFA1AHFA6AHFB00HFB8CHFC0EHC調(diào)音 符1234567頻率523587659698784880988定時值FC4AHFCAEH:FD08HFD30HFD80HFDC6HP FD02HC調(diào)音 符高1高2高3高4高5高6高7頻率10461175r 1318139715681760P 1967定時值FE2AHFE5CHFE

8、84HFE98HFEC0HFEE8HFF06H實驗器件:1) PC機,WAVE600仿真軟件2)單片機應(yīng)用與仿真開發(fā)實驗臺3)蜂鳴器 放大器軟件設(shè)計: 本程序?qū)崿F(xiàn)播放三首歌曲,并設(shè)有暫停鍵和復(fù)位鍵和選曲鍵。spk bit P2.5;定義蜂鳴器編號* Jorg 0000hsjmp startorg 0003hsjmp int0org 000bhsjmp timeorg 0030hstart:mov sp,#60hmov tmod,#01h ;設(shè)定時器方式 1clr it0 ;外部中斷電平觸發(fā)setb et0 ;開啟 T0 計數(shù)器setb ex0 ;開外部中斷setb ea ;開總中斷mov a,

9、#0ffhmov p2,al1:mov a,p2cjne a,#0ffh,l2sjmp l1l2: jnb p2.0,l3;按下 p2.0 播放 Happy Birthdayjnb p2.1,l4; 按下 p2.1 播放 Eyes on mejnb p2.2,l5; 按下 p2.2 播放 北京歡迎你sjmp startl4:mov dptr,#datsjmp loopl5:mov dptr,#ttsjmp loopl3:mov dptr,#table ;存表首地址loop: clr a ;清零movc a,a+dptr; 查表mov r1,a ;定時器高 8 位存 R1inc dptr ;指針

10、加一clr a ;清零movc a,a+dptr; 查表mov r0,a ;定時器低 8 位存 r0orl a,r1;jz next1;mov a,r0 anl a,r1;cjne a,#0ffh,next ; sjmp start ; next: mov th0,r1 ;mov tl0,r0 ;setb tr0 ; sjmp next2 ; next1:clr tr0 next2:clr a inc dptr movc a,a+dptr mov r2,a loop1:acall delay ;djnz r2,loop1 inc dptr;jmp loop time: mov th0,r1mo

11、v tl0,r0 cpl spk mov a,p1 cpl a mov p1,a reti ; delay:mov r7,#02;d2:mov r6,#187 d3:mov r5,#248 djnz r5,$ djnz r6,d3 djnz r7,d2 ret進行或運算 如果為零則為休止符進行與運算如果為FFH則樂曲結(jié)束從頭開始循環(huán)演奏 裝入高 8 位定時值 裝入低 8 位定時值啟動定時器T 0轉(zhuǎn)移至 next2 處; 關(guān)閉定時器停止發(fā)聲; 清零; 指針加一; 查表(延時常數(shù)); 延時常數(shù)存 R2 調(diào)用延時子程序; 循環(huán)次數(shù)指針加一; 轉(zhuǎn)移至 loop 處; 重裝定時值; 反相輸出中斷返回 延

12、時 187ms.* J; 外部中斷程序,實現(xiàn)暫停功能.*Jint0: clr tr0reti.*; 生日快樂.*table:db 0fdh,80h,03h,0fdh,80h,01hdb 0fdh,0c6h,04h,0fdh,80h,04hdb 0feh,2ah,04h,0fdh,02h,04hdb 00h,00h,04hdb 0fdh,80h,03h,0fdh,80h,01h db 0fdh,0c6h,04h,0fdh,80h,04h db 0feh,5ch,04h,0feh,2ah,04h db 00h,00h,04h db 0fdh 80h,03h,0fdh,80h,01h db 0feh

13、,0c0h,04h,0feh,84h,04h db 0feh,2ah,04h,0feh,02h,04h db 0fdh,0c6h,04h db 0feh,98h,03h,0feh,98h,01h db 0feh,84h,04h,0feh,2ah,04h db 0feh,5ch,04h,0feh,2ah,04h db 00h,00h,04h db 0ffh,0ffh.*J;Eyes on me.* Jdat:db 00h,00h,01h,0fbh,00h,04h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,08h,04h,0fdh,80h,02h db 0fdh,

14、08h,02h,0fdh,08h,04h, db 00h,00h,02h,00h,00h,02h db 00h,00h,02h,0fch,0aeh,02h db 0fdh,08h,02h,0fch,4ah,04h db 00h,00h,02h,0fbh,8ch,02h db 0fch,4ah,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fch,0aeh,02h db 00h,00h,02h,0fbh,00h,02h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,08h,04h,0fdh,80h,02h db 0feh,02h,02h,0f

15、eh,02h,03h db 00h,00h,03h,00h,00h,03h db 00h,00h,03h,0feh,02h,02h db 0feh,2ah,02h,0fdh,0c6h,03h db 0fdh,80h,02h,0fdh,0c6h,02h db 0fdh,80h,02h,00h,00h,03h db 00h,00h,03h,00h,00h,02h db 0fdh,80h,02h,0feh,2ah,04h db 0feh,2ah,04h,0feh,2ah,04h db 0feh,02h,03h,0fdh,0c6h,02h db 0fdh,0c6h,02h,0fdh,0c6h,02h

16、db 0fdh,80h,02h,0fdh,80h,04h db 00h,00h,03h,0fdh,08h,03h db 0fdh,80h,03h,0fdh,0c6h,04h db 0fdh,0c6h,02h,0fdh,80h,04h db 0fdh,30h,04h,0fdh,30h,02h db 0fch,0aeh,02h,0fdh,08h,04h db 00h,00h,04h,00h,00h,02h db 0fdh,08h,02h,0fdh,08h,04h db 0fch,0aeh,02h,0fdh,08h,02h db 0fdh,30h,04h,0fdh,08h,02h db 0fch,0

17、aeh,02h,0fch,0aeh,02h db 0fch,4ah,02h,0fch,4ah,04h db 00h,00h,04h,0fbh,8ch,02h db 0fch,4ah,02h,0fch,4ah,04h db 00h,00h,04h,0fch,4ah,02h db 0fch,0aeh,02h,0fdh,08h,02h db 0fdh,80h,03h,0fch,0aeh,04h db 00h,00h,04h,00h,00h,04h db 00h,00h,02h,0fdh,80h,02h db 0fdh,0c6h,04h,0fdh,0c6h,02h db 0fdh,80h,02h,0f

18、dh,30h,02h db 0fch,4ah,02h,0fdh,08h,02h db 0fdh,08h,02h,0fch,0aeh,02h db 0fch,0aeh,04h,00h,00h,04h db 00h,00h,02h,0fbh,00h,02h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,08h,02h,0fdh,30h,02h db 0fdh,80h,02h,0fdh,80h,04h db 00h,00h,04h,00h,00h,02h db 0fdh,80h,02h,0fdh,30h,02h db 0fch,4ah,02h,0fdh,80h,04h

19、db 00h,00h,04h,00h,00h,04h db 0fch,0aeh,02h,0fch,4ah,02h db 0fch,4ah,04h,00h,00h,04h db 00h,00h,04h,00h,00h,04h db 00h,00h,04h,00h,00h,04h db 0fch,4ah,02h,0fdh,08h,02h db 0fdh,08h,02h,0fdh,80h,02h db 0feh,02h,04h,0fdh,0c6h,02h db 0fdh,0c6h,04h,00h,00h,04h db 0fdh,0c6h,04h,00h,00h,04h db 0fdh,0c6h,02

20、h,0feh,02h,02h db 0feh,02h,02h,0feh,2ah,02h db 0fdh,0c6h,04h,0fdh,80h,01hdb 0fdh,80h,04h,00h,00h,04hdb 0fdh,0c6h,04h,00h,00h,04hdb 00h,00h,02h,0fdh,08h,02hdb 0fdh,08h,02h,0fdh,30h,02hdb 0fdh,80h,04h,0fdh,30h,02hdb 0fdh,30h,04h,00h,00h,04hdb 0fdh,30h,04h,00h,00h,04hdb 0fdh,30h,02h,0fdh,80h,02hdb 0fdh

21、,80h,02h,0fdh,0c6h,02hdb 0fdh,0c6h,04h,0fdh,80h,02h db 0fdh,80h,04h,00h,00h,04hdb 0ffh,0ffh *J; 北京歡迎你 *Jtt: db 0fdh,08h,02h,0fdh,80h,02hdb 0fdh,08h,02h,0fch,0aeh,02hdb 0fdh,08h,02h,0fch,0aeh,02hdb 0fdh,08h,04hdb 0fdh,08h,02h,0fch,0aeh,02hdb 0fbh,08ch,02h,0fch,04ah,02hdb 0fdh,08h,02h,0fch,0aeh,04hdb

22、00h,00h,01hdb 0fch,0aeh,02h,0fch,4ah,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fch,0aeh,02h,0fdh,08h,02hdb 0fdh,80h,02h,0fch,0aeh,02hdb 0fdh,08h,02h,0fdh,0c6h,02hdb 0fdh,80h,02h,0fbh,00h,02hdb 0fch,0aeh,02h,0fch,4ah,02hdb 00h,00h,03hdb 0fch,0aeh,02h,0fch,4ah,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fch,0aeh,02

23、h,0fdh,08h,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fdh,80h,02h,0fch,0aeh,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fdh,08h,02h,0fdh,0c6h,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fdh,80h,02h,0fdh,80h,02hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fdh,08h,02h,00h,00h,03hdb 0fbh,08ch,02h,0fch,4ah,02hdb 0fch,0aeh,02h,0fdh,08h,02

24、h db 0fbh,08ch,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fch,4ah,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,80h,02h,0fdh,0c6h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02hdb 0fbh,08ch,02h,0fch,4ah,02h db 0fbh,8ch,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,0fch,0aeh,02h db 0fbh,08ch,0

25、2h,0fch,4ah,02h db 0fdh,08h,02h 00h,00h,01h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,0fdh,80h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0feh 2ah,02h,0fdh,80h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,0c6h,02h,00h,00h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,0c6h,02hdb 0fbh,08ch,02h,0fch,4ah,02h db

26、0fdh,80h,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 00h,00h,03hdb 0fdh,08h,02h,0fdh,80h,02h db 0fdh,80h,02h,0fdh,08h,02h db 0fdh,80h,02h,0fdh,0c6h,02h db 0feh 2ah,02h,0feh,5ch,02h db 0fdh,80h,02h,0fdh,08h,02h db 0fch,0aeh,02h,0fdh,80h,02h db 0fdh,08h,02h,00h,00h,02h db 0fdh,08h,02h,0fdh,80h,02h db 0feh,2ah,02h,0fdh,80h,02h db 0fdh,0c6h,02h,0feh,2ah,02h db 0feh,5ch,02h,0feh,2ah,02h db 0fdh,80h,02h,0fdh,

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論