基于AT89C51的倒车测距报警器的设计 【毕业论文】 .doc_第1页
基于AT89C51的倒车测距报警器的设计 【毕业论文】 .doc_第2页
基于AT89C51的倒车测距报警器的设计 【毕业论文】 .doc_第3页
基于AT89C51的倒车测距报警器的设计 【毕业论文】 .doc_第4页
基于AT89C51的倒车测距报警器的设计 【毕业论文】 .doc_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计 基于at89c51的倒车测距报警器的设计 摘 要超声波测距在倒车雷达、液面高度测量等场合有着广泛的应用。本文根据超声波测距离原理,设计了一个简易的超声波倒车测距报警系统。系统主要由控制器模块、超声波收发模块、距离显示模块、声音提示模块、电源模块构成。控制器通过定时器产生周期的脉冲方波信号,经电声转换电路后发出超声波,同时打开定时器计时。声电转换电路将超声波的回波信号转换为电平送单片机中断,根据定时器计得的收发时间差计算障碍物的距离。本设计分析了超声波测距原理,给出了系统的总体设计方案,完成了具体硬件电路图设计以及软件程序设计,最后对系统进行了测试。测试数据表明系统具有较高的精度,较低成本的优点,因此具有一定的实际应用价值。关键词at89c51;超声波测距;led数码管显示design of the ranging reversing alarm based on at89c51 abstract: there is a wide range of occasions where ultrasonic ranging can be applied, such as in reversing car and liquid level measurement. based on the ultrasonic distance measurement principle, this paper aims at designing a simple ultrasonic reversing ranging alarm system. the system mainly includes the controller module, ultrasonic receiving module, display module, the voice prompt distance module and power supply module. the controller module generates periodic pulse square wave signal through the timer. then the conversion circuit emits ultrasonic waves and the timer is opened at the same time. the seismoelectric conversion circuit of the ultrasonic echo signal is converted to a voltage, which is sent to the scm interrupt port. the scm calculates the distance of the obstacle according to measured transceiver time difference. this paper analyzes the ultrasonic ranging principle, gives the overall design of the system and completes the concrete hardware circuit design, software program design and the final test of the system. the test data show that the system has higher accuracy together with its low cost. the utility model has a certain practical value.key words: at89c51;ultrasonic ranging;led display目 录第一章 绪 论11.1 课题研究背景11.2 超声波测距发展历程11.3 超声波测距研究现状21.4 课题主要任务2第二章 系统总体设计32.1 设计方案论证32.1.1 控制模块32.1.2 测距模块32.2 系统总体设计方案4第三章 系统硬件电路设计63.1 系统主控电路设计63.1.1单片机at89c51简介63.1.2 时钟电路93.1.3 复位电路93.2 超声波发射与接收电路的设计103.2.1 超声波发射电路的设计103.2.2 超声波接收电路的设计103.3 测距显示电路的设计113.3.1 led数码管简介113.3.2 led数码管显示电路的设计113.4 报警电路的设计123.5 系统硬件电路原理图13第四章 系统软件程序设计144.1 系统主程序设计144.2 系统子程序设计144.2.1 定时器中断服务子程序144.2.2 数码管显示与计算程序174.2.3 报警程序设计194.3 软件程序的编译调试194.3.1 keil uvision软件简介194.3.2 搭建软件开发工作环境204.3.3 程序编写与编译22第五章 实物制作及系统测试245.1 实物制作245.1.1 pcb板的制作245.1.2 元器件的安装及焊接245.3 系统测试25结束语27致 谢28参考文献29附录a 系统硬件电路原理图30附录b 系统pcb图31附录c 系统实物图32【精品文档】世界上,成功的有两种人,一种人是傻子,一种人是疯子。傻子是会吃亏的人,疯子是会行动的人!第一章 绪 论1.1 课题研究背景 随着我国经济的飞速发展,交通运输车辆的不断增多,由此产生的交通问题越来越成为人们关注的问题。其中倒车事故由于发生的频率极高,已引起了社会和交通部门的高度重视。倒车事故发生的原因是多方面的,倒车镜有死角,驾车者目测距离有误差,视线模糊等原因造成倒车时的事故率远大于汽车前进时的事故率,尤其是非职业驾驶员以及女性更为突出。而倒车事故给车主带来许多麻烦,例如撞上别人的车、消防水笼头,如果伤及儿童更是不堪设想,有鉴于此,汽车高科技产品家族中,专为汽车倒车泊位设置的“倒车雷达”应运而生,倒车雷达的加装可以解决驾驶人员的后顾之忧,大大降低倒车事故的发生。汽车倒车雷达全称为“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除驾驶员泊车和起动车辆时因前后左右探视所引起的困扰,并帮助驾驶员克服视野死角和视线模糊的缺陷,提高驾驶的安全性。倒车雷达的原理与普通雷达一样,是根据蝙蝠在黑夜里高速飞行而不会与任何障碍物相撞的原理设计开发的。通过感应装置发出超声波,然后通过反射回来的超声波来判断前方是否有障碍物,以及障碍物的距离、大小、方向、形状等。只不过由于倒车雷达体积大小及实用性的限制,目前其主要功能仅为判断障碍物与车的距离,并做出提示。1.2 超声波测距发展历程自19世纪末到20世纪初,在物理学上发现了压电效应和反压电效应之后,人们解决了利用电子技术产生超声波的方法,从此迅速揭开了发展与推广超声技术的历史进程。1993年,徕卡测量系统在法国batimat展出世界第一台手持式激光测距仪,徕卡第一代迪士通以其坚固耐用,可靠精密的特性引起了人们的关注。随后徕卡在1998年推出迪士通第二代basic、1999年推出迪士通第三代classic、2001年推出四款第四代、2002年推出classic5、lite5第五代测距产品,测量距离范围在0.2-200m之间,单次测量时间不到1秒,作为职场的领跑者,徕卡测量系统的发展历程见证了超声波测距技术的发展过程。1.3 超声波测距研究现状目前,在国际和国内上,在超声测距方面的研究方向的不同和研究水平的高低,主要体现在测距原理上。随着电子技术的发展,出现了微波雷达测距、ccd测距、激光测距和超声波测距等多种形式的测距方法,前几种测距法由于技术难度大、成本高等因素,主要用于军事工业方面。而超声波测距则由于其技术难度较低,成本低廉等特点,在一般测量领域应用广泛。如汽车倒车雷达,目前的汽车倒车雷达主要是具有蜂鸣器的语音报警以及距离显示为主的汽车安全系统。这些系统主要采用的是以单片机为控制核心的智能超声波测距传感器和蜂鸣器报警系统,这种汽车安全辅助系统便宜耐用,而且达到了汽车电子系统网络化的发展需求。1.4 课题主要任务 本课题主要是利用单片机at89c51设计一款简易的倒车测距报警器,应用于汽车倒车位置监控与报警。在汽车倒车时,系统能实时显示汽车尾部与障碍物之间的距离,以便司机及时掌握倒车时车尾状况,做出正确的判断。当车尾与障碍物距离等于或小于50cm时,系统触发蜂鸣器报警电路进行报警提示,提醒司机及时停车。结合本课题的主要任务,提出系统总体设计方案,完成系统硬件电路图的绘制,软件程序设计以及实物的制作,最后能够完成测试运行。 第二章 系统总体设计本课题主要任务是设计一款简易的倒车测距报警器,应用于汽车倒车位置监控与报警。该报警器主要包括控制模块、测距模块、声音模块、距离显示模块、电源模块五个部分,控制模块和测距模块是本设计的核心,下面我们将从这两个个方面对系统方案进行论证与选择。2.1 设计方案论证2.1.1 控制模块随着自动化技术的不断发展,在自动控制系统的设计过程中都会面临核心控制元件选择的困惑,对于绝大部分的控制任务来说。无论是采用单片机还是plc都能完成方案设计,但最终选择还是要根据实际任务需求来定。(1)可编程逻辑控制器(plc)plc发展初期主要用于开关量的逻辑控制,随着plc技术的进步,它的应用领域在扩大,不仅可以用于开关量控制,还可用于模拟量及数字量的而控制,可采集与存储数据,并进行联网、通讯等,如今,plc已成为工业控制中核心元器件之一。其主要优点是功能完善,稳定性高抗干扰能力强,扩展性好,硬件维护方便,编程简单。缺点是价格较高,体积较大。(2)单片机单片机与plc本质是相同的,它们的发展都是基于微处理技术,而plc实际上是建立在单片机之上的一种产品,而单片机实际上是一个集成电路,体积相对较小,成本低,经济实惠,但利用单片机实现的主控板受软件布局、环境温度、制板工艺等影响,稳定性和抗干扰性相对较弱。对比这两种核心控制元件,两者各有优缺点,根据本课题设计任务,汽车倒车报警装置体积要小,这样便于携带、安装、不占用汽车空间,显然由于plc体积大的特点而不符合设计要求,因此本设计采用at89c51单片机作为核心控制元件。2.1.2 测距模块(1)激光测距激光由于其本质性的成因使得激光具有亮度高、单色性好、方向性好、传光性好等特点,而激光测距则利用激光的方向性强和传光性好的特点,用脉冲激光器向目标发射一列很窄的光脉冲(脉冲宽度小于50ns),光达到目标表面后部分被反射,通过测量光脉冲从发射到返回接收机的时间,可算出测距地点与目标之间的距离。 假设所测距离为h,光脉冲往返时间为t,光在空中的的传播速度为c,则: h=ct/2,脉冲激光测距最大测距也能达到30000m以上,其测距精度一般为5米,.最高的可达0.15m。由于激光对人体存在安全问题,而且制作的难度大成本也比较高,主要在军事上用于对各种非合作目标的测距,也可在气象上用于测定能见度和云层高度.以及应用在对人造卫星的精密距离测量等领域。(2)红外线测距红外线测距原理是红外光遇到障碍物会反射回来,而反射回来红光的强弱由距离而定,距离越远,红光强度越弱,根据这个特点能够进行障碍物距离远近的测量。其优点是成本低廉,使用安全,制作简单,缺点就是测量精度低,方向性也差,测量距离近。(3)超声波测距超声波是一种超出人类听觉极限的声波即其振动频率高于16khz的机械波。超声波测距就是将电压和超声波之间的互相转换,发射超声波的探头将电压转化的超声波发射出去,当接收超声波时,超声波接收探头将超声波转化的电压回送到控制芯片。超声波具有振动频率高、波长短、绕射现象小而且方向性好还能够为反射线定向传播等优点,在中、长距离测量时,超声波测量的精度和方向性都要大大优于红外线测量。从安全性,成本、方向性等方面综合考虑,超声波传感器更适合设计要求。根据对以上三种测距方法的比较,很明显激光传感器是比较理想的选择,但是它的价格却比较高,而且安全度不够高。因此在一般测距中不具有普遍适用性,而超声波测距具有较强的抗干扰能力和较短的响应时间,在精度和方向性上都优于红外测距,因此本方案的距离测量部件选用超声波测距模块。2.2 系统总体设计方案 根据方案的论证与选择,本设计以单片机at89c51为控制核心,外围配置超声波发射接收模块、声音提示模块、距离显示模块、电源模块四部分。系统总体设计方框图如图2-1所示。图2-1 系统总体设计方框图其中,超声波发射模块选用软件发生超声波法,利用软件产生40khz的超声波信号,通过输出引脚输入至驱动器,经驱动器驱动后推动探头产生超声波。超声波接收模块包括超声波接收探头、信号放大电路及波形变换电路三部分。探头变换后的正弦波电信号经放大电路放大并进行波形变换。声音提示模块采用蜂鸣器报警电路,倒车时,车尾与障碍物之间距离小于所设定的安全值时,发出蜂鸣声提醒驾驶员。鉴于led数码管显示简洁、价格便宜等特点,距离显示模块采用4位led数码管动态显示。第三章 系统硬件电路设计根据系统总体设计方案,系统以单片机at89c51为控制器,时钟电路、手动复位电路、电源和控制器一起构成主控电路。利用单片机的定时器产生超声波的周期方波信号,经单片机p1.0口输出,通过信号调理和换能电路后发出超声波。利用单片机中断口p3.2接收回波信号,计算时间差并换算距离信息。距离显示电路采用4位led数码管显示,单片机的p2口的高四位提供数码管的位选信号,p0口作为数码管的段码;声音提示电路采用蜂鸣器报警,由单片机的p3.4驱动蜂鸣器报警电路发出提示声音。3.1 系统主控电路设计该系统以at89c51为核心,配置时钟电路、复位电路以及电源电路,构成系统主控电路。具体主控电路如图3-1所示。图3-1系统主控电路图3.1.1单片机at89c51简介at89c51是一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash 存储器。at89c51具有以下标准功能:8k字节flash,256字节ram,32 位i/o口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(wdt)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护外围硬件电路。at89c51有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上flash允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。其芯片引脚示意图如图3-2所示。图3-2 at89c51引脚示意图主要引脚功能介绍如下:p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,具体功能如表3-1所示。表3-1 p3口引脚功能表p3口引脚第二功能p3.0rxd(串行口输入)p3.1txd(串行口输出)p3.2int0(外部中断0输入)p3.3int1(外部中断1输入)p3.4t0(定时器0外部脉冲输入)p3.5t1(定时器1外部脉冲输入)p3.6wr(外部数据存储器写脉冲输出)p3.7rd(外部数据存储器读脉冲输出)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。3.1.2 时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。本系统采用内部振荡方式,在at89c51引脚xtal1和xtal2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。具体系统时钟电路如图3-3所示。图3-3 时钟电路3.1.3 复位电路复位电路有上电复位和手动复位两种。本系统采用手动复位方式,具体电路如图3-4所示。系统上电时, rc电路开始充电,因为电容电压不能突变,使rst端的电位接近vcc,以后rst端的电位将随电容充电而逐渐下降。只要rst端出现的正脉冲时间保持在10ms以上,就能使单片机有效地复位。工作过程中,需要手动复位时,按下按钮时,电容瞬间完成放电,vcc的+5v电平就会直接加到rst端,完成系统复位。图3-4 复位电路图3.2 超声波发射与接收电路的设计3.2.1 超声波发射电路的设计超声波发射电路主要由74ls04和超声波换能器构成,单片机p1.0端口输出40khz方波信号一路经一级反向器后送到超声波换能器的第一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高发射强度。具体电路图如图3-5所示。图3-5 超声波发射电路3.2.2 超声波接收电路的设计 超声波接收电路主要由cx20106a和超声波换能器构成,cx20106a是一款红外的专用芯片,考虑到红外遥控常用的载波频38k与测距的超声波频率40khz较为接近,故利用它制作超声波检测接收电路,具体电路图如图3-6所示。 图3-6 超声波接收电路3.3 测距显示电路的设计3.3.1 led数码管简介led数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连接的二极管组成;另一种是共阴极数码管,其内部是由八个阳极相连接的二极管组成。共阴极led数码显示块的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端),因此称为共阴极led数码显示器,8个数码管的另一端通常称为段选段,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮;共阳极led数码显示块的发光二极管阳极连接在一起,形成该模块的公共端,因此称为共阳极led数码显示器,8个数码管的另一端通常称为段选段,当显示器的公共端接高电平,某个发光二极管的阳极接低电平时,该发光二极管被点亮。二者原理不同但功能相同。led数码管外形结构图如图3-7所示。 图3-7 led外形结构图3.3.2 led数码管显示电路的设计led数码管显示方式有静态显示和动态显示两种。其中,静态显示就是显示驱动电路具有锁存功能,单片机将所要显示的数据送出后就不再控制led,直到下次显示时再传送一次新的显示数据。静态显示的数据稳定,占用的cpu时间少。静态显示中,每一个显示器都要占用单独的具有锁存功能的i/o接口,该接口用于笔划段字型代码。这样单片机只要把显示的字形代码发送到接口电路,该字段就可以显示发送的字形。要显示新的数据时,单片机再发送新的数据。另一种方法就是动态扫描显示。由于单片机本身具有较强的逻辑控制能力,所以采用动态扫描软件译码并不复杂。而且软件译码其译码逻辑可随意编程设定,不受硬件译码逻辑限制。采用动态扫描软件译码的方式能大大简化硬件电路结构,降低系统成本。它用分时的方法轮流控制各个显示器的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及二极管的余辉效应,给人的印象就是一组稳定的显示数据。本系统显示电路采用4位共阳极led数码管动态显示方式,位码用pnp三极管驱动,具体电路图如图3-8所示。图3-8 测距显示电路图3.4 报警电路的设计在单片机应用系统中,最常见的发声器件就是蜂鸣器。蜂鸣器一般用于一些要求不高的声音报警及发出按键操作提示音等。有源蜂鸣器最重要的特点是只要按照极性要求加上合适的直流电压就可以发出固有频率的声音,使用起来比扬声器简单。蜂鸣器是感性负载,一般不建议用单片机的 i/o 口直接对其进行操作,需要加一只驱动三极管。系统声音提示电路图如图3-9所示。三极管为pnp型,要使蜂鸣器发声,只要将单片机 p3.4 口置为低电平就可以了。图3-9 声音提示电路图3.5 系统硬件电路原理图根据对系统的控制模块、测距模块、报警模块、显示模块的设计与调试,系统硬件电路原理图如图3-10所示。图3-10 系统硬件电路原理图第四章 系统软件程序设计4.1 系统主程序设计本系统硬件电路设计以单片机at89c51为核心。程序设计采用模块化设计方法,整个软件程序设计由主程序、超声波发射子程序、定时器中断服务子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下电源按键时,主程序开始调用发射子程序、查询接收子程序、定时器中断服务子程序,并把测量结果用显示子程序在数码管上显示出来。虽然用一个单独计时器电路也可以测量超声波的传输时间,但利用at89c51单片机可以简化设计,便于操作和直观读数。系统主程序设计流程图如图4-1所示。系统初始化开 始延 时发送40khz的方波信号启动定时器及外部中断调用显示程序图4-1 系统主程序设计流程图4.2 系统子程序设计系统子程序设计主要涉及到超声波发射、接收子程序设计、定时器中断服务子程序设计以及led数码管显示子程序设计。4.2.1 定时器中断服务子程序定时器中断服务子程序设计流程图如图4-2所示。外部中断入口关外部中断关定时器中断读取时间值计算距离结果输出 开外部中断 返 回图4-2 定时器中断服务子程序设计流程图程序如下:void zhongduan0( ) interrupt 1 /t0中断用来计数器溢出,超过测距范围 flag=1; /中断溢出标志void zhongduan1( ) interrupt 2 /t1中断用来扫描数码管 th1=0xf8; /2ms定时 tl1=0x30; display(); timer+; if(timer=400) /800ms 启动一次模块 timer=0; tx=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); tx=0; void main( void ) tmod=0x11; /设t0为方式1,gate=1;th0=0;tl0=0; th1=0xf8; /2ms定时tl1=0x30;et0=1; /允许t0中断et1=1; /允许t1中断tr1=1; /开启定时器ea=1; /开启总中断 while(1) while(!rx); /当rx为零时等待 tr0=1; /开启计数 while(rx); /当rx为1计数并等待 tr0=0; /关闭计数 conut(); /计算 4.2.2 数码管显示与计算程序超声波测距时由安装在同一位置的超声波发射器和接收器完成超声波的发射与接收,由定时器计时。首先由发射器向特定方向发射超声波并同时启动定时器计时,超声波在介质传播途中一旦遇到障碍物后就被反射回来,当接收器接收到反射波后立即停止计时。此时,定时器就记录下了超声波自发射点至障碍物之间往返传播经历的时间t(s)。由于常温下超声波在空气中的传播速度约为340m/s,所以发射点距障碍物之间的距离为: s=340t/2=170 t 由于单片机内部定时器的计时实际上是对内部固定频率的机器周期t的计数,设计中时钟频率fosc取12mhz,设计数值n,则 t=12/fosc=1s,t=nt=n10-6(s) s=170nt=170n/10-6(m) 或s=17n/10-3(cm) 程序如下:void display(void) /扫描数码管if(posit = =0)p0=(discodedisbuffposit)&0x7f;elsep0=discodedisbuffposit;p2=positonposit;if(+posit=4)posit=0;/*/void conut(void)time=th0*256+tl0;th0=0;tl0=0; s=(time*1.7)/10; /算出来是mmif(s=1500)|flag=1) /超出测量范围显示“-” flag=0; disbuff0=10; /“-” disbuff1=10; /“-” disbuff2=10; /“-” disbuff3=10; /“-”else if(s=500)|flag=1) disbuff0=s%10000/1000; disbuff1=s%10000%1000/100; disbuff2=s%10000%1000%100/10; disbuff3=s%10000%1000%100%10; led=led; fmg=fmg; else led=0; fmg=1; disbuff0=s%10000/1000; disbuff1=s%10000%1000/100; disbuff2=s%10000%1000%100/10; disbuff3=s%10000%1000%100%10; 4.2.3 报警程序设计本设计报警有声光组合报警,在距离4.3 软件程序的编译调试4.3.1 keil uvision软件简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部分组合在一起,调试中使用的版本是uvision4。4.3.2 搭建软件开发工作环境在进行具体编程之前,必须先建立项目,在建立项目过程中设定软件工作平台所用的芯片、项目文件命名以及项目文件在计算机上存放的位置。然后建立程序文件,并把文件添加到项目中,最后才能进行具体的编程。具体步骤如下:1、新建项目通过project菜单下的new uvision project选项建立项目,如图4-3所示。图4-3 新建项目2、项目文件命名与保存在图4-4中所示的“文件名”位置填写项目文件名,然后在“保存在”位置选择项目文件在计算机中的存放位置,最点击“保存”。图4-4 项目文件命名与保存3、选择项目所用芯片保存好项目文件后,keil软件会提示你选择项目所用芯片,如图4-5所示,在本系统中我们选用的是美国atmel公司的at89s51芯片。图4-5 选择项目所用芯片4、建立程序文件项目建立好之后,我们就要建立程序文件。通过“file”菜单中的“new”选项建立一个文件,然后将这个文件保存成程序文件。在本项目中,采用的是c51语言进行程序编写的,建立的程序文件名为“*.c”,如图4-6所示。图4-6 程序文件的保存5、向项目添加程序文件如图4-7所示,通过鼠标右击“source group1”选择“add files to group source group1”,在弹出对话框中选择程序文件,如图4-8所示,然后点击“add”,完成添加操作。图4-7 添加程序文件 图4-8 选择程序文件4.3.3 程序编写与编译将程序编译并生成机器码。在编译之前需要对项目输出选项进行设定,设定项目在编译后生成hex格式机器码文件。如图4-9所示,鼠标右击“source group1”选择“options for group source group1”,如图4-10所示面板选择“output”选项卡,并勾选“create hex file”。图4-9 设定项目“选项”图4-10 设定项目生成“hex”文件设定好选项之后,通过点击工具栏上的“build”按钮进行编译,如图4-11所示,并生成如图4-12所示的编译结果。图4-11 点击build按钮进行程序编译图4-12 编译结果第五章 实物制作及系统测试5.1 实物制作5.1.1 pcb板的制作 利用protel99 se软件完成系统硬件电路原理图绘制,继续在protel99se软件中生成pcb电路板图,系统pcb图如图5-1所示。图5-1 系统pcb图pcb板制作过程中应注意对应关系不要出错,连接线的粗细在不影响导电的前提下,尽量粗些,然后就是注意它们的位置关系尽量美观均称。5.1.2 元器件的安装及焊接 按照电路板上所作的引脚功能和连接标注,进行相关元器件的安装与焊接。超声波发射和接收采用超声波换能器tct40-10f1和tct40-10s1,中心频率为40khz,安装时应保持两换能器中心轴线平行并相距3至4厘米,其余原件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可以提高抗干扰能力。焊接步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确保在整个系统焊接完成后能正常工作。首先焊接的是电源模块,我们主要采用直接方式,但注意电源不能接反,然后开始检查pcb和电路图,接下来是单片机最小系统的测试,焊接完以后发现系统没有问题,程序可以正常下载,然后是超声波发送模块的焊接,焊接完通电测试,将测试结果与测算出来的结果进行比较,从中寻找问题在分析出问题的原因。制作好的实物如图5-2所示。图5-2 实物图5.3 系统测试硬件电路制作完毕后,便可将编译好的可执行文件下载到单片机试运行。根据实际情况修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。系统调试完成后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。用本装置测量30cm时,装置实际测量距离如图5-3所示,误差为:用本装置测量50cm时,装置实际测量距离如图5-4所示,误差为:用本装置测量70m时,装置实际测量距离如图5-5所示,误差为用本装置测量1m时,装置实际测量距离如图5-6所示,误差为用本装置测量2cm时,装置实际测量距离如图5-7所示,误差为图5-13 系统测试图通过对测试数据对比,计算测量误差,并对系统可能出现的误差原因进行分析,根据超声波测距公式l=vt/2,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。当要求测距误差小于1mm时,假设超声波速度v=340m/s(20室温),测距误差小于0.001/3400.000002941s即2.941ms。在忽略超声波的传播误差前提下,测量距离的传播时间差值精度只要在小于2.94

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论