(bio)}: bģK(q)С܇ca [ӡ]

: haitao4675    rg: 2016-7-7 17:46
(bio)}: bģK(q)С܇ca
  #include <reg52.h>
#define uint  unsigned int   
#define uchar unsigned char


sbit D0 = P0^0;       
sbit D1 = P0^1;       
sbit D2 = P0^2;
sbit D3 = P0^3;       
//sbit VT = P0^4;
sbit MD_L1 = P1^0;         
sbit MD_L2 = P1^1;
sbit MD_L3 = P1^2;
sbit MD_L4 = P1^3;
sbit MD_R1 = P1^4;         
sbit MD_R2 = P1^5;
sbit MD_R3 = P1^6;
sbit MD_R4 = P1^7;         
sbit LENA  = P2^0;
sbit LENB  = P2^1;
sbit RENA  = P2^2;
sbit RENB  = P2^3;


uchar pwm,num = 0, duty = 0, speed = 0,x=0, x1=0,x2=0,x3=0;


void delay(uint ms)
{
        uchar i;
    while(ms--)
        {
        for(i=0;i<200;i++);
        }
}
void advance()
{
    MD_L1=1;
               
    MD_L2=0;
               
        MD_L3=1;
               
        MD_L4=0;
               
        MD_R1=1;
       
        MD_R2=0;
       
        MD_R3=1;
       
        MD_R4=0;
}


void back()       
{
    MD_L1=0;
               
    MD_L2=1;
               
        MD_L3=0;
               
        MD_L4=1;
               
        MD_R1=0;
       
        MD_R2=1;


        MD_R3=0;
       
        MD_R4=1;






}
void left()                 
{
    MD_L1=0;
               
    MD_L2=0;
               
        MD_L3=0;
               
        MD_L4=0;
               
        MD_R1=1;
       
        MD_R2=0;
       
        MD_R3=1;
       
        MD_R4=0;






}
void left1()       
{
    MD_L1=0;
               
    MD_L2=1;
               
        MD_L3=0;
               
        MD_L4=1;
               
        MD_R1=0;
       
        MD_R2=0;
       
        MD_R3=0;
       
        MD_R4=0;


}
void left2()       
{
    MD_L1=0;
               
    MD_L2=1;
               
        MD_L3=0;
               
        MD_L4=1;
               
        MD_R1=1;
       
        MD_R2=0;
       
        MD_R3=1;
       
        MD_R4=0;
}
void right()  
{
    MD_L1=1;
               
    MD_L2=0;
               
        MD_L3=1;
               
        MD_L4=0;
               
        MD_R1=0;
       
        MD_R2=0;
       
        MD_R3=0;
       
        MD_R4=0;




}
void right1()  
{
    MD_L1=0;
               
    MD_L2=0;
               
        MD_L3=0;
               
        MD_L4=0;
               
        MD_R1=0;
       
        MD_R2=1;
       
        MD_R3=0;
       
        MD_R4=1;
}
void right2()  
{
    MD_L1=1;
               
    MD_L2=0;
               
        MD_L3=1;
               
        MD_L4=0;
               
        MD_R1=0;
       
        MD_R2=1;
       
        MD_R3=0;
       
        MD_R4=1;
}
void stop()  
{
    MD_L1=0;
               
    MD_L2=0;
               
        MD_L3=0;
               
        MD_L4=0;
               
        MD_R1=0;
       
        MD_R2=0;
       
        MD_R3=0;
       
        MD_R4=0;




}
void keyscan()
{
   if(D0==0)
   {
     delay(5);
         if(D0==50)
         {
          if(pwm<32)
          {
            pwm++;
                delay(100);
          }
         }
   }
         if(D1==0)
   {
     delay(50);
         if(D1==0)
         {
          if(pwm>1)
          {
            pwm--;
                delay(100);
          }
         }
   }
  if(D2==0)
   {
     delay(50);
         if(D2==0)
         {
          if(pwm<32)
          {
            pwm++;
                delay(100);
          }
         }
   }
         if(D3==0)
     {
     delay(50);
         if(D3==0)
         {
          if(pwm>1)
          {
            pwm--;
                delay(100);
          }
         }
   }
}
void main(void)
{


    TMOD =0x01;
        TH0=(65536-500)/256;
    TL0=(65536-500)%256;                       
    EA = 1;                           
    ET0=1;
        TR0=1;                  


    while(1)
    {
     
   
                if(D0==1)
                {
                 advance();
               
                }   
            else if(D1==1)
                {
                back();
       
                }
                else if(D2==1)
                {
               
                left();
               
                }
                else if(D3==1)
                {
                right();
       
                }
                else if(D0&D2==1)
                {
                 
                 void left2();
         
                }
                else if(D0&D3==1)
                {


                void right2();
                 
                }
                else if(D1&D2==1)
                {
                back();
                left();
                }
                else if(D1&D3==1)
                {
                 back();
                 right();
                }
                        else
                {
                stop();
                }  
               
        }
   
}
   
