07电科电子档定稿_第1页
07电科电子档定稿_第2页
07电科电子档定稿_第3页
07电科电子档定稿_第4页
07电科电子档定稿_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、科技学院 2011 届本科基于单片机的温度计的设计业:电子信息科学与技术专指导教师:罗 子 江学生李 光 昭学生学号:072004110448中国贵阳2011 年 5 月目录摘要IIAbstractIII第一章绪论1课题的背景及现状11.11.2第二章设计的性能指标2方案的选择3主控器的论证与选择3温度传感器的论证与选择3元器件的介绍62.12.2第三章3.1对于单片机的介绍63.2温度传感器的介绍73.2.13.2.23.2.33.2.4DS18B20 的还具有许多性能特点8运用 DS18B20 的注意事项9DS18B20 的内部结构10DS18B20 的测温原理12第四章硬件设计14设计电

2、路图14设计介绍154.14.24.2.14.2.34.2.4主控制器15温度检测电路17温度电路20程序21程序21第五章5.1结束语26参考文献27致谢28基于单片机的温度计的设计摘要本文主要介绍了一个基于 8051 单片机的测温系统,详细的描述了利用 DS18B20 数字温度传感器开发测温系统的过程,重点对传感器在单片机下的硬件上的连接,编程以及各模块系统流程进行了分析,对各部分的电路也进行了介绍,这个系统可以方便的实现温度以及显示,并且可以根据设定来进行温度的,它使用起来相当的方便,并且具有量程宽,灵敏度高,体积小,精度高,功耗特点。Ds18b20 和 8051相结合实现了最简单的温度

3、检测系统,这个系统结构比较简单,能力比较强,适合在恶劣的环境下进行现场的温度测量,有着广泛的应用前景。:单片机;温度检测;DS18B20Based on SCM Thermometer DesignAbstractr describes a microcontroller-based temperature measurement system 8051, aThis pdetailed description of the use of digital temperature sensor DS18B20 Temperaturemeasurement system development p

4、ros, focusing on the sensor under the SCM hardwareconnections, software programming and system proses eaodule isyzed on the partof the circuit have also beenroduced, the system can facilie the realization of thetemperature of the collection and Display, and setting the temperature according to theit

5、s quite easy to use and has a wide range, high sensitivity, small size, high preci, lower consumption a bit. In our daily life, agricultural production, temperature measurementscso be used as temperature prosing module embedded in other systems, other criticalsystems as auxiliary and expan. DS18B20

6、and 8051 combined to achieve the most simpletemperature detection system, the system relatively simple, relatively strong anti-erferenceability, suitable for use in harsh field conditions of temperature measurement, have broad application prospects.Keywords: SCM,Temperature Detection,DS18B 20第一章绪论1.

7、1课题的背景及现状在最近几年以来, 随着社会的不断发展,大规模集成电路也在飞速发展,单片机继续朝着快速、高性能方向发展,从四位、八位单片机发展到位、三十二位单片机。单片机主要用于控制,它的应用领域遍及各行各业,比如说大到,小到日常生活中的电视、空调,单片机都可以在这些领域发出巨大的功能。在这个时代,单片机在的家用电器中应用得十分广泛:比如全智能玩具、自动洗衣机;而且在汽车、飞船、以及电子工业在这个时代,单片机也起着的作用。它成本比较低、集成度高、功耗低、控制功能多、能灵活的组装成各种智能控制装置。随着科技的不断进步,的社会对于各式各样的信息参数的准确度都有了大弧度的提高,但是怎么样才能迅速、准

8、确的得到这些参数就需要取决于科技的发展程度了。在当今三大信息中,传感器技术,通信技术与计算机技术,传感器技术属于的前沿尖端产品,人们的生活工作与环境的温度有着密切的关系,在工业生产当中温度的测量也是与生产密切相关,所以在对于温度的测量和测量装置上的选择与都有着重要的意义。在的生活当中温度的测量也与温度传感器的发展有着密切的关系,温度传感器有着三个发展阶段:传统的分立式温度传感器。模拟集成温度传感器。智能温度传感器1。的智能温度传感器是在二十世纪九十年代中期出现的,它是自动测试技术,计算机技术和微测试技术的结晶。它的特点是能够输出温度的数据,适合配置各种的微控制器。随着社会的不断进步,人们对于温

