久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機超聲波水位測量的液位數據轉換問題
[打印本頁]
作者:
icerdc
時間:
2018-11-15 22:09
標題:
51單片機超聲波水位測量的液位數據轉換問題
這是具體C語言文字,問下 S=(time*1.87)/10; 這是怎么轉換計算的,而且現在液晶顯示屏顯示的S是傳感器到液位的距離,怎么填寫C語言轉換成為液位的液面高度。急急急
#include<reg52.h>
#include <intrins.h>
#include "LCD1602.h"
#include "STCEEPROM.h"
sbit RX = P3^6; //定義超聲波端口
sbit TX = P3^7;
sbit LED = P2^0; //LED
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; //按鍵選擇標志
//延時函數
void Delay_ms(int jj) //延時函數
{
int ii; //延時變量
while(jj--)//延時n毫秒
for(ii=0;ii<116;ii++);//延時1毫秒
}
void Conut(void) //測量函數
{
time=TH0*256+TL0; //距離計數
TH0=0; //定時器清零
TL0=0; //定時器清零
S=(time*1.87)/10; //算出來是CM、轉換
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);
//0123456789ABCDEF
LCD1602_Disp_ZF(0x80+0X40,"Set H: L: ",16);
TMOD=0x11; //設T0為方式1,GATE=1;
TH0=0; //定時器清零
TL0=0; //定時器清零
TH1=0xf8; //2MS定時
TL1=0x30; //2MS定時
ET0=1; //允許T0中斷
ET1=1; //允許T1中斷
TR1=1; //開啟定時器
EA=1; //開啟總中斷
EA=0;//關閉中斷
SET_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);//讀取存儲的最大值
SET_L = ISP_READ(0x2c02)*256+ISP_READ(0x2c03);//讀取存儲的最小值
EA=1; //開啟總中斷
while(1)//函數循環
{
while(!RX); //當RX為零時等待
TR0=1; //開啟計數
while(RX); //當RX為1計數并等待
TR0=0; //關閉計數
Conut(); //計算顯示距離函數
/////////////////////////////////////
if((S/10>SET_H)||(S/10>SET_H)) //水位過低過高報警,
{
LED=0;SPEAK=0; //報警
}
else
{
LED=1;SPEAK=1; //不報警
}
////////////////////////////////
if((S/10>SET_H)) //水位過低打開水泵
{
Motor; //打開
}
else
{
LED=1;SPEAK=1; //關閉
}
if(!KEY1) //切換設置最大值和最小值
{
Delay_ms(10);//延時去抖動
if(!KEY1)//切換設置最大值和最小值
{
KEY_flag++; //模式選擇
ISP_ERASE(0x2c00); //注意:字節編程時必須要先要擦除整個扇區
ISP_PROGRAM(0x2c00, SET_H/256); //記憶存儲
ISP_PROGRAM(0x2c01, SET_H);//記憶存儲
ISP_PROGRAM(0x2c02, SET_L/256);//記憶存儲
ISP_PROGRAM(0x2c03, SET_L); //記憶存儲
}
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 //T0中斷用來計數器溢出,超過測距范圍
{
flag=1; //中斷溢出標志
}
/********************************************************/
void zd3() interrupt 3
{
TH1=0xf8;//2毫秒定時初始化
TL1=0x30;//2毫秒定時初始化
timer++;//計數
if(timer>=100)//計數100次,200毫秒
{
timer=0;
TX=1; //200MS 啟動一次模塊
復制代碼
作者:
晨星123
時間:
2019-1-13 18:07
麻煩樓主把文件發給我學習
作者:
zjjhtony
時間:
2019-1-13 19:53
----------超聲波傳感器位置
-----------液面位置
------------底部
個人認為原理應該是這樣的。固定超聲波傳感器的位置,可以測量超聲波傳感器到底部的位置為Hcm。
讀取超聲波到液面的位置為hcm?梢杂嬎隳愕囊何坏降撞康奈恢=(H-h)cm。
至于S=(time*1.87)/10這個公式是超聲波傳感器的測量原理。將距離轉換為測量超聲波的傳送時間。
距離=系數(恒定)*時間
可以參看超聲波傳感器模塊的具體參數。
注意在C語言中的S的變量類型定義,一般定義為foat。
這個功能能否實現,本人沒有實踐。超聲波測量模塊倒是使用過的。
作者:
wulin
時間:
2019-1-14 09:53
傳感器到罐底的距離是常量,傳感器到液面距離是變量,液位高度=傳感器到罐底的距離減去傳感器到液面距離。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本成人中文字幕
|
亚洲一区中文字幕在线观看
|
久久久久亚洲
|
2023亚洲天堂
|
成人久久久久
|
日本午夜精品一区二区三区
|
国产高清一区二区三区
|
中文字幕一级毛片视频
|
黄色一级网
|
www.亚洲一区二区三区
|
三级黄色片在线观看
|
天天干天天干
|
麻豆一区
|
午夜免费视频
|
欧美精品一区在线发布
|
91精品国产色综合久久不卡98口
|
欧美激情一区二区三级高清视频
|
亚洲精品久久久久avwww潮水
|
激情五月激情综合网
|
熟女毛片
|
色呦呦在线
|
日本精品视频一区二区
|
国产精品夜夜夜一区二区三区尤
|
国产成人精品999在线观看
|
91麻豆精品国产91久久久更新资源速度超快
|
天天躁人人躁人人躁狂躁
|
人人看人人射
|
久久久久久91
|
日韩中文字幕在线
|
国产一区二区三区在线
|
日韩一区在线播放
|
亚洲天堂av在线
|
精品久久久久久中文字幕
|
99re在线视频观看
|
国产精品国产精品国产专区不卡
|
午夜看电影在线观看
|
国产精品欧美一区二区三区
|
欧美日韩高清一区
|
久久久蜜桃一区二区人
|
久久ww
|
精品欧美一区二区精品久久
|