void int0() interrupt 1
{
    num ++;
        duty ++;                           
        x++;
        x1++;
        x2++;
        x3++;
    if(num <=50)
    {
      
           RENA=1;
           RENB=1;
    }
    else  
    {
           RENA=0;
           RENB=0;
    }                                                                                                                                                                                  


    if(num >=52)          
    {
       num = 0;


    }
            if(x3 <= 100)
    {
      
           LENA=1;
           LENB=1;
    }
    else  
    {
       LENA=0;
           LENB=0;
    }                                                                                                                                                                                  


    if(x3 >= 100)          
    {
       x3 = 0;


    }
if(D0&D2==1)
{         
    if(duty<=60)
        {
           RENA=1;
           RENB=1;
       
        }
        else
        {
           RENA=0;
           RENB=0;
       
        }  
   if(duty >= 65)
    {
       duty = 0;
    }
          if(x<=20)
        {
           LENA=1;
           LENB=1;
        }
        else
        {
           LENA=0;
           LENB=0;
        }  
   if(x >= 30)
    {
       x = 0;
    }
         }
          if(D0&D3==1)
{         
    if(x1<=60)
        {
           LENA=1;
           LENB=1;
        }
        else
        {
           LENA=0;
           LENB=0;
        }  
   if(x1 >= 100)
    {
       x1 = 0;
    }
   if(x2<=20)
        {          
           RENA=1;
           RENB=1;
       
        }
        else
        {
           RENA=0;
           RENB=0;
       
        }  
   if(x2>= 100)
    {
       x2 = 0;
    }
         }        
}



: vw    rg: 2016-7-8 17:14
@ô(f)s
: haitao4675    rg: 2016-7-10 08:26
xxゃ
: haitao4675    rg: 2016-7-10 14:43
vw l(f) 2016-7-8 17:14
@ô(f)s

Ҫ킀εҿһ
: haitao4675    rg: 2016-7-10 14:44
vw l(f) 2016-7-8 17:14
@ô(f)s


