DS18B20测温单片机控制

合集下载

ds18b20与单片机工作原理

ds18b20与单片机工作原理

ds18b20与单片机工作原理
DS18B20是一款数字温度传感器,常用于单片机系统中进行温度测量。

它采用了1-Wire总线协议,可以通过单一的数据线实现数据传输和供电。

DS18B20传感器内部结构包含了一个温度传感器单元、数字转换单元和存储器单元。

温度传感器单元采用了精确的模拟传感器,能够测量环境温度并输出相应的模拟信号。

数字转换单元将模拟信号转换为数字信号,并通过1-Wire总线传输给单片机。

存储器单元用于存储温度传感器的序列号、配置信息和温度数据。

DS18B20与单片机之间的通信采用了1-Wire总线协议。

这种协议通过单一的数据线实现数据传输和供电,简化了硬件连接和布线。

在通信过程中,单片机作为总线的主设备,发出读取传感器数据的指令,并通过1-Wire总线接收传感器的响应。

传感器在接收到指令后,进行温度测量并将结果转换为数字信号,然后通过1-Wire总线传输给单片机。

为了确保稳定的数据传输,DS18B20还包含了内部的电源管理电路和时序控制电路。

电源管理电路能够自行调整传感器的供电电流,并且能够自动进入休眠状态以降低功耗。

时序控制电路用于控制通信的时间序列,确保数据的准确传输。

总结而言,DS18B20与单片机通过1-Wire总线协议进行通信,实现温度数据的测量和传输。

其内部结构包含温度传感器单元、数字转换单元和存储器单元,通过精确的模拟传感器进行温度测量,并采用电源管理和时序控制电路确保稳定的数据传输。

【注意】回答中出现的具体器件、厂商及其特定信息只是为了描述清楚相关原理,并不构成对其的任何推荐或宣传。

DS18B20智能温度控制器(附软件程序)

DS18B20智能温度控制器(附软件程序)

DS18B20智能温度控制器DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

DS18B20、 DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为± 2°C 。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3V~5.5V 的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DS18B20、 DS1822 的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。

省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。

DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

单片机DS18B20水温控制系统设计

单片机DS18B20水温控制系统设计

单片机DS18B20水温控制系统设计一.引言在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D 转换,最终送入单片机及其相应的外围电路,完成监控。

但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。

本文介绍单片机结合DS18B20水温控制系统设计,因此,本系统用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和A/D转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。

目录一.引言...二.设计目的...三.系统功能...四.系统设备...五.温度控制总体方案与原理...1.系统模块图...2.系统模块总关系图...六.温度转换核心及其算法...1.温度传感器DS18B20原理与特性...DSl8B20的管脚及特点...DS18B20的内部结构...DS18B20的内存结构...DS18B20的测温功能...DSl820工作过程中的协议...温度传感器与单片机通讯时序...2.温度转换算法及分析...七.硬件设计说明...1.系统总体电路图...2.各个模块电路图...输入系统...输出系统...芯片系统...八.软件设计说明...1.总模块的流程图...2.各个模块的流程图...读取温度DS18B20模块的流程...键盘扫描处理流程...九.操作指引...按键功能...显示温度...设定温度...十.参考文献...程序源代码...二.设计目的设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。

水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。

利用单片机AT89S52实现水温的智能控制,使水温能够在40-90 度之间实现控制温度调节。

利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在我们的七段发光二极管板上。

DS18B20温度测量与控制实验报告

DS18B20温度测量与控制实验报告

课程实训报告《单片机技术开发》专业:机电一体化技术班级: 104201学号: 10420134姓名:杨泽润浙江交通职业技术学院机电学院2012年5月29日目录一、DS18B20温度测量与控制实验目的……………………二、DS18B20温度测量与控制实验说明……………………三、DS18B20温度测量与控制实验框图与步骤……………………四、DS18B20温度测量与控制实验清单……………………五、DS18B20温度测量与控制实验原理图…………………六、DS18B20温度测量与控制实验实训小结………………一、实验目的1.了解单总线器件的编程方法。

2.了解温度测量的原理,掌握 DS18B20 的使用。

