《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc

上传人:椰子壳 文档编号:11033272 上传时间:2021-06-19 格式:DOC 页数:24 大小:6.34MB
返回 下载 相关 举报
《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc_第1页
第1页 / 共24页
《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc_第2页
第2页 / 共24页
《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc_第3页
第3页 / 共24页
《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc_第4页
第4页 / 共24页
《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc》由会员分享,可在线阅读,更多相关《《现代通信技术》专业课程设计-基于单片机控制的超声波测距报警系统设计.doc(24页珍藏版)》请在三一文库上搜索。

1、.现代通信技术专业课程设计 基于单片机控制的超声波测距报警系统设计系 部: 电子与信息工程系 专业班级: 电子信息工程07秋2班 学生姓名: 学 号: 小组成员: 指导教师: 时 间: 2010.12.20 2010.12.31 完成时间: 2010 年 12 月3212010.12 上海师范大学天华学院电子信息工程系现代通信技术专业课程设计 目录1 绪论11.1 设计的目的及其意义11.2 设计任务及要求12 总体方案22.1 总体设计方案22.2 超声波测距框图33 系统硬件设计43.1 硬件设计方案43.1.1 超声波测距原理43.1.2 硬件电路设计43.2 各主要模块的硬件设计43.

2、2.1 超声波发射电路63.2.2 超声波检测接收电路73.2.3 显示电路设计83.2.4 复位功能84 软件方案104.1 程序设计104.2 程序流程说明104.2.1 主程序104.2.2 定时中断服务子程序114.3 程序清单115 调试过程12215.1 使用仪器设备125.2 调试中的问题及解决方案125.2.1 软件调试中的问题及解决方案125.3 功能显示136 课程设计收获156.1 课程设计的心得体会15参考文献16附录16程序清单161 绪论 1.1 设计的目的及其意义利用超声波作为定位技术是蝙蝠等一些无目视能力的生物作为防御及捕捉猎物生存的手段,也就是由生物体发射不被

3、人们听到的超声波(20kHz以上的机械波),借助空气媒质传播,由被待捕捉的猎物或障碍物反射回来的时间间隔长短与被反射的超声波的强弱判断猎物性质或障碍位置的方法。超声波是由机械振动产生,可在不同介质中以不同的速度传播。而且超声波的速度相对于光速要小的多,其传播时间就比较容易检测。并且超声波具有定向性好、能量集中、在传输过程中衰减较小、反射能力较强等优点,超声波传感器可广泛应用于非接触式检测方法,因而采用仿真技能利用超声波测距【1】。 由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。在精密的液位测量中需要达到毫米级的测量精度,但是目前国

4、内的超声波测距专用集成电路都是只有厘米级的测量精度。通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92温度传感器进行声波传播速度的补偿后,我们设计的高精度超声波测距仪能达到毫米级的测量精度【2】。 1.2 设计任务及要求 利用所学数字电子技术、信号处理、控制等技术,设计、制作并调试完成一个单片机最小化系统。在此基础上,将最小系统与综合实验开发平台上的超声波模块、显示模块进行正确的连接(如图1.1所示),使单片机可接收超声波模块输出的距离信号,并对其进行合理的处理后,在显示模块上实时显示超声波模块与障碍物的距离。图1.1 系统连接示意图具体要求:l 实验开发平台上的数码管可

5、实时现实障碍无语超声波的距离信息,单位为cm,精确到小数点后1位;l 当测试距离小于10或大于50时报警,且以上两种情况的报警方式需有明显的区别;l 系统应具备测距启动功能,或当系统报警后,可以复位系统,使其开始重新测距。2 总体方案2.1 总体设计方案测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。由于超声波在空气中传播时会有相当的衰减,衰减的程度与频率的高低成正比【3】。根据设计要求并综合各方面因素,本文采用STC89C52单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。由单片机STC89C52编程产

