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

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

QQ登錄

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

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

求解單片機(jī)超聲波測(cè)距測(cè)液位問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:425510 發(fā)表于 2018-11-15 21:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是具體C語(yǔ)言文字,問(wèn)下    S=(time*1.87)/10;  這是怎么轉(zhuǎn)換計(jì)算的,而且現(xiàn)在液晶顯示屏顯示的S是傳感器到液位的距離,怎么填寫(xiě)C語(yǔ)言轉(zhuǎn)換成為液位的液面高度。急急急

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include <intrins.h>
  3. #include "LCD1602.h"
  4. sbit  RX = P3^6;  
  5. sbit  TX = P3^7;

  6. sbit LED = P2^0;  
  7. sbit SPEAK = P2^1;
  8. sbit Motor = P2^2;

  9. sbit KEY1 = P1^3;  
  10. sbit KEY2 = P1^4;  
  11. sbit KEY3 = P1^5;  

  12. unsigned int  time=0;
  13. unsigned int  timer=0;
  14. unsigned int S=0;
  15. unsigned int SET_H=100,SET_L=10;
  16. bit  flag =0;
  17. unsigned char Table[3],Table1[5];
  18. unsigned char KEY_flag=0;
  19. //?óê±oˉ
  20. void Delay_ms(int jj)  
  21. {
  22.         int ii;        
  23.         while(jj--)
  24.                 for(ii=0;ii<116;ii++);
  25. }
  26. void Conut(void)         
  27.         {
  28.          time=TH0*256+TL0;         
  29.          TH0=0;         
  30.          TL0=0;         
  31.       
  32.          S=(time*1.87)/10;     
  33.          if((S>=700)||flag==1)
  34.          {         
  35.           flag=0;
  36.          }
  37.          else
  38.          {
  39.           Table1[0]= S/1000+0X30;        
  40.           Table1[1]= S/100%10+0X30;        
  41.           Table1[2]= S/10/10+0X30;        
  42.           Table1[3]= '.';                        
  43.           Table1[4]= S%10+0X30;           
  44.           LCD1602_Disp_ZF(0x88,Table1,5);
  45.         }
  46. }
  47. void main(void)        
  48. {
  49.     LCD1602_init();
  50.         //////////////////////0123456789ABCDEF
  51.     LCD1602_Disp_ZF(0x80,"  Now S:     CM ",16);
  52.                                                      
  53.     LCD1602_Disp_ZF(0x80+0X40,"Set H:    L:    ",16);
  54.         TMOD=0x11;                  
  55.         TH0=0;                           
  56.         TL0=0;            
  57.         TH1=0xf8;                  
  58.         TL1=0x30;                  
  59.         ET0=1;            
  60.         ET1=1;                           
  61.         TR1=1;                           
  62.         EA=1;                           
  63.         EA=0;
  64.         ///SET_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);//?áè?′?′¢μ?×?′ó?μ
  65.         
  66.         EA=1;
  67.         while(1)
  68.         {
  69.                 while(!RX);                    
  70.                 TR0=1;                           
  71.                 while(RX);                        
  72.                 TR0=0;                                
  73.                 Conut();  
  74.                 /////////////////////////////////////
  75.                 if((S/10>SET_H)||(S/10<SET_L))
  76.                 {
  77.                         LED=0;SPEAK=0;
  78.                 }
  79.                 else
  80.                 {
  81.                         LED=1;SPEAK=1;
  82.                 }
  83.                 ////////////////////////////////
  84.                 if((S/10>SET_H))
  85.                 {
  86.                         Motor=0;
  87.                 }
  88.                 else
  89.                 {
  90.                         Motor=1;
  91.                 }      
  92.                 if(!KEY1)
  93.                 {
  94.                         Delay_ms(10);
  95.                         if(!KEY1)
  96.                         {
  97.                                 KEY_flag++;        
  98.                                 
  99.                                 
  100.                                 
  101.                                 
  102.                                 
  103.                         }
  104.                         while(!KEY1);
  105.                 }
  106.                 if(!KEY2)
  107.                 {
  108.                         Delay_ms(10);
  109.                         if(!KEY2)
  110.                         {
  111.                                 if(KEY_flag%2==0)SET_H++;
  112.                                 if(KEY_flag%2==1)SET_L++;
  113.                         }
  114.                 }
  115.                 if(!KEY3)
  116.                 {
  117.                         Delay_ms(10);
  118.                         if(!KEY3)
  119.                         {
  120.                                 if(KEY_flag%2==0)SET_H--;
  121.                                 if(KEY_flag%2==1)SET_L--;
  122.                         }
  123.                 }
  124.           Table[0]= SET_H/100+0X30;
  125.           Table[1]= SET_H%100/10+0X30;
  126.           Table[2]= SET_H%10+0X30;
  127.           LCD1602_Disp_ZF(0x86+0x40,Table,3);
  128.           Table[0]= SET_L/100+0X30;         
  129.           Table[1]= SET_L%100/10+0X30;
  130.           Table[2]= SET_L%10+0X30;
  131.           LCD1602_Disp_ZF(0x8C+0x40,Table,3);
  132.         }
  133. }

  134. /********************************************************/
  135.      void zd0() interrupt 1                  
  136.   {
  137.     flag=1;                                                         
  138.   }
  139. /********************************************************/
  140.    void  zd3()  interrupt 3        
  141.   {
  142.          TH1=0xf8;
  143.          TL1=0x30;
  144.          timer++;
  145.          if(timer>=100)
  146.          {
  147.           timer=0;
  148.           TX=1;                                       
  149.           _nop_(); _nop_(); _nop_();
  150.           _nop_(); _nop_(); _nop_();
  151.           _nop_(); _nop_(); _nop_();
  152.           _nop_(); _nop_(); _nop_();
  153.           _nop_(); _nop_(); _nop_();
  154.           _nop_(); _nop_();_nop_();
  155.           _nop_(); _nop_(); _nop_();
  156.           TX=0;
  157.          }
  158.   }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:164602 發(fā)表于 2018-11-16 12:49 | 只看該作者
