基于 STC89C51单片机超声波测距系统的设计

合集下载

基于AT89C51单片机的超声波测距仪的设计

基于AT89C51单片机的超声波测距仪的设计
基于 AT89C51 单片机的超声波测距仪的设计
【摘要】
AT89C51 是一个低功耗, 高性能 CMOS 8 位单片机, 片内含 4k Bytes ISP(In-system programmable)的可反复擦写 10000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司 的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯 片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,AT89C51 在众多嵌入式控制应 用系统中得到广泛应用。 这次设计主要是利用 AT89C51 单片机、 HC-SR04 超声波传感器、 蜂鸣器完成测距报警系统的制作, 将 AT89C51 作为主控制芯片, 利用超声波对物体的感 应,将前方物体的距离探测出来,然后单片机处理运算,与设定的报警距离值进行比较 判断,当测得距离小于设定值时,AT89C51 发出指令控制蜂鸣器报警。 【关键词】:AT89C51 单片机、HC-SR04 超声波传感器、蜂鸣器
-3-
3.1
S 1 C V
R14
G
1
N
C
1
D
C
0
C
C
K 1
3
2
0
J
u
1
F
0.1uF
0.1uF
主控制模块
1
2
3
4
1
Y
2
1
M
V
蜂 鸣 器 报 警 模 块
C
超声波传感器 模块
C
主控制最小系统电路如图 2 所示。
P15 P14 P13 P12 P11 P10
P17
P16
P37
P36
P35

基于89C51单片机小车超声波测距毕业设计打印版

基于89C51单片机小车超声波测距毕业设计打印版

摘要89C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。

本系统以设计题目的要求为目的,采用89C51单片机为控制核心,利用超声波检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。

整个系统的电路结构简单,可靠性能高。

采用的技术主要有:(1)通过编程来控制小车的速度;(2)传感器的有效应用;(3)新型显示芯片的采用;关键词89C51单片机、光电检测器、PWM调速、电动小车Design and create an intelligence electricity motive small carAbstract89C51 is a 8 bit single chip computer.Its easily useing and multi-function suffer large users. This article introduce the CCUT graduation design with the 89C51 single chip copmuter.This design combines with scientific research object. This system regard the request of the topic, adopting 89C51 for controling core,super sonic sensor for test the hinder.It can run in a high and a low speed or stop automatically.It also can record the time ,distance and the speed or searching light and mark automatically The electric circuit construction of whole system is simple, the function is dependable. Experiment test result satisfy the request, this text emphasizes introduced the hardware system designs and the result analyse.The adoption of technique as:(1)Reduce the speed by program the engine;(2)efficient application of the sensor;(3)The adoption of the new display chip.Keywords89C51 single chip computer、light electricity detector、PWM speed adjusting目录1引言 (1)2系统的总体设计方案 (2)2.1直流调速系统的设计 (2)2.2小车检测系统的设计 (3)2.2.1行车起始、终点及光线检测 (3)2.2.2行车距离检测 (6)图2.4 行车距离检测电路 (6)2.3显示电路 (7)2.4系统原理图 (7)3 硬件设计 (8)3.1单片机89C51硬件结构 (8)3.2最小应用系统设计 (10)3.3前向通道设计 (12)3.3.1传感器的选择 (12)3.3.2单片机测距原理 (12)3.3.3超声波发射电路 (13)3.3.4 超声波检测接收电路 (13)3.3.5超声波测距仪的算法设计 (14)3.4后向通道设计 (14)3.4.1脉宽调制原理: (16)3.4.2逻辑延时环节: (17)3.4.3 电源的设计 (17)3.5显示电路设计 (17)4 软件设计 (19)4.1主程序设计 (20)4.2显示子程序设计 (23)4.3避障子程序设计 (24)4.4软件抗干扰技术 (25)4.4.1数字滤波技术: (25)4.4.2开关量的软件抗干扰技术: (25)4.4.3指令冗余技术: (26)4.4.4软件陷阱技术: (26)4.5“看门狗”技术 (27)4.6可编程逻辑器件 (28)5结论 (29)致谢 (30)参考文献 (31)附录A 程序清单 (32)附录B 硬件原理图 (40)1引言随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设一、引言本文将探讨基于89c51的超声波测距单片机课设的相关内容。

