使用单片机和温度传感器制作数字式温度计

合集下载

单片机基于stm32的数字温度计设计

单片机基于stm32的数字温度计设计

单片机基于stm32的数字温度计设计
数字温度计是一种用于测量环境温度的设备。

在这个问题中,我们将使用基于STM32的单片机来设计一个数字温度计。

为了设计这个温度计,我们需要以下组件和步骤:
1. STM32单片机:STM32是一种基于ARM架构的单片机,它具有强大的计算能力和丰富的外设接口,适用于各种应用。

2. 温度传感器:我们需要选择一种适合的温度传感器,常用的有数字式温度传感器,如DS18B20。

3. 连接电路:将温度传感器连接到STM32单片机。

这通常需要使用一些电子元件,如电阻、电容和连接线等来建立电路连接。

4. 编程:使用适合STM32单片机的编程语言,如C语言,来编写程序。

程序将读取温度传感器的数据,并将其转换为数字值。

5. 温度显示:将温度数据显示在合适的显示设备上,如LCD显示屏或七段数码管。

可以使用STM32单片机的GPIO口控制这些显示设备。

6. 数据处理:可以对温度数据进行进一步处理,如计算平均温度、设定警报阈值等。

以上是一个基本的数字温度计设计的流程。

具体的实现细节和代码编写可能需要根据具体的硬件和软件平台进行调整。

基于STC89C52单片机的数字温度计(附源代码,完美实现)

基于STC89C52单片机的数字温度计(附源代码,完美实现)

基于STC89C52单片机的数字温度计学院:信息科学与工程学院专业:电子信息科学与技术一、摘要温度的检测是工业生产中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发。

本文设计了一种基于STC89C52单片机的温度检测系统,该系统将温度传感器DS18B20接在控制器的端口上,对温度进行采集,将采集到的温度值显示在1602液晶屏上。

经实验测试表明,该系统设计和布线简单,结构紧凑,有可读性高,反应速度快,测量准确,抗干扰能力强,性价比高,扩展方便等优点,具有关阔的应用前景。

关键词:STC89C52 数字温度计 DS18B20二、前言随着人民生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子。

单片机控制温度检测系统的温感系统主要是DS18B20芯片,该芯片由一根总线控制,电压范围为3.0v--5.5v。

DS18B20具有测温方便、测温范围广、测温精度高等特点。

出于对此类问题的探索,我们设计并制作了此温度检测系统。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确。

其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器模块主要使用STC89C52单片机,测温传感模块使用DS18B20;显示模块使用1602液晶显示屏,可以只管、准确的显示所测温度值。

三、系统组成及工作原理3.1、总体设计方案经分析,将系统分为两个部分,一个是由温度传感器DS18B20组成的检测部分,另一个是由单片机和1602液晶组成的主控与显示部分。

如图所示DS18B20将检测到的数据送到单片机,单片机对接收到的数据进行处理并送到1602显示,6V电源给各个部分供电。

3.2系统单元的选择与论证3.2.1单片机控制模块的选择与论证方案一:采用XC9000系列的FPGA。

单片机课程设计 基于数字温度传感器的数字温度计报告

单片机课程设计  基于数字温度传感器的数字温度计报告

《单片机原理及应用》课程设计报告书课题名称基于数字温度传感器的数字温度计姓名学号专业指导教师机电与控制工程学院年月日填写说明1、正文部分:(1)标题与正文格式定义标准如下:一级标题:1.标题1二级标题:1.1标题2三级标题:1.1.1标题3四级标题:1.1.1.1标题4(2)表格:尽可能采用三线表。

