课程设计-超声波测距+实际 MSP430 单片机与 proteus 中虚拟 51 单片机串口通信仿真

播速度误差和测量距离传播的时间误差引起的。

2.2.3.1. 温度误差

由于超声波也是一种声波。其声速C与温度有关。表1列出了几种不同温度下 的声速

表1声速与温度关系

温度(℃) 声速(米/ 秒) -30 313 -20 319 -10 325 0 323 10 338 20 344 30 349 100 386 这是超声波的温度效应特性,超声波的传播速度“C”可以用公式(2)表示:C =331.5+0.607t(m/s),式中t=温度(℃)。因此要精确测量与某个物体之间的 距离时,则应通过温度补偿的方法加以校正。

2.2.3.2. 时间误差

当要求测距误差小于1mm时,假设已知超声波速度C=344m/s (20℃室温),忽 略声速的传播误差。测距误差s△t<(0.001/344) ≈0.000002907s 即2.907ms。

在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在 达到微秒级,就能保证测距误差小于1mm的误差。使用的12MHz晶体作时钟基准的 89C51单片机定时器能方便的计数到1μs的精度,因此系统采用89C51定时器能保 证时间误差在1mm的测量范围内。

对于超声波测距精度要求达到1MM时,就必须把超声波传播的环境温度考虑进 去。例如当温度0℃时超声波速度是332m/s, 30℃时是350m/s,温度变化引起的超 声波速度变化为18m/s。若超声波在30℃的环境下以0℃的声速测量100M距离所引 起的测量误差将达到5M,测量1M误差将达到5MM。

超声波遇到障碍物后,一部分会反来,那么,通过计算发射出超声波到接收 到回波之间的时差,还有音速,就能算出障碍物的距离。

单片机 MSP430f149 发出短暂的 40kHz 信号,经放大后通过超声波换能器输出; 反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁 定信号启动单片机中断程序,读出时间 t,再由系统软件对其进行计算、判别后,

相应的计算结果被送至 LCD 液晶进行显示。

2.3. 温度测量原理

本设计的原理是:温度采集系统主要通过单线数字温度传感器 DS18B20 采集 得到温度数据,MSP430F149 作为 CPU 从温度传感器读取数据,将得到的数据进 行判断然后做相应处理,比如显示或报警。温度传感器通过某种关系的换算,就 可以得到温度传感器的输出电压,这样单片机通过模拟口采集得到传感器的输出 电压[1]。由于 MSP430F149 片内集成了 A/D 转换通道,这样可以直接将单片机的 A/D 输入通道与传感器的模拟电压输出通道相连接另外系统通过键盘输入来完成 对报警温度上下限的设置,通过显示电路将得到的数据显示出来,当温度超过上 限和下限的时候,系统进行报警,报警是通过驱动一个蜂鸣器来实现的。

3. 硬件系统与软件系统设计

由以上分析可知,系统总体由两部分组成,即包括硬件系统设计和软件系统 设计两大部分。

3.1. 硬件部分

3.1.1. MSP430F149 单片机

单片机的最小系统如图 2-3 所示:

图 2-3 MSP430F149 单片机管脚

3.1.1.1. MSP430F149 的组成

? ? ? ? ? ? 基础时钟模块,包括一个数控振荡器(DCO)、一个高速晶体振荡器(最高 8MHz) 和一个低速晶体振荡器(32768Hz)。

看门狗定时器 Watch Timer,可用作通用定时器。 带有 3 个捕获/比较寄存器的 16 位定时器 Timer_A3。 带有 7 个捕获/比较寄存器的 16 位定时器 Timer_B7。 两个具有中断功能的 8 位并行端口;P1 与 P2。 四个 8 位并行端口;P3、P4、P5 与 P6。

2 位 200kbps 的 A/D 转换器 ADC12,自带采样保持。 两通道串行通信接口可用于异步或同步(USART0、USA1T1)。 一个硬件乘法器。[2]

? 模拟比较器 compator_A。 ? ? ?

3.1.1.2. MSP430F149 的定时器及转换模块

在 MSP430F149 中有一个 16 位定时器和一个 12 位转换模块 ADC12。 16 位 定时器可以用作看门狗定时器,实现在秒数量级上的定时。其中有 2 个中断向量, 便于处理各种定时中断。另外,定时器还具有捕获模式,我们可以通过定时器的 捕获功能实现各种测量,比如脉冲宽度测量。12 位 A/D 转换用到 2 个参考电平, 即 Vr+和 Vr--,作为转换范围的上下限和读数的量程值和 0 值。转换数值在输入 信号大于等于 Vr+时为满量程,小于等于 Vr-时为’0’。ADC12 有 4 种工作模式。 可以在单通道上实现单次转换或多次转换,也可以在序列通道上实现单次转换或 重复转换。对于序列通道转换,采样顺序完全由用户定义。转换的结果保存在 16 个转换寄存器中,这样 ADC12 可以进行多次转换而不需要软件干顶,这一点提 高了系统性能,也减少了软件开销[2]。

3.1.2. 单线数字温度传感器 DS18B20

美国 DALLS 公司生产的单线数字温度传感器 DS18B20,它是一种智能温度 传感器,可把温度信号直接转换成数字信号供微机处理。由于每片 DS18B20 含有 唯一的硅串行数,从 DS18B20 读出的信息或写入 DS18B20 的信息,仅需要一根

口线[4]。读出及温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外的电源。DS18B20 提供九位温度读数,构成多点温度 检测系统而无需任何外围硬件。

3.1.2.1. 温度传感器 DS18B20 特点

??单线接口,仅需一根口线与 CPU 连接可以实现双向通信 ??无需外围元件

??由总线提供电源,电压范围 3.0V5.5V

??调温范围为-55℃~125℃,固有测温分辨率为 0.5℃ ??通过编程可以实现九位数字温度读数

??负压特性,电源极性接反时,温度计不会因发热而烧坏,但不能正常工作

3.1.2.2. 温度传感器 DS18B20 内部结构

温度传感器 DS18B20 内部结构:DS18B20 采用三脚 PR35 封装如图 2-2 所示, 其内部框图如 2-3 所示[5]。

64 位的 ROM 开始 8 位是产品类型的编号,接着是每个器件的唯一的序号共 计 48 位,最后 8 位是前 56 位的 CRC 校验码。

高速缓存器存储器包含一个高速暂存 RAM 和一个非易失性的可电擦除的 EP2RAM。配置寄存器为高速缓存器中的第五个字节,它的内容用于确定温度值 的数字转换分辨率,各位字节的定义如表 2-2 示:

表 2-2 各位字节的定义

TM R1 R0 1 1 1 1 1 后五位一直是 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是测试 模式,在 DS18B20 出厂时被设置为 0,用户不要去改动,R1 和 R0 决定温度转换 的精度位数,也就是设置分辨率。

图 2-4 DS18B20 三脚 PR35 封装

图 2-5 DS18B20 电路图

在温度进行计算时,以 12 位转换位数为例:对于正的温度,只要将测到的数

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4