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循环码在不同信道中性能仿真研究+流程图
-
-
-
-
-
-
-
巴金《激流三部曲》高觉新的悲剧命运
NFC协议物理层的软件实现+文献综述
中国传统元素在游戏角色...
g-C3N4光催化剂的制备和光催化性能研究
高警觉工作人群的元情绪...
浅析中国古代宗法制度
C++最短路径算法研究和程序设计
上市公司股权结构对经营绩效的影响研究
现代简约美式风格在室内家装中的运用
江苏省某高中学生体质现状的调查研究