找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2930|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

超聲波測(cè)距顯示的距離一直為0.07

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:265318 發(fā)表于 2018-2-19 15:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
10黑幣
/*******************************************************************************
* 實(shí)驗(yàn)名                           : 1602顯示紅外線值實(shí)驗(yàn)
* 使用的IO             : 電機(jī)用P1口,鍵盤使用P3.0、P3.1、P3.2、P3.3
* 實(shí)驗(yàn)效果       : LCD1602顯示出讀取到的紅外線的值
*        注意                                         :
*******************************************************************************/                                                                                  

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



/*******************************************************************************
* 函數(shù)名         : main
* 函數(shù)功能                   : 主函數(shù)
* 輸入           : 無(wú)
* 輸出                  : 無(wú)
*******************************************************************************/
void delay(unsigned int k)
{while(--k);
}

void IrInit()
{
        IT0=1;//下降沿觸發(fā)
        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);
         
        }

}                                                                         
/*******************************************************************************
* 函數(shù)名         : DelayMs()
* 函數(shù)功能                   : 延時(shí)
* 輸入           : x
* 輸出                  : 無(wú)
*******************************************************************************/


/*******************************************************************************
* 函數(shù)名         : IrInit()
* 函數(shù)功能                   : 初始化紅外線接收
* 輸入           : 無(wú)
* 輸出                  : 無(wú)
*******************************************************************************/
void RG() interrupt 0
{       
   ReadIr();
}
void zd() interrupt 3
{TH1=0xf8;
TL1=0x30;


}


評(píng)分

參與人數(shù) 1黑幣 +2 收起 理由
qishufa + 2 淡定

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:265318 發(fā)表于 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;     //算出來(lái)是CM
         if((S>=700)||flag==1) //超出測(cè)量范圍顯示“-”
         {         
          flag=0;
         
          DisplayOneChar(0, 0, ASCII[11]);
          DisplayOneChar(1, 0, ASCII[10]);        //顯示點(diǎn)
          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]);        //顯示點(diǎn)
          DisplayOneChar(2, 0, ASCII[disbuff[1]]);
          DisplayOneChar(3, 0, ASCII[disbuff[2]]);
          DisplayOneChar(4, 0, ASCII[12]);        //顯示M
         }
        }


void  StartModule()                          //啟動(dòng)模塊
  {
          Trig=1;                                             //啟動(dòng)一次模塊
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          Trig=0;
  }

回復(fù)

使用道具 舉報(bào)

板凳
ID:265318 發(fā)表于 2018-2-19 15:35 | 只看該作者
超聲波的和主函數(shù)分開寫的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表