温度传感器实验设计概要

合集下载

温度传感器实验

温度传感器实验

温度传感器实验一、实验原理:温度传感器在各个领域运用极为广泛,其中热电偶、热敏电阻(包括金属和半导体热敏电阻)和集成电路温度传感器尤为突出。

热电偶应用金属的热电效应将温度变化直接转换为电压,用的有K型、J型和B型等,表征热电偶的参数是分度号。

金属材料的电阻率随温度的升降而升降,选用一些电阻温度系数较大且比较稳定的金属如铂、铜、镍等可制成金属热敏电阻。

半导体PN结对温度变化十分敏感,PN结的电流与端电压随温度变化呈线性关系,集成电路温度传感器利用半导体PN结的温度特性制成,其温度检测的依据是PN结正向电压和温度的关系,即当集成电路中晶体管的集电极偏置电流Ic为常数时,基极与发射极之间的电压与温度近似为线性关系。

集成电路温度传感器又分为电压输出型和电流输出型,即输出电压(电流)随温度变化呈线性关系,电压输出型一般以0 ℃为零点,温度系数为10mV/℃;电流输出型一般以0°K为零点,温度系数1μA/K,更适合长距离测量。

本实验旨在通过热电偶、金属热敏电阻和集成电路温度传感器的相关实验,认识、了解其特性及使用方法。

二、实验材料:K型热电偶、Pt100铂热电阻、AD590、OP77运放、LM35、TL431、LM324、温度计、小电炉、烧杯,三、实验内容:(一)热电偶实验将热电偶热端置于0—100℃的环境中,通过K 型热电偶的温度/电压转换电路,观察放大器输出端的电平变化,学会热电偶及分度表的使用。

图1-1是K 型热电偶的温度/电压转换电路,图中由热电偶、放大电路等构成,热电偶的输出电压极小,每1℃约为40 μV ,因此运算放大器要采用高灵敏度器件,本电路中采用OP77运算放大器接成同相放大电路形式。

K 型热电偶的100 ℃的感应电动势为4.095mV ,为观察方便,运算放大器增益Av 设为Av =1000倍。

此外电路还有由温度传感器集成电路LM35D构成的冷端温度补偿电路。

该集成电路的输出为10mV /℃,通过电阻分压,在 端可以产生40.44μV*t(t为环境温度)热电偶热电动势的电压。

实验十四温度传感器实验讲述

实验十四温度传感器实验讲述

实验十四温度传感器实验一.实验目的了解数字式温度传感器DS18B20的使用方法。

二.实验原理1.硬件介绍DS18B20是由DALLAS半导体公司推出的一种的“一线总线”接口的温度传感器。

与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。

一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,测量温度范围为-55~+125℃,精度为±0.5℃。

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

它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~l2位的数字值读数方式。

它工作在3—5.5 V的电压范围。

其内部结构见下图:图1 DS18B20内部结构图ROM中的64位序列号是出厂前被光记好的,它可以看作是该DS18B20的地址序列码,每DS18B20的64位序列号均不相同。

64位ROM的排列是:前8位是产品家族码,接着48位是DS18B20的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5 +X4 +1)。

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

所有的单总线器件要求采用严格的信号时序,以保证数据的完整性。

DS18B20共有6种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。

所有这些信号,除了应答脉冲以外,都由主机发出同步信号。

并且发送所有的命令和数据都是字节的低位在前。

这里我们简单介绍这几个信号的时序:(1)复位脉冲和应答脉冲单总线上的所有通信都是以初始化序列开始。

主机输出低电平,保持低电平时间至少480 us,,以产生复位脉冲。

接着主机释放总线,4.7K的上拉电阻将单总线拉高,延时15~60 us,并进入接收模式(Rx)。

接着DS18B20拉低总线60~240 us,以产生低电平应答脉冲,若为低电平,再延时480 us。

温度传感实验报告大学

温度传感实验报告大学

一、实验目的1. 了解温度传感器的原理及分类。

2. 掌握常用温度传感器的性能特点及测量方法。

3. 通过实验验证温度传感器的温度特性。

4. 提高对传感器实验的操作技能。

二、实验原理温度传感器是将温度信号转换为电信号的装置,广泛应用于工业、医疗、农业等领域。

根据工作原理,温度传感器主要分为以下几类:1. 热电偶传感器:基于热电效应,将两种不同材料的导体熔接在一起,当两端温度不同时,回路中会产生热电动势。

