24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1230  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

njw龃龉

银虫 (初入文坛)

[求助] Need Your Help!!!想用三个超声波做避障小车。。。 已有1人参与



大家好,我现在想做一个避障小车,是用89c51的,用三个超声波(左,前,右)。
请问在程序里怎么设定那些TH,TL,TR,EX等等呢。。。
能不能劳烦大家给一下三个超声波用在89c51里的程序呢?
就是驱动他们三个超声波的程序。。。



恳请您的帮助!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

njw龃龉

银虫 (初入文坛)

引用回帖:
4楼: Originally posted by 468077240 at 2015-10-24 16:26:25
很久前做过旋转超声波避障车,不过我想问你是如何保证三个超声波间的发射和接受不产生紊乱的

我也不怎么清楚呢,网上说每个超声波有一定时间来间隔工作,但我不清楚怎么用,不知在void  Timer_Count_csb1( void)里加延时行不行呢?
5楼2015-10-24 17:52:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

wake_up

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
1. 先在网上找一个定时器程序,然后跑通。 能按周期亮灭小灯。
2. 在网上找一个外部中断的程序,比如一个按钮触发中断。靠外部中断来控制小灯亮灭。
3. 学如何控制超声波模块发射。
4. 用超生发射,然后接收(应该是接受到回波有中断). 发一次,收一次,让等量。
5.用定时器计算发射和接到的时间差。就能算出距离。
扫地扫地扫心地,心地不扫空扫地,人人都把心地扫,世上无处不净地.
2楼2015-10-24 13:36:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

