远距离超声波测距_第1页
远距离超声波测距_第2页
远距离超声波测距_第3页
远距离超声波测距_第4页
远距离超声波测距_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成都工业学院本科毕业设计(论文)第36页设计题目:基于AT89S51单片机的超声波水位监测系统摘要采用一种单片机AT89S51控制HC-SR04实现的无线超声波测距系统。通过简单的无线通信协议,实现可靠性与功耗平衡,该系统能实现对水位距离的检测,是可以实现远程控制的无线超声波测距系统。低功耗实时性的无线超声波测距是该设计的最大特点。无线传输采用nRF24L01模块传输,用4位共阳数码管显示测得数据。关键词: 超声波;无线模块;显示模块AbstractIt uses a single-chip AT89S51 control wireless HC-SR04 ultrasonic ranging

2、 system implementation. Simple wireless communication protocol, reliability and power consumption to achieve a balance, the system enables detection of the water level distance can be controlled by a wireless remote ultrasonic ranging system. Low-power wireless real-time ultrasonic distance measurem

3、ent is the most important feature of the design. Wireless transmission using nRF24L01 transmission module with four common anode digital tube display of the measured data.Keywords: Ultrasound; wireless module; display module目录第1章 绪论5第2章 系统硬件设计82.1主控芯片方案82.1.1电源引脚82.1.2时钟电路的引脚XTAL1和XTAL282.1.3复位RST(9

4、脚)92.1.4输入输出口(I/O口)引脚92.1.5其它控制或复用引脚112.2 超声波发射112.2.1 超声波112.2.2 HC-SR04特点122.2.3电气参数132.2.4超声波时序图142.3 显示模块152.3.1 数码管152.4无线通信模块方案162.4.1 无线通信芯片162.4.2 引脚功能及描述172.4.3 工作模式182.4.4工作原理192.4.5 配置字212.4.6 工作原理212.5无线模块电源设计222.5.1电平转换方案222.6系统方案方框图24第3章 系统软件的设计243.1软件部分总体设计243.2数据发送模块程序253.2.1部分主程序253

5、.2.2中断服务程序273.2.3无线模块部分子函数283.3 数据接收模块303.3.1主函数303.3.2无线接收模块程序303.3.3数据显示模块32第4章 设计调试与结果334.1发送端软件设计与调试334.1.1调试显示部分344.1.2超声波数据采集344.1.3 无线传输模块34第5章 心得体会37第6章 参考文献38参考文献38第1章 绪论近年来,随着电子技术和信号处理技术的迅速发展,液位测量仪表中的测量技术也发展很快,经历了由机械式向机电一体化再到自动化的发展过程。结合这两大技术,尤其是将微处理器引进液位测量系统以后,使得液位计的精度越来越高,越来越向智能化、一体化、小型化的

6、方向发展。从上世纪八十年代开始,一些发达国家就借助微电子、计算机、光纤、超声波、传感器等高科技的研究成果,将各种新技术、新方法应用到储罐液位测量领域。电子式测量方法便是其中的重要成果之一。在电子式液位测量方法中,有许多新的测量原理,包括压电式、应变式、雷达式、超声波式、浮球式、电容式、磁致伸缩式、伺服式、混合式等二十多种测量技术。由于该方法测量精度高,可靠性强,持续时间长,安装维护简单,因而正在逐步取代旧的机械式液位测量方法。用于储罐液位测量的众多电子式技术中,压电式、超声波式、应变式、浮球式、电容式五种测量技术应用最为广泛,约占总数的 60%以上。其中,超声波式测量技术的应用份额最

