久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3331|回復: 2
收起左側

小白提問,用HC-SR04超聲波測距模塊做液位計,如何修改單片機程序?

[復制鏈接]
ID:501901 發表于 2019-3-31 19:38 | 顯示全部樓層 |閱讀模式
在論壇里找到的了基于51單片機開發板和hc-sr04超聲波測距模塊的程序,想修改成液位計,即設定成有固定基準高度,減去距離(空尺),得出液位實際高度。請大神指點如何修改單片機代碼可以實現液位測量,謝謝!


/***********************************************************************************************************/
//HC-SR04 超聲波測距模塊 DEMO 程序
//晶振:11。0592
//接線:模塊模塊 TRIG接 P1.2  ECH0 接P1.1  VCC接單片供電正極5V,GND接單片系統板的GND
//串口波特率9600
/***********************************************************************************************************/         
        #include   <AT89X51.H>
        #include   <intrins.h>
    #include   <STDIO.H>

    #define uchar unsigned  char
    #define uint  unsigned   int  
        #define  RX  P1_1
    #define  TX  P1_2


        unsigned int  time=0;
        unsigned int  timer=0;
        float         S=0;
    bit           flag =0;


/********************************************************/
    void Conut(void)
        {
         time=TH0*256+TL0;
         TH0=0;
         TL0=0;
         S=(time*1.87)/100;     //算出來是CM
         if((S>=420)||flag==1)                    //超出測量
         {
          flag=0;
          printf("S=-----CM\n");
         }
          else
          {
           printf("S=%fCM\n",S);                       
          }

        }
/********************************************************/
void delayms(unsigned int ms)
{
        unsigned char i=60,j;
        for(;ms;ms--)
        {
                while(--i)
                {
                        j=10;
                        while(--j);
                }
        }
}
/********************************************************/
     void zd0() interrupt 1                  //T0中斷用來計數器溢出,超過測距范圍
  {
    flag=1;                                                         //中斷溢出標志
  }
/********************************************************/
   void  StartModule()                          //T1中斷用來掃描數碼管和計800MS啟動模塊
  {
          TX=1;                                         //800MS  啟動一次模塊
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();         

          TX=0;
  }
/********************************************************/
void main(void)
{  
    TMOD=0x21;                   //設T0為方式1,GATE=1;
        SCON=0x50;
        TH1=0xFD;
        TL1=0xFD;
        TH0=0;
        TL0=0;
        TR0=0;  
        ET0=1;             //允許T0中斷
        TR1=1;                           //開啟定時器
        TI=1;
        EA=1;                           //開啟總中斷
    delayms(100);               
        printf("超聲波串口測量系統\n");

        delayms(100);        
        while(1)
        {        
         StartModule();
         while(!RX);                //當RX為零時等待
         TR0=1;                            //開啟計數
         while(RX);                        //當RX為1計數并等待
         TR0=0;                                //關閉計數
     Conut();                        //計算
         delayms(50);        

        }

}              

回復

使用道具 舉報

ID:378732 發表于 2019-11-22 16:56 | 顯示全部樓層
S=(time*1.87)/100;這里不應該是1.7嗎?
回復

使用道具 舉報

ID:282850 發表于 2019-11-22 20:45 | 顯示全部樓層
公式如下:
Dist=WaterHi-Dist
(Dist:測距值,WaterHi:最低水位到探頭的距離)

WaterHi為main函數中的局部變量,單位cm,程序中設置值為100,即100cm。水位最高時測距值接近零,做減法換算為顯示值后顯示最高水位,顯示2位數字,如實際總水位高于85Cm,到最高水位時顯示85。當到最低水位時顯示0。此步中含水泵控制。

sa1.png
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久久久 | 国产精品久久久久久久久免费桃花 | 久久国产免费看 | 精品一区二区久久 | 视频在线日韩 | 色视频在线免费观看 | 久久人人爽人人爽人人片av免费 | 国产精品久久久久久久久久久久午夜片 | 久久成人高清视频 | 青青久在线视频 | 国产精品一区二区三区久久 | 国产精品mv在线观看 | 在线视频 亚洲 | 黄色在线观看国产 | 99久久国产综合精品麻豆 | 特级丰满少妇一级aaaa爱毛片 | 一区二区三区欧美大片 | 亚洲视频中文字幕 | 日本成人中文字幕 | 国产精品高潮呻吟 | 欧美a区| 天天色天天射天天干 | 在线欧美小视频 | 综合色久 | 久久夜夜| 91看片网 | 欧美一区二区三区 | 亚洲一区国产精品 | 日韩欧美一区在线 | 99精品在线免费观看 | 久久一区二区三区免费 | av一区二区三区在线观看 | 欧美激情欧美激情在线五月 | 久久精品国产亚洲 | 国产一区久久久 | 一区二区三区免费 | 97狠狠干| 国产精品久久九九 | 亚洲激情在线观看 | 午夜小视频在线观看 | 婷婷久久精品一区二区 |