基于51单片机的数字温度计设计
基于MCS51系列单片机的数字温度计设计
基于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单片机数字温度计设计与实现温度计是一种常见的电子测量设备,用于测量环境或物体的温度。
而数字温度计基于单片机的设计与实现,能够更准确地测量温度并提供数字化的显示,具备更多功能。
一、设计原理数字温度计的设计原理基于温度传感器和单片机。
温度传感器用于感测温度,而单片机负责将传感器读取的模拟信号转化为数字信号,并进行温度计算及显示。
二、所需材料1. 51单片机2. 温度传感器(例如DS18B20)3. 数码管或液晶显示屏4. 连接线5. 电源电路电容、电阻等元件三、设计步骤1. 连接电路:按照电路原理图将51单片机、温度传感器和显示器等元件进行连接。
注意正确连接引脚,以及电源电路的设计和连接。
2. 编写程序:利用汇编语言或C语言编写51单片机的程序,实现温度读取、计算和显示功能。
3. 温度传感器设置:根据温度传感器的型号和数据手册,配置单片机相应的输入输出口、温度转换方式等参数。
4. 读取温度:通过单片机对温度传感器进行读取,获取传感器采集的温度数据。
5. 温度计算:根据传感器输出的数据和转换方法,进行温度计算,得到更准确的温度数值。
6. 数字显示:将计算得到的温度数值通过数码管或液晶显示屏进行数字显示。
可以选择合适的显示格式和单位。
7. 添加附加功能:可以根据实际需求,增加其他功能,如报警功能、数据记录、温度曲线显示等。
8. 系统测试与优化:将设计的数字温度计进行系统测试,确保其正常运行和准确显示温度。
根据测试结果进行可能的优化或改进。
四、注意事项1. 连接线应牢固可靠,避免出现松动或接触不良的情况。
2. 选择合适的温度传感器,并正确设置传感器的相关参数。
3. 程序设计时应注意算法的准确性和优化性,以确保测量的准确性和实时性。
4. 温度传感器的安装和环境选择也会影响温度计的准确性,应避免与外部环境干扰和热源过近的情况。
五、应用领域1. 家庭和工业温度监测:数字温度计可以广泛应用于室内、室外温度监测,工业生产中的温度控制等。
基于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 家庭温度监测:数字温度计可以安装在家庭中的不同区域,实时监测室内温度,并通过数字显示提供直观的温度信息。
这对于家庭的舒适性和节能都有重要意义。
基于51单片机的数字温度计
基于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单片机数字温度计的设计与实现温度计是一种广泛使用的电子测量仪器,它能够通过感知温度的变化来提供精准的温度数值。
本文将介绍如何使用51单片机设计并实现一款数字温度计。
一、硬件设计1. 采集温度传感器温度传感器是用来感知环境温度的关键器件。
常见的温度传感器有DS18B20、LM35等。
在本次设计中,我们选择DS18B20温度传感器。
通过电路连接将温度传感器与51单片机相连,使51单片机能够读取温度传感器的数值。
2. 单片机选型与连接选择适合的51单片机型号,并根据其引脚功能图对单片机进行合理的引脚连接。
确保温度传感器与单片机之间的数据传输通畅,同时保证电源和地线的正确连接。
3. 显示模块选型与连接选择合适的数字显示模块,如数码管、液晶显示屏等。
将显示模块与51单片机相连,使温度数值能够通过显示模块展示出来。
4. 电源供应为电路提供稳定的电源,保证整个系统的正常运行。
选择合适的电源模块,并根据其规格连接电路。
二、软件设计1. 温度传感器读取程序编写程序代码,使用单片机GPIO口将温度传感器与单片机连接,并通过相应的通信协议读取温度数值。
例如,DS18B20采用一线制通信协议,需要使用单总线协议来读取温度数值。
2. 数字显示模块驱动程序编写程序代码,通过单片机的GPIO口控制数字显示模块的数码管或液晶显示屏进行温度数值显示。
根据显示模块的规格,编写合适的驱动程序。
3. 温度转换算法将温度传感器读取到的模拟数值转换为实际温度数值。
以DS18B20为例,它输出的温度数值是一个16位带符号的数,需要进行相应的转换操作才能得到实际的温度数值。
4. 系统控制程序整合以上各部分代码,编写系统控制程序。
该程序通过循环读取温度数值并进行数据处理,然后将处理后的数据送到数字显示模块进行实时显示。
三、实现步骤1. 硬件连接按照前文所述的硬件设计,将温度传感器、51单片机和数字显示模块进行正确的连接。
确保连接无误,并进行必要的电源接入。
基于51单片机和DS18B20的数字温度计设计说明
基于51单片机和DS18B20的数字温度计设计说明
1.硬件设计:
-51单片机:选择合适的型号,如STC89C52或AT89C52等。
-DS18B20温度传感器:该传感器是一种数字温度传感器,具有单总线接口和高精度测量能力。
-接口电路:将51单片机和DS18B20传感器连接起来,要注意电平转换和信号线的阻抗匹配。
2.软件设计:
-初始化:在主函数中,首先对单片机进行初始化设置,包括时钟设置、串口配置等。
-DS18B20通信协议:使用单总线协议与DS18B20传感器进行通信,包括发送复位信号、读写数据等操作。
-温度测量:通过向DS18B20发送读取温度的命令,从传感器中读取温度值并保存。
-数据传输:将温度值转换为可显示的格式,如摄氏度或华氏度,并通过串口输出或LED显示。
3.程序流程:
-初始化单片机,设置时钟和串口参数。
-进入主循环,循环执行以下操作:
-发送复位信号,启动温度转换。
-等待转换完成,发送读取温度命令。
-读取温度值,并进行数据处理转换。
-输出温度值。
4.其他功能:
-可以添加LCD显示模块,将温度值显示在液晶屏上。
-可以添加按键输入模块,通过按键切换温度单位或进行其他操作。
需要注意的是,该设计只是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和修改。
同时,在程序设计过程中,也要注意低功耗和数据稳定性等方面的考虑。
51单片机数字温度计的设计与实现方法论
51单片机数字温度计的设计与实现方法论1.引言温度计是一种常见的电子设备,用于测量温度并将其转化为数字显示。
本文将介绍在51单片机上设计与实现数字温度计的方法论。
2.硬件设计2.1 温度传感器选择温度传感器是数字温度计的核心组件,常用的温度传感器有热敏电阻、热敏电容和数字温度传感器等。
需要根据实际需求选择合适的温度传感器,并根据其特性调整硬件设计。
2.2 温度传感器接口电路设计温度传感器需要与51单片机进行通信,因此需要设计相应的接口电路来连接传感器与单片机。
根据传感器的通信协议选择合适的接口设计方案,例如I2C、SPI等。
2.3 数字显示模块选型数字温度计需要将测量到的温度以数字形式显示出来,因此需要选择合适的数码管、液晶显示屏或其他数字显示模块。
根据实际需求选择合适的显示模块,并考虑与51单片机的接口兼容性。
3.软件设计3.1 接口通信协议根据温度传感器的通信协议选择合适的接口设计方案,并在软件中实现相应的协议处理算法。
其中包括数据传输的初始化、发送和接收等功能。
3.2 温度测量与转换算法根据选用的温度传感器,编写软件算法将传感器采集到的模拟温度值转换为数字温度值。
具体算法根据传感器的特性来设计,可能需要使用模拟转数字转换技术、纠偏算法等。
3.3 数字温度值显示算法编写显示算法,在数码管、液晶屏或其他数字显示模块上将转换后的数字温度值进行显示。
可以根据具体需求设计温度的显示格式和精度。
4.系统实现4.1 硬件连接根据硬件设计的要求,按照相应的电路连接方式将温度传感器、51单片机和数字显示模块进行硬件连接。
4.2 软件编程利用汇编语言或高级编程语言(如C语言)编写相应的软件程序,分别实现接口通信、温度测量与转换、数字温度值显示等功能。
4.3 调试与测试对整个系统进行调试和测试,确保温度传感器能够准确采集温度、转换算法正确运行并实现数字温度值的显示等功能。
5.总结本文介绍了51单片机数字温度计的设计与实现方法论。
基于51单片机的数字温度计设计及应用
基于51单片机的数字温度计设计及应用数字温度计是一种测量环境温度的设备,它使用数字技术来转换和显示温度值。
基于51单片机的数字温度计设计及应用,我们将使用51单片机作为主控芯片,采集传感器的温度数据并将其转换为数字信号,然后通过数码管显示出来。
首先,我们需要选择合适的温度传感器。
常见的温度传感器有热敏电阻、热电偶和数字温度传感器等。
在本设计中,我们将使用DS18B20数字温度传感器。
DS18B20具有高精度、数字输出、通信简单等优点,非常适合于数字温度计的设计。
接下来,我们需要设计硬件电路。
首先,将DS18B20传感器连接到51单片机的GPIO引脚,并通过一条数据线进行通信。
接下来,将51单片机的引脚连接到数码管显示模块,用于将温度值显示出来。
此外,还可以添加其他功能,如按键开关用于控制菜单切换、蜂鸣器用于报警等。
在软件设计上,首先需要初始化51单片机的GPIO引脚,配置为输入或输出模式,通信时需要配置为模拟输入模式。
然后,利用51单片机的定时器模块生成一定频率的时钟信号,用于与DS18B20传感器通信。
在温度读取过程中,我们需要发送一系列的指令给DS18B20传感器,然后接收传感器返回的温度值。
根据DS18B20传感器的数据手册,我们可以编写相应的C语言代码进行数据的读取和解析。
接着,我们需要将读取到的温度值进行转换和显示。
由于DS18B20传感器输出的温度值为16位二进制补码形式,我们可以使用移位和逻辑运算等操作进行转换。
转换后的温度值可以直接显示在数码管上,通过扫描显示的方式实时更新温度数值。
在应用方面,基于51单片机的数字温度计可以广泛应用于各种温度测量场景。
例如,可以应用于室内温度测量,工业过程控制,农业温室监测等。
由于51单片机具有低功耗、成本低廉等优点,这种数字温度计可以在各种资源有限的环境中使用。
除了基本功能外,我们还可以进行功能扩展。
例如,可以添加存储功能,将温度数据保存到外部存储器中,以便进行后续分析和处理。
基于51单片机的数字温度计实时监测方案探究
基于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单片机的数字温度计设计数字温度计是一种广泛使用的电子测量设备,通过传感器将温度转化为数字信号,并显示出来。
本文将介绍基于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单片机的数字温度计实现数字温度计是一种能够精确测量温度的仪器,利用数字技术将温度传感器测得的模拟信号转换成数字信号,以显示出实时温度数值。
在这个任务中,我们要使用51单片机来实现一个基于数字技术的温度计。
首先,我们需要一种温度传感器,常用的有热敏电阻传感器和数字温度传感器。
在这里,我们选择使用热敏电阻传感器,因为它价格低廉且性能稳定。
热敏电阻传感器的电阻值会随着温度的变化而发生改变,我们可以利用这个特性来测量温度。
51单片机是一种常用的微型计算机芯片,具有强大的计算和控制能力,非常适合用于实现温度计。
我们可以将热敏电阻传感器连接到单片机的模拟输入引脚上,通过读取引脚上的电压值来获取温度值。
接下来,我们需要编写51单片机的程序来实现温度的转换和显示。
首先,我们需要将模拟信号通过模数转换器(ADC)转换成数字信号。
然后,我们可以通过一定的算法将数字信号转换成对应的温度数值。
为了实现温度的显示,我们可以连接一个LCD液晶屏到51单片机上。
LCD屏幕可以显示数字和字符,我们可以在屏幕上显示实时的温度数值。
除了温度的显示,我们还可以添加一些功能来增强温度计的实用性。
例如,我们可以设置一个温度报警功能,在温度超过一定阈值时发出声音或亮起警示灯。
这样可以方便用户随时知晓温度是否正常。
另外,我们还可以为温度计添加保存数据的功能。
通过连接一个存储器芯片,我们可以将温度数据存储下来,方便后续分析和查看。
总之,基于51单片机的数字温度计实现可以通过连接热敏电阻传感器并编写相应的程序来实现温度的测量和显示。
通过添加额外的功能,例如温度报警和数据存储,可以增强温度计的实用性和功能性。
这样的温度计可以广泛应用于室内温度检测、工业控制和科研实验等领域。
课程设计之基于51单片机的数字温度计设计
目录摘要 ............................................................................................................................... 3 Abstract ......................................................................................................................... 3绪论 ............................................................................................................................... 3 第一章 温度传感器的应用及问题 ........................................................................... 4 1.1 1.1 引言引言................................................................................................................. 4 1.2传感器............................................................................................................... 41.3 任务与要求...................................................................................................... 41.3.1 1.3.1 本设计课题的目的和意义本设计课题的目的和意义.................................................................. 4 1.3.2 1.3.2 设计任务及指标设计任务及指标.................................................................................. 4 1.4 1.4 本章小结本章小结......................................................................................................... 4 第二章 温度传感器的简介 ....................................................................................... 5 2.1集成温度传感器的介绍.................................................................................. 5 2.2 2.2 温度传感器的发展历史温度传感器的发展历史................................................................................. 5 2.2.1分立式温度传感器............................................................................... 5 2.2.2模拟集成温度传感器........................................................................... 5 2.2.3模拟集成温度控制器........................................................................... 5 2.2.4智能温度传感器................................................................................... 6 2.2.5智能温度控制器................................................................................... 6 2.2.6内含温度传感器的专用集成电路....................................................... 6 2.3 2.3 智能温度传感器发展的新趋势智能温度传感器发展的新趋势..................................................................... 7 2.3.1 2.3.1 提高测温精度和分辨率提高测温精度和分辨率...................................................................... 7 2.3.2 2.3.2 不断增加测试功能不断增加测试功能.............................................................................. 7 2.3.3总线技术的标准化与规范化............................................................... 8 2.3.4可靠性及安全性设计........................................................................... 8 2.3.5开发虚拟温度传感器和网络温度传感器........................................... 9 2.3.6研制单片测温系统............................................................................... 9 2.4 2.4 本章小结本章小结....................................................................................................... 10 第三章 智能温度传感器与单片机 ......................................................................... 10 3.1 3.1 智能温度传感器的产品分类智能温度传感器的产品分类....................................................................... 10 3.2 3.2 智能温度传感器典型产品的技术指标智能温度传感器典型产品的技术指标....................................................... 10 3.3 3.3 单片机单片机AT89C2051的简介........................................................................... 11 3.4 3.4 单片机单片机AT89C2051的引脚图....................................................................... 12 3.5 3.5 本章小结本章小结....................................................................................................... 12 第四章 DS18B20数字温度计................................................................................. 12 4.1 DS18B20温度传感器的性能特点................................................................ 12 4.2 DS18B20温度传感器的内部结构框图及设置............................................ 12 4.3DS18B20温度传感器与单片机的接口电路.................................................. 15 4.4本章小结........................................................................................................ 15 第五章 数字温度计的设计 ..................................................................................... 16 5.1 5.1 总体设计方案总体设计方案............................................................................................... 16 5.2方案的总体设计框图.................................................................................... 16 5.2.1主控制器............................................................................................. 16 5.2.2显示电路............................................................................................. 18 5.2.3温度传感器......................................................................................... 18 5.2.3DS18B20温度传感器与单片机的接口电路....................................... 18 5.3系统整体硬件电路........................................................................................ 19 5.3.1主板电路............................................................................................. 19 5.3.2显示电路............................................................................................. 19 5.4系统软件算法分析........................................................................................ 20 5.4.1主程序................................................................................................. 20 5.4.2读出温度子程序................................................................................. 21 5.4.3温度转换命令字程序......................................................................... 22 5.4.4计算温度子程序................................................................................. 22 5.4.5显示数据刷新子程序......................................................................... 22 5.1 5.1 本章小结本章小结....................................................................................................... 22 第六章 硬件 ............................................................................................................. 23 6.1 6.1 系统硬件主要构成系统硬件主要构成....................................................................................... 23 6.2调试及性能分析............................................................................................ 23 总结 ............................................................................................................................. 23 致谢 ............................................................................................................................. 24 参考文献 ..................................................................................................................... 24摘要温度作为一个常用的物理量在我们的气场生活中起着十分重要的作用,所以对温度计的设计也十分必要。
(完整版)基于51单片机数字温度计毕业设计论文
课程设计题目:基于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单片机的数字温度计设计
摘要:用单片机控制实现的测温系统,其精度高,稳定性好,并选用了美国DALLAS公司最新推出的DSl8B20一线式数字温度传感器,并给出了数字温度传感器的硬件接口电路及软件设计方法,通过发光数码管显示温度。
关键词:STC89C52;DSl8B20;测温;1 引言随着现代信息科技的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要接信号处理电路,而且热敏电阻的可靠性较差,测量温度的准确度低,检测系统的精度差。
而今电子技术和微型计算机的迅速发展,采用单片机进行温度检测、数值显示和数据的传送,具有效率高、性能稳定等优点,还可以实现实时实地控制等技术要求,在工业生产中应用越来越广泛。
2 技术要求在三位数码管上显示当前采集到的环境温度,并精确到0.1度。
3 方案论证3.1 恰当地选择温度传感器方案1:用热敏电阻做为温度传感器。
通过采集各个时间内的电压,进行A/D转换,经过电压与温度的转换、校准,测量出温度。
方案2:用DS18B20数字式温度传感器。
DS18B20是DS1820的换代产品,它与传统的热敏电阻温度传感器不同,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
其内部集成了温度的传感器及A/D转换模块,通过读取片内数据,测量出温度。
由于用热敏电阻作为温度传感器误差较大,可靠性相对较差,且不方便调试校准;而DS18B20测量精度高,集成度高,方便调试,线路简单。
所以本设计采用方案2。
3.2 显示器件的选择方案1:采用液晶显示,此种显示方式,液晶耗电量少,能显示复杂的符号图形。
方案2:采用发光数码管显示,此种显示亮度高,且编程简单。
考虑到本系统显示简单,液晶价格贵且亮度低,所以选用方案2。
4 硬件设计4.1 关于单片机单片机是一种集成电路,即采用大规模集成电路技术把具有数据处理能力的CPU(中央处理器)、随机存储器RAM(random access memory )、只读存储器ROM(Read-Only Memory )、多种I/O口和中断系统、定时器/计时器等功能,还可以包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路,集成到一块硅板上构成的一个小而精密的计算机系统。
基于51单片机数字温度计的设计与实现
基于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单片机数字温度计设计与实现数字温度计是一种常见的电子仪器,用于测量和显示温度。
本文将介绍如何基于51单片机设计和实现一个数字温度计。
首先,我们需要了解51单片机的基本原理和工作方式。
51单片机是一款广泛应用于嵌入式系统中的微控制器,具有低成本、易编程、可扩展等特点。
它由中央处理器、存储器、输入输出端口和定时器等组成,可以实现各种功能。
接下来,我们可以开始设计数字温度计的硬件部分。
首先,我们需要一个温度传感器,如DS18B20数字温度传感器。
该传感器具有高精度和数字输出的特点,可以直接与51单片机进行通信。
然后,将传感器与51单片机的引脚相连,通过读取传感器输出的温度值,即可得到实时的温度数据。
为了方便用户查看温度,我们可以通过数码管或LCD显示屏显示温度值。
数码管是一种7段显示器件,可以显示数字0-9的字符。
我们可以通过将温度值拆分成各个位数,然后将对应的数字发送到数码管上,实现温度的显示。
此外,我们还可以为温度计添加一些附加功能。
例如,可以通过按键切换温度的单位,从摄氏度切换到华氏度。
还可以设置温度报警功能,当温度超过一定阈值时,触发蜂鸣器或LED灯进行报警。
在软件设计方面,我们需要编写51单片机的固件程序来实现温度计的功能。
首先,我们需要初始化51单片机的引脚和定时器。
然后,可以设置一个定时器中断,用于定时读取温度传感器的数值。
在定时器中断的处理函数中,读取温度传感器的数值,并将其转换为摄氏度或华氏度,然后发送到数码管或LCD显示屏上。
此外,我们还可以添加一些交互功能,例如按键实现温度单位切换或报警阈值的设置功能。
通过按键检测的方式,可以在主循环中判断按键的按下和释放,并根据按键的状态进行相应的操作。
最后,我们需要将编写好的固件程序下载到51单片机的存储器中。
可以使用ISP编程器或者串口下载方式进行下载。
下载完成后,将51单片机与硬件连接好,就可以通过操作按键和观察数码管或LCD显示屏来实现数字温度计的功能了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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摄氏度,可采用下述方法获得高分辨率的温度测量结果。
:首先用DS18B20提供的读暂存器指令(BEH)读出以0.5摄氏度为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再利用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。
考虑到DS18B20测量温度的整数部分以0.25、0.75摄氏度为进位界限的关系,实际温度Ts可以用下式计算:Ts=(Tz-0.25)+(CD-Cs)/CD六.系统整体硬件电路根据设计要求与设计思路,硬件电路设计框图如下图所示,在仿真软件Proteus上完成,其中LED数码管以动态扫描法实现温度显示,由四个PNP型晶体管Q2,Q3,Q4,Q5和8个电阻组成。
基极与单片机的P1.0,P1.1,P1.2连接,DS18B20的数据I/O端与单片机P3.6引脚连接。
外部晶振为12MHZ。
七.系统程序设计数字式温度计的应用程序主要包括主程序,温度检测程序,温度转换程序,LED显示程序等。
其思路如下图所示:八.测量及其结果分析1.Proteus仿真结果软件方面,在Proteus编译下进行,源程序编译及仿真调试。
在软件中选定传感器后可对其进行环境温度设置,如下图,将环境温度设为34.9.2.硬件测试结果在硬件测试方面,检查电路板及焊接的质量情况,在焊接无误后通电检查LED显示器。
其中成品图如图所示:通电后,室温下LED的示数如图所示九.设计心得体会本次实验对我们组来说是一次难得的经历,首先是第一次接触了仿真软件Proteus,在使用时经历了很多次失败,因为这款软件与以前使用过的软件有很大不同,使用时不停出错,接线时由于原件放置不合理而接的杂乱无章,输入源程序时还算顺利,显示结果比较满意。
其次是程序设计,我们在参考别人成功先例的基础上根据自己设计的需要进行编程,其中经历了不少曲折,最后我的收获是编程一定要细心,针对每一个细节,稍有疏忽程序就不能正常运行。
在这次的实践与学习中,尽管期间困难重重,但我们还是从中学习了不少新的知识和技能,也体会到了经历失败最终成功的喜悦。
总之,通过这次电工电子综合设计,我收获了很多,我希望自己在今后的各项研究工作中也坚持这种精神。
十.附录源程序#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit DATA = P1^1; //DS18B20接入口uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极字型码int temp;//温度值int ss;//中间的一个变量int dd;int j;uchar data b;//定时器中断次数uchar data buf[4];//字型显示中间变量int alarmH=320;//默认报警值int alarmL=100;//定义开关的接入口sbit k1=P2^5;//+sbit k2=P2^6;//-sbit k3=P2^7;//确认sbit k4=P2^4; //切换sbit bell=P1^0; //蜂鸣器sbit HLight=P1^2; //正温指示灯sbit LLight=P1^3; //负温度指示灯sbit warn=P1^4;//报警指示灯sbit Red=P1^6;//温度上限设置指示灯sbit Green=P1^7; //温度下限设置指示灯bit set=0;//初始化bit Flag=0;//设置标志int n;//函数的声明区void key_to1();void key_to2();void delay(uint);void key();void Show();//函数的定义区/*延时子函数*/void delay(uint num){while(num--) ;}//DS18b20温度传感器所需函数,分为初始化,读写字节,读取温度4个函数Init_DS18B20(void)//传感器初始化{uchar x=0;DATA = 1;//DQ复位delay(10);//稍做延时DATA = 0;//单片机将DQ拉低delay(80); //精确延时大于480us//450DATA = 1;//拉高总线delay(20);x=DATA;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay(30);}ReadOneChar(void)//读一个字节{uchar i=0;uchar dat = 0;for (i=8;i>0;i--){DATA = 0; // 给脉冲信号dat>>=1;DATA = 1; // 给脉冲信号if(DATA)dat|=0x80;delay(8);}return(dat);}WriteOneChar(unsigned char dat)//写一个字节{uchar i=0;for (i=8; i>0; i--){DATA = 0;DATA = dat&0x01;delay(10);DATA = 1;dat>>=1;}delay(8);}int ReadTemperature(void) //读取温度{uchar a=0;uchar b=0;int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();//低位b=ReadOneChar();//高位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5;return(t);}void display00()//*********显示负值子函数{dd=-(temp-1);buf[1]=dd/100;buf[2]=dd/100;buf[3]=dd%100/10;buf[0]=dd%10;//动态显示for(j=0;j<5;j++){P2=0xff;// 初始灯为灭的P0=0x00;P2=0xfd; //显示小数点P0=0x80; //显示小数点delay(100);P2=0xff;// 初始灯为灭的P0=0x00;P2=0xf7; //片选LCD1P0=0x40;delay(100);P2=0xff;P0=0x00;P2=0xfb;//片选LCD2P0=table[buf[2]];delay(100);P2=0xff;P0=0x00;P2=0Xfd;//片选LCD3P0=table[buf[3]];delay(100);P2=0xff;P0=0x00;P2=0Xfe;P0=table[buf[0]];//片选LCD4P2=0xff;}}//显示正值子函数void display(){buf[1]=temp/1000;//显示百位buf[2]=temp/100%10;//显示十位buf[3]=temp%100/10;//显示个位buf[0]=temp%10; //小数位for(j=0;j<3;j++){P2=0xff;// 初始灯为灭的P0=0x00;P2=0xfd; //显示小数点P0=0x80; //显示小数点delay(300);P2=0xff;// 初始灯为灭的P0=0x00;P2=0xf7;//片选LCD1P0=table[buf[1]];delay(300);P2=0xff;P0=0x00;P2=0xfb;//片选LCD2P0=table[buf[2]];delay(300);P2=0xff;P0=0x00;P2=0Xfd;//片选LCD3P0=table[buf[3]];delay(300);P2=0xff;P0=0x00;P2=0Xfe;P0=table[buf[0]];//片选LCD4delay(300);P2=0xff;}}void key()//按键扫描子程序{if(k1!=1){if(k1!=1){while(k1!=1){ key_to1();for(n=0;n<8;n++)Show();}}}if(k2!=1){delay(20);if(k2!=1){while(k2!=1){ key_to2();for(n=0;n<8;n++)Show();}}}if(k3!=1){TR0=1; //复位,开定时temp=ReadTemperature();}if(k4!=1){delay(20);if(k4!=1){while(k4!=1);set=!set;if(set==0){ Red=0;Green=1;}else { Green=0;Red=1;}}}}void key_to1(){TR0=0;//关定时器temp+=10;if(temp>=1100){temp=-550;}if(set==0){alarmH=temp;}else {alarmL=temp;}}void key_to2(){TR0=0;//关定时器temp-=10;if(temp<=-550){temp=1100;}if(set==0){ alarmH=temp;}else { alarmL=temp;}}void alarm(void){if(temp>alarmH||temp<alarmL){//bell=1;//delay(50);//bell=0;Flag=1;}else {Flag=0;}}logo()//开机的Logo{P0=0x40;P2=0xf7;delay(50);P2=0xfb;delay(50);P2=0Xfd;delay(50);P2=0Xfe;delay(50);P1 = 0xff;//关闭显示}void Show()//显示函数,分别表示温度正负值{if(temp>=0){HLight=1;LLight=0;display();}if(temp<0){HLight=0;LLight=1;display00();}}void main(){TCON=0x01; //定时器T0工作在01模式下TMOD=0X01;TH0=0XD8;//装入初值TL0=0XF0;EA=1;//开总中断ET0=1; //开T0中断TR0=1; //T0开始运行计数EX0=1; //开外部中断0for(n=0;n<500;n++)//显示启动LOGo"----"{bell=1;warn=1;logo();}Red=0;while(1){key();ss=ReadTemperature();Show();alarm();//报警函数if(Flag==1){bell=!bell;warn=!warn;}//蜂鸣器滴滴响else {bell=1;warn=1;}}}void time0(void) interrupt 1 using 1//每隔10ms执行一次此子程序{TH0=0X56;TL0=0XDC;temp=ss;}。