電子音響報(bào)告(完整版)_第1頁(yè)
電子音響報(bào)告(完整版)_第2頁(yè)
電子音響報(bào)告(完整版)_第3頁(yè)
電子音響報(bào)告(完整版)_第4頁(yè)
電子音響報(bào)告(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、專(zhuān)業(yè)綜合實(shí)驗(yàn)報(bào)告-單片機(jī)原理及應(yīng)用專(zhuān)業(yè):電子信息工程班級(jí):110406姓名:陳瑩學(xué)號(hào):20111606指導(dǎo)教師:宋宇2014年7月18日 電子音響實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?了解計(jì)算機(jī)發(fā)出不同音調(diào)聲音的編程方法。二、實(shí)驗(yàn)內(nèi)容用定時(shí)器產(chǎn)生不同頻率的方法,組成的樂(lè)譜由單片機(jī)進(jìn)行信息處理,經(jīng)過(guò)放大后用8031的P1.0口輸出音樂(lè)。3、 預(yù)備知識(shí) 1.單片機(jī)音樂(lè)演奏控制通過(guò)控制內(nèi)部定時(shí)器T0來(lái)產(chǎn)生不同頻率的方波,從而驅(qū)動(dòng)喇叭發(fā)出不同音符的聲音。樂(lè)譜中每一個(gè)音符都與某一個(gè)特定的頻率相對(duì)應(yīng)。發(fā)音的長(zhǎng)短時(shí)間用定時(shí)器T1來(lái)控制。把譜中的音符對(duì)應(yīng)的頻率轉(zhuǎn)換成定時(shí)器T0常數(shù),相應(yīng)的節(jié)拍變?yōu)門(mén)l常數(shù)。通過(guò)對(duì)歌譜編碼,來(lái)到不同

2、的表里查出對(duì)應(yīng)的調(diào)式、速度、聲音的頻率及節(jié)拍,然后根據(jù)所查的結(jié)果到相對(duì)應(yīng)的存儲(chǔ)器中取出這些常數(shù)送入定時(shí)器。(1)要產(chǎn)生音頻信號(hào),只要知道某一音頻的周期(1/頻率),然后將此周期除以2即為半周期的時(shí)間,利用定時(shí)器定時(shí)產(chǎn)生半周期時(shí)間,計(jì)時(shí)到后反相輸出,重復(fù)此過(guò)程即得到此頻率的脈沖信號(hào)。(2)讓定時(shí)器工作在定時(shí)方式,改變定時(shí)時(shí)間常數(shù)TH0及TL0,以產(chǎn)生不同的頻率。(3)把整首歌曲的樂(lè)譜信息存儲(chǔ)在單片機(jī)數(shù)據(jù)存儲(chǔ)區(qū)中一段連續(xù)的區(qū)域。每個(gè)音符使用一個(gè)字節(jié),字節(jié)的高四位代表音符的高低,低四為代表音符的節(jié)拍。但如果1拍為0.4秒,1/4拍是0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4節(jié)拍為1DE

3、LAY,則1拍應(yīng)為4DELAY,以此類(lèi)推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù)。演奏時(shí)連續(xù)讀取音符數(shù)據(jù),在程序中分析處理后輸出相應(yīng)的脈沖信號(hào)。2. 51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱(chēng)。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門(mén)的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。當(dāng)前常用的5

4、1系列單片機(jī)主要產(chǎn)品有:*Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;*ATMEL的:89C51、89C52、89C2051等;*Philips、華邦、Dallas、Siemens(Infineon)等公司的許多產(chǎn)品 8031和8051是最常見(jiàn)的51系列單片機(jī),是inter公司早期的成熟的單片機(jī)產(chǎn)品,應(yīng)用范圍涉及到各行各業(yè)。8031是有8個(gè)部件組成,即CPU,時(shí)鐘電路,數(shù)據(jù)存儲(chǔ)器,并行口(P0P3)串行口,定時(shí)計(jì)數(shù)器和中斷系統(tǒng),它們均由單一總線(xiàn)連接并被集成在一塊半導(dǎo)體芯片上,即組成了單片微型計(jì)算機(jī)。中央處理器是8031的核心,它的功能是產(chǎn)生控制信號(hào),

5、把數(shù)據(jù)從存儲(chǔ)器或輸入口送到CPU或CPU數(shù)據(jù)寫(xiě)入存儲(chǔ)器或送到輸出端口。還可以對(duì)數(shù)據(jù)進(jìn)行邏輯和算術(shù)的運(yùn)算。8031內(nèi)部有一個(gè)頻率最大為12MHZ的時(shí)鐘電路,它為單片機(jī)產(chǎn)生時(shí)鐘序列,需要外接石英晶體做振蕩器和微調(diào)電容。內(nèi)部存儲(chǔ)器可分做程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,但在8031中無(wú)片內(nèi)程序存儲(chǔ)器。8031有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成定時(shí)的方式和計(jì)數(shù)的方式,但只能用其中的一個(gè)功能,以定時(shí)或計(jì)數(shù)結(jié)果對(duì)計(jì)算機(jī)進(jìn)行控制。8031有五個(gè)中斷源,既外部中斷兩個(gè),定時(shí)計(jì)數(shù)中斷兩個(gè),串行中斷一個(gè),全部的中斷分為高和低的兩個(gè)輸出級(jí)。8031的制作工藝為HMOS,采用40管腳雙列直插DIP封裝。