2. 热敏电阻传感器:基于电阻值随温度变化的特性,分为正温度系数(PTC)和负温度系数(NTC)两种类型。

3. 集成温度传感器:将温度传感器与信号处理电路集成在一起,具有体积小、精度高、稳定性好等优点。

三、实验器材1. 温度传感器实验模块2. 热电偶(K型、E型)3. 热敏电阻(NTC)4. 数字万用表5. 数据采集器6. 连接电缆四、实验步骤1. 热电偶传感器实验1.1 将K型热电偶与数字万用表连接,进行冷端补偿。

1.2 将热电偶放入不同温度的恒温水中,记录对应的温度和电动势值。

1.3 绘制温度-电动势曲线,验证热电偶的温度特性。

2. 热敏电阻传感器实验2.1 将NTC热敏电阻与数据采集器连接。

2.2 改变热敏电阻的温度,记录对应的电阻值。

2.3 绘制温度-电阻曲线,验证NTC热敏电阻的温度特性。

3. 集成温度传感器实验3.1 将集成温度传感器与数据采集器连接。

3.2 改变环境温度,记录对应的温度值。

3.3 验证集成温度传感器的温度特性。

五、实验结果与分析1. 热电偶传感器实验实验结果显示,K型热电偶的温度特性较好,具有较高的精度和稳定性。

但在冷端补偿过程中,需注意温度计的准确度。

2. 热敏电阻传感器实验实验结果显示,NTC热敏电阻的温度特性较好,具有较高的灵敏度。

但在高温区,电阻值变化较大,易受环境因素影响。

3. 集成温度传感器实验实验结果显示,集成温度传感器的温度特性较好,具有较高的精度和稳定性。

温度传感器实验报告

温度传感器实验报告

温度传感器实验报告实验报告:温度传感器实验一、实验目的本实验旨在探究温度传感器的工作原理和特性,通过实际操作来了解温度传感器在温度测量中的应用。

二、实验原理温度传感器是一种将温度变化转化为可测量电信号的装置。

根据测量原理,温度传感器可分为多种类型,如热电偶、热敏电阻、红外线温度传感器等。

本实验中,我们将使用热电偶温度传感器进行实验。

热电偶温度传感器基于热电效应原理,将温度变化转化为热电势差信号。

热电偶由两种不同材料的导体组成,当两种导体连接在一起时,如果它们之间存在温差,就会在电路中产生电动势。

当温度发生变化时,热电势也会相应变化,从而实现对温度的测量。

三、实验步骤1.准备实验器材(1)热电偶温度传感器(2)数据采集器(3)恒温水槽(4)计时器(5)实验用的不同温度的水2.进行实验操作(1)将热电偶温度传感器连接到数据采集器上。

(2)将恒温水槽中的水加热至一定温度,然后将热电偶温度传感器放入水中,记录数据采集器显示的数值。

(3)将恒温水槽中的水降温至另一不同温度,然后将热电偶温度传感器放入水中,记录数据采集器显示的数值。

(4)重复步骤(3),直至记录下不同温度下的数据。

(5)将实验数据整理成表格,并进行数据分析。

四、实验数据分析实验数据如下表所示:根据热电偶温度传感器的测量原理,我们可以计算出每一组数据的热电势差值ΔT。

将所有热电势差值进行平均,得到平均热电势差值ΔTave。

根据公式T = ΔT / ΔTave × Tref,我们可以计算出实验测量的温度值T。

其中,Tref为参考温度值,本实验中取为25℃。

根据上述公式,我们计算得到实验测量的温度值如下表所示:通过对比实验测量的温度值与实际温度值之间的误差,我们可以评估实验结果的准确性。

同时,我们还可以分析实验数据的变化趋势,例如在不同温度范围内热电势的变化趋势等。

五、实验结论通过本次实验,我们了解了温度传感器的原理和特性,并掌握了热电偶温度传感器的使用方法。

温度传感器实验报告

温度传感器实验报告

温度传感器实验报告一、实验目的。

本实验旨在通过使用温度传感器,对不同温度下的电压信号进行测量和分析,从而掌握温度传感器的工作原理和特性,提高实验操作和数据处理能力。

二、实验仪器与设备。

1. Arduino开发板。

2. LM35温度传感器。

3. 连接线。

4. 电脑。

5. 串口数据线。

三、实验原理。

LM35是一种精密温度传感器,其输出电压与摄氏温度成线性关系。

