wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于51單片機的雙人對戰小游戲的實現

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年10月20日   【字體:
#include<AT89X52.h>
unsigned char position1=1;//position一共有3種狀態,0代表最邊上,1代表初始位置,2代表最前的位置
unsigned char position2=1;//position一共有3種狀態,0代表最邊上,1代表初始位置,2代表最前的位置
unsigned char fist1=0;//1沒有出拳
unsigned char fist2=0;//2沒有出拳
unsigned char leg1=0;//1沒有出腳
unsigned char leg2=0;//2沒有出腳

unsigned char count_back1=0;
unsigned char count_back2=0;

unsigned char count_forth1=0;
unsigned char count_forth2=0;

unsigned char time0_count=0;
unsigned char time1_count=0;

unsigned char blood1=7;
unsigned char blood2=7;

unsigned char buff1[16]={0x00,0x18,0x24,0x24,0x18,0x18,0x7E,0x66,//右邊小人的初始形態
                                                0x66,0x24,0x3C,0x24,0x24,0x24,0x24,0x00};

unsigned char buff2[16]={0x00,0x18,0x24,0x24,0x18,0x18,0x7E,0x66,//右邊小人的初始形態
                                                0x66,0x24,0x3C,0x24,0x24,0x24,0x24,0x00};

//定義兩名選手的操作鍵

//選手1
#define S11 P1_0//向前
#define S12 P1_1//后退
#define S13 P1_2//出拳
#define S14 P1_3//出腿

//選手2
#define S21 P1_4//向前
#define S22 P1_5//向后
#define S23 P1_6//出出
#define S24 P1_7//腿拳

//兩個選手的led點陣行掃描使能端
#define A_1 P0_0
#define B_1 P0_1
#define C_1 P0_2
#define D_1 P0_3


//兩個選手的2個595使能端
#define SCLK P2_0
#define SI P2_1
#define RCLK P2_2


//當按下S1時 開始游戲,游戲結束時顯示哪方獲勝,然后按下S2鍵后重新開始新一輪游戲
#define S1 P2_6
#define S2 P2_7

//第一個人的74HC154區域行選
#define NUMLED1OPEN(); {D_1=0;C_1=0;B_1=0;A_1=0;};
#define NUMLED2OPEN(); {D_1=0;C_1=0;B_1=0;A_1=1;};
#define NUMLED3OPEN(); {D_1=0;C_1=0;B_1=1;A_1=0;};
#define NUMLED4OPEN(); {D_1=0;C_1=0;B_1=1;A_1=1;};
#define NUMLED5OPEN(); {D_1=0;C_1=1;B_1=0;A_1=0;};
#define NUMLED6OPEN(); {D_1=0;C_1=1;B_1=0;A_1=1;};
#define NUMLED7OPEN(); {D_1=0;C_1=1;B_1=1;A_1=0;};
#define NUMLED8OPEN(); {D_1=0;C_1=1;B_1=1;A_1=1;};
#define NUMLED9OPEN(); {D_1=1;C_1=0;B_1=0;A_1=0;};
#define NUMLED10OPEN(); {D_1=1;C_1=0;B_1=0;A_1=1;};
#define NUMLED11OPEN(); {D_1=1;C_1=0;B_1=1;A_1=0;};
#define NUMLED12OPEN(); {D_1=1;C_1=0;B_1=1;A_1=1;};
#define NUMLED13OPEN(); {D_1=1;C_1=1;B_1=0;A_1=0;};
#define NUMLED14OPEN(); {D_1=1;C_1=1;B_1=0;A_1=1;};
#define NUMLED15OPEN(); {D_1=1;C_1=1;B_1=1;A_1=0;};
#define NUMLED16OPEN(); {D_1=1;C_1=1;B_1=1;A_1=1;};

//0是第一個選手的索引表的開始 80是第二個選手開始在表中的位置
#define START1 0
#define START2 80
#define INIT 16//第一個選手從的初始狀態在中間 為16
#define JUMP_UP_AND_BACK1 48//向后跳起的緩沖動作的位置
#define JUMP_UP_AND_BACK2 64//向后跳起的緩沖動作的位置
#define BACK 0//在最邊后面的狀態的位置
#define FORTH 32//在最前面的狀態的位置

#define GO 0//游戲的開始畫面 然后按S1開始游戲
//#define KO 32
#define P1_WIN 64//顯示P1勝利在索引表中的位置
#define P2_WIN 96//顯示P2勝利在索引表中的位置