(3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。

图中文字、符号书写要清楚,并与正文一致。

(4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。

文字的表述应当以科学语言描述研究过程和研究结果,不要以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。

2、参考文献:(1)数量要求:参考文献只选择最主要的列入,应不低于5种。

(2)种类要求:参考文献的引用,可以是著作[M]、论文[J]、专利文献[P]、会议论文等。

(3)文献著录格式及示例。

参考文献用宋体五号字。

[1] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 起止页码(著作图书文献)[2] 作者. 文章名[J]. 学术刊物名称. 年. 卷(期): 起止页码(学术刊物文献)示例:[1]王社国,赵建光。

基于ARM的嵌入式语音识别系统研究 [J]。

微计算机信息,2007,2-2:149-150.3、附录或附件:(可选项)重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。

4、如果需要可另行附页粘贴。

任务书1. 设计要求利用数字温度传感器DS18B20与单片机结合来测量温度。

利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。

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

数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。

单片机数字温度计课程设计总结

单片机数字温度计课程设计总结

单片机数字温度计课程设计总结一、引言温度是物体分子热运动的表现,对于很多应用场合来说,准确地测量和监控温度是非常重要的。

在本次课程设计中,我们使用单片机设计了一个数字温度计,能够实时测量环境温度并将其显示在数码管上。

本文将对该课程设计进行总结和归纳。

二、设计思路1. 硬件设计:我们使用了传感器、单片机和数码管等硬件元件。

传感器用于感知环境温度,单片机负责数据处理和控制,数码管用于显示温度数值。

2. 软件设计:我们使用C语言编写了相应的程序。

程序的主要逻辑是通过单片机与传感器进行通信,获取温度值并进行转换,然后将转换后的数值通过数码管进行显示。

三、硬件设计1. 传感器选择:在本次设计中,我们选择了NTC热敏电阻作为温度传感器。

它的电阻值随温度的变化而变化,通过测量电阻值的变化即可得到环境温度。

2. 单片机选择:我们选择了常用的STC89C52单片机作为控制核心。

它具有较高的性价比和丰富的资源。

3. 数码管选择:我们选择了常见的共阳极数码管,它能够直观地显示温度数值。

四、软件设计1. 数据采集:首先,我们需要通过AD转换将传感器输出的模拟信号转换为数字信号。

然后,我们将数字信号转换为温度值,根据传感器的特性曲线进行适当的校准。

2. 数据处理:接下来,我们需要对采集到的温度值进行处理,例如进行单位转换或滤波处理,以获得更加准确和稳定的结果。

3. 数据显示:最后,我们将处理后的温度值通过数码管进行显示。

为了方便观察,我们还可以添加一些提示信息,例如温度单位或警告标识。

五、调试和测试在设计完成后,我们需要进行调试和测试,以确保温度计能够正常工作。

首先,我们可以通过改变环境温度来验证温度计的测量准确性。

其次,我们还可以通过与其他温度计进行对比来验证其稳定性和精度。

六、设计优化和改进在实际使用过程中,我们可以根据需求进行进一步的优化和改进。

例如,我们可以添加温度报警功能,当温度超过设定阈值时,温度计能够及时发出警报。

(毕业设计)基于89C51和DS18B20的数字温度计设计

(毕业设计)基于89C51和DS18B20的数字温度计设计

一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C,采用AT89C51单片机和DS18B20温度传感器,设定温度报警的最低值和最高值。

采用点阵字符型液晶模块作为数字温度计的显示器,分两行显示,第一行显示DS18B20工作状态,第二行显示实测温度值和状态符号,>H表示实测温度大于温度报警范围,<L表示实测温度小于设置温度报警范围,!表示实测温度在正常范围内,当实测温度超过设定温度限制范围是,发出声光警报信号。

二、方案论证根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机A T89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。

选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用点阵液晶模块LCD1602实现显示。

检测范围-55摄氏度到125摄氏度。

按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。

数字温度计总体电路结构框图如图1所示。

图1 数字温度计总体电路结构框图三、系统硬件电路的设计温度计电路设计原理图如图2所示,控制器使用单片机A T89C51,温度传感器使用DS18B20,用4位共阳LED数码管实现温度显示。

D图2 数字温度计设计电路原理图1、主控制器AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

该器件采用A TMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

单片机课程设计方案—数字温度计

单片机课程设计方案—数字温度计

1 课题任务、功能要求说明及总体方案介绍1.1 课题目的随着社会的发展,温度的测量及控制变得越来越重要。

本文采用单片机STC89S52设计了温度实时测量及控制系统。

单片机STC89S52 能够根据温度传感器DS18B20 所采集的温度在数码管上实时显示,通过控制从而把温度控制在设定的范围之内。

所有温度数据均通过4位数码管LED显示出来。

系统可以根据时钟存储相关的数据。

通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。

1.2 功能要求说明设计一个具有特定功能的数字温度计。

该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。

测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。

1.3 设计课题总体方案介绍及工作原理说明1.3.1设计课题总体方案(1>根据设计要求,选择AT89C52单片机为核心器件。

(2>温度检测器件采用DS18B20数字式温度传感器。

与单片机的接口为P3.6引脚。

(3>键盘采用独立式按键,由三个按键组成,分别是:设置键<SET),加一建<+1),确认键<RET)。

(4>SET键<上下限温度设置键):当该键按下时,进入上下限温度设置功能。

通过P0.1引脚接入。

(5>+1键<加一调整键):在输入上下限温度时,该键按下一次,被调整位加一。

通过P0.2引脚接入。

(6>RET键<确认键):当该键按下时,指向下一个要调整的位。

通过P0.3引脚接入。

1.3.2 工作原理说明本课题以是80S52单片机为核心设计的一种数字温度控制系统,利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。

基于单片机的数字温度计设计【文献综述】

基于单片机的数字温度计设计【文献综述】
数字温度传感器是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术的结晶。目前,国际上已开发出多种数字温度传感器系列产品。数字温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。数字温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,即智能化取决于软件的开发水平。数字温度传感器包括数字温度传感器和石英温度传感器。数字温度传感器被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。用石英作为温度传感器的数字温度计可实现多种功能:用于热化疗仪中对药液的温度进行测量,能获得较好的测温效果;用于温度检测系统,测温系统可用于各行各业中。比如:可用于温室大棚的温度检测,当温度过高就产生报警信号;在轮胎生产中,进行的温度检测。
二、关键字:数字温度计、温度传感器、单片机
三、1、数字温度计的研究背景和意义
温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。传统所使用的温度计通常都是精度为1℃和0.1℃的水银、煤油或酒精温度计。这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确等优点,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等,温度计中传感器是它的重要组成部分,它的精度、灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。传感器应用极其广泛,目前已经研制出多种新型传感器。但是,作为应用系统设计人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连接起来,从而构成性能优良的监控系统。

基于51单片机的数字温度计

基于51单片机的数字温度计

引言:数字温度计是一种基于51单片机的温度测量装置,它通过传感器感知环境的温度,并使用单片机将温度值转换为数字形式,并显示在液晶屏上。

本文将详细介绍数字温度计的设计原理、硬件连接、软件编程以及应用领域。

概述:数字温度计基于51单片机的设计理念,其基本原理是通过传感器将温度转换为电信号,然后通过ADC(模数转换器)将电信号转换为数字信号,最后使用单片机将数字信号转换为温度值。

同时,数字温度计还将温度值显示在液晶屏上,方便用户直观地了解环境温度。

正文内容:1. 硬件连接:1.1 使用温度传感器感知环境温度:常用的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。

通过将传感器连接到51单片机的引脚上,可以实现对环境温度的感知。

1.2 连接ADC进行模数转换:ADC是将模拟信号转换为数字信号的关键部件。

通过将51单片机的引脚连接到ADC芯片的输入端,可以将模拟的温度信号转换为数字信号。

1.3 连接液晶屏显示温度值:通过将51单片机的引脚连接到液晶屏的控制引脚和数据引脚,可以将温度值以数字形式显示在液晶屏上。

2. 软件编程:2.1 初始化引脚和ADC:在软件编程中,需要初始化51单片机的引脚设置和ADC的工作模式。

通过设置引脚为输入或输出,以及设置ADC的参考电压和工作模式,可以确保硬件正常工作。

2.2 温度测量算法:根据传感器的工作原理和电压-温度特性曲线,可以编写相应的算法将ADC测得的电压值转换为温度值。

例如,对于NTC热敏电阻,可以使用Steinhart-Hart公式进行温度计算。

2.3 温度值显示:将温度值以数字形式显示在液晶屏上。

通过设置液晶屏的控制引脚和数据引脚,可以控制液晶屏的显示内容,并将温度值以数字形式显示在屏幕上。

3. 基于51单片机的数字温度计应用:3.1 家庭温度监测:数字温度计可以安装在家庭中的不同区域,实时监测室内温度,并通过数字显示提供直观的温度信息。

这对于家庭的舒适性和节能都有重要意义。

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

《微机原理》课外设计制作总结报告题目(B):使用单片机和温度传感器制作数字式温度计组号:29任课教师:王向阳组长:11122412 侯景业20%成员:11122445 白波20%成员:11122510 吕锦涛20%成员:11123633 柴金磊20%成员:11123722 沈璘熙20%联系方式:0二零一三年五月十五日一、课程设计目的与要求利用学习过的《单片机与接口技术》课程的内容和其他相关课程的内容,设计数字式温度计。

使用单片机和温度传感器制作数字式温度计(1)实时温度采集(2)数字显示(3)显示精度:0.1℃(4)其它与温度有关的扩展二、课程设计内容2.1数字温度计设计方案考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以可以采用一只温度传感器DS18B20,该传感器可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

2.2方案的总体框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机8051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。

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

温度传感器数字温度传感器DS18B20,它不仅能直接输出串行数字信号,而且具有微型化、低功耗、高性能、易于微处理器连接和抗干扰能力强等优点。

DS18B20数字温度传感器对于实测的温度提供了9-12位的数据和报警温度寄存器,它的测温范围为-55℃~+125℃,其中在-10℃~+85℃的范围内的测量精度为±0.5℃。

由于每个DS18B20有唯一的一个连续64位的产品号,所以允许在一根电缆上连接多个传感器,以构成大型温度测控网络。

DS18B20特性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 的双向通讯(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 工作原理DS18B20 的读写时序和测温原理与DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。

DS18B20 测温原理如图 3 所示。

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

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

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

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

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

2.3系统硬件电路DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O线相连,且一位I/O线可连接多个DS18B20,以实现单点或多点温度测量。

DS18B20可以通过2种方式供电:外加电源方式和寄生电源方式。

前者需要外加电源,电源的正负极分别与DS18B20的VDD和GND相连接。

后者采用寄生电源,将DS18B20的VDD与GND接在一起,当总线上出现高电平时,上拉电阻提供电源;当总线低电平时,内部电容供电。

由于采用外加电源方式更能增强DS18B20的抗干扰性,故本设计采用这种方式。

234432EA/VP 31X119X218RESET 9R D 17WR 16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P 30TXD 11RXD 10U?8051NC 1NC 2GND 3I/O 4NC 8NC 7NC 6Vcc5U2DS18B20S1SW-PBY1C 1C 2R 5R 4R 3C 4C 3R 2R 1VCC图3 DS18B20温度传感器与单片机的接口电路 显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,可充分利用串行口,将并行口用到最需要的地方去,同时主程序不需要扫描显示器,使它有更多的时间处理其他的事情,这种方法用于显示位数少,显示亮度大的地方,效果较好,只用p3口的总体电路图系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主板电路等,图中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。

DS18B20 有4 个主要的数据部件:(1)光刻ROM 中的64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。

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

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

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

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

例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

三、系统软件算法分析系统程序主要包括单片机主程序、温度变换程序、显示程序等。

3.1主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程见图6所示图6 主程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图如图7示发DS18B20复位命令发条过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?移入温度暂存器结束3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。

温度转换命令子程序图图8 温度转换命令子程序流程图四、程序编写#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include "18b20.h"bit ReadTempFlag;//定义读时间标志#define DataPort P0 //定义段数据端口程序中遇到DataPort 则用P0 替换#define SegPort P2 //定义位数据端口unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567unsigned char code dofly_WeiMa[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮,即位码unsigned char TempData[8]; //存储显示值的全局变量void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数void Init_Timer0(void);//定时器初始化/*------------------------------------------------主函数------------------------------------------------*/void main (void){unsigned int TempH,TempL,temp;Init_Timer0();while (1) //主循环{if(ReadTempFlag==1){ReadTempFlag=0;temp=ReadTemperature();if(temp&0x8000){TempData[0]=0x40;//负号标志temp=~temp; // 取反加1temp +=1;}elseTempData[0]=0;TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理if(TempH/100==0)TempData[1]=0;elseTempData[1]=dofly_DuanMa[TempH/100]; //十位温度if((TempH/100==0)&&((TempH%100)/10==0))//消隐TempData[2]=0;elseTempData[2]=dofly_DuanMa[(TempH%100)/10]; //十位温度TempData[3]=dofly_DuanMa[(TempH%100)%10]|0x80; //个位温度,带小数点TempData[4]=dofly_DuanMa[TempL];TempData[6]=0x39; //显示C符号}}}/*------------------------------------------------显示函数,用于动态扫描数码管输入参数FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。

相关文档
最新文档