ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:2.09MB ,
资源ID:2662510      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2662510.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(倒车雷达超声波测距大学本科毕业论文.doc)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

倒车雷达超声波测距大学本科毕业论文.doc

1、济南职业学院 毕业设计(论文)题 目: 超声波测距倒车雷达设计 系 部: 电子工程系 专 业: 电气自动化 学 号: 201208022116 学生姓名: 陈泰 指导教师: 郭振慧 职 称: 讲师 二O一五年四月二日济南职业学院毕业论文(设计)任务书 课题名称:_ 超声波测距倒车雷达设计 系 部: 电子工程系 专 业: 电气自动化 姓 名: 陈泰 学 号:_ 201208022116 指导教师: 郭振慧 二O一五年四月二日超声波倒车雷达设计摘要 本次设计采用单片机STC89C52来控制整个超声波系统。由单片机控制产生超声波并且控制定时器开始计时,当接收电路接收到回波时,定时器产生中断,停止计时

2、。信号发出到接收到回波信号所用的时间是由单片机计算完成,从而得到实测的距离。距离显示在LED数码管上,并控制报警电路。整个硬件电路由电源电路、按键电路、显示电路、报警电路以及超声波模块构成。按键电路用来控制报警距离的增加或者减少,方便且实用。本次设计具有容易控制和工作稳定等优点。关键词:STC89C52 超声波 测距 目录第1章 前言11.1 课题研究的目的及意义11.2 超声波测距系统的国内外现状11.3 设计的要求1第2章 系统总体方案的选择22.1超声波的简介22.2 超声波测距系统原理22.3 方案选择2第3章 整体硬件电路设计43.1单片机系统电路43.1.1复位电路43.1.2 时

3、钟电路53.2 蜂鸣器报警电路63.3 按键电路63.4 超声波发射电路73.5 超声波接收电路73.6 超声波模块83.7 显示电路83.8 电源电路93.9 系统的整体电路10第4章 软件部分114.1 主程序设计114.2 中断处理程序124.3 距离的计算及显示电路的设计134.4 报警电路的设计144.5 按键电路的设计14第5章 硬件的组装及调试15结论17致谢18参考文献19附录20第1章 前言1.1 课题研究的目的及意义经济的发展带来社会的进步,超声波测距被频繁的用在人们的日常工作之中。超声波拥有测量稳定、穿透能力强、易接收等特点,同时超声波测距不用接触到物体,适用于了情况比较

4、复杂的环境。还因为超声波测距易于控制,并且达到了所要求测量的工业指标,所以超声波测距被用于获取距障碍物的位置信息、移动机器人、汽车倒车雷达等方面的研究。1.2 超声波测距系统的国内外现状国内超声波测距主要针对固体和液体的研究,在测距的稳定性和精确性上有了很大程度的提高。并且随着科学技术的不断提高,超声波技术在工业的自动控制、汽车倒车系统等方面也有深入的研究。此外在医学、生物科学等领域也有突出的地位。国外也做了大量的研究是关于提高超声波测距。Figneroa JF,Lamancusa JS在计算时间方法上又有了新的突破,传播时间的获得是通过相加峰值时延和相位时延。1.3 设计的要求设计一个超声波

5、测距系统,距离设定一个限定值,当超声波探头与被测物体的距离小于设定值时,两者的距离显示在四位七段数码管上并开始报警。设计主要需求如下:(1) 电路测量的距离为6m。并且误差率不得超过0.03%。(2) 与被测物体的距离用数码管显示,并有报警功能。(3)设置按键电路,能对设置的最小报警距离进行改变。第2章 系统总体方案的选择2.1超声波的简介我们知道,声音的发出是产生了振动。我们知道赫兹定义为声音的振动频率,2020000赫兹的振动频率是人的耳朵可以接收到的,高于20000赫兹的,我们定义为超声波。超声波具有穿透性好、容易获取等特点,在医学、工业、军事、农业等方面有着巨大的研究价值。2.2 超声

