欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1838|回復: 0
打印 上一主題 下一主題
收起左側

紅外小車源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:237486 發表于 2017-10-6 16:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>  

#define uchar unsigned char  
#define uint unsigned int
  
unsigned char zkb1=0 ;   
//**左邊電機的占空比**//
   
unsigned char zkb2=0 ;     
//**右邊電機的占空比**//

unsigned char t=0;        
//**定時器中斷計數器**//

sbit LSEN1=P0^0;
sbit LSEN2=P0^1;
sbit MSEN1=P0^2;
sbit MSEN2=P0^3;  
sbit RSEN1=P0^4;
sbit RSEN2=P0^5;

//**傳感器***/
sbit ENA=P1^5;
sbit IN1=P1^4;  
sbit IN2=P1^3;  
sbit IN3=P1^2;
sbit IN4=P1^1;   
sbit ENB=P1^0;
  
//**********初始化定時器中斷***********//  
void init()  
{   
        TMOD=0x01;     
        TH0=(65536-10)/256;     
        TL0=(65536-10)%256;     
        EA=1;   
        ET0=1;   
        TR0=1;   
}
  
//***********中斷函數+脈寬調制***********//  
void timer0() interrupt 1  
{  
    if(t>=50)      
    {
      t=0;
    }
    if(t<zkb1)      
        ENA=1;   
    else        
        ENA=0;   
    if(t<zkb2)        
        ENB=1;   
    else        
        ENB=0;      
    t++;   

  }
  
//******************直行******************//  
void qianjin()  
{  
   zkb1=30;   
   zkb2=30;
}
  
//***************小左轉函數***************//
void turn_left1()  
{  zkb1=10;   
   zkb2=25;  
}  


//***************中左轉函數***************//
void turn_left2()  
{  zkb1=10;   
   zkb2=20;  
}
  
//***************大左轉函數***************//
void turn_left3()  
{  zkb1=5;   
   zkb2=25;
}

//***************小右轉函數***************//  
void turn_right1()  
{   zkb1=25;   
   zkb2=10;
  
}

//***************中右轉函數***************//  
void turn_right2()  
{   
   zkb1=20;   
   zkb2=10;
  
}
      
//***************大右轉函數***************//  
void turn_right3()  
{  
   zkb1=25;   
   zkb2=5;
  
}

//***************循跡函數*****************//  
void xunji()   
{  
      uchar flag;   
      if((LSEN1==1)&&(LSEN2==1)&&(MSEN1==0)&&(MSEN2==0)&&(RSEN1==1)&&(RSEN2==1))      
      { flag=0; }
//*******直行*******//     
       else  
       if((LSEN1==1)&&(LSEN2==0)&&(MSEN1==0)&&((MSEN2==0)||(MSEN2==1))&&(RSEN1==1)&&(RSEN2==1))      
      { flag=1; }     
  //******小左轉*******//
       else  
       if((LSEN1==1)&&(LSEN2==1)&&((MSEN1==0)||(MSEN1==1))&&(MSEN2==0)&&(RSEN1==0)&&(RSEN2==1))      
      { flag=2; }
  //******小右轉*******//
       else  
       if((LSEN1==0)&&(LSEN2==0)&&(MSEN1==0)&&((MSEN2==0)||(MSEN2==1))&&(RSEN1==1)&&(RSEN2==1))      
      { flag=3; }
  //*******中左轉*******//      
       else  
       if((LSEN1==1)&&(LSEN2==1)&&((MSEN1==0)||(MSEN1==1))&&(MSEN2==0)&&(RSEN1==0)&&(RSEN2==0))      
      { flag=4; }
   //*******中右轉*******//
       else  
       if((LSEN1==0)&&((LSEN2==0)||(LSEN2==1))&&(MSEN1==1)&&(MSEN2==1)&&(RSEN1==1)&&(RSEN2==1))      
      { flag=5; }  
   //*******大左轉*******//
      else  
       if((LSEN1==1)&&(LSEN2==1)&&(MSEN1==1)&&(MSEN2==1)&&((RSEN1==0)||(RSEN1==1))&&(RSEN2==0))      
      { flag=6; }
    //*******大右轉*******//

   
switch (flag)      
{
        case 0:
          qianjin();              
        break;         
        case 1:
         turn_left1();               
        break;           
        case 2:
         turn_right1();
        break;
        case 3:
          turn_left2();
        break;
        case 4:  
          turn_right2();
        break;
        case 5:
          turn_left3();
        break;
        case 6:  
          turn_right3();
        break;
        default: break;  
}  
}
  
//****************主程序****************//  
void main()  
{
        init();   
        zkb1=30;   
        zkb2=30;   
while(1)   
{  
      qianjin();
}  
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表