7、大。  超声波液位测量有很多优点:它不仅能够定点和连续检测液位,而且能够方便地提供遥控或遥控所需的信号。与放射性技术相比,超声技术不需要防护。与目前的激光测量液位技术相比,超声方法比较简单而且价格较低。一般说来,超声波测位技术不需要有运动的部件,所以在安装和维护上有很大的优越性。特别是超声测位技术可以选用气体、液体或固体来作为传声媒质,因而有较大的适应性。所以在测量要求比较特殊,一般液位测量技术无法采用时,超声测位技术往往仍能适用。  所谓超声波就是指频率高于20kHz的机械波,一般由压电效应或磁致伸缩效应产生; 它沿直线传播,频率越高,绕射能

8、力越弱,但反射能力越强;它还具有强度大、方向性 好等特点,为此,利用超声波的这些性质就可制成超声波传感器。超声波传感器是利用 超声波在超声场中的物理特性和各种效应研制而成的传感器。超声波传感器按其工作原 理可分为压电式、磁致伸缩式、电磁式等,其中以压电式最为常用。压电式超声波传感 器常用的材料是压电晶体和压电陶瓷,它是利用压电材料的压电效应来工作的:逆压电 效应将高频电振动转换成高频机械震动,从而产生超声波,可作为发射探头;而正压电 效应是将超声波振动转换成电信号,可作为接收探头。  超声波液位测量的方法有多种,如

9、超声脉冲回波法、共振法、频差法、超声衰减法 等。超声脉冲回波法的基本原理是由超声波传感器的发射探头发射超声波,当超声波 遇到障碍物时会被反射,利用单片机记录超声波发射的时间和接收到回波的时间,根据 当前环境下超声波的传播速度,即可通过公式 计算出超声波传播的距离,也就得到 了障碍物离测试系统的距离。共振法的基本原理是调节超声波的频率,使得探头和液面之间建立驻波共振状态, 这时探头与液面之间的距离就与超声在介质中的波长成一定的比例关系。当超声波速度 己知时,就可根据共振频率计算波长再换算出探头到液面的距离因。频差法就是让超声&

10、#160;探头发出调频的超声波,超声波的频率随传播距离的不同而不同,根据接收信号和发射 信号间的频差可得到从发射到接收的时间。超声衰减测量顾名思义就是超声波在被测介 质中的衰减量随距离变化,根据接收信号和发射信号间的衰减量变化测量液位。从以上 方法的对比中可以看出,用共振法检测液位受到一些具体条件的限制,需要与液面建立 驻波关系,并且它属于一种接触式测量方法。频差法需要调频器产生调制频率,衰减法 需测量超声波的衰减量。相比较而言,超声波脉冲回波法无需与液面之间建立驻波,并且可以实现非接触检测。所以脉冲回波法是其中最适合的方法,本文将采用该方法实

11、现 超声波外测液位检测。液位测量广泛应用于石油、化工、气象等部门。实现无接触、智能化测量是液位计目前的发展方向。随着工业的发展,计算机、微电子、传感器等高新技术的应用和研究,近年来液位仪表的研制得到了长足的发展,以适应越来越高的应用要求。 从测量范围来说,有的液位计只能测量几十厘米,有的却可达几十米。从测量条件 和环境来说,有的非常简单,有的却十分复杂。例如:有的是高温高压,有的是低温或 真空,有的需要防腐蚀、防辐射,有的从安装上提出苛刻的限制,有的从维护上提出严 格的要求等。  按测量液位的感应元件与被测液体是否接触,液位

12、仪表可以分为接触型和非接触型两类。接触型液位测量主要有:人工检尺法、浮子测量装置、伺服式液位计、电容式 液位计以及磁致伸缩液位计等。它们的共同点是测量的感应元件与被测液体接触,即都 存在着与被测液体相接触的测量部件且多数带有可动部件。因此存在一定的磨损且容易被液体沾污或粘住,尤其是杆式结构装置,还需有较大的安装空间,不方便安装和检修。非接触型液位测量主要有超声波液位计、微波雷达液位计、射线液位计以及激光液位计 等。顾名思义,这类测量仪表的共同特点是测量的感应元件与被测液体不接触。因此测量部件不受被测介质影响,也不影响被测介质,因而其适用范围较为广泛,可用于接触型测

