DS18B20温度计制作详细全过程
使用DS18B20制作电子温度计

使用DS18B20制作电子温度计——中北大学:马政贵本制作中使用单总线数字温度传感器DS18B20进行温度的测定,并通过51单片机控制1602液晶进行显示。
制作好的电子温度计如下图所示(显示当前温度为20.5摄氏度):第一部分:DS18B20的使用先介绍一下单总线的特点:单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
单总线通常要求外接一个约为 4.7K —10K 的上拉电阻,这样,当总线闲置时其状态为高电平。
再介绍一下DS18B20的特点:( 1 )采用单总线的接口方式,与微处理器连接时,仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高: DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范围内,精度为 ± 0.5°C 。
( 3 )在使用中不需要任何外围元件。
( 4 )支持多点组网功能:多个 DS18B20 可以并联在惟一的单线上,实现多点测温。
( 5 )供电方式灵活:DS18B20 可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。
( 7 )负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
DS18B20数字温度计的设计与实现

DS18B20数字温度计的设计与实现一、实验目的1.了解DS18B20数字式温度传感器的工作原理。
2.利用DS18B20数字式温度传感器和微机实验平台实现数字温度计。
二、实验内容与要求采用数字式温度传感器为检测器件,进行单点温度检测。
用数码管直接显示温度值,微机系统作为数字温度计的控制系统。
1.基本要求:(1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。
(2)用4位数码管来显示温度值。
(3)超过警戒值(自己定义)要报警提示。
2.提高要求(1)扩展温度范围。
(2)增加检测点的个数,实现多点温度检测。
三、设计报告要求1.设计目的和内容2.总体设计3.硬件设计:原理图(接线图)及简要说明4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法)四、数字温度传感器DS18B20由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
1.DS18B20性能特点DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM ,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。
2. DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH 和TL,高速暂存器。
64位光刻ROM 是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
64位ROM 结构图如图2所示。
不同的器件地址序列号不同。
DS18B20的管脚排列如图1所示。
#ds18b20可调温度控制器

自制可调温度控制器(附原理图和源程序>自制可调温度控制器近期我发现很多DIY或是电子爱好的朋友们比较关注电子温度控制器制作的文章,前面我也发过一篇AT89C2051控制的简单温度计制作的文章,但是因为电路比较简易,而且没有调温功能.应部分朋友的要求我在此转载一篇温正伟在无线电杂志上发表过的一款可以方便调节、设定温度的控制器。
1.功能介绍笔者设计的这一款温度控制器是使用仍是比较常用的DS18B20集成温度传感器,还是用七段数码管做显示,完成温度采集与处理控制的CPU仍是AT89C2051单片机,但该电路具有电路简单,制作起来也无需调试,安装好后就可以使用等方便DIY的优点。
该电路最大的特点是用可以直观方便的调节所要限定的温度值,温度值是用3个7段共阳极数码管显示的,上电后会显示当前的温度值,按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键时返回当前温度显示同时会对设定温度值进行保存,这个设定值会保存在DS18B20中,掉电后也不会丢失,下次上电时,单片机会自动读入上次的温度设定值。
长按设定键为关闭显示和温控,再次按下时功能再次打开。
电路中还设计了一路继电器控制,程序中设定超出设定温度时继电器被驱动吸合。
2.元器件背景及选用表一是元器件列表。
在这个电路中关键的两个元器件分别是单片机AT89C2051和温度传感传感芯片DS18B20。
AT89C2051具有2K的可多次擦写的FLASH存储器,有15个I/O口,用于做一些小型的控制显示和数据采集系统是很好的选择,本制作中2051单片机除要完成数据采集、处理、控制和显示的任务外,还要完按键值的采集、处理。
如果要用常规的数字加模拟电路实现起来就相对困难多了。
DS18B20是DALLAS半导体公司<现属MAXIM公司)设计生产的单总线数字温度传感器,单总线也就是说只用一根I/O引线完成数据的输入输出功能,所以它的体积很小,而且电压适用范围在3-5.5V,封装形式除有SO/uSO的8PIN贴片式,还有更方便的三极管形式的TO-92封装<封装形式和引脚说明请看图一)。
18b20流程图

