温度传感器ds18b20实验报告

合集下载

DS18B20温度传感器实验

DS18B20温度传感器实验

DS18B20温度传感器实验#include <reg52.h>#include <intrins.h>#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,0x00};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){if(Current_Temp_Display_Buffer[8] == ' ')Current_Temp_Display_Buffer[8] = '-';else if(Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] = '-';elseCurrent_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);}}。

DS18B20温度测量设计实验报告

DS18B20温度测量设计实验报告

课程设计说明书(论文)题目: 温度测量课程名称: 单片机课程设计专业: 电子信息工程班级: 电信0901学生姓名:学号: 31 16 10设计地点: 3#北603指导教师:设计起止时间:2012年5月2日至2012年5月22日目录一、设计功能要求: (3)二、系统总体设计方案: (5)1、基本设计思想: (5)2、实施方案论述: (6)三、系统分析与设计: (6)1、程序流程图及说明 (6)2、温度计的的电路设计 (9)四、源码清单: (12)五、改进意见与收获体会: (18)六、主要参考资料: (19)一、设计功能要求:本次的设计主要是利用了数字温度传感器DS18B20测量温度信号,计算后可以在LCD数码管上显示相应的温度值。

其温度测量范围为-55~125℃,精确到0.5℃。

本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。

数字温度计所测量的温度采用数字显示,控制器使用单片机89C51,测温传感器使用DS18B20,用LCD1602实现温度显示。

从温度传感器DS18B20可以很容易直接读取被测温度值,进行转换即满足设计要求。

本次使用的单片机89C51和MCS-51是完全兼容的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器。

其主要特点如下:• 8位CPU。

•工作频率最高为24M。

• 128B数据存储器。

• 4KB程序存储器。

•程序存储器的寻址空间为64KB。

•片外数据存储器的寻址空间为64KB。

• 128个用户位寻址空间。

• 21个字节特殊功能寄存器。

• 4个8位的并行I/O接口:P0、P1、P2、P3。

•两个16位定时/计数器。

•两个优先级别的5个中断源。

• 1个全双工的串行I/O接口,可多机通信。

• 111条指令,喊乘法指令和除法指令。

DS18B20的报告(附带程序)..

DS18B20的报告(附带程序)..

DS18B20温度传感器数字温度传感器DS18B20是由Dallas半导体公司生产的,它具有耐磨耐碰,体积小,使用方便,封装形式多样(如图1.1.1),适用于各种狭小空间设备数字测温和控制领域。

图1.1.1引脚说明:GND为接地引脚;DQ为数据输入输出脚。

用于单线操作,漏极开路;VCC接电源正;单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。

如图1.1.2是温度传感器DS18B20的接线图图1.1.2温度传感器DS18B20的参数:●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快●被测温度用符号扩展的16位数字量方式串行输出●有两种供电方式既可以直接加 3.0~5.5V的电源,也可以采用寄生电源方式由数据线供电DS18B20内部结构及功能:DS18B20的内部结构如图1.1.3所示。

主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。

开始8位是产品类型的编号,接着共有48 位是DS18B20 唯一的序列号。

最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。

高速暂存存储器:高速暂存存储器由9个字节组成,其分配如图所示。

高速暂存存储器字节0~1 温度寄存器当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。

大三上课设实验(DS18B20)报告

大三上课设实验(DS18B20)报告

简易温度测量仪班级:0120902队员:指导老师:摘要温度测量仪主要有以DS18B20为核心的温度采集电路,以蜂鸣器为核心的报警电路以及学习板电路三部分电路构成。

软件实现方面包括三个模块:温度采集模块、报警模块、按键与显示模块。

本温度测试仪采用数码管显示温度测试范围0~+125℃,可实现两点温度测量、摄氏温度华氏温度相互转换、设置温度显示精度、设置报警温度上下限、蜂鸣器报警等五个功能。

关键词:温度测量仪 DS18B20 蜂鸣器分辨率多点测量目录目录……………………………………………………1第一章设计目的 (3)第二章方案的选取 (3)第三章DS18B20测温电路系统设计要求 (4)第四章DS18B20测温电路系统设计 (5)1.DS18B20测温电路的组成框图 (5)2. DS18B20的简介 (5)2.1 DS18B20的内部结构 (6)2.2 DS18B20的工作过程及时序 (7)3. 系统硬件电路 (10)3.1 DS18B20温度传感器与单片机的接口电路 (10)3.2 蜂鸣器电路 (11)4. 系统软件设计 (11)4.1系统主程序流程图 (11)4.2重点模块程序分析 (12)第五章系统测试和结论 (14)6.1测试条件及方案 (14)6.2测试结果和分析 (15)第六章设计体会 (15)一、设计目的1.进一步熟悉和掌握DS18B20芯片的结构及工作原理。

