课程设计任务书 超声波测距_工学_高等教育_教育专区_第1页
课程设计任务书 超声波测距_工学_高等教育_教育专区_第2页
课程设计任务书 超声波测距_工学_高等教育_教育专区_第3页
课程设计任务书 超声波测距_工学_高等教育_教育专区_第4页
课程设计任务书 超声波测距_工学_高等教育_教育专区_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、上海电机学院课程设计任务书课程名称传感器原理及应用课程代码013096B1课程设计课题基于AT89C51单片机的超声波测距系统设计设计时间2014年12月8日2014年12月12日一、课程设计任务1.了解超声波测距原理,查寻相关资料。 2.根据超声波测距原理,基于AT89C51单片机设计超声波测距仪的硬件结构电路。功能要求: (1)设计的电路能够实现超声波的发送与接收,并进行分析,从而实现利用超声波方法测量物体间的距离。(2)测量距离的范围是2cm400cm精度为±1cm。(3)能够通过数码管显示所测的距离。3.基于AT89C51单片机进行软件编程,用PROTUES进行仿真。二、对实

2、训/课程设计成果的要求课程设计成果及报告要求:1、题目; 2、设计要求;3、控制系统的总体设计方案(分析及原理阐述);4、控制系统的硬件系统设计(图应包括硬件系统原理框图、硬件系统原理接线图);绘图用protel软件;5、控制系统的软件设计(图应包括软件设计主程序流程图、子程序流程序、中断程序流程图等,包括程序清单);6、调试,完成硬件接线调试及软件程序调试,可以用实验箱、电路板搭建硬件电路,仿真用proteus;7、小结(对本课题进行总结,比如特点、优缺点等);8、心得体会9、参考文献三、实训/课程设计工作进度计划:第一 第一天:安排课题,查找资料,确定控制要求和控制方案; 第二 第二天:硬

3、件电路设计、软件程序设计;第三 第三天:检查硬件电路设计、软件程序设计;调试情况第四天:检查系统设计及完成情况;撰写课程设计报告;验收调试结果;第五天:答辩;交课程设计报告。四、主要参考资料:1.刘凤然.基于单片机的超声波测距系统J.传感器世界.2001.52.葛健强.基于CPLD的超声波测距仪研制N. 无锡商业职业技术学院学报.2004.43.何希才,薛永毅.传感器及其应用实例M.机械工业出版社.20044 李光弟,朱月华,冷祖祁.单片机基础(第三版)M.北京:北京航空航天大学出版社.2007.65.吴斌方,刘民,熊海斌.超声波测距传感器的研制M.湖北工学院学报.20046.谭洪涛,张学平.

4、单片机设计测距仪原理及其简单应用J.现代电子技术.20047.苏炜,龚壁建,潘笑.超声波测距误差分析J.传感器技术.20048.罗忠辉,黄世庆.提高超声测距精度的方法J. 机械设计与制造.20059.秦旭.用LM92温度传感器补偿的高精度超声波测距仪J.电子产品世界.20031 题目:基于AT89C51单片机的超声波测距系统设计2 设计要求 根据超声波测距原理,基于AT89C51单片机设计超声波测距仪的硬件结构电路。功能要求: (1)设计的电路能够实现超声波的发送与接收,并进行分析,从而实现利用超声波方法测量物体间的距离。 (2)测量距离的范围是2cm400cm精度为±1cm。(3)

5、能够通过数码管显示所测的距离。3 控制系统的总体设计方案1. 功能模块图AT89C51超声波测距模块显示模块复位电路2.测距原理单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差t,然后求出距离式中的c为超声波在空气中传播的速度。3.测距设计基于单片机的超声波测距设计,是利用单片机发出一个20um周期为65.536ms的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。其系统框图如图3-1所示。图3-1 基于单片机的超声波测距系统框图4.

