




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要本设计报告描述了基于AT89S52单片机的具有温度补偿效应的超声波测距系统。它采用压电式超声波换能器,向目标物发射一系列超声波信号,然后接收反射过来的回波,用单片机的外中断来检测回波。超声波在测距仪和目标物之间的传播时间可以由单片机精确测得。系统通过温度传感器DS18B20测量环境温度对超声波传播速度进行修正,单片机就可以计算出系统与目标物之间的距离,并将其动态显示在3位LED。软件采用C 语言编程的方法, 实现了测量结果的温度补偿和显示。系统的最小测距距离为10厘米,最大测距距离为5米。该测距仪比其它单片机控制的超声波测距仪具有更高的性价比,可广泛应用于各种需要测量距离或物位参数的场合。经系统调试可看出, LED 数码显示清晰稳定,测量结果稳定可靠, 测距仪最大误差不超过1cm。关键词:超声波测距;AT89S52;DS18B20iAbstractThis application report describes a distance-measuring system which have the effect of temperature compensates based on ultrasonic sound utilizing the AT89S52 microcontroller. With piezoelectric transducer,the system transmits a burst of ultrasonic sound waves towards the subject and then receives the corresponding echo,the AT89S52 exterior interrupt is used to detect the arrival of the echo to the system. The system spreads the feeling machine DS18B20 to measure the environment temperature through a temperature sensor to spread the speed to carry on the correction to a wave. the AT89S52 computes the distance between the system and the subject and displays it using a three-digit LED. By programming with C language temperature compensation and display of the measured results is applicable. The minimum distance that this system can measure is 10 centimeters .The maximum distance that can be measured is 500 centimeters. That range finder compares a range finder of a machine control to have the higher function price to compare, can be apply in the situation that various demand measures the distance or a parameter of thing extensively. System test shows that LED digital display is clear and stable, the result is reliable, and the max. error is not larger than 1cm.KeyKey words:words: ultrasonicultrasonic distancedistance measurement;measurement; AT89S52;AT89S52; DS18B20DS18B20.目 录摘要.ABSTRACT.1 引言 .12 概述 .42.1 超声波测距原理.42.2 研究内容 .43 超声波测距系统硬件设计 .53.1 单片机及其外围电路设计 .53.1.1 电源设计.53.1.2 单片机的选择.53.1.3 时钟电路.93.1.4 复位电路.93.2 发射部分 .103.2.1 超声波发生器.103.2.2 超声波发射电路.113.3 接收部分 .123.3.1 CX20106A 芯片 .123.3.2 超声波检测接收电路.143.4 温度测量电路 .153.4.1 DS18B20 数字温度传感器 .153.4.2 DS18B20 与单片机的接口电路 .193.5 显示电路 .204 超声波测距系统软件设计 .214.1 概述 .214.2 软件的编制及组成.224.3 主程序 .234.4 DS18B20 初始化函数 .244.5 读字节函数 .264.6 写字节函数 .264.7 读取温度程序 .274.8 测距系统初始化 .284.9 发射脉冲波程序 .294.10 发射处理 .304.11 接收中断 .314.12 距离计算 .314.13 接收处理 .334.14 发射延时 .334.15 动态显示程序 .344.15.1 距离显示程序.344.15.2 温度显示程序.35i5 调试 .375.1 编译环境.375.2 仿真器 .425.3 调试 .43结论 .44主要参考文献 .45致谢 .47附录 1.48附录 2.57英文文献 .58中文翻译 .68太原理工大学阳泉学院太原理工大学阳泉学院毕业设计说明书毕业设计说明书01 1 引言引言超声波是频率高于20000赫兹的声波,它方向性好,穿透能力强,易于获得较集中的声能。超声波测距主要是利用超声波在介质中传播时表现出来良好的性质进行距离测量,与军事、大型工业领域广泛采用的微波雷达测距、激光测距技术相比,这种检测技术难度相对较小,成本低廉,不受环境的限制,应用起来比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此广泛应用于倒车雷达、建筑施工工地以及一些工业现场,例如液位、井深、管道长度等场合。我国无损检测技术是从无到有,从低级阶段逐渐发展到应用普及的现阶段水平。超声波检测仪器的研制生产,也大致按此规律发展变化。五十年代,我国开始从国外引进超声波仪器,多是笨重的电子管式仪器;五十年代末六十年代初,国内科研单位进口了波兰产超声仪,并进行仿制生产;至七十年代中期,因无损检测技术仍处于试验阶段,未推广普及,所以仪器没有多大发展; 1976 年,国家建委科技司主持召开全国建筑工程检测技术交流会后,国家建委将混凝土无损检测技术列为重点攻关项目,组织全国 6 个单位协作攻关。从此,无损检测技术开始进入有计划,有目的的研究阶段。随着电子工业的飞速发展,半导体元件逐渐代替了电子管器件,更有利于无损检测技术的推广普及。1978 年 10 月,中国建筑科学院研制出 JC-2 型便携式超声波检测仪。 ,为推广应用无损检测技术奠定了良好的基础;目前,计算机市场价格大幅度下降,采用非一体化超声波检测仪器,计算机可发挥它一机多用的各种功能,实际上是最大的节约。我国超声波仪器的研制与生产,有较大发展,有的型号已超过国外同类仪器水平。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。我们人类耳朵能听到的声波频率为 2020000 赫兹。当声波的振动频率大于 20000 赫兹或小于20 赫兹时,我们便听不见了。因此,我们把频率高于 20000 赫兹的声波称为“超声波” 。通常用于医学诊断的超声波频率为 15 兆赫兹。 理论研究表明,在振幅相同的条件下,一个物体振动的能量与振动频率成正比,超1声波在介质中传播时,介质质点振动的频率很高,因而能量很大.在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度.这就是超声波加湿器的原理.咽喉炎.气管炎等疾病,很难血流到达患病的部位.利用加湿器的原理,把药液雾化,让病人吸入,能够提高疗效.利用超声波巨大的能量还可以使人体内的结石做剧烈的受迫振动而破碎,从而减缓病痛,达到治愈的目的。超声波在医学方面应用非常广泛,像现在的彩超、B 超、碎石(例如胆结石、肾结石祛眼袋 之类的)等。声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。 超声波是指振动频率大于20000Hz 以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的上限(20000Hz) ,人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性,目前腹部超声成象所用的频率范围在 25 兆 Hz 之间,常用为 33.5 兆 Hz(每秒振动 1 次为 1Hz,1 兆 Hz=106Hz,即每秒振动 100 万次,可闻波的频率在 1620,000HZ 之间) 。超声波是声波大家族中的一员。 超声波在媒质中的反射、折射、衍射、散射等传播规律,与可听声波的规律并没有本质上的区别。但是超声波的波长很短,只有几厘米,甚至千分之几毫米。与可听声波比较,超声波具有许多奇异特性:传播特性超声波的波长很短,通常的障碍物的尺寸要比超声波的波长大好多倍,因此超声波的衍射本领很差,它在均匀介质中能够定向直线传播,超声波的波长越短,这一特性就越显著。功率特性当声音在空气中传播时,推动空气中的微粒往复振动而对微粒做功。声波功率就是表示声波做功快慢的物理量。在相同强度下,声波的频率越高,它所具有的功率就越大。由于超声波频率很高,所以超声波与一般声波相比,它的功率是非常大的。超声波的特点(一)超声波在传播时,方向性强,能量易于集中。 (二)超声波能在各种不同媒质中传播,且可传播足够远的距离。 (三)超声波与传声媒质的相互作用适中,易于携带有关传声媒质状态的信息2(诊断或对传声媒质产生效应) 。 (治疗)本设计采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离,由单片机控制,并通过温度传感器进行温度补偿提高以测量精度。3超声波接收超声波发送LED 显示扫描驱动单片机控制器温度传感器2 2 概述概述2.12.1超声波测距原理超声波测距原理根据超声波传播过程中遇到障碍物会发生反射这一原理可以实现距离的测量,超声波测距也是利用这个原理,即用超声脉冲发射和接收其回波之间的时间差来计算距离,计算公式如下: 2/2/01ttCtCS式中:S被测距离,单位为厘米,超声脉冲发射与接收其回波的时间t差,单位为秒,超声回波接收时刻,超声脉冲发射时刻。1t0t利用单片机的定时器/计数器可以较方便地实现该测距功能,算出障碍物和超声探头之间的距离。2.2 2 研究内容研究内容本系统设计思路如下: 该系统由超声波发送电路、超声波接收电路、测温电路、显示及控制电路组成,如图2-1所示。单片机输出超声波换能器所需的40KHZ方波信号,单片机通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差,通过温度传感器测量环境温度对超声波波速进行校正,由LED显t示器显示计算后的距离。图 2-1 超声波测距系统原理图43 3 超声波测距系统硬件设计超声波测距系统硬件设计3.13.1 单片机及其外围电路设计单片机及其外围电路设计3.1.13.1.1 电源设计电源设计升压芯片(或线圈)需要的外部电压为1214 V,而单片机工作电 为4055 V,从成本及兼容性方面考虑,在设计中选用了单一电源供电,电源采用l2 V直流电源,经L7805稳压模块后输出5 V 电压,供给单片机及检测电路图3-1 电源设计L7805 是三端稳压芯片 电源电路中经常使用输入电压大于 8V 就可以正常工作,输出 5V,在散热器足够大的时候,负载电流可以达到 1.5A,在实际运用中,没有谁会使用它输出 1A 以上的负载电流,发热特别厉害3.1.23.1.2 单片机的选择单片机的选择 本系统采用 AT89S52 单片机, AT89S52 是与 MCS-51 单片机产品兼容 、8K 字节在系统可编程 Flash 存储器、 1000 次擦写周期、 全静态操作:0Hz33MHz 、 三级加密程序存储器 、 32 个可编程 I/O 口线 、三个 16 位定时器/计数器 八个中断源 、全双工 UART 串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。 功能特性描述At89s52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业 80C51 产5品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL 218XTAL 119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PE SN29ALE /PROG30EA/Vpp31p0.732p0.633p0.534p0.435p0.336p0.237p0.138p0.039Vcc40AT89S52图 3-2 AT89S52P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下, P0 不具有内部上拉电阻。 在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 6TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。 此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX) ,具体如下表所示。 在 flash 编程和校验时,P1 口接收低 8 位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器 T2 的外部计数输入) ,时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8 位地址(如 MOVX RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p3 输出缓冲器能驱动 4 个 7TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下表所示。 在 flash 编程和校验时,P3 口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG) 。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 8EA/VPP外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。3.1.33.1.3 时钟电路时钟电路引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图。外接石英晶体及电容接在放大器反馈回路中构成并联振荡电路。对外接电容虽然没有严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,本设计采用12MHz石英晶体,33pF电容。图3-3 时钟电路3.1.43.1.4 复位电路复位电路复位方式采用手动复位方式。手动复位是通过外部复位电路的电容充电来实现的,电路如图3-2:9图3-4 复位电路3.23.2 发射部分发射部分3.2.13.2.1 超声波发生器超声波发生器人们为研究和应用超声波,已发明设计并制成了许多类型的超声波发生器:机械方式和电气方式产生超声波发生器。实质上,超声波发生器即是超声波传感器:它将其它形式的能量转换成超声波的能量(发射传感器来完成)和使超声波的能量转换成其它易于检测的能量(接收传感器来完成)。一般是用电能和超声能量相互转换。电气方式类型包括:压电型、磁致伸缩型和电动型等;机械式方式有气流旋笛、液哨和加尔统笛等。各种类型产生的超声波的功率、频率和声波特性都不相同。目前使用较多的是电气类中的压电型超声波发生器。而压电材料有单晶体的、多晶体复合的,如石英单晶体,钛酸钡压电陶瓷、锆钛酸铅压电陶瓷复合晶体等。压电式超声波发生器工作机理是依据压电材料的正逆压电效应。利用逆压电效应产生超声波,即逆压电效应是在压电材料上加上某种特定频率的交变正弦信号,材料就会产生随所加电压的变化规律而变化的机械形变。这种机械形变推动周围介质振动,产生疏密相间的机械波,如果其振动频率在超声范围,这种机械波就叫超声波。发射出去的超声波遇到探测物返回作用到传感器上,接受时,利用正压电效应把来自探测物的声信号转变为电信号的输出。压电式超声换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构如图 3-3,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极间10未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。该传感器有两个压电晶片和一个共振板,当其两极外加脉冲信号,且频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将迫使压电晶片振动,将机械能转换为电信号,这时它就成为超声波接收器了。本设计采用 40KHz 超声波传感器。图3-5 超声波换能器结构图3.2.23.2.2 超声波发射电路超声波发射电路超声波发射电路主要由反向器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度.输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R10、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。11图3-6 超声波发射电路3.33.3 接收部分接收部分3.3.13.3.1 CX20106ACX20106A 芯片芯片集成电路 CX20106A 是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。CX20106A 是日本索尼公司生产的在红外遥控系统中作接收预放用的双极型集成电路。它还可谅用于视频系统、家用电器遥控电路以及通信系统等。这种 IC 性能优越,封装形式及体积与许多遥控信号接收器 IC 相同或相似,故可用来代换多种型号的遥控信号接收集成电路。CX20106A 的电路方框图及信号流向如图,其典型应用电路如图所示。图3-7 CX20106A管脚图12CX20106A 可用来完成遥控信号的放大、限幅、带通滤波、峰值检波和波形整形等功能。CX20106A 有以下主要特点:(1)采用低压供电(Vcc=5V),功耗极低(当 Vcc=5V 时,典型功耗仅 9mW) ;(2)带通滤波器 BPF 集成在 IC 内部(频率范围为 30KHz-60KHz),滤波特性可由IC5 脚与电源间所接电阻的阻值来决定,避免了调整上的麻烦。由于集成电路外部未使用电感元件,故外界磁场对其不会产生影响;(3)可与 PIN 光电二极管直接相连;(4)遥控指令信号输出端 7 脚为集电极开路输出,故可与 TTL 或 CMOS 集成电路直接相连。CX20106A 是一块 8 脚单列直插式超小型塑封结构的 IC,其各引脚功能及外接元件的作用列于下表 13表 3-1 CX20106A 引脚功能脚号符号引脚功能说明1IN遥控信号输入端该脚与地之间连接PIN光电二极管2C1RC网络连接端该脚与地间接有RC串联网络,用来确定前置放大器的频率特性和增益,电阻值大,电容量小,则增益低,反之则高4GND接地端5F0带通滤波器中心频率设置端该脚与电源之间所接电阻R2用来设置带通滤波器的中心频率f0,6C3积分电容连接端该脚所接的积分电容,标准值为330pF,当其容量值变大,则外部噪波干扰增强而且输出脉冲的低电平持续时间增加,遥控距离变短。7OUT遥控指令信号输出端该端口为集电极开路输出端。该脚和电源之间连接一只电阻后,输出脉冲低电平的标准值约为0.2V8Vcc供电电源端5V3.3.23.3.2 超声波检测接收电路超声波检测接收电路CX20106A 用于红外线检波接收,考虑到红外遥控常用的载波频率 38、40kHz 与测距的超声波频率 40kHz 较为接近,可以利用它制作超声波检测接收电路。实验证明用 CX20106A 接收超声波(无信号时输出高电平) ,具有很高的灵敏度和较强的抗干扰能力。适当更改电容 C4 的大小,可以改变接收电路的灵敏度和抗干扰能力。14图 3-8 超声波接收电路其中 R12 取 200K,则带通滤波器中心频率为 40KHz,R13 取 22 K。3.43.4 温度测量电路温度测量电路3.4.13.4.1 DS18B20DS18B20 数字温度传感器数字温度传感器由 dallas 半导体公司生产的 ds18b20 型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。ds18b20 的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它 i/o 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9 位二进制数,含符号位) ,测温范围为-55-+125,测量分辨率为 0.0625,内含64 位经过激光修正的只读存储器 rom,适配各种单片机或系统机,用户可分别设定各路温度的上、下限,内含寄生电源。ds18b20 内部结构主要由四部分组成:64 位光刻 rom,温度传感器,非挥发的温度报警触发器 th 和 tl,高速暂存器。管脚排列如下:15图 3-9 DS18B20 数字温度传感器DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H,-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。16表 3-2 温度TEMPERATUREDIGIAL OUTPUT(Binary)DIGIAL OUTPUT(Hex)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550h+25.06250000 0001 1001 0001 0191h+10.1250000 0000 1010 0010 00A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-551111 1100 1001 0000FC90hDS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 E2RAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下: TM R1 R0 1 1 1 1 1 低五位一直都是 1 ,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨率,如下表所示:(DS18B20 出厂时被设置为 12 位) 17表 3-3 分辨率设置表R1R0分辨率温度最大转换时间00993.75ms0110187.5ms1011375ms1112750ms根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉500 微秒,然后释放,DS18B20 收到信号后等待 1660 微秒左右,后发出 60240微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。DS1820 使用中注意事项 DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于 DS1820 与微处理器间采用串行数据传送,因此,在对 DS1820 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用 PL/M、C 等高级语言进行系统程序设计时,对DS1820 操作部分最好采用汇编语言实现。 (2)在 DS1820 的有关资料中均未提及单总线上所挂 DS1820 数量问题,容易使人误认为可以挂任意多个 DS1820,在实际应用中并非如此。当单总线上所挂 DS1820超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接 DS1820 的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过 50m 时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用 DS1820 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 18(4)在 DS1820 测温程序设计中,向 DS1820 发出温度转换命令后,程序总要等待DS1820 的返回信号,一旦某个 DS1820 接触不好或断线,当程序读该 DS1820 时,将没有返回信号,程序进入死循环。这一点在进行 DS1820 硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽 4 芯双绞线,其中一对线接地线与信号线,另一组接VCC 和地线,屏蔽层在源端单点接地。 3.4.23.4.2 DS18B20DS18B20 与单片机的接口电路与单片机的接口电路DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图:单片机VccVccDS18B204.7k图 3-10 DS18B20 与单片机的接口电路单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为 10us。采用寄生电源供电方式时 VDDt和 GND 端均接地。由于单线制只有一根线,因此发送接口必须是三态的。本设计采用电源供电方式,电路如图:19 3 2 1DS18B20VccP3.74.7 k图 3-11 电源供电方式3.53.5 显示电路显示电路本单片机应用系统采用 LED 作为显示器,动态显示方式。 ,选用共阳型数码管因为单片机 I/O 线低电平驱动能力比较强。电路用到 P0 口,其输出电路是漏极开路,必须外接上拉电阻(R1、R2、R3)才能有高电平输出。R4、R5、R6 为限流保护电阻,防止因流过数码管的电流过大而造成损坏。显示电路如图。123456ABCD654321DCBATitleNumberRevisionSizeBDate:22-Apr-2010Sheet of File:F:业业业业业业MyDesign.ddbDrawn By:PNPPNPPNP10k10k10k1k1k1kP0.5P0.6P0.7abfcgdeDPYLEDgn1234567abcdefgDS1DPY_7-SEGabfcgdeDPYLEDgn1234567abcdefgDS2DPY_7-SEGabfcgdeDPYLEDgn1234567abcdefgDS3DPY_7-SEGVCC图 3-12 显示电路204 4 超声波测距系统软件设计超声波测距系统软件设计4.14.1 概述概述在程序设计方法上,对于简单的应用系统,通常采用顺序设计方法,这种系统软件由主程序和若干中断服务程序构成。根据系统各个操作的性质,指定哪些操作由主程序完成,哪些操作由中断服务程序完成,并指定各中断的优先级。对于复杂的实时控制系统,应采用实时多任务操作系统。这种系统往往要求对多个对象同时进行实时控制,要求对各个对象的实时信息以足够快的速度进行处理并做出快速响应。这就要提高系统的实时性、并行性。为了达到此目的,实时多任务操作系统应具备任务调度、实时控制。实时时钟。输入输出中断控制、系统调用、多个任务并行运行等功能。模块程序设计是单片机应用中常用的程序设计技术。这种方法是把一个完整的程序分解为若干个功能相对独立的较小的程序模块,对各个程序模块分别进行设计、编制和调试,最后将各个调试好的程序模块连成一个大的程序。这种方法的优点是单个程序模块的设计和调试比较方便,容易完成,一个模块可以为多个程序所共享。缺点是各个模块的连接有时有一定难度。因为本程序较为简单,所以未采用模块化程序设计。在编程语言的选择上,用 C 语言进行单片机程序设计是单片机开发与应用的必然趋势。C 语言是一种编译型程序设计语言。它兼顾了高级语言的特点,并具备汇编语言的功能。用 C 语言来编写目标系统软件,会大大缩短开发周期,且明显地增加程序的可读性,便于改进和扩充,以研制出规模更大、性能更完备的系统。采用C 语言也不必对单片机的硬件接口的结构有很深入的了解,编译器可以自动完成变量的存储单元的分配,编程者就可以专注于应用软件部分的设计,大大加快软件的开发速度。采用 C 语言可以很容易地进行单片机的程序移植工作,有利于产品中单片机的重新选型。214.24.2软件的编制及组成软件的编制及组成头文件和全局变量:这部分程序包括了要用到的头文件、宏定义、特殊寄存器定义、各个函数定义、查询表格定义、以及全局变量的声明。#include#include#include#define uchar unsigned char#define ulint unsigned intsfr WDTRST=0 xA6;unsigned int temp;sbit DQ =P16; /定义通信端口void init();/初始化程序void trans();/发射 6 个周期脉 40KHz 的脉冲波void trans_pro();/发射脉冲波的相关处理程序void display_s();/距离显示程序int ReadTemperature();/读温度程序void display_temp() ;/温度显示程序void account();/距离计算程序void rec_pro();/接收处理程序void delay_pro();/发射延时处理sbit P14=P14; unsigned int temp;bit trans_flag ,rec_flag,trans_delay=0;uchar code disptab=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/*共阳码表*/22ulint s=999;/*初始化所测距离,显示 999 时表示无回波信号*/ulint distance;4.34.3 主程序主程序主程序先进行 ds18b20 的测温,把所读温度放入 temp 中;然后对超声波测距程序的初始化,再在主循环中不断对各个函数查询调用。发射脉冲波后启动定时器开始计时。如果收到了回波,就在接收中断服务程序里置接收标志位给主监视程序查询,然后进行距离的计算,距离送显示缓冲区;如果没有收到回波,则判断计数器中累加的值过了设定的数据,若未超出就继续等待接收,否则说明已超出测距范围,这时定义测得距离为 999cm 距离送显示缓冲区。主程序的流程图如图 4.1 所示。显示温度发射脉冲波初使化开始计时延时计算距离显示是否收到回波NY读温度图 4-1 主程序流程图void main()23 unsigned int k=10; while(k-) temp=ReadTemperature(); display_temp(); init(); while(1)/主循环 if(trans_flag) /若发射标志位为 1,则进行发射脉冲波的相关处理 trans_pro(); if(rec_flag)/若接收标志位为 1,则进行相关的距离计算等处理 rec_pro(); if(TH0=0 x90)/若定时超出设定的范围,则进行延时处理 delay_pro(); display_s();/调用显示程序 WDTRST=0 x1e; /清 WDT WDTRST=0 xe1; 4.44.4 DS18B20DS18B20 初始化函数初始化函数典型的总线命令序列如下:第一步,初使化;第二步,ROM 命令(跟随需要交换的数据);第三步,功能命令(跟随需要交换的数据)。每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则一线器件不会响应单片机。基于一线上的所有传输过程都是以初使化开始的,初使化过程由单片机发出的复位脉冲和 DS18B20 的响应的应答脉冲组成。应答脉冲使单片机知道,总线上有 1-WIRE 设备,且准备就绪。在单片机检测到应答(presence)脉冲后,就可以发 ROM 命令,命令长度为 8 位。该命令字要通过 1-WIRE 通信协议规定的严格的写时隙(Write time slots),逐位写到一线上,DS18B20 会自动接收到这24些命令,并准备响应的操作。本系统是单点使用,故只须用到 SKIM ROM COMMAND(0CCH) ,这样单片机可以同时访问总线上的所有设备,而无须发出任何ROM 代码信息。例如,单片机在发出 SKIP ROM 命令后跟随 CONVENT T 即启动温度转换命令(44H) ,值得注意的是 SKIP ROM 命令后跟的是 READ SCRATCHPAD(0BEH)命令(包含其他读操作命令) ,则该系统只能用于单点系统,否则将由于多个节点都响应该命令而引起数据冲突。在单片机发出 ROM 命令后,接着就可以发送功能命令,然后 DS18B20 就开始执行命令,本单点应用系统中主要用到 CONVENT T 和 READ SCRATCHPAD 命令时,单片机可以通过发送复位脉冲在任何时候中断数据传输。bit Init_DS18B20(void) volatile unsigned char xflag=0; DQ = 1; /DQ 复位 delay(6); /稍做延时 DQ = 0; /单片机将 DQ 拉低 delay(56); /精确延时 520us DQ = 1; /拉高总线 delay(8); xflag = DQ; /稍做延时后 如果 x=0 则初始化成功 x=1 则初始化失败 delay(14);return(xflag); 读时隙:DS18B20 仅在单片机发送读时隙(READ SLOT)时才发送数据,所以单片机在发送 READ SCRATCHPAD 命令后必须立即产生读时隙。所有的读时隙都要至少保持 60us,并且在两个读时隙间至少要 1us 的恢复时间,单片机通过把总线拉低至少 1us 来做为一个读时隙的开始,DS18B20 的输出数据在读时序下降沿过后 15us 内有效,所以在此期间单片机应释放总线,进入读数据状态以便读取数据,15us 后一线总线被上拉电阻拉为高电平,程序延时等待读时隙结束。写时隙:写时隙也有两种,写 0 和写 1。主要用于单片机通过 1-WIRE 总线向DSB18B20 写入命令字。所有的写时隙也至少要保持 60us,且在两个写周期之间至少要有 1us 的恢复时间。单片机通过拉低一线总线至少 1us 来产生写时隙。当写 1 时,25单片机拉低总线,然后必须在 15us 内释放总线,总线被上拉电阻拉高。当写 0 时,单片机拉低总线后,然后必须继续保持总线为低(至少 60us) 。DS18B20 在单片机发出写时隙后的 15-60us 之间开始采样,在这期间内,若总线为高,则 1 被写入DS18B20;若总线为低,则 0 被写入 DS18B20。4.54.5 读字节函数读字节函数ReadOneChar(void)unsigned char i = 0;unsigned char datb = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 datb=1; DQ = 1; / 给脉冲信号 if(DQ) datb|=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第12课 我喜欢发言说课稿-2025-2026学年小学心理健康苏教版一年级-苏科版
- 20.3电磁铁 电磁继电器说课说课稿 -2025-2026学年人教版物理九年级下学期
- 本册综合说课稿-2025-2026学年小学心理健康四年级上册川教版
- 综合复习与测试说课稿-2025-2026学年高中生物北师大版2019必修1 分子与细胞-北师大版2019
- 人教版高中地理必修二4.3《传统工业区与新工业区》教学设计
- 2025年经济学家财富测试题及答案
- 智能制造孵化园合作协议及生产设备租赁合同
- 物业管理承租人租赁服务协议
- 供应链金融合同风险管理建议
- 股权激励计划终止与离婚股权分割国际协议
- 康复医学科病历书写规范与质量控制
- 商用厨房设计汇报
- 战术搜索教学课件
- 教科版五年级科学上册第一单元《光》测试卷及答案(含四题)
- Linux操作系统基础任务式教程(慕课版)课件 任务4 使用Linux操作系统中的硬盘
- 自控系统报警管理制度
- 口腔服务5S管理
- 保安投诉管理制度
- 2025年高考江苏卷物理真题(原卷版)
- 【公开课】种子植物+第2课时课件-2024-2025学年人教版生物七年级上册
- 2024年贵州贵州贵安发展集团有限公司招聘笔试真题
评论
0/150
提交评论