久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
求解單片機超聲波測距測液位問題
[打印本頁]
作者:
icerdc
時間:
2018-11-15 21:47
標題:
求解單片機超聲波測距測液位問題
這是具體C語言文字,問下 S=(time*1.87)/10; 這是怎么轉換計算的,而且現在液晶顯示屏顯示的S是傳感器到液位的距離,怎么填寫C語言轉換成為液位的液面高度。急急急
單片機源程序如下:
#include<reg52.h>
#include <intrins.h>
#include "LCD1602.h"
sbit RX = P3^6;
sbit TX = P3^7;
sbit LED = P2^0;
sbit SPEAK = P2^1;
sbit Motor = P2^2;
sbit KEY1 = P1^3;
sbit KEY2 = P1^4;
sbit KEY3 = P1^5;
unsigned int time=0;
unsigned int timer=0;
unsigned int S=0;
unsigned int SET_H=100,SET_L=10;
bit flag =0;
unsigned char Table[3],Table1[5];
unsigned char KEY_flag=0;
//?óê±oˉ
void Delay_ms(int jj)
{
int ii;
while(jj--)
for(ii=0;ii<116;ii++);
}
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.87)/10;
if((S>=700)||flag==1)
{
flag=0;
}
else
{
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);
}
}
void main(void)
{
LCD1602_init();
//////////////////////0123456789ABCDEF
LCD1602_Disp_ZF(0x80," Now S: CM ",16);
LCD1602_Disp_ZF(0x80+0X40,"Set H: L: ",16);
TMOD=0x11;
TH0=0;
TL0=0;
TH1=0xf8;
TL1=0x30;
ET0=1;
ET1=1;
TR1=1;
EA=1;
EA=0;
///SET_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);//?áè?′?′¢μ?×?′ó?μ
EA=1;
while(1)
{
while(!RX);
TR0=1;
while(RX);
TR0=0;
Conut();
/////////////////////////////////////
if((S/10>SET_H)||(S/10<SET_L))
{
LED=0;SPEAK=0;
}
else
{
LED=1;SPEAK=1;
}
////////////////////////////////
if((S/10>SET_H))
{
Motor=0;
}
else
{
Motor=1;
}
if(!KEY1)
{
Delay_ms(10);
if(!KEY1)
{
KEY_flag++;
}
while(!KEY1);
}
if(!KEY2)
{
Delay_ms(10);
if(!KEY2)
{
if(KEY_flag%2==0)SET_H++;
if(KEY_flag%2==1)SET_L++;
}
}
if(!KEY3)
{
Delay_ms(10);
if(!KEY3)
{
if(KEY_flag%2==0)SET_H--;
if(KEY_flag%2==1)SET_L--;
}
}
Table[0]= SET_H/100+0X30;
Table[1]= SET_H%100/10+0X30;
Table[2]= SET_H%10+0X30;
LCD1602_Disp_ZF(0x86+0x40,Table,3);
Table[0]= SET_L/100+0X30;
Table[1]= SET_L%100/10+0X30;
Table[2]= SET_L%10+0X30;
LCD1602_Disp_ZF(0x8C+0x40,Table,3);
}
}
/********************************************************/
void zd0() interrupt 1
{
flag=1;
}
/********************************************************/
void zd3() interrupt 3
{
TH1=0xf8;
TL1=0x30;
timer++;
if(timer>=100)
{
timer=0;
TX=1;
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_();_nop_();
_nop_(); _nop_(); _nop_();
TX=0;
}
}
復制代碼
作者:
HC6800-ES-V2.0
時間:
2018-11-16 12:49
第一個問題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發射、反射回來,所以要除以2,time是單片機的定時脈沖次數,不同的單片機,這個次數表達的時間不一樣(不知道你用的單片機晶振是多少),以STC89C52單片機為例,晶振12M,定時器頻率為主頻的12分頻,為1M,即定時器一個脈沖1us=0.000001s,這樣就可以用高中物理知識來計算距離:S=vt=340*time/2。此時S的單位是米m,可以換成mm,就要乘1000,現在就是你給出的公式了,即你給出的公式得出的距離是以mm為單位的距離。至于為什么我說的是time*1.7/10,而你的公式是1.87,這就是對聲波在空氣中傳播速度的補償了,不同溫度下聲波傳播速度不一樣,即空氣密度大時,傳播速度快,所以不是一個定值。(復習高初中的物理,真的意思)。
第二個問題:又用高中物理中的運動學知識吧(其實是常識),你的超聲波傳感器到裝水容器的底部有多遠,我們設為H,現在得超聲波傳感器到水面的距離S,那么,水深就是H-S嘛。哈哈哈,好玩不?!
作者:
icerdc
時間:
2018-11-16 15:17
HC6800-ES-V2.0 發表于 2018-11-16 12:49
第一個問題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發射、反射 ...
大佬謝謝前面都看懂了,可是第二個問題,我在用Proteus進行仿真時, S=(time*1.87)/10; ,假設傳感器到容器低400,我直接變為S=400-(time*1.87)/10; 好像無法顯示,是下面IF函數的問題嗎,也沒有S>700呀,我重新設定一個變量X=H-S也不行。為什么急急急
作者:
icerdc
時間:
2018-11-16 17:21
HC6800-ES-V2.0 發表于 2018-11-16 12:49
第一個問題:S是表示超聲波傳感器到障礙物的距離,聲波通常在空氣中的傳播速度340m/s,超聲波在發射、反射 ...
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); 大佬這個取百十個位好像是錯誤的格式,我改成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); //ÏÔê¾μ±Ç°Öμ 好像可以了正常仿真的,但是仿真時S數據好像會上下浮動,我用的是脈沖信號來模擬超聲波側位的,大佬知道為什么嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲男女激情
|
伊人爽
|
www日本在线播放
|
久久久久久久久久久久91
|
日韩av在线中文字幕
|
91婷婷韩国欧美一区二区
|
亚洲午夜在线
|
国产三级精品视频
|
99精品免费视频
|
欧美日产国产成人免费图片
|
欧美a∨
|
9久久
|
亚洲欧美中文日韩在线v日本
|
91久久综合
|
久久免费观看一级毛片
|
激情欧美日韩一区二区
|
亚洲最大的成人网
|
日本精品视频
|
天天人人精品
|
免费在线播放黄色
|
国产精品久久在线
|
久久久网
|
av男人的天堂在线
|
中文字幕国产视频
|
在线视频中文字幕
|
欧美日一区二区
|
草久久免费视频
|
国产激情毛片
|
97伦理影院
|
欧美视频第二页
|
天天玩天天操天天干
|
午夜二区
|
日韩视频精品在线
|
欧美成人一级
|
日韩欧美网
|
成人免费网站www网站高清
|
中文字幕日韩欧美
|
免费一区
|
色网在线播放
|
九九热国产精品视频
|
久久亚洲一区
|