在本实验中,我们将使用LM35温度传感器测量不同温度下的输出电压,并通过Arduino开发板将数据传输至电脑进行分析处理。

四、实验步骤。

1. 将LM35温度传感器与Arduino开发板连接,将传感器的输出端(中间脚)连接到Arduino的模拟输入引脚A0,将传感器的VCC端连接到Arduino的5V电源引脚,将传感器的地端连接到Arduino的地引脚。

2. 编写Arduino程序,通过模拟输入引脚A0读取LM35传感器的输出电压,并将其转换为摄氏温度值。

3. 将Arduino开发板通过串口数据线与电脑连接,将温度数据传输至电脑端。

4. 在电脑上使用串口通讯软件监测并记录温度数据。

5. 将LM35传感器分别置于不同温度环境下(如冰水混合物、常温水、温水等),记录并分析传感器输出的电压和对应的温度数值。

五、实验数据与分析。

通过实验测得的数据,我们可以绘制出LM35温度传感器的电压输出与温度之间的线性关系图。

通过分析图表数据,可以得出传感器的灵敏度、稳定性和线性度等特性参数。

六、实验结论。

通过本次实验,我们深入了解了LM35温度传感器的工作原理和特性,掌握了使用Arduino开发板对传感器输出进行数据采集和分析的方法。

同时,我们也了解到了温度传感器在不同温度环境下的表现,为今后的工程应用提供了重要参考。

七、实验总结。

温度传感器是一种常用的传感器元件,具有广泛的应用前景。

通过本次实验,我们不仅学会了对温度传感器进行实验操作,还掌握了数据采集和分析的方法,为今后的实验和工程应用打下了坚实的基础。

温度传感实验报告

温度传感实验报告

一、实验目的1. 了解温度传感器的基本原理和种类。

2. 掌握温度传感器的测量方法及其应用。

3. 分析不同温度传感器的性能特点。

4. 通过实验验证温度传感器的测量精度和可靠性。

二、实验器材1. 温度传感器实验模块2. 热电偶(K型、E型)3. CSY2001B型传感器系统综合实验台(以下简称主机)4. 温控电加热炉5. 连接电缆6. 万用表:VC9804A,附表笔及测温探头7. 万用表:VC9806,附表笔三、实验原理1. 热电偶测温原理热电偶是由两种不同金属丝熔接而成的闭合回路。

当热电偶两端处于不同温度时,回路中会产生一定的电流,这表明电路中有电势产生,即热电势。

热电势与热端和冷端的温度有关,通过测量热电势,可以确定热端的温度。

2. 热电偶标定以K型热电偶作为标准热电偶来校准E型热电偶。

被校热电偶的热电势与标准热电偶热电势的误差可以通过以下公式计算:\[ \Delta E = \frac{E_{\text{标}} - E_{\text{校}}}{E_{\text{标}}}\times 100\% \]其中,\( E_{\text{标}} \) 为标准热电偶的热电势,\( E_{\text{校}} \) 为被校热电偶的热电势。

3. 热电偶冷端补偿热电偶冷端温度不为0,因此需要通过冷端补偿来减小误差。

冷端补偿可以通过测量冷端温度,然后通过计算得到补偿后的热电势。

4. 铂热电阻铂热电阻是一种具有较高稳定性和准确性的温度传感器。

其电阻值与温度呈线性关系,常用于精密温度测量。

四、实验内容1. 热电偶测温实验将K型热电偶和E型热电偶分别连接到实验台上,通过调节加热炉的温度,观察并记录热电偶的热电势值。

同时,使用万用表测量加热炉的实际温度,分析热电偶的测量精度。

2. 热电偶标定实验以K型热电偶为标准热电偶,对E型热电偶进行标定。

记录标定数据,计算误差。

3. 铂热电阻测温实验将铂热电阻连接到实验台上,通过调节加热炉的温度,观察并记录铂热电阻的电阻值。

利用温度传感器设计温度测量实验方案

