您的当前位置:首页智能循迹小车程序

智能循迹小车程序

2021-09-22 来源:爱问旅游网


智能循迹小车,小车按中字笔画行驶

/************“中”字笔画轨迹*************/ #include #include //部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int

unsigned char dj1=0; unsigned char dj2=0;

uchar t=0;

uchar num1=0,num2=0,num3=0;

sbit HW1=P0^0; //红外对管位定义 sbit HW2=P0^1; sbit HW3=P0^2; sbit HW4=P0^3;

sbit ENA=P3^2; //PWM输入 sbit ENB=P3^3;

sbit IN5=P2^4; //电机 sbit IN6=P2^5; sbit IN7=P2^6; sbit IN8=P2^7;

void delay(uint x) //延时1ms { uint i,j; for(i=0;ivoid qianjin() //小车前进 { IN5=0; IN6=1; IN7=0; IN8=1; dj1=15; dj2=15; }

void turnleft2() { IN5=0; IN6=1; IN7=0; IN8=1; dj1=7; dj2=20; }

void turnright2() { IN5=0; IN6=1; IN7=0; IN8=1; dj1=20; dj2=7; }

void right() { IN5=0; IN6=1; IN7=1; IN8=0; dj1=20; dj2=25; }

void left() { IN5=1; IN6=0; IN7=0; IN8=1; dj1=25; dj2=20; }

void stop() { dj1=0; dj2=0;

//小车前进向左微调

//小车前进向右微调

//小车后退

}

void init() //初始化 { TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; EA=1; ET0=1; TR0=1; }

void timer0() interrupt 1 using 1 //定时器0中断 { TH0=(65536-500)/256; TL0=(65536-500)%256; t++; if(t=50) { t=0; } }

void main() { init(); while(1) { if(num1==0) { if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { qianjin(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2();

} if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); } if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); } if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(50); num1=1; delay(50); } } }

if(num1==1) { if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { right(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0)

{ num2=1; delay(50); qianjin(); }

if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); }

if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); }

if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); }

if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(50);

num1=2; delay(50); } } }

if(num1==2) { if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { right(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=2; delay(50); qianjin(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); } if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); } if(num3==0&&HW1==1&&HW2==1&&HW3==1&&HW4==1) {

num3=1; delay(10); stop(); delay(100); qianjin(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); } if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(50); num1=3; delay(50); } } }

if(num1==3) { if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { right(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=3; delay(50); qianjin(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) {

turnleft2(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); } if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); } if(num2==3&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==3&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(50); num1=4; delay(50); } } }

if(num1==4) { if(num2==3&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { right(); }

if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=4; delay(50); qianjin(); }

if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); }

if(num3==1&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { num3=2; delay(10); stop(); delay(100); qianjin(); }

if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); }

if(HW1==1&&HW2==1&&HW3==1&&HW4==0) {

turnright2(); } if(num2==4&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==4&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(50); num1=5; delay(50); } } }

if(num1==5) { if(num2==4&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { left(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=5; delay(50); qianjin(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==0) {

turnright2(); } if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); } if(num2==5&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { stop(); delay(100); num1=6; delay(50); } }

if(num1==6) { if(num2==5&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { left(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=6; delay(50); num3=3; delay(50); qianjin(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); }

}

if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); }

if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); }

if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); }

if(HW1==1&&HW2==1&&HW3==1&&HW4==0) { turnright2(); }

if(num3==3&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { num3=4; delay(10); stop(); delay(100); qianjin(); }

if(num2==6&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(500); if(num2==6&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(500); num1=7; delay(50); } }

if(num1==7) { if(num2==6&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { right(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==0) { num2=7; delay(50); num3=4; delay(50); qianjin(); } if(HW1==1&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) { turnleft2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==1) { turnright2(); } if(HW1==0&&HW2==0&&HW3==1&&HW4==0) { turnright2(); } if(HW1==0&&HW2==0&&HW3==0&&HW4==1) { turnright2(); } if(HW1==0&&HW2==1&&HW3==1&&HW4==1) { turnleft2(); } if(HW1==1&&HW2==1&&HW3==1&&HW4==0) {

} }

}

turnright2(); }

if(num3==4&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { num3=5; delay(10); stop(); delay(100); qianjin(); }

if(num3==5&&HW1==1&&HW2==1&&HW3==1&&HW4==1) { num3=6; delay(10); stop(); delay(100); qianjin(); }

if(num2==7&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { delay(100); if(num2==7&&HW1==0&&HW2==0&&HW3==0&&HW4==0) { stop(); delay(90000); } }

因篇幅问题不能全部显示,请点此查看更多更全内容