单片机课程设计报告-数字温度计.doc_第1页
单片机课程设计报告-数字温度计.doc_第2页
单片机课程设计报告-数字温度计.doc_第3页
单片机课程设计报告-数字温度计.doc_第4页
单片机课程设计报告-数字温度计.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计报告数字温度计专业班级 姓名 时 间 周 周指导教师 年 月 日1 设计要求基本范围-50-110精度误差小于0.5led数码直读显示2 扩展功能实现语音报数可以任意设定温度的上下限报警功能数字温度计 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。 关键词:单片机,数字控制,温度计, ds18b20,stc89c511 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机stc89c51,测温传感器使用ds18b20,用3位共阳极led数码管以串口传送数据,实现温度显示,能准确达到以上要求。2 总体设计方案2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行a/d转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到a/d转换电路,感温电路比较麻烦。2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器ds18b20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2方案二的总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机at89s51,温度传感器采用ds18b20,用3位led数码管以串口传送数据实现温度显示。主 控 制 器led显 示温 度 传 感 器单片机复位时钟振荡报警点按键调整 图1总体设计方框图2.2.1 主控制器单片机at89s51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2.2 显示电路显示电路采用3位共阳led数码管,从p3口rxd,txd串口输出段码。2.2.3温度传感器ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。ds18b20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个ds18b20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; ds18b20采用脚pr35封装或脚soic封装,其内部结构框图如图2所示。c64 位rom和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器th低温触发器tl配置寄存器8位crc发生器vdd i/o图2 ds18b20内部结构64位rom的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。ds18b20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的eeram。高速暂存ram的结构为字节的存储器,结构如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置ds18b20在工作模式还是在测试模式,ds18b20出厂时该位被设置为,用户要去改动,r1和0决定温度转换的精度位数,来设置分辨率。温度 lsb温度 msbth用户字节1tl用户字节2配置寄存器保留保留保留crc图3 ds18b20字节定义由表1可见,ds18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625lsb形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。表1 ds18b20温度转换时间表 ds18b20完成温度转换后,就把测得的温度值与ram中的th、t字节内容作比较。若th或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前56位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。ds18b20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表2一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。图4 ds18b20与单片机的接口电路2.3 ds18b20温度传感器与单片机的接口电路ds18b20可以采用两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4 所示单片机端口接单线总线,为保证在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时vdd端接地。由于单线制只有一根线,因此发送接口必须是三态的。2.4 系统整体硬件电路2.4.1 主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图5 所示。图5中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时led数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图5 中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。2.4.2 显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的rxd,和txd,串口的发送和接收,四只数码管采用74ls164右移寄存器驱动,显示比较清晰。 图5 单片机主板电路图6 温度显示电路3系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1主程序主程序的主要功能是负责温度的实时显示、读出并处理ds18b20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图7所示。y发ds18b20复位命令发跳过rom命令发读取温度命令读取操作,crc校验9字节完?crc校验正?确?移入温度暂存器结束nny初始化调用显示子程序1s到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令nyny图7 主程序流程图图8读温度流程图 3.2读出温度子程序读出温度子程序的主要功能是读出ram中的9字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。其程序流程图如图8示发ds18b20复位命令发跳过rom命令发温度转换开始命令 结束图9 温度转换流程图3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图9所示3.4 计算温度子程序计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定,其程序流程图如图10所示。 开始温度零下?温度值取补码置“”标志计算小数位温度bcd值 计算整数位温度bcd值 结束置“+”标志ny温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束nnyy 图10计算温度流程图 图11显示数据刷新流程图3.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图11。4总结与体会 经过将近三周的单片机课程设计,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是bcd码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19943阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19894廖常初.现场总线概述j.电工技术,1999.基于proteus的单总线温度监测网络的设计与仿真实现发布者:韩晓春发布时间:2007-12-4 10:47:00 内容摘要以单总线技术为基础, 采用12片单总线数字化温度传感器ds18b20、液晶显示模块lcd1602和at89c51单片机设计了小型单总线温度监测网络。应用专门用于单片机开发的eda工具软件proteus进行系统硬件电路设计,单片机开发软件keiluvision3进行软件调试,完成单总线温度监测网络系统设计并实现动态实时仿真。介绍了支持单片机的优秀eda工具软件proteus的特点、使用方法,具体阐述其在单片机系统硬、软件开发过程中的能有效提高工作效率、显著减少开发周期和降低开发成本等诸多优点。正文文字大小:大 中 小 随着单片机性能不断提高而价格却不断下降,单片机控制在越来越多的领域得以应用。单片机系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为硬件测试、软件调试、系统调试 3 个过程。传统的模式的硬件电路测试和系统调试既复杂又低效率,因为要进行这两个过程必须在设计原理图,绘制电路板设计制作完成、元器件焊接完毕,然后通过仿真器将调试成功的程序固化到单片机中之后进行,在软硬件的配合中如需要修改,还要重新制板或重新调试程序并固化,在时间和资金投入上带来很大的麻烦。英国labcenter electronics公司推出的proteus是专门用于单片机开发的eda工具软件。proteus除了具有和其它eda工具一样的原理编辑、印制电路板(pcb)自动或人工布线及电路仿真的功能外,最大特色是其电路仿真是交互的、可视化的、支持单片机微处理器的。在不需要硬件设备投入的情况下,proteus软件可以建立完备的电子学习设计开发环境,能够有效缩短研发周期,显著降低开发成本。本文运用proteus软件设计温度监测网络系统,并通过实时动态仿真的实现验证本设计的软硬件开发系统。本文以组网测温系统的开发过程为例, 简单介绍了proteus在单片机的软件开发与仿真中的应用,proteus软件资源丰富、功能强大, 集调试、仿真、制板于一体,提供了一种虚拟直观的软硬件设计仿真环境,有利于节省系统设计时间和设计成本,极大地提高了工作效率,对于单片机实践教学、单片机应用系统开发、电子电路的开发和科研工作的开展等都有较大的实用价值。fpga与ds18b20型温度传感器通信的实现时间:2009-08-12 作者: 来源: 人气: 打印本文摘要:介绍利用actel公司的apa150型现场可编程门阵列(fpga)实现对ds18b20型温度传感器的通信控制,使cpu可以方便地从fpga中读取温度测量结果和ds18b20的48位id值。27n电子资料网1引言27n电子资料网 ds18b20是dallas公司生产的一线式数字温度传感器,采用3引脚to-92型小体积封装;温度测量范围为-55+125,可编程为9位12位a/d转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。27n电子资料网 一线式(1-wire)串行总线是利用1条信号线就可以与总线上若干器件进行通信。具体应用中可以利用微处理器的i/o端口对ds18b20直接进行通信,也可以通过现场可编程门阵列(fpga)等可编程逻辑器件(pld)实现对1-wire器件的通信。27n电子资料网 本文介绍利用actel公司的proasicplus系列fpga实现与ds18b20的通信功能。fpga可以将读出ds18b20的48位id号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从fpga寄存器中读取这些信息。27n电子资料网 一般在使用ds18b20时往往采用微处理器的i/o端口实现与该器件的通信,这种方法虽然比较容易和方便,但是,因为ds18b20的一线式串行总线对时序要求比较严格,因此,为了保证与ds18b20的通信可靠性,微处理器与ds18b20通信时需要采用关闭中断的办法,以防止操作时序被中断服务破坏。27n电子资料网 利用fpga实现与ds18b20通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。27n电子资料网2 proasicplus系列fpga简介27n电子资料网 proasicplus系列fpga是actel公司推出的基于flash开关编程技术的现场可编程门阵列,包括从75万门的apa075型到100万门的apal000型,具有高密度、低功耗、非易失、含有嵌入式ram及可重复编程等特点。27n电子资料网 因为proasicplus系列fpga基于flash技术,利用flash开关保存内部逻辑,因此不需要另外的器件。由于不需要上电配置过程,因此具备上电就立即工作的特点。不用配置器件,系统的保密性提高。27n电子资料网 笔者在电力监控的产品中利用apa150型fpga实现了逻辑控制、a/d采样控制和fifo存储等功能,并利用剩余的资源实现了ds18b20的通信功能。apa150在整个系统中充当协处理器,使主cpu从繁重的实时处理中解脱出来。27n电子资料网3 ds18b20简介27n电子资料网31内部结构27n电子资料网 ds18b20的内部结构如图1所示,主要由以下几部分组成:64位rom、温度传感器、非挥发的温度报警触发器th(温度高)和tl(温度低)、配置寄存器、暂存寄存器(scratchpad)、存储器控制逻辑。dq为数字信号输入/输出端。27n电子资料网27n电子资料网 rom中的64(8位产品家族编号、48位id号、8位crc)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个ds18b20的64位序列号均不相同。27n电子资料网 8位crc生成器可以完成通信时的校验。27n电子资料网 暂存寄存器有9个字节,包含温度测量结果、温度报警寄存器、crc校验码等内容。27n电子资料网27n电子资料网3.2操作步骤27n电子资料网 对ds18b20的操作分为3个步骤:初始化、rom命令和ds18b20功能命令。27n电子资料网3.2.1初始化27n电子资料网 fpga要与ds18b20通信,首先必须完成初始化。fpga产生复位信号,ds18b20返回响应脉冲。27n电子资料网3.2.2rom命令27n电子资料网 该步骤完成fpga与总线上的某一具体ds18b20建立联系。rom命令有搜寻rom(search rom)、读rom(read rom)、匹配rom(match rom)、忽略rom(skip rom)、报警查找等命令(alarm search)。27n电子资料网 这里,fpga只连接1个ds18b20,因此只使用读rom命令,来读取ds18b20的48位id号。27n电子资料网3.2.3 ds18b20功能命令27n电子资料网 fpga在该步骤中完成温度转换(convertt)、写暂存寄存器(write scratchpad)、读暂存寄存器(read scratchpad)、拷贝暂存寄存器(copyscratchpad)、装载暂存器寄存器(recall e2)、读供电模式命令(read power supply)。27n电子资料网 文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。27n电子资料网3.3操作时序27n电子资料网 ds18b20的一线式操作时序如图2所示。从时序图中可以看出,对ds18b20的操作时序要求比较严格。利用fpga可以实现这些操作时序。27n电子资料网27n电子资料网4 fpga与ds18b20的通信27n电子资料网4.1 ds18b20的操作模块27n电子资料网 fpga需要完成ds18b20的初始化、读取ds18b20的48位id号、启动ds18b20温度转换、读取温度转化结果。读取48位id号和读取温度转换结果过程中,fpga还要实现crc校验码的计算,保证通信数据的可靠性。27n电子资料网 以上操作反复进行,可以用状态机来实现。状态机的各种状态如下:27n电子资料网 reset1:对ds18b20进行第一次复位,然后进入delay状态,等待800s后,进入cmd33状态。27n电子资料网 cmd33:对ds18b20发出033命令,读取48位id值。27n电子资料网 get_id:从ds18b20中读取48位id值。27n电子资料网 reset2:对ds18b20进行第二次复位,然后进入delay状态等待800s后,进入cmdcc状态。27n电子资料网 cmdcc:向ds18b20发出忽略rom命令,为进入下一状态作准备。27n电子资料网 cmd44:向ds18b20发出启动温度转换命令,然后进入delay状态等待900ms后进入下一状态。27n电子资料网 reset3:对ds18b20进行第三次复位。27n电子资料网 cmdcc2:向ds18b20发出忽略rom命令,为了进入下一状态作准备。27n电子资料网 get_temp:从ds18b20中读取温度测量数值。27n电子资料网 delay:等待状态。27n电子资料网 write_bit:向ds18b20中写入数据位状态。27n电子资料网 read_bit:从ds18b20中读取数据位状态。在该状态中每读取1位数据,同时完成该数据位的crc校验计算。所有数据都读取后,还要读取8位crc校验位。这8位校验位也经过crc校验计算,如果通信没有错误,总的crc校验结果应该是0。这时可将通信正确的数据保存到id和temp_data寄存器中。27n电子资料网 设计中采用verilog语言建立ds18b20操作模块”ds18b20_proc”。在该模块中实现以上的状态机功能。该模块的定义为module ds18b20 proc(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。27n电子资料网27n电子资料网 从仿真波形可以看出,系统上电后的10ms左右,fpga可以读出ds18b20的48位id值,这样,主cpu在系统复位后很短的时间内就可以读取id值,进行相应的处理。27n电子资料网4.2 fpga与cpu的接口27n电子资料网 在fpga中,要实现对ds18b20的通信处理,主模块要实现对ds18b20_proc模块的调用及建立与cpu之间的接口。27n电子资料网 与cpu之间的接口通过建立若干寄存器实现。温度测量值和48位id可以用4个16位寄存器保存。cpu通过读取这些寄存器可以获得温度测量数值和48位id值。27n电子资料网 cpu、fpga及ds18b20的连接原理如图4所示。27n电子资料网27n电子资料网5 结束语27n电子资料网 在系统中,fpga可以分担许多主处理器的工作,提高整体实时性,降低cpu处理的严格实时约束,从而降低cpu软件处理的难度。同时,由于actel公司的proasicplus系列fpga的保密特性,可以增强产品知识产权的保护。27n电子资料网 本设计应用在电力监控产品中。测量出的装置内部温度用于电量测量精度补偿和报警,对保证产品测量精度和可靠运行具有重要意义。48位id值用于产品的惟一编码标识和以太网mac地址,便于产品生产、维护和管理。27n电子资料网用protues打开ts-18b20 数字温度传感器,该产品采用美国dallas公司生产的 ds18b20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。编辑本段|回到顶部1: 技术性能描述 1.1 独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。1.2 测温范围 55125,固有测温分辨率0.5。1.31.4 工作电源: 35v/dc1.5 在使用中不需要任何外围元件1.6 测量结果以912位数字量方式串行传送1.7 不锈钢保护管直径 6 1.8 适用于dn1525, dn40dn250各种介质工业管道和狭小空间设备测温1.9 标准安装螺纹 m10x1, m12x1.5, g1/2”任选1.10 pvc电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。编辑本段|回到顶部2:应用范围 2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域2.2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。2.5 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制编辑本段|回到顶部3:产品型号与规格 型 号 测温范围 安装螺纹 电缆长度 适用管道ts-18b20 -55125 无 1.5 m ts-18b20a -55125 m10x1 1.5m dn1525ts-18b20b -55125 1/2”g 接线盒 dn40 60编辑本段|回到顶部4:特点 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 v至5.5 v 无需备用电源 测量温度范围为-55 c至+125 。华氏相当于是-67 f到257华氏度 -10 c至+85 c范围内精度为0.5 c温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统描述该ds18b20的数字温度计提供9至12位(可编程设备温度读数。信息被发送到/从ds18b20 通过1线接口,所以中央微处理器与ds18b20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个ds18b20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。8引脚封装 to-92封装 用途 描述 5 1 接地 接地 4 2 数字 信号输入输出,一线输出:源极开路 3 3 电源 可选电源管脚。见寄生功率一节细节方面。电源必须接地,为行动中,寄生虫功率模式。不在本表中所有管脚不须接线 。概况框图图1显示的主要组成部分ds18b20的。ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。 ds18b20的电源也可以从外部3v-5 .5v的电压得到。ds18b20采用一线通信接口。因为一线通信接口,必须在先完成rom设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读rom, 2 )rom匹配, 3 )搜索rom, 4 )跳过rom, 5 )报警检查。这些指令操作作用在没有一个器件的64位光刻rom序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。若指令成功地使ds18b20完成温度测量,数据存储在ds18b20的存储器。一个控制功能指挥指示ds18b20的演出测温。测量结果将被放置在ds18b20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器th和tl都有一字节eeprom 的数据。如果ds18b20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写th,tl指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有的数据都读,写都是从最低位开始。ds18b20有4个主要的数据部件: (1)光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。 (2) ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。ds18b20内部结构主要由四部分组成:64位光刻rom,温度传感器,温度报警触发器th和tl,配置寄存器。4.3.2存储器ds18b20的存储器包括高速暂存器ram和可电擦除ram,可电擦除ram又包括温度触发器th和tl,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除ram中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器ram是由8个字节的存储器组成;第一和第二个字节是温度的显示位。第三和第四个字节是复制th和tl,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。4.3.3 64-位光刻rom64位光刻rom的前8位是ds18b20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的crc校验。64-位的光刻rom又包括5个rom的功能命令:读rom,匹配rom,跳跃rom,查找rom和报警查找。4.3.4 ds18b20外部电源的连接方式ds18b20可以使用外部电源vdd,也可以使用内部的寄生电源。当vdd端口接3.0v5.5v的电压时是使用外部电源;当vdd端口接地时使用了内部的寄生电源。无论是内部寄生电源还是外部供电,i/o口线要接5k左右的上拉电阻。 4.3.4 ds18b20温度处理过程4.3.4.1配置寄存器配置寄存器是配置不同的位数来确定温度和数字的转化。可以知道r1,r0是温度的决定位,由r1,r0的不同组合可以配置为9位,10位,11位,12位的温度显示。这样就可以知道不同的温度转化位所对应的转化时间,四种配置的分辨率分别为0.5,0.25,0.125和0.0625,出厂时以配置为12位。4.3.4.2 温度的读取ds18b20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。16位数字摆放是从低位到高位。4.3.4.3ds18b20控制方法ds18b20有六条控制命令,如表4.1所示: 表4.1 为ds18b20有六条控制命令指 令 约定代码 操 作 说 明 温度转换 44h 启动ds18b20进行温度转换 读暂存器 beh 读暂存器9个字节内容 写暂存器 4eh 将数据写入暂存器的th、tl字节 复制暂存器 48h 把暂存器的th、tl字节写到e2ram中 重新调e2ram b8h 把e2ram中的th、tl字节写到暂存器th、tl字节 读电源供电方式 b4h 启动ds18b20发送电源供电方式的信号给主cpu 4.3.4.4 ds18b20的初始化。(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由ds18b20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若cpu读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。4.3.4.5 ds18b20的写操作(1) 数据线先置低电平“0”。(2) 延时确定的时间为15微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。4.3.4.6 ds18b20的读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时15微秒。(5)将数据线拉高“1”。(6)延时15微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时30微秒。最佳答案;这是关于ds18b20的读写程序,数据脚p2.2,晶振11.0592mhz;温度传感器18b20汇编程序,采用器件默认的12位转化,最大转化时间750微秒;可以将检测到的温度直接显示到at89c51的两个数码管上;显示温度00到99度,很准确无需校正!org 0000h;单片机内存分配申明!temper_l equ 29h;用于保存读出温度的低8位temper_h equ 28h;用于保存读出温度的高8位flag1 equ 38h;是否检测到ds18b20标志位a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置main:lcall get_temper;调用读温度子程序;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度;显示范围00到99度,显示精度为1度;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29h的低4位;将28h中的低4位移入29h中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度;这个转化温度的方法可是我想出来的哦非常简洁无需乘于0.0625系数mov a,29hmov c,40h;将28h中的最低位移入crrc amov c,41hrrc amov c,42hrrc amov c,43hrrc amov 29h,alcall display;调用数码管显示子程序cpl p1.0ajmp main; 这是ds18b20复位初始化子程序init_1820:setb p2.2nopclr p2.2;主机发出延时537微秒的复位低脉冲mov r1,#3tsr1:mov r0,#107djnz r0,$djnz r1,tsr1setb p2.2;然后拉高数据线nopnopnopmov r0,#25htsr2:jnb p2.2,tsr3;等待ds18b20回应djnz r0,tsr2ljmp tsr4 ; 延时tsr3:setb flag1 ; 置标志位,表示ds1820存在clr p1.7;检查到ds18b20就点亮p1.7ledljmp tsr5tsr4:clr flag1 ; 清标志位,表示ds1820不存在clr p1.1ljmp tsr7tsr5:mov r0,#117tsr6:djnz r0,tsr6 ; 时序要求延时一段时间tsr7:setb p2.2ret; 读出转换后的温度值get_temper:setb p2.2lcall init_1820;先复位ds18b20jb flag1,tss2clr p1.2ret ; 判断ds1820是否存在?若ds18b20不存在则返回tss2:clr p1.3;ds18b20已经被检测到!mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#44h ; 发出温度转换命令lcall write_1820;这里通过调用显示子程序实现延时一段时间,等待ad转换结束,12位的话750微秒lcall displaylcall init_1820;准备读温度前先复位mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#0beh ; 发出读温度命令lcall write_1820lcall read_18200; 将读出的温度数据保存到35h/36hclr p1.4ret;写ds18b20的子程序(有具体的时序要求)write_1820:mov r2,#8;一共8位数据clr cwr1:clr p2.2mov r3,#5djnz r3,$rrc amov p2.2,cmov r3,#21djnz r3,$setb p2.2nopdjnz r2,wr1setb p2.2retread_18200: ; 读ds18b20的程序,从ds18b20中读出两个字节的温度数据mov r4,#2 ; 将温度高位和低位从ds18b20中读出mov r1,#29h ; 低位存入29h

温馨提示

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

评论

0/150

提交评论