通过该课设,我们可以学习到单片机的基本原理和应用,以及超声波测距技术的实现原理和方法。

二、超声波测距原理超声波测距是一种通过发送超声波脉冲并测量其返回时间来计算距离的技术。

基于89c51的超声波测距单片机,可以通过以下步骤实现测距:1.初始化超声波模块和显示屏模块。

2.发送超声波脉冲。

3.接收超声波返回信号,并计算返回时间。

4.根据返回时间计算距离。

5.在显示屏上显示测距结果。

三、硬件设计1. 单片机选择我们选择使用89c51单片机作为控制芯片,因为它具有丰富的外设接口和较高的运算性能,适合用于控制超声波模块和显示屏。

2. 超声波模块超声波模块包括超声波发射器和接收器。

发射器用于发送超声波脉冲,接收器用于接收超声波的返回信号。

选择合适的超声波模块可以确保测距的准确性和稳定性。

3. 显示屏模块显示屏模块用于显示测距结果。

可以选择液晶显示屏或数码管等适合的显示模块。

四、软件设计1. 系统初始化在系统初始化阶段,需要对单片机的外设进行初始化设置,包括超声波模块和显示屏模块。

2. 超声波模块驱动程序超声波模块驱动程序用于控制超声波的发送和接收。

通过发送脉冲并计算返回时间,可以得到距离的测量结果。

3. 显示程序设计显示程序设计用于将测距结果显示在显示屏上。

可以通过数码管、液晶显示屏等方式实现。

五、实验步骤以下是基于89c51的超声波测距单片机课设的实验步骤:1.硬件搭建:连接89c51单片机、超声波模块和显示屏模块。

2.编写初始化程序:对单片机的外设进行初始化设置。

3.编写超声波模块驱动程序:控制超声波的发送和接收。

4.编写显示程序:将测距结果显示在显示屏上。

5.调试程序:通过实验验证程序的正确性和稳定性。

6.测距实验:将物体放置在不同距离上,进行测距实验,并记录测量结果。

7.分析实验结果:根据实验结果对课设进行评估和改进。

基于STC89C52单片机的超声波测距系统设计

基于STC89C52单片机的超声波测距系统设计

基于STC89C52单片机的超声波测距系统设计吴恩仪,陈凌君(福建农林大学,福建 福州 350000)摘 要:近年来,随着科技的不断发展,出现了很多新技术,在测距方面,有红外测距、超声波测距、激光测距等技术。

笔者以单片机作为处理器,以超声波接收模块作为距离传感器,设计了一个基于超声波的测距系统,可以实时显示所测的距离,并进行语音播报。

该系统结构简单,体积较小,便于使用。

文章从引言、硬件设计、软件设计等方面详细地介绍了该测距系统,说明了超声波测距的广阔前景。

关键词:超声波测距;语音播报;单片机中图分类号:TM383.6 文献标志码:A 文章编号:1672-3872(2020)06-0124-01——————————————作者简介: 吴恩仪(1999—),女,福建福州人,本科,研究方向:车辆工程。

在日常生活中,常有车辆倒车不当发生事故的情况。

超声波测距不易受环境的干扰,具有体积小、处理信息简单可靠、且易于集成的优点,为解决上述问题提供了一个良好的解决方案。

基于以上理念,文章设计的超声波测距系统是在一定的量程范围内,出现障碍物时,通过超声波模块测量出距离,同时显示在LCD 屏幕上,由语音模块播报距离并播报是否在量程内,在超出量程范围时,蜂鸣器和LED 灯也会进行声光报警,基本满足使用所需要求[1]。

1 系统整体构建该系统由超声波模块、按键模块、语音模块、LCD1602液晶显示模块、声光报警模块以及STC89C52单片机、电源、复位电路、晶振电路等组成的单片机最小系统等构成。

