非常有用必看 基于51单片机超声波测距系统

合集下载

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统

封面目录摘要.........................................................错误!未定义书签。

一. 绪论......................................................错误!未定义书签。

二.超声波测距的原理..........................................错误!未定义书签。

超声波的基本理论.............................................错误!未定义书签。

超声波测距系统原理...........................................错误!未定义书签。

三. 系统硬件的具体设计与实现..................................错误!未定义书签。

系统原理和框图...............................................错误!未定义书签。

功能模块的设计...............................................错误!未定义书签。

单片机介绍...............................................错误!未定义书签。

STC89C52管脚说明....................................错误!未定义书签。

STC89C52主要特性....................................错误!未定义书签。

芯片擦除..............................................错误!未定义书签。

超声波测距模块HC-SR04 ..................................错误!未定义书签。

产品特点.............................................错误!未定义书签。

基于51单片机的超声波测距报告

基于51单片机的超声波测距报告

- 11 -
(六)附录 程序清单 ;********************************************
;* 超声波测距器 * ;* 采用 STC 89C54RC+ 12MHZ 晶振 * ;* 采用共阴 LED 显示器 LRM 2011.06.20 * ;******************************************** ;测距范围 7CM-1M,堆栈在 4FH 以上,20H 用于标志 ;显示缓冲单元在 40H-43H,使用内存 44H、45H、46H 用于计算距离 ; VOUT EQU P1.0 ; 红外脉冲输出端口 ; ;******************************************** ;* 中断入口程序 * ;******************************************** ; ORG 0000H LJMP START ORG 0003H ;中断 0 LJMP PINT0 ORG 000BH ;定时器 0 溢出 LJMP INTT0 ORG 0013H ;中断 1 RETI ORG 001BH ;定时器 1 溢出 LJMP INTT1 ORG 0023H ;串行口中断 RETI ORG 002BH RETI ; ;******************************************** ;* 主 程 序 * ;******************************************** ; START: MOV SP,#4FH MOV R0,#40H ;40H-43H 为显示数据存放单元 (40H 为最高位) MOV R7,#0BH CLEARDISP: MOV @R0,#00H INC R0 DJNZ R7,CLEARDISP

基于51单片机的超声波测距

基于51单片机的超声波测距

本系统由51单片机及相关外围电路构成,系统由单片机系统、发射电路与接收放大电路和显示电路几部分组成。

测距范围:25CM到250CM之间。

误差:1%。

距离显示:用三位LED 数码管进行显示(单位是CM)。

该接收电路结构简单,性能较好。

硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。

单片机采用AT89C2051。

采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。

单片机用P3.5端口输出超声波换能器所需的40kHz的方波信号,P3.6端口监测超声波接收电路输出的返回信号。

显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。

超声波发射、接收电路如图。

超声波发射部份由电阻R2及超声波发送头T40板成;接收电路由BG1、BG2X组成的两组三级管放大电路组成;检波电路、比较整形电路由C7、D1、D2及BG3组成。

40kHz的方波由A T 8 9 C 2 0 5 1单片机的P 3 .5驱动超声波发射头发射超声波,经反射后由超声波接收头接收到40kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的P3脚。

该测距电路的40kHz方波信号由单片机A T 8 9 C 2 0 5 1 的P 3 .5发出。

方波的周期为1/40ms,即25µs,半周期为12.5µs。

每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz 方波。

由于单片机系统的晶振为12M晶振,因而单片机的时间分辨率是1µs,所以只能产生半周期为12µs或13µs的方波信号,频率分别为41.67kHz和38.46kHz。

本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。

基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计超声波测距系统是一种常见的非接触式测距技术,通过发送超声波信号并测量信号的回波时间来计算距离。

本文将介绍基于51单片机的超声波测距系统的毕业设计。

首先,我们需要明确设计的目标。

本设计旨在通过51单片机实现一个精确、稳定的超声波测距系统。

具体而言,我们需要实现以下功能:1.发送超声波信号:通过51单片机的IO口控制超声波发射器,发送一定频率和波形的超声波信号。