//圖像表
//人物的各種形態和位置
unsigned char code role_action[]=
{
0x00,0x0C,0x12,0x12,0x0C,0x0C,0x3F,0x33,//左邊小人后退一步的狀態0
0x33,0x12,0x1E,0x12,0x12,0x12,0x12,0x00,

0x00,0x18,0x24,0x24,0x18,0x18,0x7E,0x66,//左邊小人的初始形態16
0x66,0x24,0x3C,0x24,0x24,0x24,0x24,0x00,

0x00,0x30,0x48,0x48,0x30,0x30,0xFC,0xCC,//左邊小人前進一步的狀態32
0xCC,0x48,0x78,0x48,0x48,0x48,0x48,0x00,

0x18,0x24,0x24,0x18,0x18,0x66,0x66,0x65,//左邊小人向右后方向跳起的動作1 48
0x24,0x3C,0x24,0x12,0x12,0x12,0x00,0x00,

0x0C,0x12,0x12,0x0C,0x0C,0x33,0x33,0x53,//左邊小人向右后方向跳起的動作2 64
0x12,0x1E,0x12,0x24,0x24,0x24,0x00,0x00,

0x00,0x30,0x48,0x48,0x30,0x30,0xCC,0xCC,//右邊小人后退一步的動作80
0xCC,0x48,0x78,0x48,0x48,0x48,0x48,0x00,

0x00,0x18,0x24,0x24,0x18,0x18,0x7E,0x66,//左邊小人的初始形態96
0x66,0x24,0x3C,0x24,0x24,0x24,0x24,0x00,

0x00,0x0C,0x12,0x12,0x0C,0x0C,0x33,0x33,//右邊小人前進一步的狀態112
0x33,0x12,0x1E,0x12,0x12,0x12,0x12,0x00,

0x18,0x24,0x24,0x18,0x18,0x66,0x66,0xA6,//右邊小人向左后方向跳起的動作1 128
0x24,0x3C,0x24,0x48,0x48,0x48,0x00,0x00,

0x30,0x48,0x48,0x30,0x30,0xCC,0xCC,0xCA,//右邊小人向左后方向跳起的動作2 144
0x48,0x78,0x48,0x24,0x24,0x24,0x00,0x00


};

//開機畫面和結束時顯示哪方勝利的索引表
unsigned char code welecome_and_end[]=
{
0x00,0x00,0x00,0x04,0xF9,0xF4,0xF9,0xF4,0x00,0x04,0xF9,0xF4,0xF9,0xF4,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//GO!!!  0

0x00,0x00,0x22,0x38,0x24,0x44,0x28,0x44,0x30,0x44,0x28,0x44,0x24,0x44,0x22,0x44,
0x22,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x49,0x45,0x14,0x28,0xA2,0x92,0x49,//KO 32

0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x12,0x51,0x13,0x55,0x12,0x55,0x52,0x54,0xA7,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//P1 WIN 64

0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0x24,0xA2,0x2A,0xAA,0x24,0xAA,0xA2,0xA9,0x4E,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//P2 WIN  96

};

void delayu(unsigned int time);//延時函數 延時0.1ms

void delay(unsigned int time);//延時函數 延時1ms

void NUMLEDOPEN(int i);//74HC154進行行選擇,第i行


void dat_in(unsigned char dat);//將8為數據從597傳送過去


void display_one_page();//先加載各方“血”的狀態,并顯示一張圖片,顯示人的狀態和血的狀態
void display_scene(int scene);//顯示開機畫面和勝負畫面的函數
void change_buffer_to1(int position);//修改1的圖像狀態緩沖 從人物索引表的第position個8位數個開始顯示
void change_buffer_to2(int position);//修改2的圖像狀態緩沖 從人物索引表的第position個8位數個開始顯示
void action_back1();//第1個人向后一步 并將position減1 直到它不能后退
void action_back2();//第2個人向后一步 并將position減1 直到它不能后退
void action_forth1();//第1個人向前一步 并將position加1 直到它不能后退
void action_forth2();//第2個人向前一步 并將position加1 直到它不能后退
void fist_change_buff1();//由于1出拳對畫面的改動 要調用change_buff1_to_bit(int pos)和change_buff1_to_bit_low(int pos)函數
void leg_change_buff1();//由于1出腿對畫面的改動        要調用change_buff1_to_bit(int pos)和change_buff1_to_bit_low(int pos)函數
void fist_change_buff2();//由于2出拳對畫面的改動 要調用change_buff1_to_bit(int pos)和change_buff1_to_bit_low(int pos)函數
void leg_change_buff2();//由于2出腿對畫面的改動 要調用change_buff1_to_bit(int pos)和change_buff1_to_bit_low(int pos)函數
void change_buff1_to_bit(int pos); //將特定某一位置一
void change_buff2_to_bit(int pos);//將特定某一位置一
void change_buff1_to_bit_low(int pos);//將特定某一位置0
void change_buff2_to_bit_low(int pos);//將特定某一位置0
void action_fist1();//第1個人出拳 并處理減血情況
void action_fist2();//第2個人出拳 并處理減血情況
void action_leg1();//第1個人出腿 并處理減血情況
void action_leg2();//第2個人出腿 并處理減血情況
void scan_key();
//這個是函數的主體部分 分別掃描并處理向后退 向前走 出拳 出腿的動作 當出拳和出腿的時候 開啟定時器
//這300ms內記錄是否有對方出拳出腿的動作 并按照先掃描向后退 后掃描向前進的順序 掃描一遍 并處理 如果沒有這兩個動作 直接返回調用出拳
//否則處理后再出拳 出腳的道理一致
void init_interrupt();//中斷位的設置
//開啟定兩個時器中斷 16位模式
void shed_blood1();
//記錄流血的數字
void shed_blood2();