6、总体设计方案图3-2 时序图以上时序图表明你只需提供一个10us以上的脉冲触发信号,该模块内部将产生出8个40KHz周期电平并检测回波。一但检测大有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。有此种方式通过发射喜好到收到信号的时间间隔通过计算公式可以计算出距离。 5.超声波模块的选用根据测距需求,选用HR-SR04超声波测距模块。HR-SR04可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm,模块包括超声波发射器、接收器与控制电路。电气图:4 控制系统的硬件系统设计4.1 AT89C51单片机简介AT89C51是一个低功耗高性能单片机,40个引脚,32个外

7、部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其管脚图如图4-1所示。4.2 复位电路单片机AT89S51作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。复位电路的设计图如图4-2示: 图4-2复位电路4.3 发射电路的设计由单片机产生的40kHz的方波需要进行放大,才能驱动超声波传感器发射

8、超声波,发射驱动电路其实就是一个信号放大电路,本课题所选用的是74HC04集成芯片,图4-3为发射电路图.图4-3 发射电路74HC04内部集成了六个反向器(输入与输出相位相反的电子电路),即1A输入高电平,1Y输出高电平同时具有放大的功能。74HC04管脚图4.4 接收电路的设计使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。其总放大增益80db。电路如下图4-4所示。 图4-4 接收电路4.5 显示模块的设计 显示模块采用四位八段数码管 图4-5 四位八段共阴LED数码显示管原理和结构5 控制系统的软件设计单片机编程产生一个触发信号,使超声波发射模块工作,的同时利用定时器的

9、计数功能开始计时,当超声波接收模块接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后通过软件译码,将数据输出P0口显示。程序流程图如图5-1,(a)为主程序流程图,(b)为定时中断子程序流程图,(c)为外部中断子程序流程图。5.1信号的发生和接收超声波信号的发生需要一个20us的触发信号,接收信号需要通过外部中断来实现,同时用定时器进行定时计数,这个过程需要循环,以下为循环程序部分。while(1) /程序循环 Trig=1; delay_20us(); Trig=0; /产生一

10、个20us的脉冲,在Trig引脚 while(Echo=0); /等待Echo回波引脚变高电平 succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; /定时器1清零 TL1=0; /定时器1清零 TF1=0; / TR1=1; /启动定时器1 EA=1; while(TH1 < 30);/等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0; /关闭定时器1 EX0=0; /关闭外部中断 5.2 计算 void conversion(uint temp_data) uchar ge_data,shi_data,bai_data,qian

11、_data;qian_data=temp_data/1000; bai_data=temp_data/100 ; temp_data=temp_data%100; /取余运算 shi_data=temp_data/10 ; temp_data=temp_data%10; /取余运算 ge_data=temp_data;qian_data=SEG7qian_data; bai_data=SEG7bai_data; shi_data=SEG7shi_data; ge_data =SEG7ge_data; EA=0;qian=qian_data; bai = bai_data; shi = shi_

12、data; ge = ge_data ; EA=1; 6 调试仿真软件程序编写完成后,用Protues软件绘制电路图,写入程序进行调试。1. 放射方波前,处于静止状态2. 放射方波后,动态显示7 小结本课题介绍了一种基于单片机的超声波测距设计的原理和设计。给出了硬件和软件的设计方案。超声波传感器是本设计的核心器件,本论文详细地介绍了超声波传感器的原理、结构、检测方式以及它的一些特性。本设计的发射电路采用74HC04六反向器,通过它对单片机产生的方波信号进行放大,以驱动传感器工作。接收电路采用的是LM741,通过接收电路对接收到的信号进行放大和整形,最终再输出负脉冲给单片机响应中断程序。本系统的

13、LED显示部分采用的是静态扫描方式,并用单片机软件译码。单片机内部采用C语言编程,方波信号的产生、时间差的读取、距离的计算以及显示输出的译码都由单片机编程完成。 本课题所设计的超声波测距系统具有测量精度较高、速度快、控制简单方便等优点。测距范围从2cm到400cm,测量精度在±1cm内。8 心得体会自己写自己的+ 测距设计在许多工业现场和自动控制场合,都有很重要的作用。但由于经验不足,电路硬件、软件部分都有不够完善的地方,在今后的学习中会进一步改进。9 参考文献1.刘凤然.基于单片机的超声波测距系统J.传感器世界.20012.葛健强.基于CPLD的超声波测距仪研制N. 无锡商业职业技