6、生40kHz的方波,经P3.3口连接到开发平台的超声波模块发送超声波,再经过放大电路,驱动超声波发射探头发射超声波。发射出的超声波经障碍物反射回来后,经过P3.2口由超声波接收头接收到信号。通过接收电路的检波放大、积分整形及一系列处理,送至单片机。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制在开发平台的显示模块中显示出来。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求【4】。 2.2 超声波测距框图单片

7、机发出40kHZ的方波信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t;再通过软件编程进行判别、计算,得出所测距离数并经由LED数码管显示,其原理框图如图2.1。图2.1 超声波测距仪原理框图发射器发出的超声波以速度在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t。由公式:测出的距离=常温下的声速340感应时间,算出被测物体的距离。由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高

8、,则应通过温度补偿的方法加以校正【5】。3 系统硬件设计3.1 硬件设计方案 3.1.1 超声波测距原理单片机在时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一个负跳变到单片机中端口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间,由此便可计算出距离。其时序图如图3.1所示。图3.1 超声波时序图 3.1.2 硬件电路设计硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用STC89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P2.4端口输出超声波换能器所需的

9、40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用程序驱动,位码用PNP三极管驱动。3.2 各主要模块的硬件设计1.STC89C51芯片简介5l系列单片机中典型芯片(STC89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,8kB的ROM,256 B的RAM,2个16b的定时计数器TO和T1,4个8 b的工O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统

10、中更为有用【6】。该系列单片机引脚与封装如图3.2所示。图3.2 STC89C51引脚图2.引脚功能说明(1)VCC:电源电压(2)GND:接地(3)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(4)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。(5)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(6)XTAL2:来自反向振荡器的输出。(7)P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。作为输出口用时,每脚可吸收8TTL门电流。(8)P1口:P1口是一个

11、内部提供上拉电阻的8位双向I/O口,P1口缓冲器能吸收或输出4TTL门电流。 (9)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可吸收或输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。(10)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可吸收或输出4个TTL门电流。P3口也可作为AT89C52的一些特殊功能口,如下表1所示。表3.1 P3特殊功能口口管脚备选功能P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记时器1外部输入

12、P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。(11)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。(12)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现【7】。 3.2.1 超声波发射电路超声波发射电路原理图如图3.3所示。发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P3.3端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另

13、一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间【8】。图3.3 超声波发射电路原理图 3.2.2 超声波检测接收电路集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路(如图3.4)。实验证明用CX201

14、06A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力【9】。图3.4超声波检测接收电路 3.2.3 显示电路设计显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三级管驱动。接P2.1引脚的为个位显示数码管,其小数点在P2.1有效时显示,此功能由软件来完成。 3.2.4 复位功能系统应具备测距启动功能,可以复位系统,使其开始重新测距。采用开发平台中的按键模块实现。综上所述本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用STC89C52,经济易用,且片内有8K的ROM,便于编程。电路原理图如图3.5所示

15、。图3.5 电路原理图4 软件方案4.1 程序设计系统软件设计采用模块化设计,主要包括主程序设计、T0中断服务子程序、外部中断服务子程序、距离计算子程序、LED显示子程序设计等。主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0和P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms,然后才打开外中断0接收返回的超声波信号【10】。测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出

16、距离,主程序采用C语言编写。4.2 程序流程说明 4.2.1 主程序l 系统控制初始化LED、初始化计数控制部分,清除计数值。l 单片机超声波脉冲信号。l 立刻置INT0为1,打开计时器,等待回波信号。l 回波信号到达,关闭计时器,P3.3为0,清INT0为0。l 单片机读出计数值。l 单片机将计数值进行计算后得出的距离值,显示在LED上。l 当超出测量距离小于0.1m或大于0.5m时,报警系统灯亮。l 当按下复位键时,启动复位功能。主程序流程图如图4.1所示。图4.1 主程序流程图 4.2.2 定时中断服务子程序超声波发生子程序的作用是通过P3.3端口发送2个左右频率约40kHz的方波的超声

17、波脉冲信号,同时把计数器T0打开进行计时。定时中断子程序如图4.2所示。图4.2 定时中断服务子程序 4.3 程序清单源程序详见附录。5 调试过程5.1 使用仪器设备整个测距系统由单片机最小系统、实验开发平台(其中用到超声波收发模块、数码管显示模块、按键模块)、PC机、跳线若干根组成。5.2 调试中的问题及解决方案 5.2.1 软件调试中的问题及解决方案根据实际情况可以修改超声波子程序每次发送的脉冲宽度和两次测量的时间间隔,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测得范围为0.10.5m,当超过范围时发生LED亮灯报警,同时设置启动自动复位,使其重新测距。 A.测距程序程

18、序中最难的部分是测距程序。由于该超声波测距模块对时序的要求很高,要求在输入端产生40kHz的方波。因为在程序的大循环中,尤其它程序造成延时的误差,导致产生的方波并不算是需要的40kHz。这样该模块就无法正常运行,导致测距失败。后来,我们修改了延时,矫正了时序,并用示波器进行测量,在P3.3引脚上得到了40kHz的方波。 B.报警功能由于报警时要使LED灯闪烁,即需高电平与低电平交叉。其中在高低电平转换时需要延时,我们错误的将报警子程序放入主程序,导致数码管不能正常的进行动态扫描。将报警子程序以定时器1的方式放入中断函数或将动态扫描程序放入定时器1,都可解决问题。经过多次尝试,以及大家地讨论终于

19、成功写出了报警系统的亮灯功能。5.3 功能显示如图5.2所示,通过数码管显示测出的距离为,属于10cm50cm正常范围。图5.1 超声波测距正常范围如图5.3所示,超声波测出的距离为,小于10cm,报警系统启动,LED灯亮。图5.2 超声波测距小于10cm 如图5.4所示,超声波测出的距离为,大于50cm,报警系统启动,LED灯亮。图5.3 超声波测距大于50cm 如图5.5所示,按下键盘模块中的按键,复位系统,数码管显示距离数归零。图5.4 启动复位功能 6 课程设计收获6.1 课程设计的心得体会作为一名电子信息工程的学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的,在已度过的大

20、学时间里,我们大多数接触的是专业课。在课本上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业理论运用到实践中?我想这次课程设计提供了良好的平台。在做本次课程设计的过程中,我感触最深的当属于实物制作和调试的过程,为了让设计更完善,我们查阅了大量的资料,经过多次小组讨论,修改程序,不断调试,终于初见成果。在这期间,我一度感到沮丧,因为在我的设想中能实现的功能放到实物中往往会遇到各种问题,为了解决这些问题,花费大量的经历和时间,从中我也学到了我们一切都要有据可依,不切实际的构想无法升级为设计。通过这次的课程设计的制作让我对单片机的理论有了更加深入的了解,同时在具体制作实物

21、的过程中,我发现书本上的知识与实际应用存在着差距,书本上的知识很多都是理想化的结论,忽略了很多实际因素或者问题,这让我们无法根据书本上的理论就轻易得到预想中的结果。通过这次实践使我更深刻的体会到了理论联系实际的重要性,以及我们实物制作的动手能力。我们在今后的学习工作中会更加的注重实际,避免成为只会纸上谈兵的赵括。从中我也学会了凡事要耐心和坚持。最后,我在此要感谢各位给予我帮助的同学和我们小组的其他两位成员,没有他们的帮助无法独自完成这次课程设计。特别要感谢我们的指导老师,两位指导老师不辞辛劳的回答我们的问题,和我们一同讨论并解决问题。参考文献1 沙占友集成化智能传感器原理与应用M北京:电子工业

22、出版社,20042 吴研超声波倒车雷达系统设计 J北京:北京理工大学,20053 肖景和,赵健红外线热释电与超声波遥控电路M北京:人民邮电出版社,20034 史谚宾基于AT89C2051的超声波测距仪设计J北京:航空航天出版社,20065 路锦正,王建勤.超声波测距仪的设计M成都:成都理工大学,19996 基于单片机智能系统的设计与实现M北京:人民邮电出版社,20057 赖寿宏微型计算机控制技术M北京:机械工业出版社,20028 王兆安,黄俊电力电子技术M北京:机械工业出版社,20039 邱关源电路M北京:高等教育出版社,199910 尤一鸣.单片机总线扩展技术第一版M.北京:北京航空航天大学

23、出版社,1993附录程序清单/超声波模块显示程序#include /包括一个52标准内核的头文件#define uchar unsigned char /定义一下方便使用#define uint unsigned int#define ulong unsigned longsbit Tx = P33; /产生脉冲引脚sbit Rx = P32; /回波引脚sbit Warning_LED=P17;sbit key=P16;uchar code SEG710=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/数码管0-9uint distanc

24、e4; /测距接收缓冲区uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; /自定义寄存器bit succeed_flag; /测量成功标志/函数声明void conversion(uint temp_data);void delay_20us();void pai_xu();void main(void) / 主程序 uint distance_data,a,b; uchar CONT_1; i=0; flag=0;Tx=0; /首先拉低脉冲输入引脚TMOD=0x11; /定时器0,定时器1,16位工作方式 ,timer0用显示TR0=1; /启动

25、定时器0 IT0=0; /由负沿触发外部中断ET0=1; /打开定时器0中断EX0=0; /关闭外部中断EA=1; /打开总中断0while(1) /程序循环 EA=0; Tx=1; delay_20us(); Tx=0; /产生一个20us的脉冲,在Tx引脚 while(Rx=0); /等待Rx回波引脚变高电平 succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; /定时器1清零 TL1=0; /定时器1清零 F1=0; TR1=1; /启动定时器1 EA=1;while(TH1 30);/等待测量的结果,周期65.535毫秒 TR1=0; /关闭定时

26、器1 EX0=0; /关闭外部中断if(succeed_flag=1) distance_data=outcomeH; /测量结果的高8位 distance_data=3) CONT_1=0; b=a; conversion(b); i=0; /外部中断0,用做判断回波电平void INT0_() interrupt 0 / 外部中断是0号 outcomeH =TH1; /取出定时器的值 outcomeL =TL1; /取出定时器的值 succeed_flag=1; /至成功测量的标志 EX0=0; /关闭外部中断/定时器0中断,用做显示void timer0() interrupt 1 /

