⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdle-j20_main.c

📁 05年电赛小车悬挂程序
💻 C
📖 第 1 页 / 共 2 页
字号:
					  else if(!P1_5&!P1_6)
					  {
					    K=-0.5773;
						DX=10;
				      }
					  else if(P1_5&P1_6)
					  {
					     K=-0.5773;
						 DX=-10;
					  }
                     
                     else
					 {
					   if(!P1_5&!P1_7)
					   {
					     DX=10;
					   }
					   else
					   {
					     DX=-10;
					   }
    		
  		                DL1_=(Y-1150)/sqrt((950-X)*(950-X)+(1150-Y)*(1150-Y))*DX;///右电机
                        DL2_=(Y-1150)/sqrt((X+150)*(X0+150)+(1150-Y)*(1150-Y))*DX;////左电机
                        //X0+=DX;
 	      				Y+=DX;
	               
		    		    DriveMoter();

						goto end;

					 }

                    GetDL12();
                    X+=DX;
 					Y+=K*DX;
	               
				    DriveMoter();
				  }

				  end:;

                  Fasheng_Flag=0;
			}
            

           } 
		   if(Fasheng_Flag==5&&!KEY) ///+++++
           {
		       DELAYTIME=1;
		       DL2_=-5;
  			   DL1_=0;
               DriveMoter();
               DELAYTIME=5;
		       
		   }
		   if(Fasheng_Flag==9&&!KEY) ///+++++
           {
		        DELAYTIME=1;
		  
   		       DL2_=5;
  			   DL1_=0;
               DriveMoter();
               DELAYTIME=5;
		  
		   }
		   if(Fasheng_Flag==6&&!KEY) ///+++++
           {
               DELAYTIME=1;
		  
  		       DL2_=0;
  			   DL1_=-5;
               DriveMoter();
               DELAYTIME=5;
		  
		   }
		   if(Fasheng_Flag==7&&!KEY) ///+++++
           {
		       DELAYTIME=1;
		  
   		       DL2_=0;
  			   DL1_=5;
               DriveMoter();

		       DELAYTIME=5;
		   
		   }

		   if(Fasheng_Flag==11&&!KEY) ///+++++
		   {
		      DELAYTIME+=2;
			  Fasheng_Flag=0;
		   }
            
		   if(Fasheng_Flag==12&&!KEY) ///----
		   {
		      if(DELAYTIME>2)
		      DELAYTIME-=2;
			  Fasheng_Flag=0;
		   }
		   if(Fasheng_Flag==13&&!KEY)   /////////gai canshu DX  6 9
		   {
		      DX+=5;
			  Fasheng_Flag=0;
		   }

		   if(Fasheng_Flag==14&&!KEY)         ////////////
		  {
		     if(DX>5)
		     DX-=5;
			 Fasheng_Flag=0;
		  }

          if(Fasheng_Flag==15&&!KEY)   /////////gai canshu DX  6 9
		   {
		      Coef+=0.01;
			  Fasheng_Flag=0;
		   }

		   if(Fasheng_Flag==16&&!KEY)         ////////////
		  {
		     if(Coef>0.29)
		     Coef-=0.01;
			 Fasheng_Flag=0;
		  }
 /*		
          if(Fasheng_Flag==17&&!KEY)   /////////gai canshu DX  6 9
		   {
		      //Cof+=2;
			  Fasheng_Flag=0;
		   }

		   if(Fasheng_Flag==18&&!KEY)         ////////////
		  {
		     //if(Cof>2)
		     //Cof-=2;
			 Fasheng_Flag=0;
		  }
*/
            if(Button)
           {
		      Button=0;

			//  b=GetCode/100;
			//  s=(GetCode-b*100)/10;
			//  g=GetCode-b*100-s*10;
              
			  for(a_=0; a_<500; a_++)
              for(k=0; k<60; k++)
                P3_3=0;
                P3_3=1;
           } 

            EX0 = 1;

            
            //Fasheng();
		}
	while(1);
}

/*

void Fasheng()
{
    if(Fasheng_Flag==10)   /////////Close Button
    {
      for(a=0; a<500; a++)
       for(k=0; k<55; k++)
       P3_6=0;
       P3_6=1;
    } 
	else
    for(k=0;k<Fasheng_Flag;k++)
    {
      for(a=0; a<6000; a++)
        P3_6=0;
      for(a=0;a<6000;a++)
       P3_6=1;
    }			
//	Fasheng_Flag=0;
}

*/