9、度传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化,网络化的方向飞速发展,并且朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20与8051单片机的结构特征进行详细的介绍,并且对以传感器,8051单片机为控制的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,它具有读数方便、测温范围广、测温准确、输出温度采用数字显示等特点。该设计控制器实用的是 el公司的8051单片机。测温传感器使用的是Dallas公司的Ds18b

10、20,使用七段数码管进行显示。1.2设计的性能指标在这个设计中主要是介绍了单片机控制下的温度检测系统,详细介绍了硬件和软件的设计,并且对其各功能模块做了详细的介绍,其主要功能和指标:运用温度传感器测量某一点的环境。能够测量、显示环境温度的电子温度计,测量范围精度 0.25 度。通七段数码管进行显示。具有定温功能,可以在中设定一个值。第二章方案的选择2.1主控器的论证与选择方案1: 采用可编程逻辑器件CPLD作为主控器,对热敏元件到的温度电信号经过A/D 转换后对得到的数字信号进行处理并且进行计算,然后通过七段数码管显示出来。因为C P L D 可以完成各种各样复杂的逻辑功能并且它具有密度比较高

11、、规模大、体积很小、稳定性非常高并且IO资源丰富、非常易于进行功能的扩展。CPLD采用的是并行的输入与输出方式,这样的处理方式有效的提高了系统的处理速度,适合作为大规模控制系统的控制中心。而在这次设计当中不需要复杂的逻辑功能,对于数据的处理速度也不是很高。所以,从使用并且经济的情况考虑, 决定放弃这个方案。方案2:采用的是el 公司生产的8051单片机作为整个设计的主控制器,对到的信号进行处理并且传输给七段数码进行显示。8051单片机是el公司生产的一个低功耗,字长为8位的单片微型计算机,由处理器、片内128B RAM、片内4KBROM、两个1 6位的定时计数器、四个8位的I/O 口(P0 、

12、P1 、P2 、P3)、一个全双工的串行口、五个中断源以及时钟等组成。它具有体积小, 重量轻,对环境要求不高,价格低廉,可靠性高,灵活性好。能力强,2.2温度传感器的论证与选择方案1:在温度上使用热电偶。热电偶是一种感温的元件,它是将温度的变化信号转换成热电势的信号,在显示电显示出来。热电偶是由2个焊接在一起的异金属导线所的(如图2.1),热电偶产生热电势由2种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检部分则通过带有A/D通道的单片机,在将被测温度变化的测点的温度。2数据电压或电流过来,进行A/D转换后就可以同单片机进行数据上的处理,在显示电

13、显示出来。热电偶是工业上最常用的温度检测元件之一。其优点是:测量精度高。因热电偶直接与被测对像接触,不受中间介质的影响。测量范围广。常用的热电偶从15100均可连续测量,某些特殊热电偶最低可测到-269(如金铁镍铬),最高可达。构造简单,使用方便。热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。常用热电偶可分为标准热电偶和非标准热电偶两大类。所调用标准热电偶是指国家标准规定了其热电势与温度的关系、允许误差、并有的标准分度表的热电偶,它有与其配套的显示仪表可供选用。非标准化热电偶在使用范围或数量级上均不及标准化热电偶,一般也没有的分度表,主要用于某些特

14、殊场合的测量。而本设计所谈到的温度系统主要是应用在普通场合的测量,故采用标准热电偶。热电偶的输出是一个随温度变化的电压信号,它必须加上补偿电路才能正常工作,并且它的输出也要转换为010V的电压范围传送A / D 转换电路。图2.1热电偶的结构图Ds18b20测量温度,输出信号全数字化。便于单片机处方案2:采用数字温度理及控制,省去传统的测温方法的很多电路。而且的物理与化学性也很稳定,它可以用作测温元件,此元件线性较好。在0-100摄氏度时,最大线性偏差小于1摄氏度。Ds18b20的最大特点之一采用了单总线的数据传送,由数字温度计Ds18b20和控制器8051的温度测量装置,它直接输出温度的数字

15、信号,可以直接与计算机连接。这样,温度系统的结构就比较简单,体积也不大,采用51单片机控制,在的编程上空间比较大,可以通过编写程序来实现各种逻辑控制和算数,并且51单片机的体积小,在硬件上的实现比较简单,安装起来也比较方便,不仅可以对Ds18b20单独进行控制,而且还可以与PC机连接上传数据。另外8051在许多智能机器设备的控制上也有着广泛的应用,在程序的编程技术以及硬件的配合使用方面都已经很成熟。这个系统利用了8051单片机控制温度传感器Ds18b20进行实时温度检测并且显示,能够实现快速的测量环境中的温度,并且根据需要可以上下设定温度。系统框图如图2.2所示。图2.2系统框图从以上的2种方

