久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5260|回復: 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);
        }
}


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 96国产精品久久久久aⅴ四区 | 国内自拍视频在线观看 | 国产黄色大片在线免费观看 | 国产精品久久在线观看 | 欧美天堂在线观看 | 午夜免费影视 | 国产免费一区二区三区 | 综合久久久久久久 | 色av一区二区三区 | 国产精品视频一二三区 | 国内精品久久久久久 | 天天干天天干 | 国产精品久久久久影院色老大 | 天天干视频网 | 男人天堂手机在线视频 | 日韩一区二区在线播放 | 国产精品一区网站 | 黄网站在线观看 | 一区精品视频在线观看 | 国产一区二区免费 | 国产一区二区在线视频 | 久久亚洲国产 | 中文字幕国产视频 | 日韩欧美天堂 | 亚洲欧美日韩一区 | 成人国产精品久久久 | 毛片的网址 | 四虎影音 | 中文字幕精品一区 | 久久精品一级 | 色综合99| 一道本视频 | 国产精品毛片一区二区三区 | 一区二区中文 | 国产精品日日做人人爱 | 在线电影日韩 | 黄色毛片网站在线观看 | 翔田千里一区二区 | 国产精品久久久久久久7电影 | 91久久综合 | 亚洲综合区 |