电子信息工程技术毕业论文:超声波测距与显示系统设计内容摘要:

字形码但究竟是那个数码管会显示出字形取决于单片机对位选通 COM 端电路的控制所以我们只要将需要显示的数码管的选通控制打开该位就显示出字形没有选通的数码管就不会亮通过分时轮流控制各个数码管的的 COM 端就使各个数码管轮流受控显示这就是动态驱动在轮流显示过程中每位数码管的点亮时间为 1~ 2ms 由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位数码管并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感动态显示的效果和静态显示是一样的能够节省大量的 IO 端口而且功耗更低 在本次设计中我们选用 P0 口作为段码连接 SM410564abcdefgdp 每一段的亮灭选用 P24P27 分别对应位码即连接 SM410564 的 S1S2S3S4 分别控制每一位的亮灭 S1S2S3S4 相当于是每一段的 COM 端由于是共阳极只有某一位对应的 COM 端为1 时所送的段码对该端来说才是有效的 图 310 显示电路图 第四章 系统的软件设计 超声波测距仪的软件设计主要有主程序超声波发生程序超声波接收中断程序及显示子程序组成我们知道 C 语言程序有利于实现较复杂的算法汇编语言程序则具有较高的效率且容易精细计算程序运行的时间而超声波测距仪的 程序需要有较复杂的计算计算距离时所以控制程序可采用 C 语言编程 41 超声波测距的算法设计 超声波测距的原理为超声波发生器 T 在某一时刻发出一个超声波信号当这个超声波遇到被测物体后反射回来就被超声波接收器 R 所接收到这样只要计算出从发出超声波信号到接收到返回信号所用的时间就可算出超声波发生器与反射物体的距离距离的计算公式为 L s2 ct 2 其中 L为被测物与测距仪的距离 s为声波的来回的路程 c 为声速 t为声波来回所用的时间在启动发射电路的同时启动单片机内部 的定时器 T0 利用定时器的计数功能记录超声波发射的时间和收到反射波的时间当收到超声波反射波时接收电路输出端产生一个负跳变在 INT0或 INT1端产生一个中断请求信号单片机响应外部中断请求执行外部中断服务子程序读取时间差计算距离 42 主程序流程图 软件分为两部分主程序和中断服务程序如图 41图 42图 43所示主程序完成初始化工作各路超声波发射和接收顺序的控制定时中断服务子程序完成单方向超声波的发射外部中断服务子程序主要完成时间值的读取距离计算结果的输出等工作 主程序首先是对系统环境初始化设置定时器 T0工作模式 为 16位定时计数器模式置位总中断允许位 EA 并给显示端口 P0 和 P1 清 0 然后调用超声波发生子程序送出一个超声波脉冲为了避免超声波从发射器直接传送到接收器引起的直射波触发需要延时约 01ms 这也就是超声波测距会有一个最小可测距离的原因后才打开外中断 1 接收返回的超声波信号 图 41 主程序流程 由于采用的是 12MHz 的晶振计数器每计一个数就是1μ s当主程序检测到接收成功的标志位后将计数器 T0中的数即超声波来回所用的时间按式 41 计算即可得被测物体与测距仪之间的距离设计时取 20℃时的声速为 344ms 则有 d ct 2 172T010000cm 其中 T0 为计数器 T0 的计算值 测出距离后结果将传给 LCD 数码显示约 5s同时测量距离送语音模块播报然后再发超声波脉冲重复测量过程为了有利于程序结构化和容易计算出距离主程序采用 C 语言编写 43 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过 P11端口发送 2个左右超声波脉冲信号频率约 40kHz 的方波脉冲宽度为 12μ s 左右同时把计数器 T0 打开进行计时超声波发生子程序较简单但要求程序运行准确 图 42 定时中断服务子程 图 43 外部中断服务子程序 超声波测距主程序利用外中断 1 检测返回超声波信号一旦接收到返回超声波信号即 INT1 引脚出现低电平立即进入中断程序进入中断后就立即关闭计时器 T0 停止计时并将测距成功标志字赋值 1 如果当计时器溢出时还未检测到超声波返回信号则定时器 T0 溢出中断将外中断 1 关闭并将测距成功标志字赋值 2 以表示此次测距不成功 44 语音模块子程序 设所测量距离值为 S 135cm 分别得到百位值分位值个位值调用函数ISD_SET_PLAY 进行组合播放语音本例所播放的语音为 1 点 35 米 流程图如下 图 44 语音播报流程图 相关源程序代码如下 bai1 S1000100 shi1 S10010 ge1 S10 ISD_SET_PLAY add1[bai1]0add2[bai1]0 delay1 100 播放语音片段 1 ISD_SET_PLAY add1[10]0add2[10]0 delay1 100 播放语音片段点 ISD_SET_PLAY add1[shi1]0add2[shi1]0 delay1 100 播放语音片段 3 ISD_SET_PLAY add1[ge1]0add2[ge1]0 delay1 100 播放语音片段 5 ISD_SET_PLAY add1[11]0add2[11]0 delay1 100 播放语音片段米 第五章 温度补偿 采用超声波测量距离的方法实时检测现场温度用以实现实际波速数据的校准减小温度对测距产生的误差最终由数码管显示所测距离测量范围为 7cm1m 误差177。 2cm 51 设计方案 超声波传声器结构简单行能可靠成本低易集成因此常用超声波测距 在常温下超声波的 传播速度为 340ms但其传播速度 V易受到空气中的温度湿度压强等因素的影响其中温度的影响最大一般温度每升高 1 摄氏度声速增加约为 06ms 表 1 为超声波在不同温度下的波速值 表 51 一些温度下声速 温度 T℃ 30 20 10 0 10 20 30 声速 vm s1 313 319 322 331 337 344 350 油此可见温度对超声波测距系统的影响是不可忽略的为了得到较为精确的测量结果必须对波速进行温度补偿通过实验可获得波速与温度之间的经验模型 V 33150607TT 为现场温度 V 为实际波速从式中 可看出要获得精确的波速值必须首先获取现场温度 T的大小本设计采用 DS18B20检测现场温度用以实现实际波速的校准 温度补偿及其原理 目前大多数温度测控系统在进行温度测量时通常采用模拟式温度敏感元件如热电阻热电偶红外测温仪等将温度转化为电信号经过信号放大电路放大到合适的范围再由 AD 转换为数字量此种形式的温度测量结构复杂测量精度易受原器件参数影响 DS18B20 是 Dallas 公司开发的 1wire 单总线高精度数字式半导体温度传感器它具有节省 IO 口弦资源结构简单成本低廉精度高便于总线扩展和维护等诸多特点 1wire 是将数据线控制线地址线合为 1 根信号线 DS18B20的测温原理如图 511图中低温度系数的晶振的振荡频率受温度很小用于产生固定频率的脉冲信号送给计数器 1 高温度系数晶振随温度变化其振荡频率明显改变产生的信号作为计数器 2 的脉冲输入图中还隐含着计数门当计数门打开时 DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数进而完成温度测量计数门的开启时间由高温度系数振荡器来决定每次测量前首先将55℃所对应的基数分别置入计数器 1 和温度寄存器中计数器 1 的温度寄存器被预置在 55℃所对应的一个基数值 计数器 1对低温 度系数晶振产生的脉冲信号进行减法计数当计数器 1的预置值减到 0时温度寄存器的值将加 1计数器 1的预置将重新被装入重新开始对低温度系数晶振产生的脉冲进行计数如此循环直至计数器 2计数到 0时停止温度寄存器值的累加此时温度寄存器中的数值即为所测温度图中的斜率累加器用于补偿和修正测温过程中振荡器温度特性的非线性以产生高分辨率的温度测量其输出用于修正计数器的预置值只要计数门仍未关闭就重复上述过程直至温度寄存器值达到被测温度值由经验公式 V 33150607T 得出现场波速实现温度补偿 图 51 测温原理 另外由于 DS18B20 单总线通信功能是分时完成的因此他有严格的时隙概念因此读写时序很重要系统对 DS18B20 的各种操作必须按协议进行操作协议为初始化 DS18B20发复位脉冲→发 ROM功能命令→发存储器操作命令→处理数据 52 硬件设计 集电路 温度采用 DS18B20 传感器进行测量 P37 接 DS18B20 数据总线控制 DS18B20进行温度转换和传输数据本系统对 DS18B20 采用外部供电其优点在于 IO 线不需要强上拉而且总线控制器无需在温度转换期间一直保持高电平这样在。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。