6、波测距系统原理在超声波测距的过程中,超声波的发射端接收到的脉冲为一系列的方波。时间间隔大小为方波的宽度,距离越远,脉冲的宽度越大。脉冲的个数也随着测距的远近而变化。超声波测距的方法是:测量出输出脉冲的宽度即发出超声波到接收超声波的时间间隔t,利用公式S=12vt,算出被测距离。超声波的算法设计:X1是超声波发出的时间,X2是超声波接收的时间。我们知道声波的传播速度为340m/s,所以被测距离L如图2-1。 图21测距原理2.3 方案选择 单片机 控制器 本方案选择STC89C52单片机来控制整个电路,测得的距离显示在四位数码管上,并根据所设置的报警距离开始报警。超声波的发射信号由单片机发出并送

7、到发射电路上,发出超声波。接收电路由CX20106A芯片和接收探头构成。报警电路中,电阻R15为限流电阻、晶体三级管为驱动蜂鸣器。本设计将发射探头和接收探头分离,这样可以避免信号发生混叠干扰,从而使的测量数据更加的精确。根据以上设计如图2-2。 单片机 控制器 数码管显示超声波的接收 蜂鸣器报警超声波的发射 图2-2 系统框图结合实际需求,在网上查找了相关的资料,决定选用HC-SR04超声波集成模块。此模块发出的超声波能够测量的范围在5m到2cm之间,能够准确到3mm,它的发射角不大于15,有利于准确的测量。并且工作频率在39 kHz41 kHz左右,完全符合本次设计的40kHz的工作频率。由

8、于超声波的发射探头和接收探头是放在同一水平直线上的,而且超声波信号在传播的过程中会发生衰减,所以两个探头不能距离太远。又因为如果两个探头离的太近会产生信号的干扰,测量出来的结果会产生误差。 第3章 整体硬件电路设计3.1单片机系统电路 本次设计采用了高速、功耗低的STC89C52单片机。这款STC89C52单片机在功能上和以前51单片机的一样,并且还扩展了功能,使得用起来更加的方便。 图3-1 STC89C52引脚图3.1.1复位电路在单片机规格书中,有这样一段描述:如果当RST端口持续两个周期以上的高电平,系统就会复位。电路如下: 图3-2 复位电路在VCC供电时,RST的电压和VCC一样。

9、随着从 C3电容的充电,RST电位开始下降,并形成一个正向的脉冲,只要脉冲宽度足够就可以实现复位。关于RC的计算: (3-1) 机械周期=震荡周期*12 (3-2)关于复位时间t的计算: (3-3)查看相关资料知道,当REST上的电压高于0.7Vcc时,就可以被看为高电平。本次用的系统电压为5V,所以REST上超过3.5V就可以看成高电平,并且高电平的时间超过2us,单片机就可以复位。最后计算RST的电位,复位电路为一阶RC电路,所以电压与电流有一下关系: (3-4)因为;所以。设Reset pin 电压为,那么: 所以, 当的时,。当且仅当 时,系统实现复位,并且电阻和电容RC满足条件。所以

10、用R=10K、C=10F符合要求。3.1.2 时钟电路 时钟电路的两个引脚分别接入XTAL1端口和XTAL2端口。在两个引脚之间接入一个12M的晶振,两个22PF的电容和晶振并联后接地。电容的可以使电路更加的稳定,电路如下: 图3-3 时钟电路3.2 蜂鸣器报警电路报警电路由蜂鸣器、三极管、电阻构成。蜂鸣器由三极管驱动。R15为1k的电阻,作用是保护蜂鸣器。单片机P36端口和电阻R15连接,当单片机P36口发送一个低电平到报警电路时,NPN型三极管开始驱动蜂鸣器进行报警,报警电路如图3-4。 图3-4报警电路3.3 按键电路 按键电路由三个切换开关,一个LED设置指示灯和一个限流电阻构成。电路

