基于52单片机的超声波测距仪全解课件.ppt
基于52单片机的超声波测距仪,主体模块,控制单元(52单片机),硬件实物,本次设计用的主控芯片采用的是STC89C52。系统采用12MHz的高精度晶振,用P1.7口输出超声波传感器的脉冲信号,利用外部中断0监测超声波接收电路输出的返回信号。用四位八段共阳数码管(动态扫描)显示,并用PNP三极管驱动,设有报警距离,并有蜂鸣器驱动电路。,数码管,复位电路,报警距离设置,晶振模块,超声波模块,主控芯片,电源开关,蜂鸣器,主控芯片-89C52,P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。P1、P2、P3口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。,此外,P1.0和P1.2分别作定时器2的外部计数输入和时器/计数器 2 的触发输入。,主控芯片-时钟电路,时钟电路用于产生单片机工作时所需的时钟信号,其有两种时钟方式:外部时钟和内部时钟。外部始终是使用外部振荡脉冲信号,常用于多片单片机同时工作,以便于同步。本设计使用12MHZ晶振,采用外部时钟方式,AT89S52内部有一个可控制的负反馈反向大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与反馈元件的片外石英晶体或陶瓷谐振器构成一个自激振荡器。,机器周期=时钟周期*12,主控芯片-复位电路,复位是单片机的初始化操作,只要RST引脚出至少保持两个机器周期的高电平就可以实现复位。本设计采用手动复位方式。当按下复位按钮时,电容迅速放电,使RST端迅速变为高电平,复位按钮松开后,电容通过电阻充电,逐渐使RST端恢复低电平。,单片机额最小系统包括一个时钟电路和一个复位电路。,显示模块-四位共阳八段数码管,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极,八段数码管比七段数码管多一个显示单元(小数点)。,显示模块-四位共阳八段数码管,超声波模块-发射电路,当它两个压电晶片外加脉冲信号,且频率等压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,就成为超声波发射传感器。,超声波模块-接收电路,CX20106A是一款红外线检波接收的专用芯片,接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适的幅值;再经过带通滤波器滤波得到有用信号,滤除干扰信号;最后由峰值检波器和整形电路输出到锁相环路。,两压电晶片间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收传感器。,超声波模块-测距的算法分析,超声波发生器T在某以时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R接收到。这样,只有计算出从发出超声波信号到接收返信号所用的时间,就可以计算出超声波发生器与反射物体的距离。该距离计算公式如下:,其中:d为被测物与测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。注意:超声波也是一种声波,其声速与温度有关。,程序分析,程序分析,如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断关闭,并将测距成功标志字赋值2,以表示本次测距不成功。,超声波发生子程序的作用是通过P1.0端口发送超声波脉冲信号(频率约40kHz的方波),同时把计数器T0打开进行计时。超声波发生子程序比较简单,但要求程序运行时间准确,所以采用汇编语言编程。,超声波接收子程序利用外中断0检测返回超声波信号,一旦收到返回超声波信号(即INT0脚出现低电平),立即进入超声波接收中断程序。进入中断后,就立即关闭计时器T0,停止计时,并将测距成功标志字赋值1。,小结-关于误差,计算公式中d s/2,温度影响超声波也是一种声波,其声速与温度有关,图中,红色箭头的路径为s,黑色箭头路径为d,ds/2,小结-关于延时,四角按键抖动延时,发射端与接收端的必要延时,四角按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。,谢谢!,