void main()
{
        int i;
        while(1)
        {
                if(S1==0)
                {
                        delay(1);
                        if(S1==0)
                        {
                                for(i=0;i<blood1;i++)
                                {
                                        change_buff1_to_bit(120+i);
                                }
                                for(i=0;i<blood2;i++)
                                {
                                        change_buff2_to_bit(120+i);
                                }

                                init_interrupt();
                                scan_key();
                        }
                        while(S2)
                        {
                                if(blood1==0)
                                        display_scene(P2_WIN);
                                else
                                        display_scene(P1_WIN);
                        }
                        blood1=7;
                        blood2=7;
                        if(S2==0)
                        {
                                delay(1);
                                while(S2)
                                {
                                        if(blood1==0)
                                                display_scene(P2_WIN);
                                        else
                                                display_scene(P1_WIN);
                                }
                        }
                       
                }
                else
                {
                        while(S1)
                        {
                                display_scene(GO);
                        }
                }

        }
}

void delayu(unsigned int time)//延時函數 延時0.1ms
{
        unsigned int i,j;
        for(i=0;i<time;i++)
        for(j=0;j<100;j++);//1000次空操作的時間約為1ms
}

void delay(unsigned int time)//延時函數 延時1ms
{
        unsigned int i,j;
        for(i=0;i<time;i++)
        for(j=0;j<1000;j++);//1000次空操作的時間約為1ms
}

void dat_in(unsigned char dat)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                SCLK=0;
                if((dat&0X80)!=0)SI=1;
                        else SI=0;
                dat<<=1;
                SCLK=1;
        }
        //RCLK=0;                //dat_out
        //RCLK=1;
}



void NUMLEDOPEN(int i)//74HC154進行行選擇,顯示第一個人的led區
{
        if(i==0)
        {NUMLED1OPEN();return;}
        if(i==1)
        {NUMLED2OPEN();return;}
        if(i==2)
        {NUMLED3OPEN();return;}
        if(i==3)
        {NUMLED4OPEN();return;}
        if(i==4)
        {NUMLED5OPEN();return;}
        if(i==5)
        {NUMLED6OPEN();return;}
        if(i==6)
        {NUMLED7OPEN();return;}
        if(i==7)
        {NUMLED8OPEN();return;}
        if(i==8)
        {NUMLED9OPEN();return;}
        if(i==9)
        {NUMLED10OPEN();return;}
        if(i==10)
        {NUMLED11OPEN();return;}
        if(i==11)
        {NUMLED12OPEN();return;}
        if(i==12)
        {NUMLED13OPEN();return;}
        if(i==13)
        {NUMLED14OPEN();return;}
        if(i==14)
        {NUMLED15OPEN();return;}
        if(i==15)
        {NUMLED16OPEN();return;}
}


void display_one_page()//顯示第i個人的一幀圖像
{

        int i;
        for(i=0;i<blood1;i++)
        {
                change_buff1_to_bit(120+i);
        }
        for(i=0;i<blood2;i++)
        {
                change_buff2_to_bit(120+i);
        }
                //NUMLEDOPEN1(1);
        for(i=0;i<16;i++)
        {
                dat_in(0x00);
                dat_in(0x00);
                NUMLEDOPEN(i);
       
                dat_in(buff2[i]);
                dat_in(buff1[i]);
                RCLK=0;                //dat_out
                RCLK=1;
                delayu(1);
        }

}

void display_scene(int scene)//第1個人整體動畫的顯示函數
{

        int i;
        for(i=0;i<16;i++)
        {
               
                NUMLEDOPEN(i);
       
                dat_in(welecome_and_end[scene+i*2]);
                dat_in(welecome_and_end[scene+i*2+1]);
                RCLK=0;                //dat_out
                RCLK=1;
                delayu(1);
        }
}


void change_buffer_to1(int position)//修改1的圖像狀態緩沖
{
        int i;
        for(i=0;i<16;i++)
                buff1[i]=role_action[position+i];
}

void change_buffer_to2(int position)//修改2的圖像狀態緩沖
{
        int i;
                for(i=0;i<16;i++)
                        buff2[i]=role_action[position+i];
}

void action_back1()//第1個人向后一步
{
        int i;
       
        if(position1>0)
        {
        if(position1==2)
        {
                i=15;
                change_buffer_to1(START1+JUMP_UP_AND_BACK2);
                while(i--)
                        display_one_page();
                i=5;
                change_buffer_to1(START1+INIT);
                while(i--)
                        display_one_page();
        }
        else if(position1==1)
        {
                i=15;
                change_buffer_to1(START1+JUMP_UP_AND_BACK2);
                while(i--)
                        display_one_page();
                i=5;
                change_buffer_to1(START1+BACK);
                while(i--)
                        display_one_page();
        }
        position1--;
        }
}

void action_back2()//第2個人向后一步
{
//先顯示向后跳起的動作 再顯示后退的狀態
        int i;
       
        if(position2>0)
        {
        if(position2==2)
        {
                i=15;
                change_buffer_to2(START1+JUMP_UP_AND_BACK1);
                while(i--)
                        display_one_page();
                i=5;
                change_buffer_to2(START2+INIT);
                while(i--)
                        display_one_page();
        }
        else if(position2==1)
        {
                i=15;
                change_buffer_to2(START2+JUMP_UP_AND_BACK2);
                while(i--)
                        display_one_page();
                i=5;
                change_buffer_to2(START2+BACK);
                while(i--)
                        display_one_page();
        }
        position2--;
        }
}