2 系统硬件设计2.1 单片机最小系统单片机最小系统由电源、STC89C52单片机、复位电路、晶振电路构成。

该单片机系统的工作电压为4.5~5.5V,所以通常使用USB 电源线连接电脑或者使用移动电源给系统供电。

在STC89C52单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接晶振,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。

基于STC89C51单片机超声波测距系统的设计

基于STC89C51单片机超声波测距系统的设计

基于STC89C51单片机超声波测距系统的设计
张波;王朋亮
【期刊名称】《机床与液压》
【年(卷),期】2010(38)18
【摘要】介绍超声波测距原理和基于STC89C51单片机的超声波测距系统的组成、硬件结构和软件构成.从实验情况来看,该系统可靠性好、精度高.在设计中兼顾系统性能和器件成本的关系,降低整套系统的成本.
【总页数】3页(P56-58)
【作者】张波;王朋亮
【作者单位】大连工业大学机械工程与自动化学院,辽宁大连,116034;大连工业大
学机械工程与自动化学院,辽宁大连,116034
【正文语种】中文
【中图分类】TP216+.1
【相关文献】
1.基于STC89C51单片机的超声波测距系统设计与实现 [J], 郭蓉;廖娜;郭丽
2.基于STC89C51单片机的房间自动除湿系统设计 [J], 孙威;魏立明
3.基于STC89C51单片机的房间自动除湿系统设计 [J], 孙威;魏立明
4.基于STC89C51单片机的房间自动除湿系统设计 [J], 孙威;魏立明
5.基于STC89C51单片机的乡村家用智能台灯系统设计 [J], 李玲;郭泓序;田真子因版权原因,仅展示原文概要,查看原文内容请购买。

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

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

基于51单片机超声波测距仪基于51单片机的超声波测距仪设计摘要利用超声波进行测距有许多优点比如不受光强度、色彩和电磁场等外界因素的影响,而且超声波传感器的价位较低、结构也较为简单,超声波以声速传播,方便收发与计算。

在汽车倒车雷达、移动机器人的避障、特别是测量距离等许多方面都已有了非常普遍的应用。

本次毕业设计的超声波测距仪是在STC89C51单片机的基础上设计的,在分析和了解了超声波的一些优点和特性后,又查看了利用超声波测距的基本原理。

最后决定使用51单片机系统和超声波传感器共同组成。

设计的超声波测距仪的硬件部分主要包括电源及复位模块、单片机与超声波模块组成的超声波发射模块、超声波接收模块、LED数码显示模块和扩展报警模块。

软件部分主要包括单片机主程序、根据超声波发射与接收计算距离程序、LED距离显示程序、按键控制程序和蜂鸣器报警程序,这样安排使得系统具有模块化的特点。

系统容易进行控制,具有可靠地的性能,具有较高的测量精度,最重要的是能对距离进行实时测量。