: vw    rg: 2016-7-11 19:19
4IobС܇
  1. /**********************************************
  2.         ܣ4IobС܇
  3.         ƬC(j)STC12C5A60S2
  4.           11.0592M
  5.         ע bͨ4I315MbӽģK
  6.                         늙C(j)(q)LM298LM293D(q)Ӱ늙C(j)ʹܶ˽5v
  7. ********************************************/

  8. #include <reg52.h>
  9. #include <intrins.h>
  10. #define uint unsigned int
  11. #define uchar unsigned char

  12. #define A   P3_4 //bذIA  
  13. #define BB  P3_5 //bذIB   
  14. #define C   P3_6 //bذIC     
  15. #define D   P3_7 //bذID  
  16. sbit in1=P1^0; //С܇˿
  17. sbit in2=P1^1; //С܇˿
  18. sbit in3=P1^2; //С܇˿
  19. sbit in4=P1^3; //С܇˿
  20. sbit P3_4=P3^4;//bذIA
  21. sbit P3_5=P3^5;//bذIB
  22. sbit P3_6=P3^6;//bذIC
  23. sbit P3_7=P3^7;//bذID
  24. sbit xj_l=P2^0;//ѭE
  25. sbit xj_r=P2^1;//ѭE҂
  26. void delay10ms(uint z)   
  27. {
  28.         uint a,b;
  29.     for(a=z;a>0;a--)
  30.       for(b=425;b>0;b--);
  31. }
  32. void qianjin()
  33. {
  34.         in1 = 0 ;
  35.     in2 = 1 ;
  36.     in3 = 0;
  37.     in4 = 1;
  38.         delay10ms(100);
  39. }
  40. void houtui()
  41. {
  42.         in1 = 1 ;
  43.     in2 = 0 ;
  44.     in3 = 1;
  45.     in4 = 0;
  46.         delay10ms(100);
  47. }
  48. void zuozhuan()
  49. {
  50.         in1 = 0 ;
  51.     in2 = 1 ;
  52.     in3 = 1;
  53.     in4 = 0;
  54.         delay10ms(100);
  55. }
  56. void youzhuan()
  57. {
  58.         in1 = 1 ;
  59.     in2 = 0 ;
  60.     in3 = 0;
  61.     in4 = 1;
  62.         delay10ms(100);
  63. }
  64. //********************************************************

  65. //********************************************************
  66. void main()
  67. {
  68.     while(1)               
  69.     {
  70.                
  71.         //ѭEϹ,ѭEĕrт°b
  72.         //ϵĕrтb܇ǰ泯ǰb
  73.         if(xj_l==1&&xj_r==1)
  74.                 qianjin();
  75.         if(xj_l==0&&xj_r==1)
  76.                 youzhuan();
  77.         if(xj_l==1&&xj_r==0)
  78.                 zuozhuan();
  79.         if(xj_l==0&&xj_r==0)
  80.                 houtui();
  81.                 delay10ms(1500);
  82.         //obع
  83.         /*        in1 = 0;
  84.                 in2 = 0 ;
  85.                 in3 = 0 ;
  86.                 in4 = 0;                     
  87.         if(A)  //ǰM(jn)
  88.         {                              
  89.             in1 = 0 ;
  90.             in2 = 1 ;
  91.             in3 = 0;
  92.             in4 = 1;
  93.                         delay10ms(100);
  94.         }
  95.         if(BB) //
  96.         {
  97.            in1 = 1;
  98.            in2 = 0 ;
  99.            in3 = 1 ;
  100.            in4 = 0;
  101.                         delay10ms(100);
  102.         }

  103.        if(C) //D(zhun)
  104.        {
  105.            in1 = 0;
  106.            in2 = 1 ;
  107.            in3 = 1 ;
  108.            in4 = 0;
  109.                 delay10ms(100);
  110.        }
  111.        if(D) //D(zhun)
  112.        {
  113.                in1 = 1 ;
  114.                in2 = 0 ;
  115.                in3 = 0 ;
  116.                in4 = 1;
  117.                         delay10ms(100);                     
  118.        }*/
  119.         }
  120. }
(f)ƴa

: haitao4675    rg: 2016-7-12 09:41
vw l(f) 2016-7-11 19:19
4IobС܇

xx߀ҬF(xin)һھnjEijǸ㲻ҿĂEtgЃɂ
Ҍij@ӵҸһԇһx#include<AT89X52.H>                            //reg52.h
#define uchar unsigned char
#define uint unsigned int
sbit QL1 =  P1^0;
sbit QL2 =  P1^1; // ǰ߅ ǰM(jn)D(zhun)
sbit HL1 =        P1^2; // ǰ߅ ˣD(zhun)
sbit HL2 =  P1^3;
sbit QR1 =  P1^4;
sbit QR2 =  P1^5;
sbit HR1 =        P1^6;  
sbit HR2 =  P1^7;

sbit EN1 =        P2^0;   // ƽʹ
sbit EN2 =  P2^1;        // ƽʹ
sbit EN3 =        P2^2;   // ƽʹ
sbit EN4 =  P2^3;        // ƽʹ
                  
#define Left_go      {QL1=1,QL2=0,HL1=1,HL2=0;}        //߅늙C(j)ǰ
#define Left_back    {QL1=0,QL2=1,HL1=0,HL2=1;}        //߅늙C(j)
#define Left_Stop    {QL1=1,QL2=1,HL1=1,HL2=1;}          //߅늙C(j)ͣD(zhun)                     
#define Right_go     {QR1=1,QR2=0,HR1=1,HR2=0;}        //߅늙C(j)ǰ
#define Right_back   {QR1=0,QR2=1,HR1=0,HR2=1;}        //߅늙C(j)
#define Right_Stop   {QR1=1,QR2=1,HR1=1,HR2=1;}          //߅늙C(j)ͣD(zhun)

