電子發(fā)聲設(shè)計實(shí)驗(yàn)_第1頁
電子發(fā)聲設(shè)計實(shí)驗(yàn)_第2頁
電子發(fā)聲設(shè)計實(shí)驗(yàn)_第3頁
電子發(fā)聲設(shè)計實(shí)驗(yàn)_第4頁
電子發(fā)聲設(shè)計實(shí)驗(yàn)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、11 電子發(fā)聲設(shè)計實(shí)驗(yàn) 1.1 實(shí)驗(yàn)內(nèi)容根據(jù)實(shí)驗(yàn)提供的音樂頻率表和時間表,編寫程序控制8254,使其輸出連接到揚(yáng)聲器上能發(fā)出相應(yīng)的樂曲。1.2 實(shí)驗(yàn)原理一個音符對應(yīng)一個頻率,將對應(yīng)一個音符頻率的方波通到揚(yáng)聲器上,就可以發(fā)出這個音符的聲音。將一段樂曲的音符對應(yīng)頻率的方波依次送到揚(yáng)聲器,就可以演奏出這段樂曲。利用 8254 的方式 3“方波發(fā)生器”,將相應(yīng)一種頻率的 計數(shù)初值寫入計數(shù)器,就可產(chǎn)生對應(yīng)頻率的方波。計數(shù)初值的計算如下:計數(shù)初值=輸入時鐘十輸出頻例如輸入時鐘采用 1MHz 要得到 800Hz 的頻率,計數(shù)初值即為 1000000 十 800。音符與頻率對照關(guān)系如 表 1 所示。對于每一個

2、音符的演奏時間,可以通過軟件延 時來處理。首先確定單位延時時間程序(根據(jù) CPU 勺頻率不同而有所變化)。然 后確定每個音符演奏需要幾個單位時間,將這個值送入DL 中,調(diào)用 DALLY 子程序即可。音符與頻率對照表單閔Hz)下面提供了樂曲友誼地久天長實(shí)驗(yàn)參考程序。頻率表和時間表是-對應(yīng)的,頻率表的最后一項(xiàng)為 0,作為重復(fù)的標(biāo)志。根據(jù)頻率表中的頻率算出對應(yīng)的計數(shù)初值,然后依次寫入8254 的計數(shù)器。將時間表中相對時間值帶入延時程序來得到音符演奏時間。實(shí)驗(yàn)參考程序流程如 圖 1所示。1.3 實(shí)驗(yàn)步驟1. 參考圖 2 所示連接實(shí)驗(yàn)線路;2. 編寫實(shí)驗(yàn)程序,經(jīng)編譯、連接無誤后裝入系統(tǒng);3. 運(yùn)行程序,

3、聽揚(yáng)聲器發(fā)出的音樂是否正確。ABCDEFGABCDEFGA A BCDEBCDE FGFG22124813114716517519624827814716518519622112441 4即262294330350333495556294330371393441A A BCDEBCDE FGFG2 2 OS-91O6OS-91O68 8 _y_y OGOG112112背珞爰700700翹2222S S4 4百2 2 0 04949707045232824523282慮霜11111 165693O124S2LS465693O124S2LS41&1E1&1E35H35H121312

4、13141421.4 程序代碼1.4.1 第一個程序IOY0EQU 0600HMY8254_COUNT0 EQU IOY0+00H;8254計數(shù)器0 端口地址MY8254_COUNT1 EQU IOY0+02H;8254計數(shù)器1 端口地址MY8254_COUNT2 EQU IOY0+04H;8254計數(shù)器2 端口地址MY8254_MODEEQU IOY0+06H;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUPSTACK1 ENDSDATA SEGMENTFREQ_LIST DW 196,262,262,262,330,294,262,294,330,26

5、2,262,330,393;頻率表DW 441,441,393,330,330,262,294,262,294,330,262,221,221,196DW 262,441,393,330,330,262,294,262,294,441,393,330,330,393DW 441,525,393,330,330,262,294,262,294,330,262,221,221,196,262,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 表DB 12, 4, 6,2, 4, 4, 6,2, 4, 4,6, 2, 4, 4DB12,4,6,2

6、,4, 4,6,2,4, 4,6, 2,4, 4DB 12, 4, 6,2, 4, 4, 6,2, 4, 4,6, 2, 4, 4, 12DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8254_MODE初始化 8254 工作方式定時器 0、方式 3OUT DX,ALBEGIN: MOV SI,OFFSET FREQ_LISTMOV DI,OFFSET TIME LIST系統(tǒng)總線系統(tǒng)總線D0illGATEQD7CLKOA0AlWROUTORDC3&254單元vcc時間裝入頻率表

7、起始地址裝入時間表起始地址MOV AL,36HICiF容rov3o0圖2O 7也M-0-0- CXK系統(tǒng)總轡SPK電子發(fā)蘆單元3PLAY:MOV DX,0FH;MOV AX,4240HDIV WORD PTR SI ;MOV DX,MY8254_COUNTOOUT DX,AL;MOV AL,AHOUT DX,ALMOV DL,DI;CALL DALLYADD SI,2INC DICMP WORD PTR SI,0JE BEGINJMP PLAYDALLY PROC;D0:MOV CX,0010HD1:MOV AX,0FF0HD2:DEC AXJNZ D2LOOP D1DEC DLJNZ D0R

8、ETDALLY ENDPCODE ENDSEND START1.4.2 第二個程序【實(shí)驗(yàn)內(nèi)容】按下鍵盤上的數(shù)字鍵 1 7,使得揚(yáng)聲器發(fā)出音樂樂譜的 1-7 音【實(shí)驗(yàn)代碼】IOY0EQU 0600HMY8254_COUNT0 EQU IOY0+00H;8254計數(shù)器0 端口地址MY8254_COUNT1 EQU IOY0+02H;8254計數(shù)器1 端口地址MY8254_COUNT2 EQU IOY0+04H;8254計數(shù)器2 端口地址MY8254_MODEEQU IOY0+06H;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSD

9、ATASEGMENT輸入時鐘為 1MHz 1M = 0F4240H取出頻率值計算計數(shù)初值,0F4240H /輸出頻率裝入計數(shù)初值取出演奏相對時間,調(diào)用延時子程序判斷是否到曲末?延時子程序4table1 DW262,294,330,340,393,441,495 info db0ah,0dh,Please in put an integer(17):$DATACODEENDSSEGMENTASSUME CS:CODE,DS:DATA5START: MOV AX,DATAMOV DS,AXMOV DX,MY8254_MODEMOV AL,36H;OUT DX,ALPLAY:mov si,offse

10、t table1 movdx,offset info movah,09h int 21hmov ah,01h int 21h subal,30h xor ah,ah cmpal,0h jz done add ax,axadd si,ax dec si dec siMOV DX,0FH;MOV AX,4240HDIV WORD PTR SI;MOVDX,MY8254_COUNTO OUTDX,AL;MOV AL,AHOUT DX,ALMOV DL,01h;CALL DALLY JMP PLAYDALLYPROC;D0:MOV CX,0010HD1:MOV AX,0FF0HD2:DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALLY ENDPdone:CODE ENDS

溫馨提示

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

最新文檔

評論

0/150

提交評論