基于51单片机的家用电热水器的设计毕业设计(编辑修改稿)内容摘要:

体程序如下: while(temp!=0xf0) { delay(5)。 P3=0xfd。 temp=P3。 temp=tempamp。 0xf0。 while(temp!=0xf0) 上述程序是两个 while 循环之间的嵌套,第一个 while()语句判断有键按下后,延时一段时间再进行判断,如果第二次判断也认为由键按下,则可以确认的确由键盘操作,并不是抖动。 具体按下后的操作可以在后一个 while 循环中书写。 DS18B20 温度采集 DS18B20 技术 性能与应用范 围 8 图 DS18B20 的外形及管脚 图 DS18B20 是一种可组网数字温度传感器芯片,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。 测温范围 - 55℃ ~+ 125℃ ,固有测温分辨率 ℃。 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,最多只能并联 8 个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多 点测温。 工作电源为 3~5V/DC。 在使用中不需要任何外围元件,测量结果以 9~12 位数字量方式串行传送。 不锈钢保护管直径 Φ6,适用于 DN15~25, DN40~DN250 各种介质工业管道和狭小空间设备测温,标准安装螺纹 M10X1, , G1/2”任选, PVC 电缆直接出线或德式球型接线盒出线 ,便于与其它电器设备连接。 负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM 、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄 存器。 DS18B20 的外形及管脚排列见图 所示。 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域、轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制、供热 /制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制、汽车空调、冰箱、冷柜、以及中低温干燥箱等。 DS18B20 的初始化与读写操作 1. DS18B20 的初始化 ( 1) 先将数据线置高电平 “1”; ( 2) 延时(该时间要求的不是很严格,但是尽可能的短一点) ; ( 3) 数据线拉到低电平 “0”; ( 4) 延时 750 微秒(该时间的时间范围可以从 480 到 960 微秒) ; ( 5) 数据线拉到高电平 “1”; ( 6) 延时等待(如果初始化成功则在 15 到 60 毫秒时间之内产生一个由 DS18B20 所返回的低电平 “0”。 据该状态可以来确定它的存在,但是应注意不 能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制) ; 9 ( 7) 若 CPU 读到了数据线上的低电平 “0”后,还要做延时,其延时的时间从发出的高电平算起(第( 5)步的时间算起)最少要 480 微秒 ; ( 8) 将数据线再次拉高到高电平 “1”后结束。 DS18B20 的的初始化见图 所示。 图 DS18B20 的 的初始化 2. DS18B20 的写操作 ( 1) 数据线先置低电平 “0”; ( 2) 延时确定的时间为 15 微秒 ; ( 3) 按从低位到高位的顺序发送字节(一次只发送一位) ; ( 4) 延时时间为 45 微秒 ; ( 5) 将数据线拉到高电平 ; ( 6) 重复上( 1)到( 6)的操作直到所有的字节全部发送完为止 ; ( 7) 最后将数据线拉高。 在这里要注意的是( 3),写数据时时 1bit 单独传送,这里有两种情况。 当需要传送 “1”时,单片机应该给 DS18B20 芯片的 DQ 接口赋低电平,大约 15 秒以后,将DQ 释放为高电平,延时约 45 微妙即可。 当需要传送 “0”时,单片机应该给 DS18B20 芯片的 DQ 接口赋低电平,并且持续拉低最少60 微妙,然后将 DQ 释放为高电平,再延时约 15 秒即可。 DS18B20 的写操作时序图见图 所示。 10 图 DS18B20 的写操作时序图 3. DS18B20 的读操作 ( 1)将数据线拉高 “1”; ( 2)延时 2 微秒 ; ( 3)将数据线拉低 “0”; ( 4)延时 15 微秒 ; ( 5)将数据线拉高 “1”; ( 6)延时 15 微秒 ; ( 7)读数据线的状态得到一个状态位,并进行数据处理 ; ( 8)延时 30 微秒 ; 这里只要按以上操作将状态位的各各 bit 按顺序储存好即可。 DS18B20 的读操作时序图见图 所示。 图 DS18B20 的 读 操作时序图 DS18B20 的指令与格式 DS18B20 温度格式图见图 所示。 11 图 DS18B20 温度格式图 这是 12 位转化后得到的 12 位数据,存储在 DS18B20 的两个 8 比特的 RAM 中,二 进制中的前面 5 位是符号位,如果测得的温度大于 0, 这 5 位为 0, 只要将测到的数值乘于 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 即可得到实际 温度。 例如 +125℃ 的数字输出为 07D0H, +℃ 的数字输出为 0191H, ℃ 的数字输出为 FE6FH, 55℃ 的数字输出为 FC90H。 DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度 触发器 TH、 TL 和结构寄存器。 配置寄存器,该字节各位的意义见 表 所示。 表 配置寄 存 器 结 构 温度 数据输出(二进制) 数据输出(十六进制) +125℃ 0000 0111 1101 0000 07D0 +85℃ 0000 0101 0101 0000 0550 +℃ 0000 0001 1001 0001 0191 +℃ 0000 0000 1010 0010 00A2 +℃ 0000 0000 0000 1000 0008 0℃ 0000 0000 0000 0000 0000 ℃ 1111 1111 1111 1000 FFF8 ℃ 1111 1111 0101 1110 FF5E ℃ 1111 1110 0110 1111 FE6F 55℃ 1111 1100 1001 0000 FC90 高速暂存存储器由 9 个字节组成。 其分配见表 所示, 当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。 单片机可通过单线接口读到该数据,读取时低位在前,高位在后。 对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补码变为原码,再计算十进制值。 第九个字节是冗余检验字节。 表 DS18B20 暂存寄存器分布 寄存器内容 字节地址 温度值低位 ( LS Byte) 0 温度值高位 ( MS Byte) 1 12 高温限值( TH) 2 低温限值( TL) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校验值 8 根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前 都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 16~ 60 微秒左右,后发出 60~ 240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 ROM 指令表见表 所示, RAM 指令表见表 所示。 13 表 ROM 指令表 指 令 约定代码 功 能 读 ROM 33H 读 DS1820 温度传感器 ROM 中的编码(即 64 位地址) 符合 ROM 55H 发出此命 令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。 搜索 ROM 0FOH 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。 为操作各器件作好准备。 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。 适用于单片工作。 警告搜索命令 0ECH 执行后只有温度超过设定值上限或下限的片子才做出响应。 表 RAM 指令表 指 令 约定代码 功 能 温度变换 44H 启动 DS1820 进行温度转换, 12 位转换时最长为 750ms( 9位为 )。 结果存入内部 9 字节 RAM 中。 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的 4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将 RAM 中第 3 、 4 字节的内容复制到 EEPROM 中。 重调 EEPROM 0B8H 将 EEPROM 中内容恢复到 RAM 中的第 3 、 4 字节。 读供电方式 0B4H 读 DS1820 的供电模式。 寄生 供电时 DS1820 发送 “ 0 ” ,外接电源供电 DS1820 发送 “ 1 ”。 DS18B20 寄生电源供电方式 14 DS18B20 测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。 下面就是 DS18B20 几个不同应用方式下的 测温电路图: DS18B20 寄生电源供电方式电路图 ,见图 所示,在寄生电源供电方式下, DS18B20从单线信号线上汲取能量:在信号线 DQ 处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 独特的寄生电源方式有三个好处: 1. 进行远距离测温时,无需本地电源 ; 2. 可以在没有常规电源的条件下读取 ROM; 3. 电路更加简洁,仅用一根 I/O 口实现测温。 要想使 DS18B20 进行精确的温度转换, I/O 线必须保证在温度转换期间提供足够的能量,由于每个 DS18B20 在温度转换期间工作电流达到 1mA,当几个温度传感器挂在同一根 I/O 线上进行多点测温时,只靠 上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。 因此, 这种 电路只适应于单一温度传感器测 温情况下使用,不适宜采用供电系统中。 并且工作电源 VCC 必须保证在 5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。 图 DS18。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。