24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1234  |  回复: 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 dkdkxm 2026-04-01 3/150 2026-04-02 16:04 by wangjagri
[考研] 材料专业求调剂 +10 月月鸟木 2026-04-01 10/500 2026-04-02 12:57 by wxiongid
[考研] 311求调剂 +14 蓝月亮亮 2026-03-30 14/700 2026-04-02 12:18 by 1753564080
[考研] 311求调剂 +9 勇敢的小吴 2026-04-02 9/450 2026-04-02 11:37 by Sammy2
[考研] 271求调剂 +15 勒布朗@ 2026-03-31 20/1000 2026-04-02 11:24 by Sammy2
[考研] 261求B区调剂 +5 明仔· 2026-04-01 7/350 2026-04-02 11:17 by 邹尉尉
[基金申请] esi高被引论文是不是能对中标有所加分和帮助呢 +4 redcom 2026-04-01 4/200 2026-04-02 10:16 by wqy8563
[考研] 270调剂 +7 maxjxbsk 2026-04-02 7/350 2026-04-02 09:50 by yulian1987
[考研] 一志愿北京科技,085601总分305求调剂 +9 半生瓜! 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[考研] 296求调剂 +4 汪!?! 2026-03-31 7/350 2026-04-01 22:04 by 客尔美德
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +10 哇呼哼呼哼 2026-04-01 11/550 2026-04-01 21:48 by chyhaha
[考研] 材料专硕调剂 +17 椰椰。 2026-03-29 17/850 2026-04-01 20:44 by cq2548
[考研] 0703一志愿南师大334求调剂 +4 seven7yu 2026-03-30 4/200 2026-04-01 16:10 by oooqiao
[考研] 一志愿郑大085600,310分求调剂 +6 李潇可 2026-03-26 6/300 2026-04-01 14:44 by chenqifeng666
[考研] 349求调剂 +6 zwjjjjjj 2026-03-31 6/300 2026-04-01 09:16 by JourneyLucky
[考研] 材料科学与工程求调剂 +13 深V宿舍吧 2026-03-29 13/650 2026-03-31 19:50 by Dyhoer
[考研] 086000调剂 +5 7901117076 2026-03-26 5/250 2026-03-31 17:45 by 544594351
[考研] 276求调剂 +3 赵久华 2026-03-29 3/150 2026-03-31 10:06 by cal0306
[考研] 食品工程专硕一志愿中海洋309求调剂 +5 小张zxy张 2026-03-26 10/500 2026-03-31 00:29 by jp9609
[考研] 抱歉 +3 田洪有 2026-03-30 3/150 2026-03-30 19:11 by 迷糊CCPs
信息提示
请填处理意见