基于51單片機的復音電子琴課程設計報告書_第1頁
基于51單片機的復音電子琴課程設計報告書_第2頁
基于51單片機的復音電子琴課程設計報告書_第3頁
基于51單片機的復音電子琴課程設計報告書_第4頁
基于51單片機的復音電子琴課程設計報告書_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . . . 基于51單片機的復音電子琴課程設計匯鵬課程組1班指導老師:宋榮摘要:本設計是基于數(shù)字電路為基礎,以單片機技術為核心,軟件設計采用模塊化結構,采用C語言編程,通過按鍵控制,可以發(fā)出兩個不同的聲音,并實現(xiàn)音樂盒的功能。容上首先描述系統(tǒng)硬件工作原理,介紹各個接口模塊的功能,而后介紹軟件上的各個功能模塊。關鍵字:單片機,電子琴,STC90C51一 緒論隨著科學技術的迅速發(fā)展,尤其是在電子領域上的發(fā)展,讓電器走進千家萬戶,越來越多的物件可以用電器用品代替,電子樂器漸漸代替?zhèn)鹘y(tǒng)樂器出現(xiàn)在眾人眼前,電子樂器相比于傳統(tǒng)樂器更輕便,也更加便宜,讓樂器走進千家萬戶,這次制作的核心在于單片機,單片機

2、體積小,性能好,造價便宜。并且能實現(xiàn)強大的功能。復音電子琴不僅能夠實現(xiàn)復音效果,還能成為一個音樂盒,這也是得益于單片機的強大功能。二 設計要求與方案(一) 設計要求1能夠實現(xiàn)電子琴的復音功能。2能夠實現(xiàn)音樂盒的功能(二) 設計方案1. 關于電子琴的發(fā)聲原理本作品采用了用單片機模塊產(chǎn)生的頻率進行輸出,蜂鳴器作為輸入,蜂鳴器收到來自單片機控制端口的不同頻率的信號,會發(fā)出對應的聲音頻率,這就完成了從電信號轉換成聲音信號的過程。2. 關于電子琴的復音功能復音是指由許多純音組成的聲音。復音的頻率用組成這個復音的基音的頻率來表示。一般樂器發(fā)出的聲音都是復音。由于單片機程序執(zhí)行是按照順序執(zhí)行,所以本作品利用

3、兩個單片機模塊,一個單片機模塊控制一個蜂鳴器,再用8個獨立按鍵作為鍵盤,當兩個不同按鍵被按下的時候,兩個蜂鳴器能幾乎同時發(fā)出這兩個聲音。在空間中產(chǎn)生和弦效果。使之相比于單音電子琴能使旋律變得更加豐富。3. 關于音樂盒功能按下按鍵后能夠播放音樂。利用單片機片存儲功能,通過軟件編程的方式,將一些曲目編寫在片ROM里,通過按下控制鍵加普通按鍵,實現(xiàn)8個獨立按鍵的功能轉換。4. 關于單片機芯片的選擇方案一:  采用89C51芯片作為硬件核心,采用Flash ROM,部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼

4、容,但是運用于電路設計中時由于不具備ISP在線編程技術, 當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。 方案二:     采用AT89S52,片ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造

5、成損壞。 所以選擇采用AT89S52作為主控制系統(tǒng)。三 硬件設計(一) 系統(tǒng)硬件概述1. 硬件電路設計框圖蜂鳴器單片機A單片機B蜂鳴器獨立按鍵圖1 硬件電路設計框圖2. 硬件電路設計概述硬件電路由兩片AT89C52單片機芯片為核心,接上復位電路,晶振電路,按鍵電路以與發(fā)聲電路組成的。通過軟件編程,編寫代碼燒寫到單片機芯片里,配合復位電路和晶振電路組成單片機最小系統(tǒng),晶振產(chǎn)生的頻率由單片機進行程序控制,得到想要的電信號頻率。通過兩個單片機控制端,使單片機能夠準確得到兩個按鍵信號,并使對應的蜂鳴器發(fā)聲。(二) 主要單元電路設計1. 晶振電路設計晶振電路如圖2所示圖2 晶振電路2. 復位電

