单片机课设超声波测距仪.docx
- 文档编号:8666770
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:197.32KB
单片机课设超声波测距仪.docx
《单片机课设超声波测距仪.docx》由会员分享,可在线阅读,更多相关《单片机课设超声波测距仪.docx(19页珍藏版)》请在冰豆网上搜索。
单片机课设超声波测距仪
辽宁工业大学
单片机及接口技术课程设计(论文)
题目:
超声波测距仪
院(系):
电子与信息工程学院
专业班级:
通信091班
学号:
*********
学生姓名:
*****************
教师职称:
讲师
起止时间:
2012.7.5—2012.7.13
课程设计(论文)任务及评语
院(系):
电子与信息工程学院教研室:
电子信息教研室
学号
090405023
学生姓名
专业班级
通信091
课程设计(论文)题目
超声波测距仪
课程设计(论文)任务
采用单片机设计超声波测距仪。
主要技术指标及要求:
1、测距范围:
30cm~200cm内的平面物体
2、测量误差小于1cm
3、具有距离显示功能
设计内容:
1、分析设计要求,明确性能指标;查阅资料、设计方案分析对比。
2、论证并确定合理的总体设计方案,绘制总体结构框图,分析工作原理。
3、完成各单元具体电路的设计:
单片机最小系统、超声波发射与接收、显示等电路。
包括元器件选择、工作原理分析。
4、写出程序流程图及汇编源程序。
5、完成课程设计说明书。
指导教师评语及成绩
成绩:
指导教师签字:
年月日
第1章设计方案论证
1.1设计的应用意义
随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:
研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。
无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。
随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
在新的世纪里,面貌一新的测距仪将发挥更大的作用。
1.2设计方案选择
超声波测距的原理是利用超声波的发射和接收,根据超声波传播的时间来计算出传播距离。
实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。
此次设计采用反射波方式。
测距仪的分辨率取决于对超声波传感器的选择。
超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。
由于超声波在空气中传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。
超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率、和声波特性各不相同,因而用途也各不相同。
目前在近距离测量方面常用的是压电式超声波换能器。
根据设计要求并综合各方面因素,本文采用AT89C51单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。
1.3总体设计方案框图及分析
单片机发出40kHZ的信号,经放大后通过超声波发射器输出,超声波接收器将接收到的超声波信号经放大器放发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED显示。
总体设计方案框图如图1.1所示。
图1.1超声波测距仪原理框图
第2章硬件电路设计
2.1超声波发射电路
超声波发射电路原理图如图2.1所示。
发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。
输出端采两个反向器并联,用以提高驱动能力。
上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
2.2超声波检测接收电路
集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路如图2.2。
实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。
适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。
图2.2超声波检测接收电路
2.3超声波测距系统的最小系统
单片机最小系统是单片机能正常工作的最小外接电路单元,是设计电路的核心部分,也是整个作品最关键的最重要的部分。
单片机最小系统包括:
复位电路、晶振电路如图2.3所示。
图2.3单片机最小系统电路图
2.4数码管显示电路
显示电路采用LED数码管显示。
LED数码管显示有静态显示方式和动态显示方式,本系统采用并行输出的动态显示方式,数码管显示电路如图2.4所示。
图2.4数码管显示电路
2.5超声波测距系统的总体硬件电路设计
本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用AT89C51,经济易用,且片内有4K的ROM,便于编程。
总体硬件电路原理图如图2.5所示。
图2.5超声波测距电路原理图
第3章程序设计
3.1程序流程图
软件分为两部分,主程序和中断服务程序,如图3.1所示。
主程序完成初始化工作、各路超声波发射和接收顺序的控制。
定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。
3.2源程序清单
;********************************************
;*中断入口程序*
;********************************************
;
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG000BH
reti
ORG0013H
RETIORG001BHLJMPINTT1ORG0023HRETIORG002BH
RETI
;********************************************
;*主程序*
;********************************************
START:
MOVSP,#4FH
MOVR0,#40H;40H-43H为显示数据存放单元(40H为最高位)
MOVR7,#0BH
CLEARDISP:
MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOVTMOD,#11H;T1/T0为16位定时器
MOVTH0,#00H;65毫秒初值
MOVTL0,#00H
MOVTH1,#00H
MOVTL1,#00H
MOVP0,#0FFH
MOVP1,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
MOVR4,#04H;超声波脉冲个数控制(为赋值的一半)
SETBPX0
SETBET1
SETBEA
SETBTR1;开启测距定时器
start1:
LCALLDISPLAY
JNB00H,START1;收到反射信号时标志位为1
CLREA
LCALLWORK;计算距离子程序
clrEA
MOVR2,#32h;#64H;测量间隔控制(约4*100=400MS)
LOOP:
LCALLDISPLAY
DJNZR2,LOOP
CLR00H
setbet0
movth0,00h
movtl0,00h
SETBTR1;重新开启测距定时器
SETBEA
SJMPStart1
;****************************************************
;*中断程序**
;****************************************************
;T1中断,发超声波用;T1中断,65毫秒中断一次
INTT1:
CLREA
CLRTR0
clrex0
MOVTH0,#00H
MOVTL0,#00H
MOVTH1,#00H
MOVTL1,#00H
SETBET0
SETBEA
SETBTR0;启动计数器T0,用以计数
intt11:
CPLVOUT;40KHZ
nop
DJNZR4,intt11;超声波发送完毕,
MOVR4,#04H;只发送了两个周期
lcalldelay_250;延时,避开发射的直达声波信号
SETBEX0;开启接收回波中断
RETIOUT:
RETI;外中断0,收到回波时进入
PINT0:
nop
jbp3.2,pint0_exit
CLRTR0;关计数器
CLREA
CLREX0
MOV44H,TL0;将计数值移入处理单元
MOV45H,TH0
movth0,#00h
movtl0,#00h
jnbp3.2,$
SETB00H;接收成功标志
pint0_exit:
RETI
;****************************************************
;*显示程序*
;****************************************************
;40H为最高位,43H为最低位,先扫描高位
DISPLAY:
MOVR1,#40H;G
MOVR5,#7fH;G
PLAY:
MOVA,R5
MOVP0,#0FFH
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.4,ENDOUT;G
RRA
MOVR5,A
AJMPPLAY
ENDOUT:
MOVP2,#0FFH
MOVP0,#0FFH
RET
;
TAB:
DB18h,7Bh,2Ch,29h,4Bh,89h,88h,3Bh,08h,09h,0ffh
;共阳段码表"0""1""2""3""4""5""6""7""8""9""不亮""A""-"
;****************************************************
;*延时程序(1ms)*
;****************************************************
DL1MS:
push06h
push07h
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
pop07h
pop06h
RET
;****************************************************
;*距离计算程序(=计数值*17/1000cm)*
;****************************************************
work:
PUSHACC
PUSHPSW
PUSHB
MOVPSW,#18h
MOVR3,45H
MOVR2,44H
MOVR1,#00D
MOVR0,#17D
LCALLMUL2BY2
MOVR3,#03H
MOVR2,#0E8H
LCALLDIV4BY2
LCALLDIV4BY2
MOV40H,R4
MOVA,40H
JNZJJ0
MOV40H,#0AH;最高位为零,不点亮
JJ0:
MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,#100D
LCALLDIV4BY2
MOV41H,R4
MOVA,41H
JNZJJ1
MOVA,40H;次高位为0,先看最高位是否为不亮
SUBBA,#0AH
JNZJJ1
MOV41H,#0AH;最高位不亮,次高位也不亮
JJ1:
MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,#10D
LCALLDIV4BY2
MOV42H,R4
MOVA,42H
JNZJJ2
MOVA,41H;次次高位为0,先看次高位是否为不亮
SUBBA,#0AH
JNZJJ2
MOV42H,#0AH;次高位不亮,次次高位也不亮
JJ2:
MOV43H,R0
POPB
POPPSW
POPACC
RET
;****************************************************
;*两字节无符号数乘法程序*
;R7R6R5R4<=R3R2*R1R0
;****************************************************
MUL2BY2:
CLRA
MOVR7,A
MOVR6,A
MOVR5,A
MOVR4,A
MOV46H,#10H
MULLOOP1:
CLRC
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
JNCMULLOOP2
MOVA,R4
ADDA,R2
MOVR4,A
MOVA,R5
ADDCA,R3
MOVR5,A
MOVA,R6
ADDCA,#00H
MOVR6,A
MOVA,R7
ADDCA,#00H
MOVR7,A
MULLOOP2:
DJNZ46H,MULLOOP1
RET
;****************************************************
;*四字节/两字节无符号数除法程序*
;
R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数)
;****************************************************
DIV4BY2:
MOV46H,#20H
MOVR0,#00H
MOVR1,#00H
DIVLOOP1:
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
CLRC
MOVA,R0
SUBBA,R2
MOVB,A
MOVA,R1
SUBBA,R3
JCDIVLOOP2
MOVR0,B
MOVR1,A
DIVLOOP2:
CPLC
DJNZ46H,DIVLOOP1
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
RET
;****************************************************
;*延时程序*
;****************************************************
delay_250:
pushpsw
push07h
movr7,#0ffh
delay_250_1:
nop
nop
nop
nop
djnzr7,delay_250_1
pop07h
poppsw
ret
END
第4章设计总结
本次课程设计中,超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。
单片机采用AT89C51或其兼容系列。
采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。
单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。
显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。
超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。
在设计的过程中我了解到了许多有用的知识,学会了如何去分步完成单元电路,然后用单元电路组成系统电路。
虽然我在设计过程中遇到了很多问题,可以说是困难重重,但是在设计的过程中我发现了自己的不足之处,以及对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总之,这次的课程设计让我受益匪浅,懂得了学以致用才算是真正的将知识彻底掌握。
参考文献
[1]胡萍.超声波测距仪的研制.计算机与现代化,2003.10
[2]时德刚,刘哗.超声波测距的研究.计算机测量与控制,2002.10
[3]华兵.MCS-51单片机原理应用.武汉:
武汉华中科技大学出版社,2002.5
[4]九州.放大电路实用设计手册.沈阳:
辽宁科学技术出版社,2002.5
[5]樊昌元,丁义元.高精度测距雷达研究.电子测量与仪器学报,2000.10
[6]苏伟,巩壁建.超声波测距误差分析.传感器技术,2004.6
[7]张谦琳.超声波检测原理和方法.北京:
人民邮电出版社,2003.7
[8]周学毛.汇编语言程序设计.北京:
高等教育出版社,2003.6
附录I
整体电路图
附录II
器件清单
器件名称
数目
AT89C51
1
CX202106A
1
LED
2
晶振
1
喇叭
2
电容
8
反相器
5
显示器
1
按键
12
电阻
18
电源
若干
导线
若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 超声波 测距仪