14、术学院学报.20043.何希才,薛永毅.传感器及其应用实例M.机械工业出版社.20044 李光弟,朱月华,冷祖祁.单片机基础(第三版)M.北京:北京航空航天大学出版社.20076.谭洪涛,张学平.单片机设计测距仪原理及其简单应用J.现代电子技术.20047.苏炜,龚壁建,潘笑.超声波测距误差分析J.传感器技术.20048.罗忠辉,黄世庆.提高超声测距精度的方法J. 机械设计与制造.20059.秦旭.用LM92温度传感器补偿的高精度超声波测距仪J.电子产品世界.2003程序不手写 等改正确直接打印!先把前边写好!附录源程序:#include <reg51.H> sbit k1=P34

15、; sbit csbout=P10; /超声波发送 sbit csbint=P32; /超声波接收 sbit bg=P33; #define LED P0 sbit LED1=P24; /LED控制 sbit LED2=P25; /LED控制 sbit LED3=P26; /LED控制 sbit bj=P20;/报警#define csbc 0.0347 unsigned char cl,mqzd,csbs,csbds,buffer3,xm1,xm2,xm0,jpjs;/显示标识 unsigned char convert10=0x18,0x7b,0x2c,0x29,0x4b,0x89,0x8

16、8,0x3b,0x08,0x09;/09段码 unsigned int s,t,i,xx,j,sj1,sj2,sj3,mqs,sx1; void csbcj(); void delay(j); /延时函数 void scanLED(); /显示函数 void timeToBuffer(); /显示转换函数 void keyscan(); void k1cl(); void k2cl(); void k3cl(); void k4cl(); void offmsd(); void main() /主函数 EA=1; /开中断 TMOD=0x11; /设定时器0为计数,设定时器1定时 ET0=1;

17、 /定时器0中断允许 ET1=1; /定时器1中断允许 TH0=0x00; TL0=0x00; TH1=0x9E; TL1=0x57; csbds=0; csbout=1; cl=0; csbs=8; jpjs=0; sj1=50;/测试报警距离 sj2=200; sj3=580; k4cl(); TR1=1; while(1) keyscan(); if(jpjs<1) csbcj(); /调用超声波测距程序 if(s>sj3) /大于时显示“CCC” buffer2=0xC6; buffer1=0xC6; buffer0=0xC6; else if(s<sj1) /小于时

18、显示“- - -” buffer2=0xBF; buffer1=0xBF; buffer0=0xBF; else timeToBuffer(); else timeToBuffer(); /将值转换成LED段码 offmsd(); scanLED(); /显示函数 if(s<sj1) bg=0; bg=1; void scanLED() /显示功能模块 LED=buffer0; LED3=0; delay(200); LED3=1; LED=buffer1; LED2=0; delay(200); LED2=1; LED=buffer2; LED1=0; delay(200); LED1

19、=1; void timeToBuffer() /转换段码功能模块 xm0=s/100; xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer2=convertxm2; buffer1=convertxm1; buffer0=convertxm0; void delay(i) while(-i); void timer1int (void) interrupt 3 using 2 TH1=0x9E; TL1=0x57; csbds+; if(csbds>=40) csbds=0; cl=1; void csbcj() if(cl=1) TR1=0; TH0=0x00; TL0=0x00; i=csbs; while(i-) csbout=!csbout; TR0=1; i=mqs; /盲区 while(i-) i=0; while(csbint) i+; if(i>=4000) /上限值 csbint=0; TR0=0; TH1=0x9E; TL1=0x57; t=TH0; t=t*256+TL0; t=t-29; s=t*csbc/2; TR1=1; cl=0; csbint=1; /if(s<=80)bj=0;if(s>80)bj=1;/ if(s<sj1) if(c

温馨提示

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

评论

0/150

提交评论