/***********************************
函數: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;
}
詳細代碼見附件
51單片機測距上位機和下位機源碼.zip
(44.63 KB, 售價: 1 E幣)
| 歡迎光臨 ELEOK (http://www.afoofa.cn/) | Powered by Discuz! X5.0 |