利用温度传感器设计温度测量实验方案
温度变化。
热电偶
基于热电效应原理,将温度差转 换为电势差。可测量较宽的温度 范围,具有稳定性好、抗干扰能 力强等特点,常用于高温测量。
集成温度传感器
将温度敏感元件、信号放大电路 和接口电路等集成在一个芯片上 ,具有体积小、线性度好、使用
方便等优点。
辅助设备与器材
数据采集卡
用于将温度传感器输出 的模拟信号转换为数字 信号,并传输给计算机
它们的工作原理都是基于物质的物理 性质与温度之间的关系,如热电偶的 温差电势、热电阻的阻值随温度变化 等。
常见的温度传感器有热电偶、热电阻 、集成温度传感器等。
02
实验器材与准备
温度传感器选择及特性
热敏电阻
利用材料电阻随温度变化的特性 ,将温度转换为电信号。具有灵 敏度高、响应速度快、体积小等 优点,适用于测量较小范围内的
了解温度传感器的工 作原理和使用方法。
温度测量原理
温度是表示物体冷热程度的物理量, 是物体内分子热运动平均动能的标志 。
温度测量通常利用物质的某些物理性 质(如热胀冷缩、电阻变化等)与温 度之间的对应关系,将这些物理量的 变化转换为温度的变化。
温度传感器工作原理
温度传感器是一种将温度变量转换为 可传送的标准化输出信号的仪表。
利用温度传感器设计温度
测量实验方案
汇报人:XX
2024-01-11
• 实验目的与原理 • 实验器材与准备 • 实验步骤与方法 • 数据处理与误差分析 • 实验结果展示与应用 • 实验注意事项与改进方向
01
实验目的与原理
实验目的
学习和掌握温度测量 的基本原理和方法。
通过实验,掌握利用 温度传感器进行温度 测量的技能。
隔热措施

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

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

大学物理实验_温度传感器实验报告大学物理实验报告:温度传感器实验一、实验目的1.学习和了解温度传感器的原理和应用。

2.掌握实验方法,提高实验技能。

3.探究温度变化对传感器输出的影响。

二、实验原理温度传感器是一种将温度变化转换为电信号的装置。

根据热敏电阻的阻值随温度变化的特性,当温度发生变化时,热敏电阻的阻值会相应地改变,从而输出与温度成比例的电信号。

常见的温度传感器有热电偶、热敏电阻等。

本实验采用热敏电阻作为温度传感器。

三、实验步骤1.准备实验器材:热敏电阻、数据采集器、恒温水槽、温度计、导线若干。

2.将热敏电阻置于恒温水槽中,连接导线至数据采集器。

3.将数据采集器与计算机连接,打开数据采集软件。

4.设置实验参数:采样频率、采样点数等。

5.将恒温水槽加热至预设温度,观察并记录实验数据。

6.改变恒温水槽的温度,重复步骤5。

7.对实验数据进行处理和分析。

四、实验结果与分析1.实验数据记录:在实验过程中,记录不同温度下的热敏电阻阻值和数据采集器的输出电压。

如下表所示:温度与数据采集器输出电压的关系图。

结果表明,随着温度的升高,热敏电阻阻值逐渐减小,数据采集器的输出电压逐渐增大。

这符合热敏电阻的特性。

3.误差分析:在实验过程中,可能存在以下误差来源:恒温水槽的温度波动、热敏电阻的灵敏度差异、导线连接不良等。

为了减小误差,可以采取以下措施:使用高精度温度计、提高导线连接的稳定性、多次测量取平均值等。

4.思考题:在本次实验中,我们采用了简单的数据采集器和热敏电阻进行温度测量。

在实际应用中,还可以通过其他方式进行温度测量,如采用单片机结合热敏电阻实现智能温度测量。

请思考:如何将热敏电阻与单片机连接?如何通过程序控制温度测量?如何实现温度数据的实时显示或传输?在实际应用中,还需要考虑哪些因素会影响测量精度?如何减小误差?五、结论与总结本实验通过热敏电阻和数据采集器测量了不同温度下的阻值和输出电压,验证了热敏电阻的阻值随温度变化的特性。

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

成都理工大学工程技术学院单片机课程设计报告数字温度计设计摘要在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,作为自动化专业的学生,我们学习了单片机,就应该把它熟练应用到生活之中来。

本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。

本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

关键词:单片机,数字控制,数码管显示,温度计,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数码管以串口传送数据实现温度显示。

图1 总体设计框图2.2.1 主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,适合便携手持式产品的设计使用。

AT89S52单片机芯片具有以下特性:1)指令集合芯片引脚与Intel公司的8052兼容;2)4KB片内在系统可编程FLASH程序存储器;3)时钟频率为0~33MHZ;4)128字节片内随机读写存储器(RAM);5)6个中断源,2级优先级;6)2个16位定时/记数器;7)全双工串行通信接口;8)监视定时器;9)两个数据指针;2.2.2 显示电路2.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。