13、量仪表不能满足的特殊场合,如粘度高、腐蚀性强、污染性强、易结晶的介质。   国外液位计量仪表早期大多采用机械原理,但近年来随着电子技术的应用,逐步向机电一体化发展,并且发展了许多新的测量原理。在传统原理中也渗透了电子技术及微 机技术,结构有了很大的改善、功能有了很大的提高。从国外液位仪表发展的技术动向 看,当前主要有三个热点:接触测量方式的液位仪,非接触测量方式的液位仪和新原理的小型液位开关 。 超声波液位计具有广泛的适用性,可以根据不同测量场合的需要,采用气体介质、液体介质或固体介质导声。该测量装置结构简单,不需要其它附加

14、设施,且安装、使用和维护都较方便。随着电子技术的发展。单片机嵌入应用,超声波液位计的精度有了进一步的提高,功能更加齐全。但其主要缺点是:音速随温度、储存物料的化学成分和罐内蒸汽的运动而变化,影响测量精度。根据测量精度的要求可以采用多种方法校正。超声波液位测量是一种非接触式的测量方式,它是利用超声波在同种介质中传播速度相对恒定以及碰到障碍物能反射的原理研制而成的。与其它方法相比(如电磁的或光学的方法),它不受光线、被测对象颜色的影响,对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。因此,研究超声波在高精度测距系统中的应用具有重要的现实意义。第2章 系统硬件设计2.

15、1主控芯片方案采用传统的AT89S51 单片机作为主控芯片。单片机最小系统是其他拓展系统的最基本的基础,单片机最小系统是指一个真正可用的单片机最小配置系统即单片机能工作的系统。对于89S51单片机,由于片内已经自带有了程序存储器,所以只要单片机外接时钟电路和复位电路就可以组成了单片机的最小系统了。单片机引脚功能:2.1.1电源引脚Vcc(40脚):正电源的引脚,工作电压是5 V。GND(20脚):接地端。2.1.2时钟电路的引脚XTAL1和XTAL2为了产生时钟信号,在89S51单片机的芯片内部已经设置了一个反相放大器,其中XTAL1端口就是片内反相放大器的输入端,XTAL2端则是片内振荡器反

16、相放大器的输出端 5。单片机使用的工作方式是自激振荡的方式,XTAL1和XTAL2外接的是12 MHz的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号。时钟信号电路如图 2.1所示。图2.1时钟信号电路2.1.3复位RST(9脚)当振荡器运行时,只要有有两个机器周期即24个振荡周期以上的高电平在这个引脚出现时,那么就将会使单片机复位,如果将这个引脚保持高电平,那么51单片机芯片就会循环不断地进行复位。复位后的P0口至P3口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零。单片机复位电路如图2.2所示。图2.2 单片机复位电路图2.1.4输入输出口(I/O口)

17、引脚P0口是一个三态的双向口,既可以作为数据和地址的分时复用口,又可以作为通用输入输出口。P0口在有外部扩展存储器时将会被作为地址/数据总线口,此时P0口就是一个真正的双向口;而在没有外部扩展存储器时,P0口也可以作为通用的I/O接口使用,但此时只是一个准双向口;另外,P0口的输出级具有驱动8个LSTTL负载的能力即输出电流不小于800 uA。P1口是一个带内部上拉电阻的8位双向I/O口,而P1口只有通用I/O接口一种功能,而且P1口能驱动4个LSTTL负载;在使用时通常不需要外接上拉电阻就能够直接驱动发光二极管;在端口置1时,其内部上拉电阻将端口拉到高电平,作输入端口用。P2口是一个带内部上