关键词:单片机,测距仪,超声波,实时测量Design of Ultrasonic Distance Meter Based on 51 MCMABSTRACTUsing ultrasonic ranging has many advantages for example, from the effects of light intensity, color and electromagnetic field and other external factors and price lower ultrasonic sensors, the structure is simple, ultrasonic sounds velocity, convenient transceiver and calculation. In the car reverse radar, mobile robot obstacle avoidance, especially measuring distance and many other aspects have been very common application.The graduation design of ultrasonic range finder based on STC89C51 MCU design, analysis and understanding of the some advantages and characteristics of ultrasonic and looked at the use of the basic principle of ultrasonic distance measurement. Finally, the composition of the 51 single-chip microcomputer system and ultrasonic sensor is decided.. The design of ultrasonic rangefinder hardware part consists of the power and reset module, SCM and ultrasonic module consists of ultrasonic emission module, ultrasonic receiving module, LED digital display expansion module and alarm module. Software part mainly includes MCU program, according to the ultrasonic transmitting and receiving computing program distance, the distance of LED display program, key control procedures and buzzer alarm procedures, this arrangement enables the system to have the characteristics of modular. The system is easy to control and has the reliable performance, and has the higher accuracy, and the most important is the real-time measurement of the distance.KEY WORDS: Single chip microcomputer,Range finder,Ultrasonic,Real-time measurement目录摘要 (I)目录 (III)第1章绪论 (1)1.1 研究背景 (1)1.2 研究的主要意义 (1)第2章系统电路设计 (3)2.1 系统结构设计 (3)2.2 电路总体设计方案 (3)2.2.1 发射与接收电路设计方案 (3)2.2.2 显示电路设计方案 (5)2.2.3 报警电路设计方案 (6)2.2.4 系统复位电路设计 (6)第3章系统硬件设计 (8)3.1 单片机概述 (8)3.1.1 STC89C51主要性能 (8)3.1.2 STC89C51外部结构及特性 (8)3.1.3 STC89C51内部组成 (11)3.2 超声波测距模块 (12)3.2.1 超声波传感器介绍 (12)3.2.2HC-SR04超声波测距芯片的性能特点 (12)3.2.3 超声波时序图 (15)3.3 驱动显示电路及报警电路 (15)3.3.1LED数码管显示电路 (16)3.3.2 蜂鸣器报警电路 (17)3.4HC-RS04超声波测距原理 (17)3.5 按键设置电路 (18)第4章系统软件设计 (21)4.1 系统主程序 (21)4.2 显示距离子程序 (22)4.3 报警子程序 (22)4.4 按键子程序 (23)第5章系统仿真 (25)5.1 系统仿真环境——Proteus (25)5.2 仿真 (25)5.3 误差及特性分析 (26)结论 (28)谢辞 (29)参考文献 (30)第1章绪论1.1 研究背景超声波测距法是通过超声波测量从已知位置到被测物体表面的距离的利用超声波的方法。

基于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.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设
超声波测距技术是一种常见的测距方法,它利用超声波在空气中传播的速度和时间差来计算距离。

在单片机课设中,我们可以利用89c51单片机和超声波传感器来实现一个简单的超声波测距系统。

我们需要了解超声波测距的原理。

超声波传感器会发出一定频率的超声波信号,当这些信号遇到障碍物时,会被反射回来。

通过测量超声波信号的发射和接收时间差,我们可以计算出障碍物与传感器之间的距离。

接下来,我们需要准备一些材料和工具。

除了89c51单片机和超声波传感器外,还需要一块面包板、杜邦线、电容、电阻等元件。

我们可以根据电路图将这些元件连接起来,构建一个简单的超声波测距电路。

在编写程序时,我们需要先初始化串口和定时器,然后设置超声波传感器的引脚和中断。

当传感器发出超声波信号时,我们需要启动定时器并等待接收到反射信号。

当接收到反射信号后,我们可以通过计算时间差来计算距离,并将距离值通过串口输出。

我们需要进行实验验证。

将超声波传感器放置在一定距离内的障碍物前面,启动程序并观察串口输出的距离值。

通过比较实际距离和测量距离,我们可以验证超声波测距系统的准确性和稳定性。

基于89c51的超声波测距单片机课设是一项有趣的实践项目,它可以帮助我们深入了解超声波测距技术和单片机编程。

通过不断的实验和改进,我们可以进一步提高系统的性能和可靠性,为未来的科研和工程应用打下坚实的基础。

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

基于 STC89C51单片机超声波测距系统的设计一、设计任务1.1设计前景超声波技术在日常生活中有着广泛的应用, 例如探伤技术、清洗技术、测距技术等等。

超声波测距多应用于汽车倒车雷达、建筑工地以及一些工业现场的位置监控如液位、井深的测量等场合。

国内的超声波测量主要集中在对0~10 m 固体和液体的测量,一般测量精度高,回波稳定。

由于高精度的超声波测距仪所采用的专业集成电路成本较高,以价格比较低廉的 STC89C51 单片机为核心设计一款具有低成本、高精度、具有动态显示等优点的超声波测距系统。

该系统测量距离0127~4100 m,测量精度为1cm。

同时给出了其硬件电路和软件设计方法。

实际使用表明该仪器工作稳定。

