654523978课程设计(论文)基于单片机的DS18B20数字温度传感器设计.doc
《654523978课程设计(论文)基于单片机的DS18B20数字温度传感器设计.doc》由会员分享,可在线阅读,更多相关《654523978课程设计(论文)基于单片机的DS18B20数字温度传感器设计.doc(42页珍藏版)》请在三一办公上搜索。
1、摘 要利用DS18B20温度传感器与89C51相连测量室内温度并且在六位LED显示器的中间两位显示出来。LED显示器的前两个显示上限温度,中间两个显示当前温度测量值。最后两位显示下限温度。利用按键设置温度的上限与下限,并在LED显示器上动态显示。系统共有四个按键,前两个按键实现温度上限的调整,后两个实现温度下限的调整。当温度低于下限(15)值时二极管发光,当室温高于上限(40)时蜂鸣器报警,发出有规律的声音。通过按键调节温度上下限,使当前外界温度的范围包含在温度传感器的上下限内,从而使得蜂鸣器关闭和二极管光灭。关键词:DS18B20数字温度传感器 89C51 LED共阴极显示器 程序汇编 调试
2、目 录一、DS18B206二、89C5117三、815519四、实验设备及原理23五、设计思路及程序流程图28六、上机调试过程37七、心得体会38八、附件40 参考文献47正 文一、DS18B20温度传感器 DS1820 单线数字温度计特性 独特的单线接口仅需一个端口引脚进行通讯 简单的多点分布应用 无需外部器件 可通过数据线供电 零待机功耗 测温范围-55+125,以 0.5递增 温度以 9 位数字量读出 温度数字量转换时间 200ms(典型值) 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 应用包括温度控制、工业系统、消费品、温度计或任何热
3、感测系统 引脚说明 16脚SSOPPR35符号说明91GND接地82DQ数据输入/输出脚。对于单线操作:漏极开路(见“寄生电源”节)73VDD可选的 VDD 引脚。具体接法见“寄生电源”节DS18B20(16 脚 SSOP):所有上表中未提及的引脚都无连接。 概览图1的方框图示出了DS1820的主要部件。DS18B20 有三个主要数字部件:1)64 位激光 ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。DS18B
4、20 也可用外部 5V 电源供电。DS18B20 依靠一个单线端口通讯。在单线端口条件下,必须先建立 ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面 5 个 ROM 操作命令之一:1)读 ROM,2)匹配 ROM,3)搜索 ROM,4)跳过 ROM,5)报警搜索。这些命令对每个器件的激光 ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条 ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条控制操作命令指示 DS18B20 完成一次温
5、度测量。测量结果放在 DS18B20 的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器 TH 和 TL 各由一个 EEPROM 字节构成。如果没有对 DS18B20 使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对 TH 和 TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。 寄生电源 寄生电源的方框图见图 1。这个电路会在 I/O 或 VDD 引脚处于高电平时“偷”能量。当有特定的时间和电压需求时(见节标题“单线总线系统”),I/O 要提供足够的能量。寄生电源有两个好处:1
6、)进行远距离测温时,无需本地电源,2)可以在没有常规电源的条件下读 ROM。要想使 DS18B20 能够进行精确的温度转换,I/O 线必须在转换期间保证供电。由于 DS18B20 的工作电流达到 1mA,所以仅靠 5K 上拉电阻提供电源是不行的,当几只 DS18B20 挂在同一根 I/O线上并同时想进行温度转换时,这个问题变得更加尖锐。 有两种方法能够使 DS18B20 在动态转换周期中获得足够的电流供应。第一种方法,当进行温度转换或拷贝到存储器操作时,给 I/O 线提供一个强上拉。用 MOSFET 把 I/O 线直接拉到电源上就可以实现,见图 2。在发出任何涉及拷贝到存储器或启动温度转换的协
7、议之后,必须在最多 10s 之内把 I/O 线转换到强上拉。使用寄生电源方式时,VDD 引脚必须接地。另一种给 DS18B20 供电的方法是从 VDD 引脚接入一个外部电源,见图 3。这样做的好处是 I/O线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片 DS18B20,而且如果它们都使用外部电源的话,就可以先发一个 Skip ROM 命令,再接一个 Convert T 命令,让它们同时进行温度转换。注意当加上外部电源时,GND 引脚不能悬空。温度高于 100时,不推荐使用寄生电源,因为 DS
8、18B20 在这种温度下表现出的漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用 DS18B20 的 VDD 引脚。 对于总线控制器不知道总线上的 DS18B20 是用寄生电源还是用外部电源的情况,DS18B20 预备了一种信号指示电源的使用意图。总线控制器发出一个 Skip ROM 协议,然后发出读电源命令,这条命令发出后,控制器发出读时间隙,如果是寄生电源,DS18B20 在单线总线上发回“0”,如果是从 VDD 供电,则发回“1”,这样总线控制器就能够决定总线上是否有 DS18B20 需要强上拉。如果控制器接收到一个“0”,它就知道必须在温度转换期间给 I/O 线提供
9、强上拉。这个命令协议详见“存储器操作命令”节。 测温操作 DS18B20 通过一种片上温度测量技术来测量温度。图 4 示出了温度测量电路的方框图。 DS18B20 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达 0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复这一
10、过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。 温度/数据关系(表 1)温度数据输出(二进制)数据输出(十六进制)+12500000000 1111101000FA+2500000000 001100100032+1/200000000 000000010001000000000 000000000000-1/211111111 11111111FFFF-2511111111 11001110FFCE-5511111111
11、10010010FF92DS18B20 内部对此计算的结果可提供 0.5的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表 1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20 测温范围-55+125,以 0.5递增。如用于华氏温度,必须要用一个转换因子查找表。 报警搜索操作 DS18B20 完成一次温度转换后,就拿温度值和存储在TH和TL中的值进行比较。因为这些寄存器是8位的,所以 0.5位被忽略不计。TH或TL的最高有效位直接对应16位温度寄存器的符号位。如果测得的温度高于TH或低于TL,器件内部就会置位一个报警标识。每进行一次测温就对这个标识进
12、行一次更新。当报警标识置位时,DS1820会对报警搜索命令有反应。这样就允许许多DS18B20并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。64位(激)光刻ROM 每只DS18B20都有一个唯一的长达64位的编码。最前面8位是单线系列编码(DS1820 的编码是 9h)。下面48位是一个唯一的序列号。最后8位是以上56位的CRC码。(见图 5)64位ROM和ROM操作控制区允许DS18B20作为单线制器件并按照详述于“单线总线系统”一节的单线协议工作。只有建立了ROM操作协议,才能对DS1820进行控制操作。这个协议用ROM操作协
13、议流程图来描述。单线总线控制器必须得天独厚提供5条ROM操作命令其中之一:1)Read ROM,2)Match ROM,3)Search Rom,4)Skip ROM,5)Alarm Search。成功进行一次ROM操作后,就可以对DS18B20进行特定的操作,总线控制器可以发出六个存储器和控制操作命令中的任一条。 CRC 发生器 DS1820 中有 8 位 CRC 存储在 64 位 ROM 的最高有效字节中。总线控制器可以用 64 位 ROM 中的前 56 位计算出一个 CRC 值,再用这个和存储在 DS1820 中的值进行比较,以确定 ROM 数据是否被总线控制器接收无误。CRC 计算等式
14、如下: CRC=+DS1820 同样用上面的公式产生一个 8 位 CRC 值,把这个值提供给总线控制器用来校验传输的数据。在任何使用 CRC 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个 CRC 值,和存储在 DS1820 的 64 位 ROM 中的值或 DS1820 内部计算出的 8 位 CRC 值(当读暂存器时,做为第 9 个字节读出来)进行比较。CRC 值的比较以及是否进行下一步操作完全由总线控制器决定。当在 DS1820中存储的或由其计算的 CRC值和总线控制器计算的值不相符时,DS1820 内部并没有一个能阻止命令序列进行的电路。 单线CRC可以用一个由移位寄存器和
15、 XOR 门构成的多项式发生器来产生,见图 7。 移位寄存器的各位都被初始化为 0。然后从系列编号的最低有效位开始,一次一位移入寄存器。8位系列编码都进入以后,序列号再进入,48 位序列号都进入后,移位寄存器中就存储了CRC值。移入8位CRC会使移位寄存器复0。存储器DS1820的存储器结构示于图 8。存储器由一个暂存 RAM 和一个存储高低温报警触发值 TH 和TL 的非易失性电可擦除()RAM 组成。当在单线总线上通讯时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性()RAM 中。这一过程确保更改存储器时数据的完
16、整性。暂存器的结构为 8 个字节的存储器。头两个字节包含测得的温度信息。第三和第四字节是 TH和 TL 的拷贝,是易失性的,每次上电复位时被刷新。下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑 1。第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力(见“测温操作”一节)。还有一个第九字节,可以用读暂存器命令读出。这个字节是以上八个字节的 CRC 码。CRC 的执行方式如第二个标题“CRC 发生器”所述。 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。DS18B20 是从机。关于这种总线分三个题目讨论:硬件结构、执行序列和单线信号(信号类型和时序)。 单线
17、总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。为此每一个总线上的器件都必须是漏极开路或三态输出。DS18B20 的单总线端口(I/O引脚)是漏极开路式的,内部等效电路见图9。一个多点总线由一个单线总线和多个挂于其上的从机构成。单线总线需要一个约 5K的上拉电阻。 单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。如果总线停留在低电平超过480s,总线上的所有器件都将被复位。 通过单线总线端口访问DS1820的协议如下:
18、初始化 ROM 操作命令 存储器操作命令 执行/数据 初始化 通过单线总线的所有执行(处理)都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。存在脉冲让总线控制器知道DS1820在总线上且已准备好操作。ROM 操作命令 一旦总线控制器探测到一个存在脉冲,它就可以发出5个ROM命令中的任一个。所有ROM操作命令都8位长度。Read ROM 33h 这个命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS1B820的时候才能使用这个命令。如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发
19、生数据冲突(漏极开路连在一起开成相与的效果)。 Match ROM 55h 匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的 DS18B20。只有和64位ROM序列完全匹配的DS1820才能响应随后的存储器操作命令。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 Skip ROM CCh 这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下又节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果
20、相当于相与)。 Search ROM F0h 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。 Alarm Search ECh 这条命令的流程图和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。I/O 信号 DS18B20需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 654523978 课程设计 论文 基于 单片机 DS18B20 数字 温度传感器 设计
链接地址:https://www.31ppt.com/p-4146179.html