24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1233  |  回复: 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龃龉 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 302求调剂一志愿华中师范大学 +5 小江小江江江 2026-04-02 5/250 2026-04-02 15:47 by zikuzi1853
[考研] 288求调剂 一志愿哈工大 材料与化工 +30 洛神哥哥 2026-03-31 32/1600 2026-04-02 14:49 by 赖春艳
[考研] 初试301,代码085701环境工程,本硕一致,四六级已过,有二区一作,共发表5篇论文 +6 axibli 2026-04-01 6/300 2026-04-02 13:42 by Ecowxq666!
[考研] 085600 295分求调剂 +16 W55j 2026-03-30 19/950 2026-04-02 13:22 by chran16
[考研] 材料求调剂 一志愿哈工大总分298分,前三科223分 +12 dongfang59 2026-03-27 12/600 2026-04-02 12:26 by ms629
[考研] 085600,材料与化工321分,求调剂 +13 大馋小子 2026-03-27 13/650 2026-04-02 10:48 by sanrepian
[考研] 321求调剂 +9 y-yh 2026-04-01 10/500 2026-04-02 10:14 by 不吃魚的貓
[考研] 377求调剂 +3 RASKIN 2026-04-02 3/150 2026-04-02 09:45 by zzchen2000
[考研] 070305高分子化学与物理 304分求调剂 +14 c297914 2026-03-28 14/700 2026-04-02 09:35 by 星空星月
[考研] 08工科275分求调剂 +13 AaAa7420 2026-03-31 13/650 2026-04-02 06:19 by 286640313
[考研] 英一数一408,总分284,二战真诚求调剂 +12 12.27 2026-03-30 14/700 2026-04-02 00:18 by 欣喜777
[考研] 291求调剂 +20 Y-cap 2026-03-29 25/1250 2026-04-01 23:49 by 欣喜777
[考研] 304求调剂 +12 素年祭语 2026-03-31 15/750 2026-04-01 22:41 by peike
[考研] 材料专硕322分 +9 哈哈哈吼吼吼哈 2026-04-01 9/450 2026-04-01 14:30 by 无际的草原
[考研] 一志愿中农0710生物学,微生物方向总分338求调剂 +3 柒xxxx. 2026-03-26 3/150 2026-04-01 12:30 by 冰乌龙
[考研] 286求调剂 +5 丢掉懒惰 2026-03-27 8/400 2026-03-31 11:27 by Delta2012
[考研] 293分求调剂,外语为俄语 +5 加一一九 2026-03-31 5/250 2026-03-31 09:39 by zhshch
[考研] 285求调剂 +6 AZMK 2026-03-29 9/450 2026-03-30 21:02 by dophin1985
[考研] 调剂 +4 GK72 2026-03-30 4/200 2026-03-30 20:32 by dick_runner
[考研] 283求调剂(080500) +14 A child 2026-03-27 14/700 2026-03-30 12:06 by 探123
信息提示
请填处理意见