18、拉电阻的8位双向I/O口,而且P2口具有驱动4个LSTTL负载的能力。P2端口置1时,内部上拉电阻将端口的电位拉到高电平,作为输入口使用;在对内部的Flash程序存储器编程时,P2口接收高8位地址和控制信息,而在访问外部程序和16位外部数据存储器时,P2口就送出高8位地址。在访问8位地址的外部数据存储器时,P2引脚上的内容在此期间不会改变。P3口也是一个带内部上拉电阻的8位双向I/O口,P3口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。P3口作为通用I/O口接口时,第二功能输出线为高电平。P3口置1时,内部上拉电阻将端口电位拉到高电平,作输入口使用;在对内部Flash程序存储器编

19、程时,此端接控制信息。P3口的第二功能,如表2.3所示。表2.3  P3口第二功能表P3引脚兼用功能P3.0串行通讯输入口(RXD)P3.1串行通讯输出口(TXD)P3.2外部中断0请求输入端( INT0)P3.3外部中断1请求输入端(INT1)P3.4定时器0输入端(T0)P3.5定时器1输入端(T1)P3.6外部数据存储器写选通信号输出端(/WR)P3.7外部数据存储器写选通信号输出端(/RD)2.1.5其它控制或复用引脚(1)ALE/PROG(30脚):地址锁存有效信号输出端。在访问片外存储器时,ALE(地址锁存允许)以每机器周期两次进行信号输出,其下降沿用于控制锁存P0口输出

20、的低8位地址;在不访问片外存储器的时候,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6),而在访问片外数据存储器时,ALE脉冲会跳空一个,此时是不可以做为时钟输出5。对片内含有EPROM的机型在编程时,这个引脚用于输入编程脉冲/PROG的输入端5。(2)/PSEN(29脚):片外程序存储器读选通信号输出端,低电平时有效。当89S51从外部程序存储器取指令或常数时,每个机器周期内输出2个脉冲即两次有效,以通过数据总线P0口读回指令或常数。但在访问片外数据存储器时,/PSEN将不会有脉冲输出5。(3)/EA/Vpp(31脚):/EA为片外程序存储器访选用端。当该引脚访问片外程序存储

21、器时,应该输入的是低电平,要使89S51只访问片外程序存储器,这时该引脚必须保持低电平;而在对Flash存储器编程时,用于施加Vpp编程电压5。2.2 超声波发射2.2.1 超声波超声波是一种振动频率超过20 kHz的机械波,它可以沿直线方向传播,而且传播的方向性好,传播的距离也较远,在介质中传播时遇到障碍物在入射到它的反射面上就会产生反射波6。由于超声波的以上几个特点,所以超声波被广泛地应用于物体距离的测量、厚度等方面6。而且,超声波的测量是一种比较理想的的非接触式的测距方法6。当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数7

22、。首先由超声波发射探头向倒车的方向发射超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回来,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时6.7。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)7。由于在常温下超声波在空气中的传播速度大约为340 m/s7,所以障碍物到发射探头之间的距离为:S=340×t/2=170×t (2-1) 因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值N,则: T12/fosc=1s (2-2) t=N×

23、;TN×0.000001(s) (2-3)S170×N×T170×N/1000000(m) (2-4) 最终选择了HC-SR04超声波测距模块来完成对水位距离的测量。通过从TX脚输出40KH的方波信号,即就是从单片机的IO口连续发出高低电平,产生方波,方波的个数一般为10个左右,发出后启动定时器,开始计时,此时,超声波发射头开始发出超声波,当发出的超声波被前方的障碍物返射回来,返射回来的超声波被接收探头接收到,此时,模块的RX引脚会产生一个从高电平到低电平的跳变,此时,停止计时,通过计时的时间,根据以下公式计算测量距离:   