void action_forth1()//第1個人向前一步
{

        int i;

        if(position1<2)
        {
                if(position1==1)
                {
                        i=10;
                        change_buffer_to1(START1+FORTH);
                        while(i--)
                                display_one_page();
                }
                else if(position1==0)
                {
                        i=10;
                        change_buffer_to1(START1+INIT);
                        while(i--)
                                display_one_page();
                }
                position1++;
        }
       
}

void action_forth2()//第2個人向前一步
{
//直接顯示向前一步的狀態
int i;

        if(position2<2)
        {
                if(position2==1)
                {
                        i=10;
                        change_buffer_to2(START2+FORTH);
                        while(i--)
                                display_one_page();
                }
                else if(position2==0)
                {
                        i=10;
                        change_buffer_to2(START1+INIT);
                        while(i--)
                                display_one_page();
                }
                position2++;
        }
}

void change_buff1_to_bit(int pos)
{
        int p1=pos/8;
        int p2=pos%8;
        unsigned char flag=0x01;
        flag=flag<<p2;
        buff1[p1]=buff1[p1]|flag;
}

void change_buff2_to_bit(int pos)
{
        int p1=pos/8;
        int p2=pos%8;
        unsigned char flag=0x01;
        flag=flag<<p2;
        buff2[p1]=buff2[p1]|flag;
}

void change_buff1_to_bit_low(int pos)
{
        int p1=pos/8;
        int p2=pos%8;
        unsigned char flag=0x01;
        flag=flag<<p2;
        flag=~flag;
        buff1[p1]=buff1[p1]&flag;
}

void change_buff2_to_bit_low(int pos)
{
        int p1=pos/8;
        int p2=pos%8;
        unsigned char flag=0x01;
        flag=flag<<p2;
        flag=~flag;
        buff2[p1]=buff2[p1]&flag;
}



void fist_change_buff1()//由于1出拳對畫面的改動
{

        if(position1==0)
        {
                change_buff1_to_bit(54);
                change_buff1_to_bit(55);
                change_buff1_to_bit_low(61);
                change_buff1_to_bit_low(69);
        }
        else if(position1==1)
        {
                change_buff1_to_bit(55);
                change_buff2_to_bit(48);
                change_buff1_to_bit_low(62);
                change_buff1_to_bit_low(70);
        }
        else if(position1==2)
        {
                change_buff2_to_bit(48);
                change_buff2_to_bit(49);
                change_buff1_to_bit_low(63);
                change_buff1_to_bit_low(71);
        }
}
/*
這四個函數僅改變顯示緩沖的值
void fist_change_buff1();//由于1出拳對畫面的改動

void leg_change_buff1();//由于1出腿對畫面的改動

void fist_change_buff2();//由于2出拳對畫面的改動

void leg_change_buff2();//由于2出腿對畫面的改動
*/

void leg_change_buff1()//由于1出腿對畫面的改動
{

        if(position1==0)
        {
                change_buff1_to_bit(85);
                change_buff1_to_bit(86);
                change_buff1_to_bit(87);
                change_buff2_to_bit(80);
                change_buff1_to_bit_low(92);
                change_buff1_to_bit_low(100);
                change_buff1_to_bit_low(108);
                change_buff1_to_bit_low(116);
        }
        else if(position1==1)
        {
                change_buff1_to_bit(86);
                change_buff1_to_bit(87);
                change_buff2_to_bit(80);
                change_buff2_to_bit(81);
                change_buff1_to_bit_low(93);
                change_buff1_to_bit_low(101);
                change_buff1_to_bit_low(109);
                change_buff1_to_bit_low(117);
        }
        else if(position1==2)
        {
                change_buff1_to_bit(87);
                change_buff2_to_bit(80);
                change_buff2_to_bit(81);
                change_buff2_to_bit(82);
                change_buff1_to_bit_low(94);
                change_buff1_to_bit_low(102);
                change_buff1_to_bit_low(110);
                change_buff1_to_bit_low(118);
        }
}

void fist_change_buff2()//由于2出拳對畫面的改動
{
        if(position2==0)
        {
                change_buff2_to_bit(48);
                change_buff2_to_bit(49);
                change_buff2_to_bit_low(58);
                change_buff2_to_bit_low(66);
        }
        else if(position2==1)
        {
                change_buff2_to_bit(48);
                change_buff1_to_bit(55);
                change_buff2_to_bit_low(57);
                change_buff2_to_bit_low(65);
        }
        else if(position2==2)
        {
                change_buff1_to_bit(54);
                change_buff1_to_bit(55);
                change_buff2_to_bit_low(56);
                change_buff2_to_bit_low(64);
        }

}