11、图3-5如下: 图3-5按键电路按键电路的功能是:当按下k1键位时,指示灯亮起,开始设置报警距离。K2按下,报警距离从原来的距离开始增大,当按下K3键位报警距离开始减小。 限流电阻R14的计算: R(U2U1)I (3-5)式中U2为提供的5V电压,U1和I分别为发光二极管两端的电压、电流。此次设置指示灯用的是绿色发光二极管,正向压降UF为2v,工作电流IF为20毫安。所以R14=(5-2)/0.02=150。3.4 超声波发射电路发射电路主要由5个非门组成74LS04芯片电路组成。单片机发出的40 kHz的脉冲不能直接由发射电路发出,要经过足够倍数的放大后,才能由发射探头发出。所以74LS0

12、4反相器其实就是一个放大电路。超声波发射电路如图3-6所示。 图3-6 发射电路R16和R17为1K的电阻,能够74LS04芯片放大的输出能力。Vcc为整个电路提供电源。电路工作时,单片机产生的40 kHz由P0.1端口发送到发射电路,信号由74LS04芯片放大并由超发出。3.5 超声波接收电路由于超声波在传播的过程中是有衰减的,所以在中长距离的测量中,反射回来的信号被衰减了,所以有必要进行信号的放大,放大的倍数还比较大。查看相关资料,此次设计采用的是CX20106A芯片,此芯片具有信号放大、峰值检波、比较等功能。芯片CX20106A电路构成了主要的接收电路,比较完信号后会产生一个低电平发送到

13、单片机进行中断,中断以后,开始进行数据的处理。如图3-7所示。 图3-7接收电路3.6 超声波模块HR-SR04超声波模块包含了接收探头、发射探头、74LS04芯片放大电路和CX20106A芯片电路。超声波模块如图3-8所示。 图3-8超声波集成模块HR-SR04有四个连接口,分别为VCC、GND、TRIG、ECHO四个接口。VCC:提供5V的电源GND:地线TRIG:信号的输入端口ECHO:信号的输出端口工作原理:此模块能够发出8个40 kHz的方波脉冲,并且可以自动检测有没有信号的返回。3.7 显示电路 本次设计的显示电路由四位七段数码管、三极管和三个电阻组成。数码管由三级管来驱动,限流电

14、阻R11、R12和R13是保护整个显示电路,如图3-9。 图3-9 显示电路 LED是发光二极管的简称,八只发光二极管构成了数码管,国际上记作:a、b、c、d、e、f、g、dp。dp为小数点。数码管要能够正常的显示就必须要有驱动电路来驱动,本次设计采用了动态的方式。动态驱动的优点有:节省了大量的I/O口,并且消耗低,所以本次设计采用动态的驱动方式,四位数码管的接线方式为共阳极的接法。3.8 电源电路电路由一个5V电源、一个发光二极管和限流电阻组成。发光二极管采用的是红色,作为电源指示灯,电路如图3-10所示。 图3-10 电源电路 关于发光二极管限流电阻R2的计算:能加到发光二极管两边的电压为

15、5V,使用时要串联一个限流电阻用以保护发光二极管。电阻R2的计算为: R2(EUF)IF (3-6)式中的E为电源电压,UF为发光二极管的两端电压,IF为发光二极管的两端电流。 发光二极管根据用途不同,颜色也不同。红色发光二极管的工作电压是2V。发光二极管的电流大概为20mA,本次设计采用的是红色发光二极管。采用的电源电压为5V,电源电压减红色二极管的两端电压就是电阻R2的电压,再用R2两端的电压除以红色二极管两端电流就能计算出R2。所以R2=(5-2)/0.02=150。3.9 系统的整体电路 图3-11 系统电路图整个系统由电源电路提供5V电源,数据由超声模块传到单片机进行处理,最后显示在