第一個(gè)問(wèn)題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發(fā)射、反射回來(lái),所以要除以2,time是單片機(jī)的定時(shí)脈沖次數(shù),不同的單片機(jī),這個(gè)次數(shù)表達(dá)的時(shí)間不一樣(不知道你用的單片機(jī)晶振是多少),以STC89C52單片機(jī)為例,晶振12M,定時(shí)器頻率為主頻的12分頻,為1M,即定時(shí)器一個(gè)脈沖1us=0.000001s,這樣就可以用高中物理知識(shí)來(lái)計(jì)算距離:S=vt=340*time/2。此時(shí)S的單位是米m,可以換成mm,就要乘1000,現(xiàn)在就是你給出的公式了,即你給出的公式得出的距離是以mm為單位的距離。至于為什么我說(shuō)的是time*1.7/10,而你的公式是1.87,這就是對(duì)聲波在空氣中傳播速度的補(bǔ)償了,不同溫度下聲波傳播速度不一樣,即空氣密度大時(shí),傳播速度快,所以不是一個(gè)定值。(復(fù)習(xí)高初中的物理,真的意思)。
第二個(gè)問(wèn)題:又用高中物理中的運(yùn)動(dòng)學(xué)知識(shí)吧(其實(shí)是常識(shí)),你的超聲波傳感器到裝水容器的底部有多遠(yuǎn),我們?cè)O(shè)為H,現(xiàn)在得超聲波傳感器到水面的距離S,那么,水深就是H-S嘛。哈哈哈,好玩不?!
回復(fù)

使用道具 舉報(bào)

板凳
ID:425510 發(fā)表于 2018-11-16 15:17 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-11-16 12:49
第一個(gè)問(wèn)題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發(fā)射、反射 ...

大佬謝謝前面都看懂了,可是第二個(gè)問(wèn)題,我在用Proteus進(jìn)行仿真時(shí), S=(time*1.87)/10;     ,假設(shè)傳感器到容器低400,我直接變?yōu)镾=400-(time*1.87)/10; 好像無(wú)法顯示,是下面IF函數(shù)的問(wèn)題嗎,也沒(méi)有S>700呀,我重新設(shè)定一個(gè)變量X=H-S也不行。為什么急急急
回復(fù)

使用道具 舉報(bào)

地板
ID:425510 發(fā)表于 2018-11-16 17:21 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-11-16 12:49
第一個(gè)問(wèn)題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發(fā)射、反射 ...

Table1[0]= S/1000+0X30;        
          Table1[1]= S/100%10+0X30;        
          Table1[2]= S/10/10+0X30;        
          Table1[3]= '.';                        
          Table1[4]= S%10+0X30;           
          LCD1602_Disp_ZF(0x88,Table1,5); 大佬這個(gè)取百十個(gè)位好像是錯(cuò)誤的格式,我改成Table1[0]= S/100+0X30;        //ÏÔê¾μ±Ç°Öμ
          Table1[1]= S/10%10+0X30;        //ÏÔê¾μ±Ç°Öμ
          Table1[2]= S%10+0X30;        //ÏÔê¾μ±Ç°Öμ
          Table1[3]= '.';                        //ÏÔê¾μ±Ç°Öμ
          Table1[4]= S%10+0X30;           //ÏÔê¾μ±Ç°Öμ
          LCD1602_Disp_ZF(0x88,Table1,5); //ÏÔê¾μ±Ç°Öμ 好像可以了正常仿真的,但是仿真時(shí)S數(shù)據(jù)好像會(huì)上下浮動(dòng),我用的是脈沖信號(hào)來(lái)模擬超聲波側(cè)位的,大佬知道為什么嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区视频在线免费观看 | 日韩插插 | 羞羞的视频在线 | 国产精品国产 | 超碰免费观看 | 国产精品1区2区3区 中文字幕一区二区三区四区 | av在线播放不卡 | 欧美在线一二三 | 久久久视频在线 | 欧美日韩一区二区三区在线观看 | 黄色片在线看 | 欧美国产亚洲一区二区 | 黄色国产在线视频 | 久久国产精品一区二区三区 | 久久久国产一区二区三区 | 日韩色在线 | 日本欧美在线 | 亚洲最大看片网站 | 91亚洲国产成人久久精品网站 | 中文天堂网 | 奇米久久 | 国产区第一页 | 成人在线视频免费观看 | 91久久精品一区二区二区 | 欧美高清一级片 | 精品久久久久久久久久久下田 | aaa一区| 亚洲九九精品 | 韩国主播午夜大尺度福利 | 龙珠z在线观看 | 黄色片免费在线观看 | 亚洲欧美一区二区三区视频 | 久久久久久久一级 | 国产网站久久 | 性做久久久久久免费观看欧美 | 亚洲福利 | 久久精品久久久久久 | 亚洲第一天堂 | 奇米影视首页 | 国产区在线视频 | 国产日韩欧美中文字幕 |