欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    课程设计实验报告超声波测距仪的设计.docx

    • 资源ID:88168096       资源大小:242.54KB        全文页数:16页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计实验报告超声波测距仪的设计.docx

    西安邮电大学单片机课程设计报告书题目:超声波测距仪的设计院系名称自动化学院学生姓名朱敏06周腾19李蕊蕊12 朱奇峰18但莉22专业名称测控技术与仪器班级测控 0901 班时间2023 年5 月 21 日 至 6 月 3 日超声波测距仪的设计一、设计目的本设计利用超声波传输中距离与时间的关系,承受 STC51 单片机进展把握和数据处理,设计出能够准确测量两点间距离的超声波测距仪。同时了解单片机各脚的功能,工作方式,计数/定时,I/O 口的相关原理,并稳固学习单片机的相关内容学问。二、设计要求1. 设计一个超声波测距仪,能够用四段数码管准确显示所测距离2. 精度小于 1CM,测量距离大于 200CM三、设计器材元器件数量STC51 单片机1 个超声波测距模块 URF-041 个电阻1K 200 4.7K3个晶振12MHz1个共阳极四位数码管1个极性电容33pF2个非极性电容22uF1个四、超声波测距系统原理在超声探测电路中,放射端得到输出脉冲为一系列方波,其宽度为放射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。超声测距大致有以下方法: 取输出脉冲的平均值电压,该电压 (其幅值根本固定 )与距离成正比,测量电压即可测得距离; 测量输出脉冲的宽度, 即放射超声波与接收超声波的时间间隔 t,故被测距离为 S=12vt。本测量电路承受其次种方案。由于超声波的声速与温度有关,假设温度变化不大,则可认为声速根本不变 。假设测距精度要求很高,则应通过温度补偿的方法加以校正。超声波测距适用于高精度的中长距离测量。由于超声波在标准空气中的传播速度为 331.45 米/秒,由单片机负责计时,单片机使用12.0M 晶振,所以此系统的测量精度理论上可以到达毫米级。超声波测距的算法设计: 超声波在空气中传播速度为每秒钟 340 米15 时。X2 是声波返回的时刻,X1 是声波发声的时刻,X2-X1 得出的是一个时间差确实定值,假定 X2-X1=0.03S,则有 340m×0.03S=10.2m。由于在这 10.2m 的时间里,超声波发出到遇到返射物返回的距离如下:超声波测距器的系统框图如以以下图所示:图 1 测距原理图 2 系统框图五、设计方案及分析包含设计电路图4.1 硬件电路设计4.1.1 单片机最小系统把握模块设计与比较方案一:承受 MSP430 系列的 16 位单片机,它是 16 位把握器,具有体积小、驱动力气强、牢靠性高、功耗低、构造简洁、具有语音处理、运算速度快等优点,但考虑到我们小组对这个方案承受的微处理器并不生疏,使用起来并不是很便利。因此我们打算不再使用此方案,考虑其他方案。方案二:承受 STC51 单片机把握。STC51 单片机是一种低功耗、高性能CMOS8 位微把握器,具有 8KB 的系统可编程 Flash 存储器。AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断构造, 全双工串行口, 片内晶振准时钟电路,能够满足题目设计的全部要求,而且我们对 STC51 单片机也比较生疏,因此我们选择方案二。最小系统电路图如图 3 所示4.1.2 显示模块设计图 3 单片机最小系统承受四位共阳极数码管显示,连接电路简洁,显示电路连接图如图 4 所示图 4 数码管显示电路4.1.3 超声波测距模块a.本系统承受超声波模块 URF04 进展测距,该模块使用直流 5V 供电,抱负条件下测距可达 500cm,广泛应用于超声波测距领域,模块性能稳定,测度距离准确,盲区2cm超近。URF-04 工作原理简述超声波测距原理:单片机给超声波传感器模块一个触发电平,超声波传感器的放射管自动发送 8 个 40KHZ 的方波,当超声波检测到障碍物时就会信号返回, 接收管接收到信号返回之后,单片机处理从单片机发送信号到接收到返回信号这段时间里超声波传感器模块输出高电平。这段高电平持续时间即为超声波从放射到返回的传播时间。测量距离=高电平持续时间*波速/2。4.1.4 其他电路设计a. 复位电路单片机在RESET 端加一个大于 20ms 正脉冲即可实现复位,上电复位和按钮组合的复位电路如下:在系统上电的瞬间,RST 与电源电压同电位,随着电容的电压渐渐上升,RST 电位下降,于是在 RST 形成一个正脉冲。只要该脉冲足够宽就可以实现复位, 即 t = RC ³ 20ms 。 一 般 取R ³ 1 KW ,C ³ 22uF。当人按下按钮 S1 时,使电容 C1 通过 R1 快速放电,待 S1弹起后,C 再次充电,实现手动复位。R1 一般取 200 W 。图 5 复位电路b. 时钟电路当使用单片机的内部时钟电路时,单片机的 XATL1 和 XATL2 用来接石英晶体和微调电容,如以下图,晶体一般可以选择 3M24M,电容选择 30pF左右。我们选择晶振为 12MHz,电容 33pF。c. 按键电路图 6 时钟电路我们通过 P1.0 来启动测量,程序中通过查询 P1.0 的电平来检测是否按键被按下,电路原理如下:当按下按键时 P1.0 为低电平,单片机通过 查询到低电平开头测量距离,当松开按键,P1.0 即为高电平。在软件中通过软件延时来消退按键的机械抖动。图 7 按键电路4.2 软件程序设计软件分为两局部,主程序和中断效劳程序。分别如图 4.4 和图 4.5 所示。主程序完成初始化工作、超声波放射和接收挨次的把握。外部中断效劳子程序主要完成时间值的读取、距离计算、结果的输出、数码管显示等工作。主程序首先是对超声波模块初始化,通过延时函数产生 10us 的高电平,再将计数器初始化,推断超声波接收端是否收到回波,进而执行外部中断程序。中断程序首先关闭外部中断,关闭计数器,然后读出计数值,依据公式计算距离,然后将结果送往数码管显示。图 8 主程序流程图图 9 外部中断效劳子程序为了避开超声波从放射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms这也就是超声波测距仪会有一个最小可测距离的缘由后,才翻开外中断 0 接收返回的超声波信号。由于承受的是 12 MHz 的晶 振,计数器每计一个数就是 1s,当主程序检测到接收成功的标志位后,将计数器T0 中的数即超声波来回所用的时间按公式计算,即可得被测物体与测距仪之间的距离,设计时取 30 时 的 声 速 为 340 m/s 则 有 : d=(c×t)/2=170T0/10000cm 其中,T0 为计数器 T0 的计算值。六、问题分析与解决方法1. 在拿到设计要求之后,我们确定承受超声波测距模块,依据超声波模块的工作原理:给超声波传感器模块一个触发电平,超声波传感器的放射管自动发送8 个 40KHZ 的方波,当超声波检测到障碍物时就会信号返回,接收管接收到信号返回之后,单片机处理从单片机发送信号到接收到返回信号这段时间里超声波传感器模块输出高电平。这段高电平持续时间即为超声波从放射到返回的传播时间。测量距离=高电平持续时间*波速/2。我们的设计方案是利用计数器 0 进展计数,通过捕获上升沿和下降沿用计数器来计算高电平的持序时间,实现数据的测量。然而我们却不能够确定高电平持续时间和计数器的计数值之间的换算关系,为此我们争论了很久,最终找到了答案,高电平持续时间=计数值×单片机的机器周期1us。虽然学习了单片机这么久,但是对于一些根底概念没有清楚的生疏,导致了这种错误。2. 在设计数码管显示电路时,我们原来打算利用 74HC573 锁存器,但是觉察这样硬件电路会简洁很多,另外由于此设计功能要求并不简洁,所以我们舍弃了这一局部。另外在刚开头连接电路时,觉察连好之后,数码管不亮,最终我们分析电路,单片机 IO 口输出电流太小,缺乏以驱动数码管,于是我们加了一个与门的驱动器,使之前的 3A 电流变为 5A,由此数码管就足以驱动。七、设计结果a. 测试环境及工具测试距离:在试验室的特定环境中测量了 0.023.15m。测试仪器:数字万用表,直尺。b. 测试方法超声波测距测距仪的硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。用直尺确定障碍物的距离,数码管显示测量的距离。c. 测试结果分析。测距仪能测的范围为 0.023.15m,测距仪最大误差不超过 1cm。系统调试完后应对测量误差和重复全都性进展屡次试验分析,不断优化系统使其到达实际使用的测量要求。由于条件有限,我们无视温度的影响,不进展温度补偿,声速选取 340m/s.调试测量的局部测距数据如表 6-2 所示:测试序号显示距离m实际距离m误差m10.0420.0410.00120.0810.0800.00136.096.000.0941.2031.2000.00351.8021.8000.002表 1 调试测量的局部数据八、设计体会与收获朱敏:虽然这次课程设计只有短短两周,但让我对大二所学的模电学问及刚刚学习的单片机学问有了更深的理解,同时这也是难得的一次理论与实践相结合的时机,以前只是在书本上学单片机可实现的很多功能,还有各种中断,但却没有时机实践,始终只有理论的学习,通过这次课程设计我才真正了解其中的原理。我的任务是硬件的总体设计以及相关焊接工作,刚开头我拿到题目的时候很不知道应当怎么做,再讯查完资料后,自己或许知道了电路需要哪些模块,下来就是针对每个模块进展具体设计,同时我还要进展一些仿真,其中应用哪些电阻,电容,这都要通过仿真来确定,期间遇到很多困难,都是团体同伴帮助我的, 这也让我生疏到团体的合作精神。通过本次课程设计我不光复习了模电学问及单片机学问,熬炼了动手力气, 同时也生疏把握了 proteus 仿真软件和 Protel 电路设计软件的使用,对于我们测控专业的学生来说,Proteus 和 Protel 是必需把握的电路仿真软件,这次课程设计给我供给了一个很好的时机熬炼自己的实践力气,我想对于我们工科学生来说动手力气是很重要的,以前每天只是在教室里面学习理论学问,而没有时机将理论与实践结合起来。李蕊蕊:我这次的课程设计的主要任务是对于超声波测距模块的设计和一些其他设计仿真工作,经过我们的屡次的样机制作觉察,超声波的放射和接收头比较脆弱, 不要任凭的拨动它们。而且超声波元件的价格比较昂贵,所以制作时候需要特别留神。刚开头设计的电路显示局部使用了两个锁存器,但是在实际焊接时觉察连线很乱、很麻烦,然后就想可不行以去掉锁存器。在仿真图上一试果真可以显示。这样简化了硬件电路,实际连接很便利。要学会设计,必需生疏了解其中的原理, 对此,我觉得我做的很好,对一起的每个管脚等等我都必需要生疏,所以课下我特别的去了解了各个硬件的原理,这有助于我之后实际。最终我觉得我们组这次课设成功的关键在与我们组员之间的团结和不放弃的精神,从电路设计到仿真,再到焊接电路,我们遇到了很多困难,但是我们没有放弃,也没有相互埋怨,而是始终呆在一起,争论不断改进,最终我们取得了成功。还有就是今后做设计时要多想、多试,不断修改程序,尽量简化硬件。朱奇峰:这次课程设计教师给我们的题目是超声波测距仪的设计,通过对本功能模块的调试,本功能模块完成了测量仪设计的目的和要求,在焊接好硬件电路并编写好软件程序后,经过长时间的调试并不断的改进方案,最终我们得到了预期的结果。这也让我再次生疏到了团体合作的力气。我这次课程设计的任务是对于显示模块的设计,他不仅包括硬件的还有软件的设计,所以我必需把数码管和一些显示电路设置他们与单片机连接的管脚等等的全部内容要搞清楚,所以课后我也下了些功夫去查些资料什么的争论它,最终定下了一些结论比方承受四位共阳极数码管显示等等。在此期间,我认为团体协作是格外重要的,譬如我有好多不懂的问题可以相互争论,还有我们每个人设计任务都是有联系的,比方说我设计的一些显示的电路和单片机怎么连接,又如何显示我比须告知设计编程的周腾,这样他才能更好地完成编程任务。在刚开头连接电路时,觉察连好之后,数码管不亮,最终我们分析电路,单片机 IO 口输出电流太小,缺乏以驱动数码管,于是我们加了一个与门的驱动器, 使之前的 3A 电流变为 5A,由此数码管就足以驱动。周腾:我这此课程设计的任务是软件程序的编写,这占了此次设计的最主要的工作局部,之前自己对单片机在书本上的学问还比较了解,所以自己认为编程应当没什么大问题,在生疏了超声波测距设计的一些原理和硬件的总体模块之后,我开头了编程,由于用的是C,我差不多把C都忘了一些,所以在课后我又补充了这些学问,这对我有极大的帮助。之后我现在脑子里把具体程序的模块划分出来,然后对每个模块进展流程图设计,最终就每个模块开头编程,编完程对其不断检查和改进。本系统承受模块化设计,由主程序、放射子程序、接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开头调用放射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。总体来说这次课程设计真的收获颇多,不仅复习了课本学问,最重要的是熬炼了自己的动手力气,将理论与实际很好的结合起来,而且第一次感觉到靠自己做出了自己专业的东西,很有成就感。但莉:这次课程设计我的主要任务是电路焊接,当任安他们把程序设计好之后我就开头焊接电路了,我们组由于使用的是超声波集成模块 URF-04,相比与其他组我们的硬件焊接任务少了很多,主要也就是焊接单片机最小系统和数码管显示电路,开头我任务很简洁,一个早上搞定。然而当我焊完之后觉察数码管并不显示,通过分析电路我才觉察单片机输出电流太小,缺乏以驱动数码管点亮,于是我在每个数码管的位选端之前加了一个与门用以放大电流,这样数码管就亮了。另外在设计单片机最小系统的时候无视了复位电路的作用,焊接时消灭错误,在课设快要完毕的时候才觉察这个错误,每次只是通过电源开关来复位。在软件程序设计的时候我们也消灭了很多问题,由于是第一次使用数码管和单片机,对于数码管的工作原理及单片机个功能引脚的使用都不清楚,在编写程序的时候都是一边翻开课本一边上网查资料,才把程序框架设计出来,硬件电路焊接好之后不断改进程序,才到达设计目标。这次实习我不但学到了很多实际的东西,还体会到了团队合作的精神。附录:超声波测距仪系统电路原理图图 10 超声波测距仪系统电路原理图附录:程序代码#include<reg52.h> #include<STDIO.H> #include<intrins.h>#define CONTROL_PERIOD 1000Unsignedintcode table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/0123456 789 共阳极编码表unsignedintcode table_point=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/0 123456789 共阳极编码表(带小数点)sbitLed1=P20;/位选端 1sbitLed2=P21;/位选端 2sbitLed3=P22;/位选段 3sbitLed4=P23;/位选段 4sbit TX = P10;/超声波接收端与单片机接口unsignedintqian,bai,shi,ge;unsignedinttime_period=0;unsignedintcount=0;/定义变量void delay_xms(unsigned int xms)/延时 xms 毫秒;unsigned int i,j; for(i=xms;i>0;i-)for(j=110;j>0;j-);void display (unsigned int temp)/显示函数,数码管动态显示qian=temp/1000;/取得千位值bai=(temp%1000)/100;/取得百位值shi=(temp%100)/10;/取得十位值ge=temp%10;/取得个位值P2=0;/初始化 P2 端口Led1=1;/选择位选端 1,使 Led1 使能端翻开,千位显示;P0=table_pointqian;/查表给 P0 口赋值,点亮数码管delay_xms(1);/延时 1msP2=0;/初始化 P2 端口Led2=1;/选择位选端 2,使 Led2 使能端翻开,百位显示;P0=tablebai;/查表给 P0 口赋值,点亮数码管delay_xms(1);/延时 1msP2=0;/初始化 P2 端口Led3=1;/选择位选端 3,使 Led3 使能端翻开,十位显示;P0=tableshi;/查表给 P0 口赋值,点亮数码管delay_xms(1);/延时 1msP2=0;/初始化 P2 端口Led4=1;/选择位选端 3,使 Led3 使能端翻开,个位显示;P0=tablege;/查表给 P0 口赋值,点亮数码管delay_xms(1);/延时 1msvoid start(void)/放射持续时间为 15us 的高电平, 启动超声波测距模块,发出超声波;unsigned int a; TX=0;_nop_;TX=1;for(a=15;a>0;a-)_nop_;TX=0;void measure_init(void)TCON|=0X01;/把握存放器:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0;0000 0001 中断 0 下降沿触发;TMOD|=0X19;/工作方式存放器:GATA1 C/T1 M1 M0 GATA0 C/T0 M1 M0 计数器 1 工作在方式一;/计数器 0 也工作在方式一,INT0和 TR0 必需都有效时才工作; TH1=(65536-CONTROL_PERIOD)/256; TL1=(65536-CONTROL_PERIOD)%256;TR1=1;/翻开计数器 1,计数器 1 开头计数;TH0=0;/给计数器 0 附初值,高八位为 0;TL0=0;/给计数器 0 附初值,低八位为 0;TR0=1;/翻开定时器 0IE=0X89;/中断允许存放器:EA ES ET1 EX1 ET0 EX01000 1001,外部中断 0 允许中断,计数器 1 也允许中断;void main(void)measure_init; while(1)if(time_period)display(unsigned int)(time_period*0.17); elsedisplay(8888);void extern0_measure_server(void) interrupt 0/外部中断 0 的中断程序time_period=TH0*256+TL0; TH0=0;TL0=0;void timer1_isr(void) interrupt 3/计数器 1 的中断程序TR1=0;TH1=(65536-CONTROL_PERIOD)/256; TL1=(65536-CONTROL_PERIOD)%256;count+;if(count>=500)/0.5 秒刷一下显示;start; count=0; TR1=1;附录:参考文献1 康华光. 陈大钦,等. 电子技术根底模拟局部.高等教育出版社 2023 年2 谭浩强. C 程序设计(其次版).清华大学出版社.1999 年3 李全利、迟荣强.单片机原理及接口技术.高等教育出版社.2023 年4 郭天祥.51 单片机 C 语言教程.电子工业出版社.2023 年

    注意事项

    本文(课程设计实验报告超声波测距仪的设计.docx)为本站会员(蓝**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开