基于stc90c516水温控制系统设计论文(编辑修改稿)内容摘要:

2 字节。 单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 ℃ / LSB 形式表示。 当符号位 s= 0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位 s= 1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 输出的二进制数的高 5 位是符号位,最后 4 位是温度小数点位,中间 7 位是温度整数位。 表 22 是一部分温度值对应的二进制温度数据。 表 22 DS18B20 输出的温度值 温度值 二进制输出 十六进制输出 +125℃ 0000 0111 1101 0000 07D0h +85℃ 0000 0101 0101 0000 0550h +℃ 0000 0001 1001 0001 0191h +℃ 0000 0000 1010 0010 00A2h +℃ 0000 0000 0000 1000 0008h 0℃ 0000 0000 0000 0000 0000h ℃ 1111 1111 1111 1000 FFF8h ℃ 1111 1111 0101 1110 FF5Eh ℃ 1111 1110 0110 1111 FF6Fh 55℃ 1111 1100 1001 0000 FC90h DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、 TL 字节内容作比较。 若 T> TH 或 T< TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。 因此,可用多只 DS18B20 同时测量温度并进行报警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余检验码( CRC)。 主机 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的ROM 数据是否正确。 显示电路设计 显示电路是由四位一体的共 阳 数码管进行显示的,数码管由三极管 8550 驱动。 四位一体的共 阳 数码管的管脚分布图如图 6 所示。 图 6 四位一体的共 阳 数码管管脚分布图 显示电路的总体设计如图 7 所示。 W112W29W38W46a11b7c4d2e1f10g5dp3U3a b c d e f g dpw1 w2 w3 w4w1Q490121KR4w2Q590121KR5w3Q690121KR6w4Q790121KR7VCCP21 P22 P23P20 图 7 显示电路 按键电路设计 按键电路是用来实现调节设定报警温度的上下限和查看上下报警温度的功能。 电路原理图如图 8 所示。 S3减键S2加键S1设置键P10 P13 P16 图 8 按键电路原理图 报警电路设计 报警电路是在测量温度大于上限或小于下限时提供报警功能的电路。 该电路是由一个蜂鸣器和一个红色的发光二极管组成,具体的电路如图 9 所示。 Q39012VCC10KR3蜂鸣器1KR1VCCD1P34P35 图 9 报警电路原理图 继电器模块介绍 继电器模块是由由一个 PNP 型的三极管 9015 驱动。 当输入低电平时三极管导通,继电器吸合,从而控制外围器件。 电路图如图 10所示: Q49015VCC10KR5P35K1继电器 图 10 继电器电路图 3 软件设计 DS18B20 程序设计 DS18B20 传感器操作流程 根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤: • 每一次读写之前都要对 DS18B20 进行复位操作 • 复位成功后发送一条 ROM 指令 • 最后发送 RAM指令 这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500μ s,然后释放,当 DS18B20 收到信号后等待 16~ 60μ s 左右,后发出 60~ 240μ s 的存在低脉冲,主 CPU 收到此信号表示复位成功。 DS18B20 的操作流程如图 31 所示。 如图 31 DS18B20 的操作流程 DS18B20 传感器的指令表 DS18B20 传感器的操作指令如表 31 所示。 传感器复位后向传感器写相应的命令才能实现相应的功能。 表 31 DS18B20 的指令表 指 令 指令代码 功 能 读 ROM 0x33 读 DS1820 温度传感器 ROM 中的编码(即64 位地址) 符合 ROM 0x55 发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。 搜索 ROM 0xF0 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。 为操作各器件作好准备。 跳过 ROM 0xCC 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。 适用于单片工作。 告警搜索命令 0xEC 执行后只有温度超过设定值上限或下限的片子才做出响应。 温度变换 0x44 启动 DS1820 进行温度转换, 12 位转换时最长为 750ms( 9 位为 )。 结果存入内部 9 字节 RAM 中。 读暂存器 0xBE 读内部 RAM中 9 字节的内容 写暂存器 0x4E 发出向内部 RAM的 4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 0x48 将 RAM 中第 3 、 4 字节的内容复制到EEPROM中。 重调 EEPROM 0xB8 将 EEPROM 中内容恢复到 RAM 中的第 3 、4 字节。 读供电方式 0xB4 读 DS1820 的供电模式。 寄生供电时DS1820发送 “ 0 ” ,外接电源供电 DS1820发送 “ 1 ”。 DS18B20 传感器的初始化时序 DS18B20 传感器为单总线结构器件,在读写操作之前,传感器芯片应先进性复位操作也就是初始化操作。 DS18B20 的初始化时序如图 10 所示。 首先控制器拉高数据总线,接着控制器给数据总线一低电平,延时 480μ s,控制器拉高数据总线,等待传感器给数据线一个 60240μ s 的低电平,接着上拉电阻将数据线拉高,这样才初始化完成。 图 10 DS18B20 初始化时序 DS18B20 传感器的读写时序 DS18B20 传感器的读写操作是在传感器初始化后进行的。 每次操作只能读写一位。 当主机把数据线从高电平拉至低电平,产生写时序。 有两种类型的写时序:写“ 0”时序,写“ 1”时序。 所有的时序必须有最短 60μ s 的持续期,在各个写周期之间必须有最短 1μ s 的恢复期。 在数据总线由高电平变为低电平之后, DS18B20 在 15μ s 至 60μ s 的时间间隙对总线采样,如果为“ 1”则向 DS18B20 写“ 1”, 如果为“ 0”则向 DS18B20 写“ 0”。 如图 32 的上半部分。 对于主机产生写“ 1”时序时,数据线必须先被拉至低电平,然后被释放,使数据线在写时序开始之后 15μ s 内拉至高电平。 对于主机产生写“ 1”时序时,数据线必须先被拉至低电平,且至少保持低电平 60μ s。 在数据总线由高电平变为低电平之后,数据线至少应保持低电平 1μ s,来自 DS18B20 的输出的数据在下降沿 15μ s 后有效。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。