课程设计报告书_第1页
课程设计报告书_第2页
课程设计报告书_第3页
课程设计报告书_第4页
课程设计报告书_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、超声波测距仪课程设计报告书目录引言2超声波测距设计方案21.总体方案设计介绍22.硬件电路设计33.系统程序的设计64.设计总结10附件11控制源程序11引言本课程设计,旨在用所学知识解决生活中的常见问题,真正实现知识的活学活用,为步入社会,进入真实的生产制造环节打基础;超超声波测距在生活中应用极为广泛,因其测量误差小,操作方便而被广泛使用;然其工作原理较为简单,运用大学所学的单片机原理及应用的基础知识便可以实现其基本工程原理,再结合其他科目的基础知识便可以完成这一设计。超声波测距设计方案1.总体方案设计介绍超声波测距原理源于蝙蝠回声定位,设超声波在空气中的传播速度为V,在空气中的传播时间为T

2、,测距仪与障碍物的距离为S,S=VT/2,这样可以测出测距仪与障碍物之间的距离,然后在LED显示屏上显示出来。本课程设计测量范围0.504.00m,测量精度1cm.属于近距测量,采用压电式超声波传感器;程序要求反应灵敏,故采用80C51单片机的汇编程序设计,显示LED采用4位共阳LED数码管。首先由单片机驱动产生12MHZ晶振,由超声波发射探头发送出去,在遇到障碍物反射回来时由超声波接收探头检测到信号,然后经过滤波、放大、整形之后送入单片机进行计算,把计算结果输出到LED液晶显示屏上。本设计采用80C51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。超

3、声波测距器系统设计如图1.1所示。超声波接收 80C51单片机超声波发送LED显示扫描驱动 图1.1 超声波测距器系统结构设计框图2.硬件电路设计硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用80C51。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波传感器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管9012驱动(74LS06)。超声波发出后,单片机自动检测INT0引脚,当INT0

4、引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。2.1超声波发射和接收模组(V2.0)本文采用的超声波测距模组集发射和接受为一体,内部超声波传感器谐振频率40KHz,模组传感器工作电压4.5V9V,模组接口电压4.5V5.5V。本实验采用短距(0.504.00m)精度1cm。模组结构示意图如图2.1:J7J6J5J4 图2.1 超声波发射及接收模组设计框图应用时只需要用J5的第1个口与单片机Vcc连接,最后一个口与单片机GND连接,第4个接口与 单片机的INT0口相连接,J4的第3个接口与单片机1.0口连接

5、,同时将J1跳线设置为短距模式,J2跳线设置为非外部电源供电方式(此时开发板通过10PIN排线为模组供电,板上J5选择5V,要把J2跳接到5v的一端)。这就完成了模组硬件的连接。超声波谐振频率调理电路图如图2.2:图2.2 超声波谐振频率调整电路设计框图由单片机产生40KHz的方波由P1.0口送出,连接模组接口J4到模组的CD4049,而后面的CD4049则对40KHz频率信号进行调理,以使超声波传感器产生谐振。图2.3 超声波回波接收电路设计框图超声波接受处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM31

6、1的3管脚的输入。接收回路中测得的超声波信号共有两个波束,第一个为余波信号,即超声波接收头在发射头发射信号(一组40KHz的脉冲)后,马上就接收到了超声波信号,并持续一段时间。另一个波束为有效信号,即经过被测物表面反射的回波信号。超声波测距时,需要测的是开始发射到接收到信号的时间差,要尽量避免检测到余波信号,这也是检测中存在最小测量盲区的主要原因。单片机控制模组每次发生若干完整的40KHz的脉冲信号,发射信号前打开计数器T0,进行计时,等计时到达一定值后再开启检测回波信号,以避免余波信号的干扰。采用外部中断INT0对回波信号进行检测,接收到回波信号后马上读取计数器中的数值,此数据即为需要测量的