1.2超声波测距原理超声波发生器内有一个共振板和两个压电晶片,当它的外加脉冲信号频率等于压电晶片的固有频率时,压电晶片会产生共振,并带动共振板一起振动,这样就产生了超声波。

在电路中,发射端输出的脉冲是一系列方波,其宽度称为发射超声波的时间间隔,被测物距离越大,其脉冲宽度就越大,输出脉冲个数与被测物距离成正比。

T mier寄存器对 P110口的高、低电平分别进行 12 L s的延时, 实现从 P110口输出周期为24 Ls的方波信号。

当单片机控制超声波发生器向某一方向发射超声波波束,在发射时刻的同时,单片机内部定时器开始计时。

在传播过程中,超声波遇障碍物(被测物)后反射回波,超声波接收器接收到第一个反射波后,定时器停止计时。

定时器所计的数据就是超声波所经历的时间,通过公式换算就可以得到传感器与障碍物之间的距离。

由于超声波的声速和温度有关,如果温度变化不是很大,认为声速基本不变。

如果测距精度要求很高,那么可以通过温度补偿的方法来加以校正。

不同温度下超声波在空气中的传播速度随温度变化关系:v = 33114+0161T 其中, T为实际温度; v的单位为 m /s。

表 1 声速与温度的关系测距的公式为: L= v×▽t,其中, L为测量的距离长度; v为超声波在空气中的传播速度; ▽t为发射到接收所用时间的一半,由单片机的定时功能实现对超声波信号的准确计时。

二、元器件清单三、设计过程3.1硬件设计超声波测距仪硬件部分主要由超声波信号接收电路、超声波发射电路、显示电路、单片机外围电等组成。

采用STC89C51 实现对CX20106A 红外接收芯片和 TCT40-10系列超声波转换模块的控制,同时加了MAX232芯片,它和外围电路组成了RS232-TTL电平转换电路, 它是串口 ISP下载电路,可以通过串口ISP在线下载程序。

图1超声波测距仪系统设计框图3.2 STC89C51控制器单元STC89C5控制器单元包括STC89C51、振荡电路、复位电路。

振荡电路使用12 MH z高精度晶振,振荡电容选择30 pF小瓷片电容;复位电路使用 RC电路,使用普通的电解电容与金属膜电阻即可。

STC89C51可以代替AT89C 51,其功能更强、速度更快、寿命更长、价格更低,可以完成ISP在线编程功能,可以在程序中修改,断电不丢失,还增加了两级中断优先级。

3.3超声波发射电路超声波在空气中传播功率及精度与频率成正比,比较和分析几个常用超声波频率的特点,最终选取频率为40 kH z。

为了便于超声波的发射与接收, 超声波发射探头采用共振频率为40 kH z的 TCT40-16探头,接收探头采用 RCT40-16。

超声波发射电路主要由超声波换能器和反相74LS04 图2 超声波发射电路构成,单片机P110端口输出40kH z间断方波,此时定时器开始计时,信号经两路反相器送到超声波换能器的两个电极,可以提高超声波的发射强度。

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

电阻 R1、R2可以增加超声波换能器的阻尼效果,这样可以缩短振荡时间,提高74LS04输出高电平的驱动能力。

3.4超声波接收电路超声波接收电路采用SONY公司的CX20106A集成电路,对接收探头收到的信号进行放大、滤波。

它是一款红外线检波接收的专用芯片,有较强的抗干扰性和灵敏度。

管脚1是超声波信号输入端,其输入阻抗约为40kΩ;管脚2的C2、R3决定接收换能器的总增益,增大电阻R或者减小C,将使放大倍数下降,负反馈量增大,电容C的改变会影响到频率特性,实际使用中一般不改动,推荐选择参数R =4178, 图3 超声波接收电路C= 313 LF;管脚3与GND之间连接检波电容,考虑到检波输出的脉冲宽度变动大,推荐参数313LF;管脚 5上的连接电阻R4用以设置带通滤波器的中心频率,阻值越大,中心频率越低,取R=200 k8时,中心频率约为42 kH z;管脚6与GND 之间接入一个积分电容,标准值为30 pF,如果该电容取得太大,会使探测距离变短;管脚 7是遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻到电源端,该电阻推荐阻值为R5 =220 kΩ,没有接收信号时该端输出为高电平有信号时则会下降;管脚 8接电源正极,4.5~5 V。

