基于51单片机超声波测距.doc

上传人:小飞机 文档编号:3843759 上传时间:2023-03-24 格式:DOC 页数:13 大小:1,013KB
返回 下载 相关 举报
基于51单片机超声波测距.doc_第1页
第1页 / 共13页
基于51单片机超声波测距.doc_第2页
第2页 / 共13页
基于51单片机超声波测距.doc_第3页
第3页 / 共13页
基于51单片机超声波测距.doc_第4页
第4页 / 共13页
基于51单片机超声波测距.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《基于51单片机超声波测距.doc》由会员分享,可在线阅读,更多相关《基于51单片机超声波测距.doc(13页珍藏版)》请在三一办公上搜索。

1、一 设计要求(1)设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控;(2)测量围在0.504.00m,测量精度1cm;(3)测量时与被测物无直接接触,能够清晰稳定地显示测量结果。二 超声波测距系统电路总体设计方案本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、温度测量电路、声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。超声波测距器的系统框图如下图所示:图5 系统设计总框图由单片机AT89S52编程产

2、生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。由时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算

3、出距离。图6 时序图三 超声波发射和接收电路的设计分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成电路来设计收发电路。31 超声波发射电路超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路: 图7 由反相器构成的超声波发射电路图7是由反相器74HC04构成的发射电路,用反相器74HC04构成的电路简单,调试容易,易通过软件控制。单片机输出的方波经过反相器

4、接到发射器T1的两极,用图中的推挽形式将方波信号加到发射器T1两端,可以提高发射器T1的发射强度。图中把两个非门的输出接到一起的目的是为了提高其吸入电流,电路驱动能力提高。74HC04是一个高速CMOS六反相器,具有对称的传输延迟和转换时间,而相对于LSTTL逻辑IC,它的功耗减少很多。另外,上拉电阻R1、R2一方面可以提高反相器74HC04输出高电平的驱动能力,另一方面可以增加发射器T1的阻尼效果,缩短其自由振荡的时间。3. 2 超声波接收电路图8是由CX20106构成的接收电路,在实物的制作过程中,我们将用CX20106A这一型号代替。CX20106A是索尼公司生产的彩电专用红外遥控接收器

5、,是CX20106的改进型,也可用于超声波测试,有较强的抗干扰性和灵敏度。CX20106A采用单列8脚直插式,超小型封装,+5V供电。管脚1是超声波信号输入端,其输入阻抗约为40K;管脚2的R1、C4决定接收器R的总增益,增大电阻R1或减小电容C4,将使放大倍数下降,负反馈量增大,电容C4的改变会影响到频率特性,实际使用中一般不改动;管脚3与GND之间连接检波电容C2,考虑到检波输出的脉冲宽度变动大,推荐参数为3.3uF;管脚5上的电阻R2用以设置带通滤波器的中心频率,阻值越大,中心频率越低,取R2=200K时,中心频率约为42KHZ;管脚6与GND之间接入一个积分电容C3,电容值越大,探测距

6、离越短;管脚7是遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻到电源端,没接收信号时,该端输出为高电平,有信号时则会下降;管脚8接+5V电源。 图8 CX20106构成的接收电路综合以上的分析,在由集成电路构成的接收和发射电路中,发射电路我们选用由反相器构成的电路,接收电路采用由红外接收检波芯片CX20106A构成,主要是考虑到系统的调试简单,成本低以及可靠性好。四 单片机主机系统电路4.1 复位电路单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如图9。在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位

7、下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位。当人按下按钮SW1时,使电容C1通过R1迅速放电,待SW1弹起后,C1再次充电,实现手动复位。图9 复位电路4.2 时钟电路 当使用单片机的部时钟电路时,单片机的XTAL1和XTAL2用来接石英晶体和微调电容,如图10所示。 图10 时钟电路4.3 按键电路我们通过P1.0来启动测量,程序过查询P1.0的电平来检测是否按键被按下,在软件过软件延时来消除按键的机械抖动。 图11 按键电路4.4 蜂鸣器电路本次设计通过一只蜂鸣器来提示用户按键按下了,现在单片机开始了测距。蜂鸣器是一块压电晶片,在其两端加上3-5V的直流电压,就能产生

