找回密码
 立即注册

QQ登录

只需一步,快速开始

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

超声波测距显示的距离一直为0.07

[复制链接]
跳转到指定楼层
楼主
ID:265318 发表于 2018-2-19 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
/*******************************************************************************
* 实验名                           : 1602显示红外线值实验
* 使用的IO             : 电机用P1口,键盘使用P3.0、P3.1、P3.2、P3.3
* 实验效果       : LCD1602显示出读取到的红外线的值
*        注意                                         :
*******************************************************************************/                                                                                  

#include<reg51.h>
#include"lcd.h"
#include"control.h"
#include"Ir.h"
#include"UT.h"
#include"DHT11.h"
unsigned int TIM;



/*******************************************************************************
* 函数名         : main
* 函数功能                   : 主函数
* 输入           : 无
* 输出                  : 无
*******************************************************************************/
void delay(unsigned int k)
{while(--k);
}

void IrInit()
{
        IT0=1;//下降沿触发
        EX0=1;//打开中断0允许
        EA=1;        //打开总中断
        IRIN=1;//初始化端口
}


void main()
{   TMOD=0x11;
    TH0=0x00;
        TL0=0x00;
        ET0=1;
        ET1=1;
        TR0=0;
        TR1=1;
        EA=1;
        IrInit();       
        InitLcd1602();                         
        while(1)
        {
          StartModule();
           while(!Echo)
           TR0=1;
           while(Echo)
           TR0=0;
           Count();
          DHT11_receive();
          delay(80);
         
        }

}                                                                         
/*******************************************************************************
* 函数名         : DelayMs()
* 函数功能                   : 延时
* 输入           : x
* 输出                  : 无
*******************************************************************************/


/*******************************************************************************
* 函数名         : IrInit()
* 函数功能                   : 初始化红外线接收
* 输入           : 无
* 输出                  : 无
*******************************************************************************/
void RG() interrupt 0
{       
   ReadIr();
}
void zd() interrupt 3
{TH1=0xf8;
TL1=0x30;


}


评分

参与人数 1黑币 +2 收起 理由
qishufa + 2 淡定

查看全部评分

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

使用道具 举报

沙发
ID:265318 发表于 2018-2-19 15:34 | 只看该作者
#include"UT.h"
void Count()
        {unsigned int time,flag;
         unsigned long S;
         unsigned char code ASCII[15] ={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
         unsigned char disbuff[4]={0,0,0,0};
         time=TH0*256+TL0;
         TH0=0x00;
         TL0=0x00;
       
         S=(time*1.7)/100;     //算出来是CM
         if((S>=700)||flag==1) //超出测量范围显示“-”
         {         
          flag=0;
         
          DisplayOneChar(0, 0, ASCII[11]);
          DisplayOneChar(1, 0, ASCII[10]);        //显示点
          DisplayOneChar(2, 0, ASCII[11]);
          DisplayOneChar(3, 0, ASCII[11]);
          DisplayOneChar(4, 0, ASCII[12]);        //显示M
         }
         else
         {
          disbuff[0]=S%1000/100;
          disbuff[1]=S%1000%100/10;
          disbuff[2]=S%1000%10 %10;
          DisplayOneChar(0, 0, ASCII[disbuff[0]]);
          DisplayOneChar(1, 0, ASCII[10]);        //显示点
          DisplayOneChar(2, 0, ASCII[disbuff[1]]);
          DisplayOneChar(3, 0, ASCII[disbuff[2]]);
          DisplayOneChar(4, 0, ASCII[12]);        //显示M
         }
        }


void  StartModule()                          //启动模块
  {
          Trig=1;                                             //启动一次模块
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          Trig=0;
  }

回复

使用道具 举报

板凳
ID:265318 发表于 2018-2-19 15:35 | 只看该作者
超声波的和主函数分开写的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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