3.5单片机外围电路该系统单片机外围电路如图 4所示,有温度补偿电路、串口ISP下载电路。

采用3脚PR235封装的数字温度传感器 DS18B20对环境温度进行检测,从而对超声波的传播速度进行温度补偿,提高测量精度。

两个按键用于控制测量的开始与停止以及距离与温度显示的切换。

其特点如下:硬件接口简单,性能稳定,单线接口, 仅需一根接口线与 MCU 连接无需外围元件; 由总线提供电源; 测温范围为- 55~75 e;精度为015e;9位温度读数;A/D变换时间为200 ms。

图4 STC89C51及其外围电路3.6显示电路为了节约成本, 该系统用 4位数码管显示, 显示电路采用简单实用的 4位共阳 LED 数码管来显示测距离, 采用单片机动态扫描显示。

段码用74LS245驱动, 位码用 PNP三极管 VT1、 VT2、 VT3、 VT4驱动。

图5 显示电路3.7软件设计该系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、温度检测子程序、显示子程序等模块组成。

主程序完成初始化后调用发射子程序, 由 P110口发射脉冲,驱动超声波传感器发射超声波,并关外部中断,计数器T0开始计时。

为防止虚假回波的干扰,在延时一段时间后,开中断。

当有外部中断信号时,单片机就停止T0的计时,计算出渡越时间t并存储E2PROM中;然后调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速v,存储到E2PROM中,单片机再调用计算子程序,计算出传感器到目标物体之间的距离,最后把测量果存储并通过数码管电路显示出来,完成一次测量。

该系统的主程序采用键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。

设计中,超声波发射探头和接收探头距离较近,当发射探头发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收探头上,这部分信号是无用的,会引起系统误测。

设计中采用延时技术来解决这个问题,并设定延时时间为1 ms, 即在发射极发射超声波 1ms内,通过软件关闭所有中断,接收电路对此期间接收到的任何信号不予理睬, 1 ms后立即启动T0,这时接收到的信号才有效,并在接收到回波信号的同时,T0停。

此时T0所记录的CPU发送脉冲信号的前沿到回波脉冲信号之间的时间才是需要的,因此系统存在测量盲区。

图6主程序流程图四、总结通过设计的超声波测距系统具有结构简单、功耗低、易于操作、灵活性高、成本低的特点,还具有操作方便、运行可靠的优点,它有良好的人机界面,能方便地实时显示测距数据。

实际制作中加入 DSl8820温度检测集成电路会使测量更加精确。

采用CX20106A 芯片用于检波放大,减少了电路之间的互相干扰,减小了电噪声。

该系统可广泛应用于倒车雷达、机器人检测以及物位测量领域。