void leg_change_buff2()//由于2出腿對畫面的改動
{

        if(position2==0)
        {
                change_buff2_to_bit(80);
                change_buff2_to_bit(81);
                change_buff2_to_bit(82);
                change_buff1_to_bit(87);
                change_buff2_to_bit_low(91);
                change_buff2_to_bit_low(99);
                change_buff2_to_bit_low(107);
                change_buff2_to_bit_low(115);
        }
        else if(position2==1)
        {
                change_buff2_to_bit(80);
                change_buff2_to_bit(81);
                change_buff1_to_bit(86);
                change_buff1_to_bit(87);
                change_buff2_to_bit_low(90);
                change_buff2_to_bit_low(98);
                change_buff2_to_bit_low(106);
                change_buff2_to_bit_low(114);
        }
        else if(position2==2)
        {
                change_buff2_to_bit(80);
                change_buff1_to_bit(85);
                change_buff1_to_bit(86);
                change_buff1_to_bit(87);
                change_buff2_to_bit_low(89);
                change_buff2_to_bit_low(97);
                change_buff2_to_bit_low(105);
                change_buff2_to_bit_low(113);
        }
}

void action_fist1()//第1個人出拳
{
        int i;
        i=5;
        fist_change_buff1();
        shed_blood2();
        while(i--)
        {
                display_one_page();
       
        }
        i=5;
        change_buffer_to1(position1*16);
        change_buffer_to2(position2*16);

}

void action_fist2()//第2個人出拳
{
        int i;
        i=10;
        fist_change_buff2();
        shed_blood1();
        while(i--)
        {
                display_one_page();
               
        }
        change_buffer_to1(position1*16);
        change_buffer_to2(position2*16);
}

void action_leg1()//第1個人出腿
{       
        int i;
        i=10;
        leg_change_buff1();
        shed_blood2();
        while(i--)
        {
                //display_one_page1();
                display_one_page();
        }
        change_buffer_to1(position1*16);
        change_buffer_to2(position2*16);
}

void action_leg2()//第2個人出腿
{
        int i;
        i=10;
        leg_change_buff2();
        shed_blood1();
        while(i--)
        {
               
                display_one_page();
        }
        change_buffer_to1(position1*16);
        change_buffer_to2(position2*16);
}

void init_interrupt()//中斷位的設置
{
TMOD=0x11;//定時器T0 T1工作在1模式 16位方式下
TH0=63536/256;//2ms一次定時器中斷
TL0=63536%256;
TH1=63536/256;//2ms一次定時器中斷
TL1=63536%256;
EA=1;//開總中斷
ET0=1;//開定時計數器T0
ET1=1;//開定時計數器T1
}

void scan_key()
{
        while(1)
        {
                if(blood1==0||blood2==0)
                        break;

                while(S11&&S12&&S13&&S14&&S21&&S22&&S23&&S24)
                display_one_page();

                while(S11||S12||S13||S14||S21||S22||S23||S24)
                {
                        delay(1);
                        if(S11&&S12&&S13&&S14&&S21&&S22&&S23&&S24)
                        display_one_page();
                        else
                        break;
                }

                if(S12==0)
                {
                        delay(1);
                        if(S12==0)//1向后的動作
                        {
                       
                                action_back1();
                        }
                }

                if(S22==0)
                {
                        delay(1);
                        if(S22==0)//2向后的動作
                        {
               
                                action_back2();
                        }
                }

                else if(S11==0)
                {
                        delay(1);
                        if(S11==0)//1向前的動作
                        {
                       
                                action_forth1();
                        }
                }

                else if(S21==0)
                {
                        delay(1);
                        if(S21==0)//2向前的動作
                        {
                               
                                action_forth2();
                        }
                }
                else if(S13==0)
                {
               
                        delay(1);
                        if(S13==0)
                        {
                       
                                TR0=1;
                                while(TR0==1)
                                {
                                        display_one_page();
                                        if(S22==0)
                                        {
                               
                                                        delay(1);
                                                        if(S22==0)
                                                        {
                                                                count_back2=1;
                                                        }
                                        }
                                        else if(S21==0)
                                        {
                               
                                                        delay(1);
                                                        if(S21==0)
                                                        {
                                                                count_forth2=1;
                                                        }
                                        }
                                }
                       
                                action_fist1();
                        }
                }
                else if(S23==0)
                {
               
                        delay(1);
                        if(S23==0)
                        {
                       
                                TR1=1;
                                while(TR1==1)
                                {
                                        display_one_page();
                                        if(S12==0)
                                        {
                               
                                                        delay(1);
                                                        if(S12==0)
                                                        {
                                                                count_back1=1;
                                                        }
                                        }
                                        else if(S11==0)
                                        {
                               
                                                        delay(1);
                                                        if(S11==0)
                                                        {
                                                                count_forth1=1;
                                                        }
                                        }
                                }
                       
                                action_fist2();
                        }
                }

                else if(S13==0)
                {
               
                        delay(1);
                        if(S13==0)
                        {
                       
                                TR0=1;
                                while(TR0==1)
                                {
                                        display_one_page();
                                        if(S22==0)
                                        {
                               
                                                        delay(1);
                                                        if(S22==0)
                                                        {
                                                                count_back2=1;
                                                        }
                                        }
                                        else if(S21==0)
                                        {
                               
                                                        delay(1);
                                                        if(S21==0)
                                                        {
                                                                count_forth2=1;
                                                        }
                                        }
                                }
                       
                                action_fist1();
                        }
                }


                else if(S23==0)
                {
               
                        delay(1);
                        if(S23==0)
                        {
                       
                                TR1=1;
                                while(TR1==1)
                                {
                                        display_one_page();
                                        if(S12==0)
                                        {
                               
                                                        delay(1);
                                                        if(S12==0)
                                                        {
                                                                count_back1=1;
                                                        }
                                        }
                                        else if(S11==0)
                                        {
                               
                                                        delay(1);
                                                        if(S11==0)
                                                        {
                                                                count_forth1=1;
                                                        }
                                        }
                                }
                       
                                action_fist2();
                        }
                }


                else if(S14==0)
                {
               
                        delay(1);
                        if(S14==0)
                        {
                       
                                TR0=1;
                                while(TR0==1)
                                {
                                        display_one_page();
                                        if(S22==0)
                                        {
                               
                                                        delay(1);
                                                        if(S22==0)
                                                        {
                                                                count_back2=1;
                                                        }
                                        }
                                        else if(S21==0)
                                        {
                               
                                                        delay(1);
                                                        if(S21==0)
                                                        {
                                                                count_forth2=1;
                                                        }
                                        }
                                }
                                action_leg1();
                        }
                }

                else if(S24==0)
                {
               
                        delay(1);
                        if(S24==0)
                        {
                       
                                TR1=1;
                                while(TR1==1)
                                {
                                        display_one_page();
                                        if(S12==0)
                                        {
                               
                                                        delay(1);
                                                        if(S12==0)
                                                        {
                                                                count_back1=1;
                                                        }
                                        }
                                        else if(S11==0)
                                        {
                               
                                                        delay(1);
                                                        if(S11==0)
                                                        {
                                                                count_forth1=1;
                                                        }
                                        }
                                }
                       
                                action_leg2();
                        }
                }
         }
}

