基于单片机声波测距.doc

上传人:枫** 文档编号:561810401 上传时间:2023-08-23 格式:DOC 页数:17 大小:319KB
返回 下载 相关 举报
基于单片机声波测距.doc_第1页
第1页 / 共17页
基于单片机声波测距.doc_第2页
第2页 / 共17页
基于单片机声波测距.doc_第3页
第3页 / 共17页
基于单片机声波测距.doc_第4页
第4页 / 共17页
基于单片机声波测距.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于单片机声波测距.doc》由会员分享,可在线阅读,更多相关《基于单片机声波测距.doc(17页珍藏版)》请在金锄头文库上搜索。

1、大连民族学院2007级通信工程专业单片机系统课程设计报告机电信息工程学院单片机系统课程设计报告系:电子工程系专 业:通信工程班 级:071班设计题目:超声波测距学生姓名:指导教师: 完成日期:2010年5月28日3目 录一、设计任务和性能指标21.1设计任务21.2性能指标2二、设计方案3三、系统硬件设计43.1单片机最小系统43.2 超声波发射电路43.3 超声波检测接收电路53.4.温度补偿电路63.5显示电路7四.系统软件设计84.1 主程序设计84.2 温度补偿子程序8五.调试及性能分析105.1调试步骤105.2 性能分析10六.心得体会11参考文献12附录1 系统硬件电路图13附录

2、2 程序清单14一、设计任务和性能指标1.1设计任务利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个含有温度补偿的超声波测距仪器,用LED把环境温度和测距仪距被测物的距离显示出来。要求用AD6.0 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。1.2性能指标1. 距离显示:用三位LED数码管进行显示(单位是CM)。2. 环境温度:用三位数码管进行显示温度(绝对温度)。3. 测距范围:5CM到 300CM之间。4. 键位:复位键 、便携电源开关、USB供电开关,温度显示距离显示二、设计方案按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、电源模块、显示

3、模块、键扫描模块、超声波发射模块,超声波接收模块,温度补偿模块共七个模块组成。主控芯片使用51系列STC89C52单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。本设计在接受模块采用了由索尼公司生产的CX2016A红外接收芯片来实现超声波的接收。CX2016A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。同时通过改变部分参数来改变接受电路的灵敏度和抗干扰能力,所以我们采用该芯片作为接收模图3-3 超声波

4、接收电路原理图 3.4.温度补偿电路温度传感器使用了DSl8B20数字温度计提供可选择的12位(二进制)温度读数来指示周围环境的温度信息。经过单线接口DQ与单片机进行数据交互。从主机CPU到DSl8B20仅需一条数据接线(和地线)。DSl8B20的电源可以由数据线本身提供而不需要接外部电源。由于每一个DSl8B20在出厂时已经给定了唯一的序号因此任意多个DSl8B20可以存放在同一条单线总线上实现多点温度测量。温度传感器DSl8B20的测温范围从-55摄 氏度到+125摄氏度增量值为0.5度可在l s(典型值)内把温度变换成数字量,因此采用DS18B20实现温度补偿电路的设计。图3-4 温度补

5、偿电路原理图 3.5显示电路 显示电路主要由74ls273芯片驱动,用PNPC8550三级管进行位选,七段共阳极数码管显示,硬件电路图如图3-5所示:图3-5 显示电路原理图 四.系统软件设计4.1 主程序设计图4-1 主程序流程图 图4-1 程序流程图 主程序中包括温度补偿子程序,计算子程序,显示子程序 ,如图4-1所示:在主程序设计中,我们采用了汇编编程。首先进行系统初始化。其次利用循环产生4个40KHZ的方波,由输出口进行输出,并开始计时。第三读取外界环境的温度,由该温度确定环境中的超声波传输速度。第四等待中断,若超声波被接收探头捕捉到,那么通过中断可测得超声波在环境中的传播时长。第五进

