最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

智能寻迹小车全部资料

来源:动视网 责编:小OO 时间:2025-09-29 19:37:36
文档

智能寻迹小车全部资料

寻迹小车控制与驱动模块原理图寻迹小车寻迹模块原理图实现的程序代码:#include#include"intrins.h"#defineuintunsignedint#defineucharunsignedchar#defineCM2.6uchardis1[]={"Path:0000.0cm"};uchardis2[]={"Time:00min00.0s"};uchardispbuf[10];voiddelay(ucharx);voiddelayms(uintt);voiddianji_cont
推荐度:
导读寻迹小车控制与驱动模块原理图寻迹小车寻迹模块原理图实现的程序代码:#include#include"intrins.h"#defineuintunsignedint#defineucharunsignedchar#defineCM2.6uchardis1[]={"Path:0000.0cm"};uchardis2[]={"Time:00min00.0s"};uchardispbuf[10];voiddelay(ucharx);voiddelayms(uintt);voiddianji_cont


寻迹小车控制与驱动模块原理图

    寻迹小车寻迹模块原理图

实现的程序代码:

#include

#include"intrins.h"

#define uint unsigned int

#define uchar unsigned char

#define CM 2.6

uchar  dis1[]={"Path:0000.0cm"};

uchar  dis2[]={"Time:00min 00.0s"};

uchar dispbuf[10];

void delay(uchar x);

void delayms(uint t);

void dianji_control();

void display(uchar location,uchar *ptr);

void zhuan180();

void stop();

void xunji();

void bujiu1();

void beep();

sbit Beep=P2^7;

sbit rs=P2^4;

sbit rw=P2^5;

sbit ep=P2^6;

sbit RX=P3^7;

sbit TX=P3^6;

uchar xiaozuo,dazuo,zhixian,xiaoyou,dayou,flag,bujiuzuo,bujiuyou,bujiu,count;

uchar temp,buffer,dis_flag,n,m,min=0,zhijiao,zuozhi,youzhi;

uint sec=0,z,y,a;

uint barrier=0;

float time;

float s=0.0,s_left,s_right;

void delayms(uint t)

{                           

   uint i,j;

for(i=t;i>0;i--)

for(j=125;j>0;j--);

}

void delay(uchar x)//

{

  uchar i;

  while(x--)

 {

for (i = 0; i<5; i++) {;}

 }

}

void NOP()

{

  _nop_();_nop_();_nop_();_nop_();

  _nop_();_nop_();_nop_();_nop_();

  _nop_();_nop_();_nop_();_nop_();

}

lcd_wcmd(uchar cmd)

{                            // 写入指令数据到LCD

    rs = 0;

    rw = 0;

    ep = 0;

    _nop_();

    _nop_();    

    P0 = cmd;

    delayms(5);

    ep = 1;

    delayms(5);

    ep = 0;        

}

lcd_wdat(uchar dat)    

{                            //写入字符显示数据到LCD

    rs = 1;

    rw = 0;

    ep = 0;

    P0 = dat;

    delayms(5);

    ep = 1;

    delayms(5);

    ep = 0;    

}

lcd_init()

{                            //LCD初始化设定

    lcd_wcmd(0x38);            //

    delayms(5);

    lcd_wcmd(0x0c);            //

    delayms(5);

    lcd_wcmd(0x06);            //

    delayms(5);

    lcd_wcmd(0x01);            //清除LCD的显示内容

    delayms(5);

}

void shuju_chuli()

{  

  uint path;

  s=(s_left+s_right)/2;

  path=s*10;

  dis1[5]='0'+path/10000;

  dis1[6]='0'+path%10000/1000;

  dis1[7]='0'+path%1000/100;

  dis1[8]='0'+path%100/10;

  dis1[10]='0'+path%10;

  dis2[5]='0'+min/10;

  dis2[6]='0'+min%10;

  dis2[11]='0'+sec/100;

  dis2[12]='0'+sec%100/10;

  dis2[14]='0'+sec%10;

}

void display(uchar location,uchar *ptr)

{

  while((*ptr)!='\\0')

  {

    lcd_wcmd(0x80+location);

    lcd_wdat(*ptr++);

    location++;

  }

}

void beep()//蜂鸣器

{

  unsigned char i,j;

for(j=0;j<3;j++)

  {

for (i=0;i<200;i++)

   {

     delayms(1);

     Beep=!Beep;                 //BEEP取反

   } 

   Beep=1;                      //关闭蜂鸣器

   delayms(1000);

  }

}

void zuo90()

{

 uint i;uchar j;

  i=y;

while(y<=(i+12))

  {

     P2=0XF0;

     j=P1&0xff;

if((j==0x27)&&(y>=(i+7)))break;

     P2=0xf4;

     _nop_();_nop_();

  }

  P2=0XF5;delayms(10);flag=0;zhixian=1;bujiu=2;zuozhi=0;youzhi=0;

}

void you90()

{

  uint i;uchar j;

  i=z;

while(z<=(i+12))

  {

     P2=0XF0;

     j=P1&0xff;

if(((j==0x27))&&(z>=(i+7)))break;

     P2=0xf1;

     _nop_();_nop_();

     

  }

  P2=0XF5;delayms(10);flag=0;zhixian=1;bujiu=2;zuozhi=0;youzhi=0;

}

void zhuan180()