void Timer0Int(void) interrupt 1 using 1
{
  
     TH0=0xFD;
     TL0=0x1E; //设定时值为800us

	 if(IRCON<3)
     {
       if(IRCON2<8) //每中断一次读一次遥控接收头的状态,每二次为遥控编码中的一个位
       {
         IRCON2++;
         IRCode[IRCON]=IRCode[IRCON]<<1; //每读一次放入变量中的二进制的一个位,每次左移一位
         IRCode[IRCON]=IRCode[IRCON]|P3_2; //每八次填满一个字节,一个字节存放遥控编码4个位
       }
       else
       {
         IRCON++; //填满一个字节,指向下一个变量
         IRCON2=0; //计数清零
       }
     }
    else        ///////////////还在接受!!!!!!!
    {

     ////暂时不允许int0中断

      if((IRCode[1]!=0xFF)&&(IRCode[2]!=0xFF))
     {
        if(IRCode[1]==0x55)
        {
          TR0=0;
          switch(IRCode[2])
          {
            case 0xAB: //1-8键控制
            //P0_0 = ~P0_0;
            Fasheng_Flag=1;
            
            break;
            case 0xAC:
            //P0_1 = ~P0_1;
            Fasheng_Flag=2;
            
            break;
            case 0xAD: 
            //P0_2 = ~P0_2;
            Fasheng_Flag=3;
            break;
            case 0xB2: 
            //P0_3 = ~P0_3;
            Fasheng_Flag=4;
            break;
            case 0xB3: 
            //P0_4 = ~P0_4;
            Fasheng_Flag=5;
            break;
            case 0xB4: 
            //P0_5 = ~P0_5;
            Fasheng_Flag=6;
            break;
            case 0xB5: 
            //P0_6 = ~P0_6;
            Fasheng_Flag=7;
            break;
            case 0xCA: 
            //P0_7 = ~P0_7;
            Fasheng_Flag=8;
             break;
			
			case 0xCB:
            Fasheng_Flag=9;
            break;

			case 0xAA:
            Fasheng_Flag=0;
            break;

			case 0x2A:
            Fasheng_Flag=11;    //////music+++++++++++++++++
            
            break;
            
			case 0x2B:
            Fasheng_Flag=12;    //////music------------------
            
            break;
            

			case 0x52:
            Fasheng_Flag=13;    //////对比+++++++
            
            break;
            
			case 0x53:
            Fasheng_Flag=14;    //////对比--------
            
            break;

			case 0x32:
            Fasheng_Flag=15;    //////色彩+++++++
            
            break;

			case 0x33:
            Fasheng_Flag=16;    //////色彩-------
            
            break;

			case 0x2C:
            Fasheng_Flag=17;    //////亮度+++++
            
            break;

			case 0x2D:
            Fasheng_Flag=18;    //////亮度-------
            
            break;

            case 0xD2: //按关闭电源键,关闭所有继电器
            //P0 = 0xFF;

            Fasheng_Flag=10;
            
            break;
         }
    	   if(Fasheng_Flag<10)
		   {
             if(KEY==1)
            {
               if(!keytimes)  ///////////0 对应第一次输入
               {X0temp=Fasheng_Flag*10;q=Fasheng_Flag;}
               else
               {X0temp+=Fasheng_Flag;b=Fasheng_Flag;}
               keytimes=!keytimes;
            }
           
            else if(KEY==2)
            {
               if(!keytimes)  ///////////0 对应第一次输入
               {Y0temp=Fasheng_Flag*10;s=Fasheng_Flag;}
               else
               {Y0temp+=Fasheng_Flag;g=Fasheng_Flag;}
               keytimes=!keytimes;
            }
          }
	   }
	 }
   }
        

  
  
}

void Int0INT(void) interrupt 0 using 2
{

   EX0 = 0; //外部中断0关闭
   
  // P2_5=~P2_5;
   Button=1;

   TL0=0x1E; //设定时值为800us
   TH0=0xFD;
 
   for(IRCON=0; IRCON<3; IRCON++)
   IRCode[IRCON] = 0;
   IRCON = 0;
   IRCON2 = 0; //计数清零

  
   
   TR0 = 1;     /////////////记数
}

void Timer1INT(void) interrupt 3 using 3        //T1
{  

   
    TL1 = 0x77;         /////// 定时5ms
    TH1 = 0xEC;
    if(KEY)
    Shangshuo++;
    else
	{
	 Shangshuo=0;
	}

	if(Shangshuo>100)
    Shangshuo=0;


    j++;
	if(j>4)
	j=1; 
	switch(j)
	{
	  
	   case 1:
	   if((KEY==2&&Shangshuo<50)||KEY==0||KEY==1)
       {
        P3_7=1;
 	                 // 0000 1110
        P3_5=1;
        P3_6=1;
		P3_4=0;
	    P0=Disp[g];
	   }
	   break;
       case 2:
	   if((KEY==2&&Shangshuo<50)||KEY==0||KEY==1)
 	   {
	    P3_4=1;          //0000 1101
        
        P3_6=1;
        P3_7=1;
		P3_5=0;
	    P0=Disp[s];
		}
	   break;
	  
	   
        case 3:
		if((KEY==1&&Shangshuo<50)||KEY==0||KEY==2)
 	    {
		 P3_5=1;        ///0000 1011
         
         P3_7=1;
         P3_4=1;
		 P3_6=0;
		 P0=Disp[b];
		}
	    break;
        case 4:
        if((KEY==1&&Shangshuo<50)||KEY==0||KEY==2)
 	    {
 	      P3_6=1;           // 0000 0111
          
          P3_4=1;
          P3_5=1;
		  P3_7=0;
	      P0=Disp[q];
		}
	    break;
      }
	
    ////////

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -