音樂盒播放器ds_第1頁
音樂盒播放器ds_第2頁
音樂盒播放器ds_第3頁
音樂盒播放器ds_第4頁
音樂盒播放器ds_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 1、單片機是如何發(fā)出音樂聲、單片機是如何發(fā)出音樂聲原理:原理:聲音是通過震動產(chǎn)生的。單片機對某一聲音是通過震動產(chǎn)生的。單片機對某一I/OI/O引腳以一定引腳以一定的頻率循環(huán)置的頻率循環(huán)置1 1 和清和清0 0,這一引腳便產(chǎn)生一定頻率的,這一引腳便產(chǎn)生一定頻率的方波,該方法通過放大后作用于揚聲器便產(chǎn)生一定方波,該方法通過放大后作用于揚聲器便產(chǎn)生一定頻率的聲音。若改變輸出方波的頻率,產(chǎn)生的聲音頻率的聲音。若改變輸出方波的頻率,產(chǎn)生的聲音也就改變了。通過控制輸出方波的時間長短,聲音也就改變了。通過控制輸出方波的時間長短,聲音的長短也就得到控制,因此,根據(jù)樂譜,單片機就的長短也就得到控制,因此,根

2、據(jù)樂譜,單片機就可以產(chǎn)生音樂。音樂中最關鍵的兩個要素是可以產(chǎn)生音樂。音樂中最關鍵的兩個要素是音調(diào)和音調(diào)和節(jié)拍節(jié)拍。音調(diào)表示一個音符唱多高的頻率,音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。節(jié)拍表示一個音符唱多長的時間。 一、單鍵演奏一組音符一、單鍵演奏一組音符1 1、單片機是如何發(fā)出音樂聲、單片機是如何發(fā)出音樂聲一首音樂是由很多音符組合而成的,一個音符代表了一一首音樂是由很多音符組合而成的,一個音符代表了一種頻率的樂聲,通過不同頻率樂聲的組合,就可以產(chǎn)生種頻率的樂聲,通過不同頻率樂聲的組合,就可以產(chǎn)生一首音樂了。這就是電子音樂的基本方法。一首音樂了。這就是電子音樂的基本方法。單

3、片機可以通過定時器生成不同頻率的信號,按照音樂單片機可以通過定時器生成不同頻率的信號,按照音樂音符的頻率來生成各種頻率的信號,并將其按照音樂構(gòu)音符的頻率來生成各種頻率的信號,并將其按照音樂構(gòu)建好,然后將信號通過電聲器件轉(zhuǎn)換為聲波,這樣單片建好,然后將信號通過電聲器件轉(zhuǎn)換為聲波,這樣單片機就能發(fā)出一段音樂的聲音了。機就能發(fā)出一段音樂的聲音了。一、單鍵演奏一組音符一、單鍵演奏一組音符2 2、音調(diào)的確定、音調(diào)的確定音調(diào)就是我們常說的音高。它是由頻率來確定的!我們音調(diào)就是我們常說的音高。它是由頻率來確定的!我們可以查出各個音符所對應的相應的頻率,那么現(xiàn)在就需可以查出各個音符所對應的相應的頻率,那么現(xiàn)在

4、就需要我們來用要我們來用5151來發(fā)出相應頻率的聲音!來發(fā)出相應頻率的聲音! 我們常采用的方法就是通過單片機的定時器定時中斷,我們常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的將單片機上對應蜂鳴器的 I/O I/O口來回取反,或者說來回口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機發(fā)為了讓單片機發(fā)出不同頻率的聲音,我們只需將定時器出不同頻率的聲音,我們只需將定時器預置預置不同的定時不同的定時值就可實現(xiàn)。值就可實現(xiàn)。那么怎樣確定一個頻率所對應的定時器的那么怎樣確定一個頻率所對應的定時器的定時值呢?定時值呢? 一、單鍵演奏

5、一組音符一、單鍵演奏一組音符2 2、音調(diào)的確定、音調(diào)的確定例如:中音例如:中音DODO的頻率為的頻率為523Hz523Hz,周期為:,周期為:T=1/f=1912usT=1/f=1912us單片機上對應蜂鳴器的單片機上對應蜂鳴器的I/O I/O 口來回取反的時間應即半個口來回取反的時間應即半個周期為:周期為:t=T/2=956ust=T/2=956us這個時間這個時間t t 就是單片機上定時器應有的中斷觸發(fā)時間。就是單片機上定時器應有的中斷觸發(fā)時間。只要將定時器的定時時間設置為只要將定時器的定時時間設置為956us956us,就可以產(chǎn)生頻,就可以產(chǎn)生頻率為率為523Hz523Hz的方波信號。的