{

  uint i=0;

  uchar j;

  i=y;

while((y<=i+7))

  {

     P2=0XF0;

     j=P1&0xff; 

if((j==0x27)&&(y>=(i+6)))break;

     P2=0xf9;

     _nop_(); 

  }

 P2=0XF5;delayms(10);flag=0;zhixian=1;bujiu=2;

}

void stop()

{

  P2=0XF0;EA=0;TR0=0;

  shuju_chuli();

  display(0,dis1);

  display(0x40,dis2);

  beep();

}

void bujiu1()

{

 if(bujiu==1)

 {

  if(bujiuzuo==1)

  {

    P2=0Xf5;delay(5);

    P2=0Xf4;delay(count);

  }

  else if(bujiuyou==1)

  {

    P2=0Xf5;delay(5);

    P2=0Xf1;delay(count);

  }

  count++;

if(count>=13){count=13;}

 }

 if(bujiu==0)

 {

   a++;

if(a>=220)

   {

     a=0;

     TR0=0;P2=0XF0;

     zhuan180();

     TR0=1;

   }

  }

}

void state()

{

  temp=P1&0xff;

  switch(temp)

  {

    case 0x27:zhixian=1;a=0;flag=0;bujiu=0;break;

    case 0x47:xiaozuo=1;a=0;flag=1;bujiu=0;break;

    case 0x67:xiaozuo=1;a=0;flag=1;bujiu=0;break;

    case 0x37:xiaoyou=1;a=0;flag=1;bujiu=0;break;

    case 0x17:xiaoyou=1;a=0;flag=1;bujiu=0;break;

    case 0x87:dazuo=1;a=0;flag=2;bujiu=1;bujiuzuo=1;bujiuyou=0;count=10;break;

    case 0xc7:dazuo=1;a=0;flag=2;bujiu=1;bujiuzuo=1;bujiuyou=0;count=10;break;

    case 0x0f:dayou=1;a=0;flag=2;bujiu=1;bujiuyou=1;bujiuzuo=0;count=10;break;

    case 0x1f:dayou=1;a=0;flag=2;bujiu=1;bujiuyou=1;bujiuzuo=0;count=10;break;

    case 0xe7:zuozhi=1;break;

    case 0xf7:zuozhi=1;break;

    case 0xff:zuozhi=0;youzhi=0;zhijiao=0;you90();break;

    case 0x3f:youzhi=1;break;

    case 0x7f:youzhi=1;break;

    case 0x07:bujiu1();break;

//case 0x77:m++;if(m>=2){m=0;stop();};break;

  }

}

void speed_left()interrupt 0

{

  s_left+=CM;

  z++;

}

void right_left()interrupt 2

{

  s_right+=CM;

  y++;

}

void t0()interrupt 1

{

  TH0=(65536-90)/256;

  TL0=(65536-90)%256;

  P2=0XF0;

  state();delay(10);

  if((zuozhi==1)||(youzhi==1))

  {

    zhijiao++;

    if(zhijiao==16)

    {

      zhijiao=0;

      if(zuozhi==1){zuo90();}

      if(youzhi==1){you90();}

    }

  }

  if(TR0==0)return;

  if(zhixian==1)

  {

    TR1=1;

    if(flag!=0)

    {zhixian=0;}

    P2=0XF5;

    delay(20);

  }

  if(xiaozuo==1)

  {

   TR1=1;

   if(flag!=1)

    {xiaozuo=0;}

   else

    {

      P2=0Xf5;delay(12);

      P2=0Xf4;delay(6);

    }

  }

  if(xiaoyou==1)

  {

    TR1=1;

    if(flag!=1)

    {xiaoyou=0;}

    else

    {

     P2=0Xf5;delay(12);

     P2=0Xf1;delay(6);

    }

  }

  if(dazuo==1)

  {

    TR1=1;

    if(flag!=2)

    {dazuo=0;}

    else

    {

     P2=0Xf5;delay(8);

     P2=0Xf4;delay(12);

    }

  }

  if(dayou==1)

  {

    TR1=1;

    if(flag!=2)

    {dayou=0;}

    else

    {

     P2=0Xf5;delay(8);

     P2=0Xf1;delay(12);

    }

  }

}

void t1()interrupt 3

{

  unsigned int i=0;

  TH1=(65536-50000)/256;

  TL1=(65536-50000)%256;

  n++;

if(n>=2)

  {

    n=0;

    sec++;

if(sec>=600)

    {

     sec=0;

     min++;

if(min>=60)

     {min=0;}

    }

  }

}

main() 

    TMOD=0X11;

    P2=0Xff;

    P1=0xff;

    TH1=(65536-50000)/256;

    TL1=(65536-50000)%256;

    TH0=(65536-90)/256;

    TL0=(65536-90)%256;

    IE=0Xaf;

    IP=0X0d;

    IT0=1;

    IT1=1;

    lcd_init();// 初始化LCD

    delayms(10);

    display(0,dis1);

    display(0x40,dis2);

    TR0=1;

    while(1);

}

文档

智能寻迹小车全部资料

寻迹小车控制与驱动模块原理图寻迹小车寻迹模块原理图实现的程序代码:#include#include"intrins.h"#defineuintunsignedint#defineucharunsignedchar#defineCM2.6uchardis1[]={"Path:0000.0cm"};uchardis2[]={"Time:00min00.0s"};uchardispbuf[10];voiddelay(ucharx);voiddelayms(uintt);voiddianji_cont
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top