欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開(kāi)始

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

小白提問(wèn),用HC-SR04超聲波測(cè)距模塊做液位計(jì),如何修改單片機(jī)程序?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在論壇里找到的了基于51單片機(jī)開(kāi)發(fā)板和hc-sr04超聲波測(cè)距模塊的程序,想修改成液位計(jì),即設(shè)定成有固定基準(zhǔn)高度,減去距離(空尺),得出液位實(shí)際高度。請(qǐng)大神指點(diǎn)如何修改單片機(jī)代碼可以實(shí)現(xiàn)液位測(cè)量,謝謝!


/***********************************************************************************************************/
//HC-SR04 超聲波測(cè)距模塊 DEMO 程序
//晶振:11。0592
//接線:模塊模塊 TRIG接 P1.2  ECH0 接P1.1  VCC接單片供電正極5V,GND接單片系統(tǒng)板的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;     //算出來(lái)是CM
         if((S>=420)||flag==1)                    //超出測(cè)量
         {
          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中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍
  {
    flag=1;                                                         //中斷溢出標(biāo)志
  }
/********************************************************/
   void  StartModule()                          //T1中斷用來(lái)掃描數(shù)碼管和計(jì)800MS啟動(dòng)模塊
  {
          TX=1;                                         //800MS  啟動(dòng)一次模塊
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();         

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

        delayms(100);        
        while(1)
        {        
         StartModule();
         while(!RX);                //當(dāng)RX為零時(shí)等待
         TR0=1;                            //開(kāi)啟計(jì)數(shù)
         while(RX);                        //當(dāng)RX為1計(jì)數(shù)并等待
         TR0=0;                                //關(guān)閉計(jì)數(shù)
     Conut();                        //計(jì)算
         delayms(50);        

        }

}              

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

使用道具 舉報(bào)

沙發(fā)
ID:378732 發(fā)表于 2019-11-22 16:56 | 只看該作者
S=(time*1.87)/100;這里不應(yīng)該是1.7嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:282850 發(fā)表于 2019-11-22 20:45 | 只看該作者
公式如下:
Dist=WaterHi-Dist
(Dist:測(cè)距值,WaterHi:最低水位到探頭的距離)

WaterHi為main函數(shù)中的局部變量,單位cm,程序中設(shè)置值為100,即100cm。水位最高時(shí)測(cè)距值接近零,做減法換算為顯示值后顯示最高水位,顯示2位數(shù)字,如實(shí)際總水位高于85Cm,到最高水位時(shí)顯示85。當(dāng)?shù)阶畹退粫r(shí)顯示0。此步中含水泵控制。

sa1.png (12.82 KB, 下載次數(shù): 80)

sa1.png
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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