24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1282  |  回复: 4

njw龃龉

银虫 (初入文坛)

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



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



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

» 猜你喜欢

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

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

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的回帖

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的回帖
相关版块跳转 我要订阅楼主 njw龃龉 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 化学专业申博 +3 赵子羊 2026-05-23 4/200 2026-05-24 18:10 by 工大学长
[基金申请] 评审有感 +16 popular289 2026-05-18 27/1350 2026-05-24 17:34 by hhs666
[教师之家] 论文撤稿了 +4 bjvtcliu 2026-05-24 7/350 2026-05-24 17:29 by bjvtcliu
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 hvkbtfonbv 2026-05-23 4/200 2026-05-24 17:21 by 75ui6h7z2t
[博后之家] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 17:10 by 75ui6h7z2t
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 17:01 by 75ui6h7z2t
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 a2tycdlnq1 2026-05-23 4/200 2026-05-24 16:16 by hhx1yx9evi
[基金申请] 河北省自然科学基金 +6 Peterchao 2026-05-18 9/450 2026-05-24 16:02 by 130067131
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 pmo95bazuy 2026-05-23 8/400 2026-05-24 15:56 by 1uy1ht2y9r
[基金申请] 西安交大新媒学院副院长用撤稿论文结题 +3 bjvtcliu 2026-05-24 5/250 2026-05-24 10:16 by kudofaye
[教师之家] 某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路! +4 zju2000 2026-05-21 5/250 2026-05-24 09:35 by songwz
[基金申请] 青B发送上会通知了吗 +5 chemBioBro 2026-05-22 7/350 2026-05-23 12:35 by zhuifengzhy
[考博] 博士申请 +3 焦晓明 2026-05-21 3/150 2026-05-23 11:26 by mlc840311
[论文投稿] 投稿求助,期刊 +4 希冀,有书读 2026-05-20 8/400 2026-05-22 10:16 by 希冀,有书读
[基金申请] 国自然评分 +4 无名者登山 2026-05-20 5/250 2026-05-21 16:35 by swuq
[基金申请] 国自然上会要求 +7 无名者登山 2026-05-18 11/550 2026-05-21 15:50 by draco1987
[基金申请] 提交了我也来说说感想 +9 fummck 2026-05-20 10/500 2026-05-21 14:17 by draco1987
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 8/400 2026-05-20 22:19 by Equinoxhua
[考博] 如果工作了想读博,可以边工作边读全日制嘛? 30+3 铁达火车 2026-05-18 5/250 2026-05-20 09:33 by tfang
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
信息提示
请填处理意见