藍橋杯51單片機設計

#超聲波原理#

①超聲波測距原理:聲波反射原理

聲波分類:

超聲波測距原理

超聲波頻率越高,波長越短,反身性越強,衍射性越弱

②超聲波模塊原理

發射原理

跳線帽

接收原理

問題:

.超聲波發射模塊需要一直發射嗎?

不需要,否則很難確定接收的回波對應哪一個發射波

所以我們一般發射較短時間

.發射持續時間多久?

一般是5~8個周期,這個就大致取一個即可

若為5個周期,t=12us*10


程序設計:

一般用定時器0

①產生一個24us周期,占空比50%方波,持續時間五個周期

(高/低電平12us)

②發送完畢后開始計時,當檢測到P11引腳為低電平時停止計時(已接收到回波)

③開始計算距離

④若在測量范圍內無障礙物,則較長的時間未收到回波,則停止計時

將距離設為255cm,一般測距范圍是2m

s=0.017cm/us *t

超聲波wave.c代碼編寫

#include "main.h"
sbit TX=P1^0;//發射
sbit RX=P1^1;//接收
uchar distance;//定時器2不可以。使用定時器0
void Timer2_Init(void)		//12微秒@12.000MHz
{T2MOD = 0;				//初始化模式寄存器T2CON = 0;				//初始化控制寄存器TL2 = 0xF4;				//設置定時初始值TH2 = 0xFF;				//設置定時初始值RCAP2L = 0xF4;			//設置定時重載值RCAP2H = 0xFF;			//設置定時重載值TR2 = 0;				//先不 計時 定時器2開始計時ET2 = 1;				//使能定時器2中斷TF2=0;//清除TF標志
}uchar distance_read()
{uchar distance;uchar num=10;//5個周期
//不發射超聲波,并設定初始時間TX=0;TL2 = 0xF4;				//設置定時初始值TH2 = 0xFF;				//設置定時初始值//開始計時TR2=1;while(num--){while(!TF2);//結束發射超聲波,TF2=1TX= ~TX;TF2=0;}//發射五個超聲波完成,停止計時,并且初始化定時初始值,開始計時,接收到的時間TR2=0;TL2 = 0x00;				//設置定時初始值TH2 = 0x00;				//設置定時初始值TR2=1;while(RX &&!TF2);//等待收到的脈沖(RX為低電平)和長時間未接受到脈沖//判斷溢出現象if(TF2){TF2=0;distance=255;}else{distance=((TH2<<8)|TL2)*0.017;//340/2=170m/s}return distance;
}void display()
{distance=distance_read();}void main()
{Timer2_Init();//12微秒@12.000MHzEA=1;while(1){display();}
}

wave.h代碼編寫

#ifndef __MAIN_H_
#define __MAIN_H_
#include "intrins.h"
#include <STC15F2K60S2.H>
#define uchar unsigned char
#define uint unsigned int
uchar distance_read();
void Timer2_Init(void);		//12微秒@12.000MHz#endif

根據原理進行代碼編寫

最好知道原理代碼編寫,便于熟悉各個引腳的作用


根據定時器12us計時→發射器開始發射→5個周期→發射器停止發射進行代碼編寫

wave.c(方便但誤差較大版)

