ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:237.27KB ,
资源ID:6202655      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6202655.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DS18B20的温度测量模块设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DS18B20的温度测量模块设计.docx

1、基于DS18B20的温度测量模块设计基于DS18B20的温度测量模块设计1. 设计目的(1) 掌握DS18B20数字温度传感器的工作原理及使用方法(2) 掌握对DS18B20转换数据进行处理的方法(3) 学习用数码管显示复杂数据的方法2. 设计任务 用AT89S52控制DS18B20,读取数据,并对DS18B20转换后的数据进行处理,最后在数码管上显示DS18B20测出的温度。要求使用6位数码管显示,最高位为符号位,如果温度值为正,不显示,如果温度为负,则显示负号;第24位显示温度值的整数部分,并在第4位数据上显示小数点;第5位显示一位小数,最低位显示摄氏度符号“C”。(1) 基本要求 用AT

2、89C51控制DS18B20,读取数据 对DS18B20转换后的数据进行处理,转换成实际温度值 将符号位,整数值和小数值分别存放在特定的存储单元中.(2) 进阶要求 在数码管上显示DS18B20测出的温度,只要求显示出温度值的整数部分及符号位。(3) 高级要求 使用6位数码管显示测得的温度 最高位为符号位,如果温度值为正,不显示,如果温度为负,则显示负号 第24位显示温度值的整数部分,并在第4位数据上显示小数点 第5位显示一位小数 最低位显示摄氏度符号“C”3. 设计原理(1) 系统结构图图4-1 基于DS18B20的测温系统结构图(2) DS18B20数字温度传感器概述 DS18B20数字温

3、度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点: 只要求一个端口即可实现通信。 在DS18B20中的每个器件上都有独一无二的序列号。 实际应用中不需要外部任何元器件即可实现测温。 测量温度范围在55。C到125。C之间。 数字温度计的分辨率用户可以从9位到12位选择。 内部有温度上、下限告警设置。TO92封装的DS18B20的引脚排列见图4-2,其引脚功能描述见表4-1。图4-2 DS18B20引脚结构图(底视图)表4-1DS18B20详细引

4、脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(3) DS18B20的内部结构DS18B20的内部框图如图4-3所示。64位ROM存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6和7字节器件内部保留使用。第八字节含有循环

5、冗余码(CRC )。使用寄生电源时,DS18B20不需额外的供电电源;当总线为高电平时,功率由单总线上的上拉电阻通过DQ引脚提供;高电平总线信号同时也向内部电容CPP充电,CPP在总线低电平时为器件供电。图4-3 DS18B20的内部框图DS18B20加电后,处在空闲状态。要启动温度测量和模拟到数字的转换,处理器须向其发出Convert T 44h 命令;转换完后,DS18B20回到空闲状态。温度数据是以带符号位的16-bit补码存储在温度寄存器中的,如图4-4所示:图4-4 温度寄存器格式符号位说明温度是正值还是负值,正值时S=0,负值时S=1。表4-2给出了一些数字输出数据与对应的温度值的

6、例子。表4-2 温度/数据的关系(4) DS18B20的命令序列 初始化 ROM命令跟随着需要交换的数据; 功能命令跟随着需要交换的数据。 访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应主机(除了Search ROM 和Alarm Search这两个命令,在这两个命令后,主机都必须返回到第一步)。1 初始化:DS18B20所有的数据交换都由一个初始化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。当DS18B20发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。 ROM命令:ROM命令通过每个器件6

7、4-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表4-3所示,每个ROM命令都是8 bit长。表4-3 DS18B20 ROM命令 命令描述协议此命令发出后1-Wire总线上的活动SEARCH ROM识别总线上挂着的所有DS18B20的ROM码F0h所有DS18B20向主机传送ROM码READ ROM当只有一个DS18B20挂在总线上时,可用此命令来读取ROM码33hDS18B20向主机传送ROM码MATCH ROM主机用ROM码来指定某一DS18B20,只有匹配的DS18B20才会响应55h主机向总线传送一个ROM码SKIP RO

8、M用于指定总线上所有的器件CCh无ALARM SEARCH与SEARCH ROM命令类似,但只有温度超出警报线的DS18B20才会响应ECh超出警报线的DS18B20向主机传送ROM码 功能命令:主机通过功能命令对DS18B20进行读/写Scratchpad存储器,或者启动温度转换。DS18B20的功能命令如表4-4所示。表4-4 DS18B20功能命令命令描述协议此命令发出后1-Wire总线上的活动温 度 转 换 命 令Convert T开始温度转换44hDS18B20向主机传送转换状态(寄生电源不适用)存 储 器 命 令Read Scratchpad读暂存器完整的数据BEhDS18B20向

9、主机传送总共9字节的数据Write Scratchpad向暂存器的2、3和4字节写入数据(TH, TL和精度)4Eh主机向DS18B20传送3个字节的数据Copy Scratchpad将TH, TL和配置寄存器的数据复制到EEPROM48h无Recall E2将TH, TL和配置寄存器的数据从EEPROM中调到暂存器中B8hDS18B20向主机传送调用状态Read Power Supply向主机示意电源供电状态B4hDS18B20向主机传送供电状态(5) DS18B20的信号方式DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1

10、、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。1 初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,5k的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线60s240s产生应答脉冲。初始化波形如图4-5所示。 图4-5 初始化脉冲 读和写时序在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。在每一个时序,总线只能传输一位数据。读/写时序如图3-6

11、所示。 写时序存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s的恢复时间。两种写时序均以主机拉低总线开始。产生写1时序:主机拉低总线后,必须在15s内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60s)。在写时序开始后的15s60s期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。 读时序DS18B20只能在主机发出读时序时才能

12、向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15s内有效,因此主机必须在读时序开始后的15s内释放总线,并且采样总线状态。图4-6 DS18B20读/写时序图DS18B20 在使

13、用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机1 位I/O线相连,且单片机的1 位I/O 线可挂接多个DS18B20 ,就可实现单点或多点温度检测。(6) 小数的显示方法 DS18B20转换后的数据有四位二进制小数,精度为0.0625,可连续表示一位十进制小数,因此在数码显示时,只显示1位小数。在对四位二进制小数进行处理时,可先计算出这四位二进制小数对应的四位十进制小数,然后对这四位十进制小数舍弃后三位,只保留一位。在编写程序时,可编制一个反映二进制小数与显示码对应关系的表格,根据四位二进制小数的十六种不同情况查找对应的一位十进制小数的段码,具体映射关系如表4-5所示:表4-5 二进制小数与显示码的对应关系二进制小数位四位十进制小数保留一位对应显示码(共阴)00000.000003FH00010.0625106H00100.1250106H00110.187525BH01000.250034FH01010.312534FH01100.3750466H01110.4375466H10000.500056DH10010.562567DH10100.625067DH10110.6875707H11000.750087FH11010.812587FH11100.875096FH11110.937596FH4. 程序设计流程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1