void shed_blood1()
{
        if(position2==1)
        {
                if(position1==2)
                {
                        if(blood1>0)
                                blood1--;
                }
        }
        else if(position2==2)
        {
                if(position1>0)
                {
               
                        if(blood1>0)
                                blood1--;
                }
        }
}

void shed_blood2()
{
        if(position1==1)
        {
                if(position2==2)
                {
                        if(blood2>0)
                                blood2--;
                }
        }
        else if(position1==2)
        {
                if(position2>0)
                {
               
                        if(blood2>0)
                                blood2--;
                }
        }
}


void handle1() interrupt 1
{

        EA=0;
       
        TH0=63536/256;//2ms一次定時器中斷
        TL0=63536%256;
        time0_count++;
        if(time0_count==200)
        {
                time0_count=0;
                TR0=0;
                if(count_back2==1)
                {
                        count_back2=0;
                        action_back2();
                }
                else if(count_forth2==1)
                {
                        count_forth2=0;
                        action_forth2();
                }
        }
        EA=1;
}

void handle2() interrupt 3
{

        EA=0;
       
        TH1=63536/256;//2ms一次定時器中斷
        TL1=63536%256;
        time1_count++;
        if(time1_count==200)
        {
                time1_count=0;
                TR1=0;
                if(count_back1==1)
                {
                        count_back1=0;
                        action_back1();
                }
                else if(count_forth1==1)
                {
                        count_forth1=0;
                        action_forth1();
                }
        }
        EA=1;       
}
關閉窗口

相關文章