2.接收回波信号:通过51单片机的IO口连接超声波接收器,接收并放大返回的超声波信号。

3.信号处理:根据回波信号的时间延迟计算出距离,并在显示器上显示出来。

4.稳定性和精确性:设计系统时需考虑测量过程中误差的影响,并通过合适的算法和校准方法提高系统的稳定性和精确性。

接下来,我们需要选择合适的硬件和软件配合51单片机实现上述功能。

硬件方面:1.51单片机:选择一款性能稳定、易于编程的51单片机,如STC89C522.超声波模块:选择一款合适的超声波传感器模块,常见的有HC-SR04、JSN-SR04T等。

模块一般包括发射器和接收器,具有较好的测距性能。

3.显示设备:选择合适的显示设备,如7段LED数码管或LCD显示屏,用于显示测距结果。

软件方面:1.C语言编程:使用C语言编写51单片机的程序,实现超声波测距系统的各项功能。

2.串口通信:通过串口与上位机进行通信,可以对系统进行监控和远程控制。

3.算法设计:选择合适的算法计算超声波回波时间延迟,并根据时间延迟计算距离值。

在设计过程中,我们需要进行以下步骤:1.硬件连接:按照超声波模块的说明书,将模块的发射器和接收器通过杜邦线与51单片机的IO口连接。

2.软件编程:使用C语言编写51单片机的程序,实现超声波模块的控制、信号接收和处理、距离计算等功能。

3.系统测试:进行系统的功能测试和性能测试,验证系统的可靠性和准确性,同时调试系统中出现的问题。

4.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。

基于51单片机超声波测距报警系统课程设计

基于51单片机超声波测距报警系统课程设计

基于51单片机超声波测距报警系统课程设计一、引言超声波测距技术是一种常见的非接触式测距技术,具有测距范围广、精度高等优点。

在日常生活中,超声波测距技术被广泛应用于车辆倒车雷达、智能家居中的人体感应等领域。

本文将介绍基于51单片机的超声波测距报警系统的课程设计。

二、设计思路本课程设计主要分为硬件设计和软件设计两部分。

硬件部分主要包括超声波模块、LCD显示屏、蜂鸣器等模块的连接和电路设计;软件部分主要包括51单片机程序设计及LCD显示程序编写。

三、硬件设计1. 超声波模块连接超声波模块是实现测距功能的核心部件。

在本课程设计中,我们采用HC-SR04型号的超声波模块。

该模块需要连接到51单片机上,具体连接方式如下:- 将VCC引脚连接到51单片机上的5V电源;- 将GND引脚连接到51单片机上的GND;- 将Trig引脚连接到P2.0口;- 将Echo引脚连接到P2.1口。

2. LCD显示屏连接LCD显示屏用于显示测距结果和报警信息。

在本课程设计中,我们采用1602型号的LCD显示屏。

该模块需要连接到51单片机上,具体连接方式如下:- 将VSS引脚连接到51单片机上的GND;- 将VDD引脚连接到51单片机上的5V电源;- 将VO引脚连接到一个10K电位器,再将电位器两端分别接到GND 和5V电源;- 将RS引脚连接到P1.0口;- 将RW引脚连接到P1.1口;- 将EN引脚连接到P1.2口;- 将D4-D7引脚分别连接到P0口的高四位。

3. 蜂鸣器连接蜂鸣器用于报警。

在本课程设计中,我们采用被动式蜂鸣器。

该模块需要连接到51单片机上,具体连接方式如下:- 将正极引脚(一般为长针)连接到51单片机上的P3.7口;- 将负极引脚(一般为短针)连接到51单片机上的GND。

四、软件设计1. 51单片机程序设计在本课程设计中,我们采用Keil C51作为编程工具,使用C语言编写程序。