6、路設計復位電路如圖3所示,使兩片單片機芯片共用一個復位按鍵,相比互相獨立的兩個復位按鍵的單片機模塊更加便捷。圖3 復位電路設計3. 按鍵電路設計按鍵電路如圖4所示,使兩片單片機共同對獨立按鍵的信號進行實時掃描,讀取信號進行下一步操作。圖4 按鍵電路設計四 軟件設計(一) 單片機發(fā)音原理1音調的確定  音調就是我們常說的音高。它是由頻率來確定的!我們可以查出各個音符所對應的相應的頻率,那么現(xiàn)在就需要我們來用51來發(fā)出相應頻率的聲音!我們常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機發(fā)出不同頻率

7、的聲音,我們只需將定時器予置不同的定時值就可實現(xiàn)。那么怎樣確定一個頻率所對應的定時器的定時值呢? 以標準音高A為例:A 的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272s 那么,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136 s ,也就是清零、置位在一個周期完成。這個時間t也就是單片機上定時器應有的中斷觸發(fā)時間。一般情況

8、下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數(shù)脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定:t = 12 *(TALL THL)/ f0式中TALL= 216= 65536,THL為定時器待確定的計數(shù)初值。因此定時器的高低計數(shù)器的初值為: TH =THL/ 256 = (TALL- t*f0/12) / 256 TL = THL % 256 =

9、0;( TALL- t*f0/12) %256 將t=1136 s代入上面兩式(注意:計算時應將時間和頻率的單位換算一致)即可求出標準音高A 。在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的時器高低計數(shù)器的予置初值為:TH440Hz = (65536  1136 * 12/12) /256 = FBH  TL440Hz = (65536  1136 * 12

10、/12)%256 = 90H  就這樣,我們通過延時,發(fā)出了我們所需要的頻率,同理可求出其他音頻。如圖5所示:圖5 音符頻率表(二) 軟件流程圖軟件流程圖如圖6,圖7所示開始開始 N N 判斷是否有按鍵按下? 判斷是否有按鍵按下? Y Y 延時去抖 延時去抖 發(fā)出對應按鍵的聲音 發(fā)送標志位為1的命令 判斷標志位是否為1? 發(fā)出對應按鍵的聲音 N N 判斷是否松手 Y 結束圖6 電子琴流程圖開始 N 判斷控制位是否為1 Y N 判斷是否有按鍵按下 Y 播放音樂 結束圖7 音樂盒程序流程圖(三) 程序代碼1. 主單片機程序代碼#include <REG

11、X51.H>unsigned char temp;/unsigned char key;unsigned char STH0;unsigned char STL0;unsigned int code tab= /音符表0,/DO DO# RE RE# MI FAFA# SOSO# LALA# SI63628,63731,63853,63928,64021,64103,64185,64260,64331,64400,64463,64524,64580,64633,64684,64732,64777,64820,64860,64898,64934,64968,64994,65030,6505

12、8,65085,65110,65134,65157,65178,65198,65217,65235,65252,65268,65283,65297,65311,65323,65335,65346,65357,65367,65377,65385,65394,65402,65409;void delaymusic(unsigned char d) unsigned long e,f;for(e=0;e<d;e+)for(f=0;f<1000;f+);/音符定義void x0(unsigned char g)EA=0;STH0=tab0/256;STL0=tab0%256;TR0=1;d

13、elaymusic(g);TR0=0;void m1(unsigned char g)EA=1;STH0=tab1/256;STL0=tab1%256;TR0=1;delaymusic(g);TR0=0;void m1_(unsigned char g)EA=1;STH0=tab2/256;STL0=tab2%256;TR0=1;delaymusic(g);TR0=0;void m2(unsigned char g)EA=1;STH0=tab3/256;STL0=tab3%256;TR0=1;delaymusic(g);TR0=0;void m2_(unsigned char g)EA=1;S

14、TH0=tab4/256;STL0=tab4%256;TR0=1;delaymusic(g);TR0=0;void m3(unsigned char g)EA=1;STH0=tab5/256;STL0=tab5%256;TR0=1;delaymusic(g);TR0=0;void m4(unsigned char g)EA=1;STH0=tab6/256;STL0=tab6%256;TR0=1;delaymusic(g);TR0=0;void m4_(unsigned char g)EA=1;STH0=tab7/256;STL0=tab7%256;TR0=1;delaymusic(g);TR0

15、=0;void m5(unsigned char g)EA=1;STH0=tab8/256;STL0=tab8%256;TR0=1;delaymusic(g);TR0=0;void m5_(unsigned char g)EA=1;STH0=tab9/256;STL0=tab9%256;TR0=1;delaymusic(g);TR0=0;void m6(unsigned char g)EA=1;STH0=tab10/256;STL0=tab10%256;TR0=1;delaymusic(g);TR0=0;void m6_(unsigned char g)EA=1;STH0=tab11/256;