6、行计算,求得测距仪到被测物的距离。第六进行距离显示。4.2 温度补偿子程序图4-2 DS18B20时序图 DS18B20正常工作需要严格的工作时序,操作起来很复杂,图4-2给出的是DS18B20的时序图,其控制程序如下:TEMP: SETB DQ NOP CLR DQ MOV R0,#0FBH TSR1: DJNZ R0,TSR1 SETB DQ MOV R0,#25H ; TSR2: JNB DQ TSR3 DJNZ R0,TSR2 ; TSR3: SETB FLAG1 CLR P2.0 AJMP TSR5 TSR4: CLR FLAG1 LJMP TSR7 TSR5: MOV R0,#06

7、BH TSR6: DJNZ R0,TSR6 TSR7:SETB DQ RET*读转换后的温度值*GET_TEMPER: SETB DQ LCALL TEMP JB FLAG1,TSS2 RET TSS2:MOVA,#0CCH LCALL WRITE_18B20 MOVA,#44H LCALL WRITE_18B20 LCALL TEMP MOV A,#0CCH LCALL WRITE_18B20 MOV A,#0BEH ; LCALL WRITE_18B20 LCALL READ2_18B20 ; RET*写ds18b20汇编程序* WRITE_18B20: MOV R2,#8 CLR C W

8、R1:CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET ; *读18B20程序,读出两个字节的温度* READ2_18B20: MOV R4,#2 ; MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01

9、 MOV R1,A DEC R1 DJNZ R4,RE00 RET*读出的温度进行数据转换*CHANGE: MOV A,29H ; MOVC,28H.0 RRC A MOV C,28H.1 RRC A MOV C,28H.2 RRC A MOV C,28H.3 RRC A MOV 29H,A五.调试及性能分析5.1调试步骤我们的步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确保在整个系统焊接完能正常的工作,首先焊接的是电源模块,其中包括USB供电和电池供电两种方式,电源模块焊接完以后,进行电源模块的测试,当插上USB以后电源指示灯并没有亮,说明电源模块有问题,后来发现稳压芯

10、片发烫,得出一定是电源和地短了,接下来就开始检查USB的地和电源是不是接反了,然后开始检查PCB和电路图,发现确实是封装错了,USB解决以后测试,发现电源指示灯还是没有亮,不过7805还是发热,经检查知道,7805的封装也错了,经改装电源模块可以正常工作了,接下来是单片机最小系统的测试,焊接完以后发现系统没有问题,程序可以正常下载,然后是超声波发送模块的焊接,焊接完以后,编写一个专门的发射超声波的程序,然后用示波器测试通过,在测试显示程序的时候数码管不能正常工作,不亮,后来发现是驱动芯片74LS273的CLK没有和单片机的控制端连接上,不能将数据锁存到数码管中,后来用跳线连接上了。接下来是软件

11、的调试过程,在软件的调试过程中,遇到了很多的问题 ,每个问题也解决了。经过3,4天的调试终于将程序调试通过了。5.2 性能分析 虽然结果和预想的有很大的差距,但总体来说已经基本上达到了要求,理想上超声波测距能达到5到7米左右,而我们所能实现的最大距离只有3米,造成这种原因我想有以下几点:1.由于我们采用的是11.0592MHZ的晶振,理论上是按照12MHZ的晶振计算的,所以对系统造成了一定的误差。2.由于温度传感器DS18B20距离单片机较近,所采集到的温度严重受到单片机的影响,造成系统误差。3.单片机接收端其中有个电阻是4.7欧姆的,由于种种原因没有找到4.7欧姆的,就找了个5.5欧姆的代替,造成系统误差。六.心得体会俗话说“好的开始是成功的一半”。通过这次实习,我们学到了很多东西。在进行课程设计时,我们应该做到以下三点:首先,我认为最重要的就是认真的研究老师给的题目。其次,在老师讲解的基础上认真研究硬件电路的设计,和软件流程的设计。最后,重点实现软硬结合的综合调试。 这次的实习算起来一共进行了三周,在这三周的时间里我们进行了硬件电路图设计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号