主要程序流程如下:- 定义超声波模块的Trig和Echo引脚;- 定义LCD显示屏的RS、RW、EN和D4-D7引脚;- 定义蜂鸣器的引脚;- 定义变量存储测距结果和报警状态;- 初始化LCD显示屏、超声波模块等模块;- 循环执行以下操作:- 发送超声波信号并计算回波时间,从而得到距离值;- 根据距离值判断是否需要报警,并控制蜂鸣器发出报警声音;- 将测距结果和报警状态显示在LCD显示屏上。

51单片机实现超声波测距报警系统

51单片机实现超声波测距报警系统

51单片机实现超声波测距报警系统超声波测距报警系统是一种基于51单片机的硬件电路和软件程序开发的测距设备。

本文将从设备原理和设计、电路连接和程序开发等方面进行详细介绍。

一、设备原理和设计超声波测距报警系统的原理是利用超声波传感器测量并计算被测物体与传感器的距离,并通过单片机采集和处理超声波信号,根据测量结果触发报警和显示等功能。

1.超声波传感器:超声波传感器是用来发射和接收超声波信号的装置,一般由发射器和接收器组成。

发射器发射超声波信号,接收器接收被测物体反射的超声波信号。

2.单片机:本系统采用51单片机作为控制核心,负责采集和处理超声波信号,控制报警和显示等功能。

3.报警器:当距离小于设定阈值时,触发报警器发出声音或闪光等警告信号。

4.显示屏:用来显示测量结果,一般为数码管或液晶显示屏。

5.电源和电路:提供系统所需的电源和信号连接电路。

二、电路连接超声波测距报警系统的电路连接主要包括超声波传感器、单片机、报警器、显示屏以及电源等模块。

1.超声波传感器连接:将超声波传感器的发射端和接收端分别连接到单片机的引脚上,发射端连接到P1口,接收端连接到P2口。

2.报警器连接:将报警器连接到单片机的一个IO口,通过控制该IO 口的高低电平来触发报警。

3.显示屏连接:将显示屏连接到单片机的相应IO口,通过向显示屏发送数据来显示测量结果。

4.电源连接:将电源连接到单片机以及其他模块的供电端,确保系统正常工作。

三、程序开发1.初始化设置:包括引脚和端口的初始化设置,包括超声波传感器引脚和单片机的IO口设置。

2.测量距离:通过单片机控制超声波传感器发射超声波信号,并通过接收器接收反射的超声波信号,计算出被测物体与传感器的距离。

3.报警触发:根据设定的阈值,当测量到的距离小于阈值时,通过控制报警器发出声音或闪光等警告信号。

4.显示结果:通过控制显示屏将测量结果显示出来。

5.循环检测:通过循环检测的方式,不断进行测量并处理数据,实时更新测量结果和触发报警。

基于51单片机的超声波测距系统设计单片机与电子技术专业毕业设计毕业论文

基于51单片机的超声波测距系统设计单片机与电子技术专业毕业设计毕业论文

目录目录 (1)摘要 (2)第1章超声波测距系统设计 (3)1.1超声波测距的原理 (3)1.2超声波测距系统电路的设计 (3)1.2.1 总体设计方案 (3)1.2.2发射电路的设计 (4)1.2.3接收电路的设计 (5)1.2.4显示模块的设计 (6)1.3超声波测距系统的软件设计 (7)1.4本章小结 (9)第2章绪论 (10)2.1课题背景,目的和意义 (10)2.2两种常用的超声波测距方案 (10)2.2.1基于单片机的超声波测距系统 (10)2.2.2基于CPLD的超声波测距系统 (11)2.3课题主要内容 (12)第3章超声波传感器 (13)3.1超声波传感器的原理与特性 (13)3.1.1原理 (13)3.1.2特性 (14)3.2超声波传感器的检测方式 (15)3.3超声波传感器系统的构成 (16)3.4本章小结 (17)第4章AT89C51单片机简介 (18)4.1单片机基础知识 (18)4.1.1单片机的内部结构 (18)4.1.2单片机的基本工作原理 (20)4.2单片机的分类及发展 (21)4.3单片机AT89C51的特性 (22)4.4本章小结 (25)第5章电路调试及误差分析 (26)5.1电路的调试 (26)5.2系统的误差分析 (26)5.2.1声速引起的误差 (26)5.2.2单片机时间分辨率的影响 (27)5.4本章小结 (28)结论 (29)致谢 (30)参考文献 (31)附录1 (31)附录2 (36)附录3 (38)摘要超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。

