基于stc89c52单片机的温度报警器的设计与制作内容摘要:

制继电器自动打开控制加温或者减温系统进行工作当温度恢复正常值则继电器自动关闭 图 37 继电器控制电路 DS18B20 温度传感器 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器与传统的热敏电阻等测温元件相比它能直接读出被测温度并且可根据实际要求通过简单的编程实现 9~ 12 位的数字值读数方式 DS18B20 的性能特点如下 178。 独特的单线接口仅需要一个端口引脚进行通信 178。 实际应用中不需要 外部任何元器件即可实现测温 178。 可通过数据线供电电压范围为 30~ 55V 178。 在 DS18B20 中的每个器件上都有独一无二的序列号 178。 温度以 9 或 12 位数字量读出 178。 报警搜索命令识别并标志超过程序限定温度 温度报警条件 的器件 178。 负电压特性电源极性接反时温度计不会因发热而烧毁但不能工作 图 37 DS18B20 内部结构图 DS18B20 采用 3 脚 PR- 35 封装或 8 脚 SOIC 封装其内部结构框图如图 37 所示 64 位 ROM 的位结构如图 38 所示开始 8 位是产品类型的编号接着是每个器件的惟一的序号共有 48 位最后 8 位是前 56 位的 CRC 检验码这也是多个 DS18B20可以采用一线进行通信的原因非易失性温度报警触发器 TH和 TL可通过软件写入户报警上下限 8 位检验 CRC 48 位序列号 8 位工厂代码 10H MSB LSB MSB LSB MSB LSB 图 38 64 位 ROM 结构图 DS18B20温度传感器的内部存储器还包括一个高速暂存 RAM和一个非易失性的可电擦除的 EERAM 高速暂存 RAM 的结构为 8 字节的存储器结构如图 3 所示 头 2个字节包含测量得的温度信息第 3和第 4字节是 TH和 TL的拷贝是易失的每次上电复位时被刷新第 5 个字节为配置寄存器 [9]它的内容用于确定温度值的数字转换分辩率 DS18B20 工作时按此寄存器中的分辩率将温度转换为相应精度的数值该字节各位的定义如图 38 所示低 5 位一直为 1TM 是测试模式位用于设置 DS18B20在工作模式还是在测试模式 在 DS18B20出厂时该位被设置为 0用户不要去改动 R1和 R0决定温度转换的精度位数即用来设置分辩率定义方法见表 1 温度 LSB 温度 MSB TH 用 户字节 1 TL 用户字节 2 配置寄存器 保留 保留 保留 CRC 1 字节 2 字节 4 字节 TH 用户字节 1 5 字节 TH 用户字节 2 6 字节 EEROM 7 字节 8 字节 9 字节 TM R1 R0 1 1 1 1 1 图 39 高速暂存 RAM 结构图 图 310 配置寄存器 表 1 DS18B20 分辩率的定义规定 R1 R0 分辩率位 温度最大转换时间 ms 0 0 9 9375 211 0 1 10 1875 1 0 11 375 1 1 12 750 由表 1可见 DS18B20温度转换的时间比较长而且设定的分辩率越高所需要的温度数据转换时间就越长因此在实际应用中要将分辩率和转换时间权衡考虑 高速暂存 RAM的第 678字节保留未用表现为全逻辑 1转换完成后温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第 12字节单片机可以通过单线接口读出该数据读数据时低位在先高位在后数据格式以 00625℃ LSB形式表示温度值格式如图 46 所示 当符号位 S 0时表示测得的温度值为正值可以直接将二进制位转换为十进制当符号位 S 1时表示测得的温 度值为负值要先将被补码变成原码再计算十进制值表 2 是一部分温度值对应的二进制温度数据 23 21 20 21 22 23 24 LS 字节 S S S S S 26 25 24 MS 字节 图 311 温度数据值格式 DS18B20 完成温度转换后就把测得的温度值与 RAM 中的 THTL 字节内容作比较若 T TH 或 T TL 则将该器件内的报警标志位置位并对主机发出的报警搜索命令作出响应因此可用多只 DS18B20 同时测量温度并进行报警搜索 主机根据 ROM 的前 56 位来计算 CRC 值并和存入 DS18B20的 CRC 值作比较以判断主机收到的 ROM 数据是否正确 DS18B20 的测量原理如图 311 所示图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1 高温度系数晶振随温度变化其振荡频率明显改变所产生的信号作为减法计数器 2 的脉冲输入图中还隐含着计数门当计数门打开时 DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数 表 2 DS18B20 温度与测得值对应表 温度℃ 二进制表示 十六进制表示 + 125 0000 0111 1101 0000 07D0H + 85 0000 0101 0101 0000 0550H + 250625 0000 0001 1001 0001 0191H + 10125 0000 0000 1010 0010 00A2H + 05 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H - 05 1111 1111 1111 1000 FFF8H - 10125 1111 1111 0101 1110 FF5EH - 250625 1111 1110 0110 1111 FE6FH - 55 1111 1100 1001 0000 FC90H 进而完成温度测量计数门的开启时间由高温度系数振荡器来决定每次测量前首先将- 55℃所对应的一个基数分别置入减法计数器 1温度寄存器中减法计数器 1和温度寄存器被预置在- 55℃所对应的一个基数值 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数当减法计数器 1的预置值减到 0时温度寄存器的值将加 1减法计数器 1的预置值将重新被装入减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号 进行计数如此循环直到减法计数器 2计数到 0时停止温度寄存器值的累加此时温度寄存器中的数值就是所测温度值图 311 中的斜率累加器用于补偿和修正测温过程中的非线形性其输出用于修正减法计数器的预置值只要计数门仍未关闭就重复上述过程直到温度寄存器值达到被测温度值 另外由于 DS18B20 单线通信功能是分时完成的它有严格的时隙概念因此读写时序很重要系统对 DS18B20 的各种操作必须按协议进行操作协议为初始化 DS18B20 发复位脉冲 发 ROM 功能命令 发存储器操作命令 处理数据 45 DS18B20 的其他介绍 DS18B20 的存储器包括高速暂存器 RAM 和可电擦除 RAM 可电擦除 RAM 又包括温度触发器 TH和 TL以及一个配置寄存器存储器能完整的确定一线端口的通讯数字开始用写寄存器的命令写进寄存器接着也可以用读寄存器的命令来确认这些数字当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除 RAM中当修改过寄存器中的数时这个过程能确保数字的完整性 高速暂存器 RAM是由 8个字节的存储器组成第一和第二个字节是温度的显示位第三和第四个字节是复制 TH和 TL同时第三和第四个字节的数字可以更新第五个字节是复制配置寄存器同时第五个 字节的数字可以更新六七八三个字节是计算机自身使用用读寄存器的命令能读出第九个字节这个字节是对前面的八个字节进行校验 DS18B20采用一线通信接口因为一线通信接口必须在先完成 ROM设定否则记忆和控制功能将无法使用主要首先提供以下功能命令之一读 ROMROM 匹配搜索 ROM 跳过 ROM 报警检查这些指令操作作用在没有一个器件的 64 位光刻 ROM序列号可以在挂在一线上多个器件选定某一个器件同时总线也可以知道总线上挂有有多少什么样的设备 DS18B20可以使用外部电源 VDD也可以使用内部的寄生电源当 VDD 端口接 30V55V 的电 压时是使用外部电源当 VDD 端口接地时使用了内部的寄生电源无论是内部寄生电源还是外部供电 IO口线要接 5KΩ左右的上拉电阻 DS18B20 电路设计 DS18B20 最大的特点是单总线数据传输方式 DS18B20 的数据 IO 均由同一条线来完 成 DS18B20 的电源供电方式有 2 种 外。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。