27、定时器0中断是1号TH0=0xfd; /写入定时器0初始值TL0=0x77;switch(flag) case 0x00:P0=ge; P2=0x7f;flag+;break; case 0x01:P0=shi;P2=0xbf;flag+;break; case 0x02:P0=bai;P2=0xdf;flag=0;break; /显示数据转换程序void conversion(uint temp_data) uchar ge_data,shi_data,bai_data ; bai_data=temp_data/100 ; temp_data=temp_data%100; /取余运算 shi

28、_data=temp_data/10 ; temp_data=temp_data%10; /取余运算 ge_data=temp_data;/LED报警程序 if(bai_data=0)&(shi_data0) Warning_LED=0; else if(bai_data4) Warning_LED=0; else Warning_LED=1;/按键复位程序 if(key=0) bai_data=0; shi_data=0; ge_data=0; bai_data=SEG7bai_data; shi_data=SEG7shi_data&0x7f;/小数点 ge_data =SEG7ge_data; EA=0; bai = bai_data; shi = shi_data; ge = ge_data ; EA=1; void delay_20us() uchar bt ; for(bt=0;btdistance1) t=distance0;distance0=distance1;distance1=t; if(distance0distance2) t=distance2;distance2=distance0;distance0=t; if(distance1distance2) t=distance1;distance1=distance2;distance2=t;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1