8、3KHz的蜂鸣声,电路如图12。通过单片机软件产生3KHz的信号从P3.7口送到三极管9013的基极,控制着电压加到蜂鸣器上,驱动蜂鸣器发出声音。图12 蜂鸣器电路4.5 温度测量电路由于超声波的传播速度c会受温度、湿度、压强等的影响,其中温度的影响尤为严重。因此在测量精度要求高的场合,应通过温度补偿对超声波的传播速度进行校正,以减小误差。图13 温度检测电路本系统采用DALLAS公司的DS18B20数字式温度传感器进行温度测量,它所测量的温度值用9位二进制数直接表示,这些值通过DS18B20的数据总线直接输入CPU,无需A/D转换,而且读写指令、温度转换指令都是通过数据总线传入DS18B20

9、,无需外部电源。DS18B20数字温度传感器与AD590、LM35等温度传感器相比,具有相当的测温围和精度,温度测量精确、不受外界干扰等优点。4.6 LCD显示电路 本设计采用LCD液晶显示屏来显示距离和温度,具有体积小、功耗低、界面美观大方等优点,这里使用YB1602液晶屏,它具有16个引脚,其正面左起为第一脚,如图14所示: 图14 LCD1602实物第一脚VSS:接地。第二脚VDD:+5V电源。第三脚VEE:对比度调整端。使用时通过接一个10K的电阻来调节。第四脚RS:寄存器选择信号线,H为数据选择,L为指令选择。第五脚RW:读写信号线。第六脚E :使能端,当E由高电平跳变为低电平时执行

10、命令。第7-14脚:8位数据线D0-D7。第十五脚BLA:背光电源正极输入端。第十六脚BLK:背光电源负极输入端。 图15 LCD显示电路4.7 电源电路 电源电路采用普通可调电源供电,该电源不含稳压器,所以在设计中需要用稳压器进行稳压。我们选用LM7805来获得稳定的+5V直流电压。输入电压(21V)经过7805的稳压输出+5V的电压,图中的D2为保护7805,防止电源极性接反损坏7805,滤波电容采用100uF电解和104瓷片电容并联使用,电磁兼容的实践证明,两个差100倍的电容并联使用效果很好。本设计电源电路如下: 图16 电源电路五.系统软件设计5.1 系统程序的结构(1)DS18B2

11、0温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;(2)基于YB1602的显示模块,分为初始化子程序、写入子程序以及显示子程序;(3)温度补偿与距离计算模块,分为超声波发送控制程序、接收处理程序、温度补偿子程序等。本次设计使用C语言编写程序,C语言相比汇编有许多的优势,编译器使用KeilVersion2进行程序编译,Keil功能强大使用方便。在编译完成后,通过Proteus软件进行仿真,对设计进行验证和优化。如图17所示描述了各个模块的关系: 图17 系统软件方框图5.2 系统主程序本设计主程序的思想如下:(1)温度为两位显示,距离为四位显示单位为mm;(2)温度每隔900m

12、s采样一次,DS18B20在12位精度下转换周期为750ms ,故900ms满足该速度要求;超声波每隔60ms发送一次。(3)按键SW2为测量启动键;(4)系统采用AT89S52的时钟:12MHz,每记一次数为1us; 图18 主程序流程图5.3 40KHz超声波发送子程序超声波每过60ms发送一次,通过定时器T0中断发送超声波,超声波发送后延时一段时间后返回,防止余波被接收头接收误判,流程图如下: 图19 超声波发送子程序流程图5.4 DS18B20温度采集程序DS18B20的工作流程是,初始化ROM操作指令存储器操作指令数据传输。其工作时序包括:初始化时序、写时序和读时序。 图20 温度采

13、集程序流程图5.5 距离计算子程序距离计算中,实行了温度补偿和角度补偿。流程图如下: 图21 距离计算子程序流程图5.6 数据转换子程序经过程序求出的数据原码无法直接用于显示,必须转换为LCD所接受的BCD码的形式。 图22 数据转换子程序流程图 5.7 LCD显示子程序 LCD液晶显示程序分为液晶初始化、读忙、写指令和写数据操作,液晶显示器是一块慢器件,所以在执行每条指令之前必须确定模块忙标志为低电平(不忙),否侧此指令无效。液晶显示子程序流程图如下: 图23 LCD显示子程序在程序中,我们将测量的各种结果存放到一个数组num中,然后通过这个数组的数据到预先存放字符的数组中去按num中的数据的顺序去读取出预存在numcode中的字符然后送到LCD中显示。5.8 基于Proteus的软件仿真 图24 Proteus仿真图 图25 波形

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号