#include "wave.h"
sbit TX=P1^0;
sbit RX=P1^1;//5個周期12us
void Delay12us(void)	//@12.000MHz
{unsigned char data i;_nop_();_nop_();i = 33;while (--i);
}void wave()
{uchar i;for(i=0;i<5;i++){TX=1;Delay12us();TX=0;Delay12us();}
}uchar read_distance()
{uchar distance;CMOD=0;CH=CL=0;wave();CR=1;while(RX &&!CF);CR=0;if(CF){CF=0;distance=255;}else{distance=((CH<<8)|CL)*0.017;}return distance;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89969.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【LeetCode 熱題 100】240. 搜索二維矩陣 II——排除法

Problem: 240. 搜索二維矩陣 II 編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target 。該矩陣具有以下特性&#xff1a; 每行的元素從左到右升序排列。 每列的元素從上到下升序排列。 文章目錄 整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(M N)空間復…

Android Input 系列專題【inputflinger事件的讀取與分發】

Android輸入系統在native中的核心工作就是&#xff0c;從Linux驅動設備節點中讀取事件&#xff0c;然后將這個事件進行分發&#xff0c;這兩項工作分別交給了InputReader和InputDispatcher來做。 他們的源碼都屬于native層inputflinger里面的一部分&#xff0c;如下架構&#…

【大模型LLM】GPU計算效率評估指標與優化方法:吞吐率

GPU計算效率評估指標與優化方法&#xff1a;吞吐率 一、核心效率指標二、大模型吞吐率&#xff08;Large Model Throughput&#xff09;三、關鍵性能瓶頸分析四、實際測量工具五、優化策略總結 一、核心效率指標 吞吐率&#xff08;Throughput&#xff09; 定義&#xff1a;單位…

Nestjs框架: 集成 Prisma

概述 在 NestJS 的官方文檔中&#xff0c;有兩處對數據庫進行了介紹 第一處位于左側“Techniques&#xff08;技術&#xff09;”部分下的“數據庫”板塊&#xff0c;中文文檔里同樣有這個位置。 Database 第二處是下面的“Recipes (秘籍)”板塊&#xff0c;這里有多個部分都與…

CppCon 2018 學習:What Do We Mean When We Say Nothing At All?

提供的內容深入探討了C編程中的一些關鍵概念&#xff0c;特別是如何編寫清晰、易維護的代碼&#xff0c;并展示了一些C17的新特性。我將對這些內容做中文的解釋和總結。 1. 良好的代碼設計原則 什么是“良好的代碼”&#xff1f; 能工作&#xff1a;代碼實現了預期功能。能在…

C語言中的輸入輸出函數:構建程序交互的基石

在C語言的世界里&#xff0c;輸入輸出&#xff08;I/O&#xff09;操作是程序與用戶或外部數據源進行交互的基本方式。無論是從鍵盤接收用戶輸入&#xff0c;還是將處理結果顯示到屏幕上&#xff0c;亦或是讀寫文件&#xff0c;都離不開C語言提供的輸入輸出函數。本文將深入探討…

高速信號眼圖

橫軸體系時域的抖動大小&#xff1b;縱軸體現電壓的噪聲。 噪聲越大&#xff0c;眼高越小。 抖動越大&#xff0c;眼寬越窄。 眼圖的模板是定義好的最大jitter和噪聲的模板范圍。就是信號的不可觸碰區域。信號波形不能夠觸碰到模板或者進行模板中。也就是眼圖中的線軌跡要在眼…

VisualSVN Server 禁止的特殊符號 導致的。具體分析如下:錯誤提示解讀

是由于 文件夾名稱中包含了 VisualSVN Server 禁止的特殊符號 導致的。具體分析如下&#xff1a; 錯誤提示解讀 錯誤信息明確說明&#xff1a; Folder name cannot contain following symbols < > : " / | and start or end by period. 即 文件夾名稱不能包含以下…

再見,WebSecurityConfigurerAdapter!你好,SecurityFilterChain

對于許多經驗豐富的 Spring開發者來說&#xff0c;WebSecurityConfigurerAdapter 是一個再熟悉不過的名字。在很長一段時間里&#xff0c;它幾乎是所有 Spring Security 配置的起點和核心。然而&#xff0c;隨著 Spring Boot 3.x 和 Spring Security 6.x 的普及&#xff0c;這個…

web前端面試-- MVC、MVP、MVVM 架構模式對比

MVC、MVP、MVVM 架構模式對比 基本概念 這三種都是用于分離用戶界面(UI)與業務邏輯的架構模式&#xff0c;旨在提高代碼的可維護性、可測試性和可擴展性。 1. MVC (Model-View-Controller) 核心結構&#xff1a; Model&#xff1a;數據模型和業務邏輯View&#xff1a;用戶界面展…

【C#】MVVM知識點匯總-2

在C#中實現MVVM&#xff08;Model-View-ViewModel&#xff09;架構時&#xff0c;可以總結以下幾個關鍵知識點&#xff0c;并通過具體的代碼示例來進行說明。 1. 模型 (Model) 模型包含應用程序中的數據和業務邏輯。通常與數據庫交互。 public class User { public int Id {…

一文了解PMI、CSPM、軟考、、IPMA、PeopleCert和華為項目管理認證

1 引言 常見的項目管理方面的認證有PMI、IPMA、PeopleCert、CSPM、軟考和華為項目管理認證6個認證。本篇文章讓你一文了解各認證的基本主要內容。 2 核心定位 目前全球范圍內最具影響力的六大認證體系各有特色&#xff0c;源于不同的管理哲學和實踐背景。六大認證體系的核心…

bean注入的過程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘

一、問題 在spring實踐bean注入ArrayList屬性的時候報錯&#xff1a;Property of ‘java.util.ArrayList’ type cannot be injected by ‘List’二、原因分析 在嘗試將 Spring 配置中的 注入到一個 ArrayList 類型的屬性時出現了類型不匹配問題。核心問題在于&#xff1a;Spr…

自注意力機制原理: 向量矩陣案例進行說明

自注意力機制原理: 向量矩陣案例進行說明 目錄 自注意力機制原理: 向量矩陣案例進行說明一個單詞和所有單詞進行乘法運算,提取特征一、場景設定:翻譯句子“我喜歡深度學習”二、向量矩陣構建:以“我”為例計算自注意力三、矩陣視角:批量計算整個序列的自注意力四、向量矩…

D3 面試題100道之(61-80)

這里是D3的面試題,我們從第 61~80題 開始逐條解答。一共100道,陸續發布中。 ?? 面試題(第 61~80 題) 61. D3 中如何繪制餅圖? 使用 d3.pie() 生成角度數據,再結合 d3.arc() 創建路徑。 示例: const data = [10, 20, 30

flutter更改第三方庫pub get的緩存目錄;更改.gradle文件夾存放目錄

1.在目標目錄中新建文件夾flutter_pub_cache 2.在“用戶變量“或“系統變量”中點擊“新建” 變量名: PUB_CACHE 變量值: D:\flutter_pub_cache 3.打開新的終端運行或者從Android studio 控制臺運行&#xff1a;flutter pub cache repair或者flutter pub clean pub讀取新的變…

《Redis》哨兵模式

文章目錄 為什么要有哨兵模式呢&#xff1f;哨兵自動恢復故障主節點使用docker搭建分布式系統查看哨兵節點工作哨兵選舉新的主節點的流程 總結 為什么要有哨兵模式呢&#xff1f; 主從復制的問題 Redis 的主從復制模式可以將主節點的數據改變同步給從節點&#xff0c;這樣從節…

零基礎保姆級本地化部署文心大模型4.5開源系列

近兩年隨著大模型的迅猛崛起&#xff0c;吸引了各行各業的廣泛關注&#xff0c;更對我們的工作方式與生活產生著顯著積極影響。在這樣一個技術范式轉換的關鍵節點&#xff0c;百度文心大模型開源事件無疑具有里程碑意義——它不僅為中國自主研發的AI技術底座打開了通向世界的大…

【筆記】PyCharm 2025.2 EAP 創建 Poetry 和 Hatch 環境的踩坑實錄與反饋

https://youtrack.jetbrains.com/issue/PY-82407/Incorrect-Python-Version-and-Virtual-Environment-Path-When-Creating-Poetry-and-Hatch-Environments-via-GUI-in-PyCharm-2025.2-EAP 在 Python 開發的道路上&#xff0c;PyCharm 一直是我們信賴的開發利器。然而&#xff0…

ASP.NET Web Pages 安裝使用教程

一、ASP.NET Web Pages 簡介 ASP.NET Web Pages 是微軟推出的一種輕量級 Web 開發框架&#xff0c;適合快速開發動態網站。它使用 Razor 語法&#xff0c;可以將 HTML 與 C# 或 VB.NET 無縫融合&#xff0c;特別適合初學者和小型項目。 二、Web Pages 與 MVC 的區別 特性Web …