1、 摘 要 本文采用以单片机为核心成本,高精度,显示超声测距仪的硬件电路和软件设计方法。各探头的信号经单片机综合分析处理,实现超声测距的各种功能。经实验表明,这套系统软件,硬件都设计合理,抗干扰能力强,实时性良好。 关键词 : 51, 单片机 , 超声波 , 测距 ABSTRACT At the core of the desing using low-cost,high accuracy,Micro figures show that the ultrasonic range finder hardware and software design methods.SCM comprchensi
2、ve analysis of the probe signel processing,and the ultrasonic range finder function.The research has led to the discovery that the softuare and nardware designing. KEY WORDS: 51,low-cost,uitrasonic,destance measure 目录 一 前言 .1 1. 研究背景 .1 2. 国内外研究情况 .1 3. 本文主要内容及安排 .2 二 控制系统主要硬件介绍 .2 1. 单片机 STC89C52 的
3、选型 .2 ( 1) STC89C52 介绍 .2 ( 2) STC89C52 引脚介绍 .3 2. 超声波测距模块选型 .5 ( 1) HC-SR04 介绍 .5 3. 显示器件的选型 .6 ( 1) 数码管的选型 .6 三 硬件电路设计 .8 1. 单片机最小系统的设计 .8 2. 超声波测距显示电路系统设计 .9 3. 超声 波系统设计 . 10 四 系统软件设计 . 10 1.流程图 . 10 2. 单片机测距程序 . 11 五 实物性能测试 . 15 1.单片机测试 . 15 2 程序调试 . 15 六 编程和下载软件的介绍 . 16 1. Keil 的简介 . 16 2.Altiu
4、m Designer 6.0 的简介 . 23 3. STC_ISP_V480 的简介 . 25 七 总结与展望 . 27 参 考 文 献 . 28 致 谢 . 29 1 一 前言 1. 研究背景 随着科技的迅猛发展越来越多的科技成果被广泛的运用到人们的日常生活当中 ,给我们的生活带来了诸多方便。本设计就是本着这个宗旨出发 ,利用超声波的特性来为我们服务。 声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这 便是声波。 超声波是指振动频率大于 20000Hz以上的 ,其每
5、秒的振动次数(频率)甚高,超出了人耳听觉的上限( 20000Hz),人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。超声波测距由于其能进行非接触测量和相对较高的精度,越来越被人们所 重视。超声波测量技术利用回波测距原理,技术发展已经成熟,应用也积累了很多经验。 超声波测距仪,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位
6、置监控,也可用于液位、井深、管道长度的测量等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时监控,并且在测量精度方面能达到工业实用的要求。 随着科学技术的快速发展,超声波在测距仪中的应用越来越广。展望未来,超声波测距仪作为一种非常重要的工具在各方面都将有很大的发展空间,它将朝着更加高精度的方向发展,以满足日益发展的社会需求。 2. 国内外研究 情况 国内超声波技术现已日趋成熟,稳定度也相当高,适合大部分环境下使用;应用领域 。 包括:测距、避障、机器人定位、曲面仿真等。虽然如此,但也存在一些急待攻克的问题,主要包括:测量精度的级别有待提高,测量距离不够远,普遍只有 10米之内,最
7、远也只有几十米;一些高精度或远距离的产品的电路复杂,成本较高;依然存在一定距离的育盲区等等;这些问题限制了超声波的应用。 2 针对上述存在的问题,国内外的相关人员进行了 努力的攻关。 研究主要集中在以下几个方面:超声波回波处理、新型换能器研发、发射脉冲选取等等,并且针对超声测距仪器的常 见影响因素提出了温度补偿、接收回路串入自动增益调节环节等提高超声波测距精度的措施。目前在国内的研究成果主要有:超声波回波处理方面,最小均方自适应时延估计算法;一体化换能器;专用脉冲发生器;采用功率驱动芯片和升压变压器等,还通过超声波测距仪专用集成电路通过分析超声波测距误差产生的原因,来提高测量时间差到微秒级,以
8、及用温度传感器来进行声波传播速度的补偿后,其高精度超声波测距仪也可以达到毫米级的测量精度。这些新的技术都大大提高了超声波 测距的精度和距离。国内的超声波测量品牌有古大,飞鹰,百特等。他们的技术在国内应 该处于领先地位,但是低端的很多。而在国外,超声测量技术也有迅速发展。国外西门 子, HAWK的产品比较齐全,质量比较稳定。 3. 本文主要内容及安排 本文主要内容是对 超声波测距系统的分析 。 本文的安排为:第 1 章是研究背景的介绍;第 2 章是对 控制系统主要硬件 的介绍,包括 单片机 、 超声波模块、数码管 ;第 3 章是介绍 硬件电路设计 ;第 4 章是介绍 系统 软件 设计 ;第 5
9、章是 介绍 实物性能测试 ; 第 6章 编程和下载软件; 第 7 章是总结与未来展望。 二 控制系统主要硬件介绍 1.单片机 STC89C52 的选型 ( 1) STC89C52 介绍 STC89C52是由深圳宏晶科技公司生产的与工业标准 MCS-51指令集和输出管脚相兼容的单片机。 STC89C52是一种低功耗、高性能 CMOS8位微控制器,具有 8K 在系统可编程 Flash 存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节 Flash, 512字节 RAM,
10、 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM, MAX810复位电路, 2个 16 位 定时器 /计数器,一个 6向量 2级中断结构,全双工串行口。另外 , STC89X52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作停止,3 直到下一个中断或硬件复位为止。最高运作频率 35MHz, 6T/12T可选。 其 PDIP封装如图 2-1所示。 图 2-1 STC89C52 PDIP 封装图 ( 2) STC89C
11、52 引脚介绍 管脚说明: VCC: 供电电压。 GND: 接地。 P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为 数据 /地址的第八位。在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下
12、拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时, P1 口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口 被写 “1” 时,其管脚被内部上拉电阻拉高,且作为输入。4 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。在给出地址 “1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的
13、内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。当 P3 口写入 “1” 后,它们被 内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3
14、.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接 收一些控制信号。 RST: 复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止
15、ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /PSEN有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 EA/VPP: 当 /EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。在
16、FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP) 。 XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2: 来自反向振荡器的输出。 5 2. 超声波测距模块 选型 ( 1) HC-SR04 介绍 HC-SR04 超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。 基本工作原理: (1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信呈。 (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出
17、一个高电平,高电平持续的时 间就是超声 波从发射到返回的时间。测试距离 =(高电平时间 *声速 (340M/S)/2; 超声波电气参数: 电气参数 HC-SR04 超声波模块 工作电压 DC5V 工作电流 15mA 工作频率 40kHz 最远射程 4m 最近射程 2cm 测量角度 15 度 输入触发信号 10uS 的 TTL 脉冲 输出回响信号 输出 TTL 电平信号,与射程 规格尺寸 45*20*15mm 超声波时序图如图 2-2 所示: 图 2-2 超声波时序图 以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模 块内部将 发出 86 个 40kHz 周期电平并检测回波。一旦
18、检测到有回波信号则输出回响信号。 回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。公式: uS/58=厘米或者 uS/148=英寸;或是:距离 = 高电平时间 *声速( 340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对 回响信号的影响。 3. 显示器件的选型 ( 1) 数码管的选型 led 数码管( LED Segment Displays)是由多个发光二极管封装在一起组成 “8”字型的器件,引线已在内部连 接完成,只需引出它们的各个笔划,公共电极。 led 数码管常用段数一般为 7 段有的另加一个小数点,还有一种是类似于
19、3 位 “+1”型。位数有半位, 1, 2, 3, 4, 5, 6, 8, 10 位等等, led数码管根据 LED 的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图 2-3 是共阴和共阳极数码管的 引脚图 ,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。 led 数码管广泛用于仪表,时钟,车站,家电等场合。选用时 要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用 LED 数码管内部引脚图片 10 引脚的 LED 数码管 。图 2-4 为常用的 LED 图
20、2-3 LED 数码管引脚图 图 2-4 常用 LED 数码管 图 2-3 每一笔划都是对应一个字母表示 DP 是小数点 . LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据 LED 数码管的驱动方式的不同,可以分为静态式和动态式两类。 1) 静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 埠进行驱动,或者使用如 BCD 码二 -十进位 寄存器 进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点7 是占用 I/O 口 多,如驱动 5 个数码管静态显示则需要 58=40 根 I/O 口 来驱动,要
21、知道 一个 89S51 单片机可用的 I/O 口 才 32 个呢。故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。 2) 动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8 个显示笔划 “a,b,c,d,e,f,g,dp “的同名端连在一起,另外为每个数码管的公共极 COM 增加位元选通控制电路,位元选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通 COM 端电路的控制,所以我们只要将 需要显示的数码管的选通控制打开,该位元就显示出字形,
22、没有选通的数码管就不会亮。 透过分时轮流控制各个 LED 数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为 1 2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 口 ,而且功耗更低。 下面介绍 四位七段数码管引脚图 , 内部的四个 数码管 共用 adp 这 8 根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上 adp,共有 12 个引脚, 图 2-5 是一个共阴的四位数码管的内部结构图 ,图 2-6 为四位 共阳 数码管 。引脚排列依然是从左下角的那个脚( 1脚)开始,以逆时针方向依次为 112 脚,下图中的数字与之一一对应。 图 2-5 四位共阴数码管 图 2-6 四位共阳数码管 其中, 6,8,9,12,引脚是四位数码管的四个公共端,控制着四个关键,就可以控制数码管的关断和导通。