本报告详细的介绍了超声波传感器的原理和特性,以及Atmel公司的AT89C51单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的思路和所需考虑的问题,给出了以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。

基于51单片机的超声波测距

基于51单片机的超声波测距

基于51单片机的超声波测距超声波:超声波是由机械振动产生的, 可在不同介质中以不同的速度传播, 具有定向性好、能量集中、传输过程中衰减较小、反射能力较强等优点。

超声波传感器可广泛应用于非接触式检测方法,它不受光线、被测物颜色等影响, 对恶劣的工作环境具有一定的适应能力, 因此在水文液位测量、车辆自动导航、物体识别等领域有着广泛的应用。

超声波测距原理:超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差Δt , 然后求出距离S 。

在速度v 已知的情况下,距离S 的计算,公式如下:S = vΔt/ 2。

在空气中,常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。

因此在测距精度要求很高的情况下, 应通过温度补偿的方法对传播速度加以校正。

已知现场环境温度T 时, 超声波传播速度V 的计算公式如下:V = 331.5 + 0. 607T这样, 只要测得超声波发射和接收回波的时间差Δt 以及现场环境温度T,就可以精确计算出发射点到障碍物之间的距离。

超声波测距模块:(1):采用IO口TRIG触发测距,给至少10us的高电平信号;(2):模块自动发送8个40khz的方波,自动检测是否有信号返回;(3):有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

测试距离=(高电平时间*声速(340M/S))/2。