16、数码管上并开始报警。 第4章 软件部分本次设计采用的思想是分块进行设计及编写程序代码。程序主要分为主程序和中断程序。主程序包括初始化单片机STC89C53、超声波的发出和接收、距离的计算、按键电路的设置、距离的显示和蜂鸣器的报警等。4.1 主程序设计主程序是初始化单片机STC89C52,然后置1回波接收位。同时通过端口P3.0发送一个低电平来启动超声波的发射电路,并且开启定时器T0开始计时。这时调动计算子程序根据记录的T0时间计算距离,计算完成后,调用子程序显示距离。与此同时,调用声音处理程序进行蜂鸣器的报警。主程序根据反射回来的信号继续工作,如果回波标志位为0则说明成功接收到了回波信号,这时

17、开始置位并且发送一个低电平到发射电路,就这样不停的循环,实现测距功能。根据以上描述主程序的流程图如图4-1所示。 开始系统初始化超声波模块复位发射超声波并启动T0开中断接收到回波的同时中断停止计算测量距离显示距离同时蜂鸣器报警报警 延时 图4-1 主程序流程图4.2 中断处理程序负责计算距离的程序是中断处理程序。根据前面的分析,当接收电路接收到回波信号以后,同样会产生一个低电平送至单片机的P3.1端口。这时转入中断处理程序,定时器T0以及外部中断0就立刻关闭。读取时间值,并给接收回波的标志位清零。本设计的中断处理程序的程序流程图如图4-2所示。计时停止指定的报警声开启中断关闭返回距离计算处理显

18、示距离并根据距离判断是否报警YN图4-2 中断处理程序流程图在中断处理程序中,对于距离的计算是比较关键的。先从定时器T0那里读取时间值,再根据公式计算出距离,最后在实现各模块的功能。4.3 距离的计算及显示电路的设计 根据公式S=17N/1000=0.017N(cm),可以看出来求出距离的关键是N值,也就是定时器T0计数的次数。当接收探头接收到回波信号时,电路会产生一个低电平送至单片机的P3.1端口,这时,定时器停止工作,并且提取定时器计数的次数N,计算出距离。 本次设计采用的扫描方式为简单实用的动态扫描,用四位共阳极的连接方式连接数码管显示距离。单片机的P2口和数码管进行段的动态扫描,因为距

19、离的显示是在变化不固定的,所以数码管的显示过程是在外部中断后进行的。4.4 报警电路的设计主程序根据计算公式算出与被测物体的距离,通过数码管显示,并且调用报警子程序控制蜂鸣器进行报警。4.5 按键电路的设计当按下k1键位,进入设置模式,默认的报警距离在数码管上进行显示,每按k2一次显示距离增加十厘米,每按下k3一次显示距离减少十厘米,设置好新的报警距离后再次按下k1键位时,单片机自动计算显示距离是否小于新设置的报警距离,如果小于蜂鸣器开始报警。按键电路程序流程如图4-3所示。按下菜单键重新设置报警距离距离增加距离减少再次按下菜单键设置完成计算距离显示距离是否报警 图 4-3 按键电路程序流程图

20、 第5章 硬件的组装及调试本次超声波测距的设计以HR-SR04超声波模块为主体,中心频率为40 kH。硬件的连接及焊接如下:单片机的P2口(P20P27)对应焊接到数码管的a、b、c、d、e、f、g、dp,进行段动态扫描。P1口(P11P13)控制数码管的片选段。P30和P31分别接到超声波模块的Echo、Trig 端口。报警电路引脚接到单片机P36端口。测量到一本书的距离,实际距离为38cm,测得距离为37cm,误差的范围在1cm2cm,比较稳定,实际测距情况如图5-1所示。 图5-1 测量情况显示按下菜单键位,重新设置报警距离,报警距离为80cm。实际距离为95cm,测得的距离为94cm,

