1、 课程设计报告题 目 超声波测距系统设计 课 程 名 称 单片机原理及应用 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 12 电气工程及其自动化(单) 学 生 姓 名 学 号 课程设计地点 工科楼 C304 课程设计学时 20 指 导 教 师 金陵科技学院教务处制成绩1目 录一 、概述31.1 课程设计应达到的目的41.2 超声波测距系统设计4二、总体设计方案及说明42.1 系统总体设计思路42.2 系统总体设计框图5三、系统硬件电路设计53.1 单片机的最小系统63.1.1AT89C51 单片机的功能与特点63.2 系统原理分析63.2.1 超声波测距原理63.3 超声
2、波传感器检测电路63.3.1 超声波检测电路图73.3.2 超声波发生及感应过程73.4 超声波测距接收73.4.1 HC-SR04 模块73.4.2 T40、R40 超声波传感装置介绍7 3.5 SCM1602 显示模块9四 、系统软件部分设计114.1 软件流程图114.1.1 主程序流程图114.1.2 超声波发生子程序114.2 系统源程序12五、系统仿真过程与结果135.1 Proteus 仿真软件145.2 仿真编译过程145.3 仿真效果图152六 、实物展示166.1 实物元件与过程166.2 实物运行与调试156.3 实物总结15七、总结18八 、参考文献19附录,原理图20
3、3摘 要本设计采用了 AT89C51 作为中心处理器,HC-SR04 模块进行超声波方面的发生与感应。然后介绍了总体的系统设计框图、思路及元件选型。接下来,分硬件和软件两部分进行了设计的分析。硬件方面首先构建了一单片机最小系统,然后集成各芯片完成设计。软件方面通过外部中断,定时器中断等完成开发的子程序的调用。最后重点详细地讲述了关于超声波模块的电路及收发过程。最后进行了系统仿真,仿真结果表明,所设计的系统能够满足要求。本系统具有成本低,可靠性高和安全实用等特点,广泛应用于社会生活的各个领域。关键词:AT89C51 单片机;超声波模块;最小系统4一、概述1.1 课程设计应达到的目的通过本课程设计
4、,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(I/O)接口技术,应用程序设计技术,并能结合专业设计简单实用的单片机应用系统。针对课堂重点讲授内容使学生加深对单片机硬件原理的理解及提高 C51 语言程序设计的能力,为以后的毕业设计搭建了单片机系统应用平台,提高学生的开发创新能力。1.2 超声波测距系统设计设计一个基于单片机的超声波测距系统,要求:(1)系统功能:测距范围:3cm-450cm,通过 LCD1602 显示距离。(2)给出系统设计方案,画出硬件连线图,并说明工作原理;(3)画出程序框图并编写程序。二
5、、系统总体方案设计2.1 系统总体设计思路本设计的构建是基于 89C51 单片机外围芯片的超声信号检测的。超声波发生模块送出片刻的 40KHz 的矩形波信号,遇物体反射后,被超声波接收模块接收并作为本设计的Input,单片机对此信号进行判断加工处理后,把计算出的距离结果传到 LCD 显示屏上,当检测距离小于预设值时报警模块工作。本设计的硬件部分主要由 AT89C51 单片机控制模块、超声波发出和接收模块、预警模块以及 LCD 显示模块等几部分组成。系统的总体结构设计框图如图 1.1 所示。本设计的软件部分由 C 语言编写,程序采用模块化设计思想,将各功能单独程序化成子程序块并进行 debug,
6、在完成主程序段的编写和子程序的调用。系统软件部分主要include 主程序段、delay子程序块、超声波发生与感应子程序块等。2.2 系统总体设计框图本设计采用 AT89C51 为控制核心,由电源电路、单片机外围电路、发射电路、接收电路、显示电路、报警电路等部分组成,系统设计框图如图 1.1 所示。其主要需完成任5务是对传感器到障碍物中间的距离的测量及对测出距离的显示以及小于预设值时的报警。单片机发射电路接收电路显示电路报警电路超声波发射换能器超声波接收换能器障碍物图 1.1 系统总体设计框图三、系统硬件部分设计3.1 单片机最小系统单片机最小系统:能让单片机 regular work 的最小
7、硬件单元系统,如图 3.4 所示。一般具有:复位 circuit;时钟震荡 circuit。此外,ISP 下载口也 belong 单片机最小系统。复位电路如图 2.2 所示。图 2.2 复位电路图复位电路可将系统重置至一个已知的状态。从单片机内部来看,复位电路工作后,CPU 将一些厂商早先设定的数载入至寄存器。该电路的 principle 是将 Capacitance 与 Resistance 接至复位引脚 RST,组成Power on reset 的功能。当 Reset level 持续两个 machine cycle 以上时,reset 有效。具体数值需由 RC 电路计算出 time co
8、nstant t=RC1(t10ms)。复位电路包括 Reset button 和 Power on reset。6(1)Reset button:并联一开关在复位电容上。按下开关,电容释放之前的电量,同时,复位引脚电压的拉高完成 Reset。(2)Power on reset:在 RST 上外接一个 RC 充放电导电回路,即加入一个电容(一般为 10uF)串联至电源+5v,再加入一个电阻器(一般为 10K)串联至保护地。此外,要保证 Reset 成功,需使上电时复位引脚有足够时间的 high level。振荡电路如图 2.3 所示。图 2.3 振荡电路图振荡电路也叫做晶振电路,任务是为 CP
9、U 设定时钟频率。单片机运行所有语句的时间都由时钟频率决定。clock frequency 越高,CPU 运行越快。单片机一般从外部接入时钟频率,典型的 clock frequency 有 11.0592MHz/12MHz。单片机通常共用一个晶体振荡器来满足各部分同步运行。具体振荡器经常与锁相环回路一起工作,以方便为系统提供 clock frequency。图 2.4单片机最小系统3.1.1 AT89C51 单片机的功能与特点AT89C51 是一种具有 low voltage、low power consumption 且 high-performance等优点的八位单片机。其内部的芯片包含了
10、一个 8 位微处理器、一个二百五十六字节数据存储器及一个四千字节程序存储器。CMOS 工艺与 UNRAM 技术在 AT89C51 的制作过程中7被使用,且它的指令集合和输出引脚都与早期美国 INTECo.于 1980 年研制的 MCS-51 单片机相兼容。AT89C51 因将闪存与 8 位 CPU 结合在一个芯片中而成为一款高性能单片机,89LV51 是它的一个低电压版本。AT89C51 单片机已成为一种灵活性高、功能强且价格实惠并在各种控制领域被普遍运用的方案。外型及管脚排列如图所示。功能概述AT89C51 含满足国标的功能:片内振荡器及时钟发生电路、4KB 程序存储器 Flash ROM(
11、保留表格、数据及程序)、256B 数据存储器 RAM/SFR(保留可以READ/WRITE 的数据)、两个 16 位定时/ 计数器、四个 8 位 I/O 口线、一个五中断源二优先级中断系统、一个双向信号传输 UART 串行通信 口。而且,AT89C51 可以执行静态逻辑操作,此时最低的工作频率可为 0Hz,并有两种省电运行模式可供软件运行。Idle Mode 可将 CPU 处于停止运行状态,但允许中断控制系统、串行通讯口、定时/计数器以及随机存取存储器持续运行。Power Mode 直到下一次硬件复位都会停止运行振荡器并且不允许其它所有部件运行但会保留片内随机存取存储器中的数据。 AT89CA
12、51 引脚功能说明VCC:供电电压。GND:接地。P0 端:P0 端为一组 8 位 Open Drain 型双向 input/output 端,也即地址/总线复位端。每端能驱动 8 位 TTL 逻辑门。当 P0 端被置为 1 时,其变便成为高阻抗输入端。P0 端可被外部程序 DATA 存储器使用,此时,其被当作 DATA/ADDRESS 的低八位使用。在闪存(Flash)进行 program 工作时,P0 端输入命令,当闪存(Flash)运行 check 任务时,P0 端输出命令,同时,确保 P0 端外部已连有 pull-up resistor。P1 端:P1 端是一组配有内部 pull-up
13、 resistor 的双向 input/output 端,为功能最单一的一组端口。P2 端:P2 端也是一组配有内部上拉电阻的双向 input/output 端。当 cpu 访问外部存储器时,P2 端输出高八位地址信号。P3 端:P3 端同样是一组配有内部上拉电阻的双向 input/output 端。同时 P3 端的每一个管脚都另有功能。主要属性如表 2-1 所示。 8表 2-1 主要属性控制信号引脚(RST、 ALE 、/PSEN 、/EA)RST / Vpd (9 脚):复位输入, 1信号有效。当 CPU 刚接入电源时,其内部各寄存器处于随机状态,当此输入端可持续 24 个时钟周期的1信号
14、时,就能完成复位任务。单片机正常工作时, 此脚应0.5V 低电平。ALE/PROG(30 脚):地址锁存允许信号端(Address Latch Enable) 。当 CPU 读取外部ROM 时,此管脚输出信号的下降沿控制低八位地址的锁存。平时运行是,此管脚以振荡频率的六分之一稳定发送正脉冲,能作对外输出时钟和定时信号。/PSEN:程序存储器允许信号输出端(Program Store Enable) 。CPU 读取外部程序存储器的读选通信号。在访问片外 ROM 时,每个机器周期/PSEN 输出 2 次脉冲。当读取外部数据存储器时,/PSEN 不出现。/EA/VPP:片外程序存储器访问允许输入端(
15、External Access External) 。当/EA 被置1 时,CPU 读取片内存储器(4K)PC 值超过 0FFFH,将自动运行片外程序存储器的程序。当/EA 被置 0,CPU 访问片外 EPROM/ROM,且运行片外 ROM 的程序。引脚图如图 2.1 所示。图 2.1 AT89C51引脚图93.2 系统原理分析3.2.1 超声波测距原理一般而言,人耳能听到的声波频率为 20 赫兹-20000 赫兹。Resonant frequency 高于2KHz 的声波称为 “超声波 ”。超声波由于其穿透能力强、在液体中传播距离远、易获得较集中的声能、方向性好等特性,使其在实际生活中的各行
16、各业得到广泛应用。假定声波在固定介质中传播的速度一定,而且能测量得到声波从送出到感应到的时间,那么从声源到目标物体的距离就可以被准确地计算出来。这就是本设计的测距原理。超声波测距,简单来说,就是通过连续地接收经障目标物体反射后的回波,进而测出超声波从发射到接收的往返时间,最后求出超声波经过的距离。其关系式如公式(1):(1)ct2S式中:S 为所需测量的距离;c 为超声波在空气介质中的传播速度;t 为往返时间。3.3 超声波传感器检测电路3.3.1 超声波检测电路图10HC-SR04 模块由发生电路和感应电路主成,发生超声波 circuit 主体具有 Em78p153 SCM、MAX232ch
17、ip 及超声波 send 装置 T40。感应超声波 circuit 主体具有 TL074operational amplifier 及超声波 receiver R40 组成。3.3.2 超声波发生及感应过程CPU 启动 system 初始化。置 EA 为 1 打开总中断,置“Trig”端 10us 的1信号,启动 HC-SR04 模块的 EM78P153 产生 8 段持续的 40KHz 矩形波,由 MAX232 电平转换,增强发出功率。发生装置把电信号变成超声波信号发出。当 CPU 发出一端 10us 的启动信号后,Trig 端从低电压变成高电压,模块发出超声波的同时,计时器开始计时,等待感应
18、装置 receive 到信号,一旦感应到立即停止计时。将时间 T 传递给单片机,过程中 ECHO 端持续为1信号的 Time 为路程时间 T。3.4 超声波测距接收3.4.1 HC-SR04 模块图 4.1 HC-SR04模块实物图HC-SR04 超声波测距模块能完成 2 厘米到 400 厘米间距的非接触式距离测量任务,其电路简易且售价实在。此外,其相对应的单片机外围电路也不复杂。该 module 具有发生 circuit、感应 circuit 及控制 circuit。实物如图 4.1 所示。基本运行流程置 TRIG 端口至少 10us 的1电平启动超声波发生;发生电路连续发出 8 个 40k
19、hz 的矩形波,等待感应是否有回波;有回波,ECHO 端输出1信号, 1信号连续时间即超声波完成路程所花的时间。11模块参数如下表 4-1。表 4-1模块参数超声波 sequence chart 如图 4.2 所示。图 4.2 超声波 sequence chart如图 4-2sequence chart 显示,一旦单片机发出一端 10us 以上 Transister-Transister-Logic 脉冲信号,该模块会连续送出 8 个 40khz 矩形波信号且开始等待感应回波 sign。只要感应到回波 sign,ECHO 端就送出 high level 脉冲。输出信号的 Pulse width
20、 与 Induction distance 成正比。所以,将发出到感应之间的 T 值代入公式能测算出汽车与物体的间距:距离=高电平时间*声速(340m/s)/2。Module 主体包括 Em78p153 单片机、MAX232Chip、Input operational amplifier TL074、Ultrasonic sensing device:T40-16、R40-16。12Em78p153 单片机情况简述Em78p153 是采用高速 CMOS 工艺制造的 8 位 single chip。采取 EMC 编程器往单片机内 Write 程序 instruction。编程人员可在 13 位选
21、项位挑取符合其需求的选项位,之中的保护位能 prevent 程序被上载。电气参数运行 Voltage 参数(V):2.0-6.0;适应 Temperature 区间():0-70;正常 Frequency 区间:DC-8MHz;4 个内建 IRC 振荡器;2 个双向 I/O 端口;328bit 片内寄存器(SDRAM) ;EM78P153 的封装为 14 脚;Small Out-Line Package 小外形封装、Shrink Small-Outline Package)窄间距小外型塑封和 dual inline-pin package 双列直插式封装为 3种封装形式。pin 分配如图 4.
22、3 所示。图 4.3 Em78p153pin脚图MAX232MAX232chip 是 MAXIM Co.特为 RS-232 串口 design 的选择单电源+5v 供能的电平转换chip。本设计只通过该 chip 完成 level switch 任务,将 40kHz 的矩形波从 5V 提升至20V,增强 transmitting power。pin 图如图 4.4 所示。13图 4.4 MAX232引脚图 引 脚 介 绍第 一 单 元 为 电 荷 泵 circuit。 由 1、 2、 3、 4、 5、 6号 pin 及 4个 电 容 组 成 。 作 用 为 发生 +12v 和 -12v 两 个
23、 电 源 , 满 足 RS-232串 口 电 平 的 require。第 二 单 元 为 Data conversion 通 道 。 由 7、 8、 9、 10、 11、 12、 13、 14号 pin 组 成两 个 Data conversion。 以 上 13号 pin( R1IN) 、 12号 pin( R1OUT) 、 11号pin( T1IN) 、 14号 pin( T1OUT) 为 第 一 Data conversion; 8号 pin( R2IN) 、 9号pin( R2OUT) 、 10号 pin( T2IN) 、 7号 pin( T2OUT) 为 第 二 Data conve
24、rsion。第 三 单 元 为 供 电 circuit。 15号 pin GND、 16号 引 pin VCC。TL074( 低 噪 声 JFET 输 入 operational amplifier)引 脚 图 如 图 4.5所 示 。图 4.5 TL074pin图具体引脚功能如表 4-2 所示:14表 4-2 引脚表1 1OUT 输出端(通道 1)2 1IN+ 反相输入端(通道 1)3 1IN- 同相输入端(通道 1)4 VCC 正电源5 2IN+ 同相输入端(通道 2)6 2IN- 反相输入端(通道 2)7 2OUT 输出端(通道 2)8 3OUT 输出端(通道 3)9 3IN- 反相输入
25、端(通道 3)10 3IN+ 同相输入端(通道 3)11 GND 接地端12 4IN- 反相输入端(通道 4)13 4IN+ 同相输入端(通道 4)14 4OUT 输出端(通道 4)TL074 内部组件数量如表 4-3 所示表 4-3 TL074组件3.4.2 T40、R40 超声波传感装置介绍15图 4.6 内部构造 图 4.7 外观形态T40-16 与 R40-16目 前 来 看 , 超 声 波 发 生 装 置 按 如 何 发 出 超 声 波 能 分 为 两 大 种 类 :1.Electric 发 出 超 声 波 , 包 含 Piezoelectric type, magnetostric
26、tive type 及 electric type 等 ;2.Mechanical 发 出 超 声 波 , 包 含 Garr the flute, whistle 及siren liquid flow 等 。两 种 类 型 send 的 超 声 波 的 frequency、 power 和 Acoustic characteristics大 相 径 庭 , 所 以 适 用 场 合 也 不 一 样 。 压 电 式 超 声 波 发 生 装 置 是 现 在 比 较 常 用 的 。压 电 式 超 声 波 发 生 装 置 根 本 上 来 讲 为 采 用 Piezoelectric crystal 的 谐
27、 振 来 运作 的 。 其 内 部 include 两 个 Piezoelectric crystal 和 一 个 共 振 板 。 在 它 的 两 极 处输 入 电 压 , 同 时 保 证 该 频 率 等 于 Piezoelectric crystal 的 固 有 振 荡 频 率 时 ,Piezoelectric crystal 就 会 产 生 共 振 , 且 使 共 振 板 一 起 振 动 , 于 是 便 能 send 超声 波 了 。 反 之 , 若 两 极 处 没 外 加 脉 冲 信 号 , 当 共 振 板 receive 回 波 时 , 会 使Piezoelectric crystal
28、 产 生 振 动 , 机 械 能 将 transform 电 信 号 , 此 刻 其 便 是 超 声波 感 应 装 置 。 电 路 中 采 用 T40-16T/R 超 声 波 换 能 器 便 是 Piezoelectric type 装 置 。装置说明Name:Piezoelectric ceramics 超声波传感器;Type:T40-16T/R;Category:通用型;主 frequency(KHZ):40;Outer diameter:16mm;工作说明:T 表示发生装置,R 表示 receiver,TR 表示两者兼用;电气参数如下表4-4所示:表4-4 电气参数传感器实物如图4.8
29、所示。16图4.8 传感器实物图HC-SR04 具有超声波的发生和感应电路,因此,hardware 方面不用再个人定制复杂的发生及感应回路,software 方面也不必再使用定时器来发生 40Khz 的矩形波驱动piezoelectric ceramics 共振近而发出超声波。调用该 module 时,只需将Trig端置一端大于 10us 的 high level 信号,就能等待Echo端的 high level 信号输出。CPU一旦扫描到 trigger signal 就打开定时器进行计时。当该端的 high level 信号消失时就完成计时并 read 定时器的 Data,该 Data 为
30、本次测距的 time,然后带入传播速度公式就能 complete 对距离的计算。3.5 SCM1602 显示模块该模块是由 SCM1602 液晶显示器件组成,第 3 脚:VL 为显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10k 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平
31、 RW 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变为低电平时,液晶模块执行命令。第 714 脚:D0D7 位 8 为双向数据线。由上可知 1602 基本操作时序如下表 2.5。其第 1516 脚:背光电源脚。SCM1602 与单片机的应用连接电路图如图 2.5 所示。 17图 2.5 显示电路图四、系统软件部分设计4.1 软件流程图4.1.1 主程序流程图本设计的软件部分主要有主程序、发射超声波程序、1ms 定时器中断程序、LCD 液晶屏显示程序组成。我们知道 C 语言程序对实现较复杂的算法能很高效的实现,而汇编语言编写程序的代码对于普通人十分难理解,不易于软件
32、的维护,而本设计的程序需要有相对复杂的运算且有助于结构化程序,所以程序语言选择 C 语言。首先初始化系统设置:置总中断允许位 EA 为 1、设置定时器 T0、T1 工作模式为模式 1(16 位定时计数器模式)并将单片机各端口拉高。之后开始运行功能模块。18初始化开始主程序是否到达 4 0 0 m m超声波测距子程序处理距离子程序L C D 显示当前距离报警子程序L C D 显示 0 0 0NY测距图 3.1主程序流程本设计使用频率为 12MHz 的晶振电路,计数器的每一次计数就是 1s。当 main 程序中扫描到表示接收回波成功的标志位 Echo 发送的 time(高电平持续时间),将超声波往
33、返所花费的 time(计数器 T0 中的 time)带入到公式(3)运算,就能计算出车尾与障碍物之间的距离,编程中设温度为室温 20时的声速为 340m/s,则有:d=(c t)/2=172T0/10000cm (3)公式中,T0 为计数器 T0 的 time。计算出距离后结果将会被发送给共阳数码显示模块,同时,结果也将发至语音预警模块。之后重复发送超声波进行测距任务。4.1.2 超声波测距子程序超声波测距子程序的任务是将 Trig 引脚发送启动脉冲信号(脉冲宽度大概是为 10s),同时扫描标志位 Echo。一旦 Echo 为高电平,开始计时。最终完成对距离的计算。19开始超声波测距子程序启动
34、发生超声波定时器 0 清零关闭定时器 0E c h o 标志位是否为 1开启定时器 0取出定时器 0 内时间且判断是否超出设定值测距成功标志位置 1关闭定时器 0距离置为超出范围测距成功标志位置 2E c h o 标志位是否为 1测距成功标志位是否为 1关闭定时器 0读出时间计算距离结束NYYNYNNY图 3.2 超声波测距子程序4.2 系统源程序#include /调用单片机头文件#include#define uchar unsigned char /无符号字符型 宏定义 变量范围 0255#define uint unsigned int /无符号整型 宏定义 变量范围 065535sb
35、it rs=P27; /LCD 数据命令选择端sbit lcden=P25; /LCD 使能端sbit wr=P26; /LCD 读写端sbit trig=P37; /触发控制信号输入sbit echo=P36; /回响信号输出20sbit out=P21; /距离超出报警uchar code table=“ distance:“; /数组定义void delay(uint z) /1ms 延时uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /LCD 写命令子程序rs=0;wr=0;P0=com;delay(5
36、);lcden=1;delay(5);lcden=0;void write_date(uchar date) /LCD 写数据子程序rs=1;21wr=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void main()uchar k,m;long temp; /距离TMOD=0x01; /设置定时器 0 为模式 1TH0=0x00; /定时器清零TL0=0x00; /定时器清零ET0=1; /开定时器 0 中断 2EA=1; /开总中断wr=0; lcden=0;out=0; /关闭报警write_com(0x38);write_com(0x0c);
37、write_com(0x06);write_com(0x01);22write_com(0x80);for(k=0;k13;k+)write_date(tablek);delay(5);write_com(0x80+0x40+9); /LCD 位置定位write_date(m); write_date(m); /距离单位 mmwhile(1)TH0=0x00;TL0=0x00;trig=1; /触发控制信号写入 1for(m=0;m20;m+) /延时等待 20us_nop_();trig=0; /触发控制信号写入 0while(!echo); /回响信号输出为 0TR0=1; /开启定时器
38、0while(echo); /等待回响信号TR0=0; /关闭定时器temp=TH0*256+TL0; /读出定时器 0 的时间temp*=170; /距离 = 速度 * 时间 将 temp 转换成距离单位为 mm23temp/=1000;if(temp=400) /距离小于 40cm 时 显示当前距离out=0;write_com(0x80+0x40+5);write_date(0x30+temp%1000/100);write_date(0x30+temp%100/10);write_date(0x30+temp%10);delay(1000);else /当距离大于 40cm 时显示 0
39、00 并且开启报警out=1;write_com(0x80+0x40+5);write_date(0x30+0);write_date(0x30+0);write_date(0x30+0);delay(1000);245、系统仿真过程与结果5.1 Proteus 仿真软件Proteus 软件是由英国 Lab Comenter Electronics 公司开发的 EDA 工具软件,由ISIS 和 ARES 两个软件构成,其中 ISIS 是一款便携的电子系统仿真平台软件,ARES 是一款高级的布线编辑软件。它集成了高级原理布线图、混合模式 SPICE 电路仿真、PCB 设计以及自动布线来实现一个完
40、整的电子设计。通过 Proteus ISIS 软件的 VSM(虚拟仿真技术) ,用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。5.2 编译过程仿真时,在 Keil uVisions2 软件下打开,在此对话框下点击 Project 项目,然后新建项目并命名超声波测距,然后增加文件组测距源程序.C 文件,接着设置目标属性使其生成 HEX 文件,随后进行编译连接,即能获得程序为.HEX 的文件。最后将生成的.HEX 文件导入电路后就可以进行仿真。利用 Proteus 实现了对 LCD1602 显示屏的仿真,说明程序和电路图都没有问题。仿真结束后
41、,将程序放入电路中,即可显示仿真结果。5.3 仿真效果图初始状态25超量程状态六、实物展示6.1 实物元件与过程成品如图 6.1,6.2 所示。图 6.1 正面图26图 6.2 背面图清单列表:元器件 型号 数量电阻 1K 1 个电阻 10K 1 个电解电容 10V 10uF 1 个电解电容 16V 47uF 1 个电解电容 16V 0.1uF 1 个电解电容 16V 470uF 1 个无极性电容 30PF 2 个三极管 9012 1 个显示 SCM1602 1 个芯片 AT89C51 1 个芯片 MAX232 1 个芯片 EM78P153 1 个芯片 TL074 1 个排针 3 个蜂鸣器 1
42、 个276.2 实物运行与调试图 6.3 如图 6.3 所示,将物体置于约 100mm 处,LCD 显示器显示 100mm。图 6.4 28如图 6.4 所示,将成品面对空地,LCD 显示器显示 000。同时,语音预警模块提示超出量程(蜂鸣器工作)。6.3 实物总结在完成实物的焊接,程序的下载后,我们对实物进行了实验,发现以下 3 点需注意的内容。(1)在进行测量时,需严格保证传感器与障碍物中间不存在其他物体。(2)尽量保证障碍物与地面相垂直。在对所有的人为干预的因素进行排除后,还是存在一部分的误差。经过对硬件、软件的分析排查。发现超声波回波时间对测定存在影响。为了防止其他信号的干扰,提高测量
43、的可靠性,超声波传感器常常一次发射的是多个超声波脉冲串。实际测量时,接收电路接收到的往往不是第一个回波的过零触发。这样,最终测得的时间则与实际距离所对应的时间不同,从而造成了超声波回波时间引起测量误差。测量盲区也对测定存在影响。超声波传感器安装在汽车尾部的保险杠上,当障碍物不在超声波发射的几何角度上,就会产生测量盲区。在测量盲区内不能实现正常测距,测量误差很大。此外,在程序指令运行过程中需要占用一定的时间以及环境中的干扰因素等都会引起测量误差。由于时间精力和个人能力有限,本系统设计还有很多不足。所以如若使用在实际生产中还应在以下几个方面进一步探讨: (1) 如何将温度对声速的影响降到最低。(2
44、) 如何对非平面物体和倾斜物体进行准确测距。(3) 如何减小测距盲区。(4) 如何进一步提高系统的稳定性和重复性。七、结论本设计讲解了一种基于 AT89C51 单片机的超声波测距系统的设计,列出了相应的硬件电路及软件编程的具体实施方案。超声波测距的原理是:首先通过超声波发射器发送超声波,根据收到回波时的时间差就能计算出不明物体与车尾的间距,也就是说超声波模块向外发送超声波,同时,发出超声波的瞬间开始计时。与此同时,超声波开始在介质中散播,途中遇物体就会反射回来。当接收装置收到返回波的同时,结束计时,再将测量得的时间通过一段高电平反馈到单片机,将时间带入到相应的计算公式就可以求出障碍物与测量装置
45、的间距。以上就是利用了超声波具有指向性强,在空气中能传播较远的距离等特性且根据反射原理设计出的系统。29超声波测距系统硬件电路的设计主要包括单片机的基本电路、超声波发射接收模块控制电路、LCD 显示电路、语音预警模块四部分部分组成。单片机采用了 AT89C51,晶振为 12MHz,Trig 端口置 10us 的有效信号,定时器 T0 测出时间差,显示电路采用 LCD 液晶显示器组成,语音预警用蜂鸣器代替。总体而言,我从本设计上学到了很多,收获颇丰。了解了超声波测距的原理,并更加掌握了单片机系统的研发及相关外围电路设计。八、参考文献1许立梓.微型计算机原理及应用M.北京:机械工业出版社,2003.2张开生,郭国法. MCS-51 单片机温度控制系统设计J.微计算机信息,2005,21(7):68-69.附录、原理图