欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機 vb上位機程序(超聲波測距,溫度顯示等)
[打印本頁]
作者:
xiaoyeye123
時間:
2019-4-26 22:27
標題:
51單片機 vb上位機程序(超聲波測距,溫度顯示等)
小弟最近在做超聲波測距的上位機顯示,上位機用VB顯示,找了好長時間沒有找到設計資料,索性x了一套,有視頻講解和源程序的那種,再次跟大家分享一下。
vb上機位及源碼:
0.png
(4.04 KB, 下載次數: 51)
下載附件
2019-4-27 02:25 上傳
單片機源程序如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit Echo = P2^0; // 接Echo端
sbit Trig = P2^1; // 接Trig端
bit flag =0; // 定時器0是否溢出的標志,1表示溢出
bit enable=0; // 用于判斷是否允許測量,1表示允許
/***********************************
函數:void InitUart()
----------------------
說明:對串口進行初始化
參數:無
返回值:無
***********************************/
void InitUart()
{
TMOD = 0x21; // 高4位(定時器1)用于串口,低4位(定時器0)用于超聲波計時
SCON = 0x50;
TH1 = 0xFD; // 波特率 9600
TL1 = 0xFD;
ES = 1; // 允許串口中斷
ET0 = 1; // 允許定時器0中斷
TR1 = 1; // 開啟定時器1
EA = 1; // 開啟總中斷
}
/***********************************
函數:void DelayMs(uint ms)
----------------------
說明:毫秒級程序延時
參數:ms代表要延時的毫秒數
返回值:無
***********************************/
void DelayMs(uint ms)
{
uint x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);
}
/***********************************
函數:void StartModule()
---------------------------
說明:啟動超聲波模塊
參數:無
返回值:無
***********************************/
void StartModule()
{
Trig=1;
DelayMs(1);
Trig=0;
}
/***********************************
函數:uint Conut(void)
------------------------
說明:計算測到的距離
參數:無
返回值:測得的距離
***********************************/
uint Conut(void)
{
uint time; // 用于記錄測得的時間
uint ss; // 用于記錄測得的距離
time = (TH0*256+TL0)*1.09; // 總時間
TH0=0;
TL0=0;
if(flag==1) // 如果超出測量距離,則不傳輸數據
{
flag=0;
ss=0;
}
else
{
ss=time*1.7/100; // 空氣中聲音的速度是340m/s
}
return ss;
}
/***********************************
函數:void send(uint dat)
---------------------------
說明:將測得的距離通過串口發送出去
參數:dat是測得的距離
返回值:無
***********************************/
void Send(uint dat)
{
SBUF=(dat/100)+ 48; // 發送 百 位
while(!TI);
TI=0;
SBUF=(dat%100/10)+48; // 發送 十 位
while(!TI);
TI=0;
SBUF=(dat%10)+48; // 發送 個 位
while(!TI);
TI=0;
}
/***********************************
函數:void main(void)
----------------------
說明:主函數
參數:無
返回值:無
***********************************/
void main(void)
{
uint ss; // 記錄測量到的距離
InitUart();
while(1)
{
if(enable==1)
{
StartModule();
while(!Echo); // 當RX為零時等待
TR0=1; // 開啟計數
while(Echo); // 當RX為1計數并等待
TR0=0; // 關閉計數
ss=Conut(); // 計算
Send(ss); // 將計算的值通過串口發送出去
DelayMs(800);
}
}
}
/***********************************
函數:void Inter() interrupt 4
------------------------------
說明:串口中斷處理
參數:無
返回值:無
***********************************/
void Inter() interrupt 4
{
if(RI==1)
{
RI=0;
if(SBUF == 0x01)
{
enable = 1;
}
if(SBUF == 0x02)
{
enable = 0;
}
}
}
/***********************************
函數:void zd0() interrupt 1
------------------------------
說明:T0中斷用來計數器溢出,超過測距范圍則置flag為1
參數:無
返回值:無
***********************************/
void zd0() interrupt 1
{
flag=1;
}
復制代碼
所有資料51hei提供下載:
單片機程序.zip
(40.35 KB, 下載次數: 53)
2019-4-26 22:26 上傳
點擊文件名下載附件
單片機源代碼
下載積分: 黑幣 -5
VB上位機程序.zip
(8.04 KB, 下載次數: 69)
2019-4-26 22:26 上傳
點擊文件名下載附件
上位機
下載積分: 黑幣 -5
作者:
xiaoyeye123
時間:
2019-4-26 22:49
沒有人頂一下嗎 這么好的精華帖
作者:
遷就
時間:
2019-4-27 11:01
感謝樓主分享
作者:
lyhot
時間:
2019-4-28 12:28
感謝樓主分享
作者:
張濤boy
時間:
2019-4-29 07:27
沒有人頂一下嗎 這么好的精華帖
作者:
xiou
時間:
2019-5-28 10:49
這個程序不行啊
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1