16、案,容易看出方案1的测温装置可测温度范围宽,体积小,但是线性误差较大,并且需要加上补偿电路。方案2的测温装置电路简单、精确度比较高,实现方便设计也比较简单,所以本次设计采用了方案2。第三章元器件的介绍3.1对于单片机的介绍8051机,由el公司生产的8051单片机为字长8位的单片微型计算单片机的引脚描述处理器、片内RAM、片内ROM,两个16位的定时计数器、四个8位的I/O口(P0、P1、P2、P3)、一个全双工的串行口、五个中断源以及时钟等组成。结构图如图3.1所示。下面按其引脚功能分为四部分叙述这40条引脚的功能。第一,主电源引脚VCC 和VSS,Vcc (40脚)接+ 5 V 电压;Vs

17、s (20脚)接地。第二,外接晶体引脚XTAL1 和XTAL2,XTAL1(19脚)接外部晶体的一个引脚。XTAL2(18脚)接外晶体的另一端。第三,控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VppRST/VPD(9 脚)当振荡器运行时,在此脚上出现两个机器周期的机复位。将使单片ALE/PROG(30脚):当外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不妨问外部器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/ 6 。因此,它可用作对外输出的时钟, 或用于定时目的。对于EPROM 单片机(如8751),在EPRO

18、M 编程期间。此引脚用于输入编(PROG)。PSEN(29脚)这个引脚输出是外部程序器的读选通信号。EA/VPP(引脚):当EA端保持时,内部程序器,但在PC(程序计数器)值超过0H(对851/8751/80C51)或1H(对8052)时,将自动转向执行外部程序器内的程序。当EA保持低电平时,则只外部程序器,不管是否有内部程序器。对于常用的8051来说,无内部程序器,所以EA脚必须常接地。第四,输入/ 输出(I/O)引脚P0、P1、P2、P3(共32根)P0 口(39脚至32脚):是双向8 位三态I/O 口,在外接器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个ls型的ttl

19、 负载。P1P2 P3口(1脚至8脚):是准双向8位I/O口。口(21脚至28脚):是准双向8位I/O 口。口(10脚至17脚):是准双向8位I/O口,在MCS-51 中,这8个引脚还用于专门功能,是复功能口3。3.2.1Ds18b20 的还具有许多性能特点采用的DS18B20它可以支持多点组网功能,就是多个DS18B20可以同时并联在唯一的三线上进行工作,实现组网多点测温。DS18B20具有独特的单线接口方式,Ds18b20在和微处理器进行连接的时候只需要一条口线就可以实现DS18B20与微处理器的双向通讯。Ds18b20在使用的时候不需要任何的形如一个三极管的集成电路内。的元件,全部传感元

20、件及转换电路在适合的电压范围也很宽阔在3.0V5.5V,寄生电源方式下可由数据线供电5。测量的温度范围在-55摄氏度+125摄氏度,在-10摄氏度+85摄氏度时精度在正负0.5摄氏度。可编程的分辨率在912位,对应的可分辨温度分别为0.5摄氏度、0.25摄氏度、0.125摄氏度、0.0625摄氏度,可以实现高精度测温。在9位分辨时最多在93.73ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度非常快。测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可以传送CRC,具有很强的纠错能力。电源在接反的时候,温度计也不会因为发热而烧毁,但是不能正常工作

21、。DS18B20的内部结构主要是由四个部分组成:64位光刻ROM、温度传感器、非挥发的温度触发器TH和TL、配置寄存器6。DS18B20的管脚排列,各种封装形式如图3.2,DQ为数据传入或传出引脚。当被用着在寄生电源下,也可以向器件提供电源,GND为地信号,VDD为可以选择的VDD引脚,当工作于寄生电源时,此引脚必须接地。其电路图如3.3所示。图3.2外部封装形式运用 ds18b20 的注意事项图3.3 传感器电路图3.2.2DS18B20虽然具有测温精度高、连接也比较方便、测温系统简单、占用的口线比较少的特点,但是在运用的时候也要注意几点:DS18B20从测温结束直到将温度值转换成数字量这是

