基于ds18b20温度传感器的数字温度计设计毕业设计内容摘要:

7 如 下图,使用外部电源,可以减少程序复杂程度。 DS18B20 特性:  独特的单线接口仅需一个端口进行通讯  简单的多点分布应用  无需外部器件  可通过数据线供电  零待机功耗  测温范围 55~+125℃  温度以 12 位数字量读出  温度数字量转换时间 750ms( 12 位)  用户可定义的非易失性温度警报设置  报警搜索命令识别并超过程序限定温度(温度报警条件)的器件  应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 DS18B20 原理 DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,管脚排列如图 32 所示。 图中GND 为地, DQ 为数据输入 /输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平, Vcc 是外部 +5V 电源端,不用时应接地, NC 为空脚。 8 图 32 DS18B20的外部结构 DS18B20 内部主要包括寄生电源、温度传感器、 64 位激光 ROM 单线接口、存放中间数据的高速暂存器(内含便笺式 RAM),用于存储用户设定的温度上下限值的 TH 和TL 解发器存储与控制逻辑、 8 位循环冗余校验码( CRC)发生器等七部分,内 部结构如图 33。 图 33 DS18B20内部结构 寄生电源由二极管 VD VD2 和寄生电容 C 组成,电源检测电路用于判定供电方式,寄生电源供电时, VDD 端接地,器件从单线总线上获取电源,在 DQ 线呈低电平时,改由C上的电压 Vc 继续向器件供电。 该寄生电源有两个优点:第一,检测远程温度时无需本 9 地电源;第二,缺少正常电源时也能读 ROM。 若采用外部电源 VDD,则通过 VD2 向器件供电。 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码,如图 34所示。 图 34 64 位 ROM 的结构 开始 8位( 28H)是产品类型标号,接着的 48 位是 DS18B20 自身的序列号,最后 8位是前面 56 位的循环冗余校验码( CRC=X8+X5+X4+1)。 光刻 ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 主机操作ROM 的命令有五种,如表 31 所示。 表 31 DS18B20的 ROM命令 指令 说明 读 ROM( 33H) 读 DS1820的序列号 匹配 ROM( 55H) 继读完 64位序列号的一个命令,用于多个 DS1820时定位 跳过 ROM( CCH) 此命令执行后的存储器操作将针对在线的所有 DS1820 搜 ROM( F0H) 识别总线上各器件的编码,为操作各器件作好准备 报警搜索( ECH) 仅温度越限的器件对此命令作出响应 DS18B20 测量温度时使用特有的温度测量技术。 其内部的低温度系数振荡器能产生稳定的频率信号 f0,高温度系数振荡器则将被 测温度转换成频率信号 f。 当计数门打开时, DS18B20 对 f0 计数,计数门开通时间由高温度系数振荡器决定。 芯片内部还有斜率累加器,可对频率的非线性予以被偿。 测量结果存入温度寄存器中。 一般情况下的温度值应为 9 位(符号点 1 位),但因符号位扩展成高 8 位,故以 16 位被码形式读出,表 32 给出了温度和数字量的关系。 10 表 32 DS18B20 温度数字对应关系表 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 E2RAM,后者存放高温度和低温度触发器 TH、 TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低 8位,第二个字节是温度的高 8 位,第三个和第四个字节是 TH、 TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部计算,第九个字节是冗余检验字节,如表 33 所示。 表 33 DS18B20暂存器分布 寄存器内容 字节地址 温度最低数字位 0 温度最高数字位 1 高温限制 2 低温限制 3 保留 4 保留 5 计数剩余值 6 每度计数值 7 CRC校验 8 该字节各位的意义为 TM R1 R0 1 1 1 1 1 ,低五位一直都是 1 , TM是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式,在 DS18B20 出厂时该位被设置为 0,用户不用改动, R1和 R0 用来设置分辨率, DS18B20 出厂时被设置为 12 位,分辨率设置如表 34所示。 11 表 34 分辨率设置表 R1 R0 分辨率 温度最大转换时间 0 0 9位 0 1 10位 1 0 11位 375ms 1 1 12位 750ms 根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500 微秒,然后释放, DS18B20 收到信号后等待 16~ 60微秒左右,后发出 60~ 240 微秒的存在低脉冲,主 CPU收到此信号表示复位成功。 ROM 命令令和暂存器的命令如表 31和表 35。 表 35 DS18B20暂存器的命令 指令 说明 温度转换( 44H) 启动在线 DS1820做温度 A/D转换 读数据( BEH) 从高速暂存器读 9bits温度值和 CRC值 写数据( 4EH) 将数据写入高速暂存器的第 2和第 3字节中 复制( 48H) 将高速暂存器中第 2和第 3字节复制到 EERAM 读 EERAM( B8H) 将 EERAM内容写入高速暂存器中第 2和第 3字节 读电源供电方式( B4H) 了解 DS1820的供电方式 DS18B20 电路连接 由于 DS18B20 工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条 I/ O线与 DS18B20 的数 据总线相连即可,如图 35 所示。 图 35 DS18B20电路 液晶显示模块 HS1602 采用标准的 16 脚接口,其引脚如表 36 所示,其中 VSS 为地电源, VDD 接5V 正电源, V0 为液晶显示模块对比度调整端,接正电源时对比度最弱,接地电源时对 12 比度最高,可以通过一个 10K 的电位器调整对比度。 RS 为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。 RW 为读写信号线,高电平时进行读操作,低电平时进行写操作,当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW为高电平时可以读 忙信号,当 RS为高电平 RW 为低电平时可以写入数据。 E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 LEDA 和 LEDK 为背光电源,LEDA 接 5V正电源, LEDK 接 GND。 D0~D7 为 8 位双向数据线。 表 36 接口信号说明 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I/O 3 VL 液晶显示偏压信号 11 D4 Data I/O 4 RS 数据 /命令选择端( H/L) 12 D5 Data I/O 5 R/W 读 /写选择端( H/L) 13 D6 Data I/O 6 E 使能信号 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正极 8 D1 Data I/O 16 BLK 背光源负极 用 HS1602 液晶显示模块显示字符或字符串之前必须对其进行初始化, HS1602 液晶显示模块的初始化流程如下:  初始化过程(复位过程)  延时 15ms  写指令 38H(不检测忙信号)  延时 5ms  写指令 38H(不检测忙信号 )  延时 5ms  写指令 38H(不检测忙信号)  (以后每次写指令、读 /写数据之前均需检测忙信号)  写指令 38H:显示模式设置  写指令 38H:显示关闭  写指令 01H:显示清屏  写指令 06H:显示光标移动设置  写指令 0CH:显示开关及光标位置 13 HS1602 液晶模块内部的字符发生存储器( CGROM)已经存储了 128 个不同的点阵字符图形,如表 37所示。 表 37 CGROM 中的字符代码与图形对应关系 高低 0000 0010 0011 0100 0101 0110 0111 0000 CGRAM 0 @ P \ p 0001。 1 A Q a q 0010 ” 2 B R b r 0011 3 C S c s 0100 $ 4 D T d t 0101 % 5 E U e u 0110 amp。 6 F V f v 0111 ’ 7 G W g w 1000 ( 8 H X h x 1001 ) 9 I Y i y 1010 * : J Z j z 1011 +。 K [ k { 1100 , L 165。 l | 1101 = M ] m } 1110 . N ^ n → 1111 / ? O _ o ← HS1602 液晶模块内部的控制器共有 11条控制指令,如表 38所示。 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 表 38 HS1602液晶模块内部的控制器控制指令 指令 指令码 说明 RS R/W D0 D1 D2 D3 D4 D5 D6 D7 清屏 0 0 0 0 0 0 0 0 0 1 清显示 ,光标回位 光标返回 0 0 0 0 0 0 0 0 1 * ADD=0时 ,回原位 输入方式 0 0 0 0 0 0 0 1 I/D S 决定是否移动以及移动方向 显示开关 0 0 0 0 0 0 1 D C B D显示 ,C光标 ,B光标闪烁 移位 0 0 0 0 0 1 S/C R/L * * 移动光标及整体显示 功能设置 0 0 0 0 1 DL N F * * DL数据位数 ,L行数 ,F字体 CGRAM地址设置 0 0 0 1 A5 A4 A3 A2 A1 A0 设置 CGRAM的地址 DDRAM地址设置 0 0 1 A6 A5 A4 A3 A2 A1 A0 设置 DDRAM的地址 忙标志 /读地址计数器 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读出忙标志位 (BF)及 AC值 CGRAM/DDRAM数据写 1 0 写数据 将内容写入 RAM中 CGRAM/DDRAM数据读 1 1 读数据 将内容从 RAM中读出 14 HS1602 液晶显示模块可以和单片机 AT89C51 直接接口,电路如图 36所示。 图 36 AT89S52和 HS1602液晶模块连接电路 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表 39 是 HS1602 的内部显示地址。 即第 1 行的显示地址应为 80H+显示位置,第 2 行的显示地址应为 C0H+显示位置。 表 39 HS1602的内部显示地址 显示位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 第 1行 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 第 2行 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF 存储模块 AT24C08 结构 本方案利用 AT24C08 芯片进行存储,实现温度测量存储与再现。 AT24C08 是 ATMEL公司生产的串行 EEPROM( 8K, 1024 8),直接通过 I2C 总线的 SDA 中的器件地址码变更来变换读写功能,当从串行时钟线 SCL 输入正边缘时钟信号时,数据进入每一个EEPROM 器件,在负边缘时数据从每个器件中输出 ,串行数据线 SDA 双向输送时,该脚用漏极开路驱动, 3脚作器件地址输入。 其外部引脚及引脚功能如图 37 所示。 15 图 37 AT24C08外部引脚及引脚功能 AT24C08 内部主要由 EEPROM。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。