6、方波信號。一般情況下,單片機奏樂時,其定時器為工作方式一般情況下,單片機奏樂時,其定時器為工作方式1 1,設振蕩器頻率為設振蕩器頻率為f f,則定時器的予置初值由下式來確定,則定時器的予置初值由下式來確定: t=t=(2 21616-X-X)* *(12/f)(12/f)一、單鍵演奏一組音符一、單鍵演奏一組音符2 2、音調(diào)的確定、音調(diào)的確定因此定時器的高低計數(shù)器的初值為:因此定時器的高低計數(shù)器的初值為: TH =X/ 256 = ( 2TH =X/ 256 = ( 21616 t t* * f/12) / 256 f/12) / 256 TL = X % 256 = (2TL = X % 25

7、6 = (21616tt* * f/12) %256 f/12) %256 一、單鍵演奏一組音符一、單鍵演奏一組音符C C調(diào)各音符頻率與計數(shù)值調(diào)各音符頻率與計數(shù)值T T的對照表如圖所示:的對照表如圖所示:2 2、音調(diào)的確定、音調(diào)的確定一般我們要為這個音符建立一個表格,有助于單片機通一般我們要為這個音符建立一個表格,有助于單片機通過查表的方式來獲得相應的數(shù)據(jù)。過查表的方式來獲得相應的數(shù)據(jù)。uint code tab=63628,63835,64021,64103,uint code tab=63628,63835,64021,64103,64260,64400,64524,64580,64260

8、,64400,64524,64580,64684,64777,64820,64898,64684,64777,64820,64898,64968,95030,65058,65110;64968,95030,65058,65110;一、單鍵演奏一組音符一、單鍵演奏一組音符實例演示:實例演示:要求:用一只單鍵產(chǎn)生一組音符的聲音,發(fā)聲從低音階要求:用一只單鍵產(chǎn)生一組音符的聲音,發(fā)聲從低音階向高音階進展,可以通過虛擬示波器觀察到單片機產(chǎn)生向高音階進展,可以通過虛擬示波器觀察到單片機產(chǎn)生的方波的周期變化。單片機演奏音樂的電路只需要單片的方波的周期變化。單片機演奏音樂的電路只需要單片機和聲音播放電路,電路

9、原理圖如圖所示。機和聲音播放電路,電路原理圖如圖所示。一、單鍵演奏一組音符一、單鍵演奏一組音符三極管蜂鳴器一、單鍵演奏一組音符一、單鍵演奏一組音符一、單鍵演奏一組音符一、單鍵演奏一組音符節(jié)拍的實現(xiàn):節(jié)拍的實現(xiàn):在一張樂譜中,我們經(jīng)常會看到這樣的表達式,如在一張樂譜中,我們經(jīng)常會看到這樣的表達式,如1=C 1=C (4/4) (4/4) 、1=G(3/4) 1=G(3/4) 等等,這里等等,這里1=C 1=C (4/4),1=G(3/4) (4/4),1=G(3/4) 表示樂譜的曲調(diào),與前面所談的音調(diào)表示樂譜的曲調(diào),與前面所談的音調(diào)有很大的關聯(lián),有很大的關聯(lián),4/44/4、3/4 3/4 就是用

10、來表示節(jié)拍的。以就是用來表示節(jié)拍的。以3/4 3/4 為例加以說明,它表示樂譜中以四分音符為節(jié)拍,為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。每一小結(jié)有三拍。二、演奏一首音樂二、演奏一首音樂其中其中1 1 、2 2 為一拍,為一拍,3 3、4 4、5 5為一拍,為一拍,6 6為一拍共三拍。為一拍共三拍。1 1 、2 2的時長為四分音符的一半,即為八分音符長,的時長為四分音符的一半,即為八分音符長,3 3、4 4的時長為八分音符的一半,即為十六分音符長,的時長為八分音符的一半,即為十六分音符長,5 5的時的時長為四分音符的一半,即為八分音符長,長為四分音符的一半,即為八分音符長,

