计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费超声波测距仪的设计(一)信息工程毕业(4)

2013-05-22 01:29
导读:微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统
微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
 (3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
 (4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。
5 系统软件设计
 AT89C2051单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表选方式灵活、可进行结构化设计、可以直接控制计算机硬件、生成代码质量高、使用方便等诸多优点[ 5 ]。本系统软件部分与硬件系统配合完成对超声波往返时间的测量,根据在一定温度下超声波的传播速度计算测量的距离,送往数码管显示出测量结果。为了使仪器的适应性强、功能更稳定、软件系统的移植性能更好,系统采用汇编语言来编写程序[ 6 ]。

(科教作文网http://zw.NSEaC.com编辑发布)


 为了便于调试,本系统应用软件设计采用模块化结构设计,其主要程序模块为:
(1)系统初始化及主程序模块(含温度补偿程序);
(2)脉冲信号发射模块;
(3)距离计算模块;
(4)回波接收模块。
5.1 系统初始化及主程序模块
 系统初始化主要是设置两定时器的工作方式:定时器T0为方式1,T1为方式2,并分别给TH0/TH1,TL0/TH1赋初值;T1用来产生40kHz的脉冲信号;T0用来计算距离;外部中断INT0用来接收回波信号。
 在初始化中,关闭外部中断INT0,开启定时器T1发出10个脉冲群,同时开启定时器T0开始计算距离。
 用智能温度控制器DS18B20来给系统补偿温度,测出当时的环境温度,并算出T1中的TH1对应值,修改TH1。应用到T0中计算距离,即可得到温度补偿。
 重复的调用显示子程序,以便随时刷新当前的测量距离。
 然后系统重复测温和显示,直至中断信号的来临……
5.2 脉冲信号发射模块

图10 40kHz脉冲信号产生框图
 系统采用24MHz晶体振荡器,定时器T1工作在方式2,用其自动赋值功能,系统可以直接由单片机的P3.7输出精确的40kHz脉冲,其脉冲宽度为25Os,载波为40kHz的10个脉冲群。
 由于超声波的发射探头T发出的超声波一部分会直接传送到超声波的接收探头R中,从而产生错误的判断(这将在第6章的问题及解决方案中详细阐述);为了避免这一错误的产生,在开始发出信号时,必须关闭外部中断INT0;当发射完毕时,开启外部中断INT0,同时还要先清掉外部中断的请求标志IE0,这又是因为在关闭了外部中断的情况下,中断信号还是会产生的,请求标志仍然存在,只有清除了该标志位,才能避免系统对该中断请求的响应。
5.3 回波接收模块 (转载自科教范文网http://fw.nseac.com)
 用外部中断INT0来接受发射回波,这样可以及时的接收信号,并做出处理;要是采用查询的方式,系统可能要等上5-6ms才能查询到,这样超声波也就多走了1-2m的路程了,精度将大打折扣,甚至有时就是错误的结果。但用中断就是比较麻烦一些,比如,已经关掉了中断,但是在有中断信号时,其中断标志位IE0还会产生,在退出中断子程序后,系统仍会执行此中断请求,但是在采集信号前先清掉此标志位,这个问题也就迎刃而解了。

图11 信号处理子程序框图
 在进入中断子程序时,先关闭中断,同时关闭定时器T0,读取其算出的距离值,并且保存起来,当读取了4次距离值时,去掉其最高和最低的值,然后求出平均值,并送往显示缓冲区,以便于刷新显示。在返回前,清掉请求标志位IE0,在开启T1、T0,开始下一次的测量。
5.4 距离计算模块
图12 测算距离子程序框图
 定时器T0用来计算超声波所走的距离。产生一次中断,则代表超声波已经行程0.2米,此时得出的距离值为0.1米,依此类推,T0中断n次,则测得距离值为n×0.1m;当INT0接收到回波时,关闭T0,再读取数据时,此数据即为测得的距离值。
6 设计中遇到的问题及其解决方案
6.1 发射超声波的探头直接对接收超声波的探头的影响
 发射超声波的探头T发出的超声波一部分直接传送到接收超声波的探头R中,其波形图如图13所示[ 11 ]。
 图13(a)为发出的脉冲信号;图13(b)为接收管接收到的回波信号;图13(c)为实际上我们所需要的回波信号。
 图13(b)中所示的波形① ,此波形为干扰信号,这里要想办法屏蔽波形① 。                                         图13 波形图 大学排名
 从图13(b)中知道波形②的信号比波形①来的晚一些,且波形①的信号只在发射管发射的时候才有,在10个脉冲群发射完毕之后,则没有了此信号①,从而我们在这之后再接收回波信号②,也就起到了隔离此干扰信号的效果。
 计算验证:10个脉冲信号的脉冲宽度为25Os,超声波所走的路程大约在8cm左右,即使返回,则其距离也就在4cm左右,还不到5个厘米,这远远小于我们的精度要求10个厘米。即证得此屏蔽方法可行。
6.2 超声波的传播速度随着温度的变化而变化
 在超声波的两个探头旁边放置温度传感器DS18B20,测出超声波所处的环境温度T,将T送入单片机中,求出对应的声速。
 空气中声速表达式为:
……………………………………(9)
由实验分析得距离计算公式为:
…..…………………… (10)
式中 N 为计数个数;为参考频率;为摄氏温度;为距离。
 根据上面的公式,算出对应温度的速度值,然后求出对应的TH1值,之后列出TH1--温度的对应数据表,利用查

上一篇:免费电子智能抢答器(单片机)(一)信息工 下一篇:单片机串行口与PC机通讯概述信息工程毕业