DS18B20温度检测教学提纲

合集下载

DS18B20温度采集与控制

DS18B20温度采集与控制

(3)发送 DS18B20 功能指令。
指令名称 温度转换
指令代码 44H
指令功能 启动 DS18B20 温度转换,最长 750ms,结果存于内部 9 字节 RAM
-1-
写暂存器
4EH
读暂存器 复制暂存器 重调 EEPROM 读供电模式
BEH 48H B8H B4H
发此命令后,可向内 RAM 发 3 个字节,1st 是 TH,2st 是 TL, 3st 配置寄存器 发此命令后,依次读出内 RAM 中 0~8 字节的内容,低位在前。 复制 2、3、4 字节的内容到 EEPROM 中 EEPROM 中的内容恢复到 2、3、4 字节 当 DS18B20 寄生供电时为“0”,外部电源供电为“1”
要想完成一次测温任务,首先需要主 MCU 指挥 DS18B20 进行一次温度转换,待转换完 成后,再让主 MCU 读取 DS18B20 内部 RAM 中的温度数据。具体操作如下:
(1)主 MCU 控制“1-Wire”总线进行复位初始化。参见“对 DS18B20 进行复位初始 化”操作。
(2)主 MCU 发送跳过 ROM 的操作(CCH)命令。 (3)主 MCU 发送转换温度的操作(44H)命令,后面释放总线至少 750 毫秒,让 DS18B20 完成转换的操作。 (4)主 MCU 发出复位操作并接收 DS18B20 的应答(存在)脉冲。 (5)主 MCU 发送跳过 ROM 的操作(CCH)命令。 (6)主 MCU 发送读取 RAM 的命令(BEH),随后主机依次读取 DS18B20 发出的从第 0 一第 8,共九个字节的数据。如果只想读取温度数据,那在读完第 0 和第 1 个数据后即丢 掉(不读)后续字节的内容。 上述操作中,涉及到主 MCU 对 DS18B20 的写(发送)操作和读(读取)操作,下文将 介绍如何完成这两种操作方法。 写操作:写操作周期最少为 60 微秒,最长不超过 120 微秒。写周期开始时,主机先把总 线拉低 1 微秒表示写周期开始。之后主机若想写 0,则继续拉低电平最少 60 微秒直至写周期 结束,然后释放总线为高电平。主机若想写 1,则拉低总线电平 1 微秒后就释放总线为高电 平,一直到写周期结束。 作为从机的 DS18B20 在检测到总线被拉低后等待 15 微秒然后从 15us 到 60us 开始对总 线采样,在采样期内总线为高电平则为 1,若采样期内总线为低电平则为 0。如下图所示。

使用DS18B20温度传感器测温

使用DS18B20温度传感器测温

第11章使用DS18B20温度传感器测温11.1 概述现实生产生活中,小到测量体温的温度计,大到航天飞机的温控系统,处处都离不开温度测量。

工业生产中的三大指标(流量、压力、温度)之一就是温度,温度测量可以说是无处不在,遍布了我们生活生产的方方面面。

DS18B20温度传感器是美国DALLAS半导体公司生产的数字化温度传感器,它与以往模拟量温度传感器不同,数字化是其一大特点,它能将被测环境温度直接转化为数字量,并以串行数据流的形式传输给单片机等微处理器去处理。

DS18B20温度传感器的另一个主要特点是它是单总线的,即它与单片机等微处理器连接时,只需占用一个I/O管脚,并且不再需要其它任何外部元器件,这大大简化了它与但单片机之间的接口电路。

11.2 DS18B20温度传感器介绍目前,使用最普遍的DS18B20温度传感器是三脚TO-92直插式封装这一种,这种封装的DS18B20实物如图11-1所示。

可以看到它体积很小,只有三只管脚,外形与一般的三极管极其相似。

图11-2是其三脚TO-92直插式封装图,表11-1列出了DS18B20各个引脚的定义。

如图11-1 如图11-2表11-1 DS18B20引脚定义。