22、需要一定的转换时间的,而且必须保证时间的充足,不然转换就会出现错误,使温度输出总是显示85。在现实使用中发现,对于传感器应该使用电源电压保持在5V左右的电压,如果电源电压过低,会影响到,使得所测的温度的精度降低。较小的硬件开销需要相对比较复杂的进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则无法所测的温度。在使用高级语言进行系统程序设计时,对DS18B20的操作部分最好使用汇编来实现6。在DS18B20的有关资料中均未提及单总线上所挂的ds18b20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用的时

23、候其实并不是这样的,当总线上挂的多过8个时,就需要解决微处理器的总线驱动问题。在DS18B20的测温中,向DS18B20发出温度转换命令后,总要等待DS18B20的返回信号,一旦某个DS18B20接触不好活断线时,程序读DS18B20时,将没有返回信号,程序进入死循环,这一点在进行Ds18b20的硬件连接和的设计的时候要给予一定的重视。3.2.3DS18B20 的内部结构图为DS18B20的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器,用于用户设定的温度上下限值的TH和等七个部分。TL触发器与控制逻辑7、八位循环效验码DS18B20采用3脚PR3

24、5封装或8脚SOIC封装,内部结构框图如图3.4所示:图3.4DS18B20的内部结构图64b闪存Rom的结构如图3.5图3.564b闪存ROM结构图开始8位是产品类型的, 接着是每个器件的惟一的序号, 共有48位,最后8位是前56位的CRC传感器的, 这也是多个DS18B20可以采用一线进行通信的原因。触发器TH和TL,可以在编写程序的时候设定上限和下限。在DS18B20温度传感器内部的器包括一个高速暂存RAM和一个非易失性的可电擦除的EP2RAM。后者用于TH, TL值。数据先写入RAM, 经校验后再传给EP2RAM。而配置寄存器为高速暂存器中的第5个字节,他的内容用于确定温度值的数字转换

25、分辨率, Ds18b20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图3.6:图3.6 字节定义图后5位一直都是1, TM是测试模式位, 用于设置Ds18b20在工作模式还是在测试模式, 在Ds18b20出厂时该位被设置为0,用户不要去改动, R1和R0决定温度转换的精度位数, 即是来设置分辨率,如表3.1所示(Ds18b20出厂时被设置为12位) :表3.1R1和R0模式表R1R0分辨率温度最大转换时间/mm0011010193.75187.50275.00750.009位10位11位12位由表3-1可见, 设定的分辨率越高,所需要的温度数据转换时间就越长。因此,

26、 在实际应用中要在分辨率和转换时间两者之间进行权衡考虑。高速暂存器除了配置寄存器外, 还有其它8个字节组成, 其分配如下所示。其中温度信息第1与2字节 、TL和TH的值第3与4字节、第68字节未用, 表现出全为逻辑1;在第9字节读出的是前面所有8个字节的CRC码, 可用来保证通信正确。当DS18B20接收到温度转换命令之后,便开始启动转换。等到转换完成以后,所得到温度值就以位带符号的扩展二进制补码形式在温度传感器的高速暂存器中的第1和第2字节。这样单片机便可通过单线接口到该数据, 在过程中在后, 低位, 数据格式以0.0625摄氏度/LSB的形式表示出来。如图3.7:图3.7 高速暂存器的图对

27、应的温度计算: 当符号位S=0时, 直接将二进制位转换为十进制; 当S=1时, 先将补码变换为原码, 再计算十进制值。表3.2中反映是一部分温度值。表3.2部份温度值温度/二进制表示进制表示07D0H0191H0008H0000H8H FE6FH FC90H+25.0625+0.50-0.5-25.0625-55000000010000000000000000111111111111111011111100100100010000100000000000111110000110111110010000Ds18b20完成温度转换后,就把测得的温度值与TH,TL的比较,若TTH或TTL,则将该器件

28、内的告警标志置位,并对主机发出的告警搜索命令做出响应。因此,可用多只Ds18b20同时测量温度并进行告警搜索。3.2.4DS18B20 的测温原理Ds18b20的测温原理如图示,在图中低温系数晶振的振荡频率受到的温度的影响非常小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随着温度的不断变化其振荡频率也有着明显的改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,Ds18b20就对低温度系数的振荡器产生的时钟脉冲后进行记数,进而完成温度的测量。计数门开启的时间是由高温度系数的振荡器来决定的,在每一次测量之前,首先会将-55摄氏度的对应的基数分别置入减

