文档视界 最新最全的文档下载
当前位置:文档视界 › DS18B20温度传感器实验

DS18B20温度传感器实验

DS18B20温度传感器实验
DS18B20温度传感器实验

DS18B20温度传感器实验Proteus仿真原理图:

DS18B20内部结构:

/************************* 源程序 ****************************/ #include

#include

#define uint unsigned int

#define uchar unsigned char

#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}

sbit DQ = P3^3;

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

uchar code Temp_Disp_Title[]={"Current Temp : "};

uchar Current_Temp_Display_Buffer[]={" TEMP: "};

uchar code Temperature_Char[8] =

{

0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x0 0

};

uchar code df_Table[]=

{

0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9

};

uchar CurrentT = 0;

uchar Temp_Value[]={0x00,0x00};

uchar Display_Digit[]={0,0,0,0};

bit DS18B20_IS_OK = 1;

void DelayXus(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<200;i++);

}

}

bit LCD_Busy_Check(){

bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

delayNOP();

result = (bit)(P0&0x80);

LCD_EN=0;

return result;

}

void Write_LCD_Command(uchar cmd) {

while(LCD_Busy_Check());

LCD_RS = 0;

LCD_RW = 0;

LCD_EN = 0;

_nop_();

_nop_();

P0 = cmd;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void Write_LCD_Data(uchar dat)

{

while(LCD_Busy_Check());

LCD_RS = 1;

LCD_RW = 0;

LCD_EN = 0;

P0 = dat;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void LCD_Initialise()

{

Write_LCD_Command(0x01);

DelayXus(5);

Write_LCD_Command(0x38);

DelayXus(5);

Write_LCD_Command(0x0c);

DelayXus(5);

Write_LCD_Command(0x06);

DelayXus(5);

}

void Set_LCD_POS(uchar pos)

{

Write_LCD_Command(pos|0x80); }

void Delay(uint x)

{

while(--x);

}

uchar Init_DS18B20()

{

uchar status;

DQ = 1;

Delay(8);

DQ = 0;

Delay(90);

DQ = 1;

Delay(8);

DQ = 1;

return status;

}

uchar ReadOneByte()

{

uchar i,dat=0;

DQ = 1;

_nop_();

for(i=0;i<8;i++)

{

DQ = 0;

dat >>= 1;

DQ = 1;

_nop_();

_nop_();

if(DQ)

dat |= 0X80;

Delay(30);

DQ = 1;

}

return dat;

}

void WriteOneByte(uchar dat) {

uchar i;

for(i=0;i<8;i++)

{

DQ = 0;

DQ = dat& 0x01;

Delay(5);

DQ = 1;

dat >>= 1;

}

}

void Read_Temperature()

{

if(Init_DS18B20()==1)

DS18B20_IS_OK=0;

else

{

WriteOneByte(0xcc);

WriteOneByte(0x44);

Init_DS18B20();

WriteOneByte(0xcc);

WriteOneByte(0xbe);

Temp_Value[0] = ReadOneByte();

Temp_Value[1] = ReadOneByte();

DS18B20_IS_OK=1;

}

}

void Display_Temperature()

{

uchar i;

uchar t = 150, ng = 0;

if((Temp_Value[1]&0xf8)==0xf8)

{

Temp_Value[1] = ~Temp_Value[1];

Temp_Value[0] = ~Temp_Value[0]+1;

if(Temp_Value[0]==0x00)

Temp_Value[1]++;

ng = 1;

}

Display_Digit[0] = df_Table[Temp_Value[0]&0x0f];

CurrentT = ((Temp_Value[0]&0xf0)>>4) | ((Temp_Value[1]&0x07)<<4);

Display_Digit[3] = CurrentT/100;

Display_Digit[2] = CurrentT%100/10;

Display_Digit[1] = CurrentT%10;

Current_Temp_Display_Buffer[11] = Display_Digit[0] + '0';

Current_Temp_Display_Buffer[10] = '.';

Current_Temp_Display_Buffer[9] = Display_Digit[1] + '0';

Current_Temp_Display_Buffer[8] = Display_Digit[2] + '0';

Current_Temp_Display_Buffer[7] = Display_Digit[3] + '0';

if(Display_Digit[3] == 0)

Current_Temp_Display_Buffer[7] = ' ';

if(Display_Digit[2] == 0&&Display_Digit[3]==0)

Current_Temp_Display_Buffer[8] = ' ';

if(ng)

{

h

if(Current_Temp_Display_Buffer[8] == ' ')

Current_Temp_Display_Buffer[8] = '-';

else if(Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] = '-';

else

Current_Temp_Display_Buffer[6] = '-';

}

Set_LCD_POS(0x00);

for(i=0;i<16;i++)

{

Write_LCD_Data(Temp_Disp_Title[i]);

}

Set_LCD_POS(0x40);

for(i=0;i<16;i++)

{

Write_LCD_Data(Current_Temp_Display_Buffer[i]);

}

Set_LCD_POS(0x4d);

Write_LCD_Data(0x00);

Set_LCD_POS(0x4e);

Write_LCD_Data('C');

}

void main()

{

LCD_Initialise();

Read_Temperature();

Delay(50000);

Delay(50000);

while(1)

{

Read_Temperature();

if(DS18B20_IS_OK)

Display_Temperature();

DelayXus(100);

}

}

欢迎您的下载,资料仅供参考!

温度传感器实验

实验二(2)温度传感器实验 实验时间 2017.01.12 实验编号 无 同组同学 邓奡 一、实验目的 1、了解各种温度传感器(热电偶、铂热电阻、PN 结温敏二极管、半导体热敏电阻、集成温度传感器)的测温原理; 2、掌握热电偶的冷端补偿原理; 3、掌握热电偶的标定过程; 4、了解各种温度传感器的性能特点并比较上述几种传感器的性能。 二、实验原理 1、热电偶测温原理 由两根不同质的导体熔接而成的,其形成的闭合回路叫做热电回路,当 两端处于不同温度时回路产生一定的电流,这表明电路中有电势产生,此电势即为热电势。 试验中使用两种热电偶:镍铬—镍硅(K 分度)、镍铬—铜镍(E 分度)。图2.3.5所示为热电偶的工作原理,图中:T 为热端,0T 为冷端,热电势为)()(0T E T E E AB AB t -=。 热电偶冷端温度不为0℃时(下式中的1T ),需对所测热电势进行修正,修正公式为:),(),(),(0110T T E T T E T T E +=,即: 实际电动势+测量所得电动势+温度修正电势 对热电偶进行标定时,以K 分度热电偶作为标准热电偶来校准E 分度热 电偶。 2、铂热电阻 铂热电阻的阻值与温度的关系近似线性,当温度在C 650T C 0?≤≤?时,

)1(20BT AT R R T ++=, 式中:T R ——铂热电阻在T ℃时的电阻值 0R ——铂热电阻在0℃时的电阻值 A ——系数(=C ??/103.96847-31) B ——系数(= C ??/105.847--71) 3、PN 结温敏二极管 半导体PN 结具有良好的温度线性,PN 结特性表达公式为: γln be e kT U =?, 式中,γ为与PN 结结构相关的常数; k 为波尔兹曼常数,K J /1038.1k 23-?=; e 为电子电荷量,C 1910602.1e -?=; T 为被测物体的热力学温度(K )。 当一个PN 结制成后,当其正向电流保持不变时,PN 结正向压降随温度 的变化近似于线性,大约以2mV/℃的斜率随温度下降,利用PN 结的这一特性可以进行温度的测量。 4、热敏电阻 热敏电阻是利用半导体的电阻值随温度升高而急剧下降这一特性制成的 热敏元件,灵敏度高,可以测量小于0.01℃的温差变化。 热敏电阻分为正温度系数热敏电阻PTC 、负温度系数热敏电阻NTC 和在 某一特定温度下电阻值发生突然变化的临界温度电阻器CTR 。 实验中使用NTC ,热敏电阻的阻值与温度的关系近似符合指数规律,为:)11(00e T T B t R R -=。式中: T 为被测温度(K),16.273t +=T 0T 为参考温度(K),16.27300+=t T T R 为温度T 时热敏电阻的阻值 0R 为温度0T 时热敏电阻的阻值 B 为热敏电阻的材料常数,由实验获得,一般为2000~6000K 5、集成温度传感器 用集成工艺制成的双端电流型温度传感器,在一定温度范围内按1uA/K 的恒定比值输出与温度成正比的电流,通过对电流的测量即可知道温度值(K 氏温度),经K 氏-摄氏转换电路直接得到摄氏温度值。

DS18B20 数字温度传感器

应用指引:在MC430F14板上是标配了DS18B20数字温度传感器器,同时希望用户通过以下DS18B20的讲解能够了解更多1线 MC430F14实物图如下: >>关于MC430F14开发板详情>> 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。 新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。

美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前DS18B20批量采购价格仅10元左右。 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的主要特性 (1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

DS18B20数字温度计使用

DS18B20数字温度计使用 1.DS18B20基本知识 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 1、DS18B20产品的特点 (1)、只要求一个端口即可实现通信。 (2)、在DS18B20中的每个器件上都有独一无二的序列号。 (3)、实际应用中不需要外部任何元器件即可实现测温。 (4)、测量温度范围在-55。C到+125。C之间。 (5)、数字温度计的分辨率用户可以从9位到12位选择。 (6)、内部有温度上、下限告警设置。 2、DS18B20的引脚介绍 TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。 (底视图)图1 表1 DS18B20详细引脚功能描述 3. DS18B20的使用方法 由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都

是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 4.实验任务 用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+100度之间,用8位数码管显示出来。 5.电路原理图 6.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。 (2).把“单片机系统”区域中的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。 (3).把DS18B20芯片插入“四路单总线”区域中的任一个插座中,注意电源与地信号不要接反。 (4).把“四路单总线”区域中的对应的DQ端子连接到“单片机系统” 区域中的P3.7/RD端子上。 7. C语言源程序 #include

DS18B20温度传感器实验

DS18B20温度传感器实验 TEMP1 EQU 5AH ;符号位和百位公用的存放单元TEMP2 EQU 5BH ;十位存放单元 TEMP3 EQU 5CH ;个位存放单元 TEMP4 EQU 5DH ; TEMP5 EQU 5EH TEMP6 EQU 5FH ;数据临时存放单元 TEMP7 EQU 60H TEMP8 EQU 61H ORG 0000H AJMP MAIN ORG 0020H MAIN: MOV SP,#70H LCALL INT ;调用DS18B20初始化函数MAIN1: LCALL GET_TEMP ;调用温度转换函数 LCALL CHULI ;调用温度计算函数 LCALL DISP ;调用温度显示函数 AJMP MAIN1 ;循环 INT: L0:

SETB P3.7 ;先释放DQ总线 MOV R2,#250 ;给R2赋延时初值,同时可让DQ保持高电平2us L1: CLR P3.7 ;给DQ一个复位低电平 DJNZ R2,L1 ;保持低电平的时间至少为480us SETB P3.7 ;再次拉高DQ释放总线 MOV R2,#25 L2: DJNZ R2,L2 ;保持15us-60us CLR C ORL C,P3.7 ;判断是否收到低脉冲 JC L0 MOV R6,#100 L3: ORL C,P3.7 DJNZ R6,L3 ;存在低脉冲保持保持60us-240us ; JC L0 ;否则继续从头开始,继续判断 SETB P3.7 RET ;调用温度转换函数 GET_TEMP: CLR PSW.4 SETB PSW.3 ;设置工作寄存器当前所在的区域 CLR EA ;使用DS18B20前一定要禁止任何中断 LCALL INT ;初始化DS18B20 MOV A,#0CCH ;送入跳过ROM命令 LCALL WRITE MOV A,#44H ;送入温度转换命令 LCALL WRITE LCALL INT ;温度转换完成,再次初始化18b20 MOV A,#0CCH ;送入跳过ROM命令 LCALL WRITE MOV A,#0BEH ;送入读温度暂存器命令 LCALL WRITE LCALL READ MOV TEMP4,A ;读出温度的低字节存在TEMP4 LCALL READ MOV TEMP5,A ;读出温度的高字节存在TEMP5 SETB EA RET CHULI : MOV A,TEMP5 ;将温度的高字节取出 JNB ACC.7,ZHENG ;判断最高位是否为0,为0则表示温度为正,则转到ZHENG MOV A,TEMP4 ;否则温度为负,将温度的低字节取出

温度传感器实验设计概要

成都理工大学工程 技术学院 单片机课程设计报告 数字温度计设计

摘要 在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,作为自动化专业的学生,我们学习了单片机,就应该把它熟练应用到生活之中来。本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。 关键词:单片机,数字控制,数码管显示,温度计,DS18B20,AT89S52。

目录 1概述 (4) 1.1设计目的 (4) 1.2设计原理 (4) 1.3设计难点 (4) 2 系统总体方案及硬件设计...................................................... 错误!未定义书签。 2.1数字温度计设计方案论证 (4) 2.2.1 主控制器 (5) 2.4 系统整体硬件电路设计 (7) 3系统软件设计 (8) 3.1初始化程序 (8) 3.2读出温度子程序 (9) 3.3读、写时序子程序 (10) 3.4 温度处理子程序 (11) 3.5 显示程序 (12) 4 Proteus软件仿真 (13) 5硬件实物 (14) 6课程设计体会 (15) 附录1: (14) 附录2: (21)

1概述 1.1设计目的 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,可广泛用于食品库、冷库、粮库、温室大棚等需要控制温度的地方。目前,该产品已在温控系统中得到广泛的应用。 1.2设计原理 本系统是一个基于单片机AT89S52的数字温度计的设计,用来测量环境温度,测量范围为-50℃—110℃度。整个设计系统分为4部分:单片机控制、温度传感器、数码显示以及键盘控制电路。整个设计是以AT89S52为核心,通过数字温度传感器DS18B20来实现环境温度的采集和A/D转换,同时因其输出为数字形式,且为串行输出,这就方便了单片机进行数据处理,但同时也对编程提出了更高的要求。单片机把采集到的温度进行相应的转换后,使之能够方便地在数码管上输出。LED采用三位一体共阳的数码管。 1.3设计难点此设计的重点在于编程,程序要实现温度的采集、转换、显示和上下限温度报警,其外围电路所用器件较少,相对简单,实现容易。 2 系统总体方案及硬件设计 2.1数字温度计设计方案论证 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 2.2总体设计框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用3位共阴LED数码管以串口传送数据实现温度显示。

DS18b20温度传感器

最小的温度显示程序-c51 (2010-12-07 00:45:27) 转载 分类:51单片机 标签: 杂谈 #include #include sbit DQ=P2^0; bit presence; unsigned char templ,temph; char array[10]={0x7e,0x48,0x3d,0x6d,0x4b,0x67,0x73,0x4c,0x7f,0x4f}; void Delay(unsigned int num)//可定义延时 { while( --num ); } bit Init_DS18B20(void) { DQ = 1; //DQ复位 Delay(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay(90); //精确延时大于 480us DQ = 1; //拉高总线 Delay(8); presence = DQ; //如果=0则初始化成功 =1则初始化失败 Delay(100); DQ = 1; return(presence); //返回信号,0=presence,1= no presence } unsigned int ReadOneChar(void) { unsigned char i = 0; unsigned char dat = 0;

for (i = 8; i > 0; i--) { DQ = 0; // 给脉冲信号 dat >>= 1; //位右移 DQ = 1; // 给脉冲信号等待传感器返回脉冲 if(DQ) dat |= 0x80; Delay(4); } return (dat); } void WriteOneChar(unsigned char dat) { unsigned char i = 0; for (i = 8; i > 0; i--) { DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat>>=1; } } void Read_Temperature(void) { Init_DS18B20(); WriteOneChar(0xcc); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 templ = ReadOneChar(); //温度低8位 temph = ReadOneChar(); //温度高8位 }

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.docsj.com/doc/1c5929809.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

大学物理实验-温度传感器实验报告

关于温度传感器特性的实验研究 摘要:温度传感器在人们的生活中有重要应用,是现代社会必不可少的东西。本文通过控制变量法,具体研究了三种温度传感器关于温度的特性,发现NTC电阻随温度升高而减小;PTC电阻随温度升高而增大;但两者的线性性都不好。热电偶的温差电动势关于温度有很好的线性性质。PN节作为常用的测温元件,线性性质也较好。本实验还利用PN节测出了波 尔兹曼常量和禁带宽度,与标准值符合的较好。 关键词:定标转化拟合数学软件 EXPERIMENTAL RESEARCH ON THE NATURE OF TEMPERATURE SENSOR 1.引言 温度是一个历史很长的物理量,为了测量它,人们发明了许多方法。温度传感器通过测温元件将温度转化为电学量进行测量,具有反应时间快、可连续测量等优点,因此有必要对其进行一定的研究。作者对三类测温元件进行了研究,分别得出了电阻率、电动势、正向压降随温度变化的关系。 2.热电阻的特性 2.1实验原理 2.1.1Pt100铂电阻的测温原理 和其他金属一样,铂(Pt)的电阻值随温度变化而变化,并且具有很好的重现性和稳定性。利用铂的此种物理特性制成的传感器称为铂电阻温度传感器,通常使用的铂电阻温度传感器零度阻值为100Ω(即Pt100)。铂电阻温度传感器精度高,应用温度范围广,是中低温区(-200℃~650℃)最常用的一种温度检测器,本实验即采用这种铂电阻作为标准测温器件来定标其他温度传感器的温度特性曲线,为此,首先要对铂电阻本身进行定标。 按IEC751国际标准,铂电阻温度系数TCR定义如下: TCR=(R100-R0)/(R0×100) (1.1) 其中R100和R0分别是100℃和0℃时标准电阻值(R100=138.51Ω,R0=100.00Ω),代入上式可得到Pt100的TCR为0.003851。 Pt100铂电阻的阻值随温度变化的计算公式如下: Rt=R0[1+At+B t2+C(t-100)t3] (-200℃

DS18B20温度传感器实验

DS18B20温度传感器实验Proteus仿真原理图: DS18B20内部结构:

/************************* 源程序 ****************************/ #include #include #define uint unsigned int #define uchar unsigned char #define delayNOP() {_nop_();_nop_();_nop_();_nop_();} sbit DQ = P3^3; sbit LCD_RS = P2^0; sbit LCD_RW = P2^1; sbit LCD_EN = P2^2; uchar code Temp_Disp_Title[]={"Current Temp : "}; uchar Current_Temp_Display_Buffer[]={" TEMP: "}; uchar code Temperature_Char[8] = { 0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x0 0 }; uchar code df_Table[]= { 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 }; uchar CurrentT = 0; uchar Temp_Value[]={0x00,0x00}; uchar Display_Digit[]={0,0,0,0}; bit DS18B20_IS_OK = 1; void DelayXus(uint x) { uchar i; while(x--) { for(i=0;i<200;i++); } } bit LCD_Busy_Check(){ bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN=0; return result; } void Write_LCD_Command(uchar cmd) { while(LCD_Busy_Check()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; }

DS18B20温度传感器使用方法以及代码

第7章 DS18B20温度传感器 7.1 温度传感器概述 温度传感器是各种传感器中最常用的一种,早起使用的是模拟温 度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可以计算出当前环境温度。随着科技的进步,现代的温度传感器已经走向数字化,外形小,接口简单,广泛应用在生产实践的各个领域,为我们的生活提供便利。随着现代仪器的发展,微型化、集成化、数字化、正成为传感器发展的一个重要方向。美国DALLS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即单片机接口仅需占用一个 I/O端口,无需任何外部元件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。 7.2 DS18B20温度传感器介绍 DS18B20是美国DALLAS^导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9?12位的数字 值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入 DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20供电,而无需额外电源。因而使用

DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 1. DS18B20温度传感器的特性 ①独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口 线即可实现微处理器与DS18B20勺双向通讯。 ②在使用中不需要任何外围元件。 ③可用数据线供电,电压范围:+3.0~ +5.5 V。 ④测温范围:-55 ~+125 C。固有测温分辨率为0.5 C。 ⑤通过编程可实现9~12位的数字读数方式。 ⑥用户可自设定非易失性的报警上下限值。 ⑦支持多点组网功能,多个 DS18B20可以并联在惟一的三线上,实现多点测温。 ⑧负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 2. 引脚介绍 DS18B20有两种封装:三脚TO-92直插式(用的最多、最普遍的封装)和八脚SOIC贴片式。下图为实验板上直插式 DS18B20的原理图。 3. 工作原理 单片机需要怎样工作才能将DS18B2 0中的温度数据独取出来呢?F面将给出详细分析

基于ds18b20的数字温度计设计

目录 (一)设计内容及要求 (2) (二)系统的硬件选择及设计 (3) 2.1核心处理器的设计 (3) 1、AT89C51引脚图 (3) 2、AT89C51引脚功能介绍 (3) 2.2温度采集电路的设计 (5) 1、单线技术 (5) 2、DS18B20的简介 (6) 3、DS18B20内部结构 (8) 4、DS18B20测温原理 (11) 5、温度采集电路 (12) 2.3温度显示电路的设计 (13) 1、LED数码管的操作 (13) 2、温度显示电路 (13) (三)系统的软件设计 (15) 3.1概述 (15) 3.2 DS18B20的单线协议和命令 (15) (1)初始化 (15) (2)ROM操作命令 (15) (3)内存操作命令 (16) 3.3温度采集程序流程图的设计 (18) 3.4温度显示程序流程图的设计 (19) (四) 结论 (19) (五)汇编代码 (20) (六)参考文献 (27)

基于DS18B20的数字温度计设计 摘要: 在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过两位共阴极LED数码显示管并行传送数据,实现温度显示。本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用汇编语言实现温度的采集与显示。通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。 关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计 (一)设计内容及要求 本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED 数码管及必要的外围电路,构成了一个多功能单片机数字温度计。 本次设计的主要思路是利用51系列单片机,数字温度传感器DS18B20和LED 数码显示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。通过对单片机编写相应的程序,达到能够实时检测周围温度的目的。 通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。其具体的要求如下: 1、根据设计要求,选用AT89C51单片机为核心器件; 2、温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的P2.2引脚相连; 3、显示电路采用两位LED数码管以串口并行输出方式动态显示。

温度传感器实验

DH-SJ5温度传感器设计性实验装置 使 用 说 明 书 杭州大华科教仪器研究所 杭州大华仪器制造有限公司

一、温度传感器概述 温度是表征物体冷热程度的物理量。温度只能通过物体随温度变化的某些特性来间接测量。测温传感器就是将温度信息转换成易于传递和处理的电信号的传感器。 一、测温传感器的分类 1.1电阻式传感器 热电阻式传感器是利用导电物体的电阻率随温度而变化的效应制成的传感器。热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。它分为金属热电阻和半导体热电阻两大类。金属热电阻的电阻值和温度一般可以用以下的近似关系式表示,即 R t =R t0[1+α (t-t 0)] 式中,R t 为温度t 时的阻值;R t0为温度t 0(通常t 0=0℃)时对应电阻值;α为温度系数。 半导体热敏电阻的阻值和温度关系为 t B t Ae R = 式中R t 为温度为t 时的阻值;A 、B 取决于半导体材料的结构的常数。 常用的热电阻有铂热电阻、热敏电阻和铜热电阻。其中铂电阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。 金属铂具有电阻温度系数大,感应灵敏;电阻率高,元件尺寸小;电阻值随温度变化而变化基本呈线性关系;在测温范围内,物理、化学性能稳定,长期复现性好,测量精度高,是目前公认制造热电阻的最好材料。但铂在高温下,易受还原性介质的污染,使铂丝变脆并改变电阻与温度之间的线性关系,因此使用时应装在保护套管中。用铂的此种物理特性制成的传感器称为铂电阻温度传感器,利用铂的此种物理特性制成的传感器称为铂电阻温度传感器,通常使用的铂电阻温度传感器零度阻值为100Ω,电阻变化率为0.3851Ω/℃,TCR=(R 100-R 0)/(R 0×100) ,R 0为0℃的阻值,R 100为100℃的阻值,按IEC751国际标准,温度系数TCR=0.003851,Pt100(R 0=100Ω)、Pt1000(R 0=1000Ω)为统一设计型铂电阻。铂热电阻的特点是物理化学性能稳定。尤其是耐氧化能力强、测量精度高、应用温度范围广,有很好的重现性,是中低温区(-200℃~650℃)最常用的一种温度检测器。 热敏电阻(Thermally Sensitive Resistor,简称为Thermistor),是对温度敏感的电阻的总称,是一种电阻元件,即电阻值随温度变化的电阻。一般分为两种基本类型:负温度系数热敏电阻NTC (Negative Temperature Coefficient )和正温度系数热敏电阻PTC (Positive Temperature Coefficient )。NTC 热敏电阻表现为随温度的上升,其电阻值下降;而PTC 热敏电阻正好相反。 NTC 热敏热电阻大多数是由Mn(锰)、Ni(镍)、Co(钴)、Fe(铁)、Cu(铜)等金属的氧化物经过烧结而成的半导体材料制成。因此,不能在太高的温度场合下使用。不竟然,其使用范围有的也可以达到了-200℃~700℃,但一般的情况下,其通常的使用范围在-100℃~300℃。 NTC 热敏热电阻热响应时间一般跟封装形式、阻值、材料常数(热敏指数)、热时间常数有关。材料常数(热敏指数)B 值反映了两个温度之间的电阻变化,热敏电阻的特性就是由它的大小决定的,B 值(K )被定义为:2 12 1212111lg lg 3026.211ln ln T T R R T T R R B --?=--= ; R T1:温度 T 1(K )时的零功率电阻值;R T2 :温度 T 2(K )时的零功率电阻值;T 1,T 2 :

DS18B20数字温度计的设计

单片机原理及应用 课程设计报告书 题目:DS18B20数字温度计的设计 姓名学号:张琪05200102 吕群武05200166 蔡凌志05200178 专业班级:电信1班 指导老师:余琼蓉 设计时间:2010年12月

成绩评定

一、课题介绍 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器18B20,单片机AT89S52,,四位共阴极数码管一个,电容电阻若干。18B20支持“一线总线”接口,测量温度范围-55°C~+125°C 。在-10~+85°C 范围内,精度为±0.5°C 。18B20的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED 显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED 显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55°C~+128°C ,由于能力有限,不能实现报警功能。 二、方案论证 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 方案设计框图如下: 方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

温度传感器实验

温度传感器实验 传感器是将非电信号转换为电信号的装置,因为电信号容易传递和处理。温度是物体冷热程度的标志,温度传感器就是将温度转换成电信号的传感器。 一.测温传感器的分类 电阻式传感器。常用的有铂热电阻、热敏电阻和铜热电阻。其中铂电阻(Pt100)精确度最高,重现性和稳定性很好,不仅应用广泛,而且被制成标准的基准仪。热敏电阻(Thermally Sensitive Resistor,简称Thermistor),是温度敏感的电阻的总称,是属于热电阻的一部分,一般分为负温度系数热敏电阻NTC(Negative Temperature Coefficient)和正温度系数热敏电阻PTC(Positive Temperature Coefficient)。NTC的电阻值随温度的上升而下降;PTC正好相反。 其它传感器。半导体PN结温度传感器,晶体温度传感器,非接触型温度传感器,热电偶温度传感器,光纤温度传感器,液压温度传感器,智能温度传感器。 二.DH-SJ5温度传感器实验装置 DH-SJ5型温度传感实验装置以九孔板为实验平台,包括铂电阻Pt100、热敏电阻(NTC 和PTC)、铜电阻Cu50、铜-康铜热电偶、PN结、AD590和LM35等分离的温度传感器探头,各种电子元件。能提供了多种测温电路和方法。 本装置采用Pt100铂电阻测温,智能温度控制器控温,控温精度高、范围广、可自由设定所需的温度,数字显示;用低电压恒流加热、安全可靠、无污染,加热电流连续可调;分离的温度传感器,形象直观,组合方便,可比较不同传感器的温度特性;降温实验可采用风扇快速降温;整体结构设计新颖,紧凑合理,外型美观大方。 主要技术指标:电源:AC220V±10%(50/60Hz),工作温度0~40℃,相对湿度<80%,无腐蚀性场合,控温范围:室温~120℃,控温精度:±0.2℃,分辨率:0.1℃。 温控仪与恒温炉的连线如图1,Pt100的插头与温控仪上的插座颜色应当对应连接。 图1DH-SJ5温度传感器实验装置 恒温炉上方有六个插孔,可以插一个测温的Pt100和五个待测量的温度传感器。 警告:在做实验中或做完实验后,禁止手触传感器的钢护套,防止烫伤!

温度传感器DS18B20工作原理

温度传感器: DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。 2 DS18B20的内部结构 DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。 ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 图1 DS18B20的内部结构

图2DS18B20的管脚排列 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 温度值高字节 高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下: R1、R0决定温度转换的精度位数:R1R0=“00”,9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;未编程时默认为12位精度。 高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。 3 DS18B20的工作时序 DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3(a)(b)(c)所示。

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所示。 图1 DS18B20引脚分布图 图2 64位ROM 结构图 DS18B20高速暂存器共9个存储单元,如表所示: 序号 寄存器名称 作 用 序号 寄存器名称 作 用 0 温度低字节 以16位补码形式存放 4 配置寄存器 1 温度高字节 5、6、7 保留 2 TH/用户字节1 存放温度上限 8 CRC 3 HL/用户字节2 存放温度下限 以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM 中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。 LSB MSB 8位检验CRC 48位序列号 8位工厂代码(10H )

相关文档
相关文档 最新文档