二、实验说明本实验系统采用的温度传感器DS18B20是美国DALLAS公司推出的增强型单总线数字温度传感器。

Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

DS18B20测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20 内部结构DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。

DS18B20 的管脚排列如下: DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。

光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。

DS18B20 测温系统

DS18B20 测温系统

电子综合实践设计报告专业班级:学生姓名:指导教师:设计时间:物理与通信电子学院摘要DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单、体积小、低功耗、高精度、抗干扰能力强等特点的数字温度传感器。

本设计采用多点测温方法,在一个IO口上挂接多个DS18B20测温,在远距离工作时,为了防止信号的衰减,DS18B20用屏蔽双绞线包裹,远端接地的方法工作,并把所测得的温度在LCD上显示出来。

文中简要的介绍了DS18B20的基本特点、引脚功能、测温原理及时序的控制。

给出了DS18B20的使用电路、使用中的注意事项、硬件及软件设计方法。

经过测试,该系统的测量精度及速度等指标均能满足设计要求。

关键词:DS18B20 测温系统数字温度传感器多点测温目录摘要 (2)1 引言 (4)2 设计要求 (4)3 方案设计与原理 (4)3.1 DS18B20 简介 (4)3.1.1 DS18B20特性 (4)3.1.2说明: (5)3.1.3 DS18B20测温原理: (5)3.1.4 DS18B20测温原理图: (6)3.1.5 64位激光刻ROM (7)3.1.6 CRC发生器 (7)3.1.7 单总线系统 (7)3.2 DS18B20指令控制 (7)3.2.1 ROM时序指令控制 (8)3.2.2DS18B20功能指令控制 (8)3.3 18B20时序详解 (9)3.3.1初始化时序 (9)3.3.2读/写时序 (9)3.4二叉树遍历 (11)4 设计程序流程图: (16)5 设计硬件原理图 (17)6 DS18B20使用中应注意事项 (18)7测试中出现的问题及解决办法和说明: (18)8 结束语 (19)9 参考文献: (20)10 附录: (21)1 引言本系统利用DS18B20进行测温,基于单片机AT89S52进行温度控制,具有硬件电路简单,控温精度高、功能强,体积小,简单灵活等优点,可以应用于控制温度在-55℃到+125℃之间的各种场合,可以实现温度的实时采集、显示功能。

用单片机实现DS18B20的远程无线温度检测

用单片机实现DS18B20的远程无线温度检测
a dM I n CRF0 e ev raeu e Oc n ttt 07rc i e r s dt o si eM CU wiee ss ra i e ae cr utTheDS1 B2 su e a em p rtr e o . u r ls e lntr c ic i. i f 8 0i sd st eau esns r
Ab t c : r moedgtl i lytemo tr ae nM C i d s n d T e8 5 MCU i u e s c nr l oe MI RF1 2t n mie s r t A a e t ii d s a h r mee b s do a p U s ei e . h 0 1 g s s da o t c r. C o 0 r s tr a t
超外差接收器, 内部 本 振 根 据 外 部 的参 考 晶振 时钟 固
5 ℃ ~ 15 在 一 0 ~ 8 ℃范 围 内, 为 ± . 5 + 2 ℃, 1℃ +5 精度 05
定在 某 一 频 率上 。 常 规 的超 外 差接 收 器 一样 , 应 的 与 对 发射, 频率必须准确控制, 般使用晶体或S 其 一 AW 谐
L hn - , U h- n VS eg iH OSuy j e a
(h Sa Ad nsa o f a iFl n T l io , 2 tt Q q a 1 10 , hn) T e t e mii f noR do i t Wi ma d ee s n2 1 a , ii r 6 0 0C i vi 0 S e h a
输 速率 可达 2 k p ; 进行 自动 天 线调 谐 ; 需极 少 的 0 b s可 仅
1 温度检测 电路
温度芯 片DS1 B2 是 一线式 数字 温度 传感器 , 有 0 8 具

亿学通电子 DS18B20 温度传感器使用手册

亿学通电子 DS18B20 温度传感器使用手册