21、蜂鸣器开始报警,如图5-2所示。 图5-2 测量情况在现实测距中,测量值与真实值误差产生的原因分析:可能与被测物体的横截面积大小有关。被测物体横截面太小,超声波信号不能被完全的反射回来。可能与被测物体的光滑程度有光。表面不平滑的物体容易使信号散射开来,接收探头接收到的信号变弱。 结论从开学的选题到现在做毕业设计完成的几个月时间里,此次课题的选着从开始的不了解到现在实物焊接成功以及论文的完成,我学习到了很多知识,让我了解从理论到实践过程的艰辛。在设计的这段时间里,从刚开始思考到课题的完成,每一步都在努力的做到最好。对大学四年的学习做了一次比较全面的检练。根据任务书的要求与实际结合,本次设计以单片

22、机STC89C52为主,采用HR-SR04超声波集成模块对超声波的发射和接收,利用四位数码管和和蜂鸣器进行显示和报警。并且设置了按键电路方便的对报警距离进行修改。做出来的实物基本满足任务要求,但在调试过程中发现了一下几个问题:环境的温度对距离的测量有影响,当我在阳光下和在阴凉处对同一距离测出来的数值不一样。查看有关资料,对于温度的影响,在设计中可以考虑加上温度补偿模块。被测物体表面的材质不同也影响距离的测定,几次结果表明:表面粗糙的物体比表面光滑的物体引起的误差更大。可能粗糙的表面信号散射开,这样接收到的回波信号弱,因此产生误差。通过上网了解,影响误差的还有可能是余波信号的影响。在测距时,有一

23、部分声波没通过反射直接传到接收探头那里。这种余波的印象对测距的影响还是挺大的。单这种干扰可以通过软件算法的方法去除。 致谢 本次毕业设计论文在郭振慧老师的耐心指导下,总算完成老师的治学敬业态度让我很感动,很感谢老师的辛苦付出,让我的大学四年画上了一个完美的句号。在本次设计中,老师不断的对我的设计提出很多疑问,让我能在这方面更加深入的思考,并且在我不知所措时,认真仔细的指导我解决问题,这才使得设计的课题能够顺利完成。同时还要感谢教过我指导我的所有老师,你们在我大学的四年里扮演了重要的角色。你们给予我的不仅是知识,还有以后出入社会的优秀品质。谢谢你们的建议与忠告,让我对即将踏入的社会有了自信和目标

24、。谢谢身边的朋友,大学里的每一步都有你们的印记。 参考文献1 Y. S. Huang M. S. YoungAn Accurate Ultrasonic Distance Measurement System with Self Temperature CompensationJInstrumentation science & technology2009,37(01):22-29.2 姚永平.STC89C51RC/RD+系列单片机指南DB/OL.www.MCU-M, 2005-6-25.3 王安敏,张凯.基于AT89C52单片机的超声波测距系统J仪表技术与传感器2006(06):44-49

25、4 戴曰章,吴志勇.基于AT89C51单片机的超声波测距系统设计J计量与测试技术2005(02):17-185 吴超,戴亚文.基于AT89S52单片机的超声波测距系统的设计J中原工学院学报.2008(10):65-686 张春光.基于单片机的超声波测距系统的设计J可编程控制器与工厂自动化2008(09):16-197 苏炜,龚壁建,潘笑超声波测距误差分析J传感器技术2004(06):8-118 李光飞,楼然苗,胡加文单片机课程设计实例指导M北京:航空航天大学出版社2004:86-919 李建法.超声波测距的电路设计与单片机编程J.安阳师范学院学报.2003(05):47-4810 Sv. No

26、ykov Ch. RoumeninCalibration and interface of a polaroid ultrasonic sensor for mobile robotsJSensors and Actuators2007,135(01):55-5811rtori S:ZHANG G X. Geometric Error Measurement and Compensation of Machines.Annals of the CIRP. 1995:599-60912olton W.Instrumentation&process measurement.Longman Scie

27、ntific Technical. 199113张芬:基于C8051F320单片机的超声波测距仪,中国地质大学(武汉)机械与电子信息学院,仪表技术与传感器,2009(09):56-6214李为民:基于stc89单片机的超声波测距仪, 陕西师范大学学报,2005(10):35-4815 Fox, J.D., Khuri-Yakub, B.T. and Kino, G.S., High Frequency Acoustic Wave Measurement in Air, in Proceedings of IEEE 1983 Ultrasonic Symposium, October 31-2

