0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

51單片機(jī)應(yīng)用_超聲波&定時(shí)器

天才小貍花 ? 2022-10-07 18:06 ? 次閱讀

前言

通過(guò)利用超聲波在空氣中的傳播速度為已知,測(cè)量聲波在發(fā)射后遇到障礙物反射回來(lái)的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。

HC-SR04模塊

**HC-SR04超聲波模塊常用于機(jī)器人避障、物體測(cè)距、液位檢測(cè)、公共安防、停車(chē)場(chǎng)檢測(cè)等場(chǎng)所。HC-SR04超聲波模塊主要是由兩個(gè)通用的壓電陶瓷超聲傳感器,并加外圍信號(hào)處理電路構(gòu)成的。

參數(shù)

Operating Voltage Dc5V
Operating Current 15ma
Operating Frequency 40KHz
Max Range 4m
Min Range 2cm
Ranging Accuracy 3mm
Measuring Angle 15°
Trigger Input Signal 10μS TTL脈沖
Dimension 45 x 20 x 15

控制流程

  1. 通過(guò)Trig引腳發(fā)一個(gè) 10US 以上的高電平,模塊自動(dòng)發(fā)送 8 個(gè) 40khz 的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;
  2. 有信號(hào)返回時(shí),Echo有高電平輸出,高電平時(shí)間即是超聲波往返時(shí)間。
  3. 測(cè)試距離 = (高電平時(shí)間 *聲速)/2

在這里插入圖片描述

通過(guò)單片機(jī)的定時(shí)器獲得計(jì)時(shí)功能來(lái)獲得檢測(cè)距離,開(kāi)啟定時(shí)器后TH和TL寄存器數(shù)值會(huì)自動(dòng)增加。直到關(guān)閉定時(shí)器,再讀出其中的數(shù)值即可計(jì)算距離。

/*開(kāi)始計(jì)時(shí)*/
     while (!ECHO);//當(dāng)ECHO為高電平的時(shí)候,跳出循環(huán),并開(kāi)始記錄時(shí)間
     TR0 = 1;//啟動(dòng)定時(shí)器0,開(kāi)啟計(jì)時(shí)
     while (ECHO);//ECHO不為0,即脈沖返回結(jié)束,計(jì)時(shí)結(jié)束
     TR0 = 0;//停止計(jì)時(shí),此時(shí)的ECHO的高電平時(shí)間就是     超聲波發(fā)出到重新返回接收所用的時(shí)間

代碼

#ifndef _HC_SR04_H_
 #define _HC_SR04_H_
 #include //提供_nop_();/*供HC-SR04提供啟動(dòng)時(shí)間*/
 ?
 /*位定義*/
 sbit TRIG = P1 ^ 0;
 sbit ECHO = P1 ^ 1;
 ?
 /*全局變量定義,超出距離標(biāo)志位為1,不超出為0*/
 bit HC_SR04_flag;
 ?
 /*函數(shù)聲明*/
 void HC_SR04_Init(void);//初始化T0定時(shí)器,用于HC_SR04
 ?
 unsigned int HC_SR04(void);//返回距離
 ?
 #endif
