




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的超声波测距系统设计毕业论文目 录1.绪论11.1课题背景及重要意义11.2 研究内容11.3主要任务及目标:22.整体设计思路22.1硬件整体设计22.2软件整体设计思路43.硬件设计53.1对超声波的认识53.2器材的选择63.3.单片机最小系统93.4超声波发射电路93.5超声波接收电路设计103.6显示电路设计124.软件设计134.1主程序设计134.2中断处理程序164.3计算及显示模块设计184.4作品展示:205.设计总结21参 考 文 献22谢辞23系统整体电路图24程序代码25361.绪论1.1课题背景及重要意义近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。超声波拥有许多优点:超声波测量精确高,成本低,性能稳定则备受青睐。超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。1.2 研究内容设计一个超声波测距系统,以单片机为控制核心,实现测距功能。1.初步掌握模拟、数字电路分析和设计的基本方法。包括: (1)根据设计任务和指标,初选电路; (2)通过调查研究、设计计算,确定电路方案; 2. 培养一定自学能力和独立分析问题、解决问题能力。包括: (1)学会自己分析、找出解决问题的方法; (2) 对设计中遇到的问题,能独立思考,查阅资料,寻找答案。1.3主要任务及目标:1.设计一个单片机最小系统,有lcd显示和按键;2.设计一个超声波测距模块;3.系统要求具有一定的可扩展性;4.毕业论文严格按学校的要求撰写;2.整体设计思路2.1硬件整体设计在开始做毕业设计之前,我需要对要所要完成的作品有一个大概的掌控,特别是对超声波测距的原理和超声波测距系统的组成部分能有一个清晰的认识。超声波测距的原理:超生波测距的原理其实很简单,也就是大自然中蝙蝠捕食的原理,首先需要超生波发射装置,发出超声波,此时时间记作T1,当超声波收到障碍物的阻挡时,就会被反弹回来,然后就被超声波接受装置所捕捉到,这时时间记作T2,假设此时的声速为V,则超声波测距装置与障碍物之间的距离为:()/2。 (式2.1)超声波的原理图如图2.1所示: t 障碍物 s 超声波发射 超声波接收 图2.1 超声波的测距原理在我动手之前不是说能够一气呵成的完成作品,如果那样做的话,万一哪一部分出了问题,那么我将很难检查的出来,所以效率很低。因此决定分模块来完成我的作品,首先用仿真软件进行仿真,确定好布线器材等,就可以先从硬件开始着手了,超声波测距系统的组成部分:1. 单片机最小系统 2.超声波发射部分 3.超声波接受部分 4.显示部分;我只要一个一个模块的实现,这样效率就能提高很多。完成好硬件的功能,接下来就需要实现软件的功能了,本次设计的程序需要完成的功能有:(1)超声波的发射和接收控制(2)对回波信号的检测(3)测距时间到距离的换算(4)距离的显示从整体看超声波测距的原理很简单,但是我们要想获得一个高精度的测距结果,还需要考虑和多方面的东西,比如说:测距的温度会对结果有很大的影响。而且在器材选用方面,对测距结果也会带来很大的误差。因此,在完成作品的过程中,还需要对硬件和软件有一个更加细致的考虑。整体电路的控制核心为单片机AT89C51。超声波发射和接收电路中都对相应信号进行整形及放大,以保证测量结果尽可能精确。超声波探头接OUT口实现超声波的发射和接收。整体结构图包括超声波发射电路,超声波接收电路,单片机电路,显示电路等几部分模块组成。由于超声波在发射和接收的过程中会有能量的损失,因此在超声波发射与接收电路还要加入放大电路。在发射后把信号放大,接收前也要把还再次放大,进行多级放大才能达到发射和接收的效果。整体电路结构图如图2.1.1所示:超声波接收电路超声波发射电路显示电路电源电路AT89C51电路 图2.1.1 超声波测距原理图数字显示仿真如图2.1.2所示:图2.1.2 数字显示仿真2.2软件整体设计思路参照硬件的设计思路,软件我也将采取模块化的设计思路来进行,这样对提高效率有很大的帮助。本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示等。3.硬件设计3.1对超声波的认识超声波简介:超声波技术是一门以物理、电子、机械、以及材料科学为基础的、各行各业都可使用的通用技术之一。超声波技术是通过超声波的产生、传播以及接收的物理过程完成的。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。因此,我国对超声波的研究特别活跃。超声波的三种形式:超声波在介质中可以产生三种形式的振荡波:横波,质点振动方向垂直于传播方向的波;纵波,质点振动方向与传播方向一致的波;表面波,质点振动介于纵波和横波之间,沿表面传播的波。横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。为了测量各种状态下的物理量多采用纵波形式的超声波。超声波的物理性质:(1) 超声波的反射和折射当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;另一部分透射过界面,在相邻介质内部继续传播。这样的两种情况称之为超声波的反射和折射。(2)超声波的衰减超声波在一种介质中传播,其声压和声强按指数函数规律衰减。(3)超声波的干涉如果在一种介质中传播几个声波,于是产生波的干涉现象。由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。3.2器材的选择超声波传感器介绍:据我查阅资料了解到超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。超声波传感器结构如下:.图3.2 超声波传感器外部结构图3.2.1超声波传感器内部结构 由于市场上的超声波种类很多,通过我查阅资料,分析了超声波传感器的升压能级和灵敏度的关系后,发现在超声波测量系统中,当频率取得太低,则外界的杂音干扰较多,超声波接收的杂波就多,灵敏度就不高;当频率取得太高,在传播的过程中能量损失比较大,虽然分辨力比较高,但是测量距离变短。通过我的综合分析,找到了比较好的频率段40KHz。如下图3.2.2超声波传感器的升压能级图和图3.2.3超声波传感器的灵敏度图。图3.2.2 超声波传感器的升压能级图3.2.3 超声波传感器的灵敏度因此本次设计选用的探头是4OKHz的收发分体式超声传感器,由一支发射传感器UCM-T40KI和一支接收传感器UCM-R4OKI组成,其特性参数如表3.2.2所示。传感器特性参数表表3.2.2传感器特性参数表型号UCM-T40K1UCM-R40KQ结构开放式开放式使用方式发射接收中心频率频带宽灵敏度声压指向角容量通过自己查阅相关资料,了解到要想提高结果的精度就要考虑的更加全面,因此,我又详细的分析了一下超声波测距的原理。超声波测距的方法有多种:如往返时间检测法、相位检测法、声波幅值检测法。本设计采用往返时间检测法测距。其原理是超声波传感器发射一定频率的超声波,在空气中传播,到达测量目标或障碍物后反射回来,并在超声波接收器中进行频率的比较和筛选,并放大有效信号记录发射和接收的时间差,并通过()/2的计算公式测试传输出距离。当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数。首先由超声波发射探头向前方发射一定频率的超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回来,当然超声波在传播的过程中会有能量的损失,因此在超声波的接收部位就会有超声波放大装置,将有效的超声波信号进行放大,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)。考虑到测量的距离在误差允许的范围内,我们将超声波在常温下空气中的传播速度大约为340 m/s,所以障碍物到发射探头之间的距离为:S=340t/2=170t (式3.2)因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值N,则: T12/fosc=1s (式3.2.1)t=NTN0.000001(s) (式3.2.2)S170NT170N/1000000(m) (式3.2.3)在程序中按式S170NT170N/1000000计算距离。3.3.单片机最小系统单片机最小系统是其他拓展系统的最基本的基础,单片机最小系统是指一个真正可用的单片机最小配置系统即单片机能工作的系统。对于AT89C51单片机,由于片内已经自带有了程序存储器,所以只要单片机外接时钟电路和复位电路就可以组成了单片机的最小系统了。单片机的最小系统如图3.3所示。图3.3 单片机最小系统原理图3.4超声波发射电路通过我的综合分析,用单片机P0.1发射一组方波脉冲信号,其输出波形稳定可靠,但输出电流和输出功率很低,不能够推动发射传感器发出足够强度的超声信号,所以超声波发射电路是由超声波探头和超声波放大器组成。超声波探头将电信号转换为机械波发射出去,而单片机所产生的40 kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用74LS04芯片进行信号放大,超声波发射电路如图3.4所示图3.4 超声波发射电路工作时,由单片机产生40 kHz的脉冲从P0.1口向超声波的发射电路部分发出信号,再经74LS04放大电路放大后,驱动超声波探头将超声波发射出去。3.5超声波接收电路设计我们都知道,超声波在传播过程中,能量会衰减的很厉害,此时,超声波接受装置就会受到很大的阻碍。因此,我们还需设计一个超声波放大电路,让超声波接收装置在接受微弱的超声波信号时,能将其放大,让超声波接受装置能够识别。超声波接收电路主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。CX20106A是一块功能很强大的芯片,该芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。CX20106A芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。超声波接收电路如图3.5所 图3.5 超声波接收电路由于在制作过程中,知识面过于狭窄,因此,选择了集成模块的超声波发射和接受装置:HR-SR04超声波集成模块1、产品特点:HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能, 测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。 基本工作原理:(1)采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号; (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2;2、实物图:图3.5.1 超声波测距模块如上图3.5.1所示接线VCC 供5V电源,GND为地线,TRIG 触发控制信号输入,ECHO回响信号输出等四支线。3、电气参数:表 3.5.2 HC-SR04电器参数电气参数HC-SR04 超声波模块工作电压DC 5 V工作电流15mA工作频率40Hz最远射程4m最近射程2cm测量角度15 度输入触发信号10uS 的 TTL 脉冲输出回响信号输出 TTL 电平信号,与射程成比例规格尺寸45*20*15mm3.6显示电路设计由于我设计的超声波测距系统,最远只能测量4m的距离,因此选用4位LED显示。根据数码管的一些选择,最终筛选出了最优的设计方案:在显示电路的设计上,利用单片机的P0P2口来控制数码管显示,这种接法虽然比较浪费管脚资源,但是对单片机的理论知识要求相对比较低,而且超声波发射和接收电路并不需要很多的管脚来支持,所以我选择这种方案。数码管的选择上,为了使数码管亮度大,我选择了共阳极的数码管,数码管管脚接到低电平发亮。显示及其驱动电路的原理图如图3.6所示。图3.6 显示电路原理图4.软件设计4.1主程序设计主程序对整个单片机系统进行初始化后,先将超声波的回波接收标志位置位并且使单片机P1.0端口输出一个低电平用来启动超声波发射电路,同时将定时器T0启动,然后调用距离计算的子程序,再根据定时器T0记录的时间计算出所需要测量的距离,然后再调用显示子程序,再将测出的距离以十进制的形式送到数码管显示。最后主程序通过对回波信号的接收,完成后续的工作,假如标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的P0.1端口上发送低电平到超声波发射电路,就这样,连续不断地运行,循环不断地工作用来实现测距。 超声波接收电路在接收到超声波回波后,通过CX20106A电路进行检波整形比较,并向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时间,中断发生之后就是表示已经接收到了回波信号,这个时候停止计时,并且读取计数器中的数值,这个数值就是需要进行测量的时间差的数据。程序中对测距距离的计算方法是按S=17N/100000=0.00017N(m)进行计算的,其中,N为计数器的值,声速的值取为340 m/s。系统主程序流程图如图4.1所示:开始单片机初始化超声波模块复位发射超声波并启动T0开中断接收到回波的同时中断停止计算测量距离显示距离延时 图4.1 系统主程序流程图系统主程序如下:void main(void)uchar i,j;for(i=0;i255;i+)for(j=0;j255;j+); /延时,等待系统外围复位完成 sys_init(); /初始化display(); /显示sta_flag=0; /标准复位 waitforstarting: while(START);for(i=0;i20;i+)delay1ms();if(START)goto waitforstarting;BUZZER=0; i=100000;while(i-);BUZZER=1;i=100000;while(i-);TR0=1; /启动定时器0ET0=1;testtemp(); while(1) if(sta_flag) /60MS到了,超声波已经发送 while(0=CSBIN); /等待超声波返回TR1=0;jsh=TH1; /停止计数jsl=TL1;if(15=count) temp=wd(); count=0;testtemp(); /重新启动转换display(); /刷新显示computer(); /计算距离hextobcd(); /转化成BCD码sta_flag=0; /标志清零 void sys_init(void) uchar i;for(i=0;i=400) timer=0; TX=1; /800 ms启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();TX=0; void main(void) TMOD=0x11;/设T0为方式1,GATE=1; TH0=0; TL0=0; TH1=0xf8; /2 ms定时 TL1=0x30; ET0=1; /允许T0中断 ET1=1; /允许T1中断 TR1=1; /开启定时器 EA=1; /开启总中断 while(1) while(!RX); /当RX为零时等待 TR0=1; /开启计数 while(RX); /当RX为1计数并等待 TR0=0; /关闭计数 Count(); /计算 4.3计算及显示模块设计由于计算公式为S=17N/100000=0.00017N(m),可以从中看出如果想要得到具体的距离的值,就只需要得到从超声波发送开始到接收到超声波这个过程中定时器0的计数的次数。本设计中,采用了4位共阳极连接的数码管显示来显示与障碍物之间的距离,同时数码管与P1口连接进行动态的段扫描。由于这个距离值是不断变化的,所以,这个数码管的显示的过程是在外部中断0发生后才进行的。 所以当主程序给超声波发生器发送了信号后,此时中断和定时器0就已经被打开,并开始计时了。当超声波接收电路接收了到回波信号的同时时,电路便会产生一个低电平到单片机的P0.0端口,在单片机检测到该信号后,定时器计时就将停止,同时定时器的计数的次数将被提取出来,这样就可以得到以m为单位的测量的距离值。C程序如下:Void Count (void) time=TH0*256+TL0; TH0=0; TL0=0; /time=23529; S=(time*0.0017); /算出来是m if(S=7000)|flag=1) /超出测量范围显示“-” flag=0; flag_beep=0; disbuff0=10; /“-” disbuff1=10; /“-” disbuff2=10; /“-” disbuff3=10; /“-”BEEP=1; else disbuff0=S/1000; disbuff1=S/100%10; disbuff2=S/10%10; disbuff3=S%10; 4.4作品展示:5.设计总结通过这次毕业设计对我来说收获甚多。刚开始的时候毫无头绪,在反复的查阅相关资料的情况下,慢慢的终于有了大概的思路,但是由于超声波测距的课题涉及知识面很广,对于设计菜鸟来说的我,实在是力不从心。但是在三个月的刻苦学习和与老师的帮助下,很快设计有了眉目,我的作品也慢慢步入正轨。三个月的辛苦是值得的,一个毕业设计把我整个大学期间的知识都用上了,还让我学到了很多我没接触过的内容,让我受益匪浅,同时也锻炼了我的动手能力,让我对超声波有了更进一步的认识。本次毕业设计,虽然已经完成了作品的制作,但是还有很多不完美的地方。经过反复试验,作品还存在较大的误差,通过分析可能是以下原因产生的:(1)环境的温度所引起的误差环境温度的影响是本设计在不同的温度条件下测量数据存在误差的主要原因,根据有关资料,在当温差较大时,前后两次测距的误差肯定前后相差也比较大。而本设计中并没有温度补偿模块,由于知识面有限,只能完成超声波测距的基本功能,希望随着日后知识面的宽广,能将作品完成的更加完美。 (2)不同障碍物表面材料的不同介质引起的误差因为表面粗糙的障碍物介质要比光滑介质的测量结果要差,如果障碍物的发射面比较粗糙会引起发射信号散射开那么回波信号就会减弱,这样就会导致测量结果的误差增大。(3)超声波模块的感应角的影响两个超声波探头即发射探头和接收探头和障碍物之间存在一个几何角度,反射波入射到探头存在一定的角度,当这个角度过大时,这就会造成测量较大的误差,或者说根本接收不到回波信号。特别是在障碍物的距离较小的时候这个误差就成为了距离测量的主要误差的原因,但是这种误差是可以尽量减小的,利用发射能力强、散射小的探头,或者多用几个探头。 (4)余波信号的影响在测量时有一部分的声波是从发射探头直接转收到接收探头的,这部分声波即是余波信号,这种余波对测量的干扰是挺大的。但是这种干扰能够通过别的方法进行处理,比如软件算法的方法去消除直达波的干扰。当芯片收到信号波时自动判定收到的超声波信号是发射的声波衍射而返回来的信号时就会自动忽略掉,继续去等待检测在这个工作周期内是否有有效反射波反射回来,如果有就进行处理,没有就进行新的一次测量。参 考 文 献1 刘洪恩. 汽车倒车防撞超声波雷达的设计J. 仪表技术,2004,15(04):5560.2 刘典文等. 基于单片机STC89C51设计的超声波测距仪J. 中国新技术信产品,2010,8:1617.3 梁小流,陈炳森,梁建和. 基于89S52汽车防撞雷达系统设计J. 机电工程技术,2011,10(4):4951.4胡萍. 超声波测距仪的研制J. 计算机与现代化,2003,7(10):2123.5时德刚,刘哗. 超声波测距的研究J. 计算机测量与控制,2002,9(10):3133.6苏伟,巩壁建. 超声波测距误差分析J. 传感器技术,2004,3(4):1720.7Tom R. Watt. Cooling our tomorrows economicallyJ. ASHRAE Journal,2004,17(4):2872928翟桂荣. 红外解调器CX20106A原理与检修J. 家庭电子,1997(7):3355.谢辞时光匆匆,转眼间大学四年就快要过去了,回首四年,我们拥有太多的东西,同时也失去太多。不过无论怎样,我觉得我变得更加成熟了,对于明天我拥有了更加多的底气。一路走来,若是没有你们的帮助,可能现在我将不是现在的我。千言万语都无法表达我对那些帮助我的人的感谢之情。真是因为你们的存在,我将会有更多的动力,让我在大学四年的时光里能够抛洒我的青春,让我从一个懵懂的小孩变成一个成熟的大人。在生活上,这是我们班的同学的帮助让我走出一段有一段难熬的时光,也是你们的一个“加油”让我一次又一次鼓起勇气向未来挑战,如果没有你们我的世界将会变得一片灰暗,谢谢你们陪伴了我四年的时光,我相信我们的友谊一定会地久天长;在学习上,我要感谢那些帮助过我的老师们,正是你们耐心的讲解,才让我取得今天的成绩,当然在这次的毕业设计中,也是你们一次又一次的提醒和指导才让我能顺利的完成毕业设计。我觉得我是一个幸运的人,能在生活中遇见到你们。再和你们相处的时光里,我能出你们每个人的身上学到我自己身上所没有的东西,真是你们身上的闪光点让我发现自己的不足,也真是这样才不断的激励我勇敢的前进,你们就是我的榜样,虽然现在的我还有许多不足的地方,但是我还想和你们做一辈子的朋友,能和你们在一起生活我感到很幸福。当然最后我还要感谢我可爱的母校,希望你能培养出更多的人才,让我们的国家变得更加强大。系统整体电路图系统整体电路图程序代码/超声波测距系统 12M晶振/#include REG2051.H#include #include /#include math.h#define uint unsigned int#define uchar unsigned char#define LED_Data P0 /定义LED显示数据为P1口#define OFF P3sbit led_1H=P27;/定义数码管百位 片选sbit led_2H=P26;/定义数码管十位 片选sbit led_3H=P25;/定义数码管个位 片选sbit DQ=P34;/18b20定义端口sbit bell=P22;sbit Sout=P37;/定义超声波输出引脚sbit k1=P10;/定义按键sbit k2=P11;sbit k3=P12;bit r=0;/18b20存在标志位 0为不存在,1为存在bit flag=0;/定义外部中断1标志位bit TO=0;/定义T1中断1标志位bit tu=0;/定义温度正、负标示位0为正1为负bit show_temperature=0;uchar T_C;uint i;uint dis;/定义实形距离变量float speed=346.50; uchar temp3=0xF7,0xF7,0xF7;/*- - -*/ 定义显示暂存区/显示段代码表uchar code LED0= 0x28,0xEE,0x32,0xA2,0xE4,0xA1,0x21,0xEA,0x20,0xA0,0xF7,;/09 -/第一位数码管显示段码uchar code LED1=0x08,0xCE,0x12,0x82,0xC4,0x81,0x01,0xCA,0x00,0x80,; /0.9.带小数点 /void time_11uS(uint x);/延时11USvoid LED_T_C(uint x);uint Read_Temperature(void);void write(char wr);/写1820uint read(void);/读1820uchar reset(void);/复位1820/-测距部分涵数声明void led_display(void);/LED显示函数void time(uint x);/延时1mSvoid Send_40K(void);/输出20个40k方波函数void LED_temp(uint x);/显示转换void TT1(void);/装入初值uint C_speed(void); /根据温度查表取声速值float Dis_count();/距离计算函数/-/-/延时11usvoid time_11uS(uint x) for(;x0;x-);/-uchar reset(void)/复位1820r=0;DQ = 1;_nop_();_nop_();DQ = 0; /置低电平time_11uS(50); / 等待500usDQ = 1; / 置高电平time_11uS(6); / 等待66USwhile(DQ=0)r=1;/ 读响应_nop_(); return(r); / 返回响应值 1=存在, 0 不存在/-void write(char wr)/向总线上写一个字节 uchar i; for (i=8; i0; i-) / 写8位, 一位一位地写 DQ = 0; / 设为低电平,写开始_nop_();_nop_();_nop_();_nop_(); DQ = wr&0x01; /最低位移出 time_11uS(6); / 延时66US确保数据送出 DQ = 1; /停止 wr=wr/2; /算法,相当于右移1位 time_11uS(1); /-uint read(void)/从总线上读取2个字节 uchar i; uint v = 0; for (i=16;i0;i-) DQ = 0; / 开始信号_nop_();_nop_(); v=1; DQ = 1; / 恢复_nop_();_nop_();_nop_();_nop_();/ 延时 if(DQ)v|=0x8000; /数据拼装 time_11uS(6); / 延时 DQ = 1;return(v);/-uint Read_Temperature(void) uint c;reset();/复位18b20tu=0;if(r) write(0xCC); / 跳过多传感器识别skio rom write(0xBE); /发读内部9字节内容指令 c=read();/读两个字 reset(); /读完两个字节后复位 write(0xCC);/ 跳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抚州市中石化2025秋招面试半结构化模拟题及答案油田工程技术岗
- 国家能源济源市2025秋招半结构化面试模拟30问及答案
- 中国广电漯河市2025秋招行业常识50题速记
- 中国联通贵港市2025秋招综合管理类专业追问清单及参考回答
- 中国联通山东地区2025秋招面试无领导高频议题20例
- 2025年职高冲刺考试题及答案
- 七台河市中石化2025秋招笔试行测50题速记
- 四平市中石化2025秋招笔试模拟题含答案新材料与新能源岗
- 信阳市中石油2025秋招面试半结构化模拟题及答案新材料与新能源岗
- 中国移动白银市2025秋招面试无领导高频议题20例
- 2025年软件架构师专业技术考核试题及答案解析
- 八上语文第9课《天上有颗南仁东星》课件
- 2024年BRCGS包装材料全球标准第7版全套管理手册及程序文件(可编辑)
- 公考公共基础知识培训课件
- 2025年人保非车险考试题及答案
- 铁路工程试验检测员培训考试题土工试题及答案
- 2025年上海银行笔试题库及答案
- 学堂在线 公共管理学 章节测试答案
- 预防艾滋病、梅毒和乙肝母婴传播登记及随访表
- 医院“十五五”发展规划(2026-2030)
- 教育信息化中的数字孪生技术应用案例分析
评论
0/150
提交评论