6、8031有一個(gè)全雙工串行口,這個(gè)串行口既可以在程序下把CPU的8位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位的從發(fā)送數(shù)據(jù)線(xiàn)發(fā)送出去,也可以把串行數(shù)據(jù)接受進(jìn)來(lái)變成并行數(shù)據(jù)給CPU,而且這種串行發(fā)送和接收可以單獨(dú)進(jìn)行也可以同時(shí)進(jìn)行。8031的串行發(fā)送和接收利用了P3口的第二功能,利用P3.1做串行數(shù)據(jù)接收線(xiàn),串行接口的電路結(jié)構(gòu)還包括了串行口控制寄存器SCON,電源及波特率選擇寄存器PCON和串行緩沖寄存器SBUF,他們都屬于SFR,PCON和SCON用于設(shè)置串行口工作方式和確定數(shù)據(jù)發(fā)送和接收,SBUF用于存放欲發(fā)送的數(shù)據(jù)起到緩沖的作用。綜上原因,故本次實(shí)驗(yàn)中,采用8031單片機(jī) 3.本次設(shè)計(jì),編寫(xiě)軟件使用的是匯

7、編語(yǔ)言。因?yàn)閰R編語(yǔ)言是面向機(jī)器硬件的語(yǔ)言,助記符指令和機(jī)器指令一一對(duì)應(yīng),用匯編語(yǔ)言編寫(xiě)的程序效率高,占用存儲(chǔ)空間小,運(yùn)行速度快,用匯編語(yǔ)言能編寫(xiě)出最優(yōu)化的程序。能直接管理和控制硬件設(shè)備(功能部件),它能處理中斷,也能直接訪(fǎng)問(wèn)存儲(chǔ)器及I/O接口電路。四、實(shí)驗(yàn)線(xiàn)路圖5、 實(shí)驗(yàn)步驟1.要輸出某一曲調(diào),必須知道此曲調(diào)所包括的音符以及每個(gè)音符所占的節(jié)拍。一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。一個(gè)音符用一個(gè)

8、字節(jié)的代碼表示,字節(jié)高四位代表音符高低,低四位代表音符的節(jié)拍數(shù)。要產(chǎn)生音頻信號(hào),只要算出該音頻的周期。利用定時(shí)器定時(shí)半個(gè)周期時(shí)間,每當(dāng)定時(shí)時(shí)間到達(dá)就將輸出音頻的P1.0反相,然后重復(fù)定時(shí)半個(gè)周期,再將P10反相,如此反復(fù)就可在P10引腳上得到該音頻信號(hào)。只要改變計(jì)數(shù)初值THO、TLO就可以產(chǎn)生不同的音頻信號(hào)。(1)先找出譜的音符,然后由表1建立T值表的順序,如表2所列;(2)把T值表放在程序中的TAB處;(3)節(jié)拍碼與節(jié)拍數(shù)的關(guān)系如表3所列;(4)簡(jiǎn)譜碼(音符) 為高四位,節(jié)拍碼(節(jié)拍數(shù))為低四位,音符節(jié)拍碼放在程序 的“TAB”;(5)各調(diào)值1/4節(jié)拍的時(shí)間設(shè)定如表4所列。2. 計(jì)數(shù)值確定通

9、過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。以標(biāo)準(zhǔn)音高A為例:A的頻率f=440Hz,其對(duì)應(yīng)的周期為:T=1/f=1/440=2272s由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t=T/2=2272/2=1136s這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定:t=12*(TALLTHL)/f0 TH=

10、THL/256=(TALLt*f0/12)/256 TL=THL%256=(TALLt*f0/12)%256將t=1136s代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的預(yù)置初值為:TH440Hz=(655361136*12/12)/256=FBHTL440Hz=(655361136*12/12)%256=90H 根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的預(yù)置初值。 計(jì)數(shù)值N=65536一Fosc122Fo,F(xiàn)osc為晶振頻率,F(xiàn)o為輸出音頻信號(hào)的頻率。程序運(yùn)行時(shí),從代碼表TAB

11、(存放音符節(jié)拍碼)中依次讀出各音符代碼,根據(jù)高位的簡(jiǎn)碼號(hào)從TAB(存放發(fā)音符的計(jì)數(shù)值)表中取出相應(yīng)的計(jì)數(shù)值送THO、TLO再根據(jù)低位的節(jié)拍數(shù)確定每個(gè)音符相應(yīng)的延時(shí)時(shí)間。計(jì)算舉例:設(shè)K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。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