99精品黄色片免费大全| 中文字幕欧美人与畜| 亚洲欧美变态国产另类| 欧美日韩精品在线观看| 国产精品久久久久7777按摩| 99久久精品国产一区| 欧美a级理论片| 亚洲视频免费| 国产精品99一区二区三| 视频福利一区| 欧美电影院免费观看| 一区二区乱码| 飘雪影视在线观看免费观看| 色爱综合网站| 黄色的网站免费| 韩国av在线播放| 天堂成人在线观看| 99热在线只有精品| 欧美自拍电影| 777影院狠狠色| 国产精品系列视频| 亚洲av综合一区二区| 在线观看免费黄色片| 久久中文字幕国产| 色婷婷激情综合| 成人国产亚洲欧美成人综合网 | 国产精品99久久久久久似苏梦涵 | 免费成人美女在线观看.| 亚洲一区二区三区四区电影| jizz在线观看视频| 一个人看的日本免费视频| 亚洲国产精品无码久久久| 完美搭档在线观看| 992tv快乐视频| 成人乱色短篇合集| 中文字幕亚洲精品| 欧美日韩一区二区三区在线看| 成人av综合一区| 亚洲欧洲日本mm| 亚洲精品进入| 自拍偷自拍亚洲精品被多人伦好爽| 污黄视频在线看| 一级特黄毛片| 国产99久久九九精品无码免费| 992在线观看| 色婷婷综合久久久中字幕精品久久 | 在线这里只有精品| 一本到高清视频免费精品| 色综合久久中文综合久久牛| 欧美亚洲动漫精品| 欧美一级久久久久久久大片| 精品捆绑美女sm三区 | 天海翼一区二区三区免费| 在线观看污污视频| 在线免费国产| 成人亚洲综合天堂| 成人video亚洲精品| 黄色的视频在线观看| 亚洲承认视频| 日韩第一区第二区| 国产伦精品一区二区三区千人斩| 99久久婷婷国产综合精品电影√| 小明精品国产一区二区三区| 美女永久在线网站| 大胆av不用播放器在线播放| 超碰在线观看免费版| 亚洲优女在线| 2023国产精华国产精品| 日本一区二区高清不卡| 99综合视频| 国产精品一级在线| 国产精品欧美经典| 欧美性色xo影院| 亚洲精品v欧美精品v日韩精品| 中文字幕国产亚洲| 欧美最近摘花xxxx摘花| 99re视频在线| 中文网丁香综合网| 色国产在线视频| 偷拍女澡堂一区二区三区| 青青草免费av| 国产精品区在线观看| 香蕉久久国产av一区二区| 天堂www在线а√天堂| 成年人在线免费| 伊人75在线| 国产盗摄一区二区| 成人看片网站| 日本欧美国产| 美女尤物国产一区| ww亚洲ww在线观看国产| 一区二区三区高清| 日韩一二三四区| 亚洲欧美中文日韩v在线观看| 午夜精品美女自拍福到在线| 国产伦一区二区三区色一情| 成人在线国产视频| 国产在线不卡av| 国产免费av一区| 激情丁香久久| 男人午夜天堂| 黄色一级大片在线免费看产| 亚洲ww精品| 欧美日韩网站| 国产激情一区二区三区桃花岛亚洲| 亚洲视频精选在线| 精品日韩在线一区| 69久久夜色精品国产69| 蜜桃导航-精品导航| 波多野结衣xxxx| 国产免费无码一区二区视频| 天堂av手机版| free亚洲| 啊啊啊久久久| 欧美黄色录像片| 成人动漫精品一区二区| 91精品1区2区| 欧美日本亚洲视频| 久久久久久亚洲精品不卡4k岛国 | 国产精品99免费看| 成人在线网站| 亚洲人妖在线| 亚洲色图视频网站| 亚洲精品短视频| 国产欧美一区二区三区久久| 日本aa在线观看| av永久免费观看| 少妇av一区二区| 黄页网站在线观看| 成人影院在线视频| 欧美oldwomenvideos| www.欧美精品一二区| 欧美久久久久久久久久| 日本一欧美一欧美一亚洲视频| 人人妻人人澡人人爽精品欧美一区| 日韩成人av一区二区| 国产精品视频在线观看免费| 新天天拍日日拍狠狠拍| av电影在线地址| 中文字幕乱码亚洲无线精品一区 | 国产乱人伦精品一区二区在线观看| 天天色综合成人网| 欧美日韩国产成人高清视频| 一区二区视频在线免费| 97人妻人人揉人人躁人人| 亚洲精品第五页| 日本24小时在线高清视频| 24小时成人在线视频| 蘑菇福利视频一区播放| 亚洲国产日韩综合久久精品| 久久成人综合视频| 亚洲精品中文字幕乱码三区不卡| 性折磨bdsm欧美激情另类| 国产精品一区二区人人爽| 初尝黑人巨炮波多野结衣电影| 久久精品国产福利| 毛片基地黄久久久久久天堂| 在线看日本不卡| 日韩av理论片| 午夜激情av在线| 中文字幕乱码视频| 国产美女在线免费观看| 亚洲日日夜夜| 奇米色777欧美一区二区| 91成人国产精品| 国产精品av在线播放| 99热亚洲精品| 久久免费公开视频| 天天av天天爽| 91欧美极品| 久久―日本道色综合久久| 欧美精品性视频| 久久精品亚洲天堂| 成年人在线观看av| 麻豆精品国产自产在线| 亚洲国产aⅴ精品一区二区三区| 2023国产精品自拍| 97视频国产在线| 美女扒开腿免费视频| 国产精品亚洲综合久久小说 | 日韩av网址在线| 国产片侵犯亲女视频播放| 国产又粗又长又黄| 污的网站在线观看| 国产精品亚洲а∨天堂免在线| 亚洲欧美日韩网| 日批视频在线免费看| 亚州av在线播放| 国产91在线播放精品| 国产精品久久久久一区二区三区| 国产成人精品日本亚洲| 亚洲成人日韩在线| 韩国av电影免费观看| 国产精品成人a在线观看| 欧美日韩不卡一区| 亚洲一区二区三区四区中文| 国产精品老熟女视频一区二区| 国精一区二区三区| www.av精品| 国产精品com| 国产十六处破外女视频| 国家队第一季免费高清在线观看| 国产精品都在这里| 欧美网站免费观看| 一区二区www| 国产三级在线免费| 亚洲午夜电影| 欧美一区二区免费视频| 欧美日韩综合久久| 麻豆视频在线观看| 诱人的瑜伽老师3hd中字| 九九热精品视频在线观看| 日本91福利区| 日韩成人久久久| 中文字幕黄色大片| 二区视频在线观看| 未来日记在线观看| 欧美一区91| 野花社区视频在线观看| 91在线资源| 国产精品九九| 最新日韩中文字幕| 欧美老熟妇乱大交xxxxx| 香蕉影院在线| 国产一区二区精品久久91| 97国产精品视频人人做人人爱| 91狠狠综合久久久久久| eeuss影院www在线播放| 国产91丝袜在线观看| 国产成人高清激情视频在线观看| 久久久精品99| 不卡专区在线| 亚洲一区在线播放| 成人高清dvd| 国产精品178页| 欧美精品二区| 久久国产精品电影| 国产男女猛烈无遮挡在线喷水| 老司机av在线免费看| 国产欧美日韩中文久久| 日本黑人久久| 女人公敌韩国| 亚洲经典自拍| 欧美一级淫片播放口| 日韩欧美亚洲国产| 欧美黑人巨大xxxxx| 一本色道久久综合亚洲aⅴ蜜桃| 男人操女人逼免费视频| 好爽好深好紧好大| 日韩国产精品91| 91免费国产视频| www.国产免费| 九九亚洲视频| 国产自产高清不卡| 中文字幕亚洲在线| 亚洲a∨无码无在线观看| 性欧美1819sex性高清大胸| 亚洲精品成人悠悠色影视| 激情五月五月婷婷| 国产91色蝌蚪视频| 老司机精品久久| 国产精品久久久久影院日本| 一卡二卡在线观看| 老牛国内精品亚洲成av人片| 日韩av在线精品| 免费视频91蜜桃| heyzo高清国产精品| 欧美日韩亚洲一区二区三区| www.日本xxxx| 免费看男男www网站入口在线| 国产精品久久综合| 人人妻人人澡人人爽欧美一区| 天天干天天舔| 不卡一区在线观看| 日韩在线观看电影完整版高清免费| 国产精品剧情一区二区三区| 久久青草久久| 国产激情一区二区三区在线观看 | 韩日午夜在线资源一区二区| 色婷婷av一区二区三| 91精品精品| 茄子视频成人在线| 国产毛片一区二区三区va在线| 欧美亚洲高清| 性色av一区二区咪爱| 91亚洲国产成人久久精品麻豆| 久草精品在线| 97在线视频国产| 99热这里只有精品1| 亚洲一区在线| 国产91精品视频在线观看| 国产乱色精品成人免费视频| av一区二区高清| 欧洲成人免费aa| 亚洲女同志亚洲女同女播放| 尤物精品在线| 91社区国产高清| 天堂精品高清1区2区3区| 亚洲综合好骚| 国产精品视频500部| 欧美videos另类齐全| 强制捆绑调教一区二区| 久久久国产精品一区二区三区| 黄色91视频| 成人av网址在线观看| 在线观看亚洲视频啊啊啊啊| 日本福利小视频| 亚洲日本丝袜连裤袜办公室| caoporm在线视频| 日本不卡影院| 亚洲成人av资源网| 欧美不卡视频在线观看| 精品影片在线观看的网站| 欧美在线一级va免费观看| 亚洲av电影一区| 秋霞影院一区二区| 亚州欧美一区三区三区在线| 少妇高潮露脸国语对白| 亚洲国产日韩一级| 成人做爽爽免费视频| 久热在线视频精品网站| 丁香激情综合五月| 亚洲不卡中文字幕无码| 午夜伦全在线观看| 欧美一级高清大全免费观看| 精品在线免费观看视频| 日韩电影一区| 成人毛片网站| 制服影音先锋| 亚洲一区二区三区四区中文字幕| 精品国产乱码久久久久夜深人妻| 91精品店在线| 欧美激情综合亚洲一二区| 亚洲欧美日本在线观看| 国产乱国产乱300精品| 免费在线观看视频a| 最新黄网在线观看| 日韩精品高清在线观看| 91精品国产色综合久久不8| 亚洲男人影院| 日本中文字幕一级片| 最新97超碰在线| 亚洲国产精品99久久| 国产精品sm调教免费专区| 亚洲一卡久久| 日本三级中文字幕在线观看| 男人在线资源站| 日韩av网站大全| 亚洲第一免费视频| 国产在线视频不卡二| 久久久噜噜噜www成人网| 蜜桃麻豆影像在线观看| 久久精品人人爽| 性欧美videos精品| 国产欧美久久久精品影院| 日韩av无码一区二区三区不卡| eeuss鲁片一区二区三区| www.av在线.com| av永久不卡| 国产欧美va欧美va香蕉在| 国内一区二区三区精品视频| 国产成人精品亚洲777人妖| 四虎精品欧美一区二区免费| 国产在线制服美女| 伊人开心综合网| 国产chinese中国hdxxxx| 91综合国产| 久久久精品视频成人| 久久综合网络一区二区| 日韩在线第一区| 午夜av在线播放| 欧美另类在线播放| 亚洲成av人片在线| 欧美日韩国内自拍| 在线播放亚洲一区| 欧美成人激情在线| 国产精品国产精品国产| 日韩精品五月天| 成人av一级片| 成人日韩av| 国产精品久久久久免费a∨| 999www人成免费视频| 欧美午夜精品一区| 国产91精品看黄网站在线观看| 美女在线一区二区| 日本中文字幕二区| 精品国产鲁一鲁****| 成人网在线视频| 丝袜视频国产在线播放| 亚洲欧美另类在线观看| 综合图区欧美| 亚洲午夜激情网页| 亚洲免费激情视频| 蜜臀av国产精品久久久久| 免费一区二区三区在线观看| av动漫精品一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 国产精品视频免费在线观看| 手机看片1024久久| 亚洲国产福利在线|