使用DS18B20设计温控系统
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设计温控系统的更多相关文章
- 10、ERP设计之系统基础管理(BS)- 平台化设计
ShareERP 2013-09-03 ERP业务平台化是每个软件提供商必须要进行的趋势,传统定制化路线已死,不能走定制化的老路了.以往最大问的题是不能累积和沉淀技术及提升项目业务管理能力,其次是管理 ...
- 架构设计:系统存储(24)——数据一致性与Paxos算法(中)
(接上文<架构设计:系统存储(23)--数据一致性与Paxos算法(上)>) 2-1-1. Prapare准备阶段 首先须要介绍几个在Acceptor角色上须要被持久化保存的数据属性: P ...
- 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)
(接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...
- 架构设计:系统间通信(20)——MQ:消息协议(下)
(接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性.并为各位读者介绍了Stomp协议和XMPP协议. 这两种协 ...
- ERP设计之系统基础管理(BS)-日志模块设计(转载)
原文地址:8.ERP设计之系统基础管理(BS)-日志模块设计作者:ShareERP 日志模块基本要素包括: 用户会话.登录.注销.模块加载/卸载.数据操作(增/删/改/审/弃/关等等).数据恢复.日志 ...
- 架构设计:系统间通信(34)——被神化的ESB(上)
1.概述 从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词.我们还将在其中为读者阐述什么情况下应该使用ESB技术.接下来,为了加深读 ...
- Java生鲜电商平台-电商促销业务分析设计与系统架构
Java生鲜电商平台-电商促销业务分析设计与系统架构 说明:Java开源生鲜电商平台-电商促销业务分析设计与系统架构,列举的是常见的促销场景与源代码下载 左侧为享受促销的资格,常见为这三种: 首单 大 ...
- Redis系列六 - 浅谈如何设计秒杀系统
前言 设计一个系统之前,我们肯定要先确认系统业务场景是怎样的,下面就以某电商平台上的秒杀活动为场景,一起来探讨一个秒杀系统改如何去设计. 场景 我们现在要卖100件纸尿布,按照系统的用户量及以往经验来 ...
- 【python】Leetcode每日一题-设计停车系统
[python]Leetcode每日一题-设计停车系统 [题目描述] 请你给一个停车场设计一个停车系统.停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位. 请你实现 Parki ...
随机推荐
- Xcode中Info.plist文件各个键的作用说明【搜藏】
Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果⽤户所在地没有相应的语言资源,则用这个key的v ...
- 【原】Storm及特点
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- while (cin>>str)退出死循环
今天在练习的时候突然发现了这个问题,百度之感觉还挺常见的,故记之! //题目描述 // //写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串. // //输入描述 : //输入一个 ...
- 3.1 全局存储带宽与合并访问 -- Global Memory(DRAM) bandwidth and memory coalesce
全局存储带宽(DRAM) 全局内存是动态随机访问的方式访问内存.我们希望访问DRAM的时候非常快,实际情况是DRAM中出来的数据非常非常慢,这就好比,理想状态是泄洪,水倾巢而出,气势宏伟,实际取水却像 ...
- grails2.3.11第一课
以指令的方式Getting Started 1. 创建一个项目 grails create-app HelloGrails 2. 因为我环境变量中配置的jdk是1.8的,所以我要把这个项目搞到IDEA ...
- 集合框架Map之KeySet方法的使用
package cn.itcast.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; im ...
- [iOS基础控件 - 4.4] 进一步封装"APP列表”,初见MVC模式
A.从ViewController分离View 之前的代码中,View的数据加载逻辑放在了总的ViewController中,增加了耦合性,应该对控制器ViewController隐藏数据加载到Vie ...
- Tokumx 安装指南(做法如同MongoDB)
安装说明系统环境:Centos-6.3安装软件:mongodb-linux-x86_64-2.2.2.tgz下载地址:http://www.mongodb.org/downloads安装机器:192. ...
- cocos2d-x CCSpriteBatchNode
转自:http://www.cnblogs.com/jiackyan/archive/2013/04/14/3019880.html 1.先说下渲染批次:这是游戏引擎中一个比较重要的优化指标,指的是一 ...
- IOS 横屏中添加UIImagePickerController获取系统图片
今天写ipad的项目,然后需要调用系统相册选择图片,然后用了UIImagePickerController ,崩溃了,后来查了一下,UIImagePickerController只支持竖屏,但是... ...