7、时间差数据。2.2数据显示模块显示电路采用简单实用的4位共阳LED数码管,断码用74LS244驱动,位码用74LS06驱动。由P0口输出显示数据,P2.0P2.3用来位选。显示电路如图2.4图2.4 超声波测距显示电路设计框图3.系统程序的设计超声波测距器的软件设计主要由主程序,超声波发生子程序,超声波接收中断程序及显示子程序组成,本次设计采用执行效率高的汇编语言实现。下面对超声波测距器的算法,主程序,超声波发生子程序和超声波接收中断程序逐一介绍。3.1超声波测距器的算法设计超声波测距的原理类似于蝙蝠的回声定位,既超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,

8、就会被超声波接收器R接收到。这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器于反射物体的距离。该距离的计算公式如下:d=s/2=(v×t)/2式3-1 超声波距离计算其中:d为被测物于测距器的距离(m);s为声波的来回路程(m);v为声速(m/s);t为声波来回所用的时间(s)。3.2 主程序主程序首先要对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传到接收器引起的直射波,需要延时约2.906ms(最小距离0.50m

9、,机器周期1us)后才可打开外中断0接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1us,所以当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(32)计算,即可得被测物体与测距器之间的距离。设计时取20时的声速为344m/s,则有d=(v×t)/2=(172T/1000)(cm)式3-2 超声波距离计算其中:T为计数器T0的计数值。测出距离后,结果将以十进制BCD码方式送往LED显示,重复测量3-5次取加权平均即可得出最终结果。图3.1所示为主程序流程图。开始系统初始化发送超声波脉冲等待反射超声波计算距离显示结果0.5s图3

10、.1 超声波测距主程序流程图主程序START: MOV SP, #4FH MOV R0, #40H ;40H43H为显示数据存放单元(40H为最高位) MOV R7, #0BHCLEARDISP: MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器 MOV TH0, #C7H ;14.5ms初值 MOV TL0, #39H MOV TH1, #0F2H ;40kHz初值 MOV TL1, #0F2H MOV P0, #0FFH MOV P1, #0FFH MOV P

11、2, #0FFH MOV P3, #0FFH MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR0 ;开启测试定时器START1: LCALL DISPLAY JNB 00H, START1 ;收到反射信号时标志位为1 CLR EA LCALL WORK SETB EA CLR 00H SETB TR0 ;重新开启测试定时器 MOV R2, #64H ;测量间隙控制(约4ms×100=400ms)LOOP: LCALL DISPLAY DJNZ R2,LOOPSJMP START13.3 超声波发生子程序

12、和超声波接收中断程序超声波发生子程序的作用是通过P1.0端口发送两个左右的超声波脉冲信号(频率40KHz的方波),脉冲宽度为12us左右,同时把计数器T0打开进行时。超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言编程。ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即

13、进入超声波接收中断程序。进入该中断后,就立即关闭计时器T0,停止计时,并将测距成功标志字赋值1. 中断程序;T0中断,14.5ms中断一次INTT0: CLR EA CLR TR0 MOV TH0,#C7H MOV TL0,#39H SETB ET1 SETB EA SETB TR0 ;启动计数器T0,用以计算超声来回时间 SETB TR1 ;开启发超声波用定时器T1OUT: RETI;T1中断,发超声波用INTT1: CPL VOUT DJNZ R4,RETOUT CLR TR1 ;超声波发完毕,关T1 CLR ET1 MOV R4,#04H SETB EX0 ;开启接收回波中断RETIOU

14、T: RETI;外中断0,收到回波时进入PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H ,TL0 ;将计数值移入处理单元 MOV 45H ,TH0 SETB 00H ;接收成功标志 RETI如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,以表示本次测距不成功。4.设计总结本次设计中,充分体现了合作共赢的重要性,这个社会是个专业化日趋加强的社会,人们的专业知识正变得集中而而有深度,此次设计,广泛整合了各方面的资源,充分证明了合作的重要性,以及专业知识的必要性,作为作为

15、一项实际需要的产品,都综合了各方面的知识,只有强强联手,才能打造更加优异的产品。本次设计的环节不多,单片机及程序、超声波发送及接收电路,数码显示管等几大块,对于我来说,专业在于单片机及数码显示管的连接及程序设计,而超声波发射及接收电路则是由另外的合作伙伴完成,然后实现两者的连接便完成了此次设计。当然,设计总是没有完美的,我们由于阅历尚欠,经验不足,又缺乏实践,故产品设计原型可能存在诸多问题,需要在实践中不断发现,修补完善,不断创新。不满足于已有的设计,不断寻求新的突破才是我们需要做的。附件控制源程序 超声波测距器 采用80C51、12MHz晶振、采用共阳LED显示器测试范围为0.505.00m

