基于51单片机的数字温度计
基于MCS51系列单片机的数字温度计设计
![基于MCS51系列单片机的数字温度计设计](https://img.taocdn.com/s3/m/b9e4af9b27284b73f34250b1.png)
基于MCS-51系列单片机的数字温度计设计基于MCS-51系列单片机的数字温度计设计摘要本文提出了基于MCS-51系列单片机的数字温度计的制作电路和编程思想。
该数字温度计以宏晶公司的STC89C52 单片机为主控,配以达拉斯公司的DS18B20数字温度传感器,采用1602双行英文字符液晶作显示。
实现了对温度的测量,显示,和报警等功能。
关键词:STC89C52单片机;数字传感器DS18B20;显示器LCD;目录摘要 (I)ABSTRACT ........................... 错误!未定义书签。
1 绪论 (4)1.1 选题的背景 (4)1.2 数字温度计简介 (4)1.2.1 数字温度计的特征 (4)1.2.2 设计实现的目标 (5)2 数字温度计的方案设计 (6)2.1 设计方案论证与比较 (6)2.1.1 显示电路方案 (6)2.1.2 测温电路方案 (6)2.2 系统总体方案 (6)3 数字温度计的硬件电路设计 (8)3.1 控制电路 (8)3.1.1 MCU简介 (8)3.2.2 最小系统模块 (9)3.3 温度传感器设计 (10)3.3.1 DS18B20简介 (10)3.3.2 温度传感器与单片机的连接 (12)3.3.3 复位信号及外部复位电路 (13)3.4 单片机与报警电路 (13)3.5 显示电路 (13)4 软件设计 (15)4.1 DS18b20的读操作 (15)4.2 DS18b20的温度数据处理 (16)4.3 1602显示部分 (17)5 数据测试 (20)参考文献 (22)附录1 程序源代码................ 错误!未定义书签。
1 绪论1.1 选题的背景随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
基于51单片机的测温数字温度计的最小系统
![基于51单片机的测温数字温度计的最小系统](https://img.taocdn.com/s3/m/323f4f249ec3d5bbfc0a7418.png)
●第一章设计目的——————————————3 ●第二章设计内容————————————— 3 ●第三章分析———————————————7 ●第四章示例程序——————————————7 ●第五章总结———————————————13一、设计目的:利用51单片机和ds18b20等元件设计一个实时的测量温度和报警的小系统。
系统可以通过数码管显示实时的温度值,显示的温度的精度是0.01℃。
然后,还可以利用按键进行最高温度值和最低温度值的设定,当温度超过设定的最高温度值的时候,蜂鸣器会响,并且会有一个led灯亮起;当温度值低于设定的最低温度值的时候,蜂鸣器会响,但是led灯不会亮。
二、设计内容:温度计电路设计总体设计方框图如图1所示,控制器采用单片机8051,温度传感器采用DS18B20,显示部分是一个四位一体的数码管,设置电路部分是3个按键和3个用于指示的led灯,报警电路部分是一个led灯和一个蜂鸣器。
图11、 温度传感器DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O 线相连,且一位I/O 线可连接多个DS18B20,以实现单点或多点温度测量。
温度计仿真电路部分如图2所示。
图2单片机复位 时钟震荡主 控制 器数码管显示温度传感器报警电路设置电路Ds18b20需要严格的协议以确保数据的完整性。
协议包括集中单线信号类型:复位脉冲.存在脉冲.写0.写1.读0和读1。
所有这些信号,处存在脉冲外,都是由总线控制器发出的。
和ds18b20间的任何通讯都是需要以初始化序列开始,初始化序列见图3,一个复位脉冲跟着一个存在脉冲表明ds18b20已经准备好发送和接收数据。
图3Ds18b20的读写时序图如图4所示,Ds18b20的几个常用的功能命令如下: CCH 跳过ROM指令44H 温度转换指令BEH 读SRAM4EH 写SRAM三、分析:1.程序一开始测得温度并储存,然后对按键1进行判断,若按键1未按下则直接跳到第四步;2.若按键1按下,则开始设置最高温度,然后再判断按键2(3)是否按下,若按下,则对应设置十(个)位。
51单片机数字温度计设计与应用
![51单片机数字温度计设计与应用](https://img.taocdn.com/s3/m/a32468410640be1e650e52ea551810a6f524c838.png)
51单片机数字温度计设计与应用数字温度计在现代生活中有着广泛的应用,它能够将环境温度转换为数字信号,提供直观、准确的温度数据。
本文将介绍基于51单片机的数字温度计的设计与应用。
设计思路:1. 硬件设计首先,我们需要选取一个合适的温度传感器,例如DS18B20。
该传感器具有高精度、数字输出、带有内部校准和非易失性存储器等特点,非常适合作为数字温度计的传感器。
其次,我们需要引入一个51单片机,常用的有AT89C51、AT89S52等。
单片机负责控制传感器和显示器,并处理温度数据。
接下来,我们需要一个LED数码管或液晶显示屏作为温度显示器。
数码管简单且易于操作,而液晶显示屏可以提供更多的信息显示。
最后,我们还需添加一些辅助电路,如稳压电路、时钟电路等,以确保正常的运行。
2. 软件设计在单片机的程序设计方面,我们需要考虑以下几个步骤:(1)初始化各个引脚和外部设备,如温度传感器和显示屏。
(2)读取温度传感器输出的数字信号,通过数据线将其与单片机相连。
(3)通过一系列算法将数字信号转换为实际的温度值。
因为DS18B20传感器提供数字输出,所以支持该类算法的编程非常简单。
(4)将计算得到的温度值通过数码管或液晶显示屏进行显示。
如果是数码管,可以通过数码管驱动芯片来实现多位数的显示。
(5)可选的增加报警功能,当温度超过一定阈值时,触发报警。
应用场景:数字温度计可以在许多场景中应用,下面介绍几个常见的应用场景:1. 家庭温度监测在家庭中,我们可以将数字温度计放置在客厅、卧室等常用区域,用于监测室内温度。
通过数字温度计,我们可以实时了解室内的温度状况,根据需要进行调节,提供舒适的生活环境。
2. 温室控制在温室种植中,保持适宜的温度对于植物的生长至关重要。
数字温度计可以帮助种植者实时监测温室内的温度,并及时采取相应的措施,维持温室内的温度在适宜的范围内。
3. 实验室温度监测实验室需要严格控制温度,以确保实验的准确性和稳定性。
基于51单片机的数字温度计设计与实现
![基于51单片机的数字温度计设计与实现](https://img.taocdn.com/s3/m/ac4a9e2626d3240c844769eae009581b6bd9bdd2.png)
基于51单片机的数字温度计设计与实现数字温度计是一种能够测量环境温度并将其以数字形式显示出来的仪器。
它被广泛应用于各种领域,例如家庭、工业和实验室。
本文将介绍基于51单片机的数字温度计的设计与实现。
首先,我们需要了解51单片机的基本知识。
51单片机是一种8位微控制器,具有强大的计算和控制能力。
它是目前应用最广泛的单片机之一。
接下来,我们需要选择合适的温度传感器。
常用的温度传感器有热电偶、半导体温度传感器和热敏电阻等。
在本设计中,我们将使用LM35半导体温度传感器。
LM35具有精确度高、响应快的特点,非常适合用于数字温度计。
设计硬件电路是实现数字温度计的重要一步。
电路的核心是将传感器输出的模拟电压转换成数字信号。
我们可以使用ADC(模数转换器)将模拟信号转换为数字信号。
51单片机的内部有一个8位ADC,可以用来实现此功能。
在编程方面,我们可以使用C语言来编写单片机的程序。
使用51单片机的开发环境,如Keil C等,可以帮助我们更方便地编写程序。
算法的编写是实现数字温度计的关键。
我们需要将ADC转换出的数字信号进行处理,得到具体的温度数值。
这个数值可以通过一些公式来计算得出。
以LM35传感器为例,根据其数据手册可以得知,输出电压与温度之间的关系为温度(℃)=(传感器输出电压-0.5)/0.01。
通过这个公式,我们可以将ADC转换出的数字信号转换为实际的温度数值。
最后,我们需要将得到的温度数值以数字形式显示出来。
此时,我们可以使用数码管来进行显示。
51单片机具有多个IO口,可以直接驱动数码管进行数字的显示。
综上所述,基于51单片机的数字温度计的设计与实现主要包含选择温度传感器、设计硬件电路、编写单片机程序和显示温度数值这几个步骤。
通过合理的硬件设计和算法编写,我们可以实现一个准确可靠的数字温度计。
同时,我们也可以通过不断改进和增加功能,使其适应更多的应用场景。
希望本文对您的数字温度计设计与实现提供了一些参考。
基于51单片机的数字温度计
![基于51单片机的数字温度计](https://img.taocdn.com/s3/m/fa8d743cf56527d3240c844769eae009581ba2fa.png)
引言:数字温度计是一种基于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 家庭温度监测:数字温度计可以安装在家庭中的不同区域,实时监测室内温度,并通过数字显示提供直观的温度信息。
这对于家庭的舒适性和节能都有重要意义。
基于51单片机的数字温度计
![基于51单片机的数字温度计](https://img.taocdn.com/s3/m/4086670d376baf1ffc4fad85.png)
基于AT89S51的温度计院系:电子和信息工程学院专业:电子信息科学和技术班级:09信本学生姓名:刘辉学号:093621059第一部分 设计要求:采用AT89C51单片机和LCD 液晶显示器设计一个数字温度计,当外界温度变化时,显示屏上的温度值也随着变化。
数字温度计的测温范围为-55°C 到125°C 之间。
第二部分 硬件原理框图:硬件部分主要分为晶振振荡电路、复位电路、LCD 液晶显示电路、DS18B20温度传感器采集电路、电源电路等部分组成。
第三部分 硬件原理图:硬件模块原理图:AT89C51单片机晶振振荡电路 复位电路 L CD 液晶显示电路温度传感器采集电路电 源 电 路一、晶振振荡电路该电路是由两个电容和一个晶振组成,晶振产生基本的时钟信号它给单片机提供时钟信号。
二、复位电路复位的主要作用是把特殊功能寄存器的数据刷新为默认数据,单片机在运算过程中由于干扰等外界原因造成寄存器中数据混乱不能使其正常继续执行程序或产生的结果不正确时均需要复位,以使程序重新开始运行。
三、LCD液晶显示电路经过温度传感器,将采集到的温度信息传给单片机,单片机处理后又将信息发给P0口,P0口和LCD的数据口相连接,液晶屏上会显示采集到的温度值。
四、温度传感器采集电路单线数字温度传感器DS18B20测量温度范围为-55°C~+125°C,-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为± 2°C 。
DS18B20的管脚排列如下: DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20进行预定的操作。
基于51单片机的数字温度计设计及优化
![基于51单片机的数字温度计设计及优化](https://img.taocdn.com/s3/m/11809f67cdbff121dd36a32d7375a417866fc138.png)
基于51单片机的数字温度计设计及优化数字温度计是一种常见的电子测量设备,用于测量周围环境的温度,并将温度以数字形式显示。
本文将介绍一种基于51单片机的数字温度计的设计及其优化。
首先,为了设计一个基于51单片机的数字温度计,我们需要以下材料和器件:51单片机、温度传感器、LCD显示屏、电阻、电容、晶体振荡器等。
在电路设计方面,我们可以将温度传感器连接到单片机的模拟输入引脚上,通过读取模拟输入,可以获取传感器测量到的温度值。
接下来,我们可以通过串口通信将温度值发送到PC机,并通过PC机上的软件进行温度的实时显示和记录。
在软件设计方面,我们需要首先编写单片机的程序,以读取传感器的模拟信号,并将其转换为数字温度值。
然后,我们可以通过串口通信将温度值发送给PC机。
在PC机上的软件中,我们需要编写一个接收温度数据的程序,并通过图形界面显示温度值。
为了进一步优化数字温度计设计,我们可以考虑以下几个方面:1. 精度优化:通过选用更高精度的温度传感器,可以提高温度测量的准确性。
此外,在单片机的程序中,我们可以进行数学运算和滤波算法的优化,以提高温度测量的精度。
2. 功耗优化:在设计数字温度计时,我们应该尽可能降低系统的功耗。
例如,可以选择低功耗的单片机,合理设置时钟频率和休眠模式,以减少系统能耗。
3. 可靠性优化:数字温度计在长时间使用时应保持可靠性,尽量减少出现故障的可能性。
为此,我们可以对电路进行严格的电气设计,使用高质量的电子元器件,并进行必要的温度校准和测试。
4. 功能扩展:基于数字温度计的设计还可以考虑添加一些额外的功能,如报警功能、记录功能和远程监测功能等。
这些功能可以通过扩展硬件和改进软件来实现。
总结一下,本文介绍了基于51单片机的数字温度计的设计及其优化。
通过合理的电路设计和软件编程,我们可以实现一个精度高、功耗低、可靠性强的数字温度计。
此外,我们还可以通过优化算法和添加额外功能来进一步提升数字温度计的性能。
基于51单片机和DS18B20的数字温度计设计说明
![基于51单片机和DS18B20的数字温度计设计说明](https://img.taocdn.com/s3/m/314c11c105a1b0717fd5360cba1aa81144318fb1.png)
基于51单片机和DS18B20的数字温度计设计说明
1.硬件设计:
-51单片机:选择合适的型号,如STC89C52或AT89C52等。
-DS18B20温度传感器:该传感器是一种数字温度传感器,具有单总线接口和高精度测量能力。
-接口电路:将51单片机和DS18B20传感器连接起来,要注意电平转换和信号线的阻抗匹配。
2.软件设计:
-初始化:在主函数中,首先对单片机进行初始化设置,包括时钟设置、串口配置等。
-DS18B20通信协议:使用单总线协议与DS18B20传感器进行通信,包括发送复位信号、读写数据等操作。
-温度测量:通过向DS18B20发送读取温度的命令,从传感器中读取温度值并保存。
-数据传输:将温度值转换为可显示的格式,如摄氏度或华氏度,并通过串口输出或LED显示。
3.程序流程:
-初始化单片机,设置时钟和串口参数。
-进入主循环,循环执行以下操作:
-发送复位信号,启动温度转换。
-等待转换完成,发送读取温度命令。
-读取温度值,并进行数据处理转换。
-输出温度值。
4.其他功能:
-可以添加LCD显示模块,将温度值显示在液晶屏上。
-可以添加按键输入模块,通过按键切换温度单位或进行其他操作。
需要注意的是,该设计只是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和修改。
同时,在程序设计过程中,也要注意低功耗和数据稳定性等方面的考虑。
基于51单片机数字温度计系统设计与实现
![基于51单片机数字温度计系统设计与实现](https://img.taocdn.com/s3/m/c5d86e61182e453610661ed9ad51f01dc3815713.png)
基于51单片机数字温度计系统设计与实现数字温度计是一种可以测量环境温度并将结果以数字方式显示的设备。
在本次任务中,我们将基于51单片机设计和实现一个数字温度计系统。
本文将介绍数字温度计的原理、硬件设计、软件设计以及系统的实施过程。
首先,让我们来了解一下数字温度计的工作原理。
数字温度计通过传感器获取环境温度的模拟信号,然后将其转换为数字信号进行处理,并最终在数字显示器上显示温度值。
通常,我们使用的传感器是温度敏感电阻或数字温度传感器。
接下来,我们将讨论硬件设计。
在本次任务中,我们使用的是51单片机作为主控制器。
我们需要连接一个温度传感器来测量温度,并将温度值转换为数字信号。
同时,我们还需要连接一个数字显示器,用于显示温度值。
为了实现这些功能,我们需要设计一个电路板,并正确布局电子元件。
另外,我们还需要通过键盘或按钮来控制系统的操作,例如切换温度单位等。
在软件设计方面,我们需要编写程序来完成以下任务:首先,我们需要初始化51单片机的引脚和中断。
然后,我们需要编写一个温度转换的函数,将传感器输出的模拟信号转换为数字信号。
接下来,我们需要编写一个显示函数,将转换后的数字温度值显示在数字显示器上。
最后,我们还可以添加一些功能,例如设置温度单位(摄氏度或华氏度)和存储温度数据等。
在系统实施过程中,我们需要按照以下步骤进行操作:首先,进行硬件的连接和组装。
确保所有电子元件正确连接并固定在电路板上。
然后,烧录编写好的程序到51单片机中。
接下来,我们可以通过设置开关或按键来控制系统的操作。
最后,我们可以测试系统的功能和性能,确保数字温度计正常工作。
值得注意的是,在设计和实现数字温度计系统时,我们需要考虑一些问题。
例如,温度传感器的精度和响应时间,数字显示器的显示精度和分辨率,以及系统的稳定性和可靠性等。
通过合理的设计和选择高质量的元件,我们可以提高系统的性能和可靠性。
总结起来,本次任务中我们基于51单片机设计和实现了一个数字温度计系统。
基于某51单片机的数字温度计设计
![基于某51单片机的数字温度计设计](https://img.taocdn.com/s3/m/15987b1758fb770bf68a550f.png)
基于51单片机的数字温度计设计一.课题选择随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。
单片机控制系统无疑在这方面起到了举足轻重的作用。
单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子,它可广泛应用与生产生活的各个方面,具有巨大的市场前景。
二.设计目的1.理解掌握51单片机的功能和实际应用。
2.掌握仿真开发软件的使用。
3.掌握数字式温度计电路的设计、组装与调试方法。
三.实验要求1.以51系列单片机为核心器件,组成一个数字式温度计。
2.采用数字式温度传感器为检测器件,进行单点温度检测。
3.温度显示采用4位LED数码管显示,三位整数,一位小数。
四.设计思路1.根据设计要求,选择STC89C51RC单片机为核心器件。
2.温度检测采用DS18B20数字式温度传感器。
与单片机的接口为P3.6引脚。
3.采用usb数据线连接充电宝供电,接电后由按钮开关控制电路供电。
硬件电路设计总体框图为图1:五.系统的硬件构成及功能1.主控制器单片机STC89C51RC具有低电压供电和体积小等特点,有40个引脚,其仿真图像如下图所示:2.显示电路显示电路采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。
LED数码管在仿真软件中如下图所示:3.温度传感器DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:1.独特的单线接口仅需一个端口引脚进行通讯。
2.简单的多点分布应用。
3.无需外部器件。
4.可通过数据线供电。
5.零待机功耗。
6.测温范围-55~+125摄氏度。
其电路图如下图所示:在仿真软件中如下图所示:DS18B20的测温原理图如下图所示:在正常测温情况下,DS18B20的测温分辨力为0.5摄氏度,可采用下述方法获得高分辨率的温度测量结果。
基于51单片机的数字温度计设计及应用
![基于51单片机的数字温度计设计及应用](https://img.taocdn.com/s3/m/6fc7c4bb951ea76e58fafab069dc5022aaea46d0.png)
基于51单片机的数字温度计设计及应用数字温度计是一种测量环境温度的设备,它使用数字技术来转换和显示温度值。
基于51单片机的数字温度计设计及应用,我们将使用51单片机作为主控芯片,采集传感器的温度数据并将其转换为数字信号,然后通过数码管显示出来。
首先,我们需要选择合适的温度传感器。
常见的温度传感器有热敏电阻、热电偶和数字温度传感器等。
在本设计中,我们将使用DS18B20数字温度传感器。
DS18B20具有高精度、数字输出、通信简单等优点,非常适合于数字温度计的设计。
接下来,我们需要设计硬件电路。
首先,将DS18B20传感器连接到51单片机的GPIO引脚,并通过一条数据线进行通信。
接下来,将51单片机的引脚连接到数码管显示模块,用于将温度值显示出来。
此外,还可以添加其他功能,如按键开关用于控制菜单切换、蜂鸣器用于报警等。
在软件设计上,首先需要初始化51单片机的GPIO引脚,配置为输入或输出模式,通信时需要配置为模拟输入模式。
然后,利用51单片机的定时器模块生成一定频率的时钟信号,用于与DS18B20传感器通信。
在温度读取过程中,我们需要发送一系列的指令给DS18B20传感器,然后接收传感器返回的温度值。
根据DS18B20传感器的数据手册,我们可以编写相应的C语言代码进行数据的读取和解析。
接着,我们需要将读取到的温度值进行转换和显示。
由于DS18B20传感器输出的温度值为16位二进制补码形式,我们可以使用移位和逻辑运算等操作进行转换。
转换后的温度值可以直接显示在数码管上,通过扫描显示的方式实时更新温度数值。
在应用方面,基于51单片机的数字温度计可以广泛应用于各种温度测量场景。
例如,可以应用于室内温度测量,工业过程控制,农业温室监测等。
由于51单片机具有低功耗、成本低廉等优点,这种数字温度计可以在各种资源有限的环境中使用。
除了基本功能外,我们还可以进行功能扩展。
例如,可以添加存储功能,将温度数据保存到外部存储器中,以便进行后续分析和处理。
基于51单片机的数字温度计实时监测方案探究
![基于51单片机的数字温度计实时监测方案探究](https://img.taocdn.com/s3/m/f702a6fcf021dd36a32d7375a417866fb84ac038.png)
基于51单片机的数字温度计实时监测方案探究数字温度计是一种能够实时监测环境温度的仪器。
本方案通过使用51单片机,将温度传感器与单片机相连接,以实现对环境温度的实时监测。
以下是本方案的详细内容。
一、硬件设计1. 硬件器材准备:准备一个51单片机开发板,一个温度传感器(如DS18B20)、若干杜邦线、一个电阻和一个LCD液晶显示屏。
2. 连接电路:将温度传感器的Vcc引脚连接到单片机的VCC引脚,将GND引脚连接到单片机的GND引脚。
将传感器的DATA引脚连接到单片机的一个IO引脚,并通过一个4.7kΩ的上拉电阻连接到VCC引脚。
将LCD显示屏的引脚连接到单片机相应的IO引脚和电源引脚。
3. 编写单片机程序:使用C语言编写单片机程序,通过读取传感器数据并将结果显示到LCD屏幕上。
程序中需要包括初始化函数、温度读取函数以及数据显示函数。
二、软件设计1. 初始化函数:在初始化函数中设置单片机的工作模式、引脚功能和相关参数,如为LCD显示屏设置数据总线引脚和控制引脚等。
2. 温度读取函数:通过单片机的IO口读取传感器数据。
使用51单片机的串行通信功能与温度传感器进行通信,并读取传感器发送的数据。
根据传感器的规格说明书,将接收到的数据转换为温度值。
3. 数据显示函数:将读取到的温度值显示到LCD屏幕上。
先清除LCD屏幕上的内容,然后使用LCD屏幕上的光标控制函数将温度值显示到特定位置。
可以选择在LCD屏幕上显示华氏度或摄氏度。
三、实时监测方案1. 循环读取温度值:在主函数中,使用一个无限循环来实现连续地读取温度值。
在每次循环中调用温度读取函数,读取传感器当前的温度值。
2. 设置温度报警:根据实际需求,在主函数中添加一个判断语句,当温度值超过或低于某个阈值时,触发温度报警。
可以通过LED灯、蜂鸣器等外设来实现报警。
3. 数据保存和上传:根据需求,可以将读取的实时温度值保存到相应的存储介质中,如SD卡或EEPROM。
基于51单片机的数字温度计设计
![基于51单片机的数字温度计设计](https://img.taocdn.com/s3/m/0bf80b74ef06eff9aef8941ea76e58fafab045d0.png)
基于51单片机的数字温度计设计数字温度计是一种广泛使用的电子测量设备,通过传感器将温度转化为数字信号,并显示出来。
本文将介绍基于51单片机的数字温度计的设计。
该设计将使得使用者能够准确、方便地测量温度,并实时显示在液晶显示屏上。
1. 硬件设计:- 传感器选择:在设计数字温度计时,我们可以选择使用NTC(负温度系数)热敏电阻或者DS18B20数字温度传感器作为温度传感器。
这里我们选择DS18B20。
- 信号转换:DS18B20传感器是一种数字传感器,需要通过单总线协议与51单片机进行通信。
因此,我们需要使用DS18B20专用的驱动电路,将模拟信号转换为数字信号。
- 51单片机的选择:根据设计要求选择合适的51单片机,如STC89C52、AT89S52等型号。
单片机应具备足够的IO口来与传感器和液晶显示屏进行通信,并具备足够的计算和存储能力。
- 显示屏选择:为了实时显示温度,我们可以选择使用1602型字符液晶显示屏。
该显示屏能够显示2行16个字符,足够满足我们的需求。
通过与51单片机的IO口连接,我们可以将温度数据显示在屏幕上。
2. 软件设计:- 采集温度数据:通过51单片机与DS18B20传感器进行通信,采集传感器传输的数字温度数据。
通过解析传感器发送的数据,我们可以获得当前的温度数值。
- 数据处理:获得温度数据后,我们需要对其进行处理。
例如,可以进行单位转换,从摄氏度到华氏度或者开尔文度。
同时,根据用户需求,我们还可以对数据进行滤波、校准等处理。
- 显示数据:通过与液晶显示屏的连接,我们可以将温度数据显示在屏幕上。
可以使用51单片机内部的LCD模块库来控制液晶显示屏,显示温度数据以及相应的单位信息。
- 用户交互:可以设置一些按键,通过与51单片机的IO口连接,来实现用户与数字温度计的交互。
例如,可以设置一个按钮来进行温度单位的切换,或者设置一个按钮来启动数据保存等功能。
3. 功能拓展:- 数据存储:除了实时显示当前温度,我们还可以考虑增加数据存储功能。
基于51单片机的数字温度计实现
![基于51单片机的数字温度计实现](https://img.taocdn.com/s3/m/79f3b77082c4bb4cf7ec4afe04a1b0717fd5b3f0.png)
基于51单片机的数字温度计实现数字温度计是一种能够精确测量温度的仪器,利用数字技术将温度传感器测得的模拟信号转换成数字信号,以显示出实时温度数值。
在这个任务中,我们要使用51单片机来实现一个基于数字技术的温度计。
首先,我们需要一种温度传感器,常用的有热敏电阻传感器和数字温度传感器。
在这里,我们选择使用热敏电阻传感器,因为它价格低廉且性能稳定。
热敏电阻传感器的电阻值会随着温度的变化而发生改变,我们可以利用这个特性来测量温度。
51单片机是一种常用的微型计算机芯片,具有强大的计算和控制能力,非常适合用于实现温度计。
我们可以将热敏电阻传感器连接到单片机的模拟输入引脚上,通过读取引脚上的电压值来获取温度值。
接下来,我们需要编写51单片机的程序来实现温度的转换和显示。
首先,我们需要将模拟信号通过模数转换器(ADC)转换成数字信号。
然后,我们可以通过一定的算法将数字信号转换成对应的温度数值。
为了实现温度的显示,我们可以连接一个LCD液晶屏到51单片机上。
LCD屏幕可以显示数字和字符,我们可以在屏幕上显示实时的温度数值。
除了温度的显示,我们还可以添加一些功能来增强温度计的实用性。
例如,我们可以设置一个温度报警功能,在温度超过一定阈值时发出声音或亮起警示灯。
这样可以方便用户随时知晓温度是否正常。
另外,我们还可以为温度计添加保存数据的功能。
通过连接一个存储器芯片,我们可以将温度数据存储下来,方便后续分析和查看。
总之,基于51单片机的数字温度计实现可以通过连接热敏电阻传感器并编写相应的程序来实现温度的测量和显示。
通过添加额外的功能,例如温度报警和数据存储,可以增强温度计的实用性和功能性。
这样的温度计可以广泛应用于室内温度检测、工业控制和科研实验等领域。
(完整版)基于51单片机数字温度计毕业设计论文
![(完整版)基于51单片机数字温度计毕业设计论文](https://img.taocdn.com/s3/m/93b1ada1fd0a79563c1e7289.png)
课程设计题目:基于51单片机的数字温度计设计姓名:张鹏班级名称:采矿1109班学号:指导老师:曹金燕2015年设计任务书目录第1章概述 (1)1.1简述 (1)1.2任务描述 (1)1.3设计思路 (2)第2章系统主要元器件介绍 (2)2.1单片机的选用及功能介绍 (2)2.2DS18B20温度传感器介绍 (5)2.2.1引脚功能 (6)2.2.4 DS18B20的测温原理 (12)2.374LS244反相器简介 (14)第3章硬件电路的设计 (15)3.1接口设计 (15)3.2主板电路设计 (15)3.3其他电路设计 (16)第4章软件设计 (19)4.1主程序 (19)4.2读出温度子程序 (19)4.3温度转换命令子程序 (20)4.5显示数据刷新子程序 (21)4.6主要设计程序 (21)4.7调试 (23)第5章结束语 (24)参考文献 (25)致谢 (26)附录一 (27)摘要本文主要介绍了一种基于AT89S51单片机和DS18B20数字温度传感器来进行测温的方法。
具体设计时,作者对AT89S51和DS18B20进行了接口电路设计,同时利用74LS244进行段码驱动、实现数码管的显示输出;并在此基础上,通过软件设计实现温度的数据采集和传输。
由于DS18B20数字温度传感器是单总线器件,与AT89S51单片机组成一个测温系统,具有线路简单、体积小等特点,并且由于是在同一根通信线上,因此可以扩展、挂接很多这样的测温系统,十分方便。
关键词:数字温度计;AT89S51;DS18B20;74LS2第一章概述1.1 简述单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也可以间接处理温度、湿度、压力等非电信号。
由于该特点,因而被广泛应用于工业控制领域。
另一方面,由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行AD或DA转换,最后再传输给单片机进行最终的数据处理和显示。
基于51单片机数字温度计的设计与实现
![基于51单片机数字温度计的设计与实现](https://img.taocdn.com/s3/m/9d8f1cadafaad1f34693daef5ef7ba0d4a736dce.png)
基于51单片机数字温度计的设计与实现数字温度计是一种能够测量环境温度并显示数值的设备。
基于51单片机的数字温度计设计与实现是指利用51单片机作为核心,结合温度传感器和其他辅助电路,实现一个能够测量温度并通过数码管显示温度数值的系统。
本文将从硬件设计和软件实现两个方面介绍基于51单片机数字温度计的具体设计与实现过程。
一、硬件设计1. 温度传感器选取在设计数字温度计时,首先需要选取合适的温度传感器。
市面上常用的温度传感器有热敏电阻、功率型温度传感器(如PT100)、数字温度传感器(如DS18B20)等。
根据设计需求和成本考虑,我们选择使用DS18B20数字温度传感器。
2. 电路设计基于51单片机的数字温度计的电路设计主要包括单片机与温度传感器的连接、数码管显示电路和电源电路。
(1)单片机与温度传感器的连接在电路中将51单片机与DS18B20数字温度传感器相连接,可采用一线总线的方式。
通过引脚的连接,实现单片机对温度传感器的读取控制。
(2)数码管显示电路为了能够显示温度数值,我们需要设计一个数码管显示电路。
根据温度传感器测得的温度值,通过数字转换和数码管驱动,将温度数值显示在数码管上。
(3)电源电路电源电路采用稳压电源设计,保证整个系统的稳定供电。
根据实际需求选择合适的电源电压,并添加滤波电容和稳压芯片,以稳定电源输出。
3. PCB设计根据电路设计的原理图,进行PCB设计。
根据电路元件的布局和连线的走向,绘制PCB板的线路、元件和连接之间。
二、软件实现1. 单片机的编程语言选择对于基于51单片机的数字温度计的软件实现,我们可以选择汇编语言或者C语言进行编程。
汇编语言的效率高,但编写难度大;C语言的可读性好,开发效率高。
根据实际情况,我们选择使用C语言进行编程。
2. 温度传感器数据获取利用单片机的IO口与温度传感器相连,通过一线总线协议进行数据的读取。
根据温度传感器的通信规则,编写相应的代码实现数据的读取。
基于51单片机数字温度计设计与实现
![基于51单片机数字温度计设计与实现](https://img.taocdn.com/s3/m/a6d5eec58662caaedd3383c4bb4cf7ec4afeb6f0.png)
基于51单片机数字温度计设计与实现数字温度计是一种常见的电子仪器,用于测量和显示温度。
本文将介绍如何基于51单片机设计和实现一个数字温度计。
首先,我们需要了解51单片机的基本原理和工作方式。
51单片机是一款广泛应用于嵌入式系统中的微控制器,具有低成本、易编程、可扩展等特点。
它由中央处理器、存储器、输入输出端口和定时器等组成,可以实现各种功能。
接下来,我们可以开始设计数字温度计的硬件部分。
首先,我们需要一个温度传感器,如DS18B20数字温度传感器。
该传感器具有高精度和数字输出的特点,可以直接与51单片机进行通信。
然后,将传感器与51单片机的引脚相连,通过读取传感器输出的温度值,即可得到实时的温度数据。
为了方便用户查看温度,我们可以通过数码管或LCD显示屏显示温度值。
数码管是一种7段显示器件,可以显示数字0-9的字符。
我们可以通过将温度值拆分成各个位数,然后将对应的数字发送到数码管上,实现温度的显示。
此外,我们还可以为温度计添加一些附加功能。
例如,可以通过按键切换温度的单位,从摄氏度切换到华氏度。
还可以设置温度报警功能,当温度超过一定阈值时,触发蜂鸣器或LED灯进行报警。
在软件设计方面,我们需要编写51单片机的固件程序来实现温度计的功能。
首先,我们需要初始化51单片机的引脚和定时器。
然后,可以设置一个定时器中断,用于定时读取温度传感器的数值。
在定时器中断的处理函数中,读取温度传感器的数值,并将其转换为摄氏度或华氏度,然后发送到数码管或LCD显示屏上。
此外,我们还可以添加一些交互功能,例如按键实现温度单位切换或报警阈值的设置功能。
通过按键检测的方式,可以在主循环中判断按键的按下和释放,并根据按键的状态进行相应的操作。
最后,我们需要将编写好的固件程序下载到51单片机的存储器中。
可以使用ISP编程器或者串口下载方式进行下载。
下载完成后,将51单片机与硬件连接好,就可以通过操作按键和观察数码管或LCD显示屏来实现数字温度计的功能了。
基于51单片机的数字温度计开发及应用
![基于51单片机的数字温度计开发及应用](https://img.taocdn.com/s3/m/f507334203020740be1e650e52ea551810a6c938.png)
基于51单片机的数字温度计开发及应用数字温度计是一种利用数字技术来实现温度测量和显示的仪器。
它具有测量精度高、响应迅速、体积小、易于携带等优点,广泛应用于工业控制、生活中的温度测量和监控。
本文将介绍基于51单片机的数字温度计的开发及应用。
一、硬件设计1. 温度传感器选择:常见的温度传感器有热电偶、热敏电阻、半导体温度传感器等。
根据应用需求选择合适的温度传感器,如DS18B20数字温度传感器。
2. 电路设计:根据温度传感器的工作原理,设计合适的电路进行温度测量。
一种常用的电路是将温度传感器与单片机相连,通过单片机来读取传感器的温度数值。
电路设计要注意电源稳定性、信号放大和滤波等。
3. 显示器选择:可以选择液晶显示器、LED数码管等来显示温度数值。
液晶显示器可以显示更多信息,LED数码管则结构简单、适合简单的温度显示。
4. 控制器选择:选择一款合适的51单片机作为控制器,具有丰富的外设接口和较高的性价比。
如常用的STC89C52单片机。
二、软件开发1. 编程语言选择:使用C语言进行开发,具有相对较高的运行效率和开发效率。
2. 温度测量算法:根据温度传感器的特性和电路设计,编写测量算法来准确读取温度数值。
对于DS18B20传感器,可以参考其提供的通信协议进行编程。
3. 数据处理与显示:读取到温度数值后,通过算法和数据处理来获得最终的温度值。
将温度值显示在选定的显示器上,可以实现数字显示、小数点显示等功能。
4. 控制模块设计:可以根据需求设计控制模块,如报警功能、温度范围设定、温度记录等。
根据温度数值进行判断和控制,实现相应的控制逻辑。
三、应用场景1. 家庭温度监控:将数字温度计应用于家中,实时监测室内温度。
可以设置温度报警阈值,当温度超过设定值时发出警报提示。
2. 工业控制:在工业生产中,温度是一个重要的参数。
将数字温度计应用于控制系统中,实时监测生产环境的温度变化,保持生产过程的稳定性和安全性。
3. 温室农业:数字温度计可以应用于温室农业中,实时监测温室内外的温度差异,帮助农民掌握温室环境,并进行相应的调节和控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件课程设计实验报告课题:数字温度计班级:作者:学号:指导老师:课设评价:课设成绩:目录一.需求分析 (1)二.概要设计 (1)三.硬件电路设计 (3)四.系统软件设计 (5)五.软件仿真 (8)六.实际连接与调试 (9)七.本次课设的收获与感受 (11)附录(程序源代码) (12)一.需求分析功能要求:测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。
设计要求:(一)功能要求(1) 由4位数码管显示当前温度。
(2) 具备报警,报警门限通过键盘设置。
(3) 精度为0.5℃。
(二)画出参考的电路原理图(三)画出主程序及子程序流程图、画出MCS51部RAM分配图,并进行适当地解释。
(四)写出实现的程序及实现过程。
并进行适当地解释说明。
二.概要设计(一)方案选择由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
(二)系统框图该系统可分为以下七个模块:(1)控制器:采用单片机STC89C52对采集的温度数据进行处理;(2)温度采集:采用DS18B20直接向控制器传输12位二进制数据;(3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值;(4)门限设置:主要实现模式切换及上下门限温度的调节;(5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光;(6)复位电路:对整个系统进行复位;(7)时钟振荡模块:为整个系统提供统一的时钟周期。
(三)重要器件及其相关参数(1)单片机STC89C52P0.0~P0.7:通用I/O引脚或数据低8位地址总线复用地址;P1.0~P1.7:通用I/O引脚;P2.0~P2.7:通用I/O引脚或高8位地址总线复用地址;P3.0~P3.7:通用I/O引脚或第二功能引脚(RxD、TxD、INT0、INT1、T0、T1、WR、RD);XTAL1、XTAL2:外接晶振输入端;RST/Vpd:复位信号输入引脚/备用电源输入引脚;Vcc:接+5V电源;Vss:地端。
(2)DS18B20(a)通过单线总线端口访问DS1820 的协议如下:•初始化•ROM 操作命令•存储器操作命令•执行/数据DS1820 需要严格的协议以确保数据的完整性。
协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。
所有这些信号,除存在脉冲外,都是由总线控制器发出的。
和DS1820 间的任何通讯都需要以初始化序列开始,初始化序列见图11。
一个复位脉冲跟着一个存在脉冲表明DS1820 已经准备好发送和接收数据(适当的ROM 命令和存储器操作命令)(b)当总线上只有一个器件时,DS18B20读温度的流程为:复位发0CCH SKIP ROM命令发44H开始转换命令延时复位发0CCHSKIP ROM命令发0BEH读存储器命令连续读出两个字节数据(即温度)结束。
➢Convert T [44h]这条命令启动一次温度转换而无需其他数据。
温度转换命令被执行,而后DS1820 保持等待状态。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820 又忙于做时间转换的话,DS1820 将在总线上输出“0”,若温度转换完成,则输出“1”。
如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。
➢Read Scratchpad [BEh]这个命令读取暂存器的容。
读取将从字节0 开始,一直进行下去,直到第9(字节8,CRC)字节读完。
如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。
(c)DS18b20 用12 位存贮温值度最高位为符号位,下图为18b20 的温度存储方式,负温度S=1 正温度S=0LSB:三.硬件电路设计本次实验采用了老师提供的单片机系统,所以整体的硬件电路设计需要在已知的硬件条件下进行设计。
(一)下图为已有的单片机系统部分电路图分析:(1)由上图可知,时钟振荡电路,复位电路均以在原系统中正确连接。
(2)数字温度计所需的显示电路电路中,原系统将段码输出连在P2接口中,但由图可知,该图中的六个数码管中的小数点均无法点亮,原因在于图中并未对其进行连接,也无引脚供外界连接。
而六个数码管的位选端口连在P1接口上。
本次课程设计中,我们选择使用P1.0~P1.3上所连接的四个数码管。
(3)通过软件测试验证,原系统中的数码管为共阴极,且原系统中位选信号是通过一个反向器之后才输入数码管。
(4)原系统中P0端口未使用,所以可以用排线引出,连接我们所需要补充的电路,包括DS18B20总线输入电路、门限设置电路以及报警电路。
(二) 温度采集电路、门限设置电路及报警电路(其余电路省略)图中:(1)门限中的三个按键,分别为模式切换按键、加按键、减按键;(2)报警电路中,超过高门限或者低于低门限时发光二极管被点亮,其余时刻均熄灭;(3)DS18B20温度采集电路中,需要注意的是DQ上需要一个上拉电阻,一般为4.7KΩ左右。
四.系统软件设计(一)读取数据的流程图DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。
DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。
此外,还可外接5 V电源,给DSl8820供电。
DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。
下图读取数据流程图。
(二)温度数据处理程序的流程图读出温度数据后,temp的低四位为温度的小数部分,可以精确到0.0625℃,temp的中间8位为温度的整数部分,temp的高四位全部为1表示负数,全为0表示正数。
所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。
小数部分进行显示时要使用另外的查询表,与整数显示查询表有所不同。
因为本次课程设计只要求测试的温度围为0~70℃,所以符号位S必为0,软件设计中则默认所测数据为正,从而不设符号位判定。
(三)模式切换流程图使用模式值st来标记不同模式,st=1时,表示在正常温度模式,st=2,表示在高门限模式,st=3表示在低门限模式,每次按下一次模式切换键,st+1,待其加至4时,将该值返回至1。
从而形成了模式键不断按下,三种模式循环切换的情况。
防抖在这里是十分关键的。
因为此处的按键是按下然后又返回为按了一次。
所以按下时,则进入程序,为了防止机械抖动等不确定情况,延时恰当的一段时间后再次检测是否确实按下。
若确实按下,则对模式进行切换。
切换后,延时等待按键返回高位,返回高位后,再次延时消除抖动,再次检验,确定按键返回高位后,退出程序。
五.软件仿真电路图连接:严格按照硬件设计中已有的单片机系统的连接方式和自己补充的电路的连接方式进行仿真,要最贴近实际电路,才能更准确的得到仿真结果。
系统电路图高门限下数码管显示低门限下数码管显示正常模式下数码管显六.实际连接与调试(一)仿真成功后,在实际操作中,电路图的连接应该严格按照仿真电路进行。
问题:在最开始实验中,我将DS18B20的DQ连接在P1.4,且仿真成功。
但是在实际连接中,我将DQ连接在了P0.4端口,但实际电路中无任何数据显示。
再次仿真,将DQ接至P0.4,仿真不成功。
后查阅P0、P1、P2以及P3口的部结构后发现,除P0外另外三口均接有上拉电阻,而P0则无。
所以P0在作为通用I/O接口使用时,必须外接上拉电阻,其余端口则不需要。
所以,为方便起见,实际中,将DQ按照最初仿真设计,接至P1.4。
(二)原系统所拥有资料太少,数码管类型未知。
因只查阅到原系统的部分电路图,且无详细说明,所以为证明在网上搜索到的电路图的正确性以及确定数码管的类型。
先编写一个简单的数字显示程序。
最开始,我并没有意识到原系统中的片选信号接有反向器,在测试程序中,无论使用共阴还是共阳数字查询表,数码管均显示8888,后发现问题将所有片选数值取反,再次进行测试,确定数码管为共阴极。
同时,在测试过程中,发现原系统的小数点是无法点亮的。
(三)关于位选在最开始的测试数码管类型中,我只测试了一位数码管,使其显示数值1,但测试成功后,6位数码管均显示为1。
在测试过程中,我并未注意这个问题。
测试结束后,进行整体联调。
但数码管始终无正确显示。
当时,我首先着手于寻找软件程序中是否有错误。
所以人为将temp设定为一个固定值,先确定数据处理程序和数据显示程序无误。
然而数码管无常显示我预先设定的值,后经过反复改动,发现,在位选过程中,必须在选中一位数码管的过程中同时将其余所有的数码管关闭,否则将产生混乱。
若逐一设定S1=1;S2=0;S3=0;S4=0未免太过麻烦,所以设定一个数组,分别赋值0x08,0x04,0x02,0x01。
片选时按照规则将上值赋给,则一举多得。
(四)DQ数据采集上述问题均解决后,再次进行调试,数码管显示25592。
这个值非常特殊,且第5个数码管,在程序中所有地方均是将其熄灭的,为何此处会亮呢??显然采集的数据是有很大问题的,因为很明显2559中,9为小数部分,将2559换为二进制则为1111 1111 1111。
这就说明电路并没有采集到温度数据,原因一:DQ上接有上拉电阻,在输出正常温度数据外始终为高电平,所以此处很可能并没有采集到正常输出温度数据;原因二:室温不可能为25592。
但是当时,我并没有对器件是否损坏产生怀疑。
原因在于,大部分时候数码管显示的是12791,且两边的1很亮且基本无闪烁,279则在不断闪烁,频率很快,造成了27.9为数码管要显示的温度的错觉,且27.9是与当时实验室的温度非常接近的。
同时,在我不断的对程序中DS18B20的初始化时等部分的时序进行调整时,279的闪烁频率发生变化,两个1并无变化。
在经历了无法显示正常温度的挫败后,我仔细查阅了DS18B20的数据手册,确定了在其初始化过程中,DQ电平应该如何变化且应当延时多少。
同时也确定了DS8B20的在12位分辨率情况下数据A/D转换所需时间为500ms~750ms,所以在发出转换命令后需要给其充分的时间来进行A/D转换。
在经历了上述种种之后,我基本确定了程序中时序的正确性。
再次进行实验室,数码管始终显示的为850,第5位数码管无故亮起的情况消失了(到现在我都不清楚它当时为什么会亮)。