欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    东北大学测控单片机程序设计课程设计报告超声波倒车雷达.docx

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

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

    东北大学测控单片机程序设计课程设计报告超声波倒车雷达.docx

    1、东北大学测控单片机程序设计课程设计报告超声波倒车雷达基于单片机实现的超声波倒车雷达姓 名: 学 号: 班 级: 专 业 名 称: 测控技术与仪器 指 导 教 师: 东 北 大 学年月课程设计(论文)任务书课程设计(论文)题目:超声波倒车雷达基本内容和设计要求:采用LCD12864液晶屏,屏幕上显示制作人以及与障碍物之间的距离,当小于危险距离的时候会显示“超出测量距离”;采用HC-SR04进行超声波发射与接收,根据发送的超声波与接收到的超声波时间差计算距离;针对距离远近进行报警,利用蜂鸣器S8550在距离小于预设(危险)距离时进行报警,距离越近,蜂鸣器响声频率越高;使用伟福仿真器代替单片机,在进

    2、行仿真操作时能更清楚的观察到程序运行的数据,较之以前单片机的盲调有很好的改善,在运行复杂程序是能快速找出出现的问题,提高工作效率。目录课程设计(论文)任务书 ii摘要 5第1章 绪论 61.1倒车雷达简介 61.2设计主要内容 6第2章 系统硬件设计 72.1硬件组成 72.2HC-SR04超声波发射接收模块 72.2.1工作原理: 72.2.2主要技术参数: 72.2.3HC-SR04使用注意事项: 82.3 LCD12864液晶模块 82.3.1硬件准备 92.3.2液晶连接 92.3.3接线说明 92.3.4实验现象 92.3.5实用注意事项 102.4 蜂鸣器S8550模块 10第3章

    3、 系统软件设计 113.1 主程序 113.2计算距离信息子程序 123.3蜂鸣器报警子程序 133.4计时器T0中断子程序 133.5 LCD12864显示子程序 14第4章 调试测试与实验分析 154.1 倒车雷达测试 15参考文献 16心得体会 17附录 硬件原理图 18附录 程序清单 19附录 实物照片 26 摘要在现代汽车被人们广泛使用,汽车设计越来越完善,安全性能也愈发重要。在路况复杂的情况下,倒车对驾驶员的操作有着极大的考验,而倒车雷达可以在驾驶员不方便观察倒车情况时提供安全预警,避免危险发生。该装置采用伟福仿真器与传感器,液晶显示屏,蜂鸣器组合,自动化程度高,通过液晶屏显示与警

    4、铃报警,在整个系统当中,液晶显示屏采用了LCD12864,其功能满足静态动态显示的要求并且显示效果稳定,分辨率可调,并且该器件在软件设计上相对简单,是该系统的首选显示器件。在显示软件设计方面,采用行写入提高固定信息行的信息写入,距离动态显示行采用字写入,快速高效,显示的刷新率高,可以实现距离的动态实时显示,行写入与字写入相见使用,提升了显示效率,使距离等信息的显示更加快捷。在测距方面,采用了超声模块HC-SR04,在精度要求不高的模型当中的应用中,该模块表现出色,模块上嵌入有滤波系统,可以有效的滤出超声接收端的杂波干扰,并且该超声模块的测量范围最近的盲区为2cm,最远盲区为4m,测量范围适用于

    5、本课设中,另一个显著的优点为该超声模块为5V工作电源,其功率很低,并且在使用上,其软件部分的编程相对简单,简单实用。在硬件连接方面,该模块只有4根线需要连接,其中工作用线只有2根,连线简单,连上即可使用,非常方便,所以在测距方面选择了该模块作为超声测距模块。报警方面,采用蜂鸣器S8550模块,该模块结构简单,体积小,发声效果优秀,驱动简单,只需要连接一根线,写入高电平即发音,可通过高电平和低电平持续时间比来调整音调与响度,无论是硬件连接、软件设计还是工作原理都简单易行,因此采用该模块。整体上,该系统使用便捷,同时集成程度高,体积小,安装方便,可以为倒车提供优良的距离显示和报警信息,为驾驶员带来

    6、最好的驾驶体验。为安全出行提供保障。关键词:倒车雷达,伟福仿真器,LCD12864,HC-SR04,S8550第1章 绪论1.1倒车雷达简介倒车雷达是一种集超声波发射、接收,距离监测、危险警报于一体,实现车辆倒车时提示与后方障碍物距离的安全辅助装置装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员驻车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,与传统汽车在倒车时通过后视镜观察相比具有更高的便捷性和安全性,且具有更好的实用性,解决了倒车难的问题,因此在汽车开发、仪器仪表中得到了广泛的使用。1.2设计主要内容在本次倒车雷达的设计当中

    7、,主要应用超声波模块测距,蜂鸣器报警和LCD液晶显示屏实时展现雷达距离障碍物的具体距离,并可以实现设定阈值报警,并且距离越近报警频率越高这样一种功能。超声模块部分的思路为使用HC-SR04收发一体模块发射一列超声波并完成接收,仿真器通过计时器T0来记录从发射到接收的时间T,也就是超声波传输的总时间,然后仿真器通过软件由计算公式S=T*340/2得到距离信息。 显示部分,将距离信息送到LCD12864中,通过液晶屏幕来显示距离信息,在这里主要设计在于分开编写,我们设计的思路为第一行、第二行和最后一行为固定区域,就是屏幕在这些区域显示的内容是固定的,在第三行处,我们将其设定为实时显示,也就是将距离

    8、信息放在第二行中显示,具体的设计方法见后面的屏幕显示部分,同时在编写程序的时候预设定一个阈值,这个值可以在程序中对应处修改,也可以使用宏定义进行整体一键修改,或者可以使用输入语句,与键盘开关等输入性的硬件联合使用达到用户个人定义报警阈值,蜂鸣器部分,距离信息将同时用作与阈值进行比较,当低于阈值时,通过S8550模块触发蜂鸣器,并且这一过程将实时比较,不断对比,距离越近,蜂鸣器的响声间隔时间越短,实现越近响声越急促的目的。而这一过程的实现主要是通过控制蜂鸣器的发生频率实现的,所谓的蜂鸣器的响度,与其一次响声的时间有关,时间越长,音调越高,另一部分蜂鸣器的响动频率主要与蜂鸣器两次响声的时间间隔有关

    9、,间隔时间越短,蜂鸣器的响动频率越急促,通过这两个原理来改变蜂鸣器的音调和响度。第2章 系统硬件设计2.1硬件组成硬件以伟福仿真器为核心,外部扩展HC-SR04芯片模块实现超声测距功能,LCD12864模块实现数字显示功能,S8550芯片模块实现警报功能。基本硬件结构图如图2.1所示。图2.1 倒车雷达基本硬件结构图2.2HC-SR04超声波发射接收模块考虑实用性及设计指标要求,本课程设计所用HC-SR04超声波发射接收模块电路图如图2.2所示。2.2.1工作原理:1)本模块性能稳定,测度距离精确,模块高精度,盲区小;2)发射系统采用IO口TRIG触发测距,给至少10us的高电平信号;3)模块

    10、自动发送8个40khz的方波,自动检测是否有信号返回;4)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340M/S)/2;2.2.2主要技术参数:1)使用电压:DC-5V2)静态电流:小于2mA 3)电平输出:高5V4)电平输出:底0V 5)感应角度:不大于15度 6)探测距离:2cm-450cm7)高精度 可达0.2cm 图2.2 HC-SR04超声波收发模块电路图2.2.3HC-SR04使用注意事项: 1)此模块不宜带电连接,如果要带电连接,则先让模块的Gnd 端先连接。否则会影响模块工作。 2)测距时,被测物体

    11、的面积不少于0.5 平方米且要尽量平整。否则会影响测试结果。2.3 LCD12864液晶模块距离显示采用LCD液晶模块,电路图如2.3所示。图2.3 LCD12864液晶模块电路图2.3.1硬件准备 1)2P 杜邦线 2 根 2)8P 杜邦线 1 根 3)LCD12864 液晶 1 个2.3.2液晶连接 将 LCD12864 液晶插到底板 LCD12864 液晶插座上,注意液晶方向, LCD12864 液晶的 1 脚插到底板液晶接口的 1 脚, LCD12864 的 20 脚插到底板液晶接口的 20 脚。2.3.3接线说明 用 1 根 8P 杜邦线将单片机 P1 口与底板 JP41 排针相连,

    12、用 2 根 2P 杜邦线 将单片机 P34P37 口与底板 JP36 相连。单片机 P1 口与底板 JP41 排针相连 分别为:P10-D0, P11-D1,P12-D2,P13-D3,P14-D4,P15-D5,P16-D6,P17-D7;单片机 P34P37 口与底板 JP36 相连 分别为:P34-RS,P35-RW,P36-EN,P37-CS1,CS2 悬空。跳线说明:无 2.3.4实验现象 在液晶上显示 5 行包含字符和汉字的信息。第一行:测量距离: 第二行: :cm 第三行: 康乃元 王怀森 第四行: 欢迎使用 第五行: 超出测量范围 2.3.5实用注意事项LCD12864的第一行

    13、第三行和第四行内容为固定,所以在这三行的内容采用数组方式输出。而第二行为实时显示,因此在第二行的输出编程上,与其他行有所不同,这一行的编写我们选择为逐个显示,不采用数组形式的整体显示。第五行的用途为替换第四行,也就是在后面的程序触发最近的距离,进入盲区时,将会用这一行的内容替换第四行的内容,提醒使用者使用的距离已经不再测量范围内,需要调整探测器到障碍物的距离。2.4 蜂鸣器S8550模块蜂鸣器使用单片机上集成的蜂鸣器S8550,,电路图如图2.3所示。 图2.4蜂鸣器S8550模块电路图第3章 系统软件设计3.1 主程序主程序框图如图3.1所示图3.1 主程序框图主程序中实现单片机的初始化,包

    14、括计时器T0和T1的初始化以及对各函数的调用,利用超声模块收到回声为基准进行计时计算距离信息,该主程序中共使用了2个中断函数和计算、显示两个子程序的调用。其各个模块的端口分布见表3.1。表3.1 外部设备地址分配外部模块名称地址LCD12864P3-4、P3-5、P3-6、P3-7S8550P2-03.2计算距离信息子程序测距并计算子程序如图3.2 图3.2 计算距离信息子程序3.3蜂鸣器报警子程序采用给定的S8550模块驱动蜂鸣器做报警系统,并通过延时程序对针对不同的距离发出不同的警告音,距离越近,声音越急促。报警子程序框图如图3.3.图3.3 蜂鸣器报警程序3.4计时器T0中断子程序计时器

    15、T0用作测量回波时长,当距离过远,T0在计时到最大值仍然没有收到回波,即超出测量范围时,对溢出标志位flag进行置,改变显示内容为“”。其子程序见图3.4图3.4 计时器T0中断子程序3.5 LCD12864显示子程序LCD12864显示程序首先需要进行第一行、第三行、第四行所要输出的固定字符进行初始化,在这些行中,使用数组的格式进行初始化,显示过程通过使用行扫描的方式进行整体显示,过程分为两部分,选定行地址,选择对应的输出内容数组,另一部分为第二行距离的显示,在这一部分中,采用逐字进行,前三位距离信息,确定首地址之后使用三个字的输入,光标是自动向后移动的,三个字的内容会根据距离的改变实时变化

    16、,达到距离实时显示的目的。其程序如图3.5图3.5 计时器T1中断子程序第4章 调试测试与实验分析4.1 倒车雷达测试第一次调试结果显示,倒车雷达的显示屏处的显示距离处为乱码,但是可以看到的一点是乱码是在跳动,这说明随着距离的改变,实时显示的子程序并没有问题,而是显示的内容处出现问题,经过一下午的调试之后发现是在形参传递时错误的将常亮信息当做地址信息传递,也就是将距离信息看做一个地址,里面的东西当然就是乱码的,并且发现的第二个问题就是进制的问题,通过测距公式得到的距离信息为十进制三位数,而将这个数据直接送到显示处的问题就是,我们的距离是按照每一位进行显示的,而三位数是没办法在一位上显示,针对这

    17、个问题,我们将得到的数据利用求余预算将其分开三位,并且将每一位转换成对应的二进制形式输出,这样显示的问题就解决了。在后来的调试中,虽然不算大问题,但是也需要进行处理,就是报警器的响度不够,在确定原来的音调和音频的控制原理没有问题之后,我们对延时程序处进行了修改,减短了两个发声的间隔时间,并在整体上加上了一个比较大的循环,这样得到的效果就是非常响亮的音调,并且每次距离达到改变频率的阈值处,蜂鸣器频率的改变都非常令人满意。在之后的调试当中,主要测试了程序运行的平稳性,多次运行的结果在每个方面都表现的很完美,没有出现任何偏差,测距的速度也都非常的快,显示屏也不会因为响动频率过高而产生画面抖动。所以最

    18、后得到的结果是非常令人满意的。参考文献1 张谦琳.超声波检测原理和方法M.北京:中国科技大学出版社,1993.10.2 何希才.传感器技术及应用M.北京:北京航空航天大学出版社,20053 张毅刚.新编MCS-51单片机应用设计M.哈尔滨工业大学,2016.1心得体会附录 硬件原理图硬件原理图PCB图附录 程序清单#include#include #define uchar unsigned char #define uint unsigned intunsigned int time=0;unsigned int timer=0;unsigned long S=0;/超声模块管脚定义sbit

    19、 Echo = P01; /回波引脚sbit Trig = P02 ; /产生脉冲引脚sbit BEEP = P20; /喇叭/显示函数管脚定义sbit LCD12864_RS = P34; /RS控制引脚sbit LCD12864_RW = P35; /RW控制引脚sbit LCD12864_EN = P36; /EN控制引脚sbit LCD12864_PSB = P37; /CS1模式选择引脚,ST7920控制器,1为8位并行接口,0为串行接口#define LCDPORT P1 /数据引脚unsigned char code ucStr1 = 测量距离: ; /显示信息1unsigned

    20、 char code ucStr2 = cm ; /显示信息2unsigned char code ucStr3 = 康乃元 王怀森; /显示信息3unsigned char code ucStr4 = 欢迎使用 ; /显示信息4unsigned char code ucStr5 = 超出测量距离 ; /显示信息5long *k;/*函数声明*void beep(void); void conversion(uint temp_data);void delay_20us();void Count(void);void Delayms(unsigned int time);/=/显示函数声明vo

    21、id LCD12864_Init(void); /LCD12864初始化函数void LCD12864_WriteInfomation(unsigned char ucData,bit bComOrData); /向LCD12864写入数据,bComOrData为1时写入的是数据,0时写入的是命令void LCD12864_CheckBusy(void); /忙检测函数void LCD12864_DisplayOneLine(unsigned char ucPos,unsigned char *ucStr); /向LCD12864写入一行文字void Delay(unsigned int ui

    22、Count);/= void main(void) /主程序 int a,b,c,i=0; Trig=0; /首先拉低脉冲输入引脚 TMOD=0x11; /设T0为方式1,GATE=1; /=显示部分 = LCD12864_Init(); /初始化液晶 LCD12864_DisplayOneLine(0x80,ucStr1); /显示信息1 LCD12864_DisplayOneLine(0x90,ucStr2); /显示信息2 LCD12864_DisplayOneLine(0x88,ucStr3); /显示信息3 LCD12864_DisplayOneLine(0x98,ucStr4);

    23、/显示信息4 /=显示部分结束= ET0=1; /打开定时器0中断 = TR0=1; /打开计时器0 EA=1; /打开总中断0 while(1) TH1=0x48; TL1=0x64; TR1=1; Trig=1; delay_20us(); Trig=0; /产生一个20us的脉冲,在Trig引脚 while(!Echo); /等待Echo回波引脚变高电平 TR1=0; EX0=1; /打开外部中断 TR0=1; /启动定时器0 while(Echo); /等待测量的结果 TR0=0; /关闭定时器0 EX0=0; /关闭外部中断 Count(); /计算 a=S/100+0x30; b=

    24、S%100/10+0x30; c=S%100%10+0x30; LCD12864_WriteInfomation(0x93,0); LCD12864_WriteInfomation(a,1); LCD12864_WriteInfomation(b,1); LCD12864_WriteInfomation(c,1); /=可变延时程序=void Delayms(unsigned int time)/延时时间为 1ms unsigned int x,y; for(y = 0; y time; y+) for(x = 0;x 111; x+);/=计算距离程序=void Count(void) in

    25、t i; time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; /算出来是CM if(S5&S=10) for(i=0;i10&S=15) for(i=0;i15&S20) for(i=0;i=20&S25) for(i=0;i=25&S30) for(i=0;i30) for(i=0;i30;i+) beep(); Delayms(6); /=响铃子程序=void beep(void) BEEP = 0; / 驱动蜂鸣器响 delay_20us(); / 延时大约20us BEEP = 1; / 关闭蜂鸣器/=/=T0中断程序= void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 /=延时程序=void delay_20us() uchar bt ; for(bt=0;bt100;bt+); /=显示系列子程序=/*函数名称:LCD12864_WriteInfomation函数功能:向LCD12864写入命令或者数据入口参数:ucData-要写入液晶的数据或者命令的内容 bComOrData-命令或者数据的标志位选择,0或者1,其中 1:写入的是数据 0:写入的是命令返回值:无备注:无*


    注意事项

    本文(东北大学测控单片机程序设计课程设计报告超声波倒车雷达.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开