小车代码合集(与前章小车的代码不同)

这篇博客汇总了关于小车的控制技术,包括超声波测距、蓝牙通信以及红外遥控板的使用。还特别提到了作者为避免下载蓝牙串口软件而自制的遥控按键方案。
摘要由CSDN通过智能技术生成

超声波

蓝牙

红外

遥控板

1.超声波

#include <REGX52.H>
#include <intrins.h>

sbit Trig1 = P1^0 ;
sbit Echo1 = P1^1 ;
sbit Trig2 = P1^2 ;
sbit Echo2 = P1^3 ;



sbit IN1 = P2^0;
sbit IN2 = P2^1;
sbit IN3 = P2^2;
sbit IN4 = P2^3;
sbit ENA = P2^4;
sbit ENB = P2^5;








void _nop10_(){
   

   _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 _nop_();
  

}



void turnleft(){
   
 IN1 = 1 ;
 IN2 = 0 ;
 IN3 = 0 ;
 IN4 = 0 ;


 
}

void turnrigh(){
   
 IN1 = 0 ;
 IN2 = 0 ;
 IN3 = 1 ;
 IN4 = 0 ;

 
}

void run() {
   
 IN1 = 1 ;
 IN2 = 0 ;
 IN3 = 1 ;
 IN4 = 0 ;
}

void stop(){
   
 IN1 = 0 ;
 IN2 = 0 ;
 IN3 = 0 ;
 IN4 = 0 ;

}


void timer(){
   
   TMOD = 0x01 ;
   
   
   TH0 = 0X00;
   TL0 = 0X00;

   ET0 = 1 ;
   TR0 = 1 ;

   TH1 = 0X00;
   TL1 = 0X00 ;
   ET1 = 1 ;
   TR1 = 0 ;

   EA = 1 ;
}



void runtimer() interrupt 1 {
   
    TH1 = 0;
    TL1 = 0;

   TH0 = 0;
   TL0 = 0;

   

}


void main(){
   
 int  time1  ;
    int distance1 ;
 int  time2  ;
    int distance2 ;

 Trig1 = 0 ;
    Echo1 = 0 ;
 Trig2 = 0 ;
    Echo2 = 0 ;
    timer();

  while(1){
   
    Trig1 = 1 ;
 _nop10_();
    Trig1 = 0 ;
 while(Echo1 == 0);
 TR0 = 1 ;
 while(Echo1);
 TR0 = 0 ;
 time1=TH0*256+TL0;
 distance1=(int)(time1*0.017);       
 TH0=0;
 TL0=0;

 Trig2 = 1 ;
 _nop10_();
    Trig2 = 0 ;
 while(Echo2 == 0);
 TR0 = 1 ;
 while(Echo2);
 TR0 = 0 ;
 time2=TH0*256+TL0;
 distance2=(int)(time2*0.017);       
 TH0=0;
 TL0=0;

 if (distance1<20  && distance2<20 )
    {
   stop();}
 
 else if(distance2<20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值