超声波
蓝牙
红外
遥控板
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