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-12-19 广告
2024-12-19 广告
力控组态软件与S7-1500 PLC通讯故障时,首先检查硬件连接,确保线缆无损、接口紧固。接着,验证配置设置,包括波特率、数据位、停止位等是否一致。同时,检查防火墙或安全设置,确保通讯端口未被阻塞。若问题依旧,尝试更新或重装驱动程序和通讯软...
点击进入详情页
本回答由力控科技提供
展开全部
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;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询