【参考文献】[1] 胡萍.超声波测距仪的研制.计算机与现代化,2003.10[2] 时德刚,刘哗.超声波测距的研究.计算机测量与控制,2002.10[3] 华兵.MCS-51单片机原理应用.武汉华中科技大学出版社,2002.5[4] 陈光东.单片机微型计算机原理与接口技术(第二版).华中理工大学出版社,1999.4[5] 苏长赞.红外线与超声波遥控.人民邮电出版社,1993.7[6] 胜全.D18B20数字温度计在微机温度采集系统中的序编制.南京大学出版社,1998. 3附录:程序清单#INCLUDE <REG2051.H>#DEFINE K1 P3_4#DEFINE CSBOUT P3_5 //超声波发送#DEFINE CSBINT P3_7 //超声波接收#DEFINE CSBC=0.034 #DEFINE BG P3_3UNSIGNED CHAR CSBDS,OPTO,DIGIT,BUFFER[3],XM1,XM2,XM0,KEY,JPJS;//显示标识UNSIGNED CHARCONVERT[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};//0~9 段码UNSIGNED INT S,T,I, XX,J,SJ1,SJ2,SJ3,MQS,SX1;BIT CL;VOID CSBCJ();VOID DELAY(J); //延时函数VOID SCANLED(); //显示函数VOID TIMETOBUFFER(); //显示转换函数VOID KEYSCAN();VOID K1CL();VOID K2CL();VOID K3CL();VOID K4CL();VOID OFFMSD();VOID MAIN() //主函数{EA=1; //开中断TMOD=0X11; //设定时器0为计数,设定时器1 定时ET0=1; //定时器0 中断允许ET1=1; //定时器1 中断允许TH0=0X00;TL0=0X00;TH1=0X9E;TL1=0X57;CSBDS=0;CSBINT=1;CSBOUT=1;CL=0;ŌPTO=0XFF;JPJS=0;SJ1=45;SJ2=200;SJ3=400;K4CL();TR1=1;WHILE(1){KEYSCAN();IF(JPJS<1){CSBCJ();IF(S>SJ3){BUFFER[2]=0X76;BUFFER[1]=0X76;BUFFER[0]=0X76;}ELSE IF(S<SJ1){BUFFER[2]=0X40;BUFFER[1]=0X40;BUFFER[0]=0X40;}ELSE TIMETOBUFFER();}ELSE TIMETOBUFFER(); //将值转换成LED 段码OFFMSD();SCANLED(); //显示函数IF(S<SJ2)BG=0;BG=1;}}VOID SCANLED() //显示功能模块{DIGIT=0X04;FOR( I=0; I<3; I++) //3 位数显示{P3=~DIGIT&OPTO; //依次显示各位数P1=~BUFFER; //显示数据送P1口DELAY(20); //延时处理P1=0XFF; //P1 口置高电平(关闭)IF((P3&0X10)==0) //判断3 位是否显示完KEY=0;DIGIT>>=1; //循环右移1 位}}VOID TIMETOBUFFER() //转换段码功能模块{XM0=S/100;XM1=(S-100*XM0)/10;XM2=S-100*XM0-10*XM1;BUFFER[2]=CONVERT[XM2];BUFFER[1]=CONVERT[XM1];BUFFER[0]=CONVERT[XM0];}VOID DELAY(I){WHILE(--I);}VOID TIMER1INT (VOID) INTERRUPT 3 USING 2 {TH1=0X9E;TL1=0X57;CSBDS++;IF(CSBDS>=40){CSBDS=0; CL=1;}}VOID CSBCJ(){IF(CL==1){TR1=0;TH0=0X00;TL0=0X00;I=10;WHILE(I--){CSBOUT=!CSBOUT;}TR0=1;I=MQS; //盲区WHILE(I--){}I=0;WHILE(CSBINT){I++;IF(I>=2450) //上限值CSBINT=0;}TR0=0;TH1=0X9E;TL1=0X57;T=TH0;T=T*256+TL0;S=T*CSBC/2;TR1=1; CL=0;}}VOID KEYSCAN() //健盘处理函数{XX=0;IF(K1!=1) // 判断开关是否按下{DELAY(400); //延时去抖动IF(K1!=1) // 判断开关是否按下{WHILE(!K1){DELAY(30);XX++;}IF(XX>2000){JPJS++;IF(JPJS>4)JPJS=0;}XX=0;SWITCH(JPJS){CASE 1: K1CL();BREAK;CASE 2: K2CL();BREAK;CASE 3: K3CL();BREAK;CASE 4: K4CL();BREAK;}}}}VOID K1CL(){SJ1=SJ1+5;IF(SJ1>100)SJ1=30; S=SJ1;}VOID K2CL(){SJ2=SJ2+5;IF(SJ2>500)SJ2=40;S=SJ2;}VOID K3CL(){SJ3=SJ3+10;IF(SJ3>500)SJ3=100;S=SJ3;}VOID K4CL(){SX1=SJ1-1;SX1=SX1/CSBC;MQS=SX1/4.5;}VOID OFFMSD(){IF (BUFFER[0] == 0X3F)BUFFER[0] = 0X00;}。

相关文档
最新文档