datasheet真的是得看看啊,比如DS18B20,不然程序都不好写,美国DALLAS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即与单片机接口仅需要一个IO口,无需任何外部原件,直接将温度转换为数字信号,以数字码方式串行输出,从而大大简化了传感器与微处理器的接口。

  DS18B20在寄生电源方式下可由数据线供电,在使用中不需要任何外围元件,全部传感原件及转换电路集成在形如一只三极管的集成电路上。

  目前常用的单片机与外设之间进行数据传输的串行总线主要有IIC,SPI和SCI总线,期中IIC总线以同步串行二线方式进行通信(一条时钟总线,一条数据总线),SPI总线则以同步串行三线方式进行通信(一条时钟总线,一条数据输入总线,一条数据输出总线),而SPI总线以异步串行方式进行通信(一条数据输入总线,一条数据输出总线)。而DS18B20不同,单总线适用于单主机系统,能够控制一个或者多个从机设备。

  DS18B20的工作原理是最重要的拉,它对时序有很严格的要求,要根据DS18B20的指令来写,如下面的ROM FUNCTIONS FLOW CHART

INITIALIZATION        工作原理
All transactions on the 1-Wire bus begin with an initialization sequence. The initialization sequence
consists of a reset pulse transmitted by the bus master followed by presence pulse(s) transmitted by the
slave(s).
The presence pulse lets the bus master know that the DS18B20 is on the bus and is ready to operate. For
more details, see the “1-Wire Signaling” section.

一,Read ROM [33h]

二,Match ROM [55h]

三,Skip ROM [CCh]

四,Search ROM [F0h]

五,Alarm Search [ECh]

而最重要的就是时序图了,

一,初始化

1,将数据线置高电平1

2,延时(要求不高,尽可能短)

3,数据线拉到低电平0

4,延时750us,(该时间范围可在480~960us)

5,数据线拉到高电平1

6,延时等待。如果初始化成功则在15~60ms之间产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是应该注意不能无限延时,其延时的时间从发出高电平算起(第5步骤)最少要480us。

二,DS18B20写数据

1,数据总线先置低电平为0

2,延时确定的时间为15us

3,按从低位到高位的顺序发送数据(一次只能发送一位)

4,延时时间为45us

5,将数据线拉到高电平为1

6,重复1~5的步骤

7,最后将数据线拉高到1

三,DS18B20读数据

1,将数据总线拉高到1

2,延时2us

3,将数据总线拉低到0

4,延时6us

5,将数据总线拉高到1

6,延时4us

7,读数据线的状态得到一个状态位,并进行数据处理

8,重复1~7,直到读取完最后一个字节。

  关于如何使用DS18B20简述概括一下,但是写程序还是得注意很多东西呀,,先这样啦。。。

使用DS18B20设计温控系统的更多相关文章

  1. 10、ERP设计之系统基础管理(BS)- 平台化设计

    ShareERP 2013-09-03 ERP业务平台化是每个软件提供商必须要进行的趋势,传统定制化路线已死,不能走定制化的老路了.以往最大问的题是不能累积和沉淀技术及提升项目业务管理能力,其次是管理 ...

  2. 架构设计:系统存储(24)——数据一致性与Paxos算法(中)

    (接上文<架构设计:系统存储(23)--数据一致性与Paxos算法(上)>) 2-1-1. Prapare准备阶段 首先须要介绍几个在Acceptor角色上须要被持久化保存的数据属性: P ...

  3. 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)

    (接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...

  4. 架构设计:系统间通信(20)——MQ:消息协议(下)

    (接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性.并为各位读者介绍了Stomp协议和XMPP协议. 这两种协 ...

  5. ERP设计之系统基础管理(BS)-日志模块设计(转载)

    原文地址:8.ERP设计之系统基础管理(BS)-日志模块设计作者:ShareERP 日志模块基本要素包括: 用户会话.登录.注销.模块加载/卸载.数据操作(增/删/改/审/弃/关等等).数据恢复.日志 ...

  6. 架构设计:系统间通信(34)——被神化的ESB(上)

    1.概述 从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词.我们还将在其中为读者阐述什么情况下应该使用ESB技术.接下来,为了加深读 ...

  7. Java生鲜电商平台-电商促销业务分析设计与系统架构

    Java生鲜电商平台-电商促销业务分析设计与系统架构 说明:Java开源生鲜电商平台-电商促销业务分析设计与系统架构,列举的是常见的促销场景与源代码下载 左侧为享受促销的资格,常见为这三种: 首单 大 ...

  8. Redis系列六 - 浅谈如何设计秒杀系统

    前言 设计一个系统之前,我们肯定要先确认系统业务场景是怎样的,下面就以某电商平台上的秒杀活动为场景,一起来探讨一个秒杀系统改如何去设计. 场景 我们现在要卖100件纸尿布,按照系统的用户量及以往经验来 ...

  9. 【python】Leetcode每日一题-设计停车系统

    [python]Leetcode每日一题-设计停车系统 [题目描述] 请你给一个停车场设计一个停车系统.停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位. 请你实现 Parki ...

随机推荐

  1. 2016CCPC 中南地区邀请赛 A 矩阵快速幂

    A A^n=A^(n%2016)%7; #include <iostream> #include <cstdio> #include <cstring> #incl ...

  2. PHP与MySQL动态网站开发1

    PHP内嵌在HTML中,置于 <?php ?> 标签内 一般php文件扩展名.php 在body结算标签之前 对于远程服务器,可以用ftp工具传程序 打印语句 echo'Hello Wor ...

  3. Linux 下文件名乱码(无效的编码)的解决办法

    文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码 不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码. ...

  4. 深入理解Linux的系统调用【转】

    一. 什么是系统调用 在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的.功能十分强大的一系列的函数.这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一 ...

  5. 自己安装的几个Eclipse插件

    http://eclipsenotepad.sourceforge.net This plugin has the simple objective to let developers write s ...

  6. 将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

    http://wangye.org/blog/archives/845/ 最近又开始折腾起Raspberry Pi来了,因为某处上网需要锐捷拨号,于是我就想能不能让我的树莓派代劳,当然首先要将其改造为 ...

  7. Java持久化存储对象Properties的方法list、store、load

    package FileDemo; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStrea ...

  8. [iOS基础控件 - 6.4] 汽车品牌展示 Model嵌套/KVC/TableView索引

    A.需求 1.使用汽车品牌名称头字母为一个Model,汽车品牌为一个Model,头字母Model嵌套品牌Model 2.使用KVC进行Model封装赋值 3.展示头字母标题 4.展示索引(使用KVC代 ...

  9. lazyload 图片延迟加载

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. mac下8080端口到80端口的转发

    MAC OS 本质上还是 Unix 系统, Unix 系统大多默认情况下非root用户是无法使用小于1024的常用端口的.这时候如果你开发中需要在普通用户下用到80端口, 比如 tomcat, 比如 ...