2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事相应打下基础。

6.了解 DS1820数字温度传感器特性7. 掌握单片机基本功能的运用、简单接口电路如键盘、数码管显示电路设计及其相应驱动软件的编制软、硬件系统的调试二、方案的选取方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

温度监测系统实验报告

温度监测系统实验报告

一、实验目的1. 熟悉温度监测系统的基本组成和原理。

2. 掌握温度传感器的应用和数据处理方法。

3. 学会搭建简单的温度监测系统,并验证其功能。

二、实验原理温度监测系统主要由温度传感器、数据采集器、控制器、显示屏和报警装置等组成。

温度传感器将温度信号转换为电信号,数据采集器对电信号进行采集和处理,控制器根据设定的温度范围进行控制,显示屏显示温度信息,报警装置在温度超出设定范围时发出警报。

本实验采用DS18B20数字温度传感器,该传感器具有体积小、精度高、抗干扰能力强等特点。

数据采集器采用单片机(如STC89C52)作为核心控制器,通过并行接口读取温度传感器输出的数字信号,并进行相应的处理。

三、实验器材1. DS18B20数字温度传感器2. STC89C52单片机3. LCD显示屏4. 电阻、电容等电子元件5. 电源模块6. 连接线四、实验步骤1. 搭建温度监测系统电路,包括温度传感器、单片机、显示屏、报警装置等。

2. 编写程序,实现以下功能:(1)初始化单片机系统;(2)读取温度传感器数据;(3)将温度数据转换为摄氏度;(4)显示温度数据;(5)判断温度是否超出设定范围,若超出则触发报警。

3. 连接电源,启动系统,观察温度数据变化和报警情况。

五、实验结果与分析1. 系统搭建成功,能够稳定运行,实时显示温度数据。

2. 温度数据转换准确,显示清晰。

3. 当温度超出设定范围时,系统能够及时触发报警。

六、实验总结1. 本实验成功地搭建了一个简单的温度监测系统,实现了温度数据的采集、处理和显示。

2. 通过实验,加深了对温度传感器、单片机、显示屏等电子元件的理解和应用。

3. 实验过程中,学会了如何编写程序,实现温度数据的处理和显示。

七、实验建议1. 在实验过程中,注意电路连接的准确性,避免因连接错误导致实验失败。

2. 在编写程序时,注意代码的简洁性和可读性,便于后续修改和维护。

3. 可以尝试将温度监测系统与其他功能结合,如数据存储、远程传输等,提高系统的实用性和功能。

(完整word版)基于单片机的DS18B20设计实验报告

(完整word版)基于单片机的DS18B20设计实验报告

第1章引言在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。

其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。

因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。

本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。

本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于测温比较准确得场所,或科研实验室使用。

该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用LED.第2章任务与要求2.1测量范围-50~110°C,精确到0.5°C;2.2利用数字温度传感器DS18B20测量温度信号;2.3所测得温度采用数字显示,计算后在液晶显示器上显示相应得温度值;第3章方案设计及论证3.1温度检测模块的设计及论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。

而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

3.2显示模块的设计及论证LED是发光二极管Light Emitting Diode 的英文缩写。

LED显示屏是由发光二极管排列组成的一显示器件。

温度传感器实验报告

温度传感器实验报告

一、实验原理DS18B20 测温原理如图 1.2 所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号发送给计数器1。

高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器 1 和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到0时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。

图 1.1 测温原理图二、测温系统硬件电路图本测温系统选择体积小、成本低、内带2KEEPROM的89C2051作为控制芯片,晶振采用12MHZ,用74LS07驱动四个LED数码管和一个继电器线圈从而驱动电加热设备。

P3.5口作为采集温度信号线,P1口作为显示数据线,与P3.3,P3.4组成显示的个位、十位及符号位,采用动态扫描显示。

在本系统中测控一路温度信号,DS18B20通过单总线方式连接在单片机的P3.5引脚上,可设定所需的温度测定值(包括上限值和下限值),P3.1引脚控制电热设备启动与停止,从而达到控制温度效果。

整个系统的硬件原理图如图2.1所示:图2.1 测温系统硬件原理图二、实验过程记录3.1 DS18B20控制过程DS18B20的操作是通过执行操作命令实现的,其中包含复位脉冲、响应脉冲、读、写时序,时序的具体要求如下:(1)复位脉冲:单片机发出一个宽为480—960μs的负脉冲之后再发出5—60μs的正脉冲,此时DS18B20会发出一个60—240μs的响应脉冲,复位时序结束。