njw龃龉

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by wake_up at 2015-10-24 13:36:40
1. 先在网上找一个定时器程序,然后跑通。 能按周期亮灭小灯。
2. 在网上找一个外部中断的程序,比如一个按钮触发中断。靠外部中断来控制小灯亮灭。
3. 学如何控制超声波模块发射。
4. 用超生发射,然后接收(应该 ...

能帮我看看这个程序吗?三个超声波都可以工作,但是测不到距离呀。。就是我把书放到它哪个距离都会停,三面很远没障碍物时它才转。谢谢您
#include <reg52.h>
#include <intrins.h>

sbit IN1=P1^2;  
sbit IN2=P1^3;
sbit ENA=P1^4;
sbit IN3=P1^5;
sbit IN4=P1^6;  
sbit ENB=P1^7;
sbit Trig1=P2^0;  
sbit Echo1=P2^1;
sbit Trig2=P2^2;  
sbit Echo2=P2^3;
sbit Trig3=P2^4;     
sbit Echo3=P2^5;
bit  flag1=0;
bit  flag2=0;
bit  flag3=0;


unsigned long S1=0;      
unsigned long S2=0;
unsigned long S3=0;
unsigned int  time1=0;
unsigned int  time2=0;
unsigned int  time3=0;
void Forward(void)          
{
         IN1=1;
         IN2=0;
         IN3=1;
         IN4=0;
}
        void Stop(void)            
{
   IN1=0;
         IN2=0;
         IN3=0;
         IN4=0;
}
void Delay10us(unsigned char i)   
{
   unsigned char j;
do{
  j = 10;
  do{
   _nop_();
   }while(--j);
}while(--i);
}



void conut1(void)     
{
          time1=TH0*256+TL0;
          TH0=0;
          TL0=0;
    S1=time1*0.17+10;
}
void conut2(void)      
{
          time2=TH1*256+TL1;
          TH1=0;
          TL1=0;
    S2=time2*0.17+10;
}
void conut3(void)           
{
          time3=TH2*256+TL2;
          TH2=0;
          TL2=0;
    S3=time3*0.17+10;
}

void zd1() interrupt    1            
{
flag1=1;       
  TH0=0;
        TL0=0;
}
void zd2() interrupt    2               
{
        flag2=1;
        TH1=0;
        TL1=0;
}
void zd3() interrupt    3              
{
        flag3=1;
        TH2=0;
        TL2=0;
}
void StartCSB2()                      
{               
    Trig1=1;
  Trig2=1;
        Trig3=1;
         Delay10us(2);
        Trig1=0;
        Trig2=0;
  Trig3=0;
   
}


void gudingluxian()        
{
        StartCSB2();
    conut1();
        conut2();
        conut3();
       
                  if(S1<50||S2<50||S3<50)   
                {
                   Stop();
                }
                else
                {
                        Forward();
                }
       
                         }

               

void  Timer_Count_csb1( void)
{
          TR0=1;
          while(Echo1==1);
          TR0=0;
         TR1=1;
        while(Echo2==1);
        TR1=0;
        TR2=1;
        while(Echo3==1);
        TR2=0;
               
    gudingluxian();

}

void main(void)
{       

        unsigned int a;

       
TMOD=TMOD|0x01;
    EA=1;       

        TH0=0;
    TL0=0;                          
    ET0=1;   
        TR0=1;

        TH1=0;
    TL1=0;                          
    ET1=1;   
        TR1=1;
       
        TH2=0;
    TL2=0;                          
    ET2=1;   
        TR2=1;

           while(1)
        {   
           ENA=1;
           ENB=1;
         
         Echo1=1;
         Echo2=1;
         Echo3=1;
         
     StartCSB2();
                  
        for(a=951;a>0;a--)
            {
                  
               if(Echo1==1||Echo2==1||Echo3==1)
                   {
             Timer_Count_csb1();       
                   }
                  
             }
           }
}
3楼2015-10-24 15:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

468077240

新虫 (初入文坛)

很久前做过旋转超声波避障车,不过我想问你是如何保证三个超声波间的发射和接受不产生紊乱的

发自小木虫Android客户端
4楼2015-10-24 16:26:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286分调剂 +20 Faune 2026-03-30 22/1100 2026-04-02 13:24 by clyblh
[考研] 08工科求调剂290分 +5 1314捧花 2026-04-02 8/400 2026-04-02 13:16 by 乔哒哒哒
[考研] 275求调剂 +13 jjjjjjjjjjl 2026-03-27 13/650 2026-04-02 13:07 by yulian1987
[考研] 085900土木水利336分求调剂 +4 Zhangjiangj 2026-03-31 6/300 2026-04-02 11:40 by 1753564080
[考研] 271求调剂 +15 勒布朗@ 2026-03-31 20/1000 2026-04-02 11:24 by Sammy2
[考研] 311求调剂 +16 zchqwer 2026-04-01 18/900 2026-04-02 10:15 by 不吃魚的貓
[考研] 354求调剂 +4 lxb598 2026-03-31 5/250 2026-04-02 09:55 by Jaylen.
[考研] 274求调剂 +8 薛定谔的虎。 2026-04-01 8/400 2026-04-02 09:21 by 晴空210210
[考研] 279求调剂 +6 学而思兮知 2026-04-01 6/300 2026-04-02 09:16 by vgtyfty
[考研] 求生物学调剂 +8 15172915737 2026-04-01 8/400 2026-04-02 06:49 by ilovexiaobin
[考研] 291求调剂 +20 Y-cap 2026-03-29 25/1250 2026-04-01 23:49 by 欣喜777
[考研] 303分 0807学硕求调剂 +3 TYC3632 2026-04-01 3/150 2026-04-01 19:24 by lwk2004
[考研] 350求调剂 +7 阿佳~ 2026-03-31 7/350 2026-04-01 16:12 by yanflower7133
[考研] 调剂 +5 好好读书。 2026-03-28 7/350 2026-04-01 15:32 by 王亮_大连医科大
[考研] 求调剂,一志愿北林食品与营养095500,301分,已过六级,有科研经历 +4 快乐储蓄罐 2026-03-31 4/200 2026-04-01 09:26 by JourneyLucky
[考研] 318求调剂 +10 陈晨79 2026-03-30 10/500 2026-03-31 17:37 by 544594351
[考研] 276求调剂 +3 赵久华 2026-03-29 3/150 2026-03-31 10:06 by cal0306
[考研] 求调剂 +10 张zz111 2026-03-27 11/550 2026-03-30 09:17 by 无际的草原
[考研] 复试调剂 +3 raojunqi0129 2026-03-28 3/150 2026-03-28 15:27 by 落睿可思
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
信息提示
请填处理意见