1、 题 目: 便携式测距仪系统设计(软件) 英文题目: Design of System on Portable Rangefinder 作 者 声 明本人以信誉郑重声明:所呈交的学位毕业设计(论文),是本人在指导教师指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出,不包含他人成果及为获得东华理工大学长江学院或其他教育机构的学位或证书而使用过的材料。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本毕业设计(论文)引起的法律结果完全由本人承担。本毕业设计(论文)成果归东华理工大学所有。
2、特此声明。毕业设计(论文)作者(签字):签字日期: 年 月 日本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。学位论文指导教师签名: 年 月 日摘 要STC89C52 单片机是 STC 单片机中应用中一款最为广泛的单片机,在自动化及其相关领域具有相当高的价值,STC89C52 单片机具有低功耗、高性能以及便于操作等特征受到了广大爱好者的好评。超声波测距仪在生活中能够稳定的测量出精确的距离,超声波广泛应用在生活之中,因为超声波有着能耗低,容易传播等优良特性。本次设计主要以 STC89C52 单片机为核心加上超
3、声波传感器来完成本次超声波测距仪的制作,以 STC89C52 为主控芯片,发射模块通过单片机所给的信号来发射超声波,然后接收模块接收返回的超声波。利用超声波传感器对距离的测量以及单片机的运算与处理得出相应的距离,显示结果。本次设计的系统方案通过软件和硬件以及各个模块的相互配合得以实现。STC89C52 单片机为主控芯片,利用超声波来检测两个物体之间的有效距离,将前面的障碍物探测出来,然后交给单片机去计算处理所得到的数据,最后显示出测量的结果来。关键词:超声波传感器; STC89C52; 时差法ABSTRACTSound wave is a kind of mechanical wave, wh
4、ich is produced in the state of mechanical vibration, and is transmitted through the media. The propagation speed of sound is related to the type and temperature of the medium, the higher the density, the faster the propagation speed is, the higher the temperature is, the faster the propagation spee
5、d is. Ultrasonic is the vibration frequency is greater than 20KHZ, people can not hear the sound wave in the natural environment.In the air medium, ultrasonic ranging sensor because its performance is reliable, easy to use, inexpensive, automatic vehicle navigation, vehicle safety driving assistant
6、system, as well as the river, wells and warehouse and material position detection are applied. Ultrasonic propagation is not easy to be disturbed, the energy consumption is slow, the distance in the medium is far away, so ultrasonic often used for distance measurement. Therefore, it is of great sign
7、ificance to study the generation and propagation of ultrasonic wave, develop the high performance ultrasonic distance measuring instrument, which is very important to the development of the technology.Using acoustic distance measurement principle is: send ultrasonic, ultrasonic obstacle to reflect,
8、receiver receives the ultrasonic and converted into an electrical signal, measure the sending and receiving of the time difference, through the formula calculate the distance.STC is a series of STC89C52 microcontroller in a wide range of applications, in the field of automatic control has a high val
9、ue. This design is mainly to use STC89C52 microcontroller, ultrasonic sensor range alarm system of production, to STC89C52 as the main control chip, using ultrasonic wave to detect the distance, the distance to the object in front detected, then the SCM processing, will deal with the result of the o
10、peration by the display.Key words: ultrasonic sensor; STC89C52; time-difference-type目 录1 绪论 .11.1 背景与意义 .11.2 设计目的 .11.3 国内外相关动态 .21.4 单片机发展史简略 .21.5 本章小结 .32.总体设计方案及论证 42.1 总体方案设计 .42.2 超声波的特性 .52.3 超声波测距原理 .62.4 超声波测距原理框图 .72.5 超声波测距仪需求分析 .72.6 本章小结 .83 硬件实现及单元电路设计 .93.1 主控制模块 .93.2 电源设计 113.3 超声波
11、测试模块 113.3.1 HC-SR04 超声波模块 113.3.2 超声波传感器原理 113.4 声音报警电路的设计 133.5 显示模块 143.6 时钟电路的设计 143.7 复位电路的设计 143.8 本章小结 154 软件设计 164.1 主程序工作流程图 164.2 超声波测距程序 184.3 超声波报警程序 234.4 按键程序 234.5 显示模块 244.6 本章小结 25结 论 .26致 谢 .27参考文献 .28附录 .29附录 1 元器件清单 29附录 2 超声波测距仪原理图 30附录 3 程序 31附录 4 实物照片 3711 绪 论1.1 背景与意义超声波是声波的一
12、种,具有声波的大部分属性,所以超声测距是一种非接触检测技术。特别是在空气等介质中传播的距离远等优点,遇到障碍物时会产生反射波,所以人们经常把超声波用于两物体之间距离的测量。超声波在各种不一样的介质里其传播速度是不一样的,而且它可以定向传播,发射后能在遭遇障碍物的瞬间进行反射,我们可以利用超声波的反射特性,通过测定超声波往返的时间,利用声速已知则可以求出两点之间的距离。利用超声波测距具有操作简单,快速,实用,方便的特点。不会受到光线,物体颜色等的影响是超声波测距的最大优势之一。由于这些优点,超声波测距大多数应用于液位的测量,建筑工地,桥梁隧道施工,位置实时监控、流量测量,和机器人等领域。因为有了
13、这些其他声波所不具有的优点,建筑工地,隧道施工,桥梁施工,路面施工等的距离测量经常用到。因此研究超声波测距系统有着很大的现实意义。开发超声波测距仪的任务也刻不容缓。对基于单片机的超声波测距仪的研究与设计,能提高设计者的单片机电路理论和实际的动手能力,深入对单片机开发使用和理解。1.2 设计目的现代科学技术正在快速发展,各类物理现象都在人类的研究和开发中得到充分利用,光学,电学,声学的发展非常迅速。超声波被发现后得到了非常广泛的利用。特别是在测量方面的应用因科技的发展而变得越来越广。但就目前的发展水平和科学技术来说,人们可以具体利用的在超声波方面的距离测量技术还比较有限。因此,超声波检测技术是一
14、个有着无限前景的技术,利用超声波来检测距离的话是比较迅速、方便、因为现阶段科学对声波的知识掌握得较为全面,所以关于超声波的计算比较简单且易于做到实时控制。为了研究和利用超声波,利用其性质开发超声波的功能,人们已经研究并制造出各类超声波测距系统,未来还将不停地开发和研制更精确的超声波测距仪。还更多基于超声波的测距仪用于生活中的测量和工程中的测量。毋庸置疑,无线,无接触的超声波测距将与自动化和智能化接轨,与其他的测距仪如红外线测距仪等集成和融合,形成高性能综合测距。随着测距仪的技术的蓬勃发展和飞速进步,测距仪将不仅具有单纯的判断功能,还会出现智能化的学习能力。21.3 国内外相关动态国外学者在提高
15、超声波测距的研究方面做了大量的努力,尤其是在测量距离的延伸和测量精度的提高上不懈努力着,基于超声波的测距方法比较成熟的一共有 3 种:第一种是相位检测法,它有着非常明显的优点,就是它的检测精度非常的高,但是也有些缺点,就是测量的距离不是太长。第二种方法是声波幅值检测法,这种方法可能比较容易受到其他东西的干扰,而且这种方法受反射波的影响比较的大。第三种为时差法,这种方式的比较直观,比较容易理解,一般常用这种方法。国内外的很多学者在利用超声波检测方面继续前行,而以上的几种方法是国内外专家和学者在数十年共同努力下所得到的非常成熟的测量方式。现阶段,我们国内的一些科学家在对超声波发射电路的优化以及发射
16、功率和发射频率的控制,优化最大探测距离的提高等方面做出了卓越的贡献。对新型超声波传感器进行研究并取得了一定成果,但对新款的超声波传感器的组成材料、超声波传感器的创新方面的研究还是很不尽人意。超声波测距功能因为其原理比较简单而且很容易达到效果以及成本低廉等优点,在水位测量、自动化机器人的定位和避障汽车的防护功能方面有了广泛的应用。由于其设计原理比较简单,容易实现,而且制造成本比较低,耗能低的这一系列特点,所以也常常用于机器人的研发制造上。用使移机器能自避障行走必须装备测距系统使其及获取距障碍物距离信息(距离向)超声波测距系统机器解其前、左侧右侧环境提供运距离信息。 1.4 单片机发展史简略随着当
17、今电子科学技术的飞速发展,在电子信息类的专业来说单片机的地位很高。在其他类的专业工程中同样是不可缺少的。单片机的发展历史大概可以分为 3 个重要阶段,第一个阶段为单片机初级阶段(1976-1978 年)。因当时工艺和科学技术的限制,采用的是双片形式,而且所能实现的功能非常简单。第二个阶段为低性能单片机阶段,这个阶段的单片机没有串行口,中断也很简单,代表为 Intel 公司的 MCS48 系列,内部有 8 位 cpu,并行 I/O 口和 8 位定时计数器,RAM,ROM。第三个阶段是高性能单片机阶段,这个阶段的单片机以优异的性能和低廉的成本不断地被用于当今社会的每个角落。各类性能,系列,型号的单
18、片机一代接一代地出现,不断地用高性能满足着各类场合的需求。单片机技术的开放性,生产厂商的激烈竞争和市场的需求成为了单片机技术飞速发展的强大动力。因此单片机应用开发成为当今电子技术人员急需掌握的重要技术。如今,单片机早已深入到我们生活的各个领域,日常的生活到工业的生产,几乎每个领域都有单片机的踪影,从日常的各类家电,或者是导弹的制导3系统,又或者是工厂的机床、流水线,都无法离开单片机。41.5 本章小结本章节主要叙述了超声波测距的发展历程和现状,特别介绍了超声波测距仪的优点和目前国内产品的不足,和国内外专家学者在超声波检测方面的成就。概述了本次设计任务与论文内容安排。52.总体设计方案及论证2.
19、1 总体方案设计本次的超声波测距仪的设计包括了软件以及硬件两个部分,主要的相关模块分成了数据信息的收集模块、键盘按键的控制模块、四位数码显示管显示模块、报警等子模块等。而在电路结构方面则分成了 3 个部分,分别是:超声波传感器的相关电路、蜂鸣器相关电路以及单片机的控制电路。就对本次设计来说,本次的核心模块也就是中心单元则是靠单片机完成,所以本次的设计系统也算是单片机应用系统的相关应用。单片机的组成包括了硬件以及软件,硬件部分主要是由单片机本身还有相关的输入、输出设备以及外部电路等所组成。软件则是各种各样的程序所构成。单片机的系统研发过程主要包括总体的设计以及对软硬件分别进行设计等 3 个阶段。
20、本次设计的超声波测距仪利用了STC89C52 单片机作为核心的控制单元,每次当测距仪所测到的距离小于所设定的距离时,主控芯片则将测到的数据与我们开始设置的距离进行计算比较然后处理。最后由单片机来控制让蜂鸣报警器报警。系统总体的设计方框图如下图所示:6图 2-1 系统总体设计方框图2.2 超声波的特性声音是一种机械波,当声波频率超过人类听觉所能接收的极限频率时(20000 赫兹),人们就无法觉察到声音的存在,这种超过人类听觉范围的高频声波被称为超声波。7图 2-2 人的听觉范围超声波的特性:(1)束射性超声波的波长比正的声波短,在几何光学方面的绝大部分定理都可以适用于超声波,也就是说,超声波在物
21、体的表面所产生的反射就和光一样,入射角等于反射角,当然,光线所具有的其他性质,例如聚焦或者是折射等同样的适用于超声波。当超声波射线经过两种密度不一样的物质的交界处时也同样会产生类似折射的现象。也就是说会改变超声波射线的传播方向,物质 A 和物质 B之间的密度差距越大,则超声波折射的现象就会越明显。(2)超声波的能量传递性超声波具有比其他普通声波强大的多的功率,由于其功率比一般声波大很多,由于功率比其它的声波大,所以它经常被用于各种工业用途,超声波在进入了某一种物质以后,会使这种物质内部的分子产生很大的振动,分子振动频率等于超声波频率,分子振动频率越高速度越大。若超声波频率越高则分子能获得的能量
22、也就越多。所以说超声波可提供给物质分子较大的能量。 (3)超声波的声压性超声波在进入到某种物体之后,超声波使得分子振动,然后分子之间就会有一种压缩的作用,物体受到的压力就会因为超声波而改变。这种现象就叫做声压。2.3 超声波测距原理本测距系统采用的是时差法。超声波时差法的原理为:检测从超声波传感8器发射出的超声波经气体介质传播,遇到障碍物后反射回接收传感器的时间 t,这个时间 t 就是渡越时间,然后通过来回时间求出距离 l。设 l 为测量距离,超声波的传播速度为 c,则有 l=ct/2。超声波接收器收到反射波就立即停止计时。而后由单片机计算出距离,让数码显示管显示出测量结果。关于超声波测距算法
23、的设计:设 t1 和 t2 分别就是超声波的发射时间和接收的时间,经过科学研究测定的数据可以得到在温度是 15 度时 340 米每秒就超声波在空气中传播速度。t2-t1 就是发送和就收之间的时间差,假定 t2-t1=0.01S,则有 340m0.01S=3.4m。由于在这 0.01s 的时间里,超声波发出到遇到返射物返回的距离如下, 如图为测距原理。图 2-3 测 距 原 理/2 的角度非常小,大约是 7-7.5 度,这样大小的角度几乎对超声波测距没有太大的影响,可得 LS。 则可得到 h 也趋近与 0。超声波发出到遇到返射物返回的距离如下:(2-2/)(1tCL1)由于超声波是声波的其中一种
24、,其声速 c 与空气和温度有关,根据科学测量得出了温度每上升 1 度,声速增加 0.6 米秒。表 2-1 声 速 与 温 度 的 关 系 表温 度 ( 摄 氏 度 ) 30 20 10 0 10 20 30 100声 速 ( 米 秒 ) 313 319 325 323 338 344 349 386在 10 度和 30 度之间,声速为 338-349 米/秒,相差为 11 米/秒。设时间差9为 0.025s(HC-RS04 超声波测距模块所能达到的极限距离所需时间与返回时间的总和),若使用 L=C( t2 -t1 )/2 公式进行计算,则可得到此温度范围内得到的最大数值和最小数值之差为 0.1
25、375 米,只要周边环境的温差不是非常大,那就可以认为声速是一个定值。计算时取 c=340m/s。2.4 超声波测距原理框图超声波测距传感器模块用的是 HC-SR04,这个超声波传感器模块提供 2-400 厘米非接触距离感应的功能,测距精度最高可以达到 3 毫米左右,整个传感器模块包括了发射器,接收器,控制器。微处理器使用 STC89C52 单片机,显示部分采用数码管。HC-SR04 发射电路模块发收到信号以后发出超声波,超声波在遇到阻碍后产生回波,接收电路模块接收到返回的超声波后,STC89C52单片机统计出声波来回传输所用总时间,计算两物体之间的距离然后再用数码管显示。图 2-4 测距原理
26、框图2.5 超声波测距仪需求分析基于单片机的超声波测距仪有机地结合了软件控制和硬件设计技术。本超声波测距仪要求实现的功能有:参数设置:影响超声波的因素有很多,这关系最终测量数据的精确性。STC89C25 单片机驱动模块带通滤波,信号放大,脉冲整形接收发射显示模块10显示界面:一个简单清楚的显示界面可以给使用者最直观的测试结果,引导使用者快速了解目前的测试距离。在使用者进行参数设置时能够显示出所设值,使用者进行实际测量的时候可以实时显示测量所得到的数据。键盘输入: 键盘不仅可以完成初始数据设置的任务还可以更改报警距离,使设计的实用性大大提升。报警装置:报警装置可提醒使用者当前距离是否为目标距离或
27、危险距离,使用者可根据自己的需求自由调节报警距离。供电设计:所设计系统的供电部分可以兼容市电,并且做到设备以较低的能耗完成所有功能。112.6 本章小结本章首先介绍了整体方案设计要求,说明了系统的设计原理,设计了系统的设计框图,接着分析了使用者对系统的实际需求,最后提出了最终方案及完成最终方案所使用的芯片选择。12133 硬件实现及单元电路设计3.1 主控制模块主控制模块作为整个超声波测距系统中最为重要的核心部分,此次设计选择了由宏晶科技生产的 STC89C52 单片机。此型号的单片机不仅拥有超强的抗干扰能力,还具备了高运算速度、低功耗等特点,确保了设计本身的整体性能和各个模块的兼容性、实用性
28、。并且可以提供多个时钟周期。最小应用系统,或者称为单片机最小系统,指的是用最少的电路元件组成一个可以正常工作的单片机控制系统。对于 52 单片机而言,它的最小系统包括了单片机,复位电路,晶振电路。复位电路:单片机的复位电路如同计算机的重启功能,当计算机在使用过程中出现死机等非正常运作情况时,重启按键可帮助计算机重新执行程序。单片机系统在运行中出现故障或是受到干扰时,复位按钮可以帮助单片机重新运行程序。 89C52 单片机如果需要执行复位重启功能,需要将持续 2us 的高电平接入第 9 个引脚即可。电容和电阻的大小分别是 10uF 和 10K。可以算出电容充电到电源电压的 0.7 倍(5V*0.
29、7=3.5V),此过程需要 10K*10UF=0.1S 的时间。根据上述过程可知极性电容的容值越大,需要的复位时间就越短。晶振电路:全称为晶体振荡器,可以等效为一个电容和一个电阻的并联后再串联上一个电容。以频率的高低分把网络分为两个谐振点,其中串联谐振频率较低,并联谐振的频率较高。这两个频率距离很近。由于频率范围很窄,晶振基本上可等效为一个电感。当一个数值合适的电容并联于晶振的两端时,就可以使其成为一个并联谐振电路,当它加入到一个负反馈电路中便可构成一个正弦波振荡电路。 频率范围很窄的特点也使得当其它元件的参数变化很大也不会影响到振荡器的频率。起振电容:起振电容 C2,C3 采用 16-32p
30、F,并且电容,晶振,单片机离得越近越好。P0 口为开漏输出, P0 作为输出口时需要上拉电阻,上拉电阻的阻值大约为 10k 左右。定时器模式:加一计数器是对机器内部机器周期进行计数(1 个机器周期为 12 个振荡周期,即计数频率为晶振频率的 1/12)。计数值乘机器周期就可得到定时时间 t。计数器模式:T0 或 T1 引脚能把外部事件的计数脉冲输入到计数器中。采样 T0、T1 引脚电平的时间是在每个机器周期的 S5P2 期间。当某周期采集到一个高电平,而下一个周期又采集到一个低电平时,计数器就会加 1,在下一个14机器周期的 S3P1 期间更新的计数值被装入计数器。因为检测一个从高电平到低电平
31、的下降沿需要 2 个机器周期,所以这里要求被采样的电平至少要维持一个机器周期。当晶振频率为 12MHz 时,最高计数频率不超过 1/12MHz,也就是说计数脉冲的周期需要大于 2 ms。 P1.0345678RST9(XD)INWALGE/OVCUYMuFKJrigcho图 3-1 最小系统完整的超声波测距仪须要实现的功能为利用超声波传感器测量障碍物到仪器间的距离,显示当前距离,目标距离或危险距离报警以及目标距离或危险距离的设定。从上述的分析中可知在本系统的设计中还须要用到如下器件: STC89C52 单片机、超声波传感器、按键、数码显示管、蜂鸣器等单片机外围应用电路。电路中用到 4 个按键,
32、 报警距离加减按键两个,设定键一个,重置键一个。15E1D2P3C4G5H69F0AB78SRQVKWsw-灰N.T(X)IL/OUYMuJ蜂 鸣 器+rigcho图 3-2 总设计电路3.2 电源设计本次设计在电源方面采用了自锁开关的引脚识别方法,其硬件原理图如下图 3-3,其中 p2 为电池或者 USB 的接口,sw1 为电源的开关用来接通和断开电源。其中 12 和 45 是常开触点而 23 和 56 是常闭触点。在开关按下了 1245 则该电路导通,2356 则是断开如是弹开开关则相反。 3.3 超声波测试模块3.3.1 HC-SR04 超声波模块超声波测试模块作为超声波测距仪的最为重要
33、部分之一,超声波模块的选择决定了整机性能的好坏。本设计选择使用 HC-SR04 作为本次超声波测距仪的超声波模块,该模块可提供 2cm-500cm 的范围内不需要接触也能进行测距,而且测距的精度还可以达到最高高 3mm。盲区很短仅仅为 2cm 左右,多用于机器人壁障,液位的检测,流量的检测,停车场安全检测和距离检测。模块包括超声波发射器,超声波接收器和控制电路。其基本工作原理如下:采用 IO 口 TRIG 触发测距仪发出超声波进行测距,需要 10us 以上的高电平信号; 模块将发送 8 个 40khz 的方波来检测是否有返回的超声波信号;如果有返回的信号,通过 IO 口 ECHO 输出高电平,
34、超声波从发出到返回的时间等于高电平的持续时16间。测试距离等于高电平时间与声速的乘积再除以 2。VCC 用 5V 电压,GND接地。3.3.2 超声波传感器原理开放型传感器是市面上最为常见的超声波传感器,也是使用频率最高的超声波传感器,其结构如下图所示。底座上固定了一个复合式振动器,复合式振动器由谐振器、金属片、双压电晶片元件振动器组成。其中双压电晶片元件振动器是由压电陶瓷片组成。为了能有效地发射因振动而形成的超声波,谐振器的形状设计成喇叭形。这样的结构还有利于使超声波在振动器的中央部位聚集。当压电陶瓷上有电压作用时,压电陶瓷就会因为电压的变化和频率的变化而产生形变。此时若振动压电陶瓷,就会产
35、生电荷。我们可以利用这个原理,若给双压电晶片元件上施加电信号,双压电晶片元件就会因振动形变而产生并发射超声波。相反,当把超声振动施加到双压电晶片元件上时,双压电晶片元件就会因振动而产生电信号。以上便是超声波传感器的工作原理。图 3-3 超声波模块实物图17图 3-4 超声波内部结构1.波长频率与波长的乘积为波的传播速度。声波在空气中的传播速度很慢,约为344m/s (20时) ,相比电磁波的传播速度 3108m/s 可以说是很慢的,在这种传播速度比较低且波长很短的情况下,就可以获得较高的距离和方向分辨率。这种较高的分辨率特性使我们有在进行距离、流量等的测量时可获得较高精度。2.反射超声波在物体
36、上能够反射,我们才能基于反射来判断物体是否存在,金属木材混凝土等物质可以反射几乎是 100%的超声波,因此我们可以非常容易的探测到此类物质。但是布类,棉花等物体容易吸收超声波,因此超声波很难探测到这类物体。同时,超声波的反射是不规则反射,所以一般比较不容易探测到凹凸表面和斜坡表面的物体,这些条件决定了超声波的探测环境应该是空旷且存在能够反射超声波的物体的地方。3.温度效应在不同的温度下,超声波的速度是不相同的,也就是说超声波的传播速度将随周围环境温度的改变而发生改变。超声波传播速度“C”可以用以下公式表示:C=331.5+0.607t (m/s)在上述公式中 t 是代表温度(摄氏度)。因此,在
37、实际的两物体之间距离测量的过程中,若是想得到更加精确的测量值,对温度的检测是必要的,尤其是秋冬季节全天温差较大,对超声波的测距精度有一定影响。而且本设计中超声波主要实现的是预测功能,对测量精度不做过高要求,所以关于温度对设计的影响在这不做深入探讨。184. 衰减因为衍射现象会导致超声波在球形表面上扩散损失,所以超声波在空气中的强度会随距离的增加而成比例的减弱。介质吸收能量导致的损失也是原因的一部分。如图所示,超声波的其中一个重要特性就是其衰减是和自身的频率成正比的,如果超声波的频率越高,它的衰减也将会越高,而传播距离也将会成比变短,因此,超声波的衰减将会影响到自身的传播距离。图 3-5 声压在
38、不同距离下的衰减特性3.4 声音报警电路的设计用一个蜂鸣器和一个三极管、电阻就可以构成蜂鸣报警电路,将蜂鸣报警电路接到 STC89C52 单片机 P13 引脚上,如图为蜂鸣报警电路。 B1蜂 鸣 器Q580VCGND+R32KP19图 3-6 声音报警电路图3.5 显示模块本次超声波测距系统的显示模块是采用了 4 位共阳数码管作为显示器。 E1D2P3CG5H69F0AB78SQVRK图 3-7 数码管电路3.6 时钟电路的设计XTAL1 为反向放大器输入,XTAL2 为反向放大器输出。该反向放大器可以配置为片内振荡器。可以采用石晶振荡或者陶瓷振荡。若要使用外部时钟源驱动器件,XTAL2 不接
39、。一个机器周期共有 12 个振荡周期(一个机器周期含 6 个状态周期,一个状态周期为 2 个振荡周期),如果外接石英晶体振荡器的振荡频率为 12MHZ,则一个振荡周期为 1/12us,因此一个机器周期是 1us。 以下为时钟电路设计图。 XMZTL图 3-8 时钟电路图3.7 复位电路的设计20一共有两种复位的方法,第一种是上电以后自动复位,时钟电路工作以后,单片机 RESET 端会持续给出 2 个机器周期的高电平信号,这样就完成了复位操作。例如,若使用晶振频率为 12MHz 时,则复位信号应保持两秒以上。本设计采用的就是是上电自动复位电路。另一种是外部按键复位,需要手动来进行复位。如图 14
40、 示为复位电路。图 3-9 复位电路图3.8 本章小结本章对超声波测距仪硬件部分中的 STC89C52 单片机,电源,HC-SR04 超声波模块,报警电路,时钟电路以及复位电路进行了简单的介绍。214 软件设计C 语言是整个世界范围内流行程度,应用程度最广泛的高级计算机语言,他保持了 B 语言接近硬件和语言表达精炼的优点,却又改掉了它们过于的简单和没有数据类型数据类型等缺点。C 语言的特点之一主要表现在有多种数据类型,开发 C 语言可以降低用它所写的软件对其硬件平台的依赖程度,并拥有强大的可移植性。C 语言是一种用途极其广泛,功能非常强大,使用非常灵活的编程语言,软件的编写和硬件的编写都可以使
41、用。C 语言的关键字有 37 个,控制句是 9 种。程序书写形式比较自由。C 语言的一大优势是可以直接访问物理地址,无论是生成目标代码的质量,或者是 C 语言程序执行的效率,都是非常高的。软件部分使用 C 语言进行编写。因为 C 语言对于实现比较复杂的算法方面有一定优势,而汇编语言则具有较高的效率,计算程序运行时间也更加精细。超声波测距仪的程序设计有较多复杂的计算,所以控制程序主要采用 C 语言进行编写。本次超声波测距仪系统的程序采用的编程语言为 C 语言,基于 Keil Vision4 开发平台。C 语言是一门使用相当普遍的一款计算机编程语言,受到了广大计算机使用者的追捧。C 语言给计算机编
42、程提供了简单的编程方法而且容易操作的低级处理器最主要还是减少了很多不必要的机器代码以及随时随地很方便的进行计算机编程。更加容易读懂学习、更加容易使用。4.1 主程序工作流程图超声波测距程序所需要实现的功能并不是非常复杂,所以本设计的程序主要是以顺序的方式进行。主程序主要负责进行整个超声波测距仪的初始化工作,并且循环调用各个子模块以实现功能,整个主程序的设计思路是:系统初始化以后超声波传感器开始测距,当测量得到的距离大于了所设定的报警距离时,超声波传感器将会继续发射超声波进行测量,当测量所得到的距离小于或者等于所设定的报警距离时,系统将开启报警电路,蜂鸣报警器将开始报警。若改变测量距离,则再次进行测量,若没有改变距离,报警电路继续工作。按硬件结构和所需实现功能分析可知系统主程序工作流程图如下;22图 4-1 主程序工作流程图