例程:/******************超声波测距1602显示******************单片机型号:STC89C52RC*开发环境:KEIL*名称:超声波测距液晶1602显示/**********************包含头文件*********************/#include <reg52.h>#define LCD_Data P0#define Busy 0x80/**********************宏定义*************************/#define SPEED_30C 3495 //30摄氏度时的声速,声速V=331.5+0.6*温度;#define SPEED_23C 3453 //23摄氏度时的声速,声速V=331.5+0.6*温度;/**********************位定义*************************/sbit ECHO=P1^6;sbit TRIG=P1^5;sbit BEEP=P2^3;sbit LCD_RS=P1^0;sbit LCD_RW=P1^1;sbit LCD_E=P2^5;/********************定义变量和数组*******************/long int distance=0; //距离变量unsigned char code table0[]={" SL-51A "};unsigned char code table1[]={" NO ECHO "};unsigned char code table2[]={"Distance:xxx.xcm"};unsigned char count;void Delay5Ms(void);void delay(int In,int Out);void WriteDataLCD(unsigned char WDLCD);void WriteCommandLCD(unsigned char WCLCD,BuysC);unsigned char ReadDataLCD(void);unsigned char ReadStatusLCD(void);void LCDInit(void);void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData);void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData);void delayt(unsigned int x){unsigned char j;while(x-->0){for(j=0;j<125;j++){;}}}void Delay5Ms(void){unsigned int TempCyc=3552;while(TempCyc--);}void delay(int In,int Out){int i,j;for(i=0;i<In;i++){for(j=0;j<Out;j++){;}}}void Alarm(unsigned char t){unsigned char i;for(i=0;i<t;i++){BEEP=0;delay(10,1000);BEEP=1;delay(10,1000);}}void Init_timer(void){TMOD=0x01;TL0=0x66;TH0=0xfc;ET0=1;EA=1;}void Init_Parameter(void){TRIG=1;ECHO=1;count=0;distance=0;}void display(int number){unsigned char b,c,d,e;b=(number/1000);c=(number/100)%10;d=(number/10)%10;e=number%10;DisplayOneChar(9,1,(0x30+b));DisplayOneChar(10,1,(0x30+c));DisplayOneChar(11,1,(0x30+d));DisplayOneChar(13,1,(0x30+e));}void Trig_SuperSonic(void){TRIG=1;delayt(1);TRIG=0;}void Measure_Distance(void){unsigned char l;unsigned int h,y;TR0=1;while(ECHO){;}TR0=0;l=TL0;h=TH0;y=(h<<8)+l;y=y-0xfc66;distance=y+1000*count;TL0=0x66;TH0=0xfc;delayt(30);distance=SPEED_30C * distance / 20000;}void WriteDataLCD(unsigned char WDLCD){ReadStatusLCD();LCD_Data=WDLCD;LCD_RS=1;LCD_RW=0;LCD_E=0;LCD_E=0;LCD_E=1;}void WriteCommandLCD(unsigned char WCLCD,BuysC) {if (BuysC)ReadStatusLCD();LCD_Data=WCLCD;LCD_RS=0;LCD_RW=0;LCD_E=0;LCD_E=0;LCD_E=1;}unsigned char ReadDataLCD(void){LCD_RS=1;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;return(LCD_Data);}unsigned char ReadStatusLCD(void){LCD_Data=0xFF;LCD_RS=0;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;while (LCD_Data & Busy);return(LCD_Data);}void LCDInit(void){LCD_Data=0;WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,1);WriteCommandLCD(0x08,1);WriteCommandLCD(0x01,1);WriteCommandLCD(0x06,1);WriteCommandLCD(0x0C,1);}void LCD_Clear(void){WriteCommandLCD(0x01,1);Delay5Ms();}void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData){Y&=0x1;X&=0xF;if(Y)X|=0x40;X|=0x80;WriteCommandLCD(X,0);WriteDataLCD(DData);}void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData) {unsigned char ListLength;ListLength=0;Y&=0x1;X&=0xF;while(DData[ListLength]>=0x20){if(X<=0xF){DisplayOneChar(X,Y,DData[ListLength]); ListLength++;X++;}}}void main(void){LCDInit();Init_timer();Init_Parameter();Alarm(2);DisplayListChar(0,0,table0);DisplayListChar(0,1,table1);while(1){Trig_SuperSonic();while(ECHO==0){;}Measure_Distance();DisplayListChar(0,1,table2);display(distance);Init_Parameter();delayt(100);}}void timer0 (void) interrupt 1{TF0=0;TL0=0x66;TH0=0xfc;count++;if(count==18){TR0=0;TL0=0x66;TH0=0xfc;count=0;}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机超声波测距系统
摘 要 :详细介绍了T/R40-16超声波传感器和超声波测距原理以及基于51单片机的测距原理。

以CX20106为核心实现超声波的发射与接收,采用单片机外部中断查询相应信号并实现一系列操作。

为了避开超声波从发射探头到接收探头的 “敏感时间”,采用了“延时接收”的方法。

测距结果将通过1602液晶显示出来。

关 键 词 :超声波;测距;CX20106;单片机。

0 引言 超声波(Ultrasonic waves)是指超过人的听觉范围以上(20kHz 以上)的声波[1]。

具有指向性强,能量消耗缓慢,传播距离较远等优点。

超声波测距是一种有效的非接触式测距方法,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,因此在民用和工业领域都有较为广泛的应用。

1 压电式超声波传感器原理 为了研究和利用超声波,人们已经设计和制成了一些超声波发生器。

总体上讲,可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。

目前较为常用的是电气方式的压电型超声波发生
器。

图1
压电式超声波传感器是利用压电晶体的谐振来工作的。

超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生
共振,并带动共振板振动,便产生超声波,它便是超声波发生器。

反之,当两电极间未外加电压,共振板接收到超声波时,压电晶片将做振动,致使机械能转换为电信号,这时它就成为超声波接收器了。

2 超声波测距原理 超声波测距的原理类似于雷达,利用超声波在空气中的传播速度(已知:344m/s 20氏度),测量声波在发射后经障碍物的反射并接收到回波所用的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。

如图2所示。

图2
测距的公式表示为:L=C×T 式中L 为测量的距离长度;C 为超声波在空气中的传播速度;T 为测量距离传播的时间差(T 为发射到接收时间数值的一半)。