#include "HC_SR04.h"
 ?
 /*******************************************************************************
 ** 函數(shù)名稱(chēng): HC_SR04_Init
 ** 功能描述: 初始化定時(shí)器0,用以記錄從發(fā)射到返回的時(shí)間Time
 ** 參數(shù)說(shuō)明: void
 ** 返回說(shuō)明: void
 ** 創(chuàng)建人員: Main
 ** 創(chuàng)建日期: 2020-06-01
 **------------------------------------------------------------------------------
 ** 修改人員:
 ** 修改日期:
 ** 修改描述:
 **------------------------------------------------------------------------------
 ********************************************************************************/
 void HC_SR04_Init(void)
 {
     TMOD |= 0x01;
 ?
     TH0 = 0;
     TL0 = 0;
     ET0 = 1;             //允許T0中斷,可關(guān)閉,只有特別大的才開(kāi)
     EA = 1;
 ?
     TRIG = 0;           //先使啟動(dòng)端置低,等待高電平啟動(dòng)
 }
 ?
 ?
 /*******************************************************************************
 ** 函數(shù)名稱(chēng): HC_SR04
 ** 功能描述: 返回測(cè)量距離
 ** 參數(shù)說(shuō)明: void
 ** 返回說(shuō)明: 測(cè)量距離,單位(cm)
 ** 創(chuàng)建人員: Main
 ** 創(chuàng)建日期: 2020-12-22
 **------------------------------------------------------------------------------
 ** 修改人員: Main
 ** 修改日期: 
 ** 修改描述: 
 **------------------------------------------------------------------------------
 ********************************************************************************/
 unsigned int HC_SR04(void)
 {
     unsigned int distance;//用于記錄測(cè)得的距離
     unsigned int time;//用于記錄超聲波發(fā)出到重新返回接收所用的時(shí)間
 ?
     /*啟動(dòng)HC_SR04*/
     TRIG = 1;//升高電平,打開(kāi)觸發(fā)信號(hào)
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     _nop_();
     TRIG = 0;
 ?
     /*開(kāi)始計(jì)時(shí)*/
     while (!ECHO);//當(dāng)ECHO為高電平的時(shí)候,跳出循環(huán),并開(kāi)始記錄時(shí)間,當(dāng)為低電平時(shí)卡住不動(dòng)
 ?
     TR0 = 1;//啟動(dòng)定時(shí)器0,開(kāi)啟計(jì)時(shí)
     while (ECHO);//ECHO不為0,即脈沖返回結(jié)束,計(jì)時(shí)結(jié)束
     TR0 = 0;//停止計(jì)時(shí),此時(shí)的ECHO的高電平時(shí)間就是     超聲波發(fā)出到重新返回接收所用的時(shí)間
 ?
     /*計(jì)算時(shí)間及距離*/
     time = (TH0 * 256 + TL0) * 1.29;        //可改變此數(shù)據(jù)來(lái)提高精確度
     distance = (time * 0.034) / 2;          //單位是cm,0.34是mm
 ?
 ?
     TH0 = 0;                                //清零,進(jìn)行下一次測(cè)距
     TL0 = 0;
 ?
     //返回距離
     return distance;
 }
 ?
 /*******************************************************************************
 ** 函數(shù)名稱(chēng): T0_Time_Sr04
 ** 功能描述: 超出測(cè)量距離的異常
 ** 參數(shù)說(shuō)明: None
 ** 返回說(shuō)明: void
 ** 創(chuàng)建人員: Main
 ** 創(chuàng)建日期: 
 **------------------------------------------------------------------------------
 ** 修改人員:
 ** 修改日期:
 ** 修改描述:
 **------------------------------------------------------------------------------
 ********************************************************************************/
 void T0_Time_Sr04() interrupt 1
 {
     HC_SR04_flag = 1;
     //TI=1;
     //printf("超出距離");
     //TI=0;
 }
 ?
 ?
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6040

    文章

    44592

    瀏覽量

    636891
  • 超聲波
    +關(guān)注

    關(guān)注

    63

    文章

    3028

    瀏覽量

    138509
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    274

    文章

    5705

    瀏覽量

    123910
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3254

    瀏覽量

    115070
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)&超聲波探傷儀

    有能和32單片機(jī)連接的超聲波探傷傳感的具體模塊嗎?這種傳感能夠測(cè)高壓線(xiàn)內(nèi)部的缺陷。要是沒(méi)有,自己做一個(gè)得話(huà),如何實(shí)現(xiàn)?
    發(fā)表于 10-10 09:31

    基于51單片機(jī)超聲波測(cè)距系統(tǒng)

    AT89C2051。采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用P3.5端口輸出超聲波換能器所需的40kHz的方波信號(hào),P3.6端口監(jiān)測(cè)超聲波接收電路輸出的
    發(fā)表于 03-25 10:21

    基于SLH89F5162的單片機(jī)超聲波測(cè)距設(shè)計(jì)

    方案標(biāo)題:基于SLH89F5162的單片機(jī)超聲波測(cè)距設(shè)計(jì)方案概述:本設(shè)計(jì)旨在設(shè)計(jì)一種一種基于單片機(jī)實(shí)時(shí)語(yǔ)音播報(bào),帶有LED數(shù)碼顯示功能的脈沖反射式
    發(fā)表于 10-18 14:16

    超聲波單片機(jī)超聲波單片機(jī)超聲波單片機(jī)超聲波單片機(jī)超聲波單片機(jī)超聲波

    單片機(jī)超聲波單片機(jī)超聲波單片機(jī)超聲波單片機(jī)
    發(fā)表于 04-14 23:51

    51單片機(jī)超聲波控制舵機(jī)轉(zhuǎn)向的創(chuàng)意制作資料

    51單片機(jī)&超聲波控制舵機(jī)轉(zhuǎn)向的創(chuàng)意制作,內(nèi)容附實(shí)驗(yàn)圖以及實(shí)用的材料清單
    發(fā)表于 09-26 07:04

    51單片機(jī)計(jì)數(shù)定時(shí)器的區(qū)別

    電子專(zhuān)業(yè)單片機(jī)相關(guān)知識(shí)學(xué)習(xí)教材資料——51單片機(jī)計(jì)數(shù)
    發(fā)表于 05-12 10:31 ?0次下載

    51單片機(jī)超聲波測(cè)距仿真與分析

    51單片機(jī)超聲波測(cè)距仿真與分析
    發(fā)表于 09-04 08:49 ?30次下載

    基于51單片機(jī)超聲波測(cè)距模塊設(shè)計(jì)

    超聲波測(cè)距的模塊,51單片機(jī)接上12864液晶,HC-SR04超聲波模塊,就可以了,具體程序沒(méi)怎么看,超聲波模塊的硬件也不曉得。
    發(fā)表于 12-10 16:33 ?7000次閱讀

    51單片機(jī)驅(qū)動(dòng)超聲波測(cè)距模塊

    51單片機(jī)驅(qū)動(dòng)超聲波測(cè)距模塊(單片機(jī)最小系統(tǒng))-使用51單片機(jī)驅(qū)動(dòng)
    發(fā)表于 07-22 10:01 ?61次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>驅(qū)動(dòng)<b class='flag-5'>超聲波</b>測(cè)距模塊

    51單片機(jī)超聲波測(cè)距(數(shù)碼管顯示)

    51單片機(jī)超聲波測(cè)距(數(shù)碼管顯示)程序/* 超聲波模塊的TRIG管腳接在單片機(jī)的P20口,ECHO管腳接在
    發(fā)表于 11-12 15:06 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>超聲波</b>測(cè)距(數(shù)碼管顯示)

    51單片機(jī)定時(shí)器應(yīng)用】定時(shí)器計(jì)數(shù)、定時(shí)器中斷函數(shù)、while(1)三者之間是如何協(xié)調(diào)、工作?

    51單片機(jī)程序,使用定時(shí)器時(shí),定時(shí)器計(jì)數(shù)、定時(shí)器中斷函數(shù)、while(1)循環(huán)三者之間如何協(xié)調(diào)好整個(gè)流程?【
    發(fā)表于 11-20 18:51 ?12次下載
    【<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>—<b class='flag-5'>定時(shí)器</b>應(yīng)用】<b class='flag-5'>定時(shí)器</b>計(jì)數(shù)、<b class='flag-5'>定時(shí)器</b>中斷函數(shù)、while(1)三者之間是如何協(xié)調(diào)、工作?

    51單片機(jī)定時(shí)器、串口、中斷

    文章目錄MCS-51功能單元一、定時(shí)器&amp;amp;計(jì)數(shù)二、并行口&amp;
    發(fā)表于 11-21 10:36 ?12次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時(shí)器</b>、串口、中斷

    51單片機(jī)定時(shí)器及其應(yīng)用(3)(測(cè)量脈沖頻率)

    51單片機(jī)定時(shí)器及其應(yīng)用(3)(測(cè)量脈沖頻率)&amp;nbsp;&amp;nbsp;&amp;
    發(fā)表于 11-23 16:20 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時(shí)器</b>及其應(yīng)用(3)(測(cè)量脈沖頻率)

    求助51單片機(jī)超聲波測(cè)距

    **自己暑假搞了搞單片機(jī),但是被困在了oled不顯示我測(cè)的實(shí)時(shí)數(shù)據(jù),求幫忙**(stc89c52rc芯片,hc-sr04超聲波測(cè)距模塊)代碼如下:`#include &amp;lt
    發(fā)表于 11-23 18:21 ?0次下載
    求助<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>超聲波</b>測(cè)距

    單片機(jī)高級(jí)系列丨超聲波測(cè)距(數(shù)碼管顯示)

    單片機(jī)高級(jí)系列丨超聲波測(cè)距(數(shù)碼管顯示)超聲波模塊的TRIG管腳接在單片機(jī)的P20口,ECHO管腳接在單片機(jī)的P21口 其他的電源管腳接在
    發(fā)表于 11-26 14:51 ?24次下載
    <b class='flag-5'>單片機(jī)</b>高級(jí)系列丨<b class='flag-5'>超聲波</b>測(cè)距(數(shù)碼管顯示)