基于DS18B20的单总线数字温度计毕业设计(DOC毕业设计论文).doc_第1页
基于DS18B20的单总线数字温度计毕业设计(DOC毕业设计论文).doc_第2页
基于DS18B20的单总线数字温度计毕业设计(DOC毕业设计论文).doc_第3页
基于DS18B20的单总线数字温度计毕业设计(DOC毕业设计论文).doc_第4页
基于DS18B20的单总线数字温度计毕业设计(DOC毕业设计论文).doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1 前言在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下:硬件电路复杂;软件调试复杂;制作成本高。针对以上问题,采用一种改进型智能温度传感器作为检测元件,测温范围为-55+125 ,最高分辨率可达0.0625,误差 +0.5以内。数字温度计传感器可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 本数字温度计设计采用一种改进型智能温度传感器作为检测元件,测温范围为-55125 ,最高分辨率可达0.0625,误差 +0.5以内。而传统的温度计,如热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。硬件电路复杂,软件调试困难,制作成本高等缺点都给科技、工业、农业等诸多领域带来许多问题,尤其在生物学,珊瑚以其独特的生物学及生态学特性成为研究热带海洋环境的重要信息载体.阐明了珊瑚微量元素Sr/Ca、Mg/Ca温度计的建立基础、测定方法、研究成果、环境意义、争论问题及进一步研究的设想.多种海表温度计的对比研究,为现代和古海洋环境的重建、探索气候的变率与特征事件(冷暖、旱涝、ENSO等)的关联以及为预测未来气候变化的趋势提供科学的判据。因此,鉴于以上问题主要设计测温范围为-55125 ,精度为0.1的数字温度计。2 系统硬件的设计本数字温度计设计采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55+125 ,最高分辨率可达0.0625. DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。按照系统设计的功能和要求,确定系统由3个模块组成:主控制器,测温电路和显示电路1。AT89C2051主控制器数字温度计总体电路结构框图如图1.1所示。显示电路图1.1数字温度计总体电路结构框图DS18B20扫描驱动设计要求: 测温范围 -55+125 ;误差 +0.5以内;采用LED数码管直读显示。温度计设计原理图如图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,用4位共阳LED数码管以动态扫描法实现温度显示。(电路图见附录)。2.1 主控制器单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。系统可用两节电池供电。主电路图如2.1所示。图2.1主电路图2.2 显示电路显示电路采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.0P3.3来实现,列驱动用9012三极管。显示电路图如2.2所示。图2.2显示电路图2.3 温度传感器工作原理2.3.1 DS18B20的性能特点DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读取方式。DS18B20的性能特点如下: 独特的单线接口仅需要一个端口引脚进行通信; 多个DS18B20可以并联在惟一的三线上,实现多点组网功能; 无须外部器件;可通过数据线供电,电压范围为3.05.5V; 零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作2。 2.3.2 DS18B20原理DS18B20 采用3 脚PR-35 封装或8 脚SOIC 封装,管脚排列如图2.3所示。图中GND 为地,DQ 为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平,Vcc 是外部+5V 电源端,不用时应接地,NC 为空脚。图2.3 DS18B20的外部结构DS18B20内部主要包括寄生电源、温度传感器、64 位激光ROM 单线接口、存放中间数据的高速暂存器,用于存储用户设定的温度上下限值的TH 和TL 解发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分,内部结构如图2.4。64位ROM 和 单线接口 高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器图2.4 DS18B20的内部结构 寄生电源由二极管VD1、VD2 和寄生电容C 组成,电源检测电路用于判定供电方式,寄生电源供电时,VDD 端接地,器件从单线总线上获取电源,在DQ 线呈低电平时,改由C上的电压Vcc继续向器件供电。该寄生电源有两个优点:第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读ROM。若采用外部电源VDD,则通过VD2 向器件供电。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,如表2.1所示。开始8位(28H)是产品类型标号,接着的48位是DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。主机操作ROM 的命令有五种,如表2.1 所示。 8-BIT CRC 48-BIT SERLAL NUMBER 8-BIT FAMILY CODE(28H)MSB LSB MSB LSB MSB LSB表2.1 64 位ROM 的结构表2.2 DS18B20的ROM命令指令说明读ROM(33H)读DS1820的序列号匹配ROM(55H)继读完64位序列号的一个命令,用于多个DS18B20时定位跳过ROM(CCH)此命令执行后的存储器操作将针对在线的所有DS1820搜ROM(F0H)识别总线上各器件的编码,为操作各器件作好准备报警搜索(ECH)仅温度越限的器件对此命令作出响应DS18B20 测量温度时使用特有的温度测量技术。其内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。当计数门打开时,DS18B20 对f0 计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性予以被偿。测量结果存入温度寄存器中。一般情况下的温度值应为9 位(符号点1位),但因符号位扩展成高8 位,故以16 位被码形式读出,表2.3 给出了温度和数字量的关系。表2.3 DS1820 温度数字对应关系表 TEMPERATURE DIGITAL OUTPUT (Binary) DIGITAL OUTPUT (Hex) +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H -0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001 0000 FC90H DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低8位,第二个字节是温度的高8位,第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部计算,第九个字节是冗余检验字节,如表2.4所示3。表2.4 DS18B20暂存器分布寄存器内容字节地址温度最低数字位0温度最高数字位1高温限制2低温限制3保留4保留5计数剩余值6每度计数值7CRC校验8该字节各位的意义为TM R1 R0 1 1 1 1 1 ,低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不用改动,R1和R0用来设置分辨率,DS18B20出厂时被设置为12位,分辨率设置如表2.5所示。 表2.5 分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM命令和暂存器的命令如表2.2和表2.64。表2.6 DS18B20暂存器的命令指令说明温度转换(44H)启动在线DS1820做温度A/D转换读数据(BEH)从高速暂存器读9bits温度值和CRC值写数据(4EH)将数据写入高速暂存器的第2和第3字节中复制(48H)将高速暂存器中第2和第3字节复制到EERAM读EERAM(B8H)将EERAM内容写入高速暂存器中第2和第3字节读电源供电方式(B4H)了解DS1820的供电方式2.3.3 DS18B20电路连接 由于DS18B20 工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条I/ O线与DS18B20的数据总线相连即可,如图2.5所示5。图2.5 DS18B20电路2.3.4. DS18B20测温原理 如图2.6所示,图中低温度系数振荡器的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入6。斜率累加器顶置低温度系数振荡器高温度系数振荡器减法计数器1减到0减法计数器2计数比较器预置温度寄存器减到0停止增加 图2.6 DS18B20测温原理图 图中还隐含着计数门,当计数门打开时DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值,图2.5中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据7。2.4 DS18B20 与单片机的接口电路DS18B20可以采用两种方式供电:一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图2.7 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉8。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为500us。采用寄生电源供电方式时,VDD端均接地。由于单线制只有一根线,因此发送接口必须是三态的9。图2.7 DS18B20采用寄生电源的电路图3 系统软件的设计系统程序主要包括主程序、读出温度子程序。温度转换命令子程序、计算温度子程序和显示数据刷新子程序。3.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。主程序流程见图3.1所示。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图9所示10。初始化调整显示子程序1s到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令NYYN图3.1主程序流程图 MAIN : LCALL DISPLAY ;调用显示程序JNB SHIJOK , MAIN ;时间未到了0.8S则跳到MIANCLR SHIJOKLCALL DCONVTEMP ;调用温度转换子程序LCALL READTEMP ;调用温度读程序LCALL CONVTBCD ;调用BCD转换子程序LCALL DISPLAY ;调用显示程序LJMP MAIN ;返回主程3.2 读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3.2示11。发DS18B20复位命令 YNYN9字节完?CRC校验正确?结束移入温度暂存器读取操作,CRC校验发读取温度命令发跳过ROM命令 图3.2 读出温度子程序流程图3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图3.3所示12发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图3.3 温度转换命令子程序流程图DCONVTEMP: LCALL T0INDS18620MOV A , #0CCHLCALL WRITEDS18620 ;写入SKIP ROMMOV R1 , #34H ;延时104usDJNZ R1 , $MOV A , #44HLCALL WRITEDS18620 ;写入CONVERT T 温度转换程序MOV R1 , #34H ;延时104usDJNZ R1 , $RETREADTEMP: LCALL T0INDS18620MOV A , #0CCHLCALL WRITEDS18620 ;写入SKIP ROMMOV R1 , #34H ;延时104usDJNZ R1 , $MOV A , #0BEHLCALL WRITEDS18620 ;写入READ SCRATCHPAD 温度转换程序MOV R1 , #34H ;延时104usDJNZ R1 , $MOV R4 , #08HMOV R0 , #TEMPHEADREADTEMP2: LCALL READDS18620MOV R0 , AINC R0DJNZ R4 , READTEMP2MOV A , TEMPHEAD + 0MOV TEMPL , AMOV A , TEMPHEAD + 1MOV TEMPH , ARET 3.4 计算温度子程序开始计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,N温度零下其程序流程图如图3.4所示13。 Y温度值取补码置“-”标志置“+”标志计数小数位温度BCD值计数整数位温度BCD值结束图3.4 计数温度子程序流程图CONVTBCD: MOV A , TEMPHANL A , #80HJZ TEMPC1CLR CMOV A , TEMPLCPL A MOV TEMPL , AMOV A , TEMPHCPL AADDC A ,#00HMOV TEMPH , AMOV TEMPC , #01H; ;1表示负数SJMP TEMPC11TEMPC1: MOV TEMPC ,#00H ;0表示正数TEMPC11: MOV A , TEMPL ;将小数点转化出来ANL A , #0FHMOV DPTR , #TABBO MOVC A , A+DPTRMOV TEMLC , AMOV A , TEMPLANL A , #0F0H SWAP AMOV TEMPL , AMOV A , TEMPHANL A , #0FHSWAP AORL A , TEMPLLCALL HEX2BCD1MOV 42H , AMOV A , BMOV 41H ,AMOV A , R6MOV A , TEMPCJZ LOOP11MOV 43H ,AMOV A , TEMLCMOV 40H , ARET LOOP11: MOV 43H , #0BFHRETTABBO: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H,09HHEX2BCD1: MOV B , #064HDIV ABMOV R6 , AMOV A , #0AHXCH A , BDIV ABRETDISPLAY: MOV R1 , #40H ;将秒地址放入R1内MOV R2 , #0FEH ;左边第一个数码管开始显示PLAY: MOV A , R2MOV P3 , AMOV A , R1MOV DPTR , #TABMOVC A , A+DPTRMOV P1 , AINC R1MOV A , R2RL AJB ACC.2 , LOOP1CPL P1.7LOOP1: JNB ACC.4 , DIPLAYOUTLCALL DEL1MSLJMP PLAYDIPLAYOUT: MOV P3 , #0FFHMOV P1 , #0FFHRET DEL1MS : MOV R7 , #19HDL2 : MOV R6 , #14H ;1MS延时程序,LED显示程序用DL1 : DJNZ R7 , DL2DJNZ R6 , DL1RETTAB: DB 0C0H ,0F9H ,0A4H ,99H ,92H ,82H ,0F8H ,80H ,90H ,0FFH ,0BFHEND3.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图3.514。温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NYNY图3.5 显示数据刷新子程序3.6 DS18B20的各条ROM命令 Read ROM33H。这条命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS18B20时,才能使用该命令。如果总线上有不止一个从机,则当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成相“与”的效果)。 Match ROM55H。这是一条匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有与64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 Skip ROM0CCh=H。这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,则在Skip ROM命令之后跟着发一条读命令。由于多个从机同时传送信号,所以总线上就会发生数据冲突(漏极开路下拉效果相当于相“与”)。 Search ROM0F0H。当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search0ECH。这条命令的流程与Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况下,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 Write Scratchpad4EH。这条命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。 Read scratchpad0BEH。这条命令读取暂存器的内容。读取将从第一字节开始,一直进行下去,直到第九字节(CRC)读完。如果不想读完所有字节,则控制器可以在任何时间发出复位命令来中止读取。 Copy scratchpad48H。这条命令把暂存器的内容拷贝到DS18B20的E2PROM存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E2PROM存储器,则DS18B20就会输出一个0,如果拷贝结束则DS18B20输出1。如果使用寄生电源,则总线控制器必须在这条命令发出后立即启动强上拉,并最少保持10ms。Convert44H。这条命令启动一次温度转换而无需其他数据。温度转换命令被执行后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换,则DS18B20将在总线上输出0;如果温度转换完成,则输出1.如果使用寄生电源,则总线控制器必须在发出这条命令后立即启动强上拉,并保持500ms以上时间。Recall E20B80H。这条命令把报警触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在这条命令发出之后读数据隙,器件会输出温度转换忙的标识:0表示忙;1表示完成。 Read Power Supply0B4H。若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0表示寄生电源;1表示外部电源15。3.7 温度数据的计算处理方法从DS18B20读出的二进制值必须先转换成十进制值,才能用于字符的显示。DS18B20的转换精度为9-12位可选,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察可以发现,一个十进制值与二进制值间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。因为小数部分是半字节,所以二进制值范围是0-F,转换成十进制小数值就是0,0625的倍数(0-15倍)。这样需要4位的数码管来显示小数部分。实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1.16表3.1就是二进制与十进制的近似对应关系表。小数部分二进制值0123456789ABCDEF十进制00112334556678893.8 程序运行结果 本程序采用keil软件进行运行,运行结果如图3.6所示。图3.6 程序运行结果4 结论 本次设计,了解了数字测温器及温度传感器,明确了测温的原理,并对的数字测温器认识有了进一步的深化。熟悉了专门用于测温的数字温度传感器,包括发展历程、工作原理、应用等。并应用汇编语言进行编写的程序,同时也熟悉了编程软件。在完成论文的过程中,不断进行对已学过知识的巩固与深化,进而了解了现代科学技术的发展及以后的趋势,由其是提高了我解决问题的能力。 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序17。 总之,这次设计最后实现了用汇编语言程序控制系统硬件,完成了预定的设计任务。参考文献1 张越,张炎,赵延军. 基于DS18B20 温度传感器的数字温度计J . 微电子学,2007 , (5) :709 - 711.2 陶冶,袁永超,罗平. 基于DS18B20 的单片机温度测量系统J . 农机化研究,2007 , (10) :160 - 164.3 张萌,和湘,姜斌. 单片机应用系统开发M . 北京:清华大学出版社,2007.4 何立民. 单片机应用系统设计M . 北京:北京航空航天大学出版社,2005.5 张洪润等,电子线路与电子技术M,北京:清华大学出版社,2005.6 王松武等,电子创新设计与实践M,北京:国防工业出版社,2005.7 李建忠,单片机原理及应用M,西安:西安电子科技大学出版社,2002.8 何希才,新型集成电路及应用实例M,北京:科学出版社,2002.9 金伟正. 单线数字温度传感器的原理与应用J . 仪表技术与传感器,2000 (7) :42243.10 万福君等,微机原理系统设计与应用M(第二版),中国科学技术大学出版社,2001.11 黄智伟,全国大学生电子设计竞赛训练教程M,北京:电子工业出版社,2004.12 万福君等,微机原理系统设计与应用M(第二版),中国科学技术大学出版社,2001.13 徐华英,徐秋华,赵莉,等. 用DS18B20 和单片机构成的最小测温系统J.14 BLACK W C J , HODGES D A. Time interleaved con2verter arrays J . IEEE J Sol Sta Circ , 1980 , 15 (6) :102221029.15 SUMANEN L , WAL TARI M , HALONEN K A I. A102bit 2002MS/ s CMOS parallel pipeline A/ D convert2er J . IEEE J Sol Sta Circ , 2001 , 36 (7) : 104821055.16 刘亚利. HIRFL2CSR 工程中的智能温度控制系统J . 微计算机信息, 2005 , (722) :77278.17 王广志,吴颖. 数字式温度传感器与分布式温度测量系统J . 传感技术学报,2001 ,14 (1) :26231.18 吴志忠,王克家,吴利予,等. 一种基于单线数字温度传感器DSl8B20 的储粮温度检测系统的设计J . 应用科技,2001 ,28 (7) :15216.19 党峰,王敬农,高国旺. 基于DS18B20 的数字式温度计的实现J . 山西电子技术,2007 (3) .20 周月霞,孙传友. DS18B20 硬件连接及软件编程J . 传感器世界,2001 (12) .21 KHOINI P R , L IM L B , JOHNS D A. Time2inter2leaved oversampling A/ D converters : theory and prac2tice J . IEEE Trans Circ and Syst 2 II : Analog andDigital Signal Processing , 1997 , 44 (8) : 6342645.22 MIYAZA KI D , FURU TA M , KAWA HITO S. A 75mW 10 bit 120 MSample/ s parallel pipeline ADC CProc 29th European Sol Sta Circ Conf . Estoril ,Portugal. 2003 : 7192722.23 MEHR I , SINGER L. A 552mW , 102bit , 402Msam2ple/ s Nyquist2rate CMOS ADC J . IEEE J Sol StaCirc , 2000 , 35 (3) : 3182325.致谢 时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的的完成也随之进入了尾声。 本设计的完成是在张焕梅老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了张老师很多的宝贵时间和精力,在此向老师表示衷心地感谢!老师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生! 还要感谢同一设计小组的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。 附录 程序清单DS18B20采用4位LED共阳显示器显示测温值,显示精度为0.1 ,测温范围为-55+125 ,用AT89C2051单片机,12MHz晶振TIMEL EQU 0E0HTIMEN EQU 0B1HTEMPHEAD EQU 36HBITST DATA 20HTIME1SOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29HTEMPDIN DIT P3.718ORG 0000HLJMP STARTORG 00BHLJMP T0ITORG 100HSTART: MOV SP , #60HCLSMEM: MOV R0 , #20H MOV R1 , #60HCLSMEM1: MOV R0,#00H INC R0 DJNZ R1 , CLSMEM1 MOV TMOD ,#00100001B MOV TH0, #TIMEL MOV TL0, #TIMEH SJMP INITERROR: NOP LJMP START NOP INIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW, #00H CLR TEMPONEOK LJMP MAINT0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNZ R7, #32H,T0IT1 MOV R7, #00H SETB TIMEISOKT0IT1: POP PSW RETIMAIN: LCALL DISP1 JNB TINE1SOK, MAIN CLR TIME1SOK JNB TEMPONEOK ,MAIN2 LCALL READTEMP1 LCALL CONVTEMP LCALL DISPBCD LCALL DISP1MAIN: LCALL READTEMP SETB TEMPONEOK LJMP MAININITDS1820: SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6 , #0A0H DJNZ R6 ,$ MOV R6 ,#0A0HDJNZ R6 ,$ SETB TEMPIND MOV R6 ,#32H DJNZ R6 ,$ MOV R6,#3CHLOOP1820: MOV C , TEMPDIN JC INITDS1820OUT DJNZ R6, LOOP1820 MOV R6 , #064H DJNZ R6 ,$ SJMP TNITDS1820 RETINITDS1820OUT: SETB TEMPDIN RET READDS1820: MOV R7 ,#08H SETB TEMPDIN NOP NOP19READDS1820LOOP: CLR TEMPDIN NOP NOP NOP SETB TEMPIND MOV R6 ,#07H DJNZ R6 ,$ MOV C , TEMPDIN MOV R6 , #3CH DJNZ R6 , $RRC ASETB TEMPDINDJNZ R7 ,READDS1820LOOPMOV R6 , #3CHDJNZ R6 , $RET20WRITEDS1820: MOV R7 ,#08H SETB TEMPDIN NOP NOP21WRITEDS1820LOP: CLR TEMPDIN MOV R6 ,#07H DJNZ R6, $ RRC A MOV TEMPDIN DJNZ R7 , WRITEDS1820LOP RET22READTEMP: LCALL INITDS1820 MOV A ,#0CCH LCALL WRITEDS1820 MOV R6 ,# 34H DJNZ R6 ,$ MOV A , #44H LCALL WRITEDS1820 MOV R6 ,# 34H DJNZ R6 ,$ RETREADTEMP1: LCALL INITDS1820 MOV A , #0CCH LCALL WRITEDS1820 MOV R6 , #34HDJNZ R6 , $ MOV A , #0BEH LCALL WRITEDS1820 MOV R6 , #34H DJNZ R6 , $ MOV R5 , #09HMOV B

温馨提示

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

评论

0/150

提交评论