4.4.2 温度检测电路
温度检测电路如图4-4所示:
图4-4 温度检测电路
温度对超声波速度影响非常大,本文采用了DSl8820进行测温。DSl8820是DALLAS公司生产的一线式数字温度传感器,温度测量范围是一55 —+125 ,可编程为9位--12位A/D转换精度,测温分辨率可达0.0625 。
声速的修正可以采用公式: ,v为超声波在介质中的传播速度,为计算方便可以采用以下公式:v=331.4+0.607Tm/s。
4.5 系统软件结构
在系统硬件构架了超声测距的基本功能之后,系统软件所实现的功能主要是针对系统功能的实现及数据的处理和应用。根据以上所述系统硬件设计和所完成功能,系统软件需要实现以下功能:
(1) 信号控件
在系统硬件中,已经完成了发射电路、回波接收电路、温度补偿电路的设计。在系统软件中,要完成增益控制信号、门控信号、发射脉冲信号、峰值采集信号的时序及输出。
(2) 数据存储
为了得到发射信号与接收回波问的时间差,要读出此刻计数器的计数值,然后存储在RAM中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。
(3) 信号处理
RAM中存储的计数值并不能作为距离值直接显示输出,因为计数值与实际的距离值之间转换公式为:S=0.5*V*T=0.5*V*(Tr*N)其中,T为发射信号到接收之间经历的时问,Tr为方波信号作为计数脉冲时计数器的时间分辨率,N为计数器的值。在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。
(4) 数据传输与显示
经软件处理得到的距离送到与LCD显示。
由于采用了单片机STM32并考虑整个系统的控制流程,整个系统软件都有单C语言实现。出于距离值的得出及显示是在中断子程序中完成的,因此在初始化发射程序后进入中断响应的等待。在中断响应之后,原始数据经计数值与距离值换算子程序,二进制与十进制转换子程序后显示输出。整个系统软件功能的实现可以分为主程序、子程序、中断服务程序几个主要部分。
4.5.1 主程序结构
4-5 主程序流程图
4.5.2 超声波测距程序流程
4-6 超声波测距程序流程图
4.5.3 LCD显示程序流程
4-7 LCD显示程序流程图
4.6 系统主要程序
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"
void interface_init(void); //人机交互界面
unsigned char dot_location_flag=0;
u16 x=0,i=0;
unsigned long distance=0;
unsigned old_cnt=0,new_cnt=0;
unsigned int super_voice_cnt=0;
unsigned int old_point_x=0,old_point_y=0,new_point_x,new_point_y;
- 上一篇:51单片机函数信号发生器的设计+源码+电路图
- 下一篇:Matlab循环码在不同信道中性能仿真研究+流程图
-
-
-
-
-
-
-
大众媒体对公共政策制定的影响
酸性水汽提装置总汽提塔设计+CAD图纸
河岸冲刷和泥沙淤积的监测国内外研究现状
杂拟谷盗体内共生菌沃尔...
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
java+mysql车辆管理系统的设计+源代码
中考体育项目与体育教学合理结合的研究
乳业同业并购式全产业链...
电站锅炉暖风器设计任务书