课程设计报告
(理、工、农、医用)
年(季):
专 业: 机械设
课 程: 传感
姓 名:,,
学 号:
成 绩:
摘要
摘 超声波具有指向性,能量消耗缓慢,在介质中传播距较等优点,因而,在利用传感器技术和自动控制技术相结合测距方案中,超声波测距是应最普遍的一,并且在测量精度方面能达到自动化的使用求,广泛应用于倒车雷达、位测量、建筑工工地以及
超波测距的原理是利用超波的发射和接受,根据超声波传的间来计算出传播距离。实用的测距方法有两种,一种是在测距离的两端,一端发射,另端接收的接波方式,适用于身高计;一种是发射波被物反射来后接收的反射波方式,适用于测距仪。次设计采
超声测距仪硬件电路的设计主要包括单片系统及显示电路、超声波发射电路和超声波检测接收路三分。单片机采用AT89C51或其兼容系列。采12M高精的晶,以获得较稳定时钟率,减小量误差。单片机用P1.0端口输出声波换能器所需40kHz的方波信号,利用外中断0口测超声波接收电路输出的返回号。显示路采用简单实用的4位共阳LED数码,段码用74LS244驱动,位码用PNP三极管8550
本课详细介绍了超声波传感器的原理和性,以及Atmel公司的AT89S51单片机的能和点,并在分析了声波测距的原理的基础上,指了设计测系统的思路和所需考虑的问,给出了AT89S51单片机核心的低本、高精度、微化数字显示超声波测距仪的硬件电路和件设计方法。该系统电路设计理、工作定、性能良好、检测速度快、计算简、易于做到实时控制,且在测量精度方能达到工业实用
关
目 录
摘要????????????????????????????????????????????????????????????????1 关键词??????????????????????????????????????????????????????????????1 1.引言??????????????????????????????????????????????????????????????1 1.1单片机超声波测距系统框????????????????????????????????????????1 2.超波测距工作原理????????????????????????????????????????????????2 2.1超波传感器????????????????????????????????????????????????????3 2.1.1声波发生器??????????????????????????????????????????????????3 2.1.2压电式超声波发生器原理????????????????????????????????????????3 2.1.3单机超声波测距系构成??????????????????????????????????????3 3.设计方案??????????????????????????????????????????????????????????4 3.1关于AT89S51单片机??????????????????????????????????????????????4 3.2超声波测距单系统????????????????????????????????????????????5 3.3超声波射和接收电????????????????????????????????????????????6 3.4显示电路????????????????????????????????????????????????????????7 3.5供电路????????????????????????????????????????????????????????7 3.6报警出电路????????????????????????????????????????????????????8 4.软件设计??????????????????????????????????????????????????????????8 4.1软件设计方法????????????????????????????????????????????????????8 4.1.1主程序设计????????????????????????????????????????????????????8 4.2超声测距程序流程???????????????????????????????????????????9 4.3超声波测距程序流程图?????????????????????????????????????????10 5.调试与能分析??????????????????????????????????????????????????10 5.1调试步骤???????????????????????????????????????????????????????10 5.2性能分析???????????????????????????????????????????????????????11 致谢???????????????????????????????????????????????????????????????11
1 引言
传感技术是现代信息技术的主要内容一。信息技术包括计算机技术、通信技术和传感器术,算机技术相当于的大脑,通信相当于人的神,而传感就相当于人的感官。比如度传感器、光电传感器、湿度传感、超声波感器、红外传感、压力传感器等等,其中,超声波传器在测量方面有着广泛、普的应用。用单片机控制超声波检测往往比较速、方便、计算简单、于做到实时控,并且测量精度较
超波测距系统主要应用于车的倒车雷达、机器人自动避障走、建筑施工工地以及一些工业现场例如:液位、井深、管长度等场合。因此研究超声波距系统的理有着很大的现实意义。对本课题的研究与计,能进一步提高自己的电路设计水平,深对单片机
1.1
图1-1 单片机超声波测距系统框图
基单片机的超声波测距系,是利用单片机编程产生频率40KHz的方波,经过发射驱动电路放大,使超声波传感发射端震荡,发射超声波。超波波经射物反射回来后,由传感接收端接收,再接收路放大、整形,控制单片机中断口。其统框图如
这以单片机为核心的超声波距系统通过单片机记录超声波发射时间收到反射的时间。当收到超声波的反射波时,接收电路输出产生一个负跳变,在单片机的外中断源输口产生一个中断请求信号,片机响应外部中断求,执外部中断服务子程序,读时间差,计算距,结果输
利单片机准确计时,测精度高,而且单片机控制方便,计算简。许多声波测
2 超
在超波探测电路中,发射端得到出脉冲为一系列方波,其宽度为发射超声时间隔,被测物离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。超声测大致 有以下方法:? 取出脉冲的平值电压,该电压 (其幅值基本定 )与距离成正比,量电压可测得距离;? 测量输出脉的宽度,即发射超波与接收超
- 1 -
故被距离为 S=1,2vt。本量电路采用第二种方案。由于超声波的声速与温有关,如果温度变化大,则可认为声速基本不变 。如果距精度要求很高,则应通 过温度偿 的方法加以校正。超声波测适用于高精度中长距离测量。因为超声波在标准气中的传播速度为331.45米/,由单片机负责计时,单片机使用12M晶振,所以此系的测量精度理上可以达到毫米
采用AT89S51单片机,晶振12M,单片机用P2.7口输出超声波能器需的40K波信号,P 3.5口监超声波接收电路输出的返回信,显示电路采用简单的3位共阳LED数码管,段输出端口为单片机的P2口,码输出端口分别为单片的P3.4、P3.2、P3.3口,
由于超声波属于波范围,其波速C与温有关
温
表2-1 声速与温度的关系
超声测距的算法设计: 这里我们一使用的是超声波在空气中传播速度为340m/s(15?时)。假T2是声波返回的时刻,T1是声波声的时刻,T2-T1得的是一时间差的绝对值,假定T2- T1=0.03S,则有340(m/s)×0.03(S)=10.2(m)。于10.2m是超声波发出到遇到返射物返的往返距离,因此实
即实
2.1 超声波传感器
2.1.1超声波发生器
超声发生器可以分为两大类: 一类是用电气方式产生超声波,一类是机方式产生超波。电气方式包括压电、磁致伸缩型和电动型等; 机械方式有加尔统笛、液哨和气流旋等。它们所生的超声波的频率、功率和波特性各不相同,因而途也不相同。目前较为常用的是电式超声波发生器,这里我们
2.1.2压电式超声波发生器原理
超波发生器内部结构有两个压电晶和一个共振板。当它的两极外加脉冲号,其频率等于电晶的固有振荡频,压电晶片
- 2 -
波。反之,如果两电极间未外电压,当共振板接收到超声波本时,将压迫电晶作振动,机械能转
2.1.3单片机超声波测距系统构成
单机AT89S51发出暂的40kHz信号,经放大后过超波换能器输出;反射后的超声波经超声波换能器作为系统输入,锁相环对此信号锁定,生锁定信启动单片机中断程序,读时间t,再由系统件对进行计算、判别后,相的计算结果被至LED数
限超声波系统的大可测距离存在四个素:超声波的幅度、反射物的质地、反射入射声波之间的夹以及接换能器的灵敏。接收换能
开始测量
超声波信号 驱动电路 电声换
关定时器 接收检测 电声换
显示器
图2-1 超声波测距过程框图
3 设计方案
按系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示块、超声发射
单机主控芯片使51系列AT89S51单片机,该单片机工作性能稳定;发射路由单片机输出端直驱动声波发送;接收路使用三极
单)AT89S51显示模块 超
机
控 制 系 统) 键盘模块
供电
图3-1 系统设计框图
硬件路的设计主要包括单片机系统及显示电路、声波发射电路和超声波接收电路、报警输出电路、供电电等部分。用AT89S51单机系统晶振采用12M高精度的晶振,以获较稳定钟频,减小测量误差,单片机P2.7口出超声波换能器所需的40K波信号,P3.5口监测超声波收电路输出的返回信号,显示电路采用简单的3共阳LED数码管, ,段码输出端为单片机的P2口,码输出端口分别为单片机的P3.4、P3.2、P3.3口,数管位驱运用PNP三管S9012三极管
3.1
AT89S51是美国ATMEL公司生产的功耗,高性能CMOS8位单片机,片内含4kbytes的可统编程的Flash只读程序存储器,器件采用ATMEL公司的密度、非易失性存储技术生,兼容标准8051指令系统及引脚。它Flash程序存储器既可在编程(ISP)也可用传统方法进行编程通用8位微处理器于单片芯片中,ATMEL司的功能强大,低价位AT89S51片机可为您提供许多高性比的应用场合,可活应用于各种控制
5l列单片机中典型芯片采用40引脚双列插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时,计数器TO和T1,4个8 b的,O端I:IP0,P1,P2,P3,一个全双功串行通信等组成。别是该系列单片机内的Flash可编程、可擦除只读存储(E~PROM),使其在实际有着十分泛的用途,在便携式、省电及特殊信息保的仪器和系统中更为有用。该系列单片机引与封装如图3-2
图3-2 51系列单片机封装图
- 4 -
5l列单片机提供以下功能:4kB存储器;256BRAM;32条工,O线;2个16b定时,计器;52级中断源;1个双向的串行口以及时钟电路。空闲式:CPU止工,而让RAM、定时,数器、串行和中断系统继续工作。掉方式:保存RAM的内容,振器停振,禁止芯片所有的其他功能直到下一硬件复位。5l系列单片机为许多制提供了度灵活低成本的解决办法。充分利用他的内资源,即可在较少外围路的情况下构成功完善的超声波测距
3.2 超声波测距单片机系统
超波测距单片机统主要由:AT89S51单片机、晶振、复位电路、电滤波部份构成。K1,K2组成测距系的按键电
图3-3 超声波测距单片机系统
3.3 超声波发射和接收电路
超声发射如图3-4,接收电路如3-5。超声波发射电路由电阻R1、三极管BG1、超声波脉冲变器B及超声波发送头T40成,超波脉冲变压器,在这里作用是提加载到超声波发送头两产端的电,以提高超声的发射功率,从而提高测量距离。接收电路由BG1、BG2成的两三级管放大电路构成;超声波的波电路、比较整形电
40kHz的方波由AT89S51单机的P2.7输出,经BG1推动超声波脉冲压器,在脉冲变压器级形成60VPP的电压,载到超声发送头上,驱动超声波发头发射声波。发送出的超声波,遇到障物后,产生回,反射回来的回波由超声波接收头接到。由于声波在空气中传时衰减,以接收到的波形幅值较低,经接收路放大,整形,最后出一负跳变,入单片机的P3
- 5 -
图3-4 超声波测距发送单元
该测电路的40kHz方波信号由单片机AT89S51的P2.7发出。方波的周期为1/40ms,25μs,半周期12.5μs。每隔半周期时间,让波输脚的平取反,便可产生40kHz方波。由于单片机系统的晶振为12M晶振,因而单片机的时间辨率是1μs,所以只能产生半周期为12μs或13μs的方波信号,率分别为41.67kHz和38.46kHz。系统在编程时选用了后者,让单片机产生约38.46kHz的
图3-5 超声波测距接收单元
由于射回来的超声波信号非常微弱,以接收电路需要将其进行放大。接收电路如图3-5所。接收到的信加到BG1、BG2组成的两放大器上行放大。每级放大器的大倍数为70倍。放大的信号通过检波电路到解调后的信号,即把多个脉冲波解调成多个大脉冲。这里使用的是I N 4148检波极管,输出的直流信号即两二极管间电容电压。该接收路结构简单,性较好,制作难度
3.4 显示电路
本统采用三位一体L E D 数码管显示所测距离,图3-6。数码管采用动态扫描显示,段码输出口为单片机的P2口,位输出端口
- 6 -
图3-6 显示单元图
3.5 供电电路
本测系统由于采用的是LED数码管用为显示方,正常工作时,系统工作电流约为30-45mA,为保证统统的可靠常工作,系的供电式主要交流AC6-9伏,同时为调系统便,供方式虑了第二种方式,即由USB口供电,调时直接由电脑USB口供电。6伏交流是经整流二极管D1-D4整流成脉动直流后,经虑波电容C1虑波后形成流电,为保证单片机系统的可电,供路中由5伏的端称压成电路进行稳压后输出5伏的真流电整个系统用电,为进一步提高源质量,5伏的直电再次经过C3、C4
图3-7 供电单元电路图
3.6 报警输出电路
为提高测测距系统的用性,本测距系统的报警输出供开关信
方一:报警信号由片机P3.1端口输出,电器输出,可驱动较大的负载,电路由电阻R6、三极管BG9、继电器JDQ组,当测量值低于事设定的报警值,继器吸合,测量值高于设定的报
方二:报警信号由单片机P0.2口输出,提供声响报警号,电路由电阻R7、三极管BG8、蜂鸣器BY组成,当量值低于事先设定的报警值时,蜂鸣器出“滴、滴、滴…..”警声响信号,测值高设定的报警值时,停止发出报警声响。警输出电
- 7 -
图3-8 报警输出电路
4 软件设计
4.1 软件设计方法
超声测距仪的软件设计主要由主序、超声波发生子程序、超声波接收中断程及示子程序组成。我们知道C语言程序有利实现较复杂的算法,汇编语言程则具有高的效率且容易精细计算程序行的时间,超声波测距仪的程序既有较复杂计算(计算距离时),又求精细算程序运行时间(超声波测距),所以控制程序采用C语言和
4.1.1主程序设计
主程序首是对系统环境初始,设定时器0为计数,设定时器1定时。置位总中断允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位ec=1时,测量一次,程序设计中,超声波距频度4-5次/秒。测距间隔中,整个程序主进行循环显测结果。当调用超声波测距程序后,首由单片机产生4个频率为38.46kHz超声波冲,加载的声波发送头上。超声波头发送完送超声波后,立启动内部计时器T0进计时,为了避免超声波从发射头直接传送到接收头引起直射波触发,这时,单机需要延约1.5 -2ms时间(也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,启动对片P3.5脚电平判断程序。当检测到P3.5脚的电平由高转为低平时,立即停止T0计。由于采用单机采用的是12M的晶振,计时器每计一个数就是1μs,当超声波距子程序检到接收功的标志位后,将计数器T0的数(即超声波来所用的时)按(2)计算,即可得被测物与测距仪之
设时取15?时的声为340 m/s则有:d=(c×t)/2=172×T0/10000cm其,T0为计数器T0的计值。 出距离后结果将以十制BCD码方式往LED显示约0.5s,然后再发超
- 8 -
4.2 超声波测距程序流程图
开始
初始化
启动定时器
=1 测量标志
=0
超声波测距
Y 距离>上限值
显示
距离
=N显示值= - - - 0 测段码
显示
距离<>
报警输出
- 9 -
4.3 超声波测距程子序流程图
超声波测距
N =1? 标志
Y N
发送超声波
启动计时器T0
延时避开盲区
N
收到回波否,
Y N 预设时间,
N
Y N
停止计时
计算测量值
结束
5
5.1 调试步骤
我们步骤是先焊接各个模块,焊接完每个模块以,再进行模块的单独测试,以确保在整个系统焊接完能正的工,原件装完毕后,写好程的AT89S51机装到测距板上,电将测距的超声头对着墙面往复移动,看码管的显示果会不会变化,在测量范围内否正常显示。如果一直显示“- - -”,则需将下限值增大。本测距板1s测4-5次,超声波发送功率较大时,测距离远,相应的下值(盲区)应设置为高值。试验板中声速没有进行温度补偿,声值为340m/s,值为15?时的超声
- 10 -
5.2 性能分析
从物测试的总体说本测距板基本上达了要求,理想上超声波测距能达到500到700厘左右,我们能实现的最大
1. 超声波发射部份电阻R1、三极管BG1、超波冲变压器B及超声波发送头T40构成,以提高声波的发射功率,从面提测量距离。这种方式,加大的超波了送头的余时间,造成超声波测距盲区值较大(本系
2.本测距板没有计温度补偿对测量结果进行修。但在
致谢
短的一学期的毕业设计就这结束了,在整个设计过程当中,经历挫和失败,但终获得成功。一直在不懈的努力,到最后收获真的大,在深刻地认识到自己在学习的薄弱环节同时,通过查阅资料和在老的帮助下以及理论分与实的反复进行和论证后许多题都基本能迎刃解,最终基
通这次的课程设计解决了何进行超声波测量距离,以及如何行计。在设计过程中巩固和加深在传感器技术课程中所学的理知识和实验技能。初步了解了拟仪器的基原理以及使用方法,对它认识有了进一步的深。理论联系实际的过程中提了对自动检测统的设计
- 11 -
参考文献
[1]赵建领 薛园园 51单片机开发与应用技术解 北京:电子工业出版社,2009 [2] 沈红卫. 于单机智能统设计与实现. 北京:电子工业出版社,2005 [3] 国 白 焰 董 51单片机实用C语言程设计 中国电出版社 2009 [4] 李芳,黄建. 单片微型计算机与口技术. 北京:电子工业出版社,2001 [5] 楼然苗、李光飞. 51系列单片机计实例. 京:北航空航天大学出版社,2003 [6] 王守中 51单片机开发入与典型实例. 北
- 12 -
超声波传感器课程设计
传感器课程设计
学
二〇一四年十二月
目 录
1、设计的…………………………………………………………2 2、设计任务及要求…………………………………………………2 3、超声波传感器模块………………………………………………2 3.1、特点……………………………………………………………2 3.2、工作原理………………………………………………………2 3.3、实物图…………………………………………………………2 3.4、电气参数………………………………………………………2 3.5、声波序图…………………………………………………3 4、硬件路分析……………………………………………………3 4.1、发电路………………………………………………………4 4.2、接收电路………………………………………………………4 4.3、检测电路………………………………………………………5 5、程设计…………………………………………………………6 6、思考问题…………………………………………………………6 7、课程设计感悟……………………………………………………7
一、设计目的:
1)掌握超声波感器测距的工作原理; 2)了
3)加深
4)掌握智能制系统的设计方法,及C语
5)加强学生的实际动能力,建立学生将课程内容与实际活相结的意
1)要求以AT89C51单片机为控制器,以超声波传器模块传感
2)系统根据所测到的距离,点亮不同的LED灯,要求当统障碍物的距离为1m时点亮1个LED灯,2m时点亮2个LED灯,…,5m时点亮5个LED灯。 3)当距离小于0.5m时驱动蜂鸣报警,该系统不需要显示具体距离。 三、超波传感器
HC-SR04超声波测距模块可提2cm-400cm的非接触式距离测功能,测距精可达到3mm;模包括超声波
基本工作原理:
(1)采用IO 口TRIG 触测距,给最少10us 的高电平信呈。 (2)模
(3)有信号返回,通过IO 口ECHO 输出个高电,高
波从发射到返回的时
如图接线,VCC 供5V 电源, GND 为地线, TRIG 发控信号输
4、电气参数:
5、超声波时序图:
以上序图表明你只需要提供一个10uS 以上脉冲触发信号,该模块内部将发出8 个40kHz 周期平并检测回波。旦检测到有回波信号则输出回响号。回响信的脉宽度与所测的距离成比。由此通发射信号到收到的回响信时间间隔以计算得到距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时*声速(340M/S)/2;建议测量周期为60ms 以上,以防止发射号对回响信号的响。 四、硬件电
系统件电路主要包括3个部分:发电路、检测电路、显示电路。系统整体框图如图所。发射电路采单片机端口编程输出40KHz左右的波脉冲信号,同时开启部定时器T0。单片机的输出端口一般驱能力较弱,为大测量距离可在发射电路上增加功放大电路。从接收传感器头传来的声回波很微弱(几十个mV级),又存在较强的噪声,以必须增加放
1、发射电路:
发电路主要目的是抬高入到发射探头的电压及功率。单电源乙类互对称功放大电
2、接收电路:
接收电路主要括两部分:前置放大电
前放大电路单元的作用对有用的信号进行放大,并抑制其他的声和干扰,从而
在感器接收的信号中,除了障碍物反射的回波外,总有波和干扰脉冲等环境噪声,而前端放大电路在放有用信号的同时,会将一分噪声信同时放大,并没有提输入信号的信比。用运算放大器构成一带通滤波器,
3、检测电路:
检电路要求保证次接收信号都能被准确鉴别出来,通常利用比较器将输入信号与某固定电平进行比较,输出不的电平来产生上或下降沿触,转换成数字脉冲去触发单片机
五、程序设计:
根据超声波传感器的理可以设计程序,整个系统软件结分为主序、
延时程序
定时器中断
主程序 P0^0接蜂鸣器
P0^1-P0^5分别接5LED发光二极管 P3^4 超声波模块的发IO口 P3^2 超
测距时,被测物体的积不少于0.5平方米且平面尽量求平整,否则
本实验采用的HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能。也就是最大测距离为4m,由于距离较,超声波峰峰值有可能超过0.5-1m,造成不反射波,所以被测物体面积不少于0.5
七、课程设计感悟:
两的课程设计结束了,在这的课程设计中不仅检验了我所学习知,也培养了我如何去把握一件事情,如何去做一件事情,又何完成一件事情。在设计过程中,与同学分设计,和同学们相互探讨,互学习,相互监督。学会了作,学会了运筹帷幄,会了宽容,学会理解,也
附录:程序
unsigned int counter=0;//用来中断计数
double time=0.0;//时间变量,单位是ms double distance=0.0;//距离变量,单位是cm
sbit Trig=P3^4;//超声波模块的触发IO口 sbit Echo=P3^2;//超声波模块的接收IO口
void Timer0Init()//定时0初
TMOD=0x01;
TH0=(65536-1)/256; TL0=(65536-1)%256; EA=1; ET0=1; }
void delay(int z)//简略
int i,j;
for(i=z;i>0;i--) for(j=110;j>0;j--); }
void main() {
Timer0Init();//定时器0初始化
Trig=0;//超声波模块置低电平,初
P1=0x01;//初始化,让灯不亮,蜂鸣器不响 delay(5);//延迟5ms
while(1) { TR0=1;//打开定时器0,开始计数 Trig=1;//给出端20us的高电平 while(counter<=20); trig="0;" tr0="0;//关闭时器,停止计数" counter="0;//计数值清0" while(!(echo="">=20);>
为低电平)就继续等待 TR0=1;//接收到返回信号后开始计时 while(!(Echo==0));//等待返回信号结束 TR0=0;//停止计时 time=counter*1.0/1000.0;//计算时间,位为ms counter=0;//counter用已经结束,所以清0 distance=time*17.0;//计算距离,单位为cm if(distance<=50.0) p1="0x00;" else="">=50.0)><=100.0) p1="0x03;" else="">=100.0)><=200.0) p1="0x07;" else="">=200.0)><=300.0) p1="0x0f;" else="">=300.0)><=400.0) p1="0x1f;" else="">=400.0)><=500.0) p1="0x3f;">=500.0)>
void Timer0() interrupt 1 {
TH0=(65536-1)/256; TL0=(65536-1)%256;
counter++;//counter
传感器课程设计-超声波传感器
题 目 超声
- 2 -
摘要
超声波具有指向性强,量消耗缓慢,在介质中传播距离远优点,因而,在利用传感器技术和自动控制技术相结合的距方案中,超声波测距是应用普遍的一,并且在测量精度方面也达到自动化的使用求,广泛应用于倒车雷达、位测量、建筑施工地以及
超波测距的原理是利用超波的发射和接受,根据超声波传的间来计算出传播距离。实用的测距方法有两种,一种是在测距离的两端,一端发射,另端接收的接波方式,适用于身高计,一种是发射波被物反射来后接收的反射波方式,适用于测距仪。次设计采
超声测距仪硬件电路的设计主要包括单片系统及显示电路、超声波发射电路和超声波检测接收路三分。单片机采用AT89C51或其兼容系列。采12M高精的晶,以获得较稳定时钟率,减小量误差。单片机用P1.0端口输出声波换能器所需40kHz的方波信号,利用外中断0口测超声波接收电路输出的返回号。显示路采用简单实用的4位共阳LED数码,段码用74LS244驱动,位码用PNP三极管8550
本课详细介绍了超声波传感器的原理和性,以及Atmel公司的AT89S51单片机的能和点,并在分析了声波测距的原理的基础上,指了设计测系统的思路和所需考虑的问,给出了AT89S51单片机核心的低本、高精度、微化数字显示超声波测距仪的硬件电路和件设计方法。该系统电路设计理、工作定、性能良好、检测速度快、计算简、易于做到实时控制,且在测量精度方能达到工业实用
关
- 3 -
目 录
一 、设计目的 ------------------------ 5 二、设计
2.1设计任务 ------------------------ 5
2.2设计要求 ------------------------ 5 、设步骤及原理
3.1设计方法 ------------------------ 5
3.2设计步骤 ------------------------ 6
3.3设计原理分析 ----------------------13 四、课程设计小结体会 -----------------14
- 4 -
一、 设计目的
学习超声波传感器的识,以及超声波传感器的原理,会设计
2.1设计任务
1.设计硬件
2.设计软件
2.2设计要求
超声波
二、
3.1 设计方法
设计方案
按系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示块、超声发射
单机主控芯片使51系列AT89S51单片机,该单片机工作性能稳定;发射路由单片机输出端直驱动声波发送;接收路使用三极
单)AT89S51显示模块 超
机 控 制 统 )键盘模块
供电单元
图3-1 系统设计框图
硬件路的设计主要包括单片机统及显示电路、超声波发射电路和超波收电路、报输出电路、供电电路等几部分。采用AT89S51片机系统晶振采用12M高精度晶振,以获较稳定时钟频率,减小测量差,单片机用P2.7输出声波换能器所需的40K方信号,P3.5监测超声波
- 5 -
信,显示电路采用单的3位共阳LED数管, ,段码输出端口为单片机的P2口,码输出端口分别为单
3.2设计步骤
3.2.1 关于AT89S51单片机
AT89S51是美国ATMEL公司生产的功耗,高性能CMOS8位单片机,片内含4kbytes的可统编程的Flash只读程序存储器,器件采用ATMEL公司的密度、非易失性存储技术生,兼容标准8051指令系统及引脚。它Flash程序存储器既可在编程(ISP)也可用传统方法进行编程通用8位微处理器于单片芯片中,ATMEL司的功能强大,低价位AT89S51片机可为您提供许多高性比的应用场合,可活应用于各种控制
5l列单片机中典型芯片采用40引脚双列插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时,计数器TO和T1,4个8 b的,O端I:IP0,P1,P2,P3,一个全双功串行通信等组成。别是该系列单片机内的Flash可编程、可擦除只读存储(E~PROM),使其在实际有着十分泛的用途,在便携式、省电及特殊信息保的仪器和系统中更为有用。该系列单片机引与封装如图3-2
图3-2 51系列单片机封装图
5l列单片机提供以下功能:4kB存储器;256BRAM;32工,O线;2个16b定时,计数器;5个2级中断源;1个全双向的行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时,计数器、串行口和中断系统继工作。电方式:保存RAM的内容,振荡器停振,禁芯片所有的
- 6 -
硬复位。5l系列单片机为许多控提供了高度灵活和低成本的解决法。充分利用他片内源,即可在较外围电路
3.2 .2超声波测距单片机系统
超波测距单片机统主要由:AT89S51单片机、晶振、复位电路、电滤波部份构成。K1,K2组成测距系的按键电
图3-3 超声波测距单片机系统
3.2.3 超声波发射和接收电路
超声发射如图3-4,接收电路如3-5。超声波发射电路由电阻R1、三极管BG1、超声波脉冲变器B及超声波发送头T40成,超波脉冲变压器,在这里作用是提加载到超声波发送头两产端的电,以提高超声的发射功率,从而提高测量距离。接收电路由BG1、BG2成的两三级管放大电路构成;超声波的波电路、比较整形电
40kHz的方波由AT89S51单机的P2.7输出,经BG1推动超声波脉冲压器,在脉冲变压器级形成60VPP的电压,载到超声发送头上,驱动超声波发头发射声波。发送出的超声波,遇到障物后,产生回,反射回来的回波由超声波接收头接到。由于声波在空气中传时衰减,以接收到的波形幅值较低,经接收路放大,整形,最后出一负跳变,入单片机的P3
- 7 -
图3-4 超声波测距发送单元
该测电路的40kHz方波信号由单片机AT89S51的P2.7发出。方波的周期为1/40ms,25μs,半周期12.5μs。每隔半周期时间,让波输脚的平取反,便可产生40kHz方波。由于单片机系统的晶振为12M晶振,因而单片机的时间辨率是1μs,所以只能产生半周期为12μs或13μs的方波信号,率分别为41.67kHz和38.46kHz。系统在编程时选用了后者,让单片机产生约38.46kHz的
图3-5 超声波测距接收单元
由于射回来的超声波信号非常微弱,以接收电路需要将其进行放大。接收电路如图3-5所。接收到的信加到BG1、BG2组成的两放大器上行放大。每级放大器的大倍数为70倍。放大的信号通过检波电路到解调后的信号,即把多个脉冲波解调成多个大脉冲。这里使用的是I N 4148检波极管,输出的直流信号即两二极管间电容电压。该接收路结构简单,性较好,制作难度
3.2.4 显示电路
本统采用三位一体L E D 数码管显示所测距离,图3-6。数码管采用动态扫描显示,段码输出口为单片机的P2口,位输出端口
图3-6 显示单元图
- 8 -
3.2.5 供电电路
本测系统由于采用的是LED数码管用为显示方,正常工作时,系统工作电流约为30-45mA,为保证统统的可靠常工作,系的供电式主要交流AC6-9伏,同时为调系统便,供方式虑了第二种方式,即由USB口供电,调时直接由电脑USB口供电。6伏交流是经整流二极管D1-D4整流成脉动直流后,经虑波电容C1虑波后形成流电,为保证单片机系统的可电,供路中由5伏的端称压成电路进行稳压后输出5伏的真流电整个系统用电,为进一步提高源质量,5伏的直电再次经过C3、C4
图3-7 供电单元电路图
3.2.6 报警输出电路
为提高测测距系统的用性,本测距系统的报警输出供开关信
方一:报警信号由片机P3.1端口输出,电器输出,可驱动较大的负载,电路由电阻R6、三极管BG9、继电器JDQ组,当测量值低于事设定的报警值,继器吸合,测量值高于设定的报
方二:报警信号由单片机P0.2口输出,提供声响报警号,电路由电阻R7、三极管BG8、蜂鸣器BY组成,当量值低于事先设定的报警值时,蜂鸣器出“滴、滴、滴…..”警声响信号,测值高设定的报警值时,停止发出报警声响。警输出电
- 9 -
图3-8 报警输出电路
3.2.1 软件设计方法
超声测距仪的软件设计主要由主程、超声波发生子程序、超声波接收中断程序及示子序组成。我们道C语言程序有利于实现较杂的算,汇编语言程序则具有高的效率容易精细计算程序运行的时间,超声波测距仪程序既有较复杂的计算(计算距时),又要求精细计算程序行时间(超声波测距时),所以控制程序采用C语言和汇编语
主程序先是对系统环境初化,设定时器0为计数,设定时器1定时。置位总中允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位ec=1时,测量一次,程设计中,超声波测距频是4-5次/秒。测隔中,整程主要进行循环显示测结果。调超声波测距子程序后,先由片机产生4个率为38.46kHz超声波脉冲,加载的超声波发送上。超声波头发送完送声波后,立即启动内部计时器T0进行计时,为避免超声波从发射头接传送到收头起的直射波触发,这时,单片机需要延时约1.5 -2ms时间(这也就是超声波距仪会一最小可测距离的原因,称之为盲区值)后,才启动对单片机P3.5脚的电平判断程。当检测到P3.5脚的电平由高转为低电平时,立即停止T0计时。由于用单片机采用是12M的晶振,计时器每计一个就是1μs,当超声波测子程检测到接收成功的标志位后,将计数
- 10 -
(即超声波来回所的时间)按式(2)计算,即得被
设时取15?时的声为340 m/s则有:d=(c×t)/2=172×T0/10000cm其,T0为计数器T0的计值。 出距离后结果将以十制BCD码方式往LED显示约0.5s,然后再发超
3.2.3超声波测距程序流程图
开始
初始化
启动定时器
=1 测量标志
=0 - 11 -
超声波测距
Y 距离>上限
3.2.4 超声波测距程子序流程图
超声波测距
N =1? 标志
Y N
发送超声波
启动计时器T0
- 12 -
延时避开盲区
调试与性能分析
3.3设计原理分析
3.3.1超声波传感器
1超声波发生器
超声发生器可以分为两大类: 一类是用电气方式产生超声波,一类是机方式产生超波。电气方式包括压电、磁致伸缩型和电动型等; 机械方式有加尔统笛、液哨和气流旋等。它们所生的超声波的频率、功率和波特性各不相同,因而途也不相同。目前较为常用的是电式超声波发生器,这里我们
2压电
超波发生器内部结构有两个压电晶和一个共振板。当它的两极外加脉冲号,其频率等于电晶的固有振荡频,压电晶片
- 13 -
波。反之,如果两电极间未外电压,当共振板接收到超声波本时,将压迫电晶作振动,机械能转
3单片
单机AT89S51发出暂的40kHz信号,经放大后过超波换能器输出;反射后的超声波经超声波换能器作为系统输入,锁相环对此信号锁定,生锁定信启动单片机中断程序,读时间t,再由系统件对进行计算、判别后,相的计算结果被至LED数
限超声波系统的大可测距离存在四个素:超声波的幅度、反射物的质地、反射入射声波之间的夹以及接换能器的灵敏。接收换能
开始测量
超声波信号 驱动电路 电声换
关定时器 接收检测 电声换
显示器
图2-1 超声波测距过程框图
四、课
短的一周的设计就这样结束,在整个设计过程当中,经历了挫和失,但最终得成功。一直在不懈的努力,到最后收获真的很大,在深刻地认识到自己在学习上的弱环节的时,通过查阅资料和在老师帮助下以及理论分与实践反复进行和论证后许多问都基本能迎刃而,最终基
通这次的课程设计解决了何进行超声波测量距离,以及如进行计。在设计过程中巩固和加深在传感器技术课程中所学的论知识和实验技能。初步了解虚拟仪器基本原理以及使用方法,它的认识有了进一的加。在理论联系实际的过中提高了对传器的设计和
- 14 -
参考文献
[1]赵建领 薛园园 51单片机开发与应用技术解 北京:电子工业出版社,2009 [2] 沈红卫. 于单机智能统设计与实现. 北京:电子工业出版社,2005 [3] 国 白 焰 董 51单片机实用C语言程设计 中国电出版社 2009 [4] 李芳,黄建. 单片微型计算机与口技术. 北京:电子工业出版社,2001 [5] 楼然苗、李光飞. 51系列单片机计实例. 京:北航空航天大学出版社,2003 [6] 王守中 51单片机开发入与典型实例. 北
- 15 -
传感器与检测技术课程设计之超声波传感器课程设计报告
目 录
摘要 ································································1 关键词 ······························································1 1. 引言 ······························································1
1.1单片机超声波距系统
2. 超波测距工作原理 ················································2 2.1超声波传感器····················································3 2.1.1超
2.1.3单片机超波测距
3. 设计案 ··························································4 3.1关于 AT89S51单片机··············································4 3.2超声测距单片机系统············································5 3.3超声发和接收电············································6 3.4显示电路························································7 3.5电
3.6报警输出电路····················································8
4. 软件计 ··························································8 4.1软件设方法····················································8 4.1.1主程序计····················································8 4.1.2子程序························································9 4.2超声波距
4.3超声波测距程序流程
5. 调试与性能分析 ··················································12 5.1调试步骤·······················································12
5.2性能分析·······················································13
6. 课程计体会与总结 ···············································13 参考文
附录·····························································17 附录
超声波传感
XXXX
XX 学院 XX 专业 XX 级 XX XX
摘要 超声波具有指向性强,能量消耗慢,在介中传播距离较远等优点,因而,在利 用传感器技术和自动控制术相结合的测距方案,超声波测距是目前应用普遍的一种, 并测量精度方面也能达自动化的使用要求, 它广
本课题细介绍了超声波传感器的原和特性, 以及 Atmel 公司的 AT89S51单片机的性能 和特点, 并在分析了超声波测的原理的基础上, 指出了设距系统的思路和所需考虑的 问题,给出了以 AT89S51单片机为核心的低成、高精度、微型化数字显示超声波测仪 的硬件电路和软件设计方法。该系统电路设
算简单、易于做到实时控,并且在测量度方面能
关键词 超声波 片机 测
1引言
传感器术是现代信息技术的主要内容之一。 信息技包括计算机技术、 通信技术和传 感器技术, 计机技术相当于人的大脑, 通信相当于人的神经, 而传感就相当于人的感官。 比如温度感、 光电传感器、 湿度传感器、 超声传感器、 传感、 压力传感器等等, 其中, 超声波传感器在测量方面有着广泛、 普遍的用。 利用单片机控制超声波检测往往 较迅速、方、计算简、易于做到实
超声测距系统主要应用于汽车的倒雷达、 器人自动避障行走、 建筑施工工地以及 一些工业现场例如:液位、井深、管道长等场合。 因此研究超波测距系统原理有很 大的现实意义。 对本课题的研究与设计, 还能进一步提高自己的电设计水
1.1 单片机超
图 1-1 单片机超
基于片机的超声波测距系统, 是用单片编程产生频率为 40KHz 的方波, 经过发射 驱动路放大,使超声波传器发射端震荡,发射超波。超声波经反物反射回来后, 传感器接收端接收,再经接电路放大、整形,控制片机中断
这种单片机为核心的超声波测距系统过单片机记超声波发射的时间和收反射 波的时间。 当收到超声波的反射时, 接收电路输出端生一个负跳变, 在单片的外部中 断输入生一个中断请求信号,单片机响应外部中断请求,执外部中断服务子程序, 读时间差,
利用单片机准确计,测距度高, 而且片机控制方便,计算单。 许多超声波测
2 超声波测
在超声波探电路中, 发射端得到输出脉冲为一系列波, 其宽度为发射声的时间间 隔,测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。声距大致 有 以下方:① 取输出脉的平均值电压,电压 (其幅值基本固定 )与距离成正比,测量 压即可测距离;② 测量输出脉冲的宽度,即发射超声波与接收超声波时间间 t, 故被测离为 S=1/2vt 。本测量路用第二种案。由于超声波的声速温有关,如 温变化不大, 则可认为声速基本不变 。 如果测距精要求很高, 则通 过温度补 的 方法加以校正。 超声波测距适用于精度的中长距离测量。 因为超声波在标准空气中的传播 速度为 331.45米 /秒, 单片负责计时, 单片使用 12M 晶振, 所
采用 AT89S51单片机 , 晶 12M, 单片机用 P2.7口输出超声波换能器所的 40K 方波信 号 ,P 3.5口监测超声接收电路输出的返回信号 , 示电路采用简单的 3位共阳 LED 数码管 , 段输端口为单片机的 P2口,位码输出端口分别为单片机的 P3.4、 P3.2、 P3.3口 , 数码 管位驱
由于超声波属于声波范围,波速 C 与度有关其对应
表 2-1 声
超声波距的算法设计 : 这里我们统一用的是超波在空气中传播速度为 340m/s (15℃时) 。 假设 T2声波返回的时刻, T1声波发声的时刻, T2-T1出的是一时间差
声波发出到遇返射物返回的往距离,因此实际
即实际距离
2.1 超
2.1.1超
超声波生器可以分为两大类 : 一类是电气方式产超声波, 一类是用机械式产生 超声波。 电气方式包括压电型、 致伸缩型和电动型等 ; 械方式有加尔统笛、 液和流 旋笛。它们生的超声波的频率、率和声波特性各不相同, 因而用也各不相同。目 前较为常用是压电式超
2.1.2压电式
超声发生器内部结构有两个压电晶片和个共振板。 当它的两极外加脉冲信, 其频 率等于压电晶片的固有振荡频时, 压电晶片将会发生共, 并带动共振板振动, 便产超声 波。 反, 如果两电极间未外电压, 当共振板接收到超声波时, 将压迫压电晶片作振, 将机
2.1.3单片机超
单片 AT89S51发出短暂的 40kHz 信号, 经放大后通过声波换能器输出; 反射后的超 声波经声波换能器作为系统的入, 锁相环对此信号定, 产生锁信号单片机中断 程序,出时间 t ,再由系统软件其进行计算、判别后,相的计算结
限制超声波系统的最大可距离在四个因素:声波的幅度、 反射物的地、 反射和 入射声波之间夹角以接收能器的灵敏度。 接收换能器声波脉冲的直接接收能
图 2-1 超声
3 设计方案
按照系统设计的功能要求, 步确定设计系由单片机主控模块、 显模块、 超声波 发射
单片机主控芯片使用 51系列 AT89S51片机,该单片机工作性能定;发射电路由单 片机输出直接驱动声发送; 接收电路使用三极管组成放大电路, 该电路简
图 3-1
硬件电路设计主要包括单片机系统及显电路、超声波射电路和超声接收电路、 报警输电路、供电电路等几部分。采用 AT89S51单片机系统晶振采用 12M 高精度的晶振, 以获得较稳定时钟频率, 减小测量误差 , 单片机用 P2.7口出声波换能器所的 40K 方波 信号 ,P3.5监测超声波接收输出的返号 , 显示电路采用简单的 3位共 LED 数码 管 , , 段码输出端口为单片机的 P2口,位码输出端口分别为单片机的 P3.4、 P3.2、 P3.3口 , 数
3.1 关于 AT89S51单片机
AT89S51是美国 ATMEL 公司生产的功耗, 高性 CMOS8位单机, 片内含 4kbytes 的可 统编程的 Flash 只读程序存储器 , 器件采用 ATMEL 公司的高密度、非易失性存储技术生,兼 容标准 8051指令系统及引脚。 它集 Flash 程序器既可线程 (ISP ) 也可用传统方进 行编程及通用 8位微处理器于单片芯片中, ATMEL 公司的功能强大,低价位 AT89S51单片机可 您提供多性价比的应用场
5l 列单片机中典型芯片采用 40引脚列直插封装 (DIP)形式, 内部由 CPU , 4kB 的 ROM , 256 B 的 RAM , 2 16b 的定时/计数器 TO T1, 4个 8 b 的工/O 端 I :IP0, P1, P2, P3, 一个全双功串行通信口等组。 特别是
可擦除只读存储
器 (E~PROM), 其在实际中着十分广泛的用途, 在便携式、 省电及特殊息保存仪和 系统中更为有用。该
图 3-2 51
5l 系单片机提供以下功能:4kB 存储器; 256BRAM ; 32条工/O 线; 2个 16b 定时/计数器; 5个 2级中断源; 1个全双向的串行口以及时钟电路。空闲方式:CPU 停止工作, 而让 RAM 、定时/计数器、串口和中断系统继续工作。掉电方式:保存 RAM 内容,荡 器停振,禁止芯片所有的其他功能到下一次硬件复位。 5l 系列单片机为许多控制供了 高度灵活和低成本的解决办法。 充利他的片内资源, 可在较围电路的情况下构
3.2 超声波
超声波测距单片机系统要由:AT89S51单片机、 晶振、 复电路、 电源滤波部份构成。 由 K1, K2组成测距系统的按键电
图 3-3 超声
3.3 超声波
超声波射如图 3-4,接收电路如图 3-5。声波发射电路电阻 R1、三极管 BG1、 声波脉冲变压器 B 及超声波发送头 T40构成, 超声波脉冲变压器, 在这里作是提高加载 到超声波发送头产端的压, 以提超声波射功率, 从而提高测量距。 接收电路由 BG1、 BG2组成两组三级管放大电路构成;超声波的波电路、比较
40kHz 的方波由 AT89S51片机的 P2.7输出,经 BG1推动超声波脉冲变压器,脉冲 变压器次级形成 60VPP 的电压, 加载超声波发送头上, 驱动超声波射发射超声波。 发 送出的超波, 到障碍物后, 产生,反射回来的回波由超声波接头接收到。由于声 波在空气中传播时衰, 所以接收到的波形幅值较低,经收电路放大,形,最后
图 3-4 超声
该测距路的 40kHz 方波信号由单片机 AT89S51的 P2.7发。方波的周期为 1/40ms, 即 25μs,半周期为 12.5μs。每隔半周期时间,让方波输脚的电平取反,便可产生 40kHz 波。由于单机系统的晶振为 12M 晶振,因而单片机的分辨率 1μs,所以只能产生 半周期为 12μs或 13μs的方波信号,频率分别为 41.67kHz 和 38.46kHz 。本系统在编程时 用了
图 3-5 超声
由于射回来的超声波信号非常微, 所以收电路需要将其进行大。 接收电路如图 3-5所示。接收到的信号加到 BG1、 BG2组成两级放大器进行放。每级放大器的大 倍数为 70倍。放的信号通过检波电路得到解调后的
脉冲波。这里使用的是 I N 4148检波二极管,输出的直流信号即两极管间电容电压。 该接收电
3.4 显示电路
本系采用三位一体 L E D 数码管示所测距离值,如图 3-6。数码管采用动态扫描显 ,段码输出端口为片机的 P2口,位输出端口分为单机的 P3.4、 P3.2、 P3.3 , 数码管位驱运用 PNP
图 3-6
3.5 供电电路
本测距系由于采用的是 LED 数码管用为显示方式,正常工作时,统工作电流约为 30-45mA ,为保证系统统计的可靠正常作,系统的供电方式主要交流 AC6-9伏,同时为 调试系统方便, 供方式考虑了第二种方式, 即由 USB 供电,调试时直接由脑 USB 口 供电。 6伏交流经过整流二极管 D1-D4流脉动直流后,经虑波电容 C1虑波后成直 流电,为保证单机系统的可电,供电路中由 5的三端称压集成电路进行稳压后输出 5伏的流供整个系统用电, 进一步提源质量, 5伏的直
图 3-7 供
3.6 报
为提高测测距系的实用性, 本距系统的报警输提供开关量信号
方式一:报警信号由单片机 P3.1口输出,继电器出,可驱动较大的负载,电路 电阻 R6、三极管 BG9、继器 JDQ 组,当测量值低事先设定的报警值时,继电器吸合, 测量值高于
方式:报警信号由单片机 P0.2口输出,供声响报警信号,电由电阻 R7、三极管 BG8、蜂鸣 BY 组成,当测值低于事先设定的报警时,蜂鸣器出“滴、滴、滴 … .. ” 报 警声响信号,测量高于设定的报警值时,停发出报
图 3-8
4 软件设计
4.1 软
超声波距仪的软件设计主要由主程序、 超声发生子程序、 超声波接收中断程序及显 子程序组成。我们知道 C 语言程序有利于实现复杂的算法,汇编语言程序则有高 的效率且容易精细计算序运的时间, 而超声距仪的程序既有较复杂的算 (计算距 离时) ,又要求精计算程序运行时间(超声波测距时) ,所以控
4.1.1
主程序先是对系统环境初始化, 设定时器 0为计数, 定时器 1定时。 置位总中断允 许位 EA 。进程序主程序后,进行定时测距判断,当测距标志位 ec=1时,测量一次,程序 设计中, 超声波测频是 4-5 /秒。 测距间隔, 整程序主要进行显示测果。 当调用超声波测距子程序,首先由单片机产生 4个频率为 38.46kHz 超声波脉冲,加载的 超声波发送头。超声波头发送送超声波,立即启动内部
免超声波发射头直接传送到接收头引起的直射波触, 这时, 单片机需要延时约 1.5 -2ms 时间(这也就是超声测距仪会有一个最小可测距离的原因, 称之为盲区值)后, 才启动 单片机 P3.5脚的电平判断程序。检到 P3.5的电平由高转为低电平,立即停 T0计时。于用单片用的是 12M 的晶振,计时器每一个数就是 1μs ,当超声波测距 子程序检测接收成功的标志位后,将计数器 T0中的(超声波来回所用时间)按 (2)计算,即可
设计取 15℃时的声速为 340 m/s则有:d=(c×t)/2=172×T0/10000cm其中, T0为计数器 T0的计值。 测出离后果将以十进制 BCD 码方式送往 LED 显示约 0.5s , 然后
4.1.2子程序
void wdzh()
{
TR0=0;
TH1=0x00;
TL1=0x00;
csbint=1;
sx=0;
delay(1700);
csbfs();
csbout=1;
TR1=1;
i=yzsj;
while(i--)
{
}
i=0;
while(csbint) //判断收回路是
{
i++;
if(i>=3300)
csbint=0;
}
TR1=0;
s=TH1;
s=s*256+TL1;
TR0=1;
csbint=1;
jsz=s*csbc; //计算测量结果
jsz=jsz/2;
}
产生超声波
为了方便程序移置及确产生声波信号,本测的超声波产生程序是用编语言编 写的进退声
UCSBFS SEGMENT CODE
RSEG UCSBFS
PUBLIC CSBFS
CSBFS: mov R6,#8h ;声波发射的完
here: cpl p2.7 ;输出 40kHz 方波
nop
nop
nop
nop
nop
nop
nop
nop
nop djnz R6,here
RET
END
5调试与性能分析
5.1 调试步骤
我们步骤是先焊接各个模块,焊完每个模以后,再进行模块的独测试,以确 保在整个系统焊接能正常的工作, 原安装完毕后, 将写程序的 AT89S51机装到测距板 上, 通电后将测距板的声波头对着墙面往复移动, 看数
量范内能否正常显示。如果一直示“ - - -” ,则需将限值增大。本测距板 1s 测量 4-5次,超声波发送率较大时,测量距离,则相应的限值(区)应设置为高。试验板 中的声速没有进
5.2性能分析
从实物测试的总体来说测距板本上达到了求,理想上超声波测距达到 500到 700厘左,而我所实现的最大距离只有 699
1. 超声波发射部份由电阻 R1、三极 BG1、超声波冲变压器 B 及超声波发送头 T40构成, 以提超声波的发射功率,面提高测量离。种方式, 加大超声波了送头的余 振时,造成超声波测距盲区值较大(
2. 本测距板没设计温补偿对测量结进行修正。但在硬件 PCB 上预留的
超声测距的原理是利用超声波的发和接受, 根据超声波传播的时来计算出传播距 离。实用的测距方法两种,一种是在被测离的两端, 一端发射,另一端接收直接波 式,适用于身高; 一种是发射波被物体反回来后接收的反射波方式,适用于
超声波距仪硬件电路的设计主要包括单片机系及显示电路、 超声波发射电和超声 波检测接收电路三部分。 单机采用 AT89C51或其兼容系列。 采用 12M 高精的晶振, 以获 得较稳定时钟频率,减小量误差。片机用 P1.0端口出超声换能器所需的 40kHz 的 方波信号, 利用外中断 0口监测超声波接收电输出的返回信号。 显示路采用简单实用的 4位共阳 LED 数码,段码用 74LS244
通过次的课程设计解决了如何进行声波测量距,以及如何进行设计。在设计过 程中巩固和加深在传感器技课程中所学的理论知和实验技能。 初步了解虚拟仪器的 本原以及使用方法, 它的认识有了进一步的加深。 在理论联系实际的过程中
参考文献
[1]赵建领 薛园园 51片机开发与应技术详解 北京 :电工业出版社 ,2009 [2] 沈卫 . 基于单片机智能系统设计与
[3] 杨国田 白 焰 董 玲 51单片机实 C 语言程设计 中国电力出版社 2009 [4] 李群芳 , 黄建 . 单片机微型计机与接口技术 . 北京 :子业出版社 ,2001 [5] 楼苗、李光飞 . 51列单片机设计实例 . 北 :北京航空航天大学出版社 ,2003 [6] 王守中 51单片开发入门与典实例 . 北京:人
附录
附录一 基于 AT89S51单
附录二 基于 AT89S51单片超声波测距
附录三 基于 AT89S51单片
附录四 基于 AT89S51单片机超波测距系
晶振 12M
盲区值 40CM
测量上限 699CM
#include #include #define uchar unsigned char #define uint unsigned int #define k1 P3_7 //k1功能键 #define k2 P3_6 //k2数值调整键 #define bjh P3_1 //定值输出 #define sx P0_2 //报警值输出(声音) #define csbout P2_7 //超声波发送 #define csbint P3_5 //超声波接收 uchar ec,cls;cs;xl,mq,xm0,xm1,xm2,sec20,sec,sec1,buffer[3],BitCounter,temp,Number[8]= {1,2,3,4,5,6,7,8}; uchar temp1,convert[10]={0x81,0xED,0xA2,0xA8,0xCC,0x98,0x90,0xAD,0x80,0x88};//0~9 static uchar bdata ke,kw; // float csbc,wdz; sbit LED1 = P3^4; //数码管位驱动 sbit LED2 = P3^2; //数码管位驱动 sbit LED3 = P3^3; //数码管位驱动 sbit k11=ke^0; sbit k12=ke^1; sbit k22=ke^2; sbit k21=ke^3; sbit b=ke^4; sbit c=ke^5; sbit d=ke^6; sbit e=ke^7; sbit w=kw^0; sbit zj1=kw^1; sbit zj2=kw^2; void delay(i); //延时函数 void scanLED(); //显示函数 void timeToBuffer(); //显示转换函数 void time(); void jpcl(); void jy(); void wdzh(); void bgcl(); void jpzcx(); void mqjs(); void csbfs(); void csbsc(); void clcs(); void offmsd(); void main() { EA=1; //开中断 TMOD=0x11; //设定时器 0为计数,设定时器 1定时 ET0=1; //定时器 0中断允许 TH0=0xD8; TL0=0xF0; //设定 csbout=1; d=0; TR1=0; temp1=15; zzz=699; mq=40; dz=100; cls=5; xl=temp1; csbsc(); mqjs(); //盲区设定 k12=1; k1=1; k2=1; k22=1; bjh=1; d=1; sx=0; clcs(); //测量次数 while(1) { if (ec==1) { ec=0; wdzh(); //调用超声波测量 } bgcl(); //调用报警处理程序 timeToBuffer(); //用转换段码功能模块 offmsd(); // if(e==1) { sx=1; //发出声响 } else sx=0; } else {sx=0;} jpcl(); // void delay(i) //延时子程序 { while(--i); } void scanLED() //显示功能模块 { P2=buffer[2]; LED1=0; delay(1); LED1=1; delay(50); P2=buffer[1]; LED2=0; delay(1); LED2=1; delay(50); P2=buffer[0]; LED3=0; delay(1); LED3=1; delay(50); } void timeToBuffer() //转 if (jsz>zzz) { buffer[0]=0x93; buffer[1]=0x93; buffer[2]=0x93; } else if (jsz<> { buffer[1]=0xFE; buffer[2]=0xFE; } else { xm0=jsz/100; xm1=(jsz-xm0*100)/10; xm2=jsz-xm0*100-xm1*10; buffer[0]=convert[xm2]; buffer[1]=convert[xm1]; buffer[2]=convert[xm0]; if (buffer[2]==0x81) { buffer[2]=0xFF; } } } void KeyAndDis_Time0(void) interrupt 1 using 1 //定时 { TR0=0; TH0=0xD8; TL0=0xF0; TR0=1; time(); } void time () //计时处理模块 { sec20++; if (sec20>=cs) // 50 * 10 ms = 0.5 s { sec20=0; ec++; e=~e; if (ec>3) { ec=0; } } sec1++; if (sec1>100) { sec1=0; sec++; //秒计时 if (sec>=3) { sec=0; } } } void jpcl() //按键处理程序 { k11=k1; if (!k12&&k11) { b=1; } k12=k11; k11=k1; k21=k2; if (b==1) { sx=0; while(b) { buffer[0]=0x84; buffer[1]=0x84; buffer[2]=0x84; sec=0; c=0; while(!c) { if (sec>=2) c=1; scanLED(); } c=0; zzbl=jsz; jsz=dz; timeToBuffer(); jpzcx(); dz=kk; if (dz>699) dz=200; if (dz<> dz=35; mq=ss; jsz=zzbl; buffer[1]=convert[xm2]; } } } void jpzcx() //按键子程序 { while(!c) { k11=k1; scanLED(); if (!k12&&k11) c=1; k12=k11; } c=0; while(!c) { k11=k1; k21=k2; if (!k22&k21) { xm0++; if (xm0>6) xm0=0; } if (e==1) buffer[2]=0xFF; else buffer[2]=convert[xm0]; scanLED(); if (!k12&&k11) c=1; k22=k21; k12=k11; } buffer[2]=convert[xm0]; c=0; while(!c) { k11=k1; k21=k2; if (!k22&k21) { xm1++; if (xm1>9) xm1=0; } if (e==1) buffer[1]=0xFF; else buffer[1]=convert[xm1]; scanLED(); if (!k12&&k11) c=1; k22=k21; k12=k11; } buffer[1]=convert[xm1]; c=0; while(!c) { k11=k1; k21=k2; if (!k22&k21) { xm2++; if (xm2>9) xm2=0; } if (e==1) buffer[0]=0xFF; else buffer[0]=convert[xm2]; scanLED(); if (!k12&&k11) { c=1; b=0; kk=xm0*100+xm1*10+xm2; } k22=k21; k12=k11; } } void wdzh() { TR0=0; TH1=0x00; TL1=0x00; csbint=1; sx=0; delay(1700); csbfs(); csbout=1; TR1=1; i=yzsj; while(i--) } i=0; while(csbint) //判断接回路是否收 i++; if(i>=3300) csbint=0; } TR1=0; s=TH1; s=s*256+TL1; TR0=1; csbint=1; jsz=s*csbc; //计算测量结果 jsz=jsz/2; } void bgcl() { if (jsz<> { bjh=0; } else { bjh=1; } } void mqjs() { yzsj=260; } void csbsc() { csbc=0.034; void clcs() { cs=100/4; //测量 2次 /秒 } void offmsd() //百位为 if (buffer[2]==0x81) //如果值为零时百 } 机械设计制造及自动化 目 录 摘要????????????????????????????????????????????????????????????????1 关键词??????????????????????????????????????????????????????????????1 1.引言??????????????????????????????????????????????????????????????1 1.1单片机超声波测距系统框图????????????????????????????????????????1 2.声波测距工作原????????????????????????????????????????????????2 2.1超声波传感器????????????????????????????????????????????????????3 2.1.1超声波发生器??????????????????????????????????????????????????3 2.1.2电超发生器原理????????????????????????????????????????3 2.1.3单片机超声测距系统构成??????????????????????????????????????3 3.设计方案??????????????????????????????????????????????????????????4 3.1关于AT89S51单片机??????????????????????????????????????????????4 3.2超波测距单片机系统????????????????????????????????????????????5 3.3超声波射接收电路????????????????????????????????????????????6 3.4显示电路????????????????????????????????????????????????????????7 3.5供电电路????????????????????????????????????????????????????????7 3.6报警输出电????????????????????????????????????????????????????8 4.软件计??????????????????????????????????????????????????????????8 4.1软件设计方法????????????????????????????????????????????????????8 4.1.1程序设计????????????????????????????????????????????????????8 4.1.2子程序????????????????????????????????????????????????????????9 4.2超声波测距程序流 4.3超声波测程序流程图?????????????????????????????????????????125.调试与能分析??????????????????????????????????????????????????12 5.1调试步骤???????????????????????????????????????????????????????12 5.2性能分析???????????????????????????????????????????????????????13 6.课设计体会总结???????????????????????????????????????????????13 考文献???????????????????????????????????????????????????????????14 附录???????????????????????????????????????????????????????????????15 附录一?????????????????????????????????????????????????????????????15 I 超声波传感器 附录?????????????????????????????????????????????????????????????17 附录 II 机械设计制造及自动化 超声波传感器 XXXX XX学院XX专业XX 摘要 超声波具有指向性强,能量耗缓慢,介质中传播距离较远等点,因而,在利用传感器技术和自动制技术相结合的测距方中,超声波测距是目前用最普遍的种,并在测量精度方面也达到自动化的使用要求,它 本课题细介绍了超声波传感器的原理和特性,及Atmel公司的AT89S51单片机的性能和特点,并在分析超声波测距的原理的基础上,指出了设计测距系统的思路和所需虑的问题,给出了以AT89S51单机核心的低成、高精度、微型化数显示超波测距仪的硬路和软计方法。该系统电路设计合理、作稳定、性能良好、测速度快、计算简单、易做到实时控制,并且在测量精度方面能达到业实用的要求 键词 1 引言 传感器术是现代信息技术的主要内容之。信息技包括计算机技、通信技术和传感器技术,计机技术相当于人的大脑,通信相当于人的神经,而传感就相当于人的感官。比如温度感、光电传感器、湿度传感器、声波感器、红外感器、传感器等等,其中,超声波感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较速、方便、计简单、于做到实时控 超声测距系统主要应用于汽车的车雷达、器人自动避障行走、建筑施工工地以及一些工业现场例如:液位、井深、管道度等场合。因此研究声波测距系的原理着很大的现实意。对本课题的研究与设计,能进一步提高自己的电路设计水 1.1 单片机超声 图1-1 单片机超声 1 超声波传感器 基于片机的超声波测距系统,是用单片编程产生频率为40KHz的方波,经过发射驱动电路放,使超声波传感器射端震荡,发射超声。超声波波反射物射回来后,由传器接收端接收,再经接收路放大、整形,控制单片机中断 这种单片机为核心的超声波测距系统过单片机录超声波发射的时间收到反射波的时间。当收到超声波的反波时,接收电路输出端生一个负跳变,在单片的外部中断源入口一个中断请求信号,单片机响应外部中断请求,执外部中断服务子程序,读时间差, 利用单片机准确计,测距度高,而且片机控制方便,计算单。许多超声波测距 2 超声波测 在超声波探电路中,发射端得到输出脉冲为一系方波,其宽度为发超声的时间间隔,测物距离越大,脉冲宽度越,输出脉冲个数与被测距离成正。声测距大致 有以方法:? 取输脉冲的平均值压,电压 (其幅值基本固定 )与距离成正比,测量电压即测得距离;? 测量输出脉冲的宽度,即发射超声波与接超声的时间间隔 t,被测距离为 S=1,2vt。本量电路采用二种方案。由于超声的速与温度关,果温度变化不大,则可认为声速基本不变 。如测距精度要求很,则应通 过度补偿 的方法加以校正。超声波测距用于高精度的中长距离测量。因为超声波在标准空气中的传播度331.45米/秒,由单机负责计时,单机使用12M晶振,所以 采用AT89S51单片机,晶振12M,片机用P2.7口输出超声波换能器所的40K方波信号,P 3.5口监测超声接收电路输出的返回信号,显示电路采用简单的3位共LED数码管,码输口为单片机的P2口,码输出端口分别为单片机的P3.4、P3.2、P3.3口,码管位驱运 由于超声波属于声波范围,波速C与温有关其对应 温度(?) ,30 ,20 ,10 0 15 20 30 100 声速(m/s) 313 319 325 323 340 344 349 386 表2-1 声速 超声测距的算法设计: 这里我们统使用的是声波在空气中传播速度340m/s(15?时)。假设T2声波返回的时刻,T1是声波发声的时刻,T2-T1得出的一个差的绝对值,假定T2- T1=0.03S,则 2 机械设计制造及自动化 声波发出到遇到返射物返回的往距离,因此实际 即实际距离计 2.1 超声 2.1.1超 超声发生器可以分为两大类: 一类是电气方式生超声波,一类是用机械式产生超声波。电气方式包括压电型、磁伸缩型和电动型等; 机方式有加尔统笛、液哨和流旋等。它所产超声波的频率、功率声波特性各不相同,因而用途也不相同。目前较为常用的是电式超声波 2.1.2压电式超 超声发生器内部结构有两个压电晶片一个共振。当它的两极外加脉冲号,其频率等于压电晶片的固有振荡频,压电晶片将会发生振,并带动共振板振动,产生超声波。反之,果两电极间未外加电,当共振板接收到超声波本,将压迫压电晶片作振动,机械能转 2.1.3单片机超声 单片AT89S51发出短暂的40kHz号,经放大后通过超波换能器输出;反射后的超声波经超波换能器作为系统的入,锁相环对此信号锁,产生锁定号启单片机中断程序,出时间t,再由系统软件对进行计算、判别后,相的计算结 限制超声波系统的最大测距离在四个因素:超声波的幅度、反射物质地、反射和入射声波之间的角以及收能器的灵敏度。接收换能器对 开始测量 超声波信号 驱动路 电 关定时器 接收测 电 显示器 图2-1 超声波 3 超声波传感器 3 设计方案 按照系统设计的功能要求,步确定设计系由单片机主控模块、显 单片机主控芯片使用51列AT89S51片机,该单片机工作性能定;发射电路由单片机输出直接驱超声发送;接收电路使用三极管组 单)AT89S51显示模块 块 超声波接收模片 机 控 制 系 统) 供电单元 图3-1 系 硬件电路设计主要包括单片机系统及显示电路、声波发射电和超声波接收电路、报警输出电路、供电电路等几部分。采用AT89S51单片机系统晶振采用12M高精度的晶振,以获得较稳时钟频率,减小测量误差,单片机用P2.7口输出超声波能器所需的40K方波号,P3.5口监测超波收电输的返回信号,显示电路采用简单的3位共阳LED数码管, ,段码输出端口为单片机P2口,位码输出端口分别为单片机的P3.4、P3.2、P3.3口,码位驱运用PNP 3.1 关于AT89S51单片机 AT89S51是美国ATMEL公司生产的功耗,高性CMOS8位单机,片内含4kbytes的可系编程的Flash只读程序存储器,器件采用ATMEL公司高密度、非易失性存储技术生产,兼标8051令系统及引脚。它集Flash程序存储器既线编(ISP)也可用传统方法进行编及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51片机可为您提供多高性价的应用场合,可 5l列单片机中典型芯片采用40引双列直插装(DIP)形式,内由CPU,4kB的ROM,256 B的RAM,2个16b定时,计数器TO和T1,4个8 b工,OI:IP0,P1,P2,P3,一个全双功串行信口等组成。特别是该系单片机片内 4 机械设计制造及自动化 器(E~PROM),使在实际中有十分广泛的用途,便携式、省电及特殊信保存仪和系统中更为有用。该系 图3-2 51系 5l系单片机提供以下功能:4kB存储器;256BRAM;32条工,O线;2个16b定时,计数器;5个2级中断源;1个全双向的串行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时,计数、行口和中断统继续工作。掉电方:保存RAM的内容,振器停,止芯片所有的其他功能直到下次硬件复位。5l系单片机为许多控制提供了度灵活和低成本的解决办法。充分利用他片内资源,即可较少外围电的情况下构成功 3.2 超声波测 超声波测距单片系统主要由:AT89S51单片、晶振、复位电 K2组成测距系统的按键电路。于设定超声波距报警值。如 图3-3 超声波 5 超声波传感器 3.3 超声波发 超声波射如图3-4,接收电路如3-5。声波发射电由电阻R1、三极管BG1、声波脉冲变压器B及超声波发送头T40构成,超波脉冲变压器,在这里的作是高加载到超声波发送头两端的电,以提高声波的功率,从而提高测量距离。接收电路由BG1、BG2组成的两三级管放大电路构成;超声波的波电路、比较 40kHz的方波由AT89S51单机的P2.7输出,经BG1推动超声波脉冲变压器,脉冲变压器次级形成60VPP的电压,加载到超声发送头上,驱动超声波发射发超声波。发送出的超声波,到障物后,产生波,反来的回波由超声波接收头收到。由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接电路放大,整,最后 图3-4 超声波 该测距路的40kHz方波信号由单片机AT89S51的P2.7发。方波的周期为1/40ms,即25μs,半周期为12.5μs。每隔半周期时间,让方波输脚的电平取反,便可产生40kHz波。由于单机系统的晶振为12M晶振,因而单片机的分辨是1μs,所以只能产生半周期12μs或13μs的方波信号,频率分别为41.67kHz和38.46kHz。系统在编程时选了后者, 图3-5 超声波 由于射回来的超声波信号非常弱,所以收电路需要将其进放大。接收电路如图3-5所示。收到的信号加到BG1、BG2组成的级放大器上行放大。每级放大器的大倍数为70倍。放大的号通过检波电路得到解调后的信 6 机械设计制造及自动化 脉冲波。这里使用的是I N 4148检波二极管,输出的直流信号即两极管间电容电压。该接收电路 3.4 显示电路 本系采用三位一体L E D 数码管示所测距离值,图3-6。数码管采用动态扫描示,段码输出端口为单片机的P2口,位码输出端分别单片机的P3.4、P3.2、P3.3口,数码管位驱运用PNP三 图3-6 显 3.5 供电电路 本测距系由于采用的是LED数码管用为显示方式,正常工作时,系统工作电流约为30-45mA,为保证系统统计的可靠正工作,系统的供电方式主要交流AC6-9伏,同时为调试系统方便,电方式考虑了第二种方式,即由USB口电,调试时直接电脑USB口供电。6伏流是经整流二极管D1-D4整流脉直流后,经虑波电容C1虑波后形直流电,为保证单片系统的可电,供电路中由5伏三端称压集成电路进行稳压后输出5伏的真电整个系统用电,为一步提源质量,5伏的直 图3-7 供电 7 超声波传感器 3.6 报警 为提高测测距统的实用性,本测系统的报警输出供开关量信号 方式一:报警信号由单片机P3.1口输出,继电器出,可驱动较大的负载,电由电阻R6、三极管BG9、继器JDQ成,测量值低于事设定的报警值时,继器吸合,测量值高于设定 方式:报警信号由单片机P0.2口输出,提供声响报警信号,路由电阻R7、三极管BG8、蜂器BY组成,当测值低于事先设定的报值时,蜂鸣发出“、滴、滴…..”报警声响信号,测量值高设定的报警值时,停止发出报警 图3-8 报 4 软件设计 4.1 软件 超声波距仪的软件设计主要由主程序、超声发生子程序、超声波接收中断程序及显子程序组成。我们知道C语言程序有利于实现较杂的算法,汇编语言程序具较高的效率且容易精细计程序行的时间,而超测距仪的程序既有较复的计算(计算距离时),又要求精计算程序运行时间(超声波测距),所以控 4.1.1主 主程序先是对系统环境初始化,设定时器0为计数,定时器1定时。位总中断允许位EA。进行程序程序后,进行定时测距判断,当测距标志位ec=1时,测一次,程序设计中,超声波测距度4-5次/秒。测距间隔中,整程序主进行循环显量结。调用超声波测距子程序后,先由单片机产生4个频率为38.46kHz超声波脉冲,加载的超声波发送头上。声波头发送完超声波后,立即启动内部 8 机械设计制造及自动化 免超声从发射头直接传送到接收头引起的直射触发,这时,单片机需要延时约1.5 -2ms时间(这也就是超声波距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对片机P3.5脚的电平判断程序。当测P3.5脚电平由高转为低电平时,立即停T0计时。由用单片采的是12M的晶振,计时器每计个数就是1μs,当声波测距子程序检测到接收功的标志位后,将计数器T0中的数(即超波来回所用的时)按式(2)计算,即可得被 设计取15?时的声速为340 m/s则有:d=(c×t)/2=172×T0/10000cm其中,T0为计数器T0计算值。 测出距后结果将以十制BCD码方式送往LED显示约0.5s,然后再 4.1.2子程序 void wdzh() { TR0=0; TH1=0x00; TL1=0x00; csbint=1; sx=0; delay(1700); csbfs(); csbout=1; TR1=1; i=yzsj; while(i--) { } i=0; while(csbint) //判接收回路是 { i++; if(i>=3300) csbint=0; } TR1=0; s=TH1; s=s*256+TL1; TR0=1; 9 超声波传感器 csbint=1; jsz=s*csbc; //计算测量结果 jsz=jsz/2; } 产生超声波的 为了方便程序移置及准确产生声波信号,本距的超声波产 写的进退声波产程序。 UCSBFS SEGMENT CODE RSEG UCSBFS PUBLIC CSBFS CSBFS: mov R6,#8h ;声波发射的完 here: cpl p2.7 ;出40kHz nop nop nop nop nop nop nop nop nop djnz R6,here RET END 10 机械设计制造及自动化 4.2 超声波测 开始 初始化 启动定时器 =1 测量标志 =0 超声波测距 Y 距离> =N 显示值= C C C 距离<盲区值>盲区值> === =N 测量段码转换 设 显示 距离<报警值 =="=" n="" y="">报警值> 报警输出 11 超声波传感器 4.3 超声波测 超声波测距 N =1? 标志 Y N 发 启动计时器T0 延时避开盲区 N 收到回波否, Y N 预 N Y N 计算测量值 结束 5 调试与 5.1 调试步骤 我们步骤是先焊接各个模块,接完每个块以后,再进行模的单独测试,以确保在整个系统接完能正常的工作,原件安装完毕后,将好程序的AT89S51机装到测距上,通电后将测距板的声波头对着墙面往复移动,看数 12 机械设计制造及自动化 量范内能否正常显示。如果一直示“- - -”,则需将限值增大。本测距板1s测量4-5次,超声波发送功较大时,测量距离远,则相应的下值(盲)应设置为高值。试验板中的声速没有进行 5.2 性能分析 从实物测试的总体来说测距基本上达到要求,理想上超声波测能达到500到700厘左,而我所 1. 超声波发射部份由电阻R1、三极BG1、超声波冲变压器B及超声波发送头T40构成,以提高超声波的发射功率,从提高测量距。这方式,加大的声波了送头的余振时间,造成超声波测距盲区值较大( 2.本测距板有设计温度补偿测量结果进行修 6 课程设计 超声测距的原理是利用超声波的射和接受,根据超声波传播的时来计算出传播距离。实用的测距方法两种,一种是在被测离的两端,一端发射,另一端接收直接波式,适用于身高;一种是发射波被物体反射来后接收的反射波方式,适用于测 超声波距仪硬件电路的设计主要包括单片系统及显电路、超声波发电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用12M高度的晶振,以获得较稳定时钟频率,减测量误差。单片机用P1.0端输出声波换能器的40kHz的方波信号,利用外中断0监测超声波接收电路输出的返回信号。显示路采用简单实用的4位共阳LED数码,段码用74LS244 通过次的课程设计解决了如何进行声波测量离,以及如何进行设。在设计过程中巩固和加深在传感器术课程中所学的理论识和实验技能。初步了了虚拟仪器基本原以及使用方法,对的认识有了进一步的加深。理论联系实际的过程中提了对自 13 超声波传感器 参考文献 [1]赵领 薛园园 51单片机开发与应用技术详 北京:电工业出版社,2009 [2] 沈红卫. 基于单片机智能系统计与实现. 北京:电子工业出版社,2005 [3] 杨国田 白 董 玲 51单片机实用C语言程序设计 中电力出版社 2009 [4] 李群芳,黄建. 单片机微型计算接口技术. 北京:电子工业出版社,2001 [5] 楼然苗、李光飞. 51系列单片机设计实例. 北京:北京航空航天大学出版社,2003 [6] 王守中 51片机开发与典型实例. 北 14 机械设计制造及自动化 附录 附录一 基于AT89S51单片 15 超声波传感器 附录二 基于AT89S51单片 16 机械设计制造及自动化 附录三 基于AT89S51单片超声波测距 17 超声波传感器 附录四 基于AT89S51单片机声波测距系 晶振 12M 盲区值 40CM 测量上限 699CM #include #include #define uchar unsigned char #define uint unsigned int #define k1 P3_7 //k1功能键 #define k2 P3_6 //k2数值 #define sx P0_2 //报警值输(声音) #define csbout P2_7 // uchar ec,cls;cs;xl,mq,xm0,xm1,xm2,sec20,sec,sec1,buffer[3],BitCounter,temp,Number[8]= {1,2,3,4,5,6,7,8}; uchar temp1,convert[10]={0x81,0xED,0xA2,0xA8,0xCC,0x98,0x90,0xAD,0x80,0x88};//0~9段码 uint zzz,dz,zzbl,i,jsz,yzsj,kk,s,ss; static uchar bdata ke,kw; //可位 sbit LED1 = P3^4; //数码管位驱动 sbit LED2 = P3^2; //数码管位驱动 sbit LED3 = P3^3; //数码管位驱动 sbit k11=ke^0; sbit k12=ke^1; sbit k22=ke^2; sbit k21=ke^3; sbit b=ke^4; 18 机械设计制造及自动化 sbit c=ke^5; sbit d=ke^6; sbit e=ke^7; sbit w=kw^0; sbit zj1=kw^1; sbit zj2=kw^2; void delay(i); //延时函数 void scanLED(); //示 void time(); void jpcl(); void jy(); void wdzh(); void bgcl(); void jpzcx(); void mqjs(); void csbfs(); void csbsc(); void clcs(); void offmsd(); void main() { EA=1; //开中断 TMOD=0x11; //定时器0为计 ET0=1; //定时器0中断允许 TH0=0xD8; TL0=0xF0; //设定时 TR0=1; csbout=1; d=0; TR1=0; 19 超声波传感器 temp1=15; zzz=699; mq=40; dz=100; cls=5; xl=temp1; csbsc(); mqjs(); //盲区设定 k12=1; k1=1; k2=1; k22=1; bjh=1; d=1; sx=0; clcs(); //测量次数 while(1) { if (ec==1) { ec=0; wdzh(); //调用超声波测量 } bgcl(); // timeToBuffer(); //调用 offmsd(); // scanLED(); //调用显示函数 if(jsz { if(e==1) { sx=1; //发出声响 } else sx=0; } else {sx=0;} jpcl(); //调用按键处理程序 } 20 机械设计制造及自动化 } void delay(i) //延时子 { while(--i); } void scanLED() //显示功能模块 { P2=buffer[2]; LED1=0; delay(1); LED1=1; delay(50); P2=buffer[1]; LED2=0; delay(1); LED2=1; delay(50); P2=buffer[0]; LED3=0; delay(1); LED3=1; delay(50); } void timeToBuffer() //转换段码功能模块 { if (jsz>zzz) { buffer[0]=0x93; buffer[1]=0x93; buffer[2]=0x93; } else if (jsz { 21 超声波传感器 buffer[0]=0xFE; buffer[1]=0xFE; buffer[2]=0xFE; } else { xm0=jsz/100; xm1=(jsz-xm0*100)/10; xm2=jsz-xm0*100-xm1*10; buffer[0]=convert[xm2]; buffer[1]=convert[xm1]; buffer[2]=convert[xm0]; if (buffer[2]==0x81) { buffer[2]=0xFF; } } } void KeyAndDis_Time0(void) interrupt 1 using 1 //定时器0中断外理,键扫描和 显示 { TR0=0; TH0=0xD8; TL0=0xF0; TR0=1; time(); } void time () //计 sec20++; if (sec20>=cs) // 50 * 10 ms = 0.5 s { sec20=0; ec++; e=~e; if (ec>3) 22 机械设计制造及自动化 { ec=0; } } sec1++; if (sec1>100) { sec1=0; sec++; //秒计时 if (sec>=3) { sec=0; } } } void jpcl() //按键处理程序 { k11=k1; if (!k12&&k11) { b=1; } k12=k11; k11=k1; k21=k2; if (b==1) { sx=0; while(b) { buffer[0]=0x84; buffer[1]=0x84; buffer[2]=0x84; sec=0; c=0; while(!c) { 23 超声波传感器 if (sec>=2) c=1; scanLED(); } c=0; zzbl=jsz; jsz=dz; timeToBuffer(); jpzcx(); dz=kk; if (dz>699) dz=200; if (dz<35)>35)> dz=35; mq=ss; jsz=zzbl; buffer[1]=convert[xm2]; } } } void jpzcx() //按键子程序 { while(!c) { k11=k1; scanLED(); if (!k12&&k11) c=1; k12=k11; } c=0; while(!c) { k11=k1; k21=k2; if (!k22&k21) { 24 机械设计制造及自动化 xm0++; if (xm0>6) xm0=0; } if (e==1) buffer[2]=0xFF; else buffer[2]=convert[xm0]; scanLED(); if (!k12&&k11) c=1; k22=k21; k12=k11; } buffer[2]=convert[xm0]; c=0; while(!c) { k11=k1; k21=k2; if (!k22&k21) { xm1++; if (xm1>9) xm1=0; } if (e==1) buffer[1]=0xFF; else buffer[1]=convert[xm1]; scanLED(); if (!k12&&k11) c=1; k22=k21; k12=k11; } buffer[1]=convert[xm1]; c=0; while(!c) { 25 超声波传感器 k11=k1; k21=k2; if (!k22&k21) { xm2++; if (xm2>9) xm2=0; } if (e==1) buffer[0]=0xFF; else buffer[0]=convert[xm2]; scanLED(); if (!k12&&k11) { c=1; b=0; kk=xm0*100+xm1*10+xm2; } k22=k21; k12=k11; } } void wdzh() { TR0=0; TH1=0x00; TL1=0x00; csbint=1; sx=0; delay(1700); csbfs(); csbout=1; TR1=1; i=yzsj; while(i--) 26 机械设计制造及自动化 { } i=0; while(csbint) //判接收回路是 { i++; if(i>=3300) csbint=0; } TR1=0; s=TH1; s=s*256+TL1; TR0=1; csbint=1; jsz=s*csbc; //计算测量结果 jsz=jsz/2; } void bgcl() { if (jsz { bjh=0; } else { bjh=1; } } void mqjs() { yzsj=260; } void csbsc() { csbc=0.034; 27 超声波传感器 } void clcs() { cs=100/4; //测量2次/秒 } void offmsd() //百位 if (buffer[2]==0x81) // buffer[2] = 0xff; } 28 转载请注明出处范文大全网 » 超声波传感器课程设计报告传感器与检测技术课程设计---超声波传感器课程设计报告