DS18B20的性能特点如下:1.全数字温度转换及输出。

2.先进的单总线数据通信。

3.最高12为\位分辨率,精度可达±0.5摄氏度。

4.12位分辨率时的最大工作周期为750毫秒。

5.可选择寄生工作方式。

6.检测温度范围为+55℃~+125℃(-67℉~+257℉)。

7.内置EEPROM,限温报警功能。

8.64位光刻ROM,内置产品序列号,方便多机链接。

9.多样封装形式,便于不同硬件系统。

若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM 指令、执行温度转换存储器操作指令、等待500uS 温度转换时间。

紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM 的存储器操作指令、读数据2.3 DS18B20温度传感器与单片机的接口电路2.4 系统整体硬件电路设计2.4.1 主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,单片机主板电路如图5 所示:图5 单片机主板电路2.4.2 显示电路图6 温度显示电路3 系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。

3.1初始化程序复位:首先我们必须对DS18B20 芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS 的低电平信号。

当18B20 接到此复位信号后则会在15~60uS 后回发一个芯片的存在脉冲。

3.2读出温度子程序读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少1us的低电平,表示读时间的起始。

随后在总线被释放后的15us 中DS18B20会发送内部数据位,这时控制如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。

每一位的读取之前都由控制器加一个起始信号。

读出温度子程序的主要功能是读出RAM中的2字节,读出温度的低八位和高八位,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图如图8示图8 读温度程序流程图3.3读、写时序子程序读写的程序是本次设计中的重点和难点,通过我们对其时序的分析,从而写出高效的程序。

写时序子程序流程图读时序子程序流程图3.4 温度处理子程序计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图11所示图11 温度处理程序流程图3.5 显示程序此函数实现的对数码管显示的处理,其亮点在于可以直接对数码管进行操作,其本身是个两变量函数,第一个变量是要开通的位选,第二个变量是要显示的数据,这样我们可以直接方便而又简单直观的对数码管进行操作。

程序流程图如图12。

4 Proteus软件仿真6 课程设计体会通过为时2周的单片机课程设计,在老师的知道和帮助下我我和我的搭档共同完成数值温度级的设计学习。

其中包扩了程序的学习与修改,程序的仿真,电路的仿真以及实体电路的搭建,使之可以初略的读出温度值。

通过这次课程设计我学到了许多的知识,了解了DS18B20的使用和接线的方法,了解了数码管的显示原理。

学会了单片机程序写入的方法,更加熟悉了单片机的一些常用管脚的功能。

同时,在课程设计的过程中,我也发现了自己很多的不足之处,一些单片机用到的汇编指令不熟悉。

也暴露了在单片机理论课上学到的知识掌握的不好。

还有一点就是理论与实际的联系对我们学习和掌握单片机是非常有帮助的。

参考文献[1]DS18b20数据手册。

