51超聲波測距簡易程式碼
51超聲波測距簡易程式碼
一、基本思路
1、引腳:
Trig
(控制端):控制發出的超聲波訊號
Echo
(接收端):接收反射回來的超聲波訊號
2、計算公式:
測試距離 = ( 高電平時間 x 聲速 (340m/s) ) / 2
二、程式程式碼
//大體程式碼
#include<reg52.h> //按各自主控晶片而定
#include<instrins.h> //_nop_()延時 1us 函式的標頭檔案
#define Trig P1^0 //控制端
#define Echo P1^1 //接收端
typedef unsigned int u16;
typedef unsigned long u32;
u16 distance; //距離 mm為單位
u32 time; //間隔時間 10us為單位
//程式並不全,需要自己補全其他方面的程式碼,只給個核心程式碼
//測量距離
void measure()
{
// 向控制端輸入一個大於10us的脈衝訊號
Trig = 1;
_nop_();
//...省略10個,不要用迴圈執行10次,迴圈每條指令都是佔用時間的(us級別)!
//或者可以自己設計一個執行起來長達10多us的迴圈
Trig = 0;
//等待接收端產生高電平並開時計時
while (!Echo);
time = 0;
while (Echo); //當接收到回傳訊號,接收端置低電平,退出迴圈
distance = (int)(1.7 * time); //(340 * 1000 (mm/s)) * (time * 10 / 1000000 (s)) / 2
}
//定時器0中斷服務函式, 記得定時器模式為方式二
void Timer0_Task() interrupt 1
{
time++; //每自增1代表加10us
}
三、結語
該篇文章並不全面,目的只在於將超聲波的原理轉為實實在在的程式碼實現。
其實,原理固然重要,但是實現又是另一會事,要多培養實踐能力。
(本文參考了 US-100超聲波 使用)
相關文章
- 超聲波測距模組使用
- 醫用超聲波(一)
- 有關超聲波感測器的常見問題解答
- 藍橋杯備忘錄——超聲波
- STM32微控制器連線HC_SR04超聲波模組測距
- 統計程式碼行數簡易程式
- 簡易版NFT合約程式碼
- 一個不用定時器簡易51呼吸燈定時器
- 超聲波清洗機應如何維修保養KRN
- 用Python操作SFTP的簡易程式碼PythonFTP
- 超聲波模組HC-SR04簡介以及程式設計程式設計
- 分享大學期間做智慧車的一些資料,包括超聲波測距模組、直流電機控制演算法、MPU6050等等演算法
- 高速資料採集卡,在超聲波,雷達測控,電力局放中的應用
- 超聲波、毫米波、ToF鐳射雷達——在低功耗場景的應用選型
- 怎樣使你的 JavaScript 程式碼簡單易讀JavaScript
- 200行程式碼寫一個簡易的dva行程
- 一個簡易版的T4程式碼生成
- 3行程式碼實現一個簡易版promise行程Promise
- 簡易版抽獎小程式
- Proteus實現簡單51程式的設計與模擬
- 基於紅外和超聲波的手動/自動調速風扇系統
- Python編寫簡易木馬程式Python
- 面試程式碼題(華為)編輯距離面試
- 將雙手帶入VR世界!Ultrahaptics與MIT合作開設超聲波觸感課程VRAPTMIT
- 51微控制器非常簡潔的矩陣掃描程式矩陣
- Oracle OCP(51):簡單審計Oracle
- .NET Core TDD 前傳: 編寫易於測試的程式碼 -- 縫
- java程式:簡易撲克牌遊戲Java遊戲
- audio 應用:聲波通訊(3)接收原理
- Unity元件:AudioChorusFilterPROonly音訊合聲濾波器Unity元件Filter音訊
- 用Python程式碼來下載任意指定網易雲歌曲(超詳細版)Python
- 英雄聯盟勝負預測--簡易肯德基上校
- 51微控制器流水燈電路以及C程式碼C程式
- 51微控制器mcp4728驅動程式原始碼原始碼
- php原聲實現分頁程式碼示例PHP
- 醫院PACS系統原始碼 PACS超聲科室原始碼 Dicom工作站原始碼
- 使用 PicoLisp 構建簡易文字識別程式Lisp
- 使用 Vyper 編寫簡易文字識別程式