找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 683|回复: 3
打印 上一主题 下一主题
收起左侧

HCSR04测距显示出来的一直为000?附单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:1075452 发表于 2023-5-5 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1055614 发表于 2023-5-6 15:19 | 只看该作者
解决了吗?我的也是这样,把超声波模块插上显示0;拔掉显示越界,用手摸着4个引脚能检测
回复

使用道具 举报

板凳
ID:1034262 发表于 2023-5-6 21:10 | 只看该作者
示波器先看一下触发、应答波形和时间差。
回复

使用道具 举报

地板
ID:140371 发表于 2023-5-6 21:18 | 只看该作者
程式有 BUG   T0   T1  衝突了  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表