找回密码
 立即注册

QQ登录

只需一步,快速开始

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

超声波测距老超量程

[复制链接]
跳转到指定楼层
楼主

/*********************超声波测距程序*****************************/
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就超出超声波的量程
                }
        }  
}
以上我的测距程序,不知道哪里错了,老超量程,求指导

TIM图片20171128105814.png (26.87 KB, 下载次数: 81)

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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