1) DS18B20 是DALLAS 公司生产的一线制数字温度传感器; 2) 具有3 引脚TO-92 小体积封装形式; 3) 温度测量范围为-55℃~+125℃; 4) 电源供电范围为3V~5.5V ; 5) 可编程为9 位~12 位数字表示;6) 测温分辨率可达0.0625℃,被测温度用符号扩展的16 位数字量方式串行输出;7) 其工作电源既可在远端引入,也可采用寄生电源方式产生;8) 多个DS18B20 可以并联到3 根(VDD、DQ 和GND)或2 根(利用DQ 线供电、GND)线上,CPU 只需一根端口线就能与总线上的多个串联的DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

TO-92封装的DS18B20DS18B20 的管脚排列及不同封装形式如图 2所示,DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地,见),NC 表示无连接。

管脚图DS18B20内部结构如图3所示,主要由4 部分组成:64 位ROM 、温度传感器、非易失性存储的温度报警触发器TH 和TL 、配置寄存器。

DS18B20管脚DS18B20概述DS18B20内部结构图非常适用于远距离多点温度检测系统。

DQ-数据输入输出。

漏极开路1 线接口。

也在寄生电源模式时给设备提供电源。

访问DS18B20 的顺序如理初始化;DS18B20读写 连接图应用领域ROM 命令(接着是任何需要的数据交换);DS18B20 函数命令(接着是任何需要的数据交换)。

每一次访问DS18B20 时必须遵循这一顺序,如果其中的任何一步缺少或打乱它们的顺序,DS18B20 将不会响应。

(1)初始化时序所有与DS18B20 的通信首先必须初始化:控制器发出复位脉冲,DS18B20 以存在脉冲响应。

(完整word版)DS18B20水温控制系统+电路图程序

(完整word版)DS18B20水温控制系统+电路图程序

水温控制系统摘要:该水温控制系统采用单片机进行温度实时采集与控制。

温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-10~+85°C范围内,固有测温分辨率为0.5 ℃。

水温实时控制采用继电器控制电热丝和风扇进行升温、降温控制.系统具备较高的测量精度和控制精度,能完成升温和降温控制。

关键字:AT89C51 DS18B20 水温控制Abstract: This water temperature control system uses the Single Chip Microcomputer to carry on temperature real-time gathering and controling。

DS18B20,digitized temperature sensor, provides the temperature signal by "a main line”. In -10~+85℃the scope,DS18B20’s inherent measuring accuracy is 0.5 ℃. The water temperature real-time control system uses the electricity nichrome wire carring on temperature increiseament and operates the electric fan to realize the temperature decrease control。