29、法计数器和温度寄存器当中去,减法计数器1和温度寄存器被预置在-55摄氏度所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将要加1,减法计数器1的预置将重新被装入。减法计数器1重新开始对低温度系数晶振产生脉冲信号进行计数,就这样循环直到减法计数器2计数到0时,讲停止温度寄存器的累加,此时温度寄存器当中的数值为所测的温度,图3.6中的斜率累加器用于补偿和修正温度过程当中的非线性其输出用于修正减法计数器的预置值,只要计数门未关闭就重复上述过程,直到温度寄存器值达到被测温度值,就是温度传感器的测温原理。另外,由于Ds18b20单线

30、通信功能是分时完成的,它有严格的时间间隔概念,在读写时序的时候很重要,系统对Ds18b20的初始化Ds18b20发ROM功能命令发必须按照协议进行。操作协议是:器操作命令处理数据。图3.8Ds18b20测温原理图第四章硬件设计4.1设计电路图温度计电路设计原理图如图 4.1 所示,控制器使用的是 8051 单片机,温度计使用的是 Ds18b20,使用了七段数码管来进行显示。图4.1电路设计原理图本温度计大体上分为三个过程来进行工作,首先由Ds18b20温度传感器测量当前的温度,并将结果送入单片机。然后,通过8051单片机对送来的温度读数进行计算和转换,并将这个结果进行显示。从图中可以看出在这个

31、设计当中主要是由温度传感器,单片机,和7段数码管组成。其中,温度传感器采用的一线制与单片机相连接,它独立的完成温度测量和讲温度结果送到单片机的工作。4.2设计介绍4.2.1主控制器8051单片机具有低电压和小体积这2个特点,这两个特点正好满足了电路系统的设计需要和便于携带的要求,主机控制Ds18b20完成温度的测量要经过三个步骤:初始化、ROM操作指令、读出温度转换值。器操作指令。必须先启动了温度传感器才开始转换,再4.2.2显示电路显示电路采用的是七段数码管,所以需要有74LS47驱动器,并且数码管的光电特性决定驱动方式只能是恒流驱动,电流改变一点,对应的电压就会改变很多,所以要安装一些电阻

32、,限流电阻的作用是防止电压的突然改变对电生影响,其作用是控制电流,保护数码管。发光二极管一般为砷化镓半导体二极管,在发光二极管两端加上正电压,发光二极管发光。LED数码管是由许多发光二极管组合起来的,在一半情况下“8”字型LED是由“a,b,c,d,e,f,g,dp”这8个发光二极管组成,如图4.2所示,每个发光二极管称为一个字段8。图 4.2七段LED 结构及外形图七段LED 有共阴极和共阳极两种结构形式。显示电路一般分为静态显示和动态显示两类。第一类:共阳极接法把发光二极管的阳极连接在一起公共阳极。使用时公共阳极接 Vcc,当某阴为低电平时,该发光二极管就导通发光。第二类:共阴极接法把发光

33、二极管的阴极连在一起公共阴极。使用时公共阴极接 GND,当某阳为时,该段发光二极管就导通发光。七段 LED 包含七段发光二极管和小数位发光二极管,共需 8 位 I/O 口线控制,其代码为一个字节。七段LED 字型码见表 4.1 所示。表 4.1七段LED 字形码显示字符共阴极共阳极显示字符共阴极共阳极字形码字形码字形码字形码0123456789Ab3FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CHC0H F9H A4H B0H 99H92H82H F8H 80H90H88H83HC D E F P U Ry H L“灭”39H5EH79H71H73H3EH31H6EH76

34、H38H00HC6H A1H 86H8EH8CH C1H CEH 91H89H C7H FFH由N 个LED 显示块可N 位LED 显示器。N 位LED 显示器需要N 根位选线。根据显示电路不同,位选线与段选线的连接方式不同,实际所需的位选线和段选线数也不一样。显示电路主要有静态显示和动态显示两种。静态显示电路LED 显示器工作在静态显示时,其公共阳极(或阴极)接 Vcc(或 GND),一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。在静态显示的时候,LED 的亮度很高,控制也非常容易,但是功耗过大,所以需要的口线就比较多。若显示的位数过多的话,对于静态显示就

