找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3732|回復(fù): 0
收起左側(cè)

紅外循跡小車程序

[復(fù)制鏈接]
ID:134542 發(fā)表于 2016-7-21 20:10 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#define uint  unsigned int
#define uchar unsigned char

sbit IN1=P1^1;     //電機(jī)1               
sbit IN2=P1^2;

sbit IN3=P0^1;           //電機(jī)2
sbit IN4=P0^2;

sbit IN5=P1^3;           //電機(jī)3
sbit IN6=P1^4;

sbit IN7=P0^3;           //電機(jī)4
sbit IN8=P0^4;

sbit found1=P1^6;  //紅外對(duì)管
sbit found2=P1^7;
sbit found3=P3^4;

/****************電機(jī)控制函數(shù)****************/

void forward1()      //電機(jī)1前進(jìn)
{
   IN1=1;
   IN2=0;
}
void forward2()                         //電機(jī)2前進(jìn)
{
   IN3=0;
   IN4=1;
}
void forward3()      //電機(jī)3前進(jìn)
{
   IN5=0;
   IN6=1;
}
void forward4()                         //電機(jī)4前進(jìn)
{
   IN7=0;
   IN8=1;
}

void back1()                           //電機(jī)1后退
{
   IN1=0;
   IN2=1;
}

void back2()                           //電機(jī)2后退
{
   IN3=1;
   IN4=0;
}
void back3()                           //電機(jī)3后退
{
   IN5=1;
   IN6=0;
}
void back4()                           //電機(jī)4后退
{
   IN7=1;
   IN8=0;
}
/****************電機(jī)開關(guān)函數(shù)****************/

void stop1()         //電機(jī)1關(guān)閉
{
   IN1=0;
   IN2=0;
}
void stop2()                     //電機(jī)2關(guān)閉
{
   IN3=0;
   IN4=0;
}
void stop3()         //電機(jī)3關(guān)閉
{
   IN5=0;
   IN6=0;
}
void stop4()                     //電機(jī)4關(guān)閉
{
   IN7=0;
   IN8=0;
}
/**********************主函數(shù)**********************/
void main()
{
   while(1)
   {  
         if(found1==0&&found2==0&&found3==0)                                         //000 三個(gè)LED均未檢測(cè)到黑線 小車后退
         {back3();back4();stop1();stop2();}
                                                                                            
   if(found1==0&&found2==1&&found3==0)                                         //010 第二個(gè)LED檢測(cè)到黑線 小車前進(jìn)
         {forward1();forward2();stop3();stop4();}
         
         /******************小車左轉(zhuǎn)******************/
         
         if(found1==1&&found2==1&&found3==0)                                          //110 一、二LED檢測(cè)到黑線 小車左大轉(zhuǎn)
   {back1();forward2();stop3();stop4();}
         if(found1==1&&found2==0&&found3==0)                                         //100 第一個(gè)LED檢測(cè)到黑線 小車左轉(zhuǎn)
   {back1();forward2();stop3();stop4();}
         
         /******************小車右轉(zhuǎn)******************/
         
         if(found1==0&&found2==1&&found3==1)                                         //011 二、三LED檢測(cè)到黑線 小車右大轉(zhuǎn)
   {back2();forward1();;stop3();stop4();}
         if(found1==0&&found2==0&&found3==1)                                         //001 第三個(gè)LED檢測(cè)到黑線 小車右轉(zhuǎn)
   {back2();forward1();stop3();stop4();}
         
         /**************LED檢測(cè)到全黑情況的處理**************/
         
         if(found1==1&&found2==1&&found3==1)                                                                                   //111 三個(gè)LED均檢測(cè)到黑線 小車前進(jìn)
         {forward1();forward2();stop3();stop4();}                                                                                    
  }  
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表