超声波探测装置设计报告
- 格式:wps
- 大小:148.50 KB
- 文档页数:13
基于stm32单片机的超声波测距仪设计报告【文章标题】基于STM32单片机的超声波测距仪设计报告【引言】超声波测距是一种常见且有效的测量方法,被广泛应用于工业控制、自动化、智能家居等领域。
本文将深入讨论基于STM32单片机的超声波测距仪的设计原理、硬件搭建和软件编程,并分享对该设计的观点和理解。
【简介】1. 超声波测距原理简介(可使用子标题,如1.1)- 超声波的特性与应用- 超声波传感器原理及工作方式2. 设计方案(可使用子标题,如2.1)- 系统框图:硬件模块与连接方式- 所需材料清单及器件参数选择【正文】1. 超声波传感器的选型与特性比较(可使用子标题,如1.1)1.1 超声波传感器的种类与特点1.2 STM32单片机与超声波传感器的配合选择理由与原则2. 硬件电路设计与搭建(可使用子标题,如2.1)2.1 超声波发射电路设计与实现2.2 超声波接收电路设计与实现2.3 STM32单片机与超声波传感器的连接方法及引脚映射3. 软件编程实现(可使用子标题,如3.1)3.1 STM32单片机开发环境配置与准备3.2 程序框架和流程设计3.3 超声波信号处理与距离计算算法【总结】1. 设计成果总结与优缺点评价- 设计成果与功能实现总结- 设计过程中的挑战与解决方案- 设计的优点与改进空间2. 对基于STM32单片机的超声波测距仪设计的观点和理解- 本设计在硬件搭建和软件编程方面充分利用了STM32单片机的性能与功能- 超声波测距仪在工业自动化和智能家居等领域具有广阔应用前景 - 未来可以进一步提升设计的灵活性和可扩展性【参考资料】- 张三: 《超声波测距原理与应用技术》,出版社,2018年- 李四: 《STM32单片机与嵌入式系统设计》,出版社,2019年以上是本文基于STM32单片机的超声波测距仪设计报告,对这个主题的观点和理解。
希望这篇文章内容全面、深入,并能帮助您对超声波测距仪设计有更深刻的理解。
基于stm32单片机的超声波测距仪设计报告1. 引言超声波测距仪(Ultrasonic Distance Sensor)是一种常用的测距设备,通过发送超声波脉冲并接收其反射信号来测量目标与测距仪之间的距离。
本报告将详细介绍基于stm32单片机的超声波测距仪的设计过程。
2. 设计原理超声波测距仪的基本原理是利用超声波在空气中的传播速度和反射特性来计算目标物体与测距仪之间的距离。
其中,stm32单片机作为测距仪的控制核心,通过发射超声波脉冲并测量接收到的回波时间来计算距离。
2.1 超声波传播速度超声波在空气中的传播速度约为340m/s,可以通过测量超声波往返的时间来计算出距离。
2.2 超声波反射信号当超声波遇到障碍物时,会产生反射信号,测距仪接收到这些反射信号并测量其时间差,再通过计算即可得到距离。
3. 硬件设计本设计使用stm32单片机作为核心控制器,并搭配超声波发射器和接收器模块。
3.1 超声波发射器超声波发射器负责产生超声波脉冲,并将脉冲信号发送到待测物体。
3.2 超声波接收器超声波接收器负责接收从物体反射回来的超声波信号,并将其转换为电信号。
3.3 stm32单片机stm32单片机作为测距仪的核心控制器,负责发射超声波脉冲、接收反射信号并计算距离。
4. 软件设计本设计涉及的软件设计包括超声波信号发射、接收信号处理和距离计算等。
4.1 超声波信号发射使用stm32单片机的GPIO口控制超声波发射模块,产生一定频率和周期的脉冲信号。
4.2 接收信号处理通过stm32单片机的ADC模块,将超声波接收器接收到的模拟信号转换为数字信号,并对信号进行处理和滤波。
4.3 距离计算根据接收到的超声波反射信号的时间差,结合超声波的传播速度,使用合适的算法计算出距离。
5. 实验结果与分析经过实际测试,基于stm32单片机的超声波测距仪达到了预期的效果。
能够精确测量目标与测距仪之间的距离,并显示在相关的显示设备上。
超声波检测实验报告超声波检测实验报告引言:超声波检测是一种常见的非破坏性检测方法,广泛应用于医学、工业和科学研究领域。
本实验旨在通过超声波技术对不同材料的缺陷进行检测,探索其在材料科学中的应用。
一、实验装置与原理超声波检测实验装置由超声波发射器、接收器、示波器和被测材料组成。
超声波发射器产生高频声波,经过被测材料后,被接收器接收并转化为电信号,最后通过示波器显示。
二、实验步骤1. 准备被测材料:选取不同材质的样本,如金属、塑料和陶瓷。
确保样本表面平整且无明显瑕疵。
2. 设置实验装置:将超声波发射器和接收器固定在一定距离上,确保与被测材料保持一定的距离。
3. 发射超声波:打开超声波发射器,调节频率和幅度,使其适应被测材料的特性。
4. 接收信号:被测材料表面的超声波信号被接收器转化为电信号,并传送至示波器。
5. 分析结果:观察示波器上的波形和幅度变化,判断是否存在缺陷。
三、实验结果与分析通过实验,我们得到了不同材料的超声波检测结果。
在金属样本中,我们观察到了清晰的回波信号,没有发现明显的缺陷。
这是因为金属具有良好的导热性和导声性能,超声波在金属中传播时几乎不会被吸收或散射。
而在塑料样本中,我们发现了一些回波信号的弱化和延迟。
这可能是由于塑料的吸声性能较差,超声波在其内部传播时会受到吸收和散射的影响。
这些弱化和延迟的信号可能代表了材料内部的缺陷或异质性。
在陶瓷样本中,我们观察到了明显的回波信号衰减和散射。
陶瓷材料具有高硬度和脆性,其内部晶体结构和缺陷会导致超声波的衰减和散射。
因此,超声波检测在陶瓷材料中可以有效地检测到缺陷。
综上所述,超声波检测可以在不同材料中发现不同类型的缺陷。
在实际应用中,我们可以根据回波信号的特征和幅度变化来判断材料的质量和完整性。
四、实验误差与改进在实验过程中,我们注意到一些误差和不确定性。
首先,超声波在不同材料中的传播速度存在差异,这可能导致回波信号的延迟和失真。
其次,被测材料的表面状态和几何形状也会对超声波的传播和接收产生影响。
超声波测距—设计报告摘要利用超声波测距原理,出于低成本、高精度的目的,提出了一种基于AT89C52的超声波测距的设计方案。
硬件部分采用AT89C52单片机作为控制器,主要有超声波发射电路、超声波接收电路、温度检测电路、LCD显示电路和报警电路。
在分析超声波测距原理的基础上,给出了实现超声波测距的硬件设计电路图和软件设计流程图。
该系统测量精度为1cm,测量范围为0.30-3.00m,能够很好的满足测距的设计要求。
关键字单片机超声波温度补偿测距 LCD显示1、设计任务(1)超声波测距系统原理1)超声波传感器总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
超声波传感器结构如下:图 2超声波传感器外部结构 图 3 超声波传感器内部结构 2) 超声波测距的方案超声波测距方法主要有三种:1)相位检测法:精度高,但检测范围有限;2)声波幅值检测法:易受反射波的影响;3)渡越时间法:工作方式简单,直观,在硬件控制和软件设计上都容易实现,其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t ,这个时间就是渡越时间,然后求出距离l 。
设l 为测量距离,t 为往返时间差,超声波的传播速度为c ,则有l=ct/2。
综合以上分析,本设计将采用渡越时间法。
图 4 测距原理由于超声波也是一种声波,其声速c 与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
目录超声波探测系统设计及制作 (1)第1 章绪论 (1)1.1 背景 (1)1.2 研究的意义 (1)第2章超声波测距原理 (2)2.1 超声波简介 (2)2.2 超声波测距原理 (2)第3章方案论证 (3)3.1 单片机应用系统概述 (3)3.2 设计思路 (3)第4章主要元件介绍 (5)4.1 单片机AT89s52 (5)4.2超声波测距模块HY-SRF05 (7)4.3锁存器74HCS373 (8)4.4共阴数码管LG5631AH (8)第5章硬件电路设计 (9)5.1 HY-SRF05模块电路 (9)5.2复位电路 (9)5.3时钟电路 (10)5.4原理电路 (10)第6章软件设计 (11)6.1 程序设计 (11)第7章实现与仿真 (15)7.1 PCB设计图 (15)7.2 实物图 (15)7.3 运行结果图 (17)致谢...................................................................................................................... 错误!未定义书签。
参考文献 (18)超声波探测系统设计及制作第1 章绪论1.1 背景随着科学技术的快速发展,超声波将在传感器中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。
随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
1.2 研究的意义目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的成本很高,并且显示距离也比较困难,操作使用也不是很方便。
而本设计研究的测距仪成本低廉,性能优良,市场前景极为广阔。
超声波测距仪的设计一、设计目的本设计利用超声波传输中距离与时间的关系,采用STC51单片机进行控制和数据处理,设计出能够精确测量两点间距离的超声波测距仪。
同时了解单片机各脚的功能,工作方式,计数/定时,I/O口的相关原理,并稳固学习单片机的相关内容知识。
二、设计要求1.设计一个超声波测距仪,能够用四段数码管准确显示所测距离2.精度小于1CM,测量距离大于200CM三、设计器材元器件数量STC51单片机 1个超声波测距模块URF-04 1个电阻〔1K 200 4.7K〕 3 个晶振〔12MHz〕 1 个共阳极四位数码管 1 个极性电容〔33pF〕 2 个非极性电容〔22uF〕 1 个四、超声波测距系统原理331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以到达毫米级。
超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米〔15℃时〕。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,那么有340m×0.03S=10.2m。
由于在这10.2m 的时间里,超声波发出到遇到返射物返回的距离如下:图1 测距原理超声波测距器的系统框图如下列图所示:图2 系统框图五、设计方案及分析〔包含设计电路图〕4.1硬件电路设计4.1.1 单片机最小系统控制模块设计与比拟方案二:采用STC51单片机控制。
STC51单片机是一种低功耗、高性能CMOS8位微控制器,具有 8KB的系统可编程Flash 存储器。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路,能够满足题目设计的所有要求,而且我们对STC51单片机也比拟熟悉,因此我们选择方案二。
最小系统电路图如图3所示图3 单片机最小系统显示模块设计采用四位共阳极数码管显示,连接电路简单,显示电路连接图如图4所示图4 数码管显示电路超声波测距模块a.本系统采用超声波模块URF04进行测距,该模块使用直流5V供电,理想条件下测距可达500cm,广泛应用于超声波测距领域,模块性能稳定,测度距离精确,盲区〔2cm〕超近。
重庆三峡职业学院智能电子产品设计与制作实训报告项目名称超声波传感器班级13级应用电子技术1班姓名___________________________学号___________________________2014 --2015 学年度2 学期机械与电子工程系一超声波传感器简介超声波传感器是利用超声波的特性研制而成的传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好,能够成为射线而定向传播等特点。
超声波传感器可以对集装箱状态进行探测,可以应用于食品加工厂,实现塑料包装检测的闭环控制系统。
超声波传感器对透明或有色物体,金属或非金属物体,固体、液体、粉状物质均能检测。
超声波传感器主要材料有压电晶体(电致伸缩)及镍铁铝合金(磁致伸缩)两类。
电致伸缩的材料有锆钛酸铅(PZT)等。
压电晶体组成的超声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变成电能,所以它可以分成发送器或接收器。
有的超声波传感器既作发送,也能作接收。
这里仅介绍小型超声波传感器,发送与接收略有差别,它适用于在空气中传播,工作频率一般为23-25KHZ 及40-45KHZ。
这类传感器适用于测距、遥控、防盗等用途。
该种有T/R-40-60,T/R-40-12等(其中T表示发送,R表示接收,40表示频率为40KHZ,16及12表示其外径尺寸,以毫米计)。
另有一种密封式超声波传感器(MA40EI型)。
它的特点是具有防水作用(但不能放入水中),可以作料位及接近开关用,它的性能较好。
超声波应用有三种基本类型,透射型用于遥控器,防盗报警器、自动门、接近开关等;分离式反射型用于测距、液位或料位;反射型用于材料探伤、测厚等。
二超声波传感器的组成超声波传感器是指产生超声波和接收超声波的装置,习惯上称为超声波换能器或超声波探头。
河南科技学院新科学院电子课程设计报告题目:超声波接近探测器专业班级:电气工程及其自动化xxx姓名:时间:2011.6.8 ~2011.6.17指导教师:完成日期:2011年06月17日超声波接近探测器的设计任务书1.设计目的与要求设计一个超声波接近探测器控制电路,要认真并准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(1)采用超声波换能探头;(2)当有物体接近时具备声光报警功能;(3)能够显示被测物体的距离。
2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)电路仿真;(4)SCH文件生成与打印输出。
3.编写设计报告写出设计的全过程,附上有关资料和电路图,有总结体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录1引言 (3)2总体设计方案 (3)2.1设计思路 (3)2.2总体设计框图 (4)3设计组成及原理分析 (4)3.1超声波发射电路及原理 (4)3.1.1超声波发射电路所用元器件 (4)3.1.2超声波发射电路工作原理 (4)3.2超声波接收电路工作原理 (5)3.2.1超声波接收电路所用元器件 (6)3.2.2超声波接收电路工作原理 (6)3.3结果显示电路及原理 (7)3.3.1结果显示电路所用元器件 (7)3.3.2结果显示电路工作原理 (7)3.4电路说明 (10)4总结与体会 (11)参考文献 (12)附录一 (12)附录二 (13)超声波接近探测器摘要:本文采用时间差测距发利用超声波换能探头发射和接受超声波,通过4553计数在结果显示电路显示出来被测物体的距离。
关键词:超声波,超声波换能探头,时间差测距法1 引言现代社会飞速发展,人类利用发达的科技仿照一些动物的器官功能制造出先进的工具和仪器,给人们的生产和生活带来了极大的便利。
再者对于一个国家的来说超声波的应用也关系到国家的安全,比如雷达系统和反雷达系统等等。
由于超声波的速度相对于光速要小的多,其传播时间就比较容易检测,并且易于定向发射,方向性好,强度好控制,因而采用仿真技能利用超声波测距。
超声波测距系统——实物部分设计报告一、设计要求:用超声波传感器和其它器件设计一个反射式超声波测距系统。
1、测量距离不小于1.3米,数字显示,清晰,无数字叠加现象。
动态更新数字显示的测量结果,更新时间约0.5秒左右。
2、测量精度优于0.1米,显示精度0.01米。
3、距离小于0.3米时,用蜂鸣片发出间歇式的“滴一滴”声响报警。
4、测量距离超过1.0米时,给出达到测距要求的超量程指示。
二、设计思路:1、设计总的原理框图:超声波发射器㈠2Hz时钟信号产生电路:①分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的矩形波。
②单元电路图如右图。
③参数计算:④ 功能说明:数字显示的测量结果要求动态更新时间约0.5秒左右,所以要求一个频率约2Hz 的时钟信号来控制刷新数据,保证结果显示稳定不闪烁。
㈡ 40KHz 时钟信号产生电路:① 分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的方波。
② 单元电路如下图。
③ 参数计算:④ 功能说明:发送超声波需要一个可以微调的40KHz 的时钟信号作为驱动,1212121 1.43;(2)2,;2 1.52;1,300.pL pH f t t R R C f Hz F R R M R M R K ==++=∴+=Ω∴=Ω=Ω 又另C=470n 取123123231 1.43;(+2)40,+276.1;7.5,7.5,47pL pH f t t R R R C f KHz R R R K K R K R K ==++=∴+=Ω∴=Ω=ΩΩ 1又另C=470pF;取R 为的可变电阻器。
超声波以正弦波方式传输,所以超声波驱动模块的频率要求是接近40KHz 周期信号的方波。
㈢ 17KHz 时钟信号产生电路:① 分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的矩形波。
基于超声波的弹体内部成份探测系统的设计与实现的开题报告一、研究背景及意义随着现代科技的不断进步,人们对于弹体内部成份探测的需求也越来越迫切。
在军事领域中,识别和区分敌方使用的弹药类型是极其重要的,对于弹体的分析可以为军事战略部署提供有价值的信息。
因此,开发一种高效、准确的弹体内部成份探测系统,不仅可以提高军事保障的水平,也可以在材料科学、安全防范等领域中有广泛的应用。
目前,国内外对于弹体内部成份探测技术的研究主要集中于X射线检测技术、放射性同位素扫描技术等。
然而,这些技术不仅成本较高,且存在一定的辐射危害,难以广泛应用。
相比之下,超声波检测技术不但操作简便,效率高,同时具有无损检测的特点,因此备受研究者们的关注。
二、研究内容本研究旨在设计并实现一种基于超声波的弹体内部成份探测系统,其主要工作包括以下几个方面:1. 设计硬件平台:根据超声波探测的原理和需求,选定适合的超声波传感器,并搭建硬件平台,包括超声波发射和接收电路、滤波电路等。
2. 研究信号处理算法:通过分析超声波的传播过程,确定特定信号处理算法,如滤波、波形分析、采样等,以提高信号的精度和稳定性。
3. 系统实现:将硬件平台与信号处理算法相结合,开发出一套完整的系统,具备弹体内部成份探测功能。
三、研究方法本研究采用实验与模拟相结合的方法,通过实验以及数值仿真的方式,对超声波探测信号进行分析和处理,以确定最优的信号处理算法和参数。
同时,设计和实现硬件平台和软件系统,对整个系统进行调试和优化。
四、预期成果本研究将设计并实现一套基于超声波的弹体内部成份探测系统,具备以下特点:1. 操作简单、通用性强:无需使用高成本设备,可以快速、准确地探测弹体内部成份,具有广泛的适用性。
2. 精度高、稳定性好:通过研究信号处理算法,对超声波信号进行精准处理,提高弹体成份的探测精度和稳定性。
3. 安全环保:超声波检测无辐射,不会对操作人员造成危害,安全环保。
五、研究计划本研究计划在2021年9月至2022年6月期间完成以下阶段性任务:1. 文献综述:对国内外关于超声波检测技术和弹体成份探测技术研究进行综述,明确研究方向和技术基础,完成文献综述报告。
学校电子工程设计报告题目超声波自动探测装置班级****************组员***************************************************2013年11月25日SummaryUltrasonic automatic detection device is a simple devicebased on assist security guard for security work.This device USES ultrasonic probe, buzzer alarm to assist the security work.This system adopts STC89C52 single-chip microcomputer as the main controller, NRF24L01 as communication device in order to send signals to the terminal, make security room can know the situation in a timely manner.摘要超声波自动探测装置是一款基于协助保安进行安保工作的简易装置。
此装置采用超声波进行探测,蜂鸣器报警以协助安保工作。
此系统采用STC89C52单片机作为主控制器,NRF24L01作为通信装置以便把信号发送到终端,使安保室能够及时了解情况。
目录一、总体设计概述 (1)二、硬件设计 (2)三、软件设计 (3)四、制作心得 (4)一、总体设计概述本设计采用89C52单片机作为主控制器,采用超声波探测。
如探测到有人则返回信号给单片机,单片机控制蜂鸣器发出警报。
同时,单片机还可控制NRF24L01无线模块发送信号到终端保安室,使保安人员能够尽快掌握情况,从而实现协助保安进行安保工作的任务。
如果是内部人士到来,则可使用事先配置好的红外发射装置发送信号到超声波探测装置,此装置即可屏蔽报警信号。
二、硬件设计1、单片机通过分析对本设计所用到的单片机的功能,我们知道,此设计对单片机要求并不高,采用8为单片机完全能够满足要求。
台湾义隆单片机价格低,体积小,但是我们没接触过。
因此我们采用了比较常见和我们用的比较多的STC89C52单片机。
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
2、超声波超声波模块可以自己设计,但是开发周期长。
而网上已有很多成熟的超声波模块出售,因此我们直接采用了现有的超声波模块以节省设计时间。
此超声波模块为首发一体,集成了一个超声波发射头和接收头,一共引出来四个角,两个电源,一个发射,一个接收引脚。
使用起来非常方便。
探测距离也能满足我们的设计要求。
3、无线模块无线模块我们采用了NRF24L01。
NRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。
无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
输出功率频道选择和协议的设置可以通过SPI 接口进行设置。
几乎可以连接到各种单片机芯片,并完成无线数据传送工作。
极低的电流消耗:当工作在发射模式下发射功率为0dBm 时电流消耗为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。
此外,利用NRF24L01还可实现多机发送一机接收,从而,保安室可以同时检测多个超声波探测装置。
4.蜂鸣器驱动因为单片机IO口出来的电流太小,不足以驱动蜂鸣器使其发声。
所以我们的放大单片机IO口电流从而驱动蜂鸣器。
在此,我们选择了一种比较简单的三极管放大电路来驱动蜂鸣器。
如图所示三、软件设计本设计中的软件设计主要由部分构成:超声波探测、无线发送、蜂鸣器报警。
部分程序如下:1、超声波探测void intt() //超声波使用的定时器的初始化{TMOD=0x09; //方式1,0000 1001,GATE=1, 外中断引脚INT0和TR0共同控制定时器的运行TH0=0;TL0=0;EA=1; //总中断允许ET0=1; //定时器T0中断允许TR0=1; //启用定时器EX0=1; //外部中断0允许IT0=1; //跳沿触发方式}void FS() //发射超声波{_nop_();out=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();out=0;_nop_();}2、无线发送/*NRF24L01初始化//***************************************************************************** **********/void init_NRF24L01(void){inerDelay_us(100);CE=0; // chip enableCSN=1; // Spi disableSCK=0; // Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); //写本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); //写接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dBSPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送}/****************************************************************************** **********************/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序/****************************************************************************** **********************/uint SPI_RW(uint uchars){uint bit_ctr;for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit{MOSI = (uchars & 0x80); // output 'uchar', MSB to MOSIuchars = (uchars << 1); // shift next bit into MSB..SCK = 1; // Set SCK high..uchars |= MISO; // capture current MISO bitSCK = 0; // ..then set SCK low again}return(uchars); // return read uchar}/****************************************************************************** **********************/*函数:uchar SPI_Read(uchar reg)/*功能:NRF24L01的SPI读时序/****************************************************************************** **********************/uchar SPI_Read(uchar reg){uint reg_val;CSN = 0; // CSN low, initialize SPI communication...SPI_RW(reg); // Select register to read from..reg_val = SPI_RW(0); // ..then read registervalueCSN = 1; // CSN high, terminate SPI communicationreturn(reg_val); // return register value}/****************************************************************************** **********************//*功能:NRF24L01读写寄存器函数/****************************************************************************** **********************/uchar SPI_RW_Reg(uchar reg, uchar value){uchar status;CSN = 0; // CSN low, init SPI transactionstatus = SPI_RW(reg); // select registerSPI_RW(value); // ..and write value to it..CSN = 1; // CSN high againreturn(status); // return nRF24L01 status uchar}/****************************************************************************** **********************//*函数:uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出数据的个数/****************************************************************************** **********************/uint SPI_Read_Buf(uchar reg, uint *pBuf, uint uchars){uint status,uchar_ctr;CSN = 0; // Set CSN low, init SPI tranactionstatus = SPI_RW(reg); // Select register to write to and read status ucharfor(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)pBuf[uchar_ctr] = SPI_RW(0); //CSN = 1;return(status); // return nRF24L01 status uchar}/****************************************************************************** ***************************/*函数:uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于写数据:为寄存器地址,pBuf:为待写入数据地址,uchars:写入数据的个数/****************************************************************************** ***************************/uint SPI_Write_Buf(uchar reg, uint *pBuf, uint uchars){uint status,uchar_ctr;CSN = 0; //SPI使能status = SPI_RW(reg);for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //SPI_RW(*pBuf++);CSN = 1; //关闭SPIreturn(status); //}/****************************************************************************** **********************//*函数:void SetRX_Mode(void)/*功能:数据接收配置/****************************************************************************** **********************/void SetRX_Mode(void){CE=0;SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // IRQ收发完成中断响应,16位CRC ,主接收CE = 1;inerDelay_us(130); //延时不能太短}/****************************************************************************** ************************//*函数:unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)/*功能:数据读取后放如rx_buf接收缓冲区中/****************************************************************************** ************************/unsigned int nRF24L01_RxPacket(unsigned int* rx_buf){unsigned int revale=0;sta=SPI_Read(STATUS); // 读取状态寄存其来判断数据接收状况if(RX_DR) // 判断是否接收到数据{CE = 0; //SPI使能SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO bufferrevale =1; //读取数据完成标志}SPI_RW_Reg(WRITE_REG+STA TUS,sta); //接收到数据后RX_DR,TX_DS,MAX_PT 都置高为1,通过写1来清楚中断标志return revale;}/****************************************************************************** *****************************/*函数:void nRF24L01_TxPacket(unsigned char * tx_buf)/*功能:发送tx_buf中数据/****************************************************************************** ****************************/void nRF24L01_TxPacket(unsigned int * tx_buf){CE=0; //StandBy I模式SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 装载接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 装载数据// SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送CE=1; //置高CE,激发数据发送inerDelay_us(10);}3、蜂鸣器报警if(flag_beep){for(i=0;i<200;i++){DelayUs2x(200);SPK=!SPK;}SPK=1;//防止一直给喇叭通电造成损坏for(i=0;i<200;i++){DelayMs(1);}}四、制作心得本次设计中我们采用了STC89C52单片机,通过对单片机的使用,我们能够更加熟练这种单片机。