新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的超声波测距仪LED显示电路的设计

基于单片机的超声波测距仪LED显示电路的设计

作者:时间:2010-04-02来源:网络收藏

3.2.3 发射电路

压电转换器的功能:利用压电晶体谐振工作。内部结构上图所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。超声波发射转换器与接受转换器其结构稍有不同。

压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。本设计中发射器电路采用集成电路模块不需考虑这些问题,主要是采用4069反相器在换能器两端提供脉冲信号。其原理图如图3所示。

基于单片机设计的超声波测距仪 - 雕★{天★ - 但得柔情消b猓此生常伴梳y

3.2.4 超声波检测接收电路

集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路(如图2-3)。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容CS的大小,可以改变接收电路的灵敏度和抗干扰能力。此部分电路在集成芯片上。

基于单片机设计的超声波测距仪 - 雕★{天★ - 但得柔情消b猓此生常伴梳y

3.2.5 LED显示电路

根据设计要求并综合各方面因素,可以采用AT89S51作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用的定时器完成,显示电路如下图5

基于单片机设计的超声波测距仪 - 雕★{天★ - 但得柔情消b猓此生常伴梳y

3.3 系统软件的设计

本设计汇编语言编程,其软件设计思路如下:

3.3.1超声波仪的算法设计

超声波的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:

d=s/2=(c×t)/2 (1)

其中,d为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。 在启动发射电路的同时启动内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。其部分源程序如下:

WORK: PUSH ACC

PUSH PSW

PUSH B

MOV PSW,#18H

MOV R3,45H

MOV R2,44H

MOV R1,00D

MOV R0,17D

LCALL MUL2BY2

MOV R3,#03H

MOV R2,0E8H

LCALL DIV4BY2

LCALL DIV4BY2

MOV 40H,R4

MOV A,40H

JNZ JJ0

MOV 40H,#0AH

JJ0: MOV A, R0

MOV R4, A

MOV A, R1

MOV R5, A

MOV R3, 00D

MOV R2, #100D

LCALL DIV4BY2

MOV 41H,R4

MOV A,41H

JNZ JJ1

MOV A,40H

SUBB A,#0AH

JNZ JJ1

MOV 41H,#0AH

JJ1: MOV A,R0

MOV R4,A

MOV A,R1

MOV R5,A

MOV R3,#00D

MOV R2,10D

LCALL DIV4BY2

MOV 42H,R4

JNZ JJ2

MOV A,41H

SUBB A,#0AH

JNZ JJ2

MOV 42H,#0AH

JJ2: MOV 43H,R0

POP B

POP PSW

POP ACC

RET

3.3.2 主程序流程图

软件分为两部分,主程序和中断服务程序,如图3-1(a)(b) (c) 所示。主程序完成初始化工作、各路超声波发射和接收顺序的控制。

定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。

主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0和P1清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12 MHz的晶 振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(2)计算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344 m/s则有:

d=(c×t)/2=172T0/10000cm (2)

其中,T0为计数器T0的计算值。

测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离。

基于单片机设计的超声波测距仪 - 雕★{天★ - 但得柔情消b猓此生常伴梳y

3.3.3超声波发生子程序和超声波接收中断程序

超声波发生子程序的作用是通过P1.0端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。超声波发生子程序较简单,但要求程序运行准确,所以采用汇编语言编程。

51单片机相关文章:51单片机教程


晶振相关文章:晶振原理


评论


相关推荐

技术专区

关闭