版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ds18b20原理及程序编写(一)概述ds18b20为单总线12位(二进制)温度读数。内部有64位唯一的id编码。工作电压从3.05.5v。测量温度范围从-55125。最高0.0625分辩率。其内部结构如下图所示。ds18b20的核心功能是直接数字温度传感器。温度传感器可以配置成9、10、11和12位方式。相应的精度分别为:0.5、0.25、0.125和0.0625。默认的分辨率为12位。ds18b20在空闲低功耗状态下加电(寄生电源工作方式)。主机必须发出convert t 44h命令使其对测量温度进行a-d转换。接下来进行采集转换,结果存于两字节高速温度寄存器并返回到空闲低功耗状态。如果d
2、s18b20在外部vdd供电方式下,单片机可以在发出convert t 命令并总线为1时(总线为0表示正在转换)发出“read time slots”命令。ds18b20芯片内部共有8字节的寄存器,其中地址编号0,1为温度寄存器,里面存储着ds18b20温度转换后的ad值,其格式如表1所示。地址编号2,3为温度报警寄存器,里面为报警设定值,地址编号4为配置寄存器(这三个寄存器在读取之前请使用“重新调入eeprom”命令将存储在eeprom里的内容调出,同样,在向温度报警寄存器里写入内容后,也要使用“复制到存储器”命令48h将温度报警寄存器内的内容存入eeprom当中,以免掉电丢失数据)。ds1
3、8b20内部寄存器映射如下图所示。配置寄存器的格式如表2和表3所示。ds18b20内部寄存器映射表1 温度寄存器的格式bit7bit6bit5bit4bit3bit2bit1bit0ls byte232221202-12-22-32-4bit7bit6bit5bit4bit3bit2bit1bit0ms bytesssss262524表2 配置寄存器的格式bit7bit6bit5bit4bit3bit2bit1bit0配置寄存器0r1r011111表3 温度分辨率配置r1r0分辩率最大转换时间009-bit93.75ms(tconv/8)0110-bit187.5ms(tconv/4)1011
4、-bit375ms(tconv/2)1112-bit750ms(tconv)ds18b20使用单总线工作方式,其通信协议以电平的高平时间作为依据,其基本时序有复位时序,写时序、读时序。/*/* 文件名:ds18b20.c/* 说 明:ds18b20驱动程序文件/-/* 单位:/* 创建人:张雅/* 创建时间:2010-01-20/* 联系方式:qq:276564402/* 版 本:v1.0/-/*/-/* 芯 片:at89s52/* 时 钟:11.0592mhz/* 其 它:这个文档为18b20的驱动程序,引用了数码管的驱动。/*使用时请注明出处。/*#include #ifndef ucha
5、r#define uchar unsigned char#endif#ifndef uint#define uint unsigned int#endifsbit dq = p10; /ds18b20单总线引脚定义#include ds18b20.h#include led8.h/*/函数功能:11us延时/输入参数:t :延时长度,单位11us/输出参数:无/*void _delay(uint t) /11us for(;t0;t-);/*/函数功能:ds18b20复位操作函数/输入参数:无/输出参数:为1说明器件不存在,为0说明器件存在/*uchar _ds18b20reset(void)
6、 dq = 1; _delay(1); dq = 0; _delay(50); dq = 1; _delay(10); if(!dq) _delay(50); return 0; else return 1; /*/函数功能:ds18b20写操作函数/输入参数:待写入的数据/输出参数:无/*void _ds18b20write(uchar d) uchar i; for(i=0;i=1; /*/函数功能:ds18b20读操作函数/输入参数:无/输出参数:读取的数据/*uchar _ds18b20read(void) uchar i,d; d=0; for(i=0;i=1; _delay(1);
7、 dq = 1; if(dq) d|=0x80; /最低位先接收到 _delay(4); dq = 1; return d;/*/函数功能:ds18b20读寄存器操作函数/输入参数:无/输出参数:读取的温度数据/ 高8位为温度值整数部分/ 低8位为温度值小数部分/*uint ds18b20readtemp(void) static uchar th,tl; uchar *pp; uint tem; static enum _ss1,s11,s12,s2,s3,s4s; bit eaflag; eaflag = ea; ea = 0; switch(s) case s1: while(_ds18
8、b20reset() /无芯片连接时,显示“no-18b20” pp = led8getram(); *pp+ =22; *pp+ =0; *pp+ =11; *pp+ =1; *pp+ =8; *pp+ =23; *pp+ =2; *pp+ =0; led8display(); s=s11; break; case s11: _ds18b20write(0xcc); /跳过rom操作命令 _ds18b20write(0xbe); /读中间寄存器 s=s12; break; case s12: tl = _ds18b20read(); th = _ds18b20read(); th = (th4); tl = (tl&0x0f); s=s2; break; case s2: _ds18b20reset(); _ds18b20write(0xcc); /跳过rom命令 _ds18b20w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书补充工作制度
- 人力部工作制度
- 产业长工作制度
- 两研会工作制度
- 信息办工作制度
- 双段长工作制度
- 保教员工作制度
- 健康证工作制度
- 2026 年中职港口机械运行与维护(起重机操作)试题及答案
- 家庭人身保险投保方案
- 油气集输概论天然气处理与轻烃回收课件
- 社会责任培训精
- 部编版语文二年级下册第2单元核心素养教案
- 9F级立式余热锅炉模块吊装工法
- 《卢氏字辈总汇》
- 第三单元名著导读《经典常谈》课件-部编版语文八年级下册
- (完整)WORD-版本核心高考高频688词汇(高考高频词汇)
- MCS-51单片机技术项目驱动教程C语言第二版牛军课后参考答案
- 2018年河北公务员行测考试真题(含答案)
- GB/T 700-2006碳素结构钢
- 大型工业园区规划方案
评论
0/150
提交评论