11、6 6的時長為四的時長為四分音符長。分音符長。 二、演奏一首音樂二、演奏一首音樂樂曲的數(shù)據(jù),一般寫入數(shù)據(jù)表,表中每三個數(shù)字,說明了樂曲的數(shù)據(jù),一般寫入數(shù)據(jù)表,表中每三個數(shù)字,說明了一個音符,它們分別代表:一個音符,它們分別代表:第一個數(shù)字是音符的數(shù)值第一個數(shù)字是音符的數(shù)值12345671234567之一,代表多來咪之一,代表多來咪.;第二個數(shù)字是第二個數(shù)字是123123之一,代表低音、中音、高音;之一,代表低音、中音、高音;第三個數(shù)字是時間長度,以第三個數(shù)字是時間長度,以半拍半拍為單位。為單位。樂曲數(shù)據(jù)表的結(jié)尾是三個樂曲數(shù)據(jù)表的結(jié)尾是三個0 0。樂譜中數(shù)字上面帶點表示高音,下面帶點表示低音。什

12、么樂譜中數(shù)字上面帶點表示高音,下面帶點表示低音。什么都不帶表示中音。都不帶表示中音。下劃線:單個數(shù)字是四分音符,兩個數(shù)字下畫一條線是八下劃線:單個數(shù)字是四分音符,兩個數(shù)字下畫一條線是八分音符了。分音符了。感興趣的同學應該去查看樂譜相關的知識。感興趣的同學應該去查看樂譜相關的知識。二、演奏一首音樂二、演奏一首音樂據(jù)此就可以寫出據(jù)此就可以寫出送別送別前二小節(jié)的數(shù)據(jù)表:前二小節(jié)的數(shù)據(jù)表:code unsigned char sszymmh = code unsigned char sszymmh = 5 5, 2, 2, , 2, 2, 3 3, 2, 1, , 2, 1, 5 5, 2, 1, ,

13、 2, 1, 1 1, 3, 4, , 3, 4, /嗦嗦, ,中音中音,2,2個半拍個半拍; ;咪咪, ,中音中音,1,1個半拍個半拍; ;嗦嗦, ,中音中音,1,1個半拍個半拍; ;哆哆, ,高音高音,4,4個半拍個半拍6 6, 2, 2, , 2, 2, 1 1, 3, 2, , 3, 2, 5 5, 2, 4, 2, 4,/啦啦, ,中音中音,2,2個半拍個半拍; ;哆哆, ,高音高音,1,1個半拍個半拍; ;嗦嗦, ,中音中音,4,4個個半拍半拍0, 0, 0;0, 0, 0;二、演奏一首音樂二、演奏一首音樂單片機演奏音樂的電路只需要單片機和聲音播放電路,單片機演奏音樂的電路只需要單

14、片機和聲音播放電路,電路原理圖如圖所示。電路原理圖如圖所示。二、演奏一首音樂二、演奏一首音樂/ /* *演奏演奏“世上只有媽媽好世上只有媽媽好”* */ /#include #include sbit speaker = P30;sbit speaker = P30;unsigned char timer0h, timer0l, time;unsigned char timer0h, timer0l, time;/-/-/單片機晶振采用單片機晶振采用11.0592MHz11.0592MHz二、演奏一首音樂二、演奏一首音樂/各種音符頻率所對應的、半周期的定時時間初始值。各種音符頻率所對應的、半周

15、期的定時時間初始值。/ / 頻率頻率- -半周期數(shù)據(jù)表半周期數(shù)據(jù)表 高八位高八位code unsigned char FREQH = code unsigned char FREQH = 0 xF2, 0 xF3, 0 xF5, 0 xF5, 0 xF6, 0 xF7, 0 xF8, / 0 xF2, 0 xF3, 0 xF5, 0 xF5, 0 xF6, 0 xF7, 0 xF8, /低音低音12345671234567 0 xF9, 0 xF9, 0 xFA, 0 xFA, 0 xFB, 0 xFB, 0 xFC, 0 xFC,/1,2,3,4,5,6,7,i 0 xF9, 0 xF9,

16、0 xFA, 0 xFA, 0 xFB, 0 xFB, 0 xFC, 0 xFC,/1,2,3,4,5,6,7,i 0 xFC, 0 xFD, 0 xFD, 0 xFD, 0 xFD, 0 xFE, / 0 xFC, 0 xFD, 0 xFD, 0 xFD, 0 xFD, 0 xFE, /中音中音 234567 234567 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFF; / 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFE, 0 xFF; /高音高音 1234567 1234567/ / 頻率頻率- -半周期數(shù)

