1.超声波模块型号
超声波模块是一种常用的测距工具,一般用在避障小车,水位监控系统中,本教程使用的模块型号为HC-SR04,外观形状大体如下
模块除了两个电源引脚外,还有TRIG,ECHO引脚,这两个引脚分别接我们开发板的P2.0和P2.1。
工作原理就是起初先给这两个引脚都拉低,然后让TRIG引脚拉高10微秒以上再拉低产生一个脉冲起始信号(程序中我们是拉高20微秒)。起始信号一开启,ECHO引脚就会被拉高的同时,超声波开始发射,ECHO引脚检测到反射回来的信号时就会被拉低,因为声速为340m/s。那么测出的距离就是
(ECHO引脚高电平持续的时间*340m/s)/2。
中学学过用声波测海底深度,时间*声速=来回的距离,所以需要除以2才是真正的深度,超声波模块也一样。
2.软件分析
计算ECHO引脚高电平的持续时间就用定时器的计数功能完成,如果定时器计数溢出,证明测的距离太远,超出模块的测距范围(最多4米),我们就在数码管上显示999表示距离太远。在测量范围内我们的数码管就显示测出的厘米数。
比如说定时器的计数为9216,那么高电平的持续时间就是9216*(12/11059200)=0.01s
测出的距离就是0.01*340/2=1.7m
数码管就显示170。
不过为了简化单片机的计算过程,我们可以这样算
“( (X*12)/11059200 )*340*100/2”就是厘米数,化简约为“X/54”,X就是定时器的计数值。
本讲代码需要用到“#include 3.代码 #include #include #include #include sbit TRIG = P2^0; sbit ECHO = P2^1; u8 FLAG = 0; void delay_20us() { _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); } void main() { u16 time_data,CM_data; TRIG = 0; ECHO = 0; LED_Init(); //初始化LED硬件模块 EA = 1; //闭合总中断开关 TIM1_Init(1000,0); //定时1ms,用来刷新数码管显示,定时精度要求不高可不微调 TMOD &= 0xF0; TMOD |= 0x01; ET0 = 1; while(1) { TH0 = 0; TL0 = 0; FLAG = 0; //上次如果是超出测量范围,FLAG被置1,这次再测就要清0 //启动发射声波 TRIG = 1; delay_20us(); TRIG = 0; while(!ECHO); //声波开始发射,等待ECHO引脚拉高退出这个循环 TR0 = 1; //ECHO引脚一拉高,就打开定时器进行计数 while(ECHO==1 && FLAG==0); //收到声波返回来的信号ECHO引脚就拉低,退出这个循环;如果定时器溢出,就会进入中断函数执行“FLAG=1;” //也就是测量的距离太远,一直没有收到反射回来的信号,不满足“FLAG==0”的条件只能结束这个循环语句 TR0 = 0; //关闭定时器结束计数 time_data =TH0; time_data=(time_data<<8)|TL0; //把两个八位的寄存器里的值组成一个16位变量的值,也就是定时器计数值 CM_data = time_data/54; //得到厘米的表达式 if(FLAG==1){ShowNumber(999); delay_ms(100);} //超出测量范围显示999,延时的目的:比如测得5cm到6cm之间,数码管会频繁在5跟6之间显示,加入延时就会让它们显示的没有那么频繁 else {ShowNumber(CM_data); delay_ms(100);} } } void TIM0_IRQHandler() interrupt 1 { FLAG=1; } void TIM1_IRQHandler() interrupt 3 { TH1 = T1RH; //重新加载重载值 TL1 = T1RL; SEG_Scan(); }
上一篇:51单片机-舵机与按键
下一篇:51单片机-串口通信入门
推荐阅读
史海拾趣
Futaba Electric Co., Ltd. 的五个发展故事
故事一:从真空管到VFD的转型
Futaba Electric Co., Ltd.(原名双叶电子)成立于1948年,最初以生产收音机收讯真空管起家。然而,随着技术的飞速发展和市场需求的变迁,公司在1970年做出了关键的战略调整,决定放弃真空管业务,转而专注于萤光表示管(VFD)的研发与生产。这一决定极具前瞻性,因为VFD以其高清晰度、广视角和出色亮度等独特优势,迅速赢得了市场的青睐。Futaba凭借在VFD领域的持续创新和卓越品质,逐渐确立了其在全球市场的领先地位,市场份额超过60%,成为行业内的佼佼者。
故事二:无线电控制技术的突破
进入1960年代,Futaba在电子领域不断拓宽其技术边界。1962年,公司推出了无线电控制设备和冲压金属模用部件,旨在提升工业生产的品质和效率。这一创新不仅解决了工业控制领域中长期存在的供应商品质和交货期问题,还引领了模具制造行业的标准提升。Futaba的无线电控制技术逐渐在模具制造、工业自动化等领域得到广泛应用,为公司后续在无线遥控领域的深入发展奠定了坚实基础。
故事三:无线遥控技术的领导者
随着技术的不断积累和市场的日益扩大,Futaba在无线遥控领域取得了显著成就。特别是在1990年,公司成功研发出高频无线展频通讯技术,该技术以其高可靠性和抗干扰性,在卫星通讯、工业用机器人和工业控制设备等领域展现出巨大潜力。Futaba的无线遥控产品如遥控飞机、车、船等,在休闲娱乐市场也广受欢迎,进一步巩固了公司在无线遥控技术领域的领先地位。
故事四:VFD在汽车行业的广泛应用
Futaba的VFD产品凭借其卓越的性能和稳定的品质,赢得了众多汽车制造商的信赖。自1983年Futaba的VFD产品被福特汽车公司采用以来,其在美国三大汽车厂的市场占有率迅速攀升至100%。这一成就不仅证明了Futaba产品在汽车行业的广泛应用和市场认可度,也为其在高端消费性电子设备市场的进一步拓展提供了有力支持。
故事五:中国市场的深入布局
为了更好地服务于中国市场,Futaba成立了双叶电子科技开发(北京)有限公司,专营日本双叶(Futaba)的全线产品。这家公司在北京设立,不仅负责Futaba真空荧光显示管及模组、RC遥控器等产品的生产和销售,还积极开拓中国市场,参与行业交流和合作。双叶电子科技开发(北京)有限公司的成立,标志着Futaba在全球化战略中对中国市场的高度重视和深入布局。通过不断提升产品质量和服务水平,Futaba在中国市场也取得了显著成绩,为公司的持续发展注入了新的动力。
1997年,EMC做出了一次重要的收购决策——从Pollak Transportation Electronics Division(TED)收购了开关灯产品线。这一收购使EMC的产品线得到了极大的扩展,同时也增强了其在电气元件领域的竞争力。收购后的开关灯产品线在EMC的精心运营下,逐渐成为了公司的明星产品之一,为公司带来了丰厚的利润。
自1976年起,EMC在蒂华纳不仅为自身运营制造工厂,还开始为其他美国公司,如GM/Hughes Aircraft和Daneher Joslyn Sunbank Electronics提供制造服务。这种深度合作模式不仅增强了EMC的生产能力,也使其能够接触到更多的先进技术和管理经验。通过与这些美国公司的合作,EMC的产品质量和生产效率都得到了显著提升,同时也为公司的全球化战略打下了坚实基础。
20世纪70年代,ERNI开始实施全球化战略。他们意识到,只有不断扩大市场份额,才能确保公司的长期稳定发展。因此,ERNI开始在欧洲、北美和亚洲等地设立销售处和生产基地,为全球客户提供创新且高品质的产品。这一战略的实施,不仅使ERNI的销售额大幅增长,还进一步巩固了其在全球连接器市场的领先地位。
在电子废弃物处理成为全球关注焦点的背景下,“未来电子”积极倡导绿色生产和循环经济理念。公司投入大量资源研发环保型电子产品,并建立了完善的电子废弃物回收处理体系。通过技术创新和科学管理,“未来电子”实现了生产过程中的节能减排和废弃物的有效回收利用,赢得了社会各界的广泛赞誉。这一举措不仅提升了公司的社会形象,还为公司的可持续发展奠定了坚实基础。
1990年,Avery Adhesives与Dennison Manufacturing合并,成立了Avery Dennison公司。这一合并不仅增强了公司的实力,也为其全球扩张提供了有力支持。此后,Avery Dennison通过在欧洲建立工厂、收购其他公司等方式,不断拓展其业务版图。如今,公司的业务已经遍及50多个国家,成为全球领先的标签与包装材料解决方案提供商。
型上悬式离心机。在机械上,此机属于大起动惯量大频繁加、减速周期运行。机器的可靠性直接关系到机器的产量。根据物料的特性,能够随时更改机器的进料速度及各种时间和洗料次数等参数。根据以上要求,电气控制系统应具备以下功能:1)控制机器程序动 ...… 查看全部问答∨ |
在arm中地址空间的单位是一个字节,就是一个地址所指定的空间大小是1个字节,比如一个外设寄存器是32位的话,那它要占用4个地址!我是初学dsp的,看了书,我发觉一个问题,dsp的地址空间指定的跟arm不一样啊,一个地址指定的是16bit空间???… 查看全部问答∨ |
引 言 基于密码的访问控制系统应用在当今是非常普遍的,但人们对其提供的安全等级经常估计过高。通信传输速度和系统计算能力的提高使得系统受到恶意攻击或“密码扫描”的风险增加。在使用不安全的传送方式时,可能发生密码被盗取的现象。例如典型 ...… 查看全部问答∨ |
|
"error LNK2019: unresolved external symbol _HookZwCreateProcess@0 "如何解决?谢谢! HookZwCreateProcess例程的实现放在了Process.c中, 形式如下: VOID NTAPI HookZwCreateProcess() { 。。。。 } HookZwCreateProcess例程的声明放在了Process.h中, 形式如下: VOID NTAPI HookZwCreateProces ...… 查看全部问答∨ |
扩展IO口来驱动矩阵键盘 GPG1,3,5,7接列线,作为中断,EXTINT9,11,13,15; GPE11,13 GPB8,6接行线 相关程序部分如下: 将程序下载到开发板上之后,4×4键盘中只要有一个键按下,就一直产生中断,串口上一直打印eint×,不知道原因 ...… 查看全部问答∨ |
本人做课设,遇到很简单的一个问题。。。。。。。但是解决不了。。。。 我的源码如下 /************************************************************************************************ // &n ...… 查看全部问答∨ |
购买:mp3+耳机 生产方案:10000元 类似一个网吧使用的大耳机,上面集成了mp3,可以插卡(次要功能),usb充电(或者电池) 可以调声音大小,后退(比如想重新听刚才那一句话,可以通过一个旋转按钮控制,类似调声音大小的旋转按钮) ...… 查看全部问答∨ |
一、概述 由于传统的LED 显示屏的信息输入只能通过数据线与电脑直接连接来进行,因此对于传统LED显示屏来说不能满足远程信息实时发布的需要,因而不能构建大规模的联网式LED 屏信息发布系统。由厦门宇能科技有限公司开发的ADSL的宽带 ...… 查看全部问答∨ |