基于51单片机超声波红外红外小车源代码
以下是笔者在去年12月份参加学校比赛的小车源代码,小车有不足之处,但仍可以做到基本的转弯与避障,发现问题和如何改进就看你们的了
我这里使用了一个超声波模块和红外避障模块
红外模块易受到太阳光照影响,尽量在避免光照的情况下启动
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit int1 = P1 ^ 2;
sbit int2 = P1 ^ 3;
sbit int3 = P1 ^ 4;
sbit int4 = P1 ^ 5;
sbit Trig = P2 ^ 0;
sbit Echo = P2 ^ 1;
sbit red1 = P0 ^ 2;
sbit red2 = P0 ^ 1;
sbit red3=P0^3;
sbit red4=P0^4;
sbit ENA = P1 ^ 0;
sbit ENB = P1 ^ 1;
uint t, kzb, HC_SR04_time, measure_time, qk;
float s;
bit flag, main_sensor;
void StartModule() //启动超声波模块
{
Trig = 1;
_nop_(); //此语句是空语句,用来延时,也就是满足高电平持续10us以上的要求
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
Trig = 0;
}
void count()
{
measure_time =