16、STL0=tab11%256;TR0=1;delaymusic(g);TR0=0;void m7(unsigned char g)EA=1;STH0=tab12/256;STL0=tab12%256;TR0=1;delaymusic(g);TR0=0;void n1(unsigned char g)EA=1;STH0=tab13/256;STL0=tab13%256;TR0=1;delaymusic(g);TR0=0;void n1_(unsigned char g)EA=1;STH0=tab14/256;STL0=tab14%256;TR0=1;delaymusic(g);TR0=0;voi

17、d n2(unsigned char g)EA=1;STH0=tab15/256;STL0=tab15%256;TR0=1;delaymusic(g);TR0=0;void n2_(unsigned char g)EA=1;STH0=tab16/256;STL0=tab16%256;TR0=1;delaymusic(g);TR0=0;void n3(unsigned char g)EA=1;STH0=tab17/256;STL0=tab17%256;TR0=1;delaymusic(g);TR0=0;void n4(unsigned char g)EA=1;STH0=tab18/256;STL

18、0=tab18%256;TR0=1;delaymusic(g);TR0=0;void n4_(unsigned char g)EA=1;STH0=tab19/256;STL0=tab19%256;TR0=1;delaymusic(g);TR0=0;void n5(unsigned char g)EA=1;STH0=tab20/256;STL0=tab20%256;TR0=1;delaymusic(g);TR0=0;void n5_(unsigned char g)EA=1;STH0=tab21/256;STL0=tab21%256;TR0=1;delaymusic(g);TR0=0;void

19、n6(unsigned char g)EA=1;STH0=tab22/256;STL0=tab22%256;TR0=1;delaymusic(g);TR0=0;void n6_(unsigned char g)EA=1;STH0=tab23/256;STL0=tab23%256;TR0=1;delaymusic(g);TR0=0;void n7(unsigned char g)EA=1;STH0=tab24/256;STL0=tab24%256;TR0=1;delaymusic(g);TR0=0;void x1(unsigned char g)EA=1;STH0=tab25/256;STL0=

20、tab25%256;TR0=1;delaymusic(g);TR0=0;void x1_(unsigned char g)EA=1;STH0=tab26/256;STL0=tab26%256;TR0=1;delaymusic(g);TR0=0;void x2(unsigned char g)EA=1;STH0=tab27/256;STL0=tab27%256;TR0=1;delaymusic(g);TR0=0;void x2_(unsigned char g)EA=1;STH0=tab28/256;STL0=tab28%256;TR0=1;delaymusic(g);TR0=0;void x3

21、(unsigned char g)EA=1;STH0=tab29/256;STL0=tab29%256;TR0=1;delaymusic(g);TR0=0;void x4(unsigned char g)EA=1;STH0=tab30/256;STL0=tab30%256;TR0=1;delaymusic(g);TR0=0;void x4_(unsigned char g)EA=1;STH0=tab31/256;STL0=tab31%256;TR0=1;delaymusic(g);TR0=0;void x5(unsigned char g)EA=1;STH0=tab32/256;STL0=ta

22、b32%256;TR0=1;delaymusic(g);TR0=0;void x5_(unsigned char g)EA=1;STH0=tab33/256;STL0=tab33%256;TR0=1;delaymusic(g);TR0=0;void x6(unsigned char g)EA=1;STH0=tab34/256;STL0=tab34%256;TR0=1;delaymusic(g);TR0=0;void x6_(unsigned char g)EA=1;STH0=tab35/256;STL0=tab35%256;TR0=1;delaymusic(g);TR0=0;void x7(u

23、nsigned char g)EA=1;STH0=tab36/256;STL0=tab36%256;TR0=1;delaymusic(g);TR0=0;void y1(unsigned char g)EA=1;STH0=tab37/256;STL0=tab37%256;TR0=1;delaymusic(g);TR0=0;void y1_(unsigned char g)EA=1;STH0=tab38/256;STL0=tab38%256;TR0=1;delaymusic(g);TR0=0;void y2(unsigned char g)EA=1;STH0=tab39/256;STL0=tab3

