2127|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求大神帮忙看下这个超声波程序错在哪了? [复制链接]

显示出来的数跟距离根本没关系。
#include
#include
#define  uint unsigned int
#define  uchar unsigned char
sbit trig=P1^0;
sbit echo=P1^1;
unsigned int  time=0;
unsigned int  timer=0;
unsigned long int S=0;
bit flag =0;
uchar error[]="     error     ";
uchar number[10]="0123456789";
uchar num[16];   
void lcd(uint d)
{
        unsigned char x,y,i;
        LcdWriteCom(0x01);
        for(x=16;x>0;x--)
        {
                y=d%10;
                num[x]=y;
                d=d/10;
                if(d<1)
                        break;
        }
        for(i=1;i<=16;i++)
        {
                LcdWriteData(number[num[i]]);
        }
}
void delay10us(uint a)
{
        uint b;
        for(;a>0;a--)
                for(b=120;b>0;b--);
}

void sr04()
{
    uchar i;
        trig=0;
        echo=0;
        TMOD=0x01;
        TH0=0;
        TL0=0;
        ET0=1;
        TR0=0;
        EA=1;
        trig=1;
        while(echo==1);
        TR0=1;
        trig=0;
        while(echo==0);       
        TR0=0;
        time=TH0*256+TL0;
        TH0=0;
        TL0=0;
        S=(time*182)/10;
        if(flag==1)                    
        {
                flag=0;
                LcdInit();
                for(i=1;i<=16;i++)
           {
                        LcdWriteData(error[i]);
                }
        }
        if(S<15&&S>0)
        {
               
                LcdInit();
           for(i=1;i<=16;i++)
           {
                        LcdWriteData(error[i]);
                }
        }
        else
        {
                lcd(S);
        }
}
void zd0() interrupt 1                  
    {
            flag=1;                                                       
    }
void main()
{
    LcdInit();
        while(1)
        {
                sr04();
        }
}
此帖出自51单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表