1、DS18B20温度传感器特性简介◆独特的单总线(一条线)接口,与微处理器通信只需一个I/O管脚,且硬件连接无需其它外部元件;◆测量结果直接输出数字量,可直接与微处理器通信;◆供电电压范围3.0V~5.5V;在寄生电源方式下可有数据线供电;◆测温范围-55℃~+125℃;在-10℃~+85℃范围内,测量精度可达±0.5℃;◆可编程的9~12位测温分辨率,对应的可分辨温度值分别为0.5℃,0.25℃,0.125℃,0.0625℃;12位分辨率时的温度测量转换最长时间(上限)只有750ms;◆每一片DS18B20都有自己独一无二的芯片号码;多片DS18B20可以并联在一条数据总线上实现不同地点的多点组网;◆应用范围包括温度调控,工业现场测温,消费类产品,温度计及热敏系统等。

DS18B20温度计课程设计完整版

DS18B20温度计课程设计完整版

目录1 前言 (1)1.1 设计背景 (1)1.2 设计目标 (1)1.3 实施计划 (1)2 总体方案设计 (2)2.1 方案比较 (2)2.1.1 方案一基于热敏电阻的温度计设计 (2)2.1.2 方案二基于SHT71的数字温度计设计 (2)2.1.3 方案三基于DS18B20的数字温度计设计 (3)2.2 方案论证 (3)2.3 方案选择 (4)3 硬件设计 (5)3.1 单元模块设计 (5)3.1.1 时钟和复位电路 (5)3.1.2 报警电路 (5)3.1.3 数码显示电路 (6)3.1.4 电源电路 (7)3.1.5 按键电路 (7)3.1.6 串口通信电路 (8)3.2 核心器件介绍 (8)3.2.1 单片机STC89C52介绍 (8)3.2.2 DS18B20介绍 (9)4 软件设计 (11)4.1 温度采集模块 (11)4.2 温度设定模块 (14)4.3 报警模块 (15)5 系统整合调试 (16)5.1 硬件调试 (16)5.2 软件调试 (16)6 系统功能、指标参数 (18)6.1 系统功能 (18)6.2 系统指标参数测试 (18)6.3 系统功能及指标参数分析 (19)7 结论 (20)8 总结与体会 (21)9 参考文献 (22)10 附录一:基于DS18B20数字温度计的设计原理图 (23)11 附录二:基于DS18B20数字温度计的设计PCB图 (24)12 附录三:基于DS18B20数字温度计的设计的实物图 (25)13 附录四:基于DS18B20数字温度计的设计C语言程序 (26)1前言自动控制领域中,温度检测与控制占有很重要的地位。

温度检测在工农业生产、科研和在人们的生活中得到广泛的运用。

目前,温度传感器正从模拟式向数字集成式方向飞速发出,单片机也是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好更方便的设施就需要从单片机技术入手,一切向着数字化、智能化方向发展。

DS18B20数字温度计使用课程设计

DS18B20数字温度计使用课程设计
I/O
C
64

ROM


线






存储器与控制逻辑
温度传感器
高温触发器TH
低温触发器TL
配置寄存器
8位CRC发生器 Vdd
免责声明:文档在线网中所有的文档资料均由文档在线网会员提供,该文档资料的版权属于提供者所有。文档在
转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了
方案二。 2.2
2.22.2
2.2方案二的总体设计框图
方案二的总体设计框图方案二的总体设计框图
方案二的总体设计框图
温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用
9~12位的数字值读数方式。DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
线网会对会员提供的文档资料进行筛选和编辑,但是并不声明或保证其内容的合法性和正确性。
6减法计数器1对低温度系数晶
振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到
0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温
度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累
9
10

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告专业名称:自动化专业班级:全文结束》》级自动化1班学号:全文结束》》4786 摘要本设计采用的主控芯片是ATMEL公司的AT89C51单片机,数字温度传感器是DALLAS公司的DS18B20。

本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。

所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。

单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。

51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。

本次设计采用的AT89C51是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。

本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。

本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。

温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。

本设计的显示模块是用液晶显示屏1602实现温度显示。

在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。

一、实验设计概述本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,测温上下限为10°C~40°C。

DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。

其输出温度采用LCD1602显示,主要用于对测温比较准确的场所。

该设计控制器使用的是51单片机AT89C51,AT89C51单片机在工控、测量、仪器仪表中应用还是比较广泛的。

实验报告DS18B20温度检测控制