16、,堆栈在4FH以上,20H用于标志显示缓冲单元在40H43H,内存44H46H用于计算距离VOUT EQU P1.0 ;脉冲输出端口 中断入口程序 ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI 主程序START: MOV SP, #4FH MOV R0, #40H ;40H43H为显示数据存放单元(40H为最高位) MOV R7, #0BHCLEARDISP: MOV R0, #00H

17、 INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器 MOV TH0, #C7H ;14.5ms初值 MOV TL0, #39H MOV TH1, #0F2H ;40kHz初值 MOV TL1, #0F2H MOV P0, #0FFH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR0 ;开启测试定时器START1: LCALL

18、 DISPLAY JNB 00H, START1 ;收到反射信号时标志位为1 CLR EA LCALL WORK SETB EA CLR 00H SETB TR0 ;重新开启测试定时器 MOV R2, #64H ;测量间隙控制(约4ms×100=400ms)LOOP: LCALL DISPLAY DJNZ R2,LOOPSJMP START1中断程序;T0中断,1.45ms中断一次INTT0: CLR EA CLR TR0 MOV TH0,#C7H MOV TL0,#39H SETB ET1 SETB EA SETB TR0 ;启动计数器T0,用以计算超声来回时间 SETB TR1

19、;开启发超声波用定时器T1OUT: RETI;T1中断,发超声波用INTT1: CPL VOUT DJNZ R4,RETOUT CLR TR1 ;超声波发完毕,关T1 CLR ET1 MOV R4,#04H SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0 SETB 00H ;接收成功标志 RETI显示程序;40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#

20、40H;GMOV R5,#0E7H;GPLAY: MOV A,R5 MOV P0,#0FEH MOV P2,A MOV R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A LCALL DL1MS INC R1 MOV A,R5 JNB ACC.0,ENDOUT;G RR A MOV R5,A AJMP PLAYENDOUT: MOV P2,#0FEH MOV P0,#0FEH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FEH,88H,0BFH;共阳段码表 “0”,“1”,“2”,“3”,“4”,

21、“5”,“6”,“7”,“8”,“9”,“不亮”,“A”,“-”延时程序DL1MS: MOV R6, #0BHDL1: MOV R7, #5AHDL2: DJNZ R7, DL2 DJNZ R6, DL1 RET 距离计算程序Work: PUSH ACC PUSH PSW PUSH B MOV PSW, #18h MOV R3, 45H MOV R2, 44H MOV R1, #00D MOV R0, #17D LCALL MUL2BY2 MOV R3, #03H MOV R2, #0E8H LCALL DIV4BY2 LCALL DIV4Y2 MOV 400H, R4 MOV A, 40H

22、JNZ JJ0 MOV 40H,#0AH ;最高位为0,不点亮JJ0: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #100D LCALL DIV4BY2 MOV 41H, R4 MOV A, 41H JNZ JJ1 MOV A, 40H ;次高位为0,先看最高位是否为不亮 SUBB A, #0AH JNZ JJ1 MOV 41H, #0AH ;最高位不亮,次高位也不亮JJ1: M0V A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #10D LCAL

23、L DIV4BY2 MOV 42H, R4 MOV A, 42H JNZ JJ2 MOV A, 41H ;次次高位为0,先看次高位是否为不亮 SUBB A, #0AH JNZ JJ2 MOV 42H, #0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0 POP B POP PSW POP ACC RET2字节无符号数乘法程序R7R6R5R4R3R2×R1R0MUL2BY2: CLR A MOV R7,A MOV R6,A MOV R5,A MOV R4,A MOV 46H,#10HMULLOOP1: CLR C MOV A,R4 RLC A MOV R4,A MOV A,R5 RLC A

温馨提示

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

最新文档

评论

0/150

提交评论