24、;   测量距离= (时间*声速( 340M/S ) ) / 2    (2-5)2.2.2 HC-SR04特点HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:(1)采用IO 口TRIG 触发测距,给最少10us 的高电平信呈。(2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回;(3)有信号返回,通过IO 口ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/

25、2; 实物如图2.4图2.4超声波测距模块VCC 供5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。2.2.3电气参数电气参数如表2.5 表2.5 HC-SR04超声波模块电气参数电气参数HC-SR04超声波模块工作电压DC 5 V工作电流15mA工作频率40kHz最远射程4m最近射程2cm测量角度15 度输入触发信号10uS 的TTL 脉冲2.2.4超声波时序图超声波时序图如图2.6 图2.6 超声波时序图以上时序图表明你只需要提供一个10uS 以上脉冲触发信号,该模块内部将发出8 个40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信

26、号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为60ms 以上,以防止发射信号对回响信号的影响。2.3 显示模块2.3.1 数码管LED数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是以发光二极管作笔段并按共阴极方式或共阳极方式连接后封装而成的。图3-9所示是两种LED数码管的外形与内部结构,、分别表示公共阳极和公共阴极,ag是7个笔段电极,DP为小数点。LED数码管型号较多,规格尺寸也各异,显示颜色有红、绿、橙等。LE

27、D数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。 LED数码管是一款比较通用的数字显示模块,且价格便宜,容易控制。仿真显示模块如图2.3.1实物图如图2.7图2.7 显示模块

28、图2.8 共阳数码管实物图2.4无线通信模块方案2.4.1 无线通信芯片采用nRF24L01无线射频模块进行通信,nRF24L01是一款高速低功耗的无线通信模块。而且价格较便宜,采用SPI总线通信模式电路简单,操作方便。nRF24L01芯片概述,实物如图2.9图2.9 nRF24L01实物图 nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;

29、接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便10。nRF24L01主要特性如下: 1、GFSK调制,硬件集成OSI链路层; 2、具有自动应答和自动再发射功能; 3、片内自动生成报头和CRC校验码; 4、数据传输率为l Mb/s或2Mb/s;5、SPI速率为0 Mb/s10 Mb/s;6、125个频道与其他nRF24系列射频器件相兼容; 7、QFN20引脚4 mm×4 mm封装;8、供电电压为1.9 V3.6 V;2.4.2 引脚功能及描述 nRF24L01的封装及引脚排列如图所示各引脚功能如图2.10所示。 图2.10 nRF24L01封

30、装图CE:使能发射或接收; CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置nRF24L01: IRQ:中断标志位;VDD:电源输入端; VSS:电源地;XC2,XC1:晶体振荡器引脚; VDD_PA:为功率放大器供电,输出为1.8 V; ANT1,ANT2:天线接口;IREF:参考电流输入;2.4.3 工作模式通过配置寄存器可将nRF24L01配置为发射、接收、空闲及掉电四种工作模式,如表2.11所示。 表2.11 nRF24L01工作模式模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111-发射模式101数据在TX FIFO 寄存

31、器中发射模式1010停留在发送模式,直至数据发送完待机模式2101TX_FIFO为空待机模式11-0无数据传输掉电0- 待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。2.4.4工作原理 发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时

32、写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中

33、有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。在写寄存器之前一定要进入待机模式或掉电模式。常用配置寄存器如表2.12表2.12 常用配置寄存器地址(H)寄存器名称功能00CONFIG设置24L0

34、1工作模式01EN_AA  设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收接点地址1116RX_PW_P0P5设置接收通道的有效数据宽2.4.5 配置字SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入

35、。相应的状态和数据信息是从MISO输出给MCU。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个。2.4.6 工作原理发射数据时,首先将nRF24L01配置为发射模式,接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADD

36、R一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;AX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址

37、和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。 在写寄存器之前一定要进入待机模式或掉电模式。如下图2.13和图2.14给出SPI操作及时序图:图2.13 SPI读操作图2.14 SPI 写操作2.5无线模块电源设计2.5.1电平转换方案由于无线模块的电源是1.6 -3.3V,因为单片机的电源的+5V,所以采用了电平转换芯片AMS1117,将5V的电压转换成3.3V左右。供电电路采用USB接口。U

38、SB已经是一个业内标准了。电压是55.2V 电流300mA500mA接口靠两端的是正负极,中间两条是数据的正负极,只要你的设备不接触“数据线”电脑不会识别为移动设备。(业内的标准数据线是“红、白、绿、黑”分别是5V+、DAT-、DAT+、5V-、高档型外加屏蔽层)如果只用提供电源,只用两条引线,设计产品额定用电不超过5V,电流不超500mA即可。该型产品已经很多很成熟。Msp430的电压是3.3V,所以中间采用了稳压芯片AS1117。 AS1117是一款低压差的线性稳压器,当输出 1A电流时,输入输出的电压差典型值仅为1.2V。AS1117除了能提供多种固定电压版本外(Vout1.8V,2.5

39、V,2.85V,3.3V,5V),还提供可调端输出版本,该版本能提供的输出电压范围为 1.25V13.8V。能(AS1117正常工作环境温度范围极宽,为-50140),确保芯片和电源系统的稳定性。同时在产品生产中应用先进的修正技术,确保输出电压和参考源精度在±1%的精度范围内。AMS1117实物如图2.15AS1117的特点: 1、包括三端可调输出和固定电压输出版本(固定电压包括 1.8V,2.5V,2.85V,3.3V,5V等,其他电压规格可根据用户定制); 2、最大输出电流为 1A;3、输出电压精度高达±1;4、稳定工作电压范围为高达 15V;5、电压线性度为 0.2;

40、6、负载线性度为 0.4; 7、环境温度:TA的范围是-50140; 图2.15电平转换芯片实物2.6系统方案方框图系统方案方框图如图2.16发送:HC-SRO4àAT89S51àNRF24L01接收:NRF24L01àAT89S51-àLED图2.16 系统方案图第3章 系统软件的设计3.1软件部分总体设计对本设计系统的设计方案确定之后,首先完成硬件的电路设计, 画出电路原理图,然后根据电路原理图,根据它要实现的功能和要求完成软件部分的程 序设计。采用模块化的程序设计方法是比较容易掌握和实现的。将程序化分为几大模块, 主要

41、包括超声波发射、接收及数据处理程序,无线通信程序,显示程序等模块。采用的是模块化的思路来进行设计和编写程序,因为本系统含有两片单片机,所以程序分为数据发送模块和数据接收模块。3.2数据发送模块程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、测得数据处理、nRF24L0初始化、发送数据。由中断程序完成数码管显示等。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、数据计算、数码管显示。3.2.1部分主程序void main()unint distance_data,a,b;unchar CONT_1; i=0;f

42、lag=0;Tx=0; /系统初始化,设置定时器工作方式,中断的初始化TMOD=0x11; TR0=1; IT1=0; ET0=1; EX1=0; EA=1; while(1) /超声波的发射和接收、计算出距离、测得数据处理 EA=0;Tx=1; delay_20us(); Tx=0; while(Rx=0); succeed_flag=0;EX1=1; TH1=0; TL1=0; TF1=0; TR1=1; EA=1; while(TH1 < 30);/ 延时0.3msTR1=0; EX1=0; if(succeed_flag=1) distance_data=outcomeH; /计

43、算距离公式 distance_data<<=8; / distance_data=distance_data|outcomeL;/ distance_data*=12; / distance_data/=58; / 之所以要在计数器1开始计时后0.3ms才开启INT0中断,是为了防止超声波发射 探头所发出的超声波信号直接进入接收探头产生中断信号触发中断,引起误差。在超声波信号开始发送0.3ms以后,接收探头已经接收不到发射探头直接发射过来的超声波,此时开启中断,得到的中断触发信号才是由液面反射回来的超声波进入接收探头经过处理后得到的信号,在软件设计中经过这样的处理之后,减

44、小了系统误差,提高了系统测量的精度。但是经过这种处理之后,对于较高的液面,由于超声波的回波时间减少,可能会在中断尚未开启之前就已经产生了中断触发信号,此时便不能准确的测量液位高度,因此系统会产生一定的盲区。经计算,在20时超声波在0.3ms时间内可以传播10.32cm,因此只有当超声波探头距离最高液面的距离大于5.17cm时,系统才能检测到液面反射回来的超声波信号,才不会产生此种误差;又由于超声波在不同温度下的传播速度不同,因此在系统安装时,超声波探头与液体液面之间的距离应当大于6cm。 3.2.2中断服务程序主要是用于数码管的显示,每个时刻距离数据都在改变,利用中断不断的向数码管写入数据。t

45、imer0( ) interrupt 1 / TH0=0xfd; / TL0=0x77; switch(flag) case 0x00:P0=ge;weige=0;weishi=1;weibai=1;flag+;break; case 0x01:P0=shi;weige=1;weishi=0;weibai=1;flag+;break; case 0x02:P0=bai;weige=1;weishi=1;weibai=0;flag=0;break; 采用外部中断1监测超声波的回波,用定时器0测出反射回波的时间INT1_() interrupt 2 outcomeH =TH1; outcomeL

46、=TL1; succeed_flag=1; EX1=0; 2.3无线模块部分子函数 NRF24L01Int();/无线的初始化TxDate0=b;NRFSetTxMode(TxDate);/在主函数中调用,设置为发送模式,并发送数据while(CheckACK();/检查是否发送完成NRFSetTxMode(TxDate);/发送子函数void NRFSetTxMode(unint *TxDate) /设置为发送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/写寄存器指令+接收地址使能指令+接收地址+地址宽度N

47、RFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/为了应答接收设备,接收通道0地址和发送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);/写入数据 /*下面有关寄存器配置*/ NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); / 自动重发延

