音頻發聲系統程序設計_第1頁
音頻發聲系統程序設計_第2頁
音頻發聲系統程序設計_第3頁
音頻發聲系統程序設計_第4頁
音頻發聲系統程序設計_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

經典word整理文檔,僅參考,雙擊此處可刪除頁眉頁腳。本資料屬于網絡整理,如有侵權,請聯系刪除,謝謝!摘要的發生系統。PC機的發聲原理是通過芯片,揚聲器燈期間構成,發聲程序部分由三個方面完成,即確定發聲頻率,確定音長,定時器調節。樂曲演奏部分主要是程序編寫部分。關鍵詞序引言PC機的發聲原理揚聲器定時器發聲信號發聲程就運用了很多的匯編知識,如指令,執行過程等等的。正文一.PC機的發聲原理IBM-PC系列機的主機箱裝有一個小揚聲器,系統板上的定時器8253(或8254)利用工作方式3產生一定頻率信號,通過可編程的并行外圍接口芯片8255(或8255A)控制其發音。揚聲器的控制驅動電路如下圖所示。1.19MH鐘825476543210(61H)揚聲器控制驅動電路口。在IBM系列微機中,BIOS在開機自檢后已將8255初始化為A口和C口用于輸入,B口用于輸出。B口的I/O端口地址為61H。由圖10.5可見,8255B口的低兩位用來控制揚聲器驅動,當輸出端口61H的D1位為“1”或為“0”時,將使控制驅動器的與門電發出聲音。此外,通過控制D1位的通斷時間,就能發出不同的音長。的音頻信號,該位為“0”則不發信號。8254有三個定時器,分為0號、1號和2號定時器,驅動揚聲器的是2號定時器,該定時器工作在方式3,是一個頻率發生器,它負責向揚聲器發送指定頻率的脈沖信號。動揚聲器發聲。本節主要介紹利用8254產生聲音和樂曲。二.發音程序BIOS中有一個BEEP子程序,它可以產生896Hz的聲音,且聲音持續時間只能是0.5s的整數倍。BEEP子程序用于PC機加電自檢發現硬件錯誤,或正常進入系統等過程后,向用戶發出聲音提示。可以利用這一子程序的思路,來編寫通用的發音程序。發音程序的編制需要進行以下三個方面工作。(1)確定發聲頻率。BEEP子程序將計數值533H送8254的定時器2而產生896Hz的聲音,那么要產生其他頻率的聲音,則必須將對應頻率的計數值送8254的定時器2產生其他頻率聲音的計數值。該方法如下所示:533H×896÷給定頻率=123280÷給定頻率(也可用定時器的時鐘1192576Hz直接計算計數值:1192576÷給定頻率。)假設給定頻率在DI中,可用下面的指令序列在AX中得到計數值。MOVDX,12HMOVAX,3280DIV為了不產生除法溢出,限制DI中的頻率不低于19Hz,一般情況下聲音頻率不會這樣低。DI;計算某頻率的計數值(2)確定音長。BEEP子程序只能產生持續時間(音長)為0.5s選擇較短的持續時間作為基數,如10ms延時可由執行循環指令實現:MOVCX,2801LOOPDELAY如果要產生與10寄存器中,由BX再控制10ms延時指令的執行次數。如產生0.5s持續時間,則將50送入BX中,指令序列如下:MOVBX,50DELAY0:DELAY1:MOVCX,2801DELAY1LOOPDECBXJNZDELAY0(3)因此需要對定時器2進行相應的設置。①使定時器2準備接收計數值。三.樂曲演奏程序每個音符的音高和音長與頻率節拍有關。下面給出音律表的一部分,見表10-3,該表對應3個音階。表10-3音階頻率對照表音CDEFGABC’D’E’F’G’A’BC''D''E''F''G''A''B''頻12345612345譜761234567頻131147165262294330349392524588660698784880率175196220440494247四拍)中,每小節包括4拍,全音符持續4拍,二分音符持續2拍,四分音符持續一拍,八分音符持續半拍等。的頻率值和時間值,調用CSOUND子程序就可發出各種聲音。例10-5的程序中為全音符分配了1s時間。音頻發聲系統程序以“兩只老虎”的音符來進行編程:表的結束標志。程序流程圖如圖10.7所示,演奏該樂曲程序如下:1=C4/41=C4/41231|1231|34|34|565431|565431|25|251圖10.6“兩只老虎”簡譜圖程序內容如下所示:NAMELINYANQIN.ASMDATAFREQSEGMENTW262,294,330,262,262,294,330,262W330,349,392,330,349,392,392,440W392,349,330,262,392,440,392,349DW330,262,294,196,262,294,196,262,-1TIMEDW25,25,25,25,25,25,25,25,25,25DW50,25,25,50,12,12,12,12,25,25DW12,12,12,12,25,25,25,25,50,25,25,50SNAMEDBDATA'TWOTIGER.$'ENDSSTACKSEGMENTSTACK'STACK'DB100DUP(0)ENDSSEGMENTSTACK開始CODE初始化ASSUMECS:CODE,SS:STACK,DS:DATAPLAYPROCFARPUSHDSMOVAX,0AXPUSHMOVAX,DATAMOVDS,AXDX,OFFSETSNAMEAH,9MOVMOVINT21HYMOVAL,0B6H結束否?10-5流程圖如右圖所示:N取節拍時間調用發聲程序取下一音符和節拍結束OUT43H,ALMOVBP,OFFSETTIMEMOVSI,OFFSETFREQSONG:MOVDI,[SI]CMPDI,?1JZEXITMOV[BP]CALLCSOUNDINCSIINCSIINCBPINCBPJMPSONGEXIT:RETCSOUNDPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVDX,12HMOVAX,34DCHDIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,03HOUT61H,ALMOVBX,3FFFHDLY0:MOVCX,32717DLY1:LOOPDLY1DECBXJNZDLY0MOVAL,AHOUT61H,ALPOPSIPOPDXPOPCXPOPBXPOPAXRETCSOUNDENDPPLAYENDPCODEENDSENDPLAY音樂的質量取決于三個指標,即音量、音質和音調。微機的揚聲器(Speaker)是不具備音量控制功能的;由于8254發出的是方波,此,所發出的聲音單調、呆板、干癟,談不上什么音樂;音調(即聲媒體設備來完成,具體參見多媒體技術教材。上述兩個音樂演奏程序的節奏(節拍時間長短)與微機的機型和主頻有關。其原因是:節拍時間的長短是用軟件延時完成的,由于機因素,從80386~Pentium共同存在著,這樣軟件延時時間就要因機型而異。例如,P4微機比PⅠ微機速度快,而

溫馨提示

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

評論

0/150

提交評論