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

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

QQ登錄

只需一步,快速開始

搜索
查看: 2517|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)自動(dòng)避障小車

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:521608 發(fā)表于 2019-4-25 18:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define barrierDis 0.2   //距離障礙物的距離2dm
sbit IN1 =P3^0;  //控制第一個(gè)電機(jī),從單片機(jī)出來后接L298n模塊的IN1
sbit IN2 =P3^1;  //控制第一個(gè)電機(jī),從單片機(jī)出來后接L298n模塊的IN2
sbit IN3 =P3^2;  //控制第二個(gè)電機(jī),從單片機(jī)出來后接L298n模塊的IN3
sbit IN4 =P3^3;  //控制第二個(gè)電機(jī),從單片機(jī)出來后接L298n模塊的IN4
sbit Trig  = P1^5; //產(chǎn)生脈沖引腳
sbit Echo  = P1^4; //回波引腳
sbit servorControl =P1^6;   //舵機(jī)的控制引腳
uchar flag=0;     //有障礙物
uint jieshoutime;  //接收返回障礙信號(hào)的時(shí)間
float juli;       //小車與障礙物距離
uchar control=5;
uchar servorTime=0; //伺服時(shí)間 小車 (1).rar (36.83 KB, 下載次數(shù): 34)


uchar leftFlag=0;//左方向是否有障礙的標(biāo)志
uchar rightFlag=0;//右方向是否有障礙的標(biāo)志
void delay_ms(uint ms)//延時(shí)函數(shù)
{
     uchar time;
     while(ms--)
     for(time=0;time<100;time++);
}
void chufa()    //12us脈沖
{
   Trig=1;
   _nop_();     // _nop_()=1us
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   Trig=0;
}
void stop()
{   
    IN1=0;
    IN2=0;
    IN3=0;
    IN4=0;
}
void forward()                 
{            
    IN1=0;
    IN2=1;
    IN3=0;
    IN4=1;
}
void anticlockwise()            //←
{            
    IN1=0;
    IN2=1;
    IN3=1;
    IN4=0;
}
void backoff ()
{
    IN1=1;
    IN2=0;
    IN3=1;
    IN4=0;
}
void clockwise()                //→
{            
    IN1=1;
    IN2=0;
    IN3=0;
    IN4=1;
}
uchar getDistance()           //利用超聲波模塊判斷有無障礙物
{  
    TH0=0;
    TL0=0;
    chufa();
    while(!Echo);                          //接收信號(hào)取時(shí)
    TR0=1;
    while(Echo);
    TR0=0;
    jieshoutime=TH0*256+TL0;               //接收信號(hào)轉(zhuǎn)換為10進(jìn)制
    juli=(jieshoutime*0.000001*344)/2;     //風(fēng)速設(shè)為344m/s
    if(juli<barrierDis&&flag==0)        //無障礙
    {
       return 0;
    }
    else
    {
        flag=0;                         //有障礙
        return 1;
    }
}
/****************************
void bizhang()                   //無舵機(jī)避障函數(shù)
{
    if(getDistance()==0)
    {
        stop();
        delay_ms(500);
        anticlockwise();
        delay_ms(700);
        forward();
        delay_ms(500);  
    }
    else;
}
****************************/
void  main()
{
    EA=1;
    ET0=1;
    ET1=1;
    TMOD=0x11;
    TH1=0xff;
    TL1=0x9c;
    servorTime=0;
    while(1)
    {
        stop();
        delay_ms(200);     
        control=10;//控制舵機(jī)使超聲波模塊正對(duì)前方
        servorTime=0;
        TR1=1;
        delay_ms(100);
        TR1=0;
        forward();
        while(getDistance()==1); //向前行駛,直到前方有障礙物
        do
        {
            stop();
            control=15;       //使舵機(jī)向左擺動(dòng)
            servorTime=0;
            TR1=1;  
            delay_ms(100);
            TR1=0;
            leftFlag=getDistance();
            control=5;   //使舵機(jī)向右擺動(dòng)
            servorTime=0;
            TR1=1;
            delay_ms(100);
            TR1=0;
            rightFlag=getDistance();
            control=20;
            servorTime=0;
            TR1=1;
            delay_ms(100);
            TR1=0;
            backoff ();
            delay_ms(200);
        }
        while(leftFlag==0&&rightFlag==0);
        if(rightFlag==0&&leftFlag==1) //左側(cè)沒有障礙物
        anticlockwise();
        else if(rightFlag==1&&leftFlag==0)//右側(cè)沒有障礙物
        clockwise();
        else if(rightFlag==1&&leftFlag==1)//兩側(cè)都沒有障礙物,默認(rèn)向左走
        anticlockwise();
        delay_ms(1000);
    }
}

void T1_int(void) interrupt 3    //產(chǎn)生舵機(jī)所需要的脈沖
{
    TH1=0xff;
    TL1=0x9c;
    servorTime++;
    if(servorTime<=control)
        servorControl=1;
    else
        servorControl=0;
    if(servorTime>=200)
        servorTime=0;
}
void T0_int(void) interrupt 1      //超聲波超出測(cè)量范圍
{
        flag=1;
}


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久狠狠| 亚洲视频在线观看 | 国产羞羞视频在线观看 | 99热这里有精品 | 欧美在线一区二区三区 | 天堂中文av| 日本a∨精品中文字幕在线 亚洲91视频 | 成人av在线网站 | 91麻豆产精品久久久久久 | 黄色在线免费观看 | 男女精品网站 | 天天干视频在线 | caoporn国产精品免费公开 | 99re视频在线免费观看 | 日韩av一区二区在线观看 | 精品久久一区 | 五月精品视频 | 久久精品日产第一区二区三区 | 男女午夜免费视频 | 亚洲精品乱码久久久久久蜜桃 | 久久久精品国产 | 国产精品国产a级 | 五月婷婷 六月丁香 | www.黄色片视频 | 国产又爽又黄的视频 | 亚洲综合成人网 | 国产丝袜av | 午夜码电影 | 国产高清视频在线观看 | 欧美bondage紧缚视频 | 久久久久国产 | 亚洲精品久久久久久久久久吃药 | 国产婷婷 | 国产精品视频网 | 精品视频在线免费观看 | 亚洲免费视频在线观看 | 欧美男男videos | 黄色免费网站在线看 | 91精品国产综合久久国产大片 | 久久91精品久久久久久9鸭 | 国产精品国产三级国产aⅴ无密码 |