35、很难接受。在对于显示位数多的情况下,采用动态显示方式。动态显示电路对于动态显示来说,在连接的时候一把所有位的段选线的同名段连接在一起,在由一个 8 位的I/O 口进行控制,形成段选线的多位复用。在各个位的公共阴极或公共阳极则是分别由相应的I/O 口线进行控制,从而实现各个位形成段的分时选通,即同一时刻只有被选通位能显示相应的字符,而其它所有位都是熄灭的。由于人的眼睛有视觉暂留的现象产生,只要是每一位的显示时间间隔足够短的话,就会产生多位同时点亮的假象。在这个过单片机就需要不断的对显示进行控制,这样便减慢了单片机的CPU 运行速度来换取元件的减少以及显示功耗的降低。如图 4.3 所示。图 4.3

36、动态显示电路工作过程:将字形代码送入字形锁存器锁存,这时所有的显示块都有可能显示同样的字符;再将需要显示的位置代码送入字位锁存器锁存。为防止闪烁,每位显示时间在12ms,然后显示另一位,CPU需要不断地进行显示刷新9。4.2.3温度检测电路Ds18b20最大的特点就是采用的是单总线数据传输方式,Ds18b20的数据I/O均由同一条线来完成。Ds18b20的电源供电方式有2种,分别是外部供电和寄生供电方式。工作于寄生电源方式时,VDD和GND都要接地,他在需要限制的时候很有用,原理是当1wire总线的信号线DQ是测量温度和空间受到的时候,窃取信号能量给传感器供电,同时一部分能量给内部电容充电,当

37、DQ为低电平的时候能量给传感器供电。控制很复杂,的性能也要降低,所以在条件允许的情况下采用外供电方式。在这采用的是外供电方式。如图4.4所示图4.4温度传感器外供电方式连接图外部电源供电的方式是传感器Ds18b20的最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的温度系统。由于Ds18b20只有一根数据线,因此它和主机通信需要的是串行通信,。经过单线接口Ds18b20必须遵循下面的过程:初始化、ROM操作命令、器操作命令和控制操作10。要让传感器正常工作,一切都要按照程序来进行。主机发送复位脉冲。接着主机便此线并且进入接收方式。总线经过4.7K的上拉电阻被拉

38、到状态。在检测到I/O引脚的上升源之后,传感器等待1560毫秒,并且接着发送脉冲。然后存在复位脉冲表示传感器准备好发送或接收,人后给出正确的ROM指令和操作命令的数据。传感器通过使用时间片来读出和写入数据,时间片用来处理数据和进行何种指令操作令。它有写时间片和读时间片两种:写时间片:当主机把数据线从逻辑拉至逻辑低电平时,产生写时间片。它有两种类型的写时间片,分别是写1时间片与写0时间片。所有的时间片要有60微秒的持续周期,在各个周期之间必须要有最短为1微秒的恢复时间。读时间片:从温度传感器数据的时候,使用读时间片。当主机把数据线从逻辑拉至逻辑低电平时产生读写时间片。数据线在逻辑低电平必须保持至

39、少1微秒的时间,来自温度传感器的输出数据在时间下降沿之后的15微妙内有效。为了读出从时间片开始算起15微秒的状态,主机必须停止把引脚驱动拉到低电平时,I/O引脚经过外部的上拉电阻拉回,所有读时间片的最短持续周期为60微秒,包括两个读周期至少1微秒的恢复时间。 一旦主机检测到温度传感器的存在,它就可以发送一个器件ROM操作命令。所有ROM操作命令均为8位长。所有的串行通讯,读写每一个Bit位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的温度传感器Ds18b20来说,每个器件都要遵守下列命令序列。首先是初始化,其次是执行ROM命令,最后是执行功能命令。如果出现程序,

40、则单总线器件不会影响到主机。当然,搜索ROM命令和报警搜索命令,执行两者中任何一条命令之后,要返回初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲让主机知道总线上有从机,并且准备就绪。在主机检测到了应答脉冲以后,就可以发出ROM命令。这些命令与各个从机设备的唯一64位ROM代码相关。在主机发出ROM命令,以某个指定的Ds18b20,接着就可以发出Ds18b20支持的某个功能命令。这些命令允许主机写入或读出温度传感器的RAM、启动温度转换。实现Ds18b20的工作严格遵守单总线协议:主机发出一个复位脉冲,信号线上的温度传感器被