写完8位数据?
数据右移
延时数微秒
结束
函数功能:从ds18b20读数据 函数名date>>=1;:readonechar 返回值:temp
开始
将数据线拉高,延时1微秒
将数据线拉低,延时1微秒
将数据线拉高,延时6微秒
数据右移
如果数据线=1,data和80H或,否则data和00H或
读完8位数据?
延时数微秒 返回读到的数据
将数据线拉高,延时6微秒
将数据线拉低,延时600微秒
Байду номын сангаас
释放数据线(拉高),延时30微秒
主机从数据线采样
延时数毫秒,返回采样值
函数功能:向ds18b20写数据 函数名:writeonechar 形式参数:dat
开始
将数据线拉高,延时1微秒
将数据线拉低(启动写功能)
将数据最低位写入数据线,延时30微秒
释放数据线,延时数微秒
以下是DS18b20的流程图
时序
• 1.首先启动 :打开测温功能(1.初始化2. 命令字) • 2.调用数值 :告诉18b20调温度值(0xbe) • 3.读温度 跳过rom (0xcc) 温度变换 (0x44)
函数功能:18b20的初始化 函数名:init-ds18b20 返回值:falg 开始
温度报警器ds18b20制作PPT

74HC373
型号 tPd PD 54S373/74S373 7ns 525mW 54LS373/74LS373 17ns 120mW 373 的输出端 O0~O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0~O7 为正常逻辑状态,可用 来驱动负载或总线。 当 OE 为高电平时,O0~O7 呈高阻态,即不驱动总线,也不为总线 的负载,但 锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平 时,O 被锁存在已建立的数据电平。 当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度 被改善 400mV。
1地 GND 2触发 3输出 4复位 5控制电压 6门限(阈值) 7放电 8电源电压Vcc
ULN2003应用电路及中文资料
概述 功率电子电路大多要求具有大电流输出能力, 以便于驱动各种类型的负载。功率驱动电路 是功率电子设备输出电路的一个重要组成部 分。
输入回路的电阻有差别,ULN2003是2.7k,简单讲2003适 5v,驱动灌入电流:500mA
ne555的作用介绍
Pin 1 (接地) -地线(或共同接地) ,通常被连接到电路共 同接地。 Pin 2 (触发点) -这个脚位是触发NE555使其启动它的时间 周期。触发信号上缘电压须大于2/3 VCC,下缘须低于1/3 VCC 。 Pin 3 (输出) -当时间周期开始555的输出输出脚位,移至 比电源电压少1.7伏的高电位。周期的结束输出回到O伏左右的 低电位。于高电位时的最大输出电流大约200 mA 。 Pin 4 (重置) -一个低逻辑电位送至这个脚位时会重置定时 器和使输出回到一个低电位。它通常被接到正电源或忽略不用。 Pin 5 (控制) -这个接脚准许由外部电压改变触发和闸限电 压。当计时器经营在稳定或振荡的运作方式下,这输入能用来改 变或调整输出频率。 Pin 6 (重置锁定) - Pin 6重置锁定并使输出呈低态。当这 个接脚的电压从1/3 VCC电压以下移至2/3 VCC以上时启动这个 动作。 Pin 7 (放电) -这个接脚和主要的输出接脚有相同的电流输 出能力,当输出为ON时为LOW,对地为低阻抗,当输出为OFF时 为HIGH,对地为高阻抗。 Pin 8 (V +) -这是555个计时器IC的正电源电压端。供应电 压的范围是+4.5伏特(最小值)至+16伏特(最大值)。
DS18B20数字温度计的设计的演示稿精品PPT课件

(a) 寄生电源工作方式
(b) 外接电源工作方式
7. 结 论
本设计以智能集成温度传感DS18B20为例, 介绍了基DS18B20传感器的数字温度计的设计, 该设计适用于人们的日常生活及环境温度不高 于125 ℃的温度的检测与控制。
以DS18B20温度传感器设计的数字温度计线 路简单、硬件少、成本低廉、软件设计简单等 优点,有着广阔的应用前景。尤其是其具有完 善的单总线通信协议,无需复杂、繁琐的布线, 只需3 根连线就能很容易地组成多点测温系统, 因此在工农业生产和科学研究中有着广阔的应 用前景。
设计任务及具体要求
一、设计任务: 设计一个以单片机为核心的温度测量系统 。
二、 具体要求: (1)测量温度值精度为±1℃。 (2)系统允许的误差范围为1℃以内。 (3)系统可由用户预设温度值,测温范围为-55 ℃ ~+125℃。 (4)超出预置值时系统会自动报警,即发光二极管 亮。 (5)系统具有数码显示功能,能实时显示设定温度 值和测得的实际温度值。
按键显示流程图
结论
DS18B20
设计简述
人们生活与环境温度息息相关,在工业生产过程中 需要实时测量温度,在工业生产中也离不开温度的测 量,因此研究温度的测量方法和控制具有重要的意义。
测量温度的关键是温度传感器,温度传感器的发展 经历了3个阶段:传统的分立式温度传感器、模拟集 成温度传感器、智能集成温度传感器。目前,国际上 新型温度传感器正从模拟式向数字式、从集成化向智 能化、网络化的方向发展。在此以智能集成温度传感 器DS18B20为例 ,介绍DS18B20数字温度计的设计。
表1
段名称 a b c d e f g dp
I/0 口名称 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
DS18B20工作过程及时序

DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。
以后计数器1每一个循环的预置数都由斜率累加器提供。
为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。
计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。
在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。
这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±,即0.25℃。
温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。
测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。
ds18b20程序设计傻瓜式讲解

ds18b20程序设计傻瓜式讲解
DS18B20 是一款数字温度传感器,可以直接读出被测温度,并采用 9 位数字量串行输出。
下面是一个简单的 DS18B20 程序设计讲解:
1. 初始化
在 DS18B20 通信过程中,首先需要初始化数据线,即将其置为高电平。
在初始化时,需要持续至少 480 微秒的高电平。
2. 跳过 ROM
在 DS18B20 中,每个传感器都有一个唯一的 ROM 序列号,可以通过跳过ROM 操作来避免对 ROM 进行操作。
具体操作是先发出一个低电平,然后持续至少 60 微秒的高电平。
3. 发送命令
在跳过 ROM 后,需要向传感器发送命令。
常用的命令有温度转换命令和读取温度命令。
温度转换命令是 0x44,读取温度命令是 0xBE。
4. 读取数据
在发送命令后,需要等待传感器响应。
传感器响应的标志是数据线上的低电平。
在低电平持续约 60-240 微秒后,数据线将变为高电平,此时可以开始读取数据。
每次读取一位数据后,需要将数据线置为低电平,等待传感器响应。
5. 数据解析
DS18B20 的数据由 9 位数字量组成,其中最高位是符号位。
如果最高位为0,则表示温度为正数;如果最高位为 1,则表示温度为负数。
其余 8 位为温度值,可以通过一定的计算公式将其转换为实际温度值。
以上就是 DS18B20 的程序设计流程。
需要注意的是,在实际应用中,还需要考虑数据传输的校验、错误处理等问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS18B20温度计制作详细全过程
发布: 2009-9-09 10:34 | 作者: 玲珑 | 查看: 200次
元件盒一直躺着几只DS18B20,从没试过,决定用它做个电子温度计,说干就干......
1、构思
Mega8做大脑、小塑料盒做外壳、3位LED数码管显示、废弃手机电池做电源、线路板热转印制作、设置2个开关(1个按键式、1个拨动式可常开)、RS232升级程序。
先想这些吧,开始干了。
2、画电路出图
电路原理图很简单,很快用PROTEL99SE画完;
根据小塑料盒大小设计PCB板,布好线,这步也不复杂。
裁好热转印纸,准备出图了,我喜欢打印时选择"Show Holes",这样在焊盘上就有孔。
用我刚买的HP3050Z一体机,那天逛科技市场,看了感觉不错就搬回来了,从没用它打过转印纸,还不知道效果呢。
......图出来了,还不错!比较满意。
3、制作线路板
①找块单面敷铜板,按合适尺寸裁好,用很细很细的沙纸打磨光亮,冲洗干净,吹干。
千万别省事,一定要干净,否则转印效果不好。
也可以用稀三氯化铁擦涂一下,能稍微提高转印效果。
②对好位置,将打好的热转印纸盖到敷铜板上,用不干胶粘到平整的耐热材料上,强烈建议别直接放在你家的红木写字台上,我用的是铺剩的复合地板。
用电熨斗进行转印,慢慢移动,使图及板受热均匀,尤其是边缘部分,要特别照顾一下。
力量和时间我全是靠经验,大概20秒左右,稍用力。
③加热后,纸与板粘在一起了,很烫,一定小心,别烫了你的小手手。
扔到洗手池里,用凉水降温,我实在等不及它自然冷却。
④板子凉了,从一边轻轻撕下转印纸,看看效果吧,很不错!是10Mil的线啊,没断一根。
⑤扔到三氯化铁熔液里腐蚀。
要想速度快,最好是热熔液+搅拌+毛刷轻刷。
应该好了吧,看看......
⑥洗净炭粉。
你们都是用什么洗啊,我用汽油,气味大点,但非常好用,用纸巾蘸一点就擦干净了,擦后用肥皂洗一下板子。
什么?你没有汽油,这好办,拿个钢钉,拿把锤子,拿个瓶子,趁没人的时候到你家楼下找辆底盘高点的车,爬到车底下,在油箱上凿个洞,汽油就流出来了,接汽油的时候千万别抽烟,切记。
接完汽油后,别忘了给人家油箱用什么东西堵上,以免漏光油耽误人家办急事。
(取油方法仅限于想象,请勿模仿,哈哈)
4、线路板钻孔,学学CNC
线路板手动钻孔是件麻烦事,特别是IC脚的排孔,往往钻不垂直钻不整齐。
今天试试用雕刻机自动钻孔,开始了......
①用PROTEL99SE将PCB输出PDF格式文件,分辨率设置为600DPI,如果你装了虚拟图形打印机,当然也可以直接输出BMP格式图像文件,我用的是PdfCreator虚拟打印机。
用PhotoShop CS2打开PDF文件,分辨率输入600DPI......
②处理图像
将图像水平翻转,将角上4个螺丝孔的焊盘染为另一种颜色,我将它染成了绿色,存为BMP格式文件。
③生成刀路文件
启动ArtCAM Pro 8.1,打开刚才处理好的BMP格式文件,不要使用快捷方式<通过图像产生模型>,否则调入的图像会转换为灰度,要使用菜单的[文件]-[打开]或打开文件按钮。
确定后,会蹦出模型尺寸设置对话框,设置为600DPI,单位毫米......
双击绿色焊盘,选择绿色图形,然后在对话框上点<关闭>......
在<助手>里的<矢量-位图>点<位图到矢量>小图标......
退出通过位图产生矢量对话框,点<接受>即可。
这时4个绿色焊盘会由虚线框住。
下面要生成刀路文件了。
在<刀具路径>的<二维刀具路径>里点击<钻孔>图标
在<钻孔>设置里,开始深度0,结束深度2.5,随便选择个尖刀,设置下切步距3,钻孔中心位于全部已选矢量,材料厚度3,起个名称叫“定位”吧,点击<现在>,再点<关闭>,在<刀具路径>框上方就出现了[定位]的名称,单击它变成蓝色,点击<保存刀具路径>......
选择Tryax格式,起个名字,还是叫“定位”吧,保存刀具路径文件。
******焊盘钻孔的刀具路径与以上方法相同,不再赘述******
④开始自动钻孔啦
启动MACH2,调入“定位的.tap”,我喜欢用诊断模式,可以输入XYZ值控制主轴位置,按<Alt+7>进入诊断模式。
将线路板放到雕刻机工作面上,操控刻刀到线路图左下角位置,刀尖离板3mm,置XYZ全零。
不用开主轴电机,空跑一遍试试,看刀是否落位准确,根据偏差调整线路板位置,直到4个点能落位准确,用热熔胶固定线路板。
刀置于X0,Y0位置。
调入钻孔刀路文件。
换上0.8mm钻头,控制主轴下降,将钻头尖贴近线路板,将Z 置零,打开主轴电机,点<启动>,雕刻机开始自动钻孔了......
外壳开孔的加工方法同上,测量好开孔位置,用雕刻机尖刀开孔......
***(本论坛不支持WMV视频文件格式,有兴趣的可访问作者的
)***
5、制作测温头
找个大小合适的电解电容。
首先脱了它的衣扒了它的皮,然后抽了它的筋剔了它的肉,剩下个骨头架;
然后将里面灌上导热硅脂,把焊上线的DS18B20放进去,呵呵,有点象寄居蟹;
找根粗细合适的圆珠笔杆,将测温头用环氧树脂胶固定住,这样能测量液体温度,没事就测测水烧开了没有。
6、开始总装了
将半成品运到总装车间,在总工程师领导下,各部门协调有序地运作起来。
动力部门找了块原装名牌废手机锂电池,其实还能用,就是待机时间太短;
机械部门找来了一颗钢珠,用做按钮开关的按键,说是增加温度计金属感,提高档次,再者这么白白滑滑的,摸着也舒服;
线路板元件很少,几只电阻、1个按钮开关、1个拔动开关、1只Mega8、引出排线接LED数码管,再连上DS18B20的3根线......很快就焊接完毕。
把盖子安上,怎么样,不错吧!
还有2个接口需要交待,一个是充电口,一个是RS232口。
Mega8里烧进了BootLoader升级程序,用RS232口更新程序。
请看下面这个图,右边是充电接口,中间是电源拔动开关,左边是RS232接口。
7、电路及程序
电路非常简单,这是电路图:
程序用BASCOM-AVR编写,也是比较简单,以前从没用过DS18B20,现学现编。
采用9位精度,设置好后存入DS18B20的EEPROM。
程序没仔细推敲,只是完成简单的显示温度功能。
最多显示3位数字,(-10,100)显示1位小数,其它区间显示整数。