实验报告DS18B20温度检测控制

实训五 DS18B20温度检测控制实训一、实训目的1.温度传感器电路的工作原理。

2.了解温度控制的基本原理。

3.掌握一线总线接口的使用。

二、实训说明1.DALLAS最新单线数字温度传感器DS18B20简介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的地址序列码。

64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校训码(CRC=X8+X5+X4+1)。

光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

DS18B20温度传感器实训教程

DS18B20温度传感器实训教程
3、单片机开发试验仪(普中科技)1个。
3、
1、编写程序
(1)新建工程
a.打开KeiluVision5软件,新建工程,选择AT89C51型号的芯片;
b.新建并添加.C程序文件及其相关.h头文件;
c.添加温度传感器控制程序temp.c
(2)程序编写、编译。
a.编写主函数程序main.c如下:
#include "reg52.h"
DisplayData[4] = smgduan[temp % 100 / 10];
DisplayData[5] = smgduan[temp % 10];
}
void DigDisplay()
{
u8 i;
for(i=0;i<6;i++)
{
switch(i)
{
case(0):
LSA=0;LSB=0;LSC=0; break;
void Ds18b20WriteByte(uchar dat)
{
uint i, j;
for(j=0; j<8; j++)
{
DSPORT = 0;//每写入一位数据之前先把总线拉低1us
i++;
DSPORT = dat & 0x01; //然后写入一个数据,从最低位开始
i=6;
while(i--); //延时68us,持续时间最少60us
DSPORT = 1;//然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值
dat >>= 1;
*函数名: Delay1ms
*函数功能:延时函数
*输入:无
*输出:无
*******************************************************************************/

亿学通电子 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 以存在脉冲响应。

DS18B20温度传感器实训教程

DS18B20温度传感器实训教程
c.添加温度传感器控制程序temp.c
(2)程序编写、编译。
a.编写主函数程序main.c如下:
#include "reg52.h"
#include"temp.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
2硬件连接3程序烧入芯片1选择单片机型号串口号打开程序文件关闭单片机电源再点击下载程序然后打开电源程序显示下载操作成功即可
DS18B20
1、
1、掌握DS18B20温度传感器设计与制作及其特性;
2、熟练KeiluVision5软件及程序烧入软件基础运用;
3、了解并使用单片机开发试验仪做基础实验。
4、学会基础的C51单片机程序编写并看懂较为复杂的程序。
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0xbe);//发送读取温度命令
}
/*******************************************************************************
for(j=8; j>0; j--)
{
DSPORT = 0;//先将总线拉低1us
i++;
DSPORT = 1;//然后释放总线
i++;
i++;//延时6us等待数据稳定
bi = DSPORT;//读取数据,从最低位开始读取

DS18B20温度测量

DS18B20温度测量

DS18B20温度测量1.实验目的与效果:学习单总线温度传感器的读写,实现对环境温度的测量。

将ds18b20里的温度信息读出,在数码管上显示;显示的样式EP=XX.X℃。

▲ds18b20初始化(复位)时序:▲ds18b20读写时序:▲ds18b20寄存器:提示:DS18B20相关详细信息请查看DS18B20.pdf文档。

2. 原理图:3. 实验板上操作:1)在DS18B20模块区域,用短路冒将P2.7与DQ连接起来。

2)将DS18B20插到三个孔型插座上,说明:之所以不把DS18B20焊牢在板子上,是因为考虑到18B20也是挺贵的温度传感器,你可以做完是实验把DS18B20用于比赛或其他,这样就省掏钱再买一个了。

(不错的选择把)3)将数码管位选拨码开关拨到ON上。

( 请看实物图1)4)把液晶那边的拨码开关全部拨到OFF,也就是不要拨到ON上(看实物图2)5)做完本次实验请将DS18B20拔下,保管好。

4.实物连接图:实物图1:实物图2:5.C语言程序://MCU: AT89S51//晶振:12M#include "AT89X51.h"#include "intrins.h"//common part#define HIGH 1#define LOW 0#define TRUE 1#define ZERO 0#define MSB 0x80//ds18b20 part#define SkipRom 0xcc#define ConvertTemperature 0x44#define ReadScratchpad 0xbe/*******************************************************************/ sbit One_Wire_Bus=P2^7;unsigned char code numcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86,0x8c,0xb7,0X9C,0XC6};//数字0~9及"EP=OC"共阳数码管代码unsigned char code dot_numcode[]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};//带数点的0~9共阳数码管代码unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数码管位选代码unsigned char dispbuff[8]={14,13,0,0,0,12,11,10};unsigned char timecount;unsigned char disp_bit_count;/********************************************************************/ unsigned char GetScratchpad[2];unsigned char code decimalH[16]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93}; unsigned char code decimalL[16]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75}; unsigned char ResultTemperatureH;unsigned char ResultTemperatureLH,ResultTemperatureLL;unsigned char ResultSignal;/********************************************************************/ void One_Wire_Delay(unsigned char delay_time){while(delay_time)delay_time--;//延时时间:=(8+delay_time*6)us;}//*****初始化DS18B20******/void Initize_One_Wire_Bus(void){One_Wire_Bus=0;One_Wire_Delay(80);//总线拉低488usOne_Wire_Bus=1;One_Wire_Delay(25);//总线拉高158us;}/***********************************************************************//*******************读一个字节ds18b20 *********************************/ unsigned char One_Wire_Read_Byte(void){bit temp_bit;unsigned char i,result=0;for(i=0;i<8;i++){One_Wire_Bus=0;One_Wire_Bus=1;temp_bit=One_Wire_Bus;One_Wire_Delay(9);//延时62 usif(temp_bit)result|=0x01<<i;}return(result); //返回ds18b20值}/*********向ds18b20写一个字节*********************/ void One_Wire_Write_Byte(unsigned char oww_dat){unsigned char i;for(i=0;i<8;i++){One_Wire_Bus=0;if(oww_dat&0x01)One_Wire_Bus=1;One_Wire_Delay(20);// 128 usOne_Wire_Bus=1;oww_dat>>=1;}One_Wire_Delay(10);}/******************************************/void Read_18B20(void){unsigned char tempH,tempL;Initize_One_Wire_Bus();One_Wire_Write_Byte(SkipRom);_nop_();//There is just one DS1820 on the bus;One_Wire_Write_Byte(ConvertTemperature);One_Wire_Delay(5);//Start to convert temperature;Initize_One_Wire_Bus();One_Wire_Write_Byte(SkipRom);_nop_();One_Wire_Write_Byte(ReadScratchpad);GetScratchpad[0]=One_Wire_Read_Byte();//Master samples the LSB temperature from the scratchpad; GetScratchpad[1]=One_Wire_Read_Byte();//Master samples the MSB temperature from the scratchpad;One_Wire_Delay(120);tempH=(GetScratchpad[1]<<4)|(GetScratchpad[0]>>4);tempL=(GetScratchpad[0]&0x0f);Initize_One_Wire_Bus();//Issue a reset to terminate left parts;if(tempH&0x80){tempH=~tempH;tempL=~tempL+1;ResultSignal=1;//Negative temperature;}ResultTemperatureH=tempH;ResultTemperatureLL=decimalL[tempL];ResultTemperatureLH=decimalH[tempL];//Result of temperature;}//Read the byte0 and byte1 from scratchpad;/***********************************************************************/void main(void){TMOD=0x01; //使用定时器0,选择方式1(16位定时器)TH0=(65536-3000)/256; //定时3MS初值TL0=(65536-3000)%256;ET0=1; //开定时器0溢出中断EA=1; //开总中断Initize_One_Wire_Bus();TR0=1; //开定时器0while(TRUE ){if(timecount==10) //每30ms采样一次温度,可以修改采样时间{timecount=0;Read_18B20();dispbuff[4]=((ResultTemperatureH%100)/10); //温度十位dispbuff[3]=(ResultTemperatureH%10); //温度个位dispbuff[2]=(ResultTemperatureLH/10); //温度小数位}}}/*********3MS中断服务程序*************/void t0(void) interrupt 1{TH0=(65536-3000)/256;TL0=(65536-3000)%256;timecount++;if(disp_bit_count==3)P0=dot_numcode[dispbuff[disp_bit_count]];elseP0=numcode[dispbuff[disp_bit_count]];P1=bitcode[disp_bit_count];disp_bit_count++;if(disp_bit_count==8)disp_bit_count=0;}。

ds18b20数字温度计课程设计

ds18b20数字温度计课程设计

ds18b20数字温度计课程设计ds18b20数字温度计课程设计一、实验目的1、了解ds18b20数字温度计的原理;2、掌握使用单总线、多总线的ds18b20数字温度计的读取方法;3、学会程序设计,编写读取ds18b20数字温度计的程序;二、实验内容1、ds18b20原理介绍和使用指南;2、单总线ds18b20的读取;3、多总线ds18b20的读取;4、ds18b20数字温度计的程序设计。

三、实验准备1、ds18b20数字温度计一个;2、STC89C52单片机一个;3、74HC00芯片一个;4、基础模块一个;5、阻值电阻一块;6、按键一个;7、LED一个;四、实验步骤1、了解ds18b20的原理(1)ds18b20原理介绍:ds18b20是一款以串行通信方式完成温度采集的高精度热敏电阻,具有自带的识别码,可以同时读取多个ds18b20,具有低功耗,精度高,测量范围广等优点。

(2)ds18b20使用指南:ds18b20使用一根数据线进行通信,将这根数据线接到单片机的数据口即可,用来接收和发送数据。

2、单总线ds18b20的读取(1)实验环境搭建:将ds18b20数字温度计接到单片机的数据口上,并将电阻接入,使电路有效;(2)实验程序编写:编写读取单总线ds18b20的程序,实现单总线ds18b20数字温度计的读取;3、多总线ds18b20的读取(1)实验环境搭建:将多个ds18b20数字温度计使用同一个总线接到单片机的数据口上,并将电阻接入,使电路有效;(2)实验程序编写:编写读取多总线ds18b20的程序,实现多总线ds18b20数字温度计的读取;4、ds18b20数字温度计的程序设计(1)实验环境搭建:将ds18b20数字温度计接到单片机的数据口上,并将电阻、按键、LED等电子元件接入,使电路有效;(2)实验程序编写:编写ds18b20数字温度计的程序,实现读取ds18b20数字温度计的功能,并将按键控制LED亮灭,根据温度读取值判断LED是否亮起。

DS18B20测温教程

DS18B20测温教程

DS18B20一、DS18B20背景介绍美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(O N-B0ARD)专利技术。

全部传感元件及转换电路集成在形如一只三极管的集成电路内。

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

二、DS18B20主要特性在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。

因此,DS18B20具有以下特性:1.适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电2.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯3.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温4.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内5.温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃6.可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温7.在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快8.测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力9.负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

三、DS18B20的外形和内部结构1、DS18B20的外形结构如下图所示:DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端。

实验八 DS18B20数字温度显示实验

实验八    DS18B20数字温度显示实验

D S18B20数字温度显示实验1.实验目的掌握一线式数字温度传感器的使用,了解单总线的工作方式。

掌握数字温度传感器DS18B20的工作原理及温度测量方法。

2.实验原理及内容DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。

主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。

必须先启动DS18B20开始转换,再读出温度转换值。

本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB 单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。

图118B20封装引脚 图2相关原理接线方法:1.利用S T C89C51实验板上的I R F1插孔和排针,将D S18B20插入I R F1插孔,用一根单条数据线把D S18B20的2脚接到C P U部份的P3.0;2.用一条4P I N的排线,把7474的A B C D接到P0口的P0.0,P0.1,P0.2,0.3四个端口。

(即插入P0口的上半部份)。

3.用一条8P I N的排线。

把数码管译码部份的输出端接到数码管部份的数据口;4.用一条4P I N的排线,把74138的输入端接到P0口的P0.4,P0.5,P0.6,07四个端口。

(即插入P0口的下半部份)。

5.用一条8P I N的排线。

把38译码部份的输出端接到数码管部份的显示位口。

在本系统中,为了简化程序, 采用了74L S47(数码管译码)74L S138(三八译码)。

即P0口的P0.0,P0.1,P0.2,P0.3四个端口接到74L S47进行硬件数码管译码,然后输出到数码管部分的数据口。

P0.4,P0.5,P.0.6三个端口接到74L S138进行38译码,然后输出到数码管的位控制。

使用DS18B20温度传感器测温

使用DS18B20温度传感器测温

248第11章 使用DS18B20温度传感器测温11.1 概述现实生产生活中,小到测量体温的温度计,大到航天飞机的温控系统,处处都离不开温度测量。

工业生产中的三大指标(流量、压力、温度)之一就是温度,温度测量可以说是无处不在,遍布了我们生活生产的方方面面。

DS18B20温度传感器是美国DALLAS 半导体公司生产的数字化温度传感器,它与以往模拟量温度传感器不同,数字化是其一大特点,它能将被测环境温度直接转化为数字量,并以串行数据流的形式,传输给单片机等微处理器去处理。

DS18B20温度传感器的另一个主要特点是它是单总线的,即它与单片机等微处理器连接时,只需占用一个I/O 管脚,并且不再需要其它任何外部元器件,这大大简化了它与单片机之间的接口电路。

11.2 DS18B20温度传感器介绍目前,使用最普遍的DS18B20温度传感器是三脚TO-92直插式封装这一种,这种封装的DS18B20实物如图11-1所示。

可以看到它体积很小,只有三只管脚,外形与一般的三极管极其相似。

图11-2是DS18B20三脚TO-92直插式封装图,表11-1列出了DS18B20各个引脚的定义。

图11-1 DS18B20实物图 图11-2 DS18B20引脚图表11-1 DS18B20引脚定义。

11.2.1 DS18B20温度传感器特性简介◆独特的单总线(一条线)接口,与微处理器通信只需一个I/O 管脚,且硬件连接无需其它外部元件;◆测量结果直接输出数字量,可直接与微处理器通信;◆供电电压范围3.0V~5.5V ;在寄生电源方式下可由数据线供电;◆测温范围-55℃~+125℃;在-10℃~+85℃范围内,测量精度可达±0.5℃;◆可编程的9~12位测温分辨率,对应的可分辨温度值分别为0.5℃,0.25℃,0.125℃,0.0625℃;12位分辨率时的温度测量转换最长时间(上限)只有750ms ;◆每一片DS18B20都有自己独一无二的芯片号码;多片DS18B20可以并联在一条数据总线上,实现不同地点的多点组网;◆应用范围包括温度调控,工业现场测温,消费类产品,温度计及热敏系统等。

DS18B20温度传感器课程设计

DS18B20温度传感器课程设计

摘要随着社会的进步和工业技术的发展,温度因素在社会生活各个方面已不容忽视。

由于许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

在单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术条件下,我们可以基于89S51单片机,利用液晶显示器件以及DS18B20温度传感器等器件,通过温度传感器在单片机下的硬件连接,软件编程即可设计DS18B20温度传感器系统。

该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

关键词:单片机AT89C51、DS18B20温度传感器、液晶显示LCD1602二、内容课程设计题目基于DS18B20的温度传感器课题的背景在人类的生活环境中,温度扮演着极其重要的角色,都无时无刻不在与温度打交道。

自18世纪工业革命以来,工业发展与是否掌握温度有着紧密的联系。

在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎%80的工业部门都不得不考虑着温度的因素。

温度对于工业如此重要,由此推进了温度传感器的发展。

1.1传感器三个发展阶段:一是模拟集成温度传感器。

该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。

此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合远距离测温、控温,不需要进行非线性校准,且外围电路简单。

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

D S18B20温度检测目录1 引言 (1)2 系统描述 (2)2.1 系统功能 (2)2.2 系统设计指标 (3)3 系统的主要元件 (3)3.1 单片机 (3)3.2 温度传感元件 (5)3.3 LCD显示屏 (7)4 硬件电路 (8)4.1 系统整体原理图 (8)4.2 单片机晶振电路 (9)4.3 温度传感器连接电路 (10)4.4 LCD电路 (10)4.5 报警和外部中断电路 (12)5 结论 (12)温度监测系统硬件设计摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。

同时提高了系统能够的抗干扰性,使系统更灵活、方便。

本系统主要实现温度的检测、显示以及高低温的报警。

也可以通过单总线挂载多个DS18B20实现多点温度的分布式监测。

关键词: DS18B20,单总线,温度,单片机1引言在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。

而单片机的发展和应用是其中的重要一方面。

单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。

其中,单片机在工业生产中的应用尤其广泛。

单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。

在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。

例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。

传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。

近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。

这类温度传感器集温度测量和A\D转换于一生,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件。

2系统描述本文将介绍利用单片机与单总线数字式温度传感器实现温度的测量、显示以及温度报警,并实现温度的监测。

2.1系统功能本设计要实现的功能如下:(1)实现温度的测量(2)可将温度信息通过LCD显示出来(3)设定温度的高温界限,当温度超过一定值时,发出高温报警信息,相应的高温报警LED信号灯亮起、同时启动蜂鸣器示警,并将报警信息显示在LCD上。

(4)设定温度的低温界限,当温度低于一定值时,发出低温报警信息,相应的低温报警LED信号灯亮起、同时启动蜂鸣器,并将报警信息显示在LCD上。

(5)报警时能够通过按键实现温度正常范围值的显示。

2.2系统设计指标本系统主要参数指标:(1)温度的测量范围为0-100℃(2)温度报警上限为80℃(3)温度报警下限为60℃(4)每一秒刷新一次温度信息3系统的主要元件3.1单片机我们采用ATMEL公司的AVR单片机。

其是一种基于增强型精简指令集RISC结构、低功耗、CMOS技术的8位微控制器。

目前有tiny AVR、低功耗AVR和mega AVR 3个系列。

它们的功能和外部引脚各有不同,但它们内核的基本结构相同,指令系统相容。

本设计中采用AVR系列中比较典型的ATmega16单片机。

其主要特点如下:·具备1MIPS / MHz的高速运行处理能力·I/O口驱动能力强:推拉电流能力均达30mA,可以直接驱动蜂鸣器、继电器等·片内资源丰富:外部中断、定时/计数器、UART、SPI、TWI(I2C)、ADC、模拟比较器·AVR单片机耗能低。

对于典型功耗情况,WDT关闭时为100nA,更适合用于电池供电的应用设备。

有的器件最低1.8V即可工作·可选型号丰富,性价比高,保密性好ATmega16的片内及接口资源如图3-1所示。

图3-2为ATmega16的引脚图。

图3-1 ATmega16的资源介绍图3-2ATmega16的引脚3.2温度传感元件温度传感器元件我们选用DALLAS半导体公司的DS18B20单总线数字温度计。

它是世界上第一种支持“单总线”接口的可组网数字式温度传感器,其能够直接读取被测对象的温度值。

DS18B20具有如下特性:·独特的单线接口,只需一个接口引脚即可通信·多点能力使分布式温度检测应用得以简化·不需要外部元件·可用数据线供电·不需要备份电源·测量范围从-55℃到+125℃,在-10℃到+85℃之间测量精度可达±0.5℃,稳定度为1%·以9位数字值方式读出温度·在1秒内把温度变换为数字·用户定义的,非易失性的温度告警设置·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统DS18B20有多种封装可选,如TO-92、SOIC及CSP封装。

图3-3即为DS18B20的管脚排列图。

由图3-3可见,DS18B20只有一个数据输入/输出口,属于单总线专用芯片之一。

DS18B20工作时被测温度值直接以“单总线”的数字式传输,大大提高了系统的抗干扰能力。

每一个DS18B20在出厂时都已具有唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20,而不会出现混乱。

另外用户还可自设定非易失性温度报警上下限值TH和TL。

DS18B20在完成温度变换后,所测温度值将自动与存储在TH和TL内的触发值相比较,如果测温结果高于TH或低于TL,DS18B20内部的告警标志就会被置位,表示温值超出了测量范围,同时还有报警搜索命令识别出温度超限的DS18B20。

图3-3DS18B20的引脚排列图3-4DS18B20内部存储器结构图3-4为DS18B20的内部存储器结构图,它包括一个暂存RAM和一个非易失性电可擦除(E2)RAM。

其中暂存存储器的作用是在单线通信时确保数据的完整性,它包括8个字节,前两个字节表示测得的温度读数。

每一个DS18B20包括一个唯一的64位长的ROM编码。

开始的8位是单线产品系列编码,接着的48位是唯一的序列号,最后的8位是开始的56位CRC,如图3-5所示。

图3-5 64位ROM编码3.3 LCD显示屏在本设计用,要将温度信息显示出来,所以我们采用LCD显示模块。

液晶显示器(LCD)由于体积小、重量轻、耗电小等优点已成为嵌入式系统常用的理想显示器。

本设计中采用的通用点阵字符液晶显示器是专用于显示数字、字母、图形符号和一些自定义符号的显示器。

这类显示器把LCD控制器、点阵驱动器、字符存储器全做在一个PCB板上,构成便于应用的显示器模块。

这类点阵字符液晶显示器模块在国际上已经规范化,一般采用日立公司的HD44780及其兼容电路。

本设计中采用的LM16L即为采用HD44780驱动器。

HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等功能。

它与MCU的数据传输可采用8位并行或4位并行传输两种方式。

可用于驱动40×4、16×1、16×2等多种点阵字符液晶显示器。

HD44780有14个引脚,与MCU的接口信号及定义如表3-1所示。

表3-1HD44780引脚功能定义表引脚号符号I/0 功能1 V SS电源负端,接地(或接-5V)2 V DD电源正端,接+5V3 V0LCD亮度调整电压0~5V4 RS 1 寄存器选择:RS=0,选指令寄存器;RS=1,选数据寄存器5 R/W 1 读/写选择:R/W=0,写数据至LCD;R/W=1,从LCD读数据6 E 1 输入允许:R/W=0,E下降沿打入;R/W=1,E=1有效7~10 DB0~DB3 I/O 数据总线:使用4位并行传输时,仅用(DB4~DB7)4位;使用8位并行传输时,使用(DB0~DB7)8位11~14 DB4~DB7 I/O15~16 LCD背光电源的正极和负极(有些模块没有背光功能)4硬件电路4.1系统整体原理图系统的整个电路如下图所示。

系统包含单片机晶振部分,LM016L与AVR 单片机连接部分,DS18B20部分,以及外部按键中断和温度报警部分。

图4-1 系统的整体电路4.2单片机晶振电路为ATmega16提供系统时钟时,可采用如下的几种方式:(1)直接使用片内的1/2/4/8 MHz的RC振荡源(2)在引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振电路,配合片内的OSC振荡电路构成的振荡源。

(3)直接使用外部的时钟源输出的脉冲信号本设计中采用较常规的方式(2)时钟电路,采用4MHz外部晶振。

单片机的复位引脚RESET通过一个上拉电阻接系统电源,为高电平“1”。

在此条件下,一旦接通电源,AVR将进入上电复位状态。

单片机时钟电路如图4-2所示。

图4-2 单片机复位与时钟电路4.3温度传感器连接电路DS18B20采用的是单总线传输数据。

因为,单总线空闲状态为高电平,所以要接一个近似为5k 的上拉电阻,使数据线在空闲状态下能自动的上拉为高电平。

与DS18B20相连接的I/O需要设置成输入状态。

此外,DS18B20可以采用两种供电方式。

一种是寄生电源方式,由单片机的引脚提供电源,另一种是外部电源方式,即将DS18B20的VDD引脚接+5V 的外部电源。

相对于寄生电源方式,外部电源供电允许在变换时间内其他数据在单总线上传输。

这样可以实现单总线挂载多个DS18B20传感器,实现单线的多点温度检测,大大的提高了单片机接口的利用率。

本设计中,即采用外部电源供电方式。

下图即为DS18B20的连接电路。

图4-3 DS18B20电路4.4 LCD电路从零开始编写HD44780的控制程序需要了解HD44780的内部结构、操作时序、指令集、内部REM与字符图形的对应关系和字符代码表等。

但由于这种点阵字符液晶显示器模块在国际上已经规范化,而且我们使用的Code Vision AVR开发平台中扩展提供了一些基本的LCD应用接口函数。

因此,我们编程时直接调用了这些函数。

要使用CVAVR内部提供的LCD函数,则硬件连接必须按以下要求实现:(1)与LCD的连接必须使用AVR的同一8位I/0端口,如PC(或者PA、PB、PD),本设计中采用PC端口。

(2)LCD采用4位并行传输方式(即仅用DB4~DB7,4位数据总线)(3)具体连接定义如下:·3根控制总线:PC0—RS,PC1—R/W,PC2—E。

相关文档
最新文档