嵌入式设计报告..doc
文本预览下载声明
超声波测距仪设计
摘 要:本文利用超声波传输中距离与时间的关系,采用单片机进行控制及数据处理,设计出了能精确测量两点间距离的超声波测距仪。
关键词:超声波 单片机 测距
中图分类号:TP29 文献标识码:A 文章编号:
在工程实践中,超声波由于指向性强、能量消耗缓慢且在介质中传播的距离较远,因而经常用于距离的测量。利用超声波检测往往比较迅速、方便,且计算简单、易于做到实时控制,在测量精度方面也能达到工业实用的要求
1 系统总体设计
图 1系统总体设计框图
Fig.1 Diagram of the overall system design
系统总体设计框图如图1,根据超声波发射与接收器模块在工作时发射超声波到接收反射回的回波后,并将发射超声波与接收回波的状态信号传输到单片机,再经过单片机内部程序的处理,并将计算结果以数据的形式由单片机I/O接口传输到LCD液晶显示屏并显示出测量结果的数据,同时由软件控制测量距离在某一临界值时单片机会使蜂鸣器报警。
2 硬件设计
2.1 ALIENTEK探索者STM32F407开发板
2.2 US-100超声波收发模块
该超声波收发模块可自己产生40kHz的方波,并经放大电路驱动超声波发射探头发射超声波,发射出去的超声波经障碍物反射后由超声波接收探头接收。经接收电路的检波放大,积分整形,在ECHO引脚上产生方波脉冲,该脉冲宽度与被测距离成线性关系。具体过程如图2-1所示。?
图2-1?US-100超声波收发模块工作时序图
图2-1表明:只需要在Trig/TX管脚输入一个10us以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一个高电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2?
使用US-100超声波收发模块进行距离测量测量时,单片机只需要输出触发信号,并监视回响引脚,通过定时器计算回响信号宽度,并换算成距离即可。该其参数指标如下表所示。
3 软件设计
3.1 主程序设计
距离小于150mm
3.2 外部中断
3.3程序
#include led.h
#include delay.h
#include sys.h
#include usart.h
#include timer.h
#include beep.h
#include lcd.h
extern u8 TIM5CH1_CAPTURE_STA; //输入捕获状态
extern u16 TIM5CH1_CAPTURE_VAL; //输入捕获值
int main(void)
{
u32 temp1=0;
int i=0;
BEEP_Init(); //初始化蜂鸣器端口
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
GPIOA1_Init(); //初始化pa1.pa3
LCD_Init();
TIM5_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数
POINT_COLOR=RED;
LCD_ShowString(60,50,200,16,16,EXAM);
LCD_ShowString(60,70,200,16,16,ChaoShengBoCeJu);
POINT_COLOR=BLACK;
LCD_ShowString(60,90,200,16,16,HuangHao);
LCD_ShowString(60,110,200,16,16;
LCD_ShowString(60,130,200,16,16,TheDistense:0.000mm);
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
delay_us(25);
GPIO_ResetBits(GPIOA,GPIO_Pin_
显示全部