中易网

51单片机外部中断控制多路超声波

答案:2  悬赏:20  
解决时间 2021-11-08 01:37
#include
#include
#define uint unsigned int
#define uchar unsigned char
uint time;
float distance;
sbit right=P2^0;
sbit left=P2^1;
sbit Trig=P1^2;
sbit Echo=P3^2;
sbit Trig_R=P1^3;
sbit Echo_R=P3^2;
sbit Trig_L=P1^4;
sbit Echo_L=P3^2;
void delayms(uint x)
{
uint i;
for(x;x>0;x--)
for(i=124;i>0;i--);
}
void md_front() //前进
{
left=1;
delayms(1);
left=0;
right=1;
delayms(2);
right=0;
}
void turn_left() //左转
{
right=1;
delayms(2);
right=0;
}
void turn_right()
{
left=1;
delayms(1);
left=0;
}
void delay20us() //延时20US
{
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
_nop_();_nop_();
}
void USM()
{
Trig=1;
delay20us();
Trig=0;
delay20us();
EX0=1;
while(!Echo); // 等待高电平
TR0=1;
while(TR0); //等待定时器关闭
EX0=0;
}
void USR()
{
Trig_R=1;
delay20us();
Trig_R=0;
delay20us();
EX0=1;
while(!Echo_R); // 等待高电平
TR0=1;
while(TR0); //等待定时器关闭
EX0=0;
}
void USL()
{
Trig_L=1;
delay20us();
Trig_L=0;
delay20us();
EX0=1;
while(!Echo_L); // 等待高电平
TR0=1;
while(TR0); //等待定时器关闭
EX0=0;
}
float getdistance(uchar ch)
{
float T=0;
uchar i;
for(i=0;i<10;i++)
{
if(ch==0)
USM();
else if(ch==1)
USR();
else if(ch==2)
USL();
T+=time;
delayms(400);
}
T/=10;
distance=0.17*T; //计算距离
return distance;
}
void main()
{
TMOD=0x01;
EA=1; //开总中断
EX0=1; //关外部中断0
IT0=1; //下降沿中断
TR0=0; //关闭定时器0
Trig=0;
Trig_R=0;
Trig_L=0;
while(1)
{
if(getdistance(0))
{
if(distance<40)
{
if(getdistance(1))
{
if(distance<40)
turn_left();
}
if(getdistance(2))
{
if(distance<40)
turn_right();
}
else
md_front();
}
}
if(getdistance(1))
{
if(distance<40)
turn_left();
else
md_front();
}
if(getdistance(2))
{
if(distance<40)
turn_right();
else
md_front();
}
}
}
void Exter() interrupt 0 //回响输出端高电平宽度测量(上升沿到来时候开始计时,下降沿到来进入外部中断,关闭计时器,停止计时)
{
TR0=0;
time=(TH0*256+TL0); //计算定时器内的测量值
TH0=0; //定时器清0
TL0=0;
}

电机为VEX三线电机,超声波是HC-SR04
最佳答案
做过八路的超声波测距,但是时隔比较长,不然干扰比较大,无法准确测量
全部回答
淘宝上买超声波模块的页面有下载连接 你就加个led就行了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么海带侵泡后出现水泡?什么原因?
招标代理机构在赣州如何申请备案
有形固定资产日语怎么说
中国最大的虫草基地在哪儿?
赏石居茶社地址在哪,我要去那里办事
香港名人站有人买过假货吗?
直流变频柜式空调哪个品牌比较好?
宝泰尔电话T121说明书或时如何解防盗功能
XTRM温度远传监测仪是谁开发的?
我乃天地一渔翁
醋泡鸡蛋面膜的做法
杭州燃气热水器维修哪家好?
我生于1981年11月20日晚21点24分男湖南出生
牙齿冷光美白得需要多少钱阿
中央空调和一般的空调有什么区别?
推荐资讯
海尔3d电视机怎么样
虹桥机场到嘉兴的线路?
余额宝和招财宝安全不?
沈阳喷绘一般多少钱?
檀香木貔貅手链佩戴有哪些好处
百思佳床垫价格怎么样
爽肤水,乳液和霜的功效是一样的吗?
手机桌面时钟软件
从北京门头沟鲁家滩驾车到石景山大江南KTV多
日夜思念(造句)小学生
福州朋友們求知道哪裏有好的紋身店?
供电所封签
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?