48、时等待250us+86us,自动重发10次 NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); / 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e); / CRC使能,16位CRC校验,上电 CE=1;Delay(5);/保持10us秒以上3.3 数据接收模块数据接收模块主要可以分为主函数程序、无线接收数据模块、数据显示模块。3.3.1主函数void main() unint flag=0; T

49、MOD=0x01;/定时器0 工作方式16位定时 产生中断 进行数码管显示 TR0=1; ET0=1; EA=1; NRF24L01Int();/ 无线接收模块的初始化 while(1) NRFSetRXMode();/设置为接收模式GetDate();/开始接受数3.3.2无线接收模块程序(1)接收部分总体流程图如图3.2.3所示 图3.2.3 接收部分总体流程图(2)部分接收模块程序void NRFSetRXMode() CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH); / 接收设备接收通道0使用和发送设备相

50、同的发送地址NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道0x40NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); / 接收通道0选择和发送通道相同有效数据宽度NRFWriteReg(W_REGISTER+RF_SETUP,0x07); / 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteR

51、eg(W_REGISTER+CONFIG,0x0f); / CRC使能,16位CRC校验,上电,接收模式 CE = 1; NRFDelay(5); 3.3.3数据显示模块/定时器0中断,用做显示timer0() interrupt 1 / 定时器0中断是1号 TH0=0xfd; /写入定时器0初始值 TL0=0x77; switch(flag) case 0x00:P2=ge;weige=0;weishi=1;weibai=1;flag+;break; case 0x01:P2=shi;weige=1;weishi=0;weibai=1;flag+;break; case 0x02:P2=bai;weige=1;weishi=1;weibai=0;flag=0;break; 第4章 设计调试与结果4.1发送端软件设计与调试发送端采用HC-SR04超声波测距模块采集距离参数,经AT89S51收集处理数据再由nRF24L01模块发送到接收端。其中包括HC-SR04和nRF24L01模块的初始化配置。在调试的过程中采用的是分成几部分来调试没通电之前,先用万用表检查线路的正确性,并核对元器件的型号、规格是否符合要求。特别注意电源的正负极以及电源之间是否有短路,并重点检查地址总线、数据总线、控制总线是否存在相互间的短路或其他信号线的短路。晶体振荡器和电容应尽可能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论