电子信息工程技术毕业论文:超声波测距与显示系统设计.doc
-
资源ID:3988942
资源大小:56.50KB
全文页数:40页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
电子信息工程技术毕业论文:超声波测距与显示系统设计.doc
电子信息工程技术毕业论文:超声波测距与显示系统设计 课题超声波测距与显示系统设计 专题 温度补偿专题 专 业 电子信息工程技术 学生姓名 班 级 10电信2 学 号 指导教师 完成日期 摘 要超声波具有指向性强能量消耗慢传播距离较远等优点所以在利用传感器技术和自动控制技术相结合的测距方案中超声波测距是目前应用最普遍的一种它广泛应用于建筑施工防盗倒车水位测量以及一些工业现场本设计采用以STC89C52单片机为核心的超声波测距的硬件电路和软件设计方法整个电路采用模块化设计由主程序预置子程序发射子程序接受子程序显示子程序语音播报子程序等模块组成发射模块发射超声波接受模块接受回波单片机计算距离显示测量结果换能器的信号经单片机综合分析处理实现超声波测距仪的各种功能在此基础上设计了系统的总体方案最后通过硬件和软件实现了各个功能模块AbstractUltrasonic has directivity is strong energy consumption is slow propagation distance etc so the use of sensor technology and automatic control technology combination of ranging scheme ultrasonic ranging is the application of the most common one It is widely used in construction guard against theft backing water level measurement and some industrial field This design USES the STC89C52 with single-chip microcomputer as the core of the ultrasonic ranging hardware circuit and software design method The whole circuit adopts modular design the main program preset subroutine emission subroutine accept subroutine display subroutine voice broadcast subroutine modules etc Emission module launch ultrasonic accept module accept echo microcontroller calculating distance display measurement results Transducer signal by single chip microcomputer integrated analysis processing the ultrasonic range finder all sorts of functions On the basis of the overall scheme of the design of the system and finally through the hardware and software to realize the function of each module 目 录摘 要IAbstractII第一章 绪论111 课题设计目的及意义1com目的1com意义112国内外研究动态113课题研究的主要内容2第二章 总体方案321 方案选择322超声波测距仪的设计思路3com 超声波测距原理3com 超声波测距原理框图323元器件选择4第三章 系统的硬件结构设计531 STC89C52单片机的功能及特点532 单片机最小系统833 超声波测距模块9com HC-SR04实物图9com术参数10com HC-SR04工作原理1034超声波发射电路1035 超声波接收电路1136 DSB18B20温度传感器12com 实物与引脚定义12com DS18B20主要特性1337语音播报模块1338显示单元15第四章 系统的软件设计1741 超声波测距的算法设计1742 主程序流程图1743 超声波发生子程序和超声波接收中断程序1844 语音模块子程序20第五章 温度补偿2251 设计方案2252硬件设计23com集电路2353软件设计24com集24com偿设计及距离计算28第六章总结30致 谢31参考资料32附录一 实物图33附录二 原理图34附录三 源程序35第一章 绪论 11 课题设计目的及意义com目的由于超声测距是一种非接触检测技术不受光线被测对象颜色等的影响较其它仪器更卫生更耐潮湿粉尘高温腐蚀气体等恶劣环境对于被测物处于黑暗有灰尘烟雾电磁干扰等恶劣环境有一定的适应能力具有少维护不污染高可靠长寿命等特点因此可广泛应用于纸业矿业电厂化工业水处理厂污水处理厂农业用水环保检测食品酒业饮料业添加剂食用油奶制品防汛水文明渠空间定位公路限高料位测量车辆自动导航物体识别与定位车辆安全行驶辅助系统乃至地形地貌探测等许多领域中可在不同环境中进行距离准确度在线标定可直接用于水酒糖饮料等液位控制可进行差值设定直接显示各种液位罐的液位料位高度因此超声在空气中测距在特殊环境下有较广泛的应用利用超声波检测往往比较迅速方便计算简单易于实现实时控制并且在测量精度方面能达到工业实用的指标要求随着测距的技术进步测距将从具有单纯判断功能发展到具有学习功能最终发展到具有创造力在新的世纪里面貌一新的测距仪将发挥更大的作用com意义 生活中超声波测距中的应用越来越广但人们可以具体利用的测距技术还十分有限因此这是一个正在蓬勃发展而又有无限前景的技术及产业领域展望未来超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间它将朝着更加高定位高精度的方向发展满足日益发展的社会需求因此研究超声波测距系统有着很大的现实意义对本课题的研究与设计还能进一步提高自己的电路设计水平深入对单片机的理解和应用12国内外研究动态国外在提高超声波测距方面做了大量的研究国内一些学者也作了相关的研究目前超声波测距方法主要有三种1相位检测法精度高但检测范围有限2声波幅值检测法易受反射波的影响3渡越时间法工作方式简单直观现在对超声波测距的精度主要取决于所测的超声波传输时间和超声波在介质中的传输速度二者中以传输时间的精度影响较大所以大部分文献采用降低传输时间的不确定度来提高测距精度温度对传感器的影响也很大因此需要用温度传感器进行校正目前相位探测法和声谱轮廓分析法或二者结合起来的方法是主要的降低探测传输不确定度的方法13课题研究的主要内容为了实现准确测出物体之间的距离的目的设计了一个超声波测距的方案超声波测距通过发出超声波并接收反射回来的回波并通过单片机的计算就可以知道物体的距离应用以下三种技术a单片机技术STC89C52系列的单片机具有体积小重量轻结构较为简单成本低廉可以实现一般的控制功能的优点而且单片机更适用应用于小型的嵌入式系统因此它得到了广泛的应用现代人类生活大部分电子和机械产品中都会集成有单片机b超声波测距技术超声波测距技术与一般测距技术相比具有操作方便系统简单以及计算简单的优点c显示技术数据处理数码管显示测出与物体之间的距离d语音模块技术ISD1730A芯片来语音播报距离第二章 总体方案21 方案选择 采用单片机来控制超声波测距信号线发射到与超声波发射器相连的信号端超声波发射器向既定方向发射在发射的同时开始计时超声波在空气中传播途中碰到障碍物将产生回波22超声波测距仪的设计思路com 超声波测距原理超声波测距的方法有多种如相位检测法声波幅值检测法和渡越时间检测法等相位检测法虽然精度高但检测范围有限声波幅值检测法易受反射波的影响本测距系统采用超声波渡越时间检测法其原理为检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t这个时间就是渡越时间然后求出距离l设l为测量距离t为往返时间差超声波的传播速度为c则有l ct2超声波接收器收到反射波就立即停止计时再由单机计算出距离送数码管显示测量结果 超声波测距的算法设计 超声波在空气中传播速度为每秒钟340米15时是时刻是声波时刻-t1得出的是一个时间差的绝对值假定-t1 003S则有340m×003S 102m由于在这102m的时间里超声波发出到遇到返射物返回的距离图2-1测距原理因为2角度较小可以忽略不计所以LS超声波发出到遇到返射物返回的距离如下L C x t2 -t1 2com 超声波测距原理框图超声波测距模块用HC-SR04温度传感器使用DS18B20微处理器使用STC89C52单片机显示部分采用共阳数码管HC-SR04集成的发射电路模块发出超声波遇到障碍物产生回波被接收电路模块接收STC89C52单片机统计出声波传输所用时间经过温度补偿温计算出正确的待测距离同时ISD1730A根据相关数据处理进行组合播报当前测试距离并且由数码管显示图2-2 超声波测距系统结构图23元器件选择由于测量距离的精度和长度要求不是很高精度达到2cm测量距离达到2m即可因此超声波模块选用价格低廉且实用的HC-SR04即可控制核心部分选择实用的STC89C52单片机即可满足计算和控制要求温度补偿的温度传感器选择普遍且实用的DS18B20语音播报ISD1730A是华邦公司新推出的语音芯片用来替代已经停产的ISD1400 系列及ISD2500 系列芯片ISD1730A不仅在录音时间上有更多的选择从20秒到240 秒而且在功能上继承14及25系列的所有录放功能并增加了一些更加人性化的提示功能及对存储地址的精确操作根据我们经营 ISD 系列芯片多年的经验来看ISD1700 的音质也较14及25系列有明显的提高ISD1700 系列芯片是华邦公司新推出的单片优质语音录放电路该芯片提供多项新功能包括内置专利的多信息管理系统新信息提示vAlert 双运作模式独立嵌入式以及可定制的信息操作指示音效芯片内部包含有自动增益控制麦克风前置扩大器扬声器驱动线路振荡器与内存等的全方位整合系统功能显示部分选择了四位数码管第三章 系统的硬件结构设计31 STC89C52单片机的功能及特点图3-1 STC89C52引脚图32 单片机最小系统单片机最小系统或者称为最小应用系统是指用最少的元件组成的单片机可以工作的系统对52系列单片机来说最小系统一般应该包括单片机晶振电路复位电路 单片机最小系统电路介绍52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间一般采用1030uF51单片机最小系统容值越大需要的复位时间越短52单片机最小系统晶振Y1也可以采用6MHz或者110592MHz在正常工作的情况下可以采用更高频率的晶振51单片机最小系统晶振的振荡频率直接影响单片机的处理速度频率越大处理速度越快52单片机最小系统起振电容C2C3一般采用1533pF并且电容离晶振越近越好晶振离单片机越近越好4P0口为开漏输出作为输出口时需加上拉电阻阻值一般为10k设置为定时器模式时加1计数器是对内部机器周期计数1个机器周期等于12个振荡周期即计数频率为晶振频率的112计数值N乘以机器周期Tcy就是定时时间t设置为计数器模式时外部事件计数脉冲由T0或T1引脚输入到计数器在每个机器周期的S5P2期间采样T0T1引脚电平当某周期采样到一高电平输入而下一周期又采样到一低电平时则计数器加1更新的计数值在下一个机器周期的S3P1期间装入计数器由于检测一个从1到0的下降沿需要2个机器周期因此要求被采样的电平至少要维持一个机器周期当晶振频率为12MHz时最高计数频率不超过12MHz即计数脉冲的周期要大于2 ms图3-2 单片机最小系统33 超声波测距模块com HC-SR04实物图图3-3 HC-SR04实物图com术参数所用工作电压直流5V电压工作静态电流小于2mA电平输出高电平为5V低电平为0V感应角度不大于15度探测距离及精度2cm-450cm高精度可达3mmcom HC-SR04工作原理采用IO触发测距给至少10us的高电平信号模块自动发送8个40khz的方波自动检测是否有信号返回有信号返回通过IO输出一高电平高电平持续的时间就是超声波从发射到返回的时间测试距离 高电平时间声速 340MS 2图3-4 时序图34超声波发射电路超声波传感器的发射电路主要由方波发生芯片40kHz的晶振和232芯片构成单片机给方波发生芯片触发信号后方波发生芯片开始工作产生40kHz的方波信号电平转换芯片232将TTL电平转换成可以驱动振荡器的高电压进而产生所需的40kHz的超声波图3-5超声波发射电路图35 超声波接收电路 本设计中选用的TL740C芯片采用了前置放大电路带通滤波电路后级放大电路将接收到的波形经过整形积分检波滤波和限幅放大等实现接收超声波的功能当距离较远时回波信号会非常微弱转换后的信号电平幅值很小故要经过若干级放大使输出功率达到一定要求并且为了防止信号出现较大的失真接收电路可以保证有4MHz的带宽放大后的交流信号送入比较器后输出一个方波信号并使触发器触发向CPU发出中断请求在中断服务程序中读取计数器的计数值结合温度补偿后的声速计算出测距仪距离障碍物的距离图3-6超声波接收电路图36 DSB18B20温度传感器com 实物与引脚定义 图3-7 DS18B20实物图表3-1 DS18B20各引脚描述管脚号符号功 能1GND电源地2DQ数据输入输出3VDD电源可选DS18B20数字温度计以9位数字量的形式反映器件的温度值通过一根单线接口发送和接收信息因此在单片机和DS18B20之间仅需一条连接线加上地线用于读写和温度转换的电源可以从数据线本身获得无需外部电源com DS18B20主要特性独特的单线接口仅需一个端口引脚进行通讯简单的多点分布应用 无需外部器件可通过数据线供电 零待机功耗 测温范围-55125华氏器件-67257以09递增温度以9位数字量读出温度数字量转换时间200ms典型值 用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度温度报警条件的器件应用包括温度控制工业系统消费品温度计或任何热感测系统图3-8与单片机连接图37语音播报模块ISD1700 系列芯片是华邦公司新推出的单片优质语音录放电路该芯片提供多项新功能包括内置专利的多信息管理系统新信息提示vAlert 双运作模式独立嵌入式以及可定制的信息操作指示音效芯片内部包含有自动增益控制麦克风前置扩大器扬声器驱动线路振荡器与内存等的全方位整合系统功能 特点 ·可录放音十万次存储内容可以断电保留一百年 ·两种控制方式两种录音输入方式两种放音输出方式 ·可处理多达255段以上信息 ·有丰富多样的工作状态提示 ·多种采样频率对应多种录放时间 ·音质好电压范围宽应用灵活价廉物美 电特性 ·工作电压24V-55V最高不能超过6V ·静态电流05 - 1 A ·工作电流20mA 用户可利用震荡电阻来自定芯片的采样频率芯片的采样率可以通过外部振荡电阻来调节表3-2 采样频率与振荡电阻的关系采样频率12KHz8KHz64KHz53KHz4KHz振荡电阻60k80k100k120k160k主控单片机主要通过四线SCLK MOSIMISOSS SPI协议对ISD1730 进行串行通信ISD1730 作为从机几乎所有的操作都可以通过这个SPI协议来完成为了兼容独立按键模式一些SPI命令PLAY RECERASEFWDRESET和GLOBAL_ERASE的运行类似于相应的独立按键模式的操作另外SET_PLAYSET_RECSET_ERASE 命令允许用户指定录音放音和擦除的开始和结束地址此外还有一些命令可以访问APC寄存器用来设置芯片模拟输入的方式 微机接口 主控单片机主要通过四线SCLK MOSIMISOSS SPI协议对ISD1700 进行串行通信ISD1700 作为从机几乎所有的操作都可以通过这个SPI协议来完成为了兼容独立按键模式一些SPI命令PLAY RECERASEFWDRESET和GLOBAL_ERASE的运行类似于相应的独立按键模式的操作另外SET_PLAYSET_RECSET_ERASE 命令允许用户指定录音放音和擦除的开始和结束地址此外还有一些命令可以访问APC寄存器用来设置芯片模拟输入的方式 ISD1700 系列的SPI串行接口操作遵照以下协议 一个SPI处理开始于SS 管脚的下降沿 在一个完整的SPI指令传输周期SS 管脚必须保持低电平 数据在SCLK 的上升沿锁存在芯片的MOSI管脚在SCLK 的下降沿从MISO管脚输出并且首先移出低位 SPI指令操作码包括命令字节数据字节和地址字节这决定于1700的指令类型 当命令字及地址数据输入到MOSI管脚时同时状态寄存器和当前行地址信息从MISO管脚移出 一个SPI处理在SS 变高后启动 在完成一个SPI命令的操作后会启动一个中断信息并且持续保持为低直到芯片收到CLR_INT命令或者芯片复位 图3-9 语音播报电路38显示单元数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一动态驱动是将所有数码管的8个显示笔划"abcdefgdp"的同名端连在一起另外为每个数码管的公共极COM增加位选通控制电路位选通由各自独立的IO线控制当单片机输出字形码时所有数码管都接收到相同的字形码但究竟是那个数码管会显示出字形取决于单片机对位选通COM端电路的控制所以我们只要将需要显示的数码管的选通控制打开该位就显示出字形没有选通的数码管就不会亮通过分时轮流控制各个数码管的的COM端就使各个数码管轮流受控显示这就是动态驱动在轮流显示过程中每位数码管的点亮时间为12ms由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位数码管并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感动态显示的效果和静态显示是一样的能够节省大量的IO端口而且功耗更低在本次设计中我们选用P0口作为段码连接SM410564abcdefgdp每一段的亮灭选用P24P27分别对应位码即连接SM410564的S1S2S3S4分别控制每一位的亮灭S1S2S3S4相当于是每一段的COM端由于是共阳极只有某一位对应的COM端为1时所送的段码对该端来说才是有效的图3-10 显示电路图第四章 系统的软件设计超声波测距仪的软件设计主要有主程序超声波发生程序超声波接收中断程序及显示子程序组成我们知道C语言程序有利于实现较复杂的算法汇编语言程序则具有较高的效率且容易精细计算程序运行的时间而超声波测距仪的程序需要有较复杂的计算计算距离时所以控制程序可采用C语言编程41 超声波测距的算法设计超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号当这个超声波遇到被测物体后反射回来就被超声波接收器R所接收到这样只要计算出从发出超声波信号到接收到返回信号所用的时间就可算出超声波发生器与反射物体的距离距离的计算公式为L s2 ct 2 其中L为被测物与测距仪的距离s为声波的来回的路程c为声速t为声波来回所用的时间在启动发射电路的同时启动单片机内部的定时器T0利用定时器的计数功能记录超声波发射的时间和收到反射波的时间当收到超声波反射波时接收电路输出端产生一个负跳变在INT0或INT1端产生一个中断请求信号单片机响应外部中断请求执行外部中断服务子程序读取时间差计算距离42 主程序流程图软件分为两部分主程序和中断服务程序如图4-1图4-2图4-3所示主程序完成初始化工作各路超声波发射和接收顺序的控制定时中断服务子程序完成单方向超声波的发射外部中断服务子程序主要完成时间值的读取距离计算结果的输出等工作主程序首先是对系统环境初始化设置定时器T0工作模式为16位定时计数器模式置位总中断允许位EA并给显示端口P0和P1清0然后调用超声波发生子程序送出一个超声波脉冲为了避免超声波从发射器直接传送到接收器引起的直射波触发需要延时约01ms这也就是超声波测距会有一个最小可测距离的原因后才打开外中断1接收返回的超声波信号图4-1主程序流程由于采用的是12MHz的晶振计数器每计一个数就是1s当主程序检测到接收成功的标志位后将计数器T0中的数即超声波来回所用的时间按式4-1计算即可得被测物体与测距仪之间的距离设计时取20时的声速为344ms则有d ct 2 172T010000cm 其中T0为计数器T0的计算值测出距离后结果将传给LCD数码显示约5s同时测量距离送语音模块播报然后再发超声波脉冲重复测量过程为了有利于程序结构化和容易计算出距离主程序采用C语言编写43 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过P11端口发送2个左右超声波脉冲信号频率约40kHz的方波脉冲宽度为12s左右同时把计数器T0打开进行计时超声波发生子程序较简单但要求程序运行准确图4-2 定时中断服务子程图4-3 外部中断服务子程序超声波测距主程序利用外中断1检测返回超声波信号一旦接收到返回超声波信号即INT1引脚出现低电平立即进入中断程序进入中断后就立即关闭计时器T0停止计时并将测距成功标志字赋值1如果当计时器溢出时还未检测到超声波返回信号则定时器T0溢出中断将外中断1关闭并将测距成功标志字赋值2以表示此次测距不成功44 语音模块子程序设所测量距离值为S 135cm分别得到百位值分位值个位值调用函数ISD_SET_PLAY进行组合播放语音本例所播放的语音为1点35米流程图如下 图 4-4 语音播报流程图相关源程序代码如下 bai1 S1000100shi1 S10010 ge1 S10 ISD_SET_PLAY add1bai10add2bai10 delay1 100 播放语音片段1 ISD_SET_PLAY add1100add2100 delay1 100 播放语音片段点 ISD_SET_PLAY add1shi10add2shi10 delay1 100 播放语音片段3 ISD_SET_PLAY add1ge10add2ge10 delay1 100 播放语音片段5 ISD_SET_PLAY add1110add2110 delay1 100 播放语音片段米第五章 温度补偿采用超声波测量距离的方法实时检测现场温度用以实现实际波速数据的校准减小温度对测距产生的误差最终由数码管显示所测距离测量范围为7cm1m误差±2cm51 设计方案超声波传声器结构简单行能可靠成本低易集成因此常用超声波测距在常温下超声波的传播速度为340ms但其传播速度V易受到空气中的温度湿度压强等因素的影响其中温度的影响最大一般温度每升高1摄氏度声速增加约为06ms表1为超声波在不同温度下的波速值表5-1 一些温度下声速温度T-30-20-100102030声速vm·s-1313319322331337344350油此可见温度对超声波测距系统的影响是不可忽略的为了得到较为精确的测量结果必须对波速进行温度补偿通过实验可获得波速与温度之间的经验模型V 33150607TT为现场温度V为实际波速从式中可看出要获得精确的波速值必须首先获取现场温度T的大小本设计采用DS18B20检测现场温度用以实现实际波速的校准 温度补偿及其原理目前大多数温度测控系统在进行温度测量时通常采用模拟式温度敏感元件如热电阻热电偶红外测温仪等将温度转化为电信号经过信号放大电路放大到合适的范围再由AD转换为数字量此种形式的温度测量结构复杂测量精度易受原器件参数影响DS18B20是Dallas公司开发的1-wire单总线高精度数字式半导体温度传感器它具有节省IO口弦资源结构简单成本低廉精度高便于总线扩展和维护等诸多特点1-wire是将数据线控制线地址线合为1根信号线DS18B20的测温原理如图5-1-1图中低温度系数的晶振的振荡频率受温度很小用于产生固定频率的脉冲信号送给计数器1高温度系数晶振随温度变化其振荡频率明显改变产生的信号作为计数器2的脉冲输入图中还隐含着计数门当计数门打开时DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数进而完成温度测量计数门的开启时间由高温度系数振荡器来决定每次测量前首先将-55所对应的基数分别置入计数器1和温度寄存器中计数器1的温度寄存器被预置在-55所对应的一个基数值计数器1对低温度系数晶振产生的脉冲信号进行减法计数当计数器1的预置值减到0时温度寄存器的值将加1计数器1的预置将重新被装入重新开始对低温度系数晶振产生的脉冲进行计数如此循环直至计数器2计数到0时停止温度寄存器值的累加此时温度寄存器中的数值即为所测温度图中的斜率累加器用于补偿和修正测温过程中振荡器温度特性的非线性以产生高分辨率的温度测量其输出用于修正计数器的预置值只要计数门仍未关闭就重复上述过程直至温度寄存器值达到被测温度值由经验公式V 33150607T得出现场波速实现温度补偿图5-1测温原理另外由于DS18B20单总线通信功能是分时完成的因此他有严格的时隙概念因此读写时序很重要系统对DS18B20的各种操作必须按协议进行操作协议为初始化DS18B20发复位脉冲发ROM功能命令发存储器操作命令处理数据52硬件设计com集电路温度采用DS18B20传感器进行测量P37接DS18B20数据总线控制DS18B20进行温度转换和传输数据本系统对DS18B20采用外部供电其优点在于IO线不需要强上拉而且总线控制器无需在温度转换期间一直保持高电平这样在转换期间可以允许在单线总线上进行其他数据传输硬件结构如下图图5-2 温度采集电路53软件设计com集系统软件设计采用模块化设计主要包括主程序设计T1中断服务程序INT0外部中断服务程序温度测量子程序距离计算子程序显示子程序延时子程序等系统软件编制时考虑相关硬件的连线同时还要进行存储空间寄存器以及定时器和外部中断引脚的分配和使用由于DS18B20是在一根IO线上读写数据因此对读写的数据位有着严格的时序要求DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性该协议定义了几种信号的时序初始化时序读时序写时序所有时序都是将主机作为主设备单总线器件作为从设备而每次命令和数据的传输都是从主机主动启动写时序开始如果要去单总线器件回送数据在进行写命令后主机需启动读时序完成数据接收数据和命令的传输都是低位在先图5-3初始化时序图图5-4读写时序图主程序首先对系统初始化调用测温子程序进行现场温度的测量得出现场温度流程图程序如下图5-5 温度采集ifndef _ds18b20_H_ define_ds18b20_H_ define uchar unsigned char define uint unsigned int温度传感器定义sbit DQ P1 1ds18B20uint xdata tvalue温度值uchar xdata tflag温度正负标志uint temperuchar temper_getemper_shitemper_baivoid delay_18B20 unsigned int i 延时1微秒 while i- void ds1820rst ds1820复位 unsigned char x 0DQ 1 DQ复位delay_18B20 4 延时DQ 0 DQ拉低delay_18B20 100 精确延时大于480usDQ 1 拉高delay_18B20 40 unsigned char ds1820rd 读数据 unsigned char i 0unsigned char dat 0for i 8i 0i- DQ 0 给脉冲信号 dat 1 DQ 1 给脉冲信号 if DQ dat 0x80delay_18B20 10 return dat void ds1820wr uchar wdata 写数据 unsigned char i 0for i 8 i 0 i- DQ 0DQ wdata0x01delay_18B20 10 DQ 1wdata 1 read_temp 读取温度值并转换 uchar abds1820rst ds1820wr 0xcc 跳过读序列号ds1820wr 0x44 启动温度转换ds1820rst ds1820wr 0xcc 跳过读序列号ds1820wr 0xbe 读取温度a ds1820rd b ds1820rd tvalue btvalue 8tvalue tvalueaif tvalue 0x0fff tflag 0else tvalue tvalue1tflag 1 tvalue tvalue 0625 温度值扩大10倍精确到1位小数return tvalue endifcom偿设计及距离计算在使用时如果温度变化不大则可认为声速c是基本不变的计算时取c为340ms如果测距精度要求很高则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正在本系统中采用STC89C52中的定时器测量超声波传播时间利用DS18B20温度传感器测量环境温度通过温度与声速的关系算出当前温度T下的声速从而提高测距精度空气中声速与温度的关系可表示为声速确定后只要测得超声波往返的时间即可求得距离如果为了进一步提高测量精度本设计中将根据需要利用软件方式增加角度补偿的设计S为物体离超声波发射器的距离 通过以上温度采集得到现场实际温度在距离计算中实行了温度补偿和夹角补偿的程序如下 距离计算函数void computer float temp 距离计算函数 float cdsuint tif temp 0 温度大于0 c 3314061temp00625 else 温度小于0 c 3314-061temp00625t jsh256jsl-120 计数时间d ct0001 2d d 直角三角形勾股定理s d-798 补偿 distance sqrt s 开方运算 通过以上程序超声波测距系统上电启动后即可获得现场温度在进行测距工作时单片机会把温度值通过公式V 331506T补偿到超声波的波速计算中使得计算波速值得到校正从而提高超声波测距系统的精度第六章总结超声波测距的原理是利用超声波的发射和接收根据超声波传播的时间来计算出传播距离实用的测距方法有两种一种是在被测距离的两端一端发射另一端接收的直接波方式适用于身高计另一种是发射波被物体反射回来后接收的反射波方式适用于测距仪此次设计采用反射波方式超声波测距仪硬件电路的设计主要包括单片机系统及显示电路超声波发射电路和超声波检测接收电路温度补偿电路以及语音播报电路单片机采用STC89C52采用12MHz高精度的晶振以获得较稳定时钟频率减小测量误差单片机用P10端口输出超声波换能器所需的40kHz的方波信号利用外中断监测超声波接收电路输出的返回信号显示电路采用简单实用的4位共阳LED数码管温度补偿使用DS18B20来实现计算的精确语音播报电路采用ISD1730芯片来实现语音播报超声波测距仪的软件设计主要由主程序超声波发生子程序超声波接收中断程序及显示子程序组成C语言程序有利于实现较复杂的算法汇编语言程序则具有较高的效率且容易精细计算程序运行的时间而超声波测距仪的程序既有较复杂的计算计算距离时又要求精细计算程序运行时间超声波测距时所以控制程序可采用C语言和汇编语言混合编程本次设计的超声波测距系统满足倒车测距等所需的测量精度而且反映速度快控制简单成本低廉等测距范围为2cm到150cm但由于经验不足还有些地方有待完善在要求精度较高的地方时各元器件的参数也有影响通过以上的设计过程我们不但在知识上收获了而且发现了自己的一些不足之处同时我们也对自己的动手能力有所锻炼而且一次成功的经历给我增添了不少的信心致 谢刚接触此设计课题总认为较为简单不会花很多时间便能完成但随着设计的一步步进行遇到了很多难题才发现还有很多地方是自己不懂的但是课题最终得以顺利完成首先要感谢的是我的指导老师感谢他在此次毕业设计过程中给予我的悉心指导与各方面的帮助他给了我许多非常有益的建议和意见使我在思路上得到了很大的开阔从中认识到了自己存在的不足并且学到了很多非常宝贵的知识特别是在审阅了我的论文指出我的错误和不足之处在这里深表感谢还有和我一起做毕业设计的同学你们给我提出了很多宝贵的意见和帮助也正是在这样一个相互促进的环境中才让我有不断的动力最后再次深深感谢我的导师老师以及给予我帮助的同学和朋友参考资料1 肖景和数字集成电路应用精粹M 北京人民邮电出版社20032 陈晓文电子线路课程设计M北京北京电子工业出版社20043 徐淑华程退安姚万生单片机微型机原理及应用M哈尔滨哈尔滨工业大学出版社1994854 梅丽凤王艳秋com清华大学出版社北京交通大学出版社200925章忠全电子技术实验与课程设计M北京电力工业出版社19996毕满清电子技术实验与课程设计M北京机械工业出版社2