17、據(jù)表半周期數(shù)據(jù)表 低八位低八位code unsigned char FREQL = code unsigned char FREQL = 0 x42, 0 xC1, 0 x17, 0 xB6, 0 xD0, 0 xD1, 0 xB6, / 0 x42, 0 xC1, 0 x17, 0 xB6, 0 xD0, 0 xD1, 0 xB6, /低音低音12345671234567 0 x21, 0 xE1, 0 x8C, 0 xD8, 0 x68, 0 xE9, 0 x5B, 0 x8F, /1,2,3,4,5,6,7,i 0 x21, 0 xE1, 0 x8C, 0 xD8, 0 x68, 0 x

18、E9, 0 x5B, 0 x8F, /1,2,3,4,5,6,7,i 0 xEE, 0 x44, 0 x6B, 0 xB4, 0 xF4, 0 x2D, / 0 xEE, 0 x44, 0 x6B, 0 xB4, 0 xF4, 0 x2D, /中音中音音音 234567 234567 0 x47, 0 x77, 0 xA2, 0 xB6, 0 xDA, 0 xFA, 0 x16; / 0 x47, 0 x77, 0 xA2, 0 xB6, 0 xDA, 0 xFA, 0 x16; /高音高音 1234567 1234567二、演奏一首音樂二、演奏一首音樂二、演奏一首音樂二、演奏一首音樂/世上只

19、有媽媽好數(shù)據(jù)表世上只有媽媽好數(shù)據(jù)表 要想演奏不同的樂曲要想演奏不同的樂曲, , 只需要修改這只需要修改這個數(shù)據(jù)表個數(shù)據(jù)表code unsigned char sszymmh = code unsigned char sszymmh = 6 6, 2, 3, 2, 3, 5 5, 2, 1, 2, 1, 3 3, 2, 2, 2, 2, 5 5, 2, 2, 2, 2, 1 1, 3, 2, 3, 2, 6 6, 2, 1, 2, 1, 5 5, 2, , 2, 1, 1, /一個音符有三個數(shù)字。前為第幾個音、中為第幾個八度、后為時長一個音符有三個數(shù)字。前為第幾個音、中為第幾個八度、后為時長(以

20、半拍為單位)。(以半拍為單位)。/6, 2, 3 /6, 2, 3 分別代表:分別代表:, , 中音中音, , 個半拍個半拍; ;/5, 2, 1 /5, 2, 1 分別代表:分別代表:, , 中音中音, , 個半拍個半拍; ;/3, 2, 2 /3, 2, 2 分別代表:分別代表:, , 中音中音, , 個半拍個半拍; ;/5, 2, 2 /5, 2, 2 分別代表:分別代表:, , 中音中音, , 個半拍個半拍; ;/1, 3, 2 /1, 3, 2 分別代表:分別代表:, , 高音高音, , 個半拍個半拍; ;/6 6, 2, 4, , 2, 4, 3 3, 2, 2, , 2, 2,

21、5 5, 2, 1, , 2, 1, 6 6, 2, 1, , 2, 1, 5 5, 2, 2, , 2, 2, 3 3, 2, 2, , 2, 2, 1 1, 2, 1, 2, 1,6 6, 1, 1, , 1, 1, 5 5, 2, 1, , 2, 1, 3 3, 2, 1, , 2, 1, 2 2, 2, 4, , 2, 4, 2 2, 2, 3, , 2, 3, 3 3, 2, 1, , 2, 1, 5 5, 2, 2, 2, 2,5 5, 2, 1, , 2, 1, 6 6, 2, 1, , 2, 1, 3 3, 2, 2, , 2, 2, 2 2, 2, 2, , 2, 2, 1

22、1, 2, 4, , 2, 4, 5 5, 2, 3, , 2, 3, 3 3, 2, 1, 2, 1,2 2, 2, 1, , 2, 1, 1 1, 2, 1, , 2, 1, 6 6, 1, 1, , 1, 1, 1 1, 2, 1, , 2, 1, 5 5, 1, 6, 0, 0, 0;, 1, 6, 0, 0, 0;/-/-二、演奏一首音樂二、演奏一首音樂/ /* *定時器定時器T0T0中斷函數(shù)中斷函數(shù)* */ /void t0int() interrupt 1 /T0void t0int() interrupt 1 /T0中斷程序,控制發(fā)音的音調(diào)中斷程序,控制發(fā)音的音調(diào) TR0 =