3 硬件设计
发射电路主要由反射器74LS04和超声波发射换能器T 构成。

单片机P3.7口输出的40kHz 的方波信号一路经一级反射器后送到超声波换能器的一个电极,另一端经两级反射器后送到超声波换能器的另一个电极,
用这种推挽形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。

输出端采用两个反射器并联,这样可以提高驱动能力。

上拉电阻一方面可以提高反射器输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。

由于超声波传感器的声压能级、灵敏度在40kHz 时最大[2],电路采用集成电路CX20106A。

这是一款红外线检波接收的专
压电晶片
共振板
用芯片,常用于电视机红外遥控接收器。

考虑到红外遥控常用的载波频率38kHz与测距超声波频率40kHz 较为接近,可以利用它作为超声波检测电路。

实验证明,其具有很高的灵敏度和较强的抗干扰能力。

使用CX20106A集成电路对接收探头收到的信号进行放大、滤波,其总放大增益80db。

当CX20106A 接收到40KHz的信号时,会在第7脚产生一个低电平下降脉冲,单片机外部中断接到这个信号并采取相应动作,使测距结果在1602液晶上显示出来。

在液晶3脚为偏压信号输入端,连接一个10K顶调电阻,以调节液晶的对比度,液晶16脚为背光负极,接一个1K电阻,防止电流过大烧坏背光。

液晶的4、5、6脚分别为数据/命令选择端(RS)、读/写选择端(RW)、使能信号输入端(E)分别与单片机P1.5、P1.6、P1.7相接,以控制相应动作。

7~14脚为数据信号输入端,与单片机P0口相接,以传输数据。

4 软件设计
合理利用51单片机的两个定时器,一个用来计算超声波发射与接收的时间差,另一个用来产生40kHz的方波,外部中断0接收CX20106A 7脚产生的低电平,采取相应动作。

1602液晶的控制:
移位,功能设置,不同RAM的地址设置等功能,可以利用RS和RW来选择显示功能。

由于只是利用1602的显示功能,并且单片机的运算速度也不是非常的快,因此不需写读忙函数,只需在相应命令后做稍许延时即可,因此,读写控制位(RW)始终置0便可完成全部任务。

在写命令及数据子函数时要注意使能信号(E)变换电平之间要做相应时间的延时。

本设计显示不需要字体的移动,因此,数据指针设在0x80后即可,初始化时根据自己喜好和要求设置液晶后清屏,便可输入数据了。

当中断信号到来时,记下T0所记的时间,利用公式做一系列运算,得出结果显示出来,便是测距结果。

为了防止系统的误测,在软件上采用延时接收技术,以此提高系统的抗干扰能力[3] 当超声波从发射传感器发射出来时很容易被接收传感器收到,致使
CX20106产生一个低电平,而使单片机做中断处理,这样测距结果永远是一个固定值,而达不到测距的要求。

因此,要采用软件延时的方法,可以避开这个问题而实现测距的功能。

因为,在发射时,只是发射一段超声波,在程序上可以等待这段超声波发出后,再开启单片机的外部中断,这样只有当这段超声波返回给接收传感器时,才有中断信号。

便能够准确的测出与被测物体的距离了。

主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序等部分。

程序流程如图3所示。

5 结语
通过实验,以上设计可以实现测距,虽然测距范围不是很大,但在精度上可以达到毫米级。

采用了软件延时接收的方法,完全避开了
发射探头到接收探头的那段“敏感时间”,超声波测距目前应用非常之广泛,但在精度上还有待于提高,影响超声波测距的因素有很多,但最为主要的是温度,因此,可以在超声波测距电路中加上测温技术,使其更能精准的测出两个物体之间的距离。

参考文献:
[1] 沙占友. 集成化智传感器原理与应用. 北京:电子工业出版社
[2] 牛余朋. 基于单片机的高精度超声波测距电路. 电子世界,2005年第5期27-29 [3] 余瑞芬. 传感器原理. 北京:航空工业出版社,1995.173-177;328-331.。

相关文档
最新文档