#define XL    P2_3         //
#define XML   P2_4         //       
#define XMR   P2_5         // ҂      
#define XR    P2_6         // ҂
                                                 
#define Left_pwm1          P2_0         //PWM̖
#define Left_pwm2          P2_1         //PWM̖
#define Right_pwm1          P2_2          //PWM̖
#define Right_pwm2          P2_3          //PWM̖

uchar pwmleft  =0;//׃x
uchar pushleft1 =0;// 늙C(j)1ռձN/20
uchar pushleft2 =0;// 늙C(j)2ռձN/20
uchar pwmright =0;
uchar pushright1=0;// 늙C(j)1ռձN/20
uchar pushright2=0;// 늙C(j)2ռձN/20
bit Right_stop=1;

bit Left_stop =1;

uint  time=0;


//ӕr(sh)       
   void delay(unsigned int k)
{   
     unsigned int x,y;
         for(x=0;x<k;x++)
           for(y=0;y<2000;y++);
}
   
   
//go
     void  run(void)
{
     pushleft1=7;         //ٶ{(dio)(ji)׃ 0-20,0С20
         pushleft2=7;
         pushright1=7;
         pushright2=7;
         Left_go ;   //늙C(j)ǰ
         Right_go ;  //늙C(j)ǰ
}



//left
     void  leftrun(void)
{         
     pushleft1=7;
         pushleft2 =7;
         pushright1=7;
         pushright2=7;
         Right_go ;  //늙C(j)ǰ
     Left_Stop ;  //늙C(j)ֹͣ
}

//right
     void  rightrun(void)
{
         pushleft1=7;
         pushleft2=7;
         pushright1=7;
         pushright2=7;
     Left_go;   //늙C(j)ǰ
         Right_Stop;  //늙C(j)ǰ       
}


                       

//                    늙C(j){(dio)                                       
//{(dio)(ji)push_val_leftֵ׃늙C(j)D(zhun),ռձ           
void pwm_out_left(void)
{  
   if(Left_stop&&Left_stop)
   {
    if(pwmleft<=pushleft1&&pwmleft<=pushleft2)
               {
                     Left_pwm1=1;
                         Left_pwm2=1;

                   }
        else
               {
                 Left_pwm1=0;
                         Left_pwm2=0;

                   }
        if(pwmleft>=20)
               pwmleft=0;
   }
   else   
          {
           Left_pwm1=0;
                   Left_pwm2=0;

                  }
}

//    늙C(j){(dio)         
   void pwm_out_right(void)
{
  if(Right_stop)
   {
    if(pwmright<=pushright1&&pwmright<=pushright2)
              {
               Right_pwm1=1;
                   Right_pwm2=1;
                   }
        else
              {
                   Right_pwm1=0;
                   Right_pwm2=0;
                  }
        if(pwmright>=20)
               pwmright=0;
   }
   else   
          {
           Right_pwm1=0;
                   Right_pwm2=0;

              }
}
      




void main(void)
{       

       
    P1=0X00;
        delay(100);
        run();
       
        TMOD=0X01;
    TH0= 0XFc;                  //1msr
    TL0= 0X18;
    TR0= 1;
    ET0= 1;
        EA = 1;                           //_Д

        while(1)       
         {
              //̖0  ]̖1
       if(XL==0&&XR==0&&XML==0&&XMR==0)
              run();   
                  else
                   {                          
                        if(XL==1&&XR==0)          //߅zyھ
                                 {
                                         leftrun();                  
                                }
                         if(XR==1&&XL==0)      //߅zyھ
                                     {          
                                        rightrun();                  
                                      }
                        }         
         }
}



//TIMER0Д(w)Ӻ(sh)a(chn)PWM̖
        void timer0()interrupt 1   using 2
{
     TH0=0XFc;          //1Msr
         TL0=0X18;
         time++;
         pwmleft++;
         pwmright++;
         pwm_out_left();
         pwm_out_right();
}        C:\Documents and Settings\Administrator\
: Ƭ    rg: 2018-4-19 21:00
@bõ{(ln)
: wxxl    rg: 2018-4-19 21:24
Ƭ l(f) 2018-4-19 21:00
@bõ{(ln)

4IbؾͿij10Ԫԃ(ni)




gӭR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1