標題: 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
示波器先看一下觸發(fā)、應答波形和時間差。
作者: a0931727149    時間: 2023-5-6 21:18
程式有 BUG   T0   T1  衝突了  




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1