23、0; / TR0 = 0; /先關閉先關閉T0T0 speaker = !speaker; / speaker = !speaker; /輸出方波輸出方波, , 發(fā)音發(fā)音 TH0 = timer0h; /TH0 = timer0h; /下次的中斷時間下次的中斷時間, , 這個時間這個時間, , 控制音調(diào)高低控制音調(diào)高低 TL0 = timer0l;TL0 = timer0l; TR0 = 1; / TR0 = 1; /啟動啟動T0T0 / /* *延時程序控制發(fā)音的時長延時程序控制發(fā)音的時長* */ /void delay(unsigned char t) /void delay(unsign

24、ed char t) /延時程序,控制發(fā)音的時間長延時程序,控制發(fā)音的時間長度度 unsigned char t1; unsigned char t1; unsigned long t2; unsigned long t2; for(t1 = 0; t1 t; t1+) / for(t1 = 0; t1 t; t1+) /雙重循環(huán)雙重循環(huán), , 共延時共延時t t個半拍個半拍 for(t2 = 0; t2 8000; t2+); /for(t2 = 0; t2 8000; t2+); /延時期間延時期間, , 可進入可進入T0T0中斷中斷去發(fā)音去發(fā)音 TR0 = 0; /TR0 = 0; /關

25、閉關閉T0, T0, 停止發(fā)音停止發(fā)音 二、演奏一首音樂二、演奏一首音樂/ /* *演奏一個音符演奏一個音符* */ /void song() /void song() /演奏一個音符演奏一個音符 TH0 = timer0h; / TH0 = timer0h; /控制音調(diào)控制音調(diào) TL0 = timer0l;TL0 = timer0l; TR0 = 1; / TR0 = 1; /啟動啟動T0, T0, 由由T0T0輸出方波去發(fā)音輸出方波去發(fā)音 delay(time); /delay(time); /控制時間長度控制時間長度 二、演奏一首音樂二、演奏一首音樂/ /* *演奏一個音符演奏一個音符*

26、 */ /void main(void)void main(void) unsigned char k, i; unsigned char k, i; TMOD = 1; / TMOD = 1; /置置T0T0定時工作方式定時工作方式1 1 ET0 = 1; / ET0 = 1; /開開T0T0中斷中斷 EA = 1; /EA = 1; /開開CPUCPU中斷中斷 while(1) while(1) i = 0; i = 0; time = 1; time = 1; while(time) while(time) k = sszymmhi + 7 k = sszymmhi + 7 * * ss

27、zymmhi + 1 - 1; sszymmhi + 1 - 1; / /第第i i個是音符個是音符, , 第第i+1i+1個是第幾個八度個是第幾個八度 timer0h = FREQHk; /timer0h = FREQHk; /從數(shù)據(jù)表中讀出頻率數(shù)值從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = FREQLk; /timer0l = FREQLk; /實際上實際上, , 是定時的時間長度是定時的時間長度 time = sszymmhi + 2; /time = sszymmhi + 2; /讀出時間長度數(shù)值讀出時間長度數(shù)值 i += 3;i += 3; song(); / song(); /發(fā)出

28、一個音符發(fā)出一個音符 課后思考:課后思考:增加一個按鍵控制選播多首音樂?增加一個按鍵控制選播多首音樂?也可以增加一個數(shù)碼管用于顯示正在播放的也可以增加一個數(shù)碼管用于顯示正在播放的是第幾首歌曲?是第幾首歌曲?(1 1)任務要求:)任務要求:采用單片機控制方式,設計制造電子琴,能夠通采用單片機控制方式,設計制造電子琴,能夠通過串口對鍵盤進行簡單調(diào)音控制。電子琴具有過串口對鍵盤進行簡單調(diào)音控制。電子琴具有1616只音樂輸入鍵盤,可以進行簡單的音樂演奏。只音樂輸入鍵盤,可以進行簡單的音樂演奏。LEDLED數(shù)碼管能顯示按下的鍵盤,實現(xiàn)單片機電子數(shù)碼管能顯示按下的鍵盤,實現(xiàn)單片機電子琴和琴和PCPC之間的

