微机原理及应用课程设计.docx
《微机原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理及应用课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
微机原理及应用课程设计
《微机原理及应用》课程设计
超声波测距器的设计
摘要
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到日常使用的要求。
设计的超声波测距器利用超声波传输中距离与时间的关系,采用以AT89S52单片机为核心进行控制及数据处理,最终完成低成本、高精度、微型化数字显示超声波测距器的硬件电路和软件设计。
该测距器主要由超声波发射器电路、超声波接收器电路、单片机控制电路、系统电源电路及显示电路构成。
整个程序采用模块化设计,由主程序、发射子程序、接收子程序、显示子程序等模块组成。
各探头的信号经单片机综合分析处理,实现超声波测距器的各种功能。
在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
经过实验表明,这套系统软硬件设计合理、抗干扰能力强、实时性良好,经过系统扩展和升级,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,还能有效地解决汽车倒车,液位、水深、管道长度的测量问题。
关键词:
超声波;AT89S52;数码管;测距
目录
摘要1
目录2
1.设计目的3
2.总体方案4
2.1题目分析4
2.2设计方案4
3.硬件设计5
3.1硬件设计总方案5
3.2.数码管设计5
3.3超声波发射设计5
3.4超声波接收设计6
4.软件设计8
4.1系统软件的设计8
4.2程序语言的选择8
4.3超声波测距方法8
4.4主程序9
4.5超声波接收与中断9
4.6汇编语言程序9
总结13
参考文献14
1.设计目的
设计一个超声波测距器,可以应用于汽车倒车位置监控,也可用于如液位、井深、管道长度的测量等场合。
要求测量范围在0.10~4.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
通过该课程设计使学生进一步了解和加深智能化仪器设计的一般原则;熟练掌握智能化仪器与装置的软、硬件设计方法;掌握仪器的软件调试及软硬件联合统调方法与技能。
掌握仪器的接口技术和程控方法;熟练掌握仪表总线的工作原理、设计步骤、编程及调试;掌握汇编语言设计软件的编程与调试方法;掌握网络化仪器设计编程与调试方法。
2.总体方案
2.1题目分析
超声波传感器的工作原理是陶瓷的压电效应。
超声波传感器在测量过程中,超声测距器是根据超声波遇到障碍物反射回来的特性进行测量的。
超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。
通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差△T,然后求出距离L。
基本的测距公式为:
L=(△T/2)*V式中L——被测距离;△T——发射波和反射波之间的时间间隔;V——超声波在空气中的声速,常温下取为340m/s。
声速确定后,只要测出超声波往返的时间,即可求得L。
为测试更精确,鉴于声波受温度影响最大,测距数据处理过程可以采用了温度补偿,以提高测量精度。
2.2设计方案
超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。
我们采用一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。
超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前在近距离测量方面常用的是压电式超声波换能器。
根据设计要求并综合各方面因素,本文采用AT89S52单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。
3.硬件设计
3.1硬件设计总方案
硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路四部分。
单片机采用AT89S52,采用12MHz高精度的晶振,以获得稳定时钟频率,减小测量误差。
单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。
显示电路采用简单实用的4位共阳LED数码管,位码用PNP三极管9013驱动。
3.2.数码管设计
该设计中有4个八段数码显示管,由于单片机本身端口驱动能力有限,所以,在单片机AT89S52外围需要接入4个三极管来驱动数码显示管。
我们采用四位共阳极接法。
如图3.1
图3.1数码管显示及其驱动电路
3.3超声波发射设计
测距系统中的超声波传感器采用压电陶瓷传感器,因为超声波在空气中传播时衰减很大,衰减的程度与频率成正比,但是频率越高则分辨力也会越高,频率为40kHz左右的超声波在空气中传播的效率最佳,工作所需40kHz的脉冲信号,由单片机执行相应程序来产生。
关于40KHz信号的产生,利用单片机定时器中断产生,要特别注意中断服务程序的编写。
中断服务不能过长,如果过长单片机在前一个中断服务程序还没执行完之前又会有下一个中断产生。
所以单片机将会产生一个错误频率的信号,往往这个错误的频率会比预期的值偏低。
测距系统由单片机系统、超声波发射电路和超声波检测接收电路三部分组成。
AT89S52输出超声波换能器所需的40K方波信号,利用外中断0口监测超声波接收电路输出的返回信号,并实现对CX20106接收芯片和TCT40-10系列超声波转换模块的控制。
超声波发射电路原理图如图所示。
发射电路主要由反相器4069和超声波发射换能器T构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。
输出端采两个反向器并联,用以提高驱动能力。
上位电阻R6、R8一方面可以提高反向器4069输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
如图3.2
图3.2超声波发射电路
3.4超声波接收设计
集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。
使用CX20106A作为超声波检测接收电路,原理图如图所示。
CX20106A的第5脚的电阻决定接收的中心频率,220k的电阻决定了接收的中心频率为40KHz。
CX20106A接收到40KHz的信号时,会在第7脚产生一个低电平下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入。
R3和C13是控制CX20106A内部放大增益,R5控制带通滤波器的中心频率。
一般取R3=4.7欧,C13=1Uf.。
其余元件按图3.7取值。
OUT_INT当收到超声波是产生一个下降沿,接到单片机的外部中断上。
只要通过单片机来来计算发射信号时到收到信号是产生下降沿这段时间的长度,再通过数学计算得出当前距离,程序将此数值与设定的阈值相比较并作出相应动作。
如图3.3
图3.3超声波接收电路
4.软件设计
4.1系统软件的设计
单片机测量控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便达到测量控制目的。
本软件设计主要是对距离进行测量、显示。
因此,整个软件可分为按照硬件电路对单片机位定义;发射子程序;接收子程序;显示子程序;延时子程序等。
4.2程序语言的选择
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。
其主要优点是占用资源少、程序执行效率高,而且执行速度快。
且我们对汇编语言比较熟悉,通俗易懂,因此,本文采用汇编语言
4.3超声波测距方法
声波发生器T在某一时刻发出一个超声渡信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。
这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。
距离的计算公式为:
L=S/2=(V×△T)/2
(1)
其中,L为被测物与测距仪的距离,s为声波的来回的路程,V为声速,△T为声波来回所用的时间。
原理如图:
图4.1超声波测距原理图
在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。
当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。
4.4主程序
软件分为两部分,主程序和中断服务程序。
主程序完成初始化工作、各路超声波发射和接收顺序的控制。
外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。
置位总中断允许位EA并给显示端口P1和P3清0。
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后,才打开外中断0接收返回的超声波信号。
由于采用的是12MHz的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数计算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:
L=(V×△T)/2=172T0/10000cm
测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。
4.5超声波接收与中断
超声波发生子程序的作用是通过P1.0端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。
超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。
进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
4.6汇编语言程序
1中断入口程序
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG000BH
LJMPINTT0
ORG0013H
RETI
ORG001BH
LJMPINTT1
ORG0023H
RETI
ORG002BH
RETI
2主程序:
START:
MOVSP,#4FH
MOVR0,#40H;40~43H为显示数据存放单元
MOVR7,#0BH
CLEARDISP:
MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOVTMOD,#21H;T1为8位自动重装模式,T0为16位定时器
MOVTH0,#00H;65ms初值
MOVTL0,#00H
MOVTH1,#0F2H;40kHz初值
MOVTL1,#0F2H
MOVP0,#0FFH
MOVP1,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
MOVR4,#04H;超声波脉冲个数控制
SETBPX0
SETBET0
SETBEA
SETBTR0;开启测距定时器
Start1:
LCALLDISPLAY
JNB00H,START1;收到反射信号时标志为1
CLREA
LCALLWORK;计算距离子程序
SETBEA
CLR00H
SETBTR0;重新开启测距定时器
MOVR2,#64H;测量间隔控制(约4*100=400ms)
LOOP:
LCALLDISPLAY
DJNZR2,LOOP
SJMPStart1
3中断程序:
T0中断,65ms中断一次
INTT0:
CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0;启动计时器T0,用以计算超声波往返时间
SETBTR1;开启发超声波用定时器T1
OUT:
RETI;T1中断,发超声波用
INTT1:
CPLVOUT
DJNZR4,RETIOUT
CLRTR1;超声波发送完毕,关T1
CLRET1
MOVR4,#04H
SETBEX0;开启接收回波中断
RETIOUT:
RETI
外中断0,收到回波时进入
PINT0:
CLRTR0;关计数器
CLRTR1
CLRET1
CLREA
CLREX0
MOVDPL,TL0;将计数值移入处理单元
MOVDPH,TH0
SETB00H;接收成功标志
MOVP1,DPTR
RETI
END
总结
通过本次课程设计,掌握了美国Intel公司生产的单片机MCS52芯片得基本结构和工作原理。
初步认识了超声波测距器的设计方法。
对课堂上了解的单片机知识有了巩固和提高。
加深了对单片机学习的兴趣。
刚拿到题目后,我们完全不懂,后来经过老师的讲解和再次复习课本上的内容,我们渐渐地开始了解题目的设计意图,并一步一步地做下去。
在进行课程设计的过程中,我们通过上网查询资料,同组之间的互相讨论,以及老师的帮助,让我更加深刻地体会到了团结合作的重要性,集体力量的伟大性,如果没有大家的互相帮助,就不会有任何一个人的成功。
同理,如果没有老师的帮助指导,我们更不可能做好。
通过此次课程设计,我们终于完成了超声波测距仪的设计,可以精确地利用单片机和超声波测出汽车倒车位置监控,液位、井深、管道长度。
因此,我们受益匪浅。
参考文献
[1]牛昱光.单片机原理与接口技术.北京:
电子工业出版社,2009,22-42.
[2]赵晶.Protel99高级应用.北京:
人民邮电出版社,2000,122-140.
[3]周学毛.汇编语言程序设计.北京:
高等教育出版社,1997,87-96.
[4]李叶紫.MCS-51单片机应用教程.北京:
清华大学出版社,2002,211-250.
[5]高玉芹.单片机原理及应用及C51编程技术.南京:
机械工业出版社,2005,48-85.