24、9%256;TR0=1;delaymusic(g);TR0=0;void y2_(unsigned char g)EA=1;STH0=tab40/256;STL0=tab40%256;TR0=1;delaymusic(g);TR0=0;void y3(unsigned char g)EA=1;STH0=tab41/256;STL0=tab41%256;TR0=1;delaymusic(g);TR0=0;void y4(unsigned char g)EA=1;STH0=tab42/256;STL0=tab42%256;TR0=1;delaymusic(g);TR0=0;void y4_(uns

25、igned char g)EA=1;STH0=tab43/256;STL0=tab43%256;TR0=1;delaymusic(g);TR0=0;void y5(unsigned char g)EA=1;STH0=tab44/256;STL0=tab44%256;TR0=1;delaymusic(g);TR0=0;void y5_(unsigned char g)EA=1;STH0=tab45/256;STL0=tab45%256;TR0=1;delaymusic(g);TR0=0;void y6(unsigned char g)EA=1;STH0=tab46/256;STL0=tab46%

26、256;TR0=1;delaymusic(g);TR0=0;void y6_(unsigned char g)EA=1;STH0=tab47/256;STL0=tab47%256;TR0=1;delaymusic(g);TR0=0;void y7(unsigned char g)EA=1;STH0=tab48/256;STL0=tab48%256;TR0=1;delaymusic(g);TR0=0;void delay(unsigned int a) unsigned int b,c; for(b=0;b<a;b+) for(c=0;c<1000;c+);sbit flag=P00

27、;sbit ctrl=P11;void main(void) /主程序TMOD=0x01;EA=1;ET0=1;while(1)if(ctrl=1)if(P2&0x01)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10); /去抖動if(P2&0x01)=0x00)STH0=tab25/256;/計算音符對應的定時器計數(shù)值STL0=tab25%256;TR0=1;flag=0;while(P2&0x01)=0x00);/松手檢測TR0=0;P1=0xff;if(P2&0x02)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2

28、&0x02)=0x00)/去抖動STH0=tab27/256;/計算音符對應的定時器計數(shù)值STL0=tab27%256;TR0=1;flag=0;while(P2&0x02)=0x00);/松手檢測TR0=0;P1=0xff; if(P2&0x04)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x04)=0x00)/去抖動STH0=tab29/256;/計算音符對應的定時器計數(shù)值STL0=tab29%256;TR0=1;flag=0;while(P2&0x04)=0x00);/松手檢測TR0=0;P1=0xff; if(P

29、2&0x08)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x08)=0x00)/去抖動STH0=tab30/256;/計算音符對應的定時器計數(shù)值STL0=tab30%256;TR0=1;flag=0;while(P2&0x08)=0x00);/松手檢測TR0=0;P1=0xff; if(P2&0x10)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x10)=0x00)/去抖動STH0=tab32/256;/計算音符對應的定時器計數(shù)值STL0=tab32%256;TR0=1;flag=0;w

30、hile(P2&0x10)=0x00);/松手檢測TR0=0;P1=0xff; if(P2&0x20)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x20)=0x00) /去抖動STH0=tab34/256;/計算音符對應的定時器計數(shù)值STL0=tab34%256;TR0=1;flag=0;while(P2&0x20)=0x00);/松手檢測TR0=0;P1=0xff; if(P2&0x40)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x40)=0x00) /去抖動STH0=tab

31、36/256;/計算音符對應的定時器計數(shù)值STL0=tab36%256;TR0=1;flag=0;while(P2&0x40)=0x00);/松手檢測TR0=0;P1=0xff; if(P2&0x80)=0x00)/檢測按鍵確實按下,進行按鍵處理delay(10);if(P2&0x80)=0x00) /去抖動STH0=tab37/256;/計算音符對應的定時器計數(shù)值STL0=tab37%256;TR0=1;flag=0;while(P2&0x80)=0x00);/松手檢測TR0=0;P1=0xff; else if(ctrl=0)if(P2&0x01)=