29、通信,能通過之間的通信,能通過PCPC向單片機發(fā)送數(shù)據(jù)向單片機發(fā)送數(shù)據(jù)指令,實現(xiàn)對鍵盤所對應的高低音調(diào)整,并將指令,實現(xiàn)對鍵盤所對應的高低音調(diào)整,并將PCPC所發(fā)送數(shù)據(jù)顯示出來。各工作小組對鍵盤調(diào)音的所發(fā)送數(shù)據(jù)顯示出來。各工作小組對鍵盤調(diào)音的上調(diào)和下調(diào)指令碼分別為上調(diào)和下調(diào)指令碼分別為0-90-9和和A-JA-J。三、簡易電子琴設計三、簡易電子琴設計(2 2)方案框圖)方案框圖根據(jù)任務要求,單片機電子琴主控芯片為根據(jù)任務要求,單片機電子琴主控芯片為80518051單片機,單片機,有有1616只音符輸入鍵盤,可以從只音符輸入鍵盤,可以從PCPC輸入控制數(shù)碼,輸入數(shù)輸入控制數(shù)碼,輸入數(shù)碼通過串口傳

30、送給單片機,通過控制碼能調(diào)整音鍵的音碼通過串口傳送給單片機,通過控制碼能調(diào)整音鍵的音階,并能顯示從階,并能顯示從PCPC輸入的數(shù)碼,用輸入的數(shù)碼,用LEDLED數(shù)碼管顯示音鍵數(shù)碼管顯示音鍵名。電子琴方案框圖如圖所示。名。電子琴方案框圖如圖所示。三、簡易電子琴設計三、簡易電子琴設計單單片片機機PCPC串行輸入數(shù)碼串行輸入數(shù)碼矩陣鍵盤矩陣鍵盤時鐘復位電源時鐘復位電源LEDLED顯示鍵盤名顯示鍵盤名中斷顯示輸入數(shù)碼中斷顯示輸入數(shù)碼聲頻播放聲頻播放(2 2)硬件電路)硬件電路輸入鍵盤設計:輸入鍵盤設計:矩陣鍵盤:矩陣鍵盤:4 4* *4=164=16只按鍵,只按鍵,P1P1口接矩陣鍵盤口接矩陣鍵盤采用

31、虛擬終端采用虛擬終端VIRTUAL TERMINALVIRTUAL TERMINAL模擬模擬PCPC的作用。的作用。虛擬終端接單片機串口,單片機的發(fā)送端接虛擬終端接虛擬終端接單片機串口,單片機的發(fā)送端接虛擬終端接收端,單片機的接收端連虛擬終端發(fā)送端收端,單片機的接收端連虛擬終端發(fā)送端P3.7P3.7端輸出音頻信號,并連接虛擬示波器以測試音頻方端輸出音頻信號,并連接虛擬示波器以測試音頻方波的周期,觀察控制數(shù)碼的調(diào)音效果。波的周期,觀察控制數(shù)碼的調(diào)音效果。P0P0端口接端口接LEDLED數(shù)碼管顯示音鍵名。數(shù)碼管顯示音鍵名。電子琴電路原理圖如圖所示:電子琴電路原理圖如圖所示:三、簡易電子琴設計三、簡

32、易電子琴設計三、簡易電子琴設計三、簡易電子琴設計(3 3)軟件設計流程圖)軟件設計流程圖- -電子琴主程序流程圖電子琴主程序流程圖三、簡易電子琴設計三、簡易電子琴設計初始化初始化是否有鍵按下是否有鍵按下鍵盤掃描,識別按下鍵的列值鍵盤掃描,識別按下鍵的列值鍵盤掃描,識別按下鍵的行值鍵盤掃描,識別按下鍵的行值根據(jù)鍵值和控制碼,鍵音調(diào)整根據(jù)鍵值和控制碼,鍵音調(diào)整停止定時器,關閉播放停止定時器,關閉播放YN啟動定時器,生成方波信號播放音頻啟動定時器,生成方波信號播放音頻(3 3)軟件設計流程圖)軟件設計流程圖電子琴串行通信流程圖電子琴串行通信流程圖三、簡易電子琴設計三、簡易電子琴設計串行中斷入口串行中斷入口是否收到數(shù)據(jù)?是否收到數(shù)據(jù)?讀取數(shù)據(jù),清除接收標志讀取數(shù)據(jù),清除接收標志鍵盤向下調(diào)音鍵盤向下調(diào)音Y是否有下調(diào)控制碼是否有下調(diào)控制碼? ?是否有上調(diào)控制碼是否有上調(diào)控制碼? ?

溫馨提示

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

評論

0/150

提交評論