41、复位。接着主机发送ROM指令,程序开始单个的ROM编码并且保存在单片机数据器中,把用到的温度传感器的ROM编码读出最后用一个二维数据保存ROM编码。系统工作时,把了编码的Ds18b20挂在总线上。发出温度转换命令,再总线复位。然后就可以从刚才的二维数组匹配在温度传感器,随后发出温度命令就可以获得相应的温度值了。在主机初始化过程当中,主机通过拉低单总线至少480微妙才能产生复位脉冲。机总线,并进入接收模式。当总线被后,上拉电阻将总线拉高,在单总线器件检测到上升沿后,延迟1560微妙,通过拉低总线60240微秒,以产生应答脉冲。4.2.4温度电路本设计采用处理,利用有源蜂鸣器进行输出,采用直流供电

42、(如图4.5)。当所测温度超过获低于所预设的温度时,数据口相应的拉,输出。图4.5器设计图第五章程序5.1程序#include#include unsigned#define uchar unsigned char#define LEDout P0 #define LEDseg P2/定义LED数码管BCD码输出端口,BCD码由P0.0-P0.3输出/定义LED数码管位段选择输出端口,位段从左至右分别对应P2.7-P2.2,低电平对应段点亮 #define SkipRom 0 xcc#define ConvertTempr 0 x44 #define ReadTempr 0 xbe sbit

43、ds=P37;sbit beep=P36; sbit key_up=P32;sbit key_down=P33; temp;ktemp;void Delay15us(uchar n);void KeyDelay(un);bit ResetDS18B20(); bit ReadBit();uchar ReadByte();void WriteByte(uchar tByte); void MeasureTemprature(); void InitDisp();void display(uchar num,uchar dat); void dis_temp(ut);void dis_ktemp(

44、ut); void Init();void warn();void Delay15us(uchar n)do_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();n-;while(n);void KeyDelay(ui;n)for(i=0;in;i+);bit ResetDS18B20()bit Ready; ds=0;Delay15us(80); /787us ds=1;Delay15us(3); Ready=ds; Delay15us(80); return(Ready);bit ReadBit()bit tBit; ds=1;_n

45、op_(); ds=0;_nop_(); ds=1;_nop_();_nop_();_nop_();_nop_();_nop_(); tBit=ds;Delay15us(6);/64us return(tBit);uchar ReadByte()uchar i,j,tByte; tByte=0; for(i=0;i8;i+)j=ReadBit(); tByte|=(ji);return(tByte);void WriteByte(uchar tByte)uchar i; bit n;for(i=0;i=1; if(n)ds=0;_nop_();_nop_();_nop_(); ds=1;Del

46、ay15us(6);/64uselseds=0; Delay15us(6);/64us ds=1;_nop_();void MeasureTemprature()bit Ready;uTemprL,TemprH;Ready=ResetDS18B20(); if(!Ready)Delay15us(100); WriteByte(SkipRom); WriteByte(ConvertTempr);Ready=ResetDS18B20(); if(!Ready)Delay15us(100); WriteByte(SkipRom); WriteByte(ReadTempr); TemprL=ReadB

47、yte(); TemprH=ReadByte();temp=TemprH=2; temp=temp*1002;void InitDisp()LEDout=0 x0; LEDseg=0 xff;void display(uchar num,uchar dat)uchar i; LEDseg=0 xff; /消影 LEDout=dat;i=0 xff; i=i&(0 x80)(num); LEDseg=i; Delay15us(30); LEDseg=0 xff; /消影void dis_temp(uuchar i; i=t/1000; display(0,i); i=t%1000/100;dis

48、play(1,i); i=t%100/10;display(2,i); i=t%10;display(3,i);void dis_ktemp(uuchar i; i=t/1000; display(4,i); i=t%1000/100;display(5,i);void Init()IT0=1; IT1=1; EA=1; EX0=1; EX1=1;t)t)void warn()if(tempktemp)beep=0;P1=0;elsebeep=1; P1=0 xff;void main()uchar i; temp=0;/设定当前温度初值ktemp=3000; InitDisp(); Init

49、(); while(1)EA=0;/设定温度初值MeasureTemprature(); EA=1;warn(); for(i=10;i0;i-)dis_temp(temp); dis_ktemp(ktemp);Init0( )errupt 0EA=0;KeyDelay(800);if(key_up=0) ktemp=ktemp+100; if(ktemp9900) ktemp=0; while(!key_up) dis_ktemp(ktemp); EA=1;Init1( )errupt 2EA=0;KeyDelay(800);if(key_down=0) ktemp=ktemp-100; if(ktemp0) ktemp=9900; while(!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论