仿真圖:
PCB圖:
- #include <reg52.h>
- #include<stdlib.h>
- #include"ours.h"
- #define uchar unsigned char
- #define SNAKE 20 //最長蛇身
- #define SPEED 50 //運動速度控制,值越大,則掃描整個蛇
- // 身的時間越長,即表現為移動速度慢
- #define MQ 5 //進入下一關的加速,pace=pace-MQ
- sbit P3_0=P3^0; sbit P3_2=P3^2; sbit P3_3=P3^3;
- //蜂鳴器位 外部中斷0 外部中斷1
- sbit P3_7=P3^7; sbit P3_6=P3^6; sbit P3_1=P3^1;//指示燈位
- sbit P0_7=P0^7;sbit P0_6=P0^6;sbit P0_5=P0^5;sbit P0_4=P0^4;
- //暫停 增關卡,加速 減關卡,退出 加速
- //do ruai mi fa
- sbit P0_2=P0^2;sbit P0_1=P0^1;sbit P0_3=P0^3;sbit P0_0=P0^0;
- // 左 下 右 上
- // sao la xi 退出
- sbit P2_7=P2^7;sbit P2_6=P2^6;sbit P2_5=P2^5;sbit P2_4=P2^4;
- sbit P2_3=P2^3;sbit P2_2=P2^2;sbit P2_1=P2^1;sbit P2_0=P2^0;
-
- uchar x[SNAKE+1]; //蛇身的坐標 行
- uchar y[SNAKE+1]; //蛇身的坐標 列
- uchar n,i,pace,xz; //當前蛇長,通用變量,當前速度,選擇游戲標志
- char bdata guanqia; //定義關卡,可謂尋址,便于控制指示燈
- sbit guanqia_0=guanqia^0;sbit guanqia_1=guanqia^1;sbit guanqia_2=guanqia^2;
- char addx,addy; //移動方向,同直角坐標系,addx為橫向,addy為縱向
- bit again,out; //再次產生果實變量,停止播放音樂變量
- bit pause=0; //暫停變量,1為暫停
- uchar tone_H,tone_L;//定時器初值,用來控制音調
- uchar ym; //選擇音樂
- uchar wait; //用于判斷是否已經開始游戲
- void display(uchar ); //聲明顯示函數
- void display_p(uchar); //暫停時調用該函數顯示
- bit knock(); //聲明撞擊函數
- void key_press(); //聲明按鍵函數
- void play1(unsigned int);
- void play(uchar *,uchar *);
- /**************************************************************
- 判斷是否碰撞,是則返回1,否則返回0
- **************************************************************/
- bit knock()
- { bit k=0;
- if(x[1]>7||y[1]>7)k=1; //撞墻
- for(i=2;i<n;i++)
- if((x[1]==x[i])&(y[1]==y[i]))k=1; //撞自己
- return k;
- }
- /**************************************************************
- 鍵位處理
- **************************************************************/
- void key_press()
- { switch(~P0)
- { case 1:addx=0;addy=addy==-1?-1:1;break;//上
- case 2:addx=0;addy=addy==1?1:-1; break;//下
- case 4:addy=0;addx=addx==1?1:-1; break;//左
- case 8:addy=0;addx=addx==-1?-1:1;break;//右
- case 5:if(addx!=1||addy!=-1){addx=-1;addy=1;}break;//左上
- case 9:if(addx!=-1||addy!=-1){addx=1;addy=1;}break;//右上
- case 6:if(addx!=1||addy!=1){addx=-1;addy=-1;}break;//左下
- case 10:if(addx!=-1||addy!=1){addx=1;addy=-1;}break;//右下
- case 128:delay10ms(2);pause=~pause; //暫停
- while(~P0_7)if(P0_5)display_p(1);break;
- //按住暫停鍵不放且沒有退出游戲請求
- }
- }
- /*********************************************************
- 顯示函數,按點從頭到尾掃描,周期為SNAKE,掃描k個周期運動一格
- **********************************************************/
- void display(uchar k) //顯示k次
- { while(k--)
- { for(i=0;i<SNAKE+1;i++) //掃描整個虛擬蛇身
- { P2=0xff;P1=0xff; //滅燈
- P2=~mux(y[i]);P1=~mux(x[i]);//按點依次顯示
- delay1ms(1); //顯示延時1ms
- if(~P0) key_press(); //鍵位處理
- if(~P0_5)k=0; //判斷是否退出游戲
- }
- }
- }
- /*********暫停時調用該函數顯示,以防閃爍*******************/
- void display_p(uchar k) //顯示k次
- { while(k--)
- { for(i=0;i<SNAKE+1;i++) //掃描整個虛擬蛇身
- { P2=0xff;P1=0xff; //滅燈
- P2=~mux(y[i]);P1=~mux(x[i]);//按點依次顯示
- delay1ms(1); //顯示延時1ms
- }
- }
- }
- /*****外部中斷1,用于切換游戲,xz=0為貪吃蛇,xz=1為電子琴******/
- void my_int1(void) interrupt 2
- { delay10ms(2); //去抖動
- if(wait) //游戲開始前,用于選擇游戲
- if(~P3_3)
- if(++xz==2)xz=0; //共有兩個游戲,所以xz只能為0或1
- if(~wait) //游戲已開始(只在電子琴里有效)
- out=1; //停止播放音樂
- while(~P3_3); //直到松開按鍵,才跳出中斷,以防xz連續變化
- }
- /**************************************************************
- ******* 主程序 ***************************************
- ***************************************************************/
- void main(void)
- { EA=1; //開總中斷
- EX0=1; //開外部中斷0
- EX1=1; //開外部中斷1
- /***********************************************************************
- ***************** 貪吃蛇 ****************************************
- ************************************************************************/
- TCS:while(1)
- { /**************初始化游戲**********************/
- for(i=3;i<SNAKE+1;i++)x[i]=100;//初始化虛擬蛇身
- for(i=3;i<SNAKE+1;i++)y[i]=100;//初始化虛擬蛇身
- n=3; //初始蛇身長為n-1
- y[1]=1;x[1]=0; //初始蛇頭位置
- y[2]=0;x[2]=0; //初始蛇尾位置
- addx=0;addy=0; //初始位移偏移
- pace=SPEED; //給運動速度賦初值
- /*************產生果實*******************************/
- do
- { x[0]=rand()%8; y[0]=rand()%8;//產生隨機果實
- again=0;
- for(i=1;i<n;i++) //判斷是否與蛇身重疊
- if((x[0]==x[i])&&(y[0]==y[i]))again=1;
- }while(again); //若重疊則再次產生
- /************等待開始游戲,貪吃蛇開始前可選關****************/
- guanqia=1; //第一關
- P3_7=~guanqia_2;P3_6=~guanqia_1;P3_1=~guanqia_0;//顯示關卡
- while(1) //等待選擇游戲
- { wait=1; //等待選擇游戲
- if(xz) goto DZQ; //如果xz=1,則進入電子琴
- display_p(1); //顯示貪吃蛇初始位置
- if(~P0_3|~P0_0)break;//如果按上或右鍵,則開始游
- /*************選關******************************************/
- if(~P0_6) //增關卡
- { delay10ms(2); //去抖動
- if(~P0_6)
- { if(++guanqia<=7)//最大到7關
- { P3_7=~guanqia_2;P3_6=~guanqia_1;P3_1=~guanqia_0;
- //將其值用發光二極管以二進制的形式顯示出來
- pace=pace-MQ; //加速
- }else --guanqia;
- while(~P0_6)display_p(1);
- //直到松開按鍵才跳出,以防連續增加關卡
- }
- }
- if(~P0_5) //減關卡
- { delay10ms(2);
- if(~P0_5)
- { if(--guanqia>=1)
- { P3_7=~guanqia_2;P3_6=~guanqia_1;P3_1=~guanqia_0;
- pace=pace+MQ;
- }else ++guanqia;
- while(~P0_5)display_p(1);
- }
- }
- }
-
- /*************貪吃蛇游戲正在運行**************************/
- while(1)
- { wait=0; //游戲已開始,wait置0
- if(knock()){pace=SPEED;break;} //判斷是否碰撞
- /*************顯示部分************************/
- if(P0_6&P0_4)display(pace); //判斷是否速度運動
- else display(10);//當P0^4或P0^6被按下時加速運動
- if(~P0_5)break; //判斷是否退出
- /*************判斷是否吃東西,及進入下一關**************/
- if((y[0]==y[1]+addx)&&(x[0]==x[1]+addy)) //如果吃到
- { n++; //蛇身加1
- if(n==SNAKE+1) //如果進入下一關
- { n=3; //蛇身長從2開始
- pace=pace-MQ; guanqia++; //運動加速,關卡加1
- P3_7=~guanqia_2;P3_6=~guanqia_1;P3_1=~guanqia_0;
- //將關卡的值用三個指示燈顯示出來
- for(i=3;i<SNAKE+1;i++)x[i]=100; //初始化虛擬蛇身
- for(i=3;i<SNAKE+1;i++)y[i]=100; //初始化虛擬蛇身
- }
- do
- { x[0]=rand()%8;y[0]=rand()%8;//產生隨機果實
- again=0;
- for(i=1;i<n;i++) //判斷是否與蛇身重疊
- if((x[0]==x[i])&(y[0]==y[i]))again=1;
- }while(again); //若重疊則再次產生
- }
- /*************判斷蛇身是否移動**********************/
- if(~pause) //如果不暫停
- { for(i=n-1;i>1;i--)
- { x[i]=x[i-1];y[i]=y[i-1];} //蛇身從尾到頭移動
- y[1]=y[1]+addx;x[1]=x[1]+addy;//蛇頭移動1格
- }
- }
- }
- /*******************************************************************
- *************** 電子琴 ************************************
- ********************************************************************/
- DZQ:while(1)
- { P3_0=1;
- ET0=1; //啟用定時器0中斷
- TMOD=0x01; //定時器0工作在方式1
- ym=0;out=0; //選擇音樂及退出播放位無效
- /***********等待開始游戲********************************/
- while(1)
- { wait=1; //等待選擇游戲
- P2=0x00;P1=0xc7; //點亮點陣
- P3_7=1;P3_6=1;P3_1=1; //關閉指示燈
- if(~P0_7|~P0_6|~P0_5|~P0_4|~P0_3|~P0_2|~P0_1)break;
- //7個鍵隨便按一個則開始電子琴
- if(xz==0)goto TCS;//如果xz=0,則進入貪吃蛇游戲
- }
- /***************電子琴正在運行*********************/
- while(1)
- { wait=0; //游戲已開始,wait置0
- P3_7=0;P3_6=0;P3_1=0;//開指示燈
- if(P0_0==0)break; //如果按下P0^0則退出電子琴
- if(ym) //如果有音樂請求
- switch(ym) //選擇音樂,最多7首
- { case 128:play(song1,beat1);ym=0;out=0;break;
- case 64: play(song2,beat2);ym=0;out=0;break;
- case 32:play(song3,beat3);ym=0;out=0;break;
- case 16: play(song4,beat4);ym=0;out=0;break;
- case 4:play(song5,beat5);ym=0;out=0;break;
- case 2: play(song6,beat6);ym=0;out=0;break;
- case 8: play(song7,beat7);ym=0;out=0;break;
- }P3_0=1;
- switch(~P0)
- { case 128:P2_0=1;play1(956);P2_0=0;break;
- case 64: P2_1=1;play1(852);P2_1=0;break;
- case 32: P2_2=1;play1(759);P2_2=0;break;
- case 16: P2_3=1;play1(716);P2_3=0;break;
- case 4: P2_4=1;play1(638);P2_4=0;break;
- case 2: P2_5=1;play1(568);P2_5=0;break;
- case 8: P2_6=1;play1(506);P2_6=0;break;
- }P3_0=1;
- }
- }
- }
- /****自己彈奏時調用該函數***********/
- void play1(x)
- { tone_H=(65536-x)/256;
- tone_L=(65536-x)%256;
- TH0=tone_H;
- TL0=tone_L;
- TR0=1;
- while(~P0);
- TR0=0;
- }
- /****播放音樂時調用該函數*******************/
- void play(uchar *song,uchar *beat)
- { i=0;
- while(song[i]!=50&&out!=1)
- { tone_H=(65536-tone[song[i]])/256;
- tone_L=(65536-tone[song[i]])%256;
- TH0=tone_H;
- TL0=tone_L;
- if(song[i])TR0=1;
- beat_125ms(beat[i]);
- i++;
- TR0=0;
- }
- }
- /****定時器0中斷用于產生聲******/
- void tone_timer(void) interrupt 1
- { TH0=tone_H;
- TL0=tone_L;
- P3_0=~P3_0;
- }
- /****外部中斷0,用于控制播放那個曲子*****/
- void my_int0(void) interrupt 0
- { if(~P0) //如果有選擇
- ym=~P0; //則將其值賦給ym
- }
- ours庫函數
- #define uchar unsigned char
- /******判斷具體的亮點****************/
- unsigned char mux(unsigned char temp)
- { switch(temp)
- { case 7:return 128; break;
- case 6:return 64; break;
- case 5:return 32; break;
- case 4:return 16; break;
- case 3:return 8; break;
- case 2:return 4; break;
- case 1:return 2; break;
- case 0:return 1; break;
- default: return 0;
- }
- }
- /*******************************************
- ************** 延時函數 ****************
- ********************************************/
- void delay1ms(int x) //延時1ms
- { int i,j;
- for(i=0;i<x;i++)
- for(j=0;j<122;j++);
- }
- void delay10ms(int x) //延時10ms
- { int i,j;
- for(i=0;i<x;i++)
- for(j=0;j<1934;j++);
- }
- /**********節拍延時函數**************/
- void beat_125ms(uchar x) //延時125ms
- { uchar i;
- unsigned int j;
- for(i=0;i<x;i++)
- for(j=0;j<24934;j++);
- }
- /*******************************************************************
- ****************樂譜************************************************
- *********************************************************************/
- unsigned int code tone[]={1012,
- 956, 852, 759, 716, 638, 568, 506, 478, 478,478, //中音
- 1908,1701,1515,1433,1276,1136,1012, 956, 956,956, //低音
- 478, 426, 379, 358, 319, 284, 253, 233 }; //高音
- //dao ruai mi fa sao la xi
- //song為樂譜,當出現50時表示結束;beat為節奏(以0.125秒為單位),
- /*************畫心*************/
- uchar code song1[]={
- 3,5, 6,6,21,7,6,5, 2,3,3,3,5, 6,6,7,21,5,21,22,
- 22,23,23,25,23, 23,22,21,22,21,7, 21,22,7,5,6,3,5, 6,6,23,22,21,7,
- 5,6,6,3,4,5, 6,6,21,7,6,5,6, 3,3,3,3,5, 6,6,7,21,5,21,22,
- 22,23,23,25,23, 23,22,21,22,21,7, 21,22,7,5,6,3,5, 6,6,23,22,21,7,
- 5,6,6,25,23, 23,22,21,22,22,25, 23,23,23,25,23, 23,22,21,22,25,26,
- 22,23,23,25,23, 23,22,21,22,21,7, 21,22,7,5,6,3,5, 6,6,23,22,21,7,
- 5,6,6,50};
- uchar code beat1[]={
- 4,4, 8,4,4,4,4,8, 6,2,16,4,4, 8,4,4,4,4,4,4,
- 4,4,16,4,4, 8,4,4,8,4,4, 4,4,4,4,8,4,4, 8,4,4,4,4,8,
- 6,2,6,4,4,4, 8,4,4,4,4,4,4, 4,4,8,4,4, 8,4,4,4,4,4,4,
- 4,4,16,4,4, 8,4,4,8,4,4, 4,4,4,4,8,4,4, 8,4,4,4,4,8,
- 6,2,18,4,4, 8,4,4,8,4,4, 4,4,8,4,4, 8,4,4,4,4,8,
- 6,2,16,4,4, 8,4,4,8,4,4, 4,4,4,4,8,4,4, 8,4,4,4,4,8,
- 6,2,24,4};
- /***********梁祝*********************/
- uchar code song2[]={
- 7,6,7, 5,6,4,3, 2,3,4,3,5,3, 2,3,5,2,3,4,3,2,
- 1,5, 17,2,16,1, 15,16,1, 15,
- 13,15,16, 1,2,16,1,15, 5,21,6,5,3,5, 2,
- 2,3,17,16, 15,16,1,2, 13,1,16,15,16,1, 15,
- 3,5,17,2, 16,1,15, 13,15,13,15,16,17,2, 16,15,16,
- 1,2,5,3, 2,3,2,1,16,15, 13,1, 16,1,16,15,13,15,16,1,
- 15,3,5, 2,3,2,1,17,16, 15,50};
- uchar code beat2[]={
- 4,4,4, 6,2,4,4, 2,2,2,2,6,2, 2,2,2,2,2,2,2,2,
- 12,4, 4,4,4,4, 12,2,2, 16,
- 8,6,2, 6,2,2,2,4, 6,2,2,2,2,2, 16,
- 6,2,4,4, 6,2,4,4, 4,4,2,2,2,2, 16,
- 6,2,4,4, 2,2,8, 2,4,2,2,2,2,2, 12,2,2,
- 6,2,4,4, 4,2,2,4,2,2, 8,8, 3,1,2,2,2,2,2,2,
- 12,2,2, 2,2,2,2,4,4, 16,2};
- /***********兄弟無數*******************/
- uchar code song3[]={
- 6,6,5,6,0, 3,7,21,7,6,0, 7,6,7,5,3,0, 2,2,1,2,3,0,
- 6,5,6,5,3,7,6, 5,6,4,3,2,1,2, 6,5,6,5,3,7,6, 5,6,4,3,2,1,2,
- 3,21,21,7,22, 7,6,6,3,5, 3,4,3,2,1,2,3,5, 2,
- 22,22,6, 21,7,0, 7,7,6,6,2,5,6, 6,3,
- 22,22,6, 21,7,0, 7,7,6,6,2,0,22, 7,6,6,
- 7,7,7,6,3,6,4,3, 2, 3,22,7,6,5,6,7,7, 22,0,
- 22,23,6,6,
- 50};
- uchar code beat3[]={
- 8,8,4,4,8, 8,4,4,4,4,8, 8,4,4,4,4,8, 8,4,4,4,4,8,
- 6,2,4,4,4,8,4, 6,2,4,4,4,4,8, 6,2,4,4,4,8,4, 6,2,4,4,4,4,8,
- 4,8,4,8,8, 4,4,4,4,16, 6,2,4,4,4,4,4,4, 24,
- 24,4,4, 16,8,8, 8,4,4,4,4,4,4, 8,24,
- 24,4,4, 16,8,8, 8,4,4,4,4,4,4, 4,4,24,
- 6,2,4,4,4,4,4,4, 24, 6,2,4,4,4,4,4,4, 24,8,
- 2,2,4,24,
- 4};
- /*************傷不起******************/
- uchar code song4[]={
- 6,6,5,3,3, 6,6,5,3,3, 6,21,3,5,5, 3,2,3,3,
- 6,6,5,3,3, 6,6,5,3,3, 5,3,5,7,7, 7,5,6,6,
- 5,6,6,6,5,3, 5,6,6,6, 5,6,6,6,21,6,6, 5,6,5,3,3,
- 6,6,2,3,2,2,1, 16,2,3,2, 5,5,5,5,5,5,6, 7,6,7,
- 5,6,6,6,5,3, 5,6,6,6, 5,6,6,6,21,6, 5,6,5,3,3,
- 6,6,2,3,2,2,1, 16,2,3,2, 5,5,5,5,5,6, 7,7,6,7,
- 21,7,6,6,5,3, 5,6,7,6,6, 21,6,21,6,21,6,21,22, 3,3,3,2,3,
- 22,22,22,21,22,6,21, 22,23,22,21,22,7, 7,7,7,7,22,22,22,23, 7,3,5,6,6,
- 21,7,6,6,5,3, 5,6,7,6,6, 21,6,21,6,21,6,21,22, 3,3,3,2,3,
- 22,22,22,21,22,6,21, 22,23,22,21,22,7, 7,7,7,7,22,22,22,23, 7,3,5,6,6,
- 50};
- uchar code beat4[]={
- 4,2,4,2,4, 4,2,4,2,4, 4,2,4,2,4, 4,2,2,8,
- 4,2,4,2,4, 4,2,4,2,4, 4,2,4,2,4, 4,2,2,8,
- 2,2,4,4,2,2, 2,2,4,6, 2,2,2,2,4,2,2, 2,2,2,2,6,
- 2,2,2,2,4,2,2, 4,2,2,6, 2,2,2,2,4,2,2, 4,4,6,
- 2,2,4,4,2,2, 2,2,4,6, 2,2,2,2,4,4, 2,2,2,2,6,
- 2,2,2,2,4,2,2, 4,2,2,6, 2,2,2,2,4,4, 2,2,4,6,
- 4,2,2,4,2,2, 4,2,2,4,2, 2,2,2,2,2,2,2,2, 2,2,2,2,6,
- 2,2,2,2,4,2,2, 2,2,2,2,6,2, 2,2,2,2,2,2,2,2, 2,2,2,2,6,
- 4,2,2,4,2,2, 4,2,2,6,2, 2,2,2,2,2,2,2,2, 2,2,2,2,6,
- 2,2,2,2,4,2,2, 2,2,2,2,6,2, 2,2,2,2,2,2,2,2, 2,2,2,2,6,
- 4};
- /**************蘭若詞******************/
- uchar code song5[]={
- 16,17,1, 3,17,1, 16,16,16,17,1, 4,17,1,
- 16,16,17,1,3, 2,2,2,1, 2,2,3,4,2, 3,3,
- 16,17,1, 3,17,1, 16,16,16,17,1, 4,1,1,
- 16,16,17,1,3, 2,2,2,1, 2,1,2,3,15, 16,16,
- 3,5,6,7, 21,7,6,5,3, 6,5,3,2,1, 2,3,5,2,
- 3,3,5, 6,5,6,5, 6,7,21,7,6,5, 6,6,
- 6,3,5,6,7, 21,7,6,5,3, 6,5,3,2,1, 2,3,5,2,
- 3,2,1, 16,3,2,1, 16,3,2,3,5, 6,6,
- 50};
- uchar code beat5[]={
- 3,3,3, 9,6,3, 6,3,3,3,3, 9,6,3,
- 6,3,3,3,3, 9,3,3,3, 6,3,3,3,3, 9,9,
- 3,3,3, 9,6,3, 6,3,3,3,3, 9,6,3,
- 6,3,3,3,3, 9,3,3,3, 6,3,3,3,3, 9,9,
- 2,2,2,2, 3,3,3,6,3, 3,3,3,6,3, 6,3,6,3,
- 9,3,3, 6,3,6,3, 3,3,3,3,3,3, 9,9,
- 9,2,2,2,2, 3,3,3,6,3, 3,3,3,6,3, 6,3,6,3,
- 9,3,3, 6,3,6,3, 6,3,3,3,3, 9,9,
- 4};
- /***************二泉映月*******************/
- uchar code song6[]={
- 6,5,6,4,3, 2,2,3,1,1,2, 3,5,6,5,6,5,6,21, 5,3,5,5,3,2,6,5,6,1,2,
- 3,5,2,3,5,21,6,2,3,5, 1,21,6,21,23,23,22, 21,6,21,22,23,23,22,21,21,6,21,22,23, 5,5,3,5,6,5,6,21,
- 5,3,5,5,21,6,6,5,6,5,5, 3,5,3,4,3,5,2,3,2,1,16,1,16, 1,1,2,3,5,1,2,5,3,6, 5,
- 21,6,21,23,23,22, 21,6,21,22,23,23,22,21,21,6,21,22,23, 5,3,5,3,5, 6,21,21,3,5,3,5,6,5,21,6,
- 5,3,5,5,21,6,6,5,6,5,5, 3,5,3,4,3,5,2,3,2,1,16,1,16, 1,16,1,2,3,5,1,2,5,3,5,6, 5,3,5,5,6,5,5,3,5,
- 6,
- 6,6,6,5,6,21, 5,3,5,5,21,6,6,5,6,5,5, 3,15,3,4,3,5,2,3,2,1,16,1,16, 1,16,1,2,3,5,1,2,5,3,5,6,
- 5,
- 50};
- uchar code beat6[]={
- 8,2,2,2,2, 16,6,2,4,2,2, 12,4,4,4,2,2,2,2, 6,2,4,2,2,4,4,2,2,2,2,
- 12,4,3,1,2,2,2,2,2,2, 16,4,2,2,4,2,2, 12,4,3,1,2,2,4,6,4,2,2,2,2, 16,4,2,2,2,2,2,2,
- 6,2,2,4,2,4,4,2,2,2,2, 6,2,3,1,2,2,3,1,2,2,2,2,4, 8,6,2,2,2,4,2,2,2,2, 16,
- 4,2,2,4,2,2, 6,2,3,1,2,2,4,2,2,2,2,2,2, 16,2,2,2,2, 8,4,4,3,1,2,2,2,2,2,2,
- 6,2,2,4,2,4,4,2,2,2,2, 6,2,3,1,2,2,2,2,2,2,2,2,4, 6,2,6,2,2,2,4,3,1,2,2,2, 12,4,4,2,2,2,2,2,2,
- 16,
- 4,4,2,2,2,2, 6,2,2,4,2,4,4,2,2,2,2, 6,2,3,1,2,2,3,1,2,2,2,2,4, 6,2,6,2,2,2,4,3,1,2,1,1,
- 16,
- 4};
- /***********土耳其進行曲***********/
- uchar code song7[]={
- 7,6,5,6, 21,0,22,21,7,21, 23,0,24,23,22,23, 27,26,25,26,27,26,25,26,28,26,28,
- 27,26,25,26, 27,26,25,26, 27,26,25,24, 23,
- 21,22, 23,21,22, 23,22,21,7, 6,7,21,22,
- 7,5,21,22,23,21,22, 23,22,21,7, 6,22,7,5, 21,
- 23,24,23,22, 21,22,21,7,6,21,7,6, 5,6,7,5,3,4,5,3,6,5,7,6,21,7,21,22, 23,22,23,22,23,24,23,22,
- 21,22,21,7,6,21,7,6, 5,6,7,6,3,4,5,3, 4,5,6,4,2,3,4,2, 3,
- 5,4,3,2, 1,2,3,4,5,6,7,21,21,7,6,5,4,3,2, 1,2,3,4,5,6,7,21, 21,22,5,4,3,2,
- 1,2,3,4,5,6,7,21, 21,7,6,5,4,3,2, 3,5,1,3,2,4,7,2, 1,23,24,23,22,
- 21,22,21,7,6,21,7,6,5,6,7,5,3,4,5,3, 6,5,6,7,21,7,21,22,23,22,23,22,23,22,23,21, 24,23,24,23,24,23,24,23, 24,23,22,21,7,21,2,7,
- 21,22,23,6,5,6,7,5, 6,
- 50};
- uchar code beat7[]={
- 1,1,1,1, 2,2,1,1,1,1, 2,2,1,1,1,1, 1,1,1,1,1,1,1,1,4,2,2,
- 2,2,2,2, 2,2,2,2, 2,2,2,2, 4,
- 2,2, 4,2,2, 2,2,2,2, 2,2,2,2,
- 2,2,2,2,4,2,2, 2,2,2,2, 2,2,2,2, 4,
- 1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 4,
- 1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 2,2,1,1,1,1,
- 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 4,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1, 4,
- 4};
復制代碼
|