32、0x00)/檢測按鍵確實按下,進行按鍵處理delay(10); /去抖動if(P2&0x01)=0x00) y2(5);x2(5);x5(5);y2(5);y1(5);x2(5);x5(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x5(5);y1(5); y2(5);x3(5);x6(5);y2(5);y1(5);x3(5);x6(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x6(5);y1(5); y3(5);x4_(5);x6(5);y3(5);y2(5);x4_(5);x6(5);y2(5

33、);y1(5);x4_(5);x6(5);y1(5);y2(5);x4_(5);x6(5);y2(5); y3(4);x4(5);x5_(5);y3(5);y2(5);x4(5);x5_(5);y2(5);y1(5);x1(5);x4(5);y1(5); y2(5);x2(5);x4(5);y2(5); y2(5);x2(5);x5(5);y2(5);y1(5);x2(5);x5(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x5(5);y1(5); y2(5);x3(5);x6(5);y2(5);y1(5);x3(5);x6(5);y1(5);x7

34、(5);x2(5);x5(5);x7(5);y1(5);x2(5);x6(5);y1(5); y3(5);x4_(5);x6(5);y3(5);y2(5);x4_(5);x6(5);y2(5);y1(5);x4_(5);x6(5);y1(5);y2(5);x4_(5);x6(5);y2(5); y3(5);x4(5);x5_(5);y3(5);y2(5);x4(5);x5_(5);y2(5);y4(17);y3(17);y1(17);y1(17);y1(17); P1=0xff;if(P2&0x02)=0x00)delay(10); /去抖動if(P2&0x02)=0x00)y

35、5(8);y3(4);y4(4);y5(8);y3(4);y4(4);y5(4);x5(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y3(8);y1(4);y2(4);y3(8);x3(4);x4(4);x5(4);x6(4);x5(4);x4(4);x5(4);y1(4);x7(4);y1(4);x6(8);y1(4);x7(4);x6(8);x5(4);x4(4);x5(4);x4(4);x3(4);x4(4);x5(4);x6(4);x7(4);y1(4);x6(8);y1(4);x7(4);y1(8);x7(4);y1(4);x7(4);x6(4);x

36、7(4);y1(4);y2(4);y3(4);y4(4);y5(4);y5(8);y3(4);y4(4);y5(8);y3(4);y4(4);y5(4);x5(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y3(8);y1(4);y2(4);y3(8);x3(4);x4(4);x5(4);x6(4);x5(4);x4(4);x5(4);y1(4);x7(4);y1(4);x6(8);y1(4);x7(4);x6(8);x5(4);x4(4);x5(4);x4(4);x3(4);x4(4);x5(4);x6(4);x7(4);y1(4);x6(8);y1(4);x

37、7(4);y1(8);x7(4);y1(4);x7(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y5(4);P1=0xff; void t0(void) interrupt 1 /定時器T0中斷服務函數(shù)TH0=STH0;TL0=STL0;P1_0=P1_0; /產(chǎn)生方波2. 副單片機程序代碼#include <REGX51.H>unsigned char temp;unsigned char STH0;unsigned char STL0;unsigned int code tab= /音符表0,/DO DO# RE RE# MI FAFA# SO

38、SO# LALA# SI63628,63731,63853,63928,64021,64103,64185,64260,64331,64400,64463,64524,64580,64633,64684,64732,64777,64820,64860,64898,64934,64968,64994,65030,65058,65085,65110,65134,65157,65178,65198,65217,65235,65252,65268,65283,65297,65311,65323,65335,65346,65357,65367,65377,65385,65394,65402,65409;

39、void delay(unsigned int a) unsigned int b,c; for(b=0;b<a;b+) for(c=0;c<1000;c+);void delaymusic(unsigned char d) unsigned long e,f;for(e=0;e<d;e+)for(f=0;f<1030;f+);/音符定義void x0(unsigned char g)EA=0;STH0=tab0/256;STL0=tab0%256;TR0=1;delaymusic(g);TR0=0;void m1(unsigned char g)EA=1;STH0=t

40、ab1/256;STL0=tab1%256;TR0=1;delaymusic(g);TR0=0;void m1_(unsigned char g)EA=1;STH0=tab2/256;STL0=tab2%256;TR0=1;delaymusic(g);TR0=0;void m2(unsigned char g)EA=1;STH0=tab3/256;STL0=tab3%256;TR0=1;delaymusic(g);TR0=0;void m2_(unsigned char g)EA=1;STH0=tab4/256;STL0=tab4%256;TR0=1;delaymusic(g);TR0=0;v

41、oid m3(unsigned char g)EA=1;STH0=tab5/256;STL0=tab5%256;TR0=1;delaymusic(g);TR0=0;void m4(unsigned char g)EA=1;STH0=tab6/256;STL0=tab6%256;TR0=1;delaymusic(g);TR0=0;void m4_(unsigned char g)EA=1;STH0=tab7/256;STL0=tab7%256;TR0=1;delaymusic(g);TR0=0;void m5(unsigned char g)EA=1;STH0=tab8/256;STL0=tab

42、8%256;TR0=1;delaymusic(g);TR0=0;void m5_(unsigned char g)EA=1;STH0=tab9/256;STL0=tab9%256;TR0=1;delaymusic(g);TR0=0;void m6(unsigned char g)EA=1;STH0=tab10/256;STL0=tab10%256;TR0=1;delaymusic(g);TR0=0;void m6_(unsigned char g)EA=1;STH0=tab11/256;STL0=tab11%256;TR0=1;delaymusic(g);TR0=0;void m7(unsig

43、ned char g)EA=1;STH0=tab12/256;STL0=tab12%256;TR0=1;delaymusic(g);TR0=0;void n1(unsigned char g)EA=1;STH0=tab13/256;STL0=tab13%256;TR0=1;delaymusic(g);TR0=0;void n1_(unsigned char g)EA=1;STH0=tab14/256;STL0=tab14%256;TR0=1;delaymusic(g);TR0=0;void n2(unsigned char g)EA=1;STH0=tab15/256;STL0=tab15%25

44、6;TR0=1;delaymusic(g);TR0=0;void n2_(unsigned char g)EA=1;STH0=tab16/256;STL0=tab16%256;TR0=1;delaymusic(g);TR0=0;void n3(unsigned char g)EA=1;STH0=tab17/256;STL0=tab17%256;TR0=1;delaymusic(g);TR0=0;void n4(unsigned char g)EA=1;STH0=tab18/256;STL0=tab18%256;TR0=1;delaymusic(g);TR0=0;void n4_(unsigne

45、d char g)EA=1;STH0=tab19/256;STL0=tab19%256;TR0=1;delaymusic(g);TR0=0;void n5(unsigned char g)EA=1;STH0=tab20/256;STL0=tab20%256;TR0=1;delaymusic(g);TR0=0;void n5_(unsigned char g)EA=1;STH0=tab21/256;STL0=tab21%256;TR0=1;delaymusic(g);TR0=0;void n6(unsigned char g)EA=1;STH0=tab22/256;STL0=tab22%256;

46、TR0=1;delaymusic(g);TR0=0;void n6_(unsigned char g)EA=1;STH0=tab23/256;STL0=tab23%256;TR0=1;delaymusic(g);TR0=0;void n7(unsigned char g)EA=1;STH0=tab24/256;STL0=tab24%256;TR0=1;delaymusic(g);TR0=0;void x1(unsigned char g)EA=1;STH0=tab25/256;STL0=tab25%256;TR0=1;delaymusic(g);TR0=0;void x1_(unsigned

47、char g)EA=1;STH0=tab26/256;STL0=tab26%256;TR0=1;delaymusic(g);TR0=0;void x2(unsigned char g)EA=1;STH0=tab27/256;STL0=tab27%256;TR0=1;delaymusic(g);TR0=0;void x2_(unsigned char g)EA=1;STH0=tab28/256;STL0=tab28%256;TR0=1;delaymusic(g);TR0=0;void x3(unsigned char g)EA=1;STH0=tab29/256;STL0=tab29%256;TR

48、0=1;delaymusic(g);TR0=0;void x4(unsigned char g)EA=1;STH0=tab30/256;STL0=tab30%256;TR0=1;delaymusic(g);TR0=0;void x4_(unsigned char g)EA=1;STH0=tab31/256;STL0=tab31%256;TR0=1;delaymusic(g);TR0=0;void x5(unsigned char g)EA=1;STH0=tab32/256;STL0=tab32%256;TR0=1;delaymusic(g);TR0=0;void x5_(unsigned ch

49、ar g)EA=1;STH0=tab33/256;STL0=tab33%256;TR0=1;delaymusic(g);TR0=0;void x6(unsigned char g)EA=1;STH0=tab34/256;STL0=tab34%256;TR0=1;delaymusic(g);TR0=0;void x6_(unsigned char g)EA=1;STH0=tab35/256;STL0=tab35%256;TR0=1;delaymusic(g);TR0=0;void x7(unsigned char g)EA=1;STH0=tab36/256;STL0=tab36%256;TR0=1;delaymusic(g);TR0=0;void y1(unsigned char g)EA=1;STH0=tab37/256;STL0=tab37%256;TR0=1;delaymusic(g);TR0=0;void y1_(unsigned char g)EA=1;STH0=tab38/256;STL0=tab38%256;TR0=1;delaymusic(g);TR0=0;void y2(unsigned char g)EA=1;STH0=tab39/256;ST

溫馨提示

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

評論

0/150

提交評論