12、=65059六實(shí)驗(yàn)程序1.程序框圖: 開(kāi)始 T0初始化,開(kāi)中斷,TAB2送DPTR高4位放入A中低4位放入R3中 高低位互換 啟動(dòng)T0工作 停止T0工作 給T0重裝初值 P1.0取反 中斷返回2.演奏天空之城程序: ORG 0000H AJMP MAIN ;轉(zhuǎn)到主程序 ORG 000BH ;T0的中斷入口地址 LJMP IT0P ;轉(zhuǎn)到T0的中斷服務(wù)子程序 ORG 0020H ;主程序入口地址 MAIN: MOV TMOD,#01H ;選擇T0工作在方式1 MOV IE,#82H ;允許T0中斷 START: MOV 30H,#00H ;取譜指針初始化(這里設(shè)30H為取譜指針) LOOP: M

13、OV A,30H ;將取譜指針裝入A MOV DPTR,#TAB2 ;到TAB2處,取樂(lè)譜碼 MOVC A,A+DPTR ;取樂(lè)譜碼 MOV R2,A ;將取到的樂(lè)譜碼暫存于R2 JZ END0 ;判斷取到的是否為結(jié)束碼00H ANL A,#0FH ;取低4位(節(jié)拍碼) MOV R3,A ;將節(jié)拍碼存入R3 MOV A,R2 ;將取到的樂(lè)譜碼重裝入A中 ANL A,#0F0H ;取高4位(音符碼) JNZ SING ;判斷取到的音符碼是否為0(休止符) CLR TR0 ;停止T0,不發(fā)音 SJMP NEXT ;轉(zhuǎn)至延時(shí)子程序 SING: SWAP A ;高低位互換 DEC A ;取到的音符碼減

14、1 RL A ;A中數(shù)值乘2 MOV R4,A ;將A中數(shù)值暫存于R4 MOV DPTR,#TAB1 ;到TAB1處取簡(jiǎn)譜碼(計(jì)數(shù)初值) MOVC A,A+DPTR ;取高位字節(jié) MOV TH0,A ;將取到的高位字節(jié)裝入TH0 MOV 21H,A ;將取到的高位字節(jié)存入21H單元 MOV A,R4 ;將R4中的數(shù)值重裝入A中 INC DPTR ;DPTR增1 MOVC A,A+DPTR ;取低位字節(jié) MOV TL0,A ;將取到的低位字節(jié)裝入TL0 MOV 20H,A ;將取到的低位字節(jié)存入20H單元 SETB TR0 ;啟動(dòng)T0 NEXT: LCALL DELAY ;節(jié)拍延時(shí) DJNZ R

15、3,NEXT INC 30H ;取譜指針增1 LJMP LOOP ;取下一個(gè)樂(lè)譜碼 END0: CLR TR0 ;停止T0 LJMP START ;重復(fù)循環(huán)播放 IT0P: MOV TL0,20H ;給T0重裝初值 MOV TH0,21H CPL P1.0 ;將P1.0取反,以產(chǎn)生音頻脈沖 RETI DELAY: MOV R7,#02 ;1/4節(jié)拍的延時(shí)子程序125ms(4/4拍的曲子) DELAY1: MOV R6,#125DELAY2: MOV R5,#248 DJNZ R5,$ DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET TAB1: ;簡(jiǎn)譜碼表 DW 64777,

16、64820,64860,64898,64934 ;M3 M4 M#4 M5 M#5 DW 64968,65030,65058,65110,65157 ;M6 M7 H1 H2 H3 DW 65178,65217,65252 ;H4 H5 H6 TAB2: ;歌曲天空之城的樂(lè)譜 DB 0CH,62H,72H,86H,72H,84H,0A4H ;例如,0CH表示休止符,占3拍 DB 7CH,14H,66H,42H,64H,84H,48H ;66H表示中音6,占1拍半,其他以此類(lèi)推 DB 04H,14H,26H,12H,24H,84H,18H DB 02H,86H,76H,36H,7CH,04H,6

17、2H DB 72H,86H,72H,84H,0A4H,78H,04H DB 14H,66H,42H,64H,84H,4CH,02HDB 12H,24H,82H,74H,86H,94H,0A2HDB 86H,04H,82H,72H,64H,74H,54HDB 68H,04H,82H,92H,0A6H,92H,0A4H DB 0C4H,98H,04H,44H,86H,72H,84HDB 0ACH,08H,62H,72H,84H,74H,94HDB 86H,46H,0A2H,92H,88H,02H,82HDB 94H,82H,96H,0C4H,0A8H,04H,0A4HDB 0D8H,0C8H,0A2H,92H,88H,02H,82H DB 94H,82H,96H,74H,68H,04H,62H DB 72H,68H,68HDB 0CH;曲子最后靜音3拍DB 00H;結(jié)束碼 END七實(shí)驗(yàn)總結(jié)這次實(shí)驗(yàn)對(duì)我來(lái)說(shuō)是一次不小的挑戰(zhàn),因?yàn)槲也欢畼?lè)譜,所以剛開(kāi)始對(duì)這個(gè)實(shí)驗(yàn)一點(diǎn)頭緒也沒(méi)有。后來(lái)我利用周末時(shí)間把樂(lè)譜給簡(jiǎn)單地學(xué)習(xí)了一下,現(xiàn)在能看懂一般曲子的簡(jiǎn)譜,并上

溫馨提示

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

評(píng)論

0/150

提交評(píng)論