也就是呼应阶段。

(2)写时间片:写一位二进制的信息,周期至少为61μS,其中含1μS的恢复时间,单片机启动写程序后15—60μs期间DS18B20自动采样数据线,低电平为“0”,高电平为“1”。

温度传感器实验报告

温度传感器实验报告

温度传感器实验报告
一、实验目的
本实验旨在通过使用温度传感器来检测不同环境下的温度变化,并通过实验数据分析温度传感器的性能和准确度。

二、实验仪器
1. Arduino Uno控制板
2. DS18B20数字温度传感器
3. 杜邦线
4. 电脑
三、实验步骤
1. 连接DS18B20温度传感器到Arduino Uno控制板上。

2. 使用Arduino软件编写读取温度传感器数据的程序。

3. 通过串口监视器读取传感器采集到的温度数据。

4. 将温度传感器放置在不同环境温度下,记录数据并进行分析。

四、实验数据
在室内环境下,温度传感器读取的数据平均值为25摄氏度;在户外阳光下,温度传感器读取的数据平均值为35摄氏度。

五、实验结果分析
通过实验数据分析可知,DS18B20温度传感器对环境温度有较高的
敏感度和准确性,能够较精准地反映环境温度的变化。

在不同环境温
度下,传感器能够稳定地输出准确的温度数据。

六、实验结论
本实验通过对DS18B20温度传感器的测试和分析,验证了其在温
度检测方面的可靠性和准确性。

温度传感器可以广泛应用于各种领域,如气象监测、工业控制等。

通过本次实验,我们对温度传感器的性能
有了更深入的了解。

七、参考文献
1. DS18B20温度传感器数据手册
2. Arduino Uno官方网站
以上为实验报告内容,谢谢!。

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

温度传感器ds18b20实验报告
温度传感器DS18B20实验报告
引言:
温度传感器是一种用于测量环境温度的设备,它在许多领域都有广泛的应用,如气象学、工业控制、冷链物流等。

本实验报告将介绍DS18B20温度传感器的原理、实验装置和实验结果,并对其性能进行评估。

一、实验原理
DS18B20温度传感器是一种数字温度传感器,采用单总线接口进行通信。

它采用了最新的数字温度传感器技术,具有高精度、低功耗、抗干扰等特点。

其工作原理是利用温度对半导体材料电阻值的影响,通过测量电阻值的变化来确定温度。

二、实验装置
本实验使用的实验装置包括DS18B20温度传感器、Arduino开发板、杜邦线和计算机。

Arduino开发板用于读取传感器的温度数据,并通过串口将数据传输到计算机上进行处理和显示。

三、实验步骤
1. 连接电路:将DS18B20温度传感器的VCC引脚连接到Arduino开发板的5V 引脚,GND引脚连接到GND引脚,DQ引脚连接到Arduino开发板的数字引脚2。

2. 编写代码:使用Arduino开发环境编写代码,通过OneWire库和DallasTemperature库读取DS18B20传感器的温度数据。

3. 上传代码:将编写好的代码上传到Arduino开发板上。

4. 监测温度:打开串口监视器,可以看到DS18B20传感器实时的温度数据。

四、实验结果
在实验过程中,我们将DS18B20温度传感器放置在不同的环境中,记录了其测
得的温度数据。

实验结果显示,DS18B20温度传感器具有较高的精度和稳定性,能够准确地测量环境温度。

五、实验评估
本实验评估了DS18B20温度传感器的性能,包括精度、响应时间和抗干扰能力。

实验结果表明,DS18B20温度传感器具有较高的精度,能够在0.5℃的误差范
围内测量温度。

响应时间较快,能够在毫秒级别内完成温度测量。

同时,
DS18B20温度传感器具有较好的抗干扰能力,能够在干扰环境下保持稳定的测
量结果。

六、应用前景
DS18B20温度传感器具有广泛的应用前景。

在气象学领域,它可以用于测量气
象站、气象球等的温度,为气象预报提供准确的数据。

在工业控制领域,它可
以用于测量机器设备的温度,实现温度的自动控制。

在冷链物流领域,它可以
用于监测货物的温度,确保货物在运输过程中的质量和安全。

结论:
本实验通过对DS18B20温度传感器的实验研究,验证了其高精度、低功耗、抗
干扰等特点。

DS18B20温度传感器具有广泛的应用前景,在气象学、工业控制、冷链物流等领域都有重要的应用价值。

通过进一步的研究和改进,可以提高
DS18B20温度传感器的性能,满足更多领域的需求。

相关文档
最新文档