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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51的紅外尋跡小車源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:265195 發表于 2017-12-22 10:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char zkb1=0;             //**左前邊電機的占空比**//
unsigned char zkb2=0;                //**右前邊電機的占空比**//                           
unsigned char zkb3=0;              //**左后邊電機的占空比**//
unsigned char zkb4=0;                //**右后邊電機的占空比**//
unsigned char t=0;                 //**定時器中斷計數器**//
//***傳感器***//
sbit LSEN1=P2^0;
sbit LSEN2=P2^1;
sbit LSEN3=P2^2;
sbit RSEN1=P2^3;
sbit RSEN2=P2^4;
sbit RSEN3=P2^5;
//***電機***//IN1,2,3,4前輪,IN5,6,7,8后輪//
sbit IN1=P1^0;//左前//
sbit IN2=P1^1;
sbit IN3=P1^2;//右前//
sbit IN4=P1^3;
sbit IN5=P1^4;//左后//
sbit IN6=P1^5;
sbit IN7=P1^6;//右后//
sbit IN8=P1^7;
sbit QENA=P0^0;//QENA,B前驅動使能,HENA,B后驅動使能//
sbit QENB=P0^1;
sbit HENA=P0^2;
sbit HENB=P0^3;
int a;
a=1;
int i,j;//延時函數//
void delay(int z)   
{  
for(i=0;i<z;i++)
   for(j=0;j<110;j++);
}
void Timer0() interrupt 1
{        
        TH0=(65536-100)/256; // 裝入定時器的初值 10ms定時 //
        TL0=(65536-100)%256;
        if(t<zkb1)            QENA=1;           
        else                  QENA=0;     
        if(t<zkb2)      QENB=1;     
        else                   QENB=0;
        if(t<zkb3)                HENA=1;
        else                        HENA=0;
        if(t<zkb4)                HENB=1;
        else                        HENB=0;        
        t++;     
        if(t>=100)
        {
        t=0;
        }
}
main ()
{
                //******初始化定時器******//
                TMOD=0x01; // 設定T0的工作模式為1 //
                TH0=(65536-100)/256; // 裝入定時器的初值 10ms定時 //
                TL0=(65536-100)%256;
                EA=1; // 開中斷 //
                ET0=1; //定時器0允許中斷 //
                TR0=1; // 啟動定時器0 //
                delay(100);//直行//
                zkb1=60;     
                zkb2=60;
                zkb3=60;
                zkb4=60;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=1;
                delay(1000);
while (1)
        if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//直行//
        {
                zkb1=60;     
                zkb2=60;
                zkb3=60;
                zkb4=60;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=1;                        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==0))//左轉1//
        {         
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                //delay(30);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==0)&&(RSEN3==0))//左轉2//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                //delay(10);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==0)&&(RSEN3==1))//左轉3//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                //delay(10);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==0)&&(RSEN2==0)&&(RSEN3==1))//左轉4//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                delay(50);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==0)&&(RSEN2==1)&&(RSEN3==1))//左轉5//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                delay(80);
                //delay(30);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==0)&&(RSEN2==0)&&(RSEN3==0))//左轉6//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=0;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=0;
                delay(120);
                //delay(30);        
        }
        else if ((LSEN1==0)&&(LSEN2==1)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉1//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                //delay(30);        
        }  
        else if ((LSEN1==0)&&(LSEN2==0)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉2//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                //delay(10);        
        }
        else if ((LSEN1==1)&&(LSEN2==0)&&(LSEN3==1)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉3//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;                                                                                                                              
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                //delay(10);        
        }
        else if ((LSEN1==1)&&(LSEN2==0)&&(LSEN3==0)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉4//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                delay(50);        
        }
        else if ((LSEN1==1)&&(LSEN2==1)&&(LSEN3==0)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉5//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                delay(80);
                //delay(30);        
        }
        else if ((LSEN1==0)&&(LSEN2==0)&&(LSEN3==0)&&(RSEN1==1)&&(RSEN2==1)&&(RSEN3==1))//右轉6//
        {
                zkb1=30;     
                zkb2=30;
                zkb3=30;
                zkb4=30;
                IN1=0;      
                IN2=0;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=0;         
                IN7=0;
                IN8=1;
                delay(120);
                //delay(30);        
        }
        else if ((LSEN1==0)&&(RSEN1==0)||(LSEN1==0)&&(RSEN2==0)||(LSEN1==0)&&(RSEN3==0))//停止1//
        {
                zkb1=50;     
                zkb2=50;
                zkb3=50;
                zkb4=50;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=1;
                delay(500);
                zkb1=0;     
                zkb2=0;
                zkb3=0;
                zkb4=0;
                delay(3000);
        }
        else if ((LSEN2==0)&&(RSEN1==0)||(LSEN2==0)&&(RSEN2==0)||(LSEN2==0)&&(RSEN3==0))//停止2//
        {
                zkb1=50;     
                zkb2=50;
                zkb3=50;
                zkb4=50;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=1;
                delay(500);
                zkb1=0;     
                zkb2=0;
                zkb3=0;
                zkb4=0;
                delay(3000);
        }
        else if ((LSEN3==0)&&(RSEN1==0)||(LSEN3==0)&&(RSEN2==0)||(LSEN3==0)&&(RSEN3==0))//停止3//
        {
                zkb1=50;     
                zkb2=50;
                zkb3=50;
                zkb4=50;
                IN1=0;      
                IN2=1;      
                IN3=0;      
                IN4=1;
                IN5=0;                                         
                IN6=1;         
                IN7=0;
                IN8=1;
                delay(500);
                zkb1=0;     
                zkb2=0;
                zkb3=0;
                zkb4=0;
                delay(3000);
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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