Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Speaker. 2 喇叭發聲原理 利用喇叭上的線圈通上電流造成薄膜振動 振動推動空氣產生聲音.

Similar presentations


Presentation on theme: "1 Speaker. 2 喇叭發聲原理 利用喇叭上的線圈通上電流造成薄膜振動 振動推動空氣產生聲音."— Presentation transcript:

1 1 Speaker

2 2 喇叭發聲原理 利用喇叭上的線圈通上電流造成薄膜振動 振動推動空氣產生聲音

3 3 LA 之頻率為 440KHz 每隔半音頻率增加為 1.059 倍 DO RE MI FA SOL LA TI DO’ TI=440KHz * 1.059 * 1.059 =493.9 Hz DO’= TI=440KHz * 1.059 * 1.059 * 1.059 =523Hz

4 4 音階頻率週期 (ms) 半週期 (ms) DO5231.910.96 DO’5541.80.9 RE5871.70.85 RE’6221.60.8 MI6591.520.76 FA6981.430.72 FA’7401.350.68 SOL7851.270.64

5 5 方波每一週期有 HIGH LOW 各一半

6 6 ;PROGRAM : 4-8.ASM (4-8.PRJ) ;FUNCTION: GENERATE TONE DO~DO. #INCLUDEHT46R23.INC.CHIPHT46R23 ;-------------------------------------------------------------------- MY_DATA.SECTION'DATA‘ ;== DATA SECTION == DEL1 DB ? ;DELAY LOOP COUNT 1 DEL2 DB ? ;DELAY LOOP COUNT 2 PITCHDB? ;PITCH REGISTER COUNT1DB? ;DURATION COUNT 1 COUNT2DB? ;DURATION COUNT 2 ;--------------------------------------------------------------

7 7 SPK_PORTEQUPA.0;DEFINE SPEAKER PORT SPK_PORTCEQUPAC.0;DEFINE SPEAKER PORT CON. REG. MY_CODE.SECTIONAT 0'CODE' ORG 00H ;HT-46RXX RESET VECTOR CLR SPK_PORTC ;CONFIG PA.0 AS OUTPUT MODE MAIN: MOVA,TAB_PITCH_DURATION MOVTBLP,A;INITIAL TABLE POINTER

8 8 NEXT_PITCH: TABRDLPITCH;LOAD PITCH TO PITCH REGISTER AND 音階頻 ; 率 ;DURATION TO TBLH ( 音長 ) MOVA,0 XORA,TBLH ;NOTE: TBLH IS READ ONLY!!! SZZ ;IS THE LAST TONE? JMPMAIN ;YES. RESTART!! MOVA,TBLH ;NO, LOAD DURATION TO COUNT1 MOVCOUNT1,A INCTBLP ;UPDATE TABLE POINTER ;( 控制聲音叫的時間 )

9 9 LOOP: MOVA,10 ;( 調整脈波產生個數, 聲音長度 ) MOVCOUNT2,A;INITIAL INNER LOOP COUNT HI: SETSPK_PORT;SET SPK_PORT HIGH MOVA,PITCH CALLDELAY;PITCH DELAY ( 喇叭 ON) CLR SPK_PORT;RESET SPK_PORT MOVA,PITCH CALLDELAY;PITCH DELAY ( 喇叭 OFF) SDZCOUNT2 ;INNER LOOP OK? JMPHI;NO.( 控制產生脈波個數 ) SDZCOUNT1 ;OUTER LOOP OK? JMP LOOP ;NO. JMPNEXT_PITCH;YES, NEXT PITCH ; 音階是否發聲完畢

10 10 ;******************************************************************** ; Delay about DEL1*20uS ;******************************************************************** DELAY PROC MOVDEL1,A DEL_1: MOV A,5 MOV DEL2,A;SET DEL2 COUNTER DEL_2: SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZDEL1;DEL1 DOWN COUNT JMPDEL_1 RET DELAYENDP

11 11 1000000/(523*2*20) DO TONE 523/(2*10) DURATION ORGLASTPAGE TAB_PITCH_DURATION: DC1000000/(523*2*20)+(523/(2*10)) SHL 8;DO TONE & DURATION DC1000000/(587*2*20)+(587/(2*10)) SHL 8;RE TONE & DURATION DC1000000/(659*2*20)+(659/(2*10)) SHL 8;MI TONE & DURATION DC1000000/(698*2*20)+(698/(2*10)) SHL 8;FA TONE & DURATION DC1000000/(785*2*20)+(785/(2*10)) SHL 8;SOL TONE & DURATION DC1000000/(880*2*20)+(880/(2*10)) SHL 8;LA TONE & DURATION DC1000000/(988*2*20)+(988/(2*10)) SHL 8;TI TONE & DURATION DC1000000/(1047*2*20)+(1047/(2*10)) SHL 8;DO. TONE & DURATION DC0;TABLE END CODE END

12 12 音調高低之參數 F 為產生之音調頻率 半週期時間為 (2*F) -1 Delay 時間 DEL1*20us 產生 F Hz 所需之 DEL1 為 (2F) -1 /(20*10 -6 )=10 6 /(2*F*20)

13 13 產生 0.5 秒之頻率 F Hz 所需脈波數為 F/2 8 bit problem Two Loop 內圈 10 外圈 F/(2*10)


Download ppt "1 Speaker. 2 喇叭發聲原理 利用喇叭上的線圈通上電流造成薄膜振動 振動推動空氣產生聲音."

Similar presentations


Ads by Google