基于单片机的温度传感器电子设计论文(编辑修改稿)内容摘要:

发存储器操作命令 → 处理数据。 斜率累加器计数器 1低温系数晶振= 0计数器 2预置比较预置高温系数晶振= 0温度寄存器停止L SB 置位/ 清除加 1 图 8 DS18B20 的测温原理 ( 3) DS18B20 工作过程及时序 DS18B20 内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器 1 提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器 2 提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成 55℃ ,每当计数器 1 从预置数开始减计数到 0 时,温度寄存器中寄存的温度值就增加 1℃ ,这个过程重复进行,直到计数器 2计数到 0时便停止。 初始时,计数器 1 预置的是与 55℃ 相对应的一个预置值。 以后计数器 1 每一个循环的预置数都由斜率累加器提供。 为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置上海第二工业大学 机器人 2 课程设计 11 数也随温度相应变化。 计数器 1的预置数也就是在给定温度处使温度寄存器寄存值增加 1℃计数器所需要的计数个数。 DS18B20 内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。 在计数器 2停止计数后,比较器将计数器 1中的计数剩余值转换为温度值后与 ℃ 进行比较,若低于 ℃ ,温度寄存器的最低位就置 0;若高于 ℃ ,最低位就置 1;若高于 ℃ 时,温度寄存器的最低位就进位然后置 0。 这样,经过比较后所得的温度寄存器的值 就是最终读取的温度值了,其最后位代表 ℃ ,四舍五入最大量化误差为 177。 1/2LSB ,即 ℃。 温度寄存器中的温度值以 9 位数据格式表示,最高位为符号位,其余 8 位以二进制补码形式表示温度值。 测温结束时,这 9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节, 8 位温度数据占据第二字节。 DS18B20 测量温度时使用特有的温度测量技术。 DS18B20 内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。 当计数门打开时, DS18B20 进行计数,计数门开通时间由高温 度系数振荡器决定。 芯片内部还有斜率累加器,可对频率的非线性度加以补偿。 测量结果存入温度寄存器中。 一般情况下的温度值应该为 9位,但因符号位扩展成高 8位,所以最后以 16 位补码形式读出。 DS18B20 工作过程一般遵循以下协议:初始化 —— ROM 操作命令 —— 存储器操作命令 ——处理数据 ① 初始化 单总线上的所有处理均从初始化序列开始。 初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。 存在脉冲让总线控制器知道 DS1820 在总线上且已准备好操作。 ② ROM操作命令 一旦总线主机检测到从属器件的存在, 它便可以发出器件 ROM 操作命令之一。 所有 ROM 操作命令均为 8 位长。 这些命令列表如下: Read ROM(读 ROM)[33h] 此命令允许总线主机读 DS18B20 的 8位产品系列编码,唯一的 48位序列号,以及 8位的CRC。 此命令只能在总线上仅有一个 DS18B20 的情况下可以使用。 如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。 上海第二工业大学 机器人 2 课程设计 12 Match ROM( 符合 ROM)[55h] 此命令后继以 64位的 ROM 数据序列,允许总线主机对多点总线上特定的 DS18B20 寻址。 只有与 64 位 ROM序列严格相符的 DS18B20 才能对 后继的存贮器操作命令作出响应。 所有与 64 位 ROM序列不符的从片将等待复位脉冲。 此命令在总线上有单个或多个器件的情况下均可使用。 Skip ROM( 跳过 ROM )[CCh] 在单点总线系统中,此命令通过允许总线主机不提供 64位 ROM 编码而访问存储器操作来节省时间。 如果在总线上存在多于一个的从属器件而且在 Skip ROM 命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。 Search ROM( 搜索 ROM)[F0h] 当系统开始工作时,总线主机可能不知道 单线总线上的器件个数或者不知道其 64 位 ROM编码。 搜索 ROM 命令允许总线控制器用排除法识别总线上的所有从机的 64位编码。 Alarm Search(告警搜索 )[ECh] 此命令的流程与搜索 ROM 命令相同。 但是,仅在最近一次温度测量出现告警的情况下,DS18B20 才对此命令作出响应。 告警的条件定义为温度高于 TH 或低于 TL。 只要 DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变 TH或 TL 的设置,使得测量值再一次位于允许的范围之内。 贮存在 EEPROM 内的触发器值用于告警。 ③ 存储器操作命令 Write Scratchpad(写暂存存储器) [4Eh] 这个命令向 DS18B20 的暂存器中写入数据,开始位置在地址 2。 接下来写入的两个字节将被存到暂存器中的地址位置 2和 3。 可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器) [BEh] 这个命令读取暂存器的内容。 读取将从字节 0开始,一直进行下去,直到第 9(字节 8,CRC)字节读完。 如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。 Copy Scratchpad(复制暂存存储器) [48h] 这条命令把暂存器的内容拷贝到 DS18B20 的 E2 存储器里,即把温度报警触发字节存入非上海第二工业大学 机器人 2 课程设计 13 易失性存储器里。 如果总线控制器在这条命令之后跟着发出读时间隙,而 DS18B20 又正在忙于把暂存器拷贝到 E2 存储器, DS18B20 就会输出一个 “0” ,如果拷贝结束的话, DS18B20 则输出 “1”。 如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持 10ms。 Convert T(温度变换) [44h] 这条命令启动一次温度转换而无需其他数据。 温度转换命令被执行,而后 DS18B20 保持等待状态。 如果总线 控制器在这条命令之后跟着发出读时间隙,而 DS18B20 又忙于做时间转换的话, DS18B20 将在总线上输出 “0” ,若温度转换完成,则输出 “1”。 如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持 500ms。 Recall E2(重新调整 E2) [B8h] 这条命令把贮存在 E2中温度触发器的值重新调至暂存存储器。 这种重新调出的操作在对DS18B20 上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。 在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”= 忙, “1”= 准备就绪。 Read Power Supply(读电源) [B4h] 对于在此命令发送至 DS18B20 之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号: “0”= 寄生电源供电, “1”= 外部电源供电。 ④ 处理数据 DS18B20 的高速暂存存储器由 9个字节组成,其分配如图 3所示。 当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0和第 1 个字节。 单片机可通过单线接口读到该数据,读取时低位在前,高位在后。 上海第二工业大学 机器人 2 课程设计 14 图 9 高速 暂存存储器分配图 上表是 DS18B20 温度采集转化后得到的 12 位数据,存储在 DS18B20 的两个 8 比特的RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于或等于 0,这 5 位为 0,只要将测到的数值乘于 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 即可得到实际温度。 ( 4)引脚介绍 上海第二工业大学 机器人 2 课程设计 15 D ALLASDS 18 B 201 2 3G N D DQ V c c11 2 3俯视图 图 10 DS18B20 To92 表 2 DS18B20引脚定义 引脚 定义 GND 电源 负极 DQ 信号 输入输出 Vcc 电源 正 极 主程序流程图 上海第二工业大学 机器人 2 课程设计 16 开始初始化 L C D 1 6 0 2初始化定时器初始化 DS 18 B 20显示时间显示温度按键。 K e y 1 ? 模式选择 +K e y 2。 模式选择 模式 1 5。 模式 6。 模式 7。 K e y 3 ? K e y 4 ?加时调整 减时调整闹钟开启整屏移动NNNNNNNNYYYYY YYY 图 11 主函数 流程图 上海第二工业大学 机器人 2 课程设计 17 定时中断子 程序流程图 开始开定时器50 ms 定时到。 C o u n t ++C o u n t == 20。 S e c o n d ++Se c o n d == 60。 M i n u t e ++M i n u t e == 60。 H o u r ++H o u r == 24 ?清零YNYYYYNNNN 图 12 定时中断子程序流程图 DS18B20 程序 流程图 ( 1) 读温度 主程序 读温度 主程序 的 主要功能是负责温度的实时显示 、 读出。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。