51单片机HC-SR04超声波测距模块哪里哪里错了
#include<STC15F2K60S2.H>#include<INTRINS.H>sbitBEEF=P0^5;sbitTrig=P1^0;sbitEcho=P1^2;...
#include<STC15F2K60S2.H>
#include<INTRINS.H>
sbit BEEF = P0^5;
sbit Trig=P1^0;
sbit Echo=P1^2;
unsigned char g_counter;
unsigned int time1,time2;
void Delay20us() //@11.0592MHz
{
unsigned char i;
_nop_();
_nop_();
_nop_();
i = 52;
while (--i);
}
void Delay60ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 3;
j = 134;
k = 115;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
unsigned int distance;
TMOD=0X10;
Trig=0;
Echo=0;
while(1)
{
distance=0;
EA=0;
Trig=1;
Delay20us();
Trig=0;
while(Echo==0);
EA=1;
TH1=0;
TL1=0;
TF1=0;
TR1=1;
Delay60ms();
distance=(time1*256+time2)*0.0172;//厘米
if(distance <=100)
{
BEEF=~BEEF;
}
}
}
void isr_to() interrupt 3 using 1
{
TH1=0;
TL1=0;
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
} 展开
#include<INTRINS.H>
sbit BEEF = P0^5;
sbit Trig=P1^0;
sbit Echo=P1^2;
unsigned char g_counter;
unsigned int time1,time2;
void Delay20us() //@11.0592MHz
{
unsigned char i;
_nop_();
_nop_();
_nop_();
i = 52;
while (--i);
}
void Delay60ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 3;
j = 134;
k = 115;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
unsigned int distance;
TMOD=0X10;
Trig=0;
Echo=0;
while(1)
{
distance=0;
EA=0;
Trig=1;
Delay20us();
Trig=0;
while(Echo==0);
EA=1;
TH1=0;
TL1=0;
TF1=0;
TR1=1;
Delay60ms();
distance=(time1*256+time2)*0.0172;//厘米
if(distance <=100)
{
BEEF=~BEEF;
}
}
}
void isr_to() interrupt 3 using 1
{
TH1=0;
TL1=0;
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
} 展开
2个回答
展开全部
你好!你现在是什么现象
追问
就P0^5没反应;
追答
P0^5 在程序内就没有使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
华芯测试
2024-09-01 广告
2024-09-01 广告
作为深圳市华芯测试科技有限公司的一员,我们公司推出的MPI自动探针台是专为磁粉无损检测而设计的专用设备。它结合了先进的自动化技术与高分辨率的图像采集系统,能够高效、准确地检测材料中的表面及近表面缺陷。MPI自动探针台适用于多种材料和零部件,...
点击进入详情页
本回答由华芯测试提供
展开全部
TH1=0;
TL1=0;
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
改为
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
TH1=0;
TL1=0;
TL1=0;
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
改为
if(Echo==0)
{
time1=TH1;
time2=TL1;
EA=0;
}
TH1=0;
TL1=0;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询