2.超声波测距模块

2024-06-23 21:12
文章标签 测距 超声波 模块

本文主要是介绍2.超声波测距模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.简介

 

2.超声波的时序图 

3.基于51单片机实现的代码 

#include "reg52.h"
#include "intrins.h"
sbit  led1=P3^7;//小于10,led1亮,led2灭
sbit  led2=P3^6;//否则,led1灭,led2亮
sbit  trig=P1^5;
sbit  echo=P1^6;
void Delay10us()		//@11.0592MHz
{unsigned char i;i = 2;while (--i);
}
void Delay200ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 2;j = 103;k = 147;do{do{while (--k);} while (--j);} while (--i);
}
void Timer0Init(void)		//100微秒@11.0592MHz
{TMOD &= 0xF0;		//设置定时器模式TMOD |= 0x01;		//设置定时器模式TL0 = 0;		//设置定时初值TH0 = 0;		//设置定时初值//	TR0 = 1;		//定时器0开始计时
}
void startHC()
{trig=0;trig=1;Delay10us();trig=0;
}
void main()
{double time;double dis;Timer0Init();while(1){Delay200ms();//因为没有晶振,需要延时200msstartHC();//超声波初始化while(echo==0);TR0 = 1;//开启定时器,记录高电平时长while(echo==1);TR0 = 0;//关闭定时器time=(TH0*256+TL0)*1.085;//1.085微秒dis=time*0.017;//转化为微秒/cmif(dis<10){led1=0;led2=1;}else{led1=1;led2=0;}TL0 = 0;		//重新设置定时初值,方便下一次测距TH0 = 0;}
}

这篇关于2.超声波测距模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088291

相关文章

iptables(7)扩展模块state

简介         前面文章我们已经介绍了一些扩展模块,如iprange、string、time、connlimit、limit,还有扩展匹配条件如--tcp-flags、icmp。这篇文章我们介绍state扩展模块  state          在 iptables 的上下文中,--state 选项并不是直接关联于一个扩展模块,而是与 iptables 的 state 匹配机制相关,特

python 在pycharm下能导入外面的模块,到terminal下就不能导入

项目结构如下,在ic2ctw.py 中导入util,在pycharm下不报错,但是到terminal下运行报错  File "deal_data/ic2ctw.py", line 3, in <module>     import util 解决方案: 暂时方案:在终端下:export PYTHONPATH=/Users/fujingling/PycharmProjects/PSENe

[FPGA][基础模块]跨时钟域传播脉冲信号

clk_a 周期为10ns clk_b 周期为34ns 代码: module pulse(input clk_a,input clk_b,input signal_a,output reg signal_b);reg [4:0] signal_a_widen_maker = 0;reg signal_a_widen;always @(posedge clk_a)if(signal_a)

spring-boot-maven-plugin多模块install问题

一、问题描述:   项目分多个模块,open-eureka注册中心、open-provider服务提供者、open-common公共部分,provider依赖common。父pom使用spring-boot-maver-plugin插件,项目直接运行Main主类没问题,但是install报common中的类找不到符号. 二、查找问题:   spring-boot-maven-plugin 打

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         最近学习mcu的时候,接触了不少调试器,这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样,但是硬件的连线都差不多,都是mcu上的3.3v、clk、dio和gnd四根连线。出于好奇,今天花了点时间了解了一下debug port、sw

使用import和exec运行模块文件的异同

使用import和exec运行模块文件的异同 实例代码 #script1.pyimport sysprint(sys.platform)x = 'span'print(x*8) 在cmd中 >>> import script1win32spanspanspanspanspanspanspanspan >>> exec(open('script1.py').read())win

ansible setup模块

用于收集有关目标主机的系统和网络信息,并将这些信息存储为一个facts变量,可以在Playbook的后续任务中使用。setup模块可以用来获取主机的操作系统、软件包、IP地址、内存、磁盘和其他硬件信息。这些信息对编写Playbook和进行条件判断非常有用。当你在Playbook或者直接通过Ansible命令行使用setup模块时,它会返回一个包含目标主机详细信息的JSON结构,这些信息包括但不限于

ansibie yum模块

用于在远程主机上使用yum软件包管理器来安装、更新、删除和查询软件包的。它使得在大规模主机环境中进行软件包管理变得更加简单和自动化。 name: 必需参数,指定需要管理的软件包名称,例如 nginx、httpd 等。 state: 指定软件包应处于的状态,可选值包括: present 或 installed: 确保软件包被安装,这是默认值。latest: 确保软件包被安装,并且是最新版本。

Elasticsearch java API (4)部署在JBoss EAP6模块

部署在JBoss EAP6模块编辑 Elasticsearch和Lucene类需要在同一个JBoss模块。 你应该定义一个 module.xml文件是这样的: <?xml version="1.0" encoding="UTF-8"?><module name="org.elasticsearch"><resources><!-- Elasticsearch --><r

Altera的JTAG电路下载模块为何上下拉电阻,不可不知的秘密

一、FPGA背景信息 当前的FPGA市场上有国际和国产两大体系,国际排名,一直很稳定,国际上前三名Xilinx、Altera、Lattice,国内FPG厂商也在填补空白,低端、中低端市场上发力,替代潮流已在兴起,目前国内前五,分别是京威齐力、安路科技、广州高云、复旦微电子、西安智多晶,国货当自强,真的很厉害。 FPGA随着人工智能、大数据、云计算、数据中心而越发收到重视,对于我们硬件工程师来说