找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1480|回复: 1
收起左侧

超声波测距超量程

[复制链接]
ID:183466 发表于 2017-11-28 11:00 | 显示全部楼层 |阅读模式
为什么会超量程啊,显示8888
TIM图片20171128105814.png
回复

使用道具 举报

ID:183466 发表于 2017-11-28 14:44 | 显示全部楼层

/*********************超声波测距程序*****************************/
void send_wave()
{
        c_send = 1;                           //10us的高电平触发
        delay();
        c_send = 0;         
        TH0 = 0;                          //给定时器0清零
        TL0 = 0;
        TR0 = 0;                                  //关定时器0定时
        while(!c_recive);                  //当c_recive为零时等待
        TR0=1;
        while(c_recive)                      //当c_recive为1计数并等待
        {
                flag_time0 = TH0 * 256 + TL0;
                if((flag_time0 > 40000))      //当超声波超过测量范围时,显示3个888
                {
                        TR0 = 0;
                        flag_csb_juli = 2;
                        distance = 888;
                        break ;               
                }
                else
                {
                        flag_csb_juli = 1;       
                }
        }
        if(flag_csb_juli == 1)
        {       
                TR0=0;                                                         //关定时器0定时
                distance = flag_time0;
                distance *= 0.017;               // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米
                if(distance > 600)                                 //距离 = 速度 * 时间
                {       
                        distance = 888;                                 //如果大于3.8m就超出超声波的量程
                }
        }  
}
我的测距程序,求指导,哪错了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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