[2] 求是科技编著8051系列单片机C程序设计完全手册北京: 人民邮电出版社, 2006[3]余发山,王福忠.单片机原理及应用技术.徐州:中国矿业大学出版社,2003附录1:程序DQ BIT P3.7 ; 1 wire lineDP BIT P2.0swpH equ 0d2HswpL equ 0ffHWDLSB DATA 30H ;WDMSB DA TA 31H ;;*************************************************************** ORG 0000HLJMP MAINORG 000BHLJMP TMR0 ; Timer0 isr;********************************************************; Timer0 Interrupt Service RoutineTMR0: MOV TH0,#swpH ;轮流送温度值的高低两位到数码管.swph为0d2H MOV TL0,#swpLJB 21H,DSLJB 22H,DSL1MOV P0,43HORL P0,#01000000B ; 十位位选SETB P2.0;小数点不亮SJMP EXITDSL:MOV P0,42HORL P0,#00100000B ; 个位位选CPL P2.0 ;个位后面小数位亮SJMP EXIT1DSL1:MOV P0,41HORL P0,#00010000B ;小数位位选SETB P2.0 ;小数点不亮SJMP EXIT2;DSL2:; MOV P0,40H;ORL P0,#10000000B;SETB P2.0;SJMP EXIT3EXIT:CPL 21H ; 21h取反,即21h=1RETIEXIT1:CPL 22H ; 22h=1CPL 21H ;21h=0RETIEXIT2:; CPL 23H ;CPL 22H ;22h=0RETI; Main programMAIN:TOINIT:CLR EAMOV TMOD,#01HMOV TH0,#swpHMOV TL0,#swpLSETB EASETB ET0SETB TR0;*********************************************************** ;41H-43H清零MOV R2,#3MOV R0,#41HOVER:MOV @R0,#00HINC R0DJNZ R2,OVER ;OVER执行完LOOP:LCALL DSWDSJMP LOOP;**********************************************************; Read a temperature from the DS18B20DSWD:LCALL RSTSNR ; Init of the DS18B20JNB F0,KENDMOV R0,#0CCH ;要写的数给R0LCALL SEND_BYTE ;调用写程序MOV R0,#44HLCALL SEND_BYTE ; Send a Convert Command (送一个温度转换指令)SETB EA;延迟MOV 48H,#1 ;1usSS2:MOV 49H,#255 ;1usSS1:MOV 4AH,#255 ;1usSS0:DJNZ 4AH,SS0 ;2us/次,255*2DJNZ 49H,SS1 ;2us/次,255次DJNZ 48H,SS2 ;2us 总时间1+1+(1+255*2+2)*255+2CLR EA ;进入读时序禁用任何中断LCALL RSTSNRJNB F0,KENDMOV R0,#0CCHLCALL SEND_BYTEMOV R0,#0BEHLCALL SEND_BYTE ; Send Read Scratchpad commandLCALL READ_BYTE ; Read the low byte from scratchpadMOV WDLSB,A ; Save the temperature (low byte)LCALL READ_BYTE ; Read the high byte from scratchpadMOV WDMSB,A ; Save the temperature (high byte)LCALL TRANS12KEND:SETB EARET;**********************************************************;TRANS12:MOV A,30H ;30H存从1820取的温度值ANL A,#0F0H ;取WDLSB高4为(低位置0)MOV 3AH,AMOV A,31HANL A,#0FH ;取WDMSB的低4位(高位置0)ORL A,3AH ;将WDLSB的高4为与WDMSB的低4位组合SWAP A ;高低位互换A温度MOV B,#10 ;转换为10进制DIV AB ;A/B A为商B为余数MOV 42H,B ;B为个位42H中放个位MOV b,#10DIV abMOV 43H,B ;43十位MOV A,30HANL A,#0FHMOV DPTR,#tab1MOVC A,@a+DPTRMOV 41H,ARET;*************************************************; Send a byte to the 1 wire line 写SEND_BYTE: ;MOV A,R0MOV R5,#8 ;设置写位个数SEN3: CLR CRRC A ;把一个字节data(A)分成8个bit环移给CJC SEN1LCALL WRITE_0 ;等待60usSJMP SEN2SEN1: LCALL WRITE_1SEN2: DJNZ R5,SEN3 ;写下一位RET;*************************************************; Read a byte from the 1 wire line 读READ_BYTE:MOV R5,#8READ1: LCALL READRRC ADJNZ R5,READ1MOV R0,ARET;*************************************************; Reset 1 wire line 初始化RSTSNR: SETB DQNOPNOPCLR DQ ;发送一复位脉冲MOV R6,#250DJNZ R6,$ ;保持低电平500usMOV R6,#50DJNZ R6,$SETB DQ ;释放总线MOV R6,#15DJNZ R6,$ ;释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待30usCALL CHCK ;MOV R6,#60DJNZ R6,$ ;发出存在脉冲(低电平持续120 us)SETB DQRET;*************************************************; low level subroutines判断DQ位是否被拉高,如已经拉高,则l低,否则,将其拉高CHCK: MOV C,DQJC RST0SETB F0 ;SJMP CHCK0RST0: CLR F0 ;CHCK0: RET;*************************************************WRITE_0:CLR DQ ;总线复位等待60usMOV R6,#30DJNZ R6,$SETB DQRET;*************************************************WRITE_1:CLR DQ ;复位NOPNOPNOPNOPNOPSETB DQ ;释放总线MOV R6,#30DJNZ R6,$;等待56UsRET;*************************************************READ: SETB DQ ;NOPNOPCLR DQNOPNOPSETB DQ ;NOPNOPNOPNOPNOPNOPNOPMOV C,DQMOV R6,#23DJNZ R6,$RET;********************************************** DELAY10: MOV R4,#20D2: MOV R5,#30DJNZ R5,$DJNZ R4,D2RETtab1: DB 00H,01H,01H,02H,02H,03H,03H,04H DB 05H,06H,06H,07H,07H,08H,08H,09HEND:附录2LS ByteMS Byte。

相关文档
最新文档