标题: HCSR04测距显示出来的一直为000?附单片机程序 [打印本页]

作者: 好想摆烂啊    时间: 2023-5-5 12:50
标题: HCSR04测距显示出来的一直为000?附单片机程序
#include "HCSR04.h"

#define uchar unsigned char        
#define uint  unsigned int        
        
int distance;

sbit Trig = P2^1;
sbit Echo = P2^2;        

void Delay10us()
{
        TMOD=0x10;
        TH0=0x3c;
        TL0=0xb0 ;
        TH0=(65536-10000)/256;  //10ms
        TL0=(65536-10000)%256;
        EA=1;
        TR0 = 1;
        while(!TF0);
        TF0 = 0;
}

unsigned int RunOnce()  
{
        unsigned int time;
        Trig = 0;
        Trig = 1;
        Delay10us();
        Trig = 0;
        while(!Echo)
        {        
                TH0 = 0;
                TL0 = 0;
                TR0 = 1;
        }        
        while(Echo)
        {
                TR0 = 0;
                time = TH0*256 + TL0;
                TH0 = 0;
                TL0 = 0;
        }
        distance = time * 0.018;
        return distance;
}

void TimerOisr() interrupt 1 using 1
{
        TH1=(65536-10000)/256;
        TL1=(65536-10000)%256;
}


作者: 213608    时间: 2023-5-6 15:19
解决了吗?我的也是这样,把超声波模块插上显示0;拔掉显示越界,用手摸着4个引脚能检测

作者: coody_sz    时间: 2023-5-6 21:10
示波器先看一下触发、应答波形和时间差。
作者: a0931727149    时间: 2023-5-6 21:18
程式有 BUG   T0   T1  衝突了  




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1