28、November, 1983, Atlanta, GA, pp. 581-4.16Martin Abreu, J.M., Ceres, R. and Freire, T., Ultrasonic Ranging: Envelope Analysis Gives Improved Accuracy, Sensor Review, Vol. 12 No. 1, 1992, pp. 17-21.17Martin, J.M., Ceres, R., Calderon, L and Freire, T., Ultrasonic Ranging Gets Thermal Correction, Senso

29、r Review, Vol. 9 No. 3, 198 附录总程序:#include /头文件#include / 延时 _crol_函数 的文件#define uint unsigned int#define uchar unsigned charuint Slong=30; / 报警距离值 如果需要修改报警距离,则改此处数值就可。void delay(uint); /声明延时子函数int m; /定义变量muchar a=0; /定义变量a。 初始值为0;unsigned int time=0;unsigned int timer=0;unsigned char posit=0;unsig

30、ned long S=0;unsigned char const discode =0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/; /共阳数码管段选unsigned char const positon3= 0xfd,0xfb,0xf7; /数码管位选unsigned char disbuff3 =0,0,0,; sbit RX=P30; / 就是超声波Echo口线sbit TX=P31; / 就是超声波Trig口线bit flag =0; sbit speak=P36; /蜂咛器报警的口线定义sbit she

31、zhideng=P35; /设置指示灯的 口线定义sbit k1=P32; / 按键的口线定义sbit k2=P33;sbit k3=P34;void Display() /扫描数码管 以下为扫描数码管的相应程序。 会进行多次赋值。 if(posit=0) P2=(discodedisbuffposit)&0xff; else P2=discodedisbuffposit; P1=positonposit; if(+posit=3) posit=0; void delay(uint xms) /延时函数 uint i,j; for(i=xms;i0;i-); for(j=110;j0;j-);

32、 void m_main() /程序一直在 m_main() 函数面循环。 if(!k1) /按下K1键 功能:每按下K1键,a就加1. 使程序在下面的相应程序里跑。 delay(7); /延时去抖 if(!k1) a+; /变量a加1 while(!k1); /等待按键弹起 /*当a=0时*/ if(a=0) /当a=0时,系统为正常进行,会自动计算距离,会检测是否报警。 while(!RX); /当RX为零时等待 TR0=1; /开启计数 while(RX); /当RX为1计数并等待 TR0=0; /关闭计数 m=S; /将计算出的值 赋给 变量m ; m值会在数码管上显示。 warn()

33、; /报警函数 Conut(); /计算 shezhideng=1; /关闭设置指示灯 /*当a=1时*/ if(a=1) /当a等于1时 m=Slong; /将Slong的值 赋给m ,使数码管显示报警值,然后好进行修改。 Conut(); /计算 shezhideng=0; /设置指示灯点亮 speak=1; /关闭报警 if(!k2) /按下按键 delay(10); /延时去抖 if(!k2) Slong+=10; /没按下一次,数值加10 while(!k2); /等待按键 弹起 else if(!k3) delay(10); if(!k3) Slong-=10; while(!k3

34、); /*当a=2时*/ if(a=2) /当a等于2时 。 目的是 当再次按K1键时,使a=0. 达到循环的作用。 a=0; / 使a等于0, 让程序进入 相应的运行。 请看上面的a=0时系统为正常进行,会自动计算距离,会检测是否报警。 warn() /报警函数 if(SSlong) /当距离大于设定的报警值时 speak=1; / 蜂咛器不报警。 Conut(void) /计算 所测距离的值。 time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; /算出来是CM if(S=700)|flag=1) /超出测量范围显示“-” flag=0; disbuff0=10; /“-” disbuff1=10; /“-” disbuff2=10; /“-” else disbuff0=m%1000/100; disbuff1=m%1000%100/10; disbuff2=m%1000%10 %10; /*/ void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 flag=1; /中断溢出标志 /*

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服