The system has the higher measuring accuracy and the control precision,it also can complete the elevation of temperature and the temperature decrease control. Key Words:AT89C51 DS18B20 Water temperature control目录1.系统方案选择和论证 (2)1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/******************************************************************** * * ME850单片机开发实验仪演示程序- DS18B20温度显示* * * * 6数码管显示* * * * 版本:V1.0 (2008/08/23) ** 作者:gguoqing (Email: gguoqing@) ** 作者:gguoqing (gguoqing@) ** 网站:(硕飞科技) (伟纳单片机世界) ** 邮箱:sofitech@ ** * *【版权】Copyright(C)伟纳电子 All Rights Reserved **【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!* * * *******************************************************************/#include <reg52.h>#include <intrins.h>sbit DQ = P3 ^ 3; //定义DS18B20端口DQsbit BEEP = P3 ^ 7; //定义蜂鸣器控制端口bit presence;unsigned char code LEDData[] ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,0xF8, 0x80, 0x90, 0xff, 0xc6, 0x9c, 0xbf};unsigned char data temp_data[2];unsigned char data display[7] ={0x0b, 0x0c, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d};char code reserve[3]_at_ 0x3b; //保留0x3b开始的3个字节/**********************************************************us延时函数(8*1.085)*num**********************************************************/ void Delay(unsigned int num) //延时函数{while (--num);}/********************************************************** 延时子程序**********************************************************/ void delayms(unsigned int ms){unsigned char k;while (ms--){for (k = 0; k < 114; k++);}}/********************************************************** 蜂鸣器驱动子函数**********************************************************/ void beep(){unsigned char i;for (i = 0; i < 180; i++){Delay(80);BEEP = !BEEP; //BEEP取反}BEEP = 1; //关闭蜂鸣器delayms(100);}/********************************************************** DS18B20初始化presence=0 OK presence=1 ERROR**********************************************************/ unsigned char Init_DS18B20(void){DQ = 0; //单片机发出低电平复位信号Delay(60); //延时>480usDQ = 1; //释放数据线Delay(8); //延时>64us,等待应答presence = DQ; //接收应答信号Delay(50); //延时>400us,等待数据线出现高电平DQ = 1; //释放数据线return (presence); //返回presence信号}/********************************************************** 读一个字节数据**********************************************************/ unsigned char ReadOneChar(void){unsigned char i = 0;unsigned char dat = 0;DQ = 1;for (i = 0; i < 8; i++)//一个字节8个bit{DQ = 0; //给低脉冲信号dat >>= 1;DQ = 1; //释放总线_nop_();_nop_();if (DQ)//读总线电平状态dat |= 0x80;//最高位置1Delay(6); //延时>45usDQ = 1; //释放总线,表示此次读操作完成}return (dat); //返回所读得数据/********************************************************** 写一个字节数据**********************************************************/ void WriteOneChar(unsigned char dat){unsigned char i = 0;for (i = 0; i < 8; i++)//一个字节8个bit{DQ = 0; //给低脉冲信号Delay(1); //延时<15usdat >>= 1; //数据右移一位,最低位移入CYDQ = CY; //写1bit数据Delay(6); //延时>45usDQ = 1; //释放总线,表示此次写操作完成}}/********************************************************** 温度数据转换子程序**********************************************************/ void Temperature_conver(){unsigned char minus = 0;// display[0]=0x0b; //显示C// display[1]=0x0c; //显示°if (temp_data[1] > 127)//温度为负值{temp_data[0] = (~temp_data[0]) + 1; //取反加一,将补码变成原码if ((~temp_data[0]) >= 0xff)temp_data[1] = (~temp_data[1]) + 1;elsetemp_data[1] = ~temp_data[1];minus = 1; //温度为负值标志}display[6] = temp_data[0] &0x0f; //取小数位数据display[2] = (display[6] *10) / 16; //保留一位小数display[6] = ((temp_data[0] &0xf0) >> 4) | ((temp_data[1] &0x0f) << 4);//取整数display[5] = display[6] / 100; //百位display[4] = (display[6] % 100) / 10; //十位display[3] = display[6] % 10; //个位if (!display[5])//高位为0,不显示{display[5] = 0x0a;if (!display[4])//次高位为0,不显示display[4] = 0x0a;}if (minus){display[5] = 0x0d; //显示负号}}/********************************************************** 数码管显示子函数**********************************************************/ void ledplay(){unsigned char n, shift;shift = 0xfe; //位码初值for (n = 0; n < 6; n++)//6位数码管显示{if (n == 3)P0 = (LEDData[display[n]]) &0x7f;//加小数点显示elseP0 = LEDData[display[n]];//输出段码P2 = shift; //输出位码shift = (shift << 1) | 0x01; //修改位码delayms(1);}P2 = 0xff; //关闭显示delayms(1);}/********************************************************** 主函数**********************************************************/ void main(void){unsigned char m;P0 = 0xff;P2 = 0xff;while (1){Init_DS18B20();if (presence == 0){WriteOneChar(0xCC); //跳过ROM匹配操作WriteOneChar(0x44); //启动温度转换for (m = 0; m < 120; m++)//数码管初始化显示ledplay();//等待数据转换完成}Init_DS18B20();if (presence == 0){WriteOneChar(0xCC); //跳过ROM匹配操作WriteOneChar(0xBE); //读取温度寄存器temp_data[0] = ReadOneChar(); //温度低8位temp_data[1] = ReadOneChar(); //温度高8位Temperature_conver(); //数据转换for (m = 0; m < 120; m++)ledplay();//温度显示}else{beep(); //蜂鸣器报警P2 = 0xff; //关闭显示}}}/*********************************************************/。

相关文档
最新文档