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

合集下载

基于AT89C51DS18B20的数字温度计设计

基于AT89C51DS18B20的数字温度计设计

基于AT89C51DS18B20的数字温度计设计一、本文概述Overview of this article本文旨在探讨基于AT89C51微控制器和DS18B20数字温度传感器的数字温度计设计。

我们将详细介绍如何利用这两种核心组件,结合适当的硬件电路设计和软件编程,实现一个能够准确测量和显示温度的数字温度计。

This article aims to explore the design of a digital thermometer based on AT89C51 microcontroller and DS18B20 digital temperature sensor. We will provide a detailed introduction on how to utilize these two core components, combined with appropriate hardware circuit design and software programming, to achieve a digital thermometer that can accurately measure and display temperature.我们将对AT89C51微控制器和DS18B20数字温度传感器进行简要介绍,包括它们的工作原理、主要特性和适用场景。

然后,我们将详细阐述硬件电路的设计,包括微控制器与温度传感器的连接方式、电源电路、显示电路等。

We will provide a brief introduction to the AT89C51 microcontroller and DS18B20 digital temperature sensor, including their working principles, main characteristics, and applicable scenarios. Then, we will elaborate on the hardware circuit design, including the connection method between the microcontroller and temperature sensor, power circuit, display circuit, etc.在软件编程方面,我们将介绍如何使用C语言对AT89C51微控制器进行编程,实现温度数据的读取、处理和显示。

基于51单片机和DS18B20温度传感器的火灾自动报警系统设计

基于51单片机和DS18B20温度传感器的火灾自动报警系统设计
毕 业 论 文
论文题目:
本系统是一个基于51单片机和DS18B20温度传感器的的火灾自动报警系统。先设定一个报警温度值,然后由DS18B20温度传感器对温度进行实时超过了报警温度值,则驱动蜂鸣器报警。本系统硬件电路简单,程序复杂度不高,可靠性较强,且成本低,稳定度较高,因此具有一定的实用性价值。
1.2
本文中所采用的方案是选用美国DALLAS公司推出的高精度温度传感器DS18B20、STC89C52单片机以及LCD1602液晶显示器等元件来设计火灾自动报警器。可实现温度的实时显示以及温度达到限定值后自动报警功能。该系统性能稳定、硬件电路简单、价格较低,故有一定的应用前景。
为了完成本文所做的工作为:
Key words: 51 SCM、temperature sensor、auto fire alarming system

1.
火,给人类带来了文明的进步、光明以及温暖,但与此同时,当火失去控制时,又会给人类带来巨大灾难。据统计,我国70年代火灾平均损失不到2.5亿元,80年代火灾平均损失接近3.2亿元。进入90年代,特别是1993年以来,火灾造成的直接损失上升到年均十几亿元,年均死亡2000多人。
本系统是一个基于51单片机和DS18B20温度传感器的的火灾自动报警系统。先设定一个报警温度值,然后由DS18B20温度传感器对温度进行实时的监控,并将温度值显示在LCD1602液晶显示屏上,若温度值超过了报警温度值,则驱动蜂鸣器报警。本系统硬件电路简单,程序复杂度不高,可靠性较强,且成本低,稳定度较高,因此具有一定的实用性价值。
关键词:51单片机、温度传感器、火灾自动报警
Abstract
Nowadays , with the popularization of the electronic products , varieties of electronic products have been bought by many families . Those products can provide people with great convenience , but also fire hazards .

基于51单片机的温度监测系统(DS18B20)

基于51单片机的温度监测系统(DS18B20)
为产生写0时隙,在拉低总线后主机必须继续拉低总线以满足时隙持续时间 的要求(至少60μs)。在主机产生写时隙后,DS18B20会在其后的15到60us的一 个时间窗口内采样单总线。在采样的时间窗口内,如果总线为低电平,主机会 向DS18B20写入0。
DS18B20读时序
所有的读时隙都由拉低总线,持续至少1us后再释放总线(由于上拉电阻的作用,总线恢复为 高
配置寄存器
8 位 CRC 生成器
DS18B20的时序
DS18B20复位时序
DS18B20的所有通信都由由复位脉冲组成的初始化序列开始。该初始化序列由主 机发出,后跟由DS18B20发出的存在脉冲(presence pulse)。在初始化步骤中,总线 上的主机通过拉低单总线至少480μs来产生复位脉冲。然后总线主机释放总线并进入接收 模式。当总线释放后,5kΩ的上拉电阻把单总线上的电平拉回高电平。当DS18B20检测 到上升沿后等待15到60us,发出存在脉冲,拉低总线60-240us至此,初始化和存在时序 完毕。时序图如下:
1.主控制器电路和测温
电路的设计
主控制器电路由AT89S52 及外围时钟和复位电路构成, 测温电路由DS18B20、报警 电路组成。AT89C52是此硬 件电路设计的核心,通过 AT89S52的管脚P2.7与 DS18B20相连,控制温度的 读出和显示。硬件电路的功 能都是与软件编程相结合而 实现的。具体电路原理图如 右图2所示。
送1,以拉低总线的方式表示发送0.当发送0的时候,DS18B20在读时隙的末期将会释放总线,总线
将会被上拉电阻拉回高电平(也是总线空闲的状态)。DS18B20输出的数据在下降沿(下降沿产 生读时隙)产生后15us后有效。因此,主机释放总线和采样总线等动作要在15μs内完成。

基于51单片机的测温数字温度计的最小系统

基于51单片机的测温数字温度计的最小系统

●第一章设计目的——————————————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单片机及DS18B20温度传感器的数字温度计程序及详细注释

基于51单片机及DS18B20温度传感器的数字温度计程序及详细注释

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)电路实物图如下图所示:C语言程序如下所示:/********************************************************************zicreate----------------------------- Copyright (C) --------------------------* 程序名; 基于DS18B20的测温系统* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。

K1是用来* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限* 调节模式。

在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除* 按键音,再按一下启动按键音。

在调节上下限温度模式下,K2是实现加1功能,* K1是实现减1功能,K3是用来设定上下限温度正负的。

* 编程者:Jason* 编程时间:2009/10/2*********************************************************************/#include<AT89X52.h> //将AT89X52.h头文件包含到主程序#include<intrins.h> //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)#define uint unsigned int //变量类型宏定义,用uint表示无符号整形(16位)#define uchar unsigned char //变量类型宏定义,用uchar表示无符号字符型(8位)uchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右bit s1=0; //s1标志位用于上下限查看时的显示void display1(uint z); //声明display1()函数#include"ds18b20.h" //将ds18b20.h头文件包含到主程序#include"keyscan.h" //将keyscan.h头文件包含到主程序#include"display.h" //将display.h头文件包含到主程序/***********************主函数************************/void main(){beer=1; //关闭蜂鸣器led=1; //关闭LED灯timer1_init(0); //初始化定时器1(未启动定时器1)get_temperature(1); //首次启动DS18B20获取温度(DS18B20上点后自动将EEPROM中的上下限温度复制到TH和TL寄存器)while(1) //主循环{keyscan(); //按键扫面函数get_temperature(0); //获取温度函数keyscan(); //按键扫面函数display(temp,temp_d*0.625);//显示函数alarm(); //报警函数keyscan(); //按键扫面函数}}/********************************************************************* 程序名; __ds18b20_h__* 功能:DS18B20的c51编程头文件* 编程者:ZPZ* 编程时间:2009/10/2* 说明:用到的全局变量是:无符号字符型变量temp(测得的温度整数部分),temp_d* (测得的温度小数部分),标志位f(测量温度的标志位‘0’表示“正温度”‘1’表* 示“负温度”),标志位f_max(上限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位f_min(下限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位w(报警标志位‘1’启动报警‘0’关闭报警)。

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

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

题目:基于89C51和DS18B20的数字温度计设计一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C以内,LED 数码管直读显示。

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

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

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。

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

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

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

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

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

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

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

2、显示电路显示电路采用4位共阳LED数码管,从P0口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用8550三极管。

3、温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

基于51单片机的数字温度传感器DS18B20的设计制作

基于51单片机的数字温度传感器DS18B20的设计制作

基于51单片机的数字温度传感器DS18B20的设计制作专业:应用电子技术班级:08应电1班制作人:陈艳黄凤蒋斌指导老师:邝永明2009年12月3日引言随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。

通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.1℃。

该器件可直接向单片机传输数字信号,便于单片机处理及控制。

另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。

芯片使用了ATMEL公司的AT89S52单片机和DALLAS公司的DS18B20数字温度传感器。

上位机部分使用了通用PC。

该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。

第一章1.1系统背景在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。

首先让我们了解一下多点温度检测系统在各个方面的应用领域:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械…等设备温度过热检测。

(完整版)基于51单片机与DS18B20的数字温度计设计定稿毕业论文

(完整版)基于51单片机与DS18B20的数字温度计设计定稿毕业论文

安徽农业大学课程设计报告基于单片机的DS18B20数字温度计设计学生姓名杜恒院系名称物理与电子工程学院专业名称电子信息工程班级2008 级 6 班学号指导教师汪文蝶完成时间2011年 5 月 20 日基于单片机的DS18B20数字温度计设计学生姓名:杜恒指导老师:汪文蝶内容摘要:随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。

本文介绍了一个基于STC89C52单片机和数字温度传感器DS18B20的测温系统,并用LED数码管显示温度值,易于读数。

系统电路简单、操作简便,能任意设定报警温度并可查询最近的10个温度值,系统具有可靠性高、成本低、功耗小等优点。

关键词:单片机数字温度传感器温度计1 引言 (4)2 设计要求 (4)2.1 基本要求 (4)2.2 扩展功能 (4)3 总体方案设计 (4)3.1 方案论证 (4)3.1.1 方案一 (4)3.1.2 方案二 (5)3.2 总体设计框图 (5)4 硬件设计 (5)4.1 单片机系统 (5)4.2 数字温度传感器模块 (6)4.2.1 DS18B20性能 (6)4.2.2 DS18B20外形及引脚说明 (7)4.2.3 DS18B20接线原理图 (7)4.2.4 DS18B20时序图 (7)4.2.5 数据处理 (9)4.3 显示电路 (10)4.4 声光报警电路 (10)4.5 键盘输入电路 (11)5 软件设计 (11)5.1 主程序模块 (11)5.2 读温度值模块 (12)5.3 中断模块 (14)5.4 温度查询模块 (15)5.5 温度设定、报警模块 (16)5.6 数码管驱动模块 (18)6 源程序 (19)7 总结 (26)参考文献: (28)1 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。

基于51单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明
1.硬件设计:
-51单片机:选择合适的型号,如STC89C52或AT89C52等。

-DS18B20温度传感器:该传感器是一种数字温度传感器,具有单总线接口和高精度测量能力。

-接口电路:将51单片机和DS18B20传感器连接起来,要注意电平转换和信号线的阻抗匹配。

2.软件设计:
-初始化:在主函数中,首先对单片机进行初始化设置,包括时钟设置、串口配置等。

-DS18B20通信协议:使用单总线协议与DS18B20传感器进行通信,包括发送复位信号、读写数据等操作。

-温度测量:通过向DS18B20发送读取温度的命令,从传感器中读取温度值并保存。

-数据传输:将温度值转换为可显示的格式,如摄氏度或华氏度,并通过串口输出或LED显示。

3.程序流程:
-初始化单片机,设置时钟和串口参数。

-进入主循环,循环执行以下操作:
-发送复位信号,启动温度转换。

-等待转换完成,发送读取温度命令。

-读取温度值,并进行数据处理转换。

-输出温度值。

4.其他功能:
-可以添加LCD显示模块,将温度值显示在液晶屏上。

-可以添加按键输入模块,通过按键切换温度单位或进行其他操作。

需要注意的是,该设计只是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和修改。

同时,在程序设计过程中,也要注意低功耗和数据稳定性等方面的考虑。

基于单片机和DS18B20的数字温度计

基于单片机和DS18B20的数字温度计

温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学试验中,有特别重要的意义。

随着人们生活水平的不断提高,,人们对温度计的要求越来越高,传统的温度计功能单一、精度低,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。

数字温度计(Digital Thermometer)简称D温度是许多监控系统中的一个重要参数。

TM,它是采用数字化测量技术,把连续的温度值转换成不连续、离散的数字形式并加以显示的仪表。

采用单片机控制的数字温度计,由于精度高、可扩展性强、集成方便、抗干扰能力强,得到了广泛的应用。

本设计以单片机和温度传感器为核心,设计数字温度计。

实现对温度的采集、监视和报警。

在温度采集的实现中,使用了AT89C51单片机和温度传感器DS18B20,温度监视部分利用动态驱动技术,以单片机驱动4位LED数码管。

温度测量范围-55℃~+125℃,通过按键设置上下限报警温度,并用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到设计要求。

正文还介绍了AT89C51和集成温度传感器DS18B20。

1 设计的意义及主要功能 (3)1.1 意义 (3)1.2 主要功能 (3)2 总体方案设计 (4)2.1 方案比较 (4)2.2 方案论证 (5)2.3 方案选择 (5)3 硬件电路设计 (6)3.1 元器件的选择 (6)3.2 电路原理图 (6)3.3 特殊元器件的介绍 (6)3.3.1 AT89C51介绍 (6)3.3.2 DS18B20介绍 (9)4 总结 (13)5 参考文献 (13)附录 (14)1 设计的意义及主要功能1.1 意义随着人们生活水平的不断提高,数字化无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,一切向着数字化控制,智能化控制方向发展。

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

基于AT89C51单片机和DS18B20的数字温度计

基于AT89C51单片机和DS18B20的数字温度计

基于AT89C51单片机和DS18B20的数字温度计1课题说明随着现代信息技术的飞速发展和传统工业改造的逐步实现;能够独立工作的温度检测和显示系统应用于诸多领域..传统的温度检测以热敏电阻为温度敏感元件..热敏电阻的成本低;但需后续信号处理电路;而且可靠性相对较差;测温准确度低;检测系统也有一定的误差..这里设计的数字温度计具有读数方便;测温范围广;测温精确;数字显示;适用范围宽等特点..本设计选用AT89C51型单片机作为主控制器件;DS18B20作为测温传感器;通过LCD1602实现温度显示..通过DS18B20直接读取被测温度值;进行数据转换;该器件的物理化学性能稳定;线性度较好;在0℃~100℃最大线性偏差小于0.01℃..该器件可直接向单片机传输数字信号;便于单片机处理及控制..另外;该温度计还能直接采用测温器件测量温度;从而简化数据传输与处理过程..2 实现方法采用数字温度芯片DS18B20 测量温度;输出信号全数字化..采用了单总线的数据传输;由数字温度计DS18B20和AT89C51单片机构成的温度测量装置;它直接输出温度的数字信号;也可直接与计算机连接..采用AT89C51单片机控制;软件编程的自由度大;可通过编程实现各种各样的算术算法和逻辑控制;而且体积小;硬件实现简单;安装方便..该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示;能够实现快速测量环境温度;并可以根据需要设定上下限温度..该系统扩展性非常强..该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单..系统框图如图1所示..图1 DS18B20温度测温系统框图3 硬件设计3.1 单片机最小系统设计3.1.1 电源电路图2 电源电路3.1.2 振荡电路与复位电路图3 振荡电路图4 复位电路3.2 DS18B20与单片机的接口电路图5 DS18B20与单片机的接口电路3.3 PROTEUS仿真电路图图6 PROTEUS仿真电路图4 软件设计系统程序主要包括主程序、读取温度子程序、数据转换子程序、显示数据子程序等..4.1 程序流程4.1.1 主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值;温度测量每1s进行一次..这样可以在一秒之内测量一次被测温度;其程序流程见图7所示..图7 主程序流程图4.1.2 各子程序流程图1、初始化程序所有操作都必须由初始化脉冲开始;波形如图;单片机先输出一个480~960us低电平到DQ引脚;再将DQ引脚置高电平;过15~60us后检测DQ引脚状态;若为低电平则DS18B20工作正常;否则初始化失败;不能正常测量温度..2、读取温度子程序读取温度子程序的主要功能是读出RAM中的9字节;在读出时需进行CRC校验;校验有错时不进行温度数据的改写..主要包括以下三个命令:1写暂存器命令 4EH这个命令为由TH寄存器开始向DS18B20暂存器写入数据;4EH命令后的3字节数据将被保存到暂存器的地址2、3、4TH、TL、CONFIG三个字节..所有数据必须在复位脉冲前写完..即如果只想写一个字节的数据到地址2;可按如下流程:1、初始化;2、写0CCH;跳过ROM检测;3、写4EH;4、写1字节数据;5、复位;即向DQ输出480~960us低电平2读暂存命令BEH这个命令由字节0读取9个暂存器内容;如果不需要读取所有暂存内容;可随时输出复位脉冲终止读取过程3转换温度命令44H这个命令启动温度转换过程..转换温度时DS18B20保持空闲状态;此时如果单片机发出读命令; DS18B20将输出0直到转换完成;转换完成后将输出1..图8 读取温度子程序3、写流程图写时隙:写时隙由DQ引脚的下降沿引起..18B20有写1和写0两种写时隙..所有写时隙必须持续至少60μs;两个时隙之间至少有1μs的恢复时间..DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚;若此时DQ为高电平;则写入一位1;若此时DQ为低电平;则写入一位0;如图9所示..所以;若想写入1;则单片机应先将DQ置低电平;15us后再将DQ置高电平;持续45μs;若要写入0;则将DQ置低电平;持续60μs..图9 写流程图4、读流程图读时隙:读时隙由DQ下降沿引起;持续至少1μs的低电平后释放总线DQ置1DS18B20的输出数据将在下降沿15μs后输出;此时单片机可读取1位数据..读时隙结束时要将DQ置1..所有读时隙必须持续至少60μs;两个时隙之间至少有1μs的恢复时间..图10 读流程图4.4 汇编语言程序源代码DATA_BUS BIT P3.3FLAG BIT 00HTEMP_L EQU 30HTEMP_H EQU 31HTEMP_DP EQU 32HTEMP_INT EQU 33HTEMP_BAI EQU 34HTEMP_SHI EQU 35HTEMP_GE EQU 36HDIS_BAI EQU 37HDIS_SHI EQU 38HDIS_GE EQU 39HDIS_DP EQU 3AHDIS_ADD EQU 3BHORG 0000HAJMP STARTORG 0050HSTART:MOV SP; #40H MAIN: LCALL READ_TEMP LCALL PROCESSAJMP MAIN;读温度程序READ_TEMP:LCALL RESET_PULSEMOV A; #0CCHLCALL WRITEMOV A; #44HLCALL WRITELCALL DISPLAYLCALL RESET_PULSEMOV A; #0CCHLCALL WRITEMOV A; #0BEHLCALL WRITELCALL READRET;复位脉冲程序RESET_PULSE:RESET: SETB DATA_BUSNOPNOPCLR DATA_BUSMOV R7; #255DJNZ R7; $SETB DATA_BUSMOV R7; #30DJNZ R7;$JNB DATA_BUS; SETB_FLAG CLR FLAGAJMP NEXTSETB_FLAG:SETB FLAGNEXT: MOV R7; #120DJNZ R7; $SETB DATA_BUSJNB FLAG; RESETRET;写命令WRITE: S ETB DATA_BUSMOV R6; #8CLR CWRITING:CLR DATA_BUSMOV R7; #5DJNZ R7; $RRC AMOV DATA_BUS; CMOV R7; #30HDJNZ R7; $SETB DATA_BUSNOPDJNZ R6; WRITINGRET;循环显示段位DISPLAY:MOV R4; #200DIS_LOOP:MOV A; DIS_DPMOV P2; #0FFHMOV P0; ACLR P2.7LCALL DELAY2MSMOV A; DIS_GEMOV P2; #0FFHMOV P0; ASETB P0.7CLR P2.6LCALL DELAY2MSMOV A; DIS_SHIMOV P2; #0FFHMOV P0; ACLR P2.5LCALL DELAY2MSMOV A; DIS_BAIMOV P2; #0FFHMOV P0; AMOV A; TEMP_BAICJNE A; #0;SKIPAJMP NEXTT SKIP: CLR P2.4LCALL DELAY2MS NEXTT: NOPDJNZ R4; DIS_LOOPRET;读命令READ: SETB DATA_BUS MOV R0; #TEMP_LMOV R6; #8MOV R5; #2CLR C READING:CLR DATA_BUSNOPNOPSETB DATA_BUSNOPNOPNOPNOPMOV C; DATA_BUSRRC AMOV R7; #30HDJNZ R7; $SETB DATA_BUSDJNZ R6; READINGMOV @R0; AINC R0MOV R6; #8SETB DATA_BUSDJNZ R5; READINGRET;数据处理PROCESS:MOV R7; TEMP_LMOV A; #0FHANL A; R7MOV TEMP_DP;AMOV R7; TEMP_LMOV A; #0F0HANL A; R7SWAP AMOV TEMP_L; AMOV R7; TEMP_HMOV A; #0FHANL A; R7SWAP AORL A; TEMP_LMOV B; #64HDIV ABMOV TEMP_BAI;AMOV A; #0AHXCH A; BDIV ABMOV TEMP_SHI;AMOV TEMP_GE;BMOV A; TEMP_DPMOV DPTR; #TABLE_DPMOVC A; @A+DPTRMOV DPTR; #TABLE_INTER MOVC A; @A+DPTR MOV DIS_DP; AMOV A; TEMP_GEMOV DPTR; #TABLE_INTER MOVC A; @A+DPTRMOV DIS_GE; AMOV A; TEMP_SHIMOV DPTR; #TABLE_INTER MOVC A; @A+DPTRMOV DIS_SHI; AMOV A; TEMP_BAIMOV DPTR; #TABLE_INTER MOVC A; @A+DPTRMOV DIS_BAI ;ARETDELAY2MS:MOV R6; #3LOOP3: MOV R5; #250DJNZ R5; $DJNZ R6; LOOP3RETTABLE_DP:DB00H;01H;01H;02H;03H;03H;04H;04H;0 5H;06HDB 06H;07H;08H;08H;09H;09H TABLE_INTER:DB 03FH;006H;05BH;04FH;066HDB 06DH;07DH;07H;07FH;06FHEND5 DS18B20简单介绍DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”;其体积更小、更适用于多种场合、且适用电压更宽、更经济..DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器..温度测量范围为-55~+125 摄氏度;可编程为9位~12 位转换精度;测温分辨率可达0.0625摄氏度;分辨率设定参数以及用户设定的报警温度存储在EEPROM 中;掉电后依然保存..被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入;也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上;CPU只需一根端口线就能与诸多DS18B20 通信;占用微处理器的端口较少;可节省大量的引线和逻辑电路..因此用它来组成一个测温系统;具有线路简单;在一根通信线;可以挂很多这样的数字温度计;十分方便..5.1 DS18B20 的性能特点如下:●独特的单线接口方式;DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯●DS18B20支持多点组网功能;多个DS18B20可以并联在唯一的三线上;实现组网多点测温●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内把温度值转换为数字;速度更快●用户可定义报警设置●报警搜索命令识别并标志超过程序限定温度温度报警条件的器件●测量结果直接输出数字温度信号;以"一线总线"串行传送给CPU;同时可传送CRC校验码;具有极强的抗干扰纠错能力●负电压特性;电源极性接反时;温度计不会因发热而烧毁;但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统..DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器..DS18B20的管脚排列、各种封装形式如图12所示;DQ 为数据输入/输出引脚..开漏单总线接口引脚..当被用着在寄生电源下;也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚..当工作于寄生电源时;此引脚必须接地..图12 外部封装形式5.2 DS18B20使用中的注意事项DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点;但在实际应用中也应注意以下几方面的问题:●DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间;这是必须保证的;不然会出现转换错误的现象;使温度输出总是显示85..●在实际使用中发现;应使电源电压保持在5V 左右;若电源电压过低;会使所测得的温度精度降低..●较小的硬件开销需要相对复杂的软件进行补偿;由于DS1820与微处理器间采用串行数据传送;因此;在对DS1820进行读写编程时;必须严格的保证读写时序;否则将无法读取测温结果..在使用PL/M、C等高级语言进行系统程序设计时;对DS1820操作部分最好采用汇编语言实现..●在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题;容易使人误认为可以挂任意多个DS18B20;在实际应用中并非如此;当单总线上所挂DS18B20 超过8 个时;就需要解决微处理器的总线驱动问题;这一点在进行多点测温系统设计时要加以注意..●在DS18B20测温程序设计中;向DS18B20 发出温度转换命令后;程序总要等待DS18B20的返回信号;一旦某个DS18B20 接触不好或断线;当程序读该DS18B20 时;将没有返回信号;程序进入死循环;这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视..5.3 DS18B20内部结构图13为DS1820的内部框图;它主要包括寄生电源、温度传感器、64位激光ROM 单线接口、存放中间数据的高速暂存器内含便笺式RAM;用于存储用户设定的温度上下限值的TH 和TL 触发器存储与控制逻辑、8位循环冗余校验码CRC 发生器等七部分..DS18B20采用3脚PR -35 封装或8脚SOIC 封装;其内部结构框图如图 6所示图 13DS18B20内部结构框图64 b 闪速ROM 的结构如下:MSBLSBMSBLSBMSBLSB开始8位是产品类型的编号;接着是每个器件的惟一的序号;共有48 位;最后8位是前面56 位的CRC 检验码;这也是多个DS18B20 可以采用一线进行通信的原因..温度报警触发器TH和TL;可通过软件写入户报警上下限..主机操作ROM 的命令有五种;如表所列DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM..高速暂存RAM 的结构为8字节的存储器;结构如图14所示..便笺式存储器上电状态指 令 说 明读ROM33H 读DS1820的序列号匹配ROM55H 继读完64位序列号的一个命令;用于跳过ROMCCH 此命令执行后的存储器操作将针对搜ROMF0H 识别总线上各器件的编码;为操作各报警搜索ECH仅温度越限的器件对此命令作出响Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8图 14 高速暂存RAM 结构图前2个字节包含测得的温度信息;第3和第4字节TH和TL的拷贝;是易失的;每次上电复位时被刷新..第5个字节;为配置寄存器;它的内容用于确定温度值的数字转换分辨率..DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值..温度低位 温度高位 THTL 配置 保留 保留 保留8位CRCLSB MSB当DS18B20接收到温度转换命令后;开始启动转换..转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1;2字节..单片机可通过单线接口读到该数据;读取时低位在前;高位在后;数据格式以0.062 5 ℃/LSB 形式表示..温度值格式如下:23 2221 20 2-1 2-2 2-3 2-4 MSBLSB MSBLSB这是12位转化后得到的12位数据;存储在18B20的两个8比特的RAM 中;二进制中的前面5位是符号位;如果测得的温度大于0;这5位为0;只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0;这5位为1;测到的数值需要取反加1再乘于0.0625即可得到实际温度..图中;S 表示位..对应的温度计算:当符号位S=0时;表示测得的温度植为正值;直接将二进制位转换为十进制;当S=1时;表示测得的温度植为负值;先将补码变换为原码;再计算十进制值..例如+125℃的数字输出为07D0H;+25.0625℃的数字输出为0191H;-25.0625℃的数字输出为FF6FH;-55℃的数字输出为FC90H..DS18B20温度传感器主要用于对温度进行测量;数据可用16位符号扩展的二进制补码读数形式提供;并以0.0625℃/LSB 形式表示..表2是部分温度值对应的二进制温度表示数据..表2 部分温度值温度测量值MSB50H TH 高温寄存器 TL 低温寄存器 配位寄存器 预留FFH 预留OCH 预留IOH 循环冗余码校验CRCTH 高温寄存器 TL 低温寄存器 配位寄存器SSSSS262524温度/℃ 二进制表示 十六进制表示 +125 07D0H +25.06250191H85℃E 2PRO就把测得的温度值与RAM中的TH、TL字节内容作比较;若T>TH或T<TL;则将该器件内的告警标志置位;并对主机发出的告警搜索命令作出响应..因此;可用多只DS18B20同时测量温度并进行告警搜索..在64位ROM的最高有效字节中存储有循环冗余校验码CRC..主机根据ROM的前 56位来计算CRC值;并和存入DS18B20中的CRC值做比较;以判断主机收到的ROM数据是否正确..5.4DS18B20测温原理DS18B20的测温原理如图15所示;图中低温度系数晶振的振荡频率受温度的影响很小;用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其震荡频率明显改变;所产生的信号作为减法计数器2的脉冲输入;图中还隐含着计数门;当计数门打开时;DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数;进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定;每次测量前;首先将-55 ℃所对应的基数分别图15 DS18B20测温原理图在正常测温情况下;DS1820的测温分辨力为0.5℃;可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令BEH读出以0.5℃为分辨率的温度测量结果;然后切去测量结果中的最低有效位LSB;得到所测实际温度的整数部分Tz;然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD..考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系;实际温度Ts可用下式计算:Ts=Tz-0.25℃+CD-Cs/CD6 总结与体会在本次设计的过程中;我发现很多的问题;虽然以前还做过这样的设计但这次设计真的让我长进了很多;单片机课程设计重点就在于软件算法的设计;需要有很巧妙的程序算法;虽然以前写过几次程序;但我觉的写好一个程序并不是一件简单的事;举个例子;以前写的那几次;数据加减时;我用的都是BCD码;这一次;我全部用的都是16进制的数直接加减;显示处理时在用除法去删分;感觉效果比较好;有好多的东西;只有我们去试着做了;才能真正的掌握;只学习理论有些东西是很难理解的;更谈不上掌握..从这次的设计中;我真真正正的意识到;在以后的学习中;要理论联系实际;把我们所学的理论知识用到实际当中;学习单机片机更是如此;程序只有在经常的写与读的过程中才能提高;这就是我在这次课程设计中的最大收获..。

基于51单片机的DS18B20温度传感器的应用毕业设计(论文) 精品

基于51单片机的DS18B20温度传感器的应用毕业设计(论文) 精品

毕业设计(论文)题目:基于51单片机的DS18B20温度传感器的应用题目类型:工程设计软件开发桂林电子科技大学毕业设计(论文)报告用纸 1摘要温度的测量和控制对人类日常生活、工业生产、气象预报、物资仓储等都起着极其重要的作用。

在许多场合,及时准确获得目标的温度是十分重要的,近年来,温度测控领域发展迅速,并且随着数字技术的发展,温度的测控芯片也相应的登上历史的舞台,能够在工业、农业等各领域中广泛使用。

温控系统通过传感器检测温度将温度数据输入到处理器处理,可以在数码管或LCD等显示出来。

然后由控制器可以控制加热或者制冷,从而达到控温的目的。

本毕业设计就是利用STC89C52单片机和DS18B20温度传感器对目标温度进行检测,使用了单位数码管对检测到温度的显示,通过串口和上位机进行通信,利用VB软件显示温度数据,从而对各空间温度进行远程实时监控,使用LED灯闪烁进行模拟加热和制冷。

本文对各部分的硬件原理图进行了分析,还对各功能程序进行概述。

通过51单片机控制DS18B20检测温度,具有硬件电路简单,编程容易,测温准确,稳定等优点。

而且可以多点检测(本毕设只是单点测温),几个传感器连接也很简单。

关键词:单片机;温控;传感器AbstractTemperature measurement and control of human daily life, industrial production, weather forecast, material storage and so on all play a very important role. On many occasions, timely and accurate to obtain the temperature of the target is very important, in recent years, the temperature measurement and control field is developing rapidly, and with the development of digital technology, the corresponding temperature measurement and control chip mounted on the stage of history, can be widely used in industry, agriculture and so on various areas. Temperature control system through the temperature sensor to detect temperature data input to processing, can be in the digital tube or LED display, etc. And then by the controller to control the heating or cooling, so as to achieve the purpose of temperature control.This graduation design is the use of STC89C52 MCU and DS18B20 temperature sensor to test the room temperature, for testing temperature using digital tube display, through a serial port and PC communication, using VB software display temperature data, thus to remote real-time monitoring of the room temperature, use LED lights to simulate the heating and cooling. By 51 single chip microcomputer control temperature DS18B20 detection, it has a simple hardware circuit, programming easily, temperature measurement accuracy, stability, etc. And can be more testing (this project is only a single point temperature measurement), several sensor connection is also very simple.Keywords: MCU;temperature control;sensor目录引言 (1)1 绪论 (2)1.1 单片微机的发展 (2)1.2 温度检测的意义及发展形势 (2)1.3温控系统设计的核心 (2)2 单片机的简述 (3)2.1单片机的特点及引脚介绍 (3)2.2单片机的电平特性 (5)2.3C51复位电路 (6)2.4时钟电路 (6)3 温控系统的硬件设计 (7)3.1 温度检测模块 (7)3.1.1 温度传感器的概述 (7)3.1.2DS18B20的工作原理及工作时序图 (9)3.2 显示模块 (12)3.3 温超报警模块 (14)3.4 串口通信模块 (15)4 软件设计 (17)4.1 系统整体设计 (17)4.2 温度获取并转换 (19)4.3 温度控制 (20)5 单片机与上位机通信 (21)总结 (23)谢辞 (24)参考文献 (25)附录1电路原理图 (26)附录2 完整C程序代码 (28)附录3 模块调试代码 (34)桂林电子科技大学毕业设计(论文)报告用纸第1页共34 页引言上世纪90年代以来,单片机就进入了一个高速发展的阶段,大部分半导体厂商都注重新型单片机的研制、生产和推广。

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

基于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单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明题目:基于89C51和DS18B20的数字温度计设计一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在0.1°C以内,LED数码管直读显示。

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

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

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。

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

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

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

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

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

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

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

2、显示电路显示电路采用4位共阳LED数码管,从P0口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用8550三极管。

3、温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

基于51单片机的DS18B20数字温度计的设计_课程设计

基于51单片机的DS18B20数字温度计的设计_课程设计

单片机课程设计基于51单片机的DS18B20数字温度计的设计目录1 前言 (1)2 设计任务及要求 (2)2.1 设计任务 (2)2.2 设计要求 (2)3 课程设计方案及器材选用分析 (3)3.1 设计总体方案 (3)3.1.1 方案论证 (3)3.1.2 方案二的总体设计框图 (4)3.2器材选用分析 (4)3.2.1 DS18B20温度传感器 (4)3.2.2 AT89S52单片机介绍 (12)3.3 软件流程图 (15)3.3.1 主程序 (15)3.3.2 读温度子程序 (15)3.3.3 温度转换命令子程序 (16)3.3.4 计算温度子程序 (16)4 硬件电路的设计 (1)4.1 Protel99 SE软件介绍 (1)4.1.1 Protel99 SE软件 (1)4.1.2 主控制电路图 (2)4.2 Proteus 进行仿真 (4)4.2.1 Proteus[6]简介 (4)4.2.2 proteus仿真图 (5)5 调试性能及分析 (6)课程设计心得 (9)参考文献 (10)附录:DS18B20显示程序 (10)1 前言目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。

单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。

单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。

本次课程设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。

基于51单片机及DS18B20温度传感器的数字温度计设计

基于51单片机及DS18B20温度传感器的数字温度计设计

基于51单片机及DS18B20温度传感器的数字温度计设计摘要本设计采用的主控芯片是ATMEL公司的AT89S52单片机,数字温度传感器是DALLAS 公司的DS18B20。

本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。

所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。

单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。

51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。

本次设计采用的AT89S52是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。

本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。

本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。

温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。

本设计的显示模块是用四位一体的数码管动态扫描显示实现的。

在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。

关键词:单片机、数字温度计、DS18B20、AT89S52目录1 概述 ................................................................................................................................................................. - 1 -1.1系统概述 ................................................................................................................................................. - 1 -2 系统总体方案及硬件设计 ............................................................................................................................... - 2 -2.1 系统总体方案 ........................................................................................................................................ - 2 -2.1.1系统总体设计框图 ...................................................................................................................... - 2 -2.1.2各模块简介 .................................................................................................................................. - 2 -2.2 系统硬件设计 ........................................................................................................................................ - 5 -2.2.1 单片机电路设计 ......................................................................................................................... - 5 -2.2.2 DS18B20温度传感器电路设计.................................................................................................. - 6 -2.2.3 显示电路设计 ............................................................................................................................. - 6 -2.2.4 按键电路设计 ............................................................................................................................. - 7 -2.2.5 报警电路设计 ............................................................................................................................. - 8 -3 软件设计 ........................................................................................................................................................... - 9 -3.1 DS18B20程序设计................................................................................................................................. - 9 -3.1.1 DS18B20传感器操作流程.......................................................................................................... - 9 -3.1.2 DS18B20传感器的指令表.......................................................................................................... - 9 -3.1.3 DS18B20传感器的初始化时序................................................................................................ - 10 -3.1.4 DS18B20传感器的读写时序.................................................................................................... - 10 -3.1.5 DS18B20获取温度程序流程图................................................................................................ - 11 -3.2 显示程序设计 ...................................................................................................................................... - 13 -3.3 按键程序设计 ...................................................................................................................................... - 13 -4实物制作及调试 .............................................................................................................................................. - 14 -5电子综合设计体会 .......................................................................................................................................... - 15 -参考文献 ............................................................................................................................................................. - 16 -附1 源程序代码 .............................................................................................................................................. - 17 -附2 系统原理图 .............................................................................................................................................. - 32 -1 概述1.1系统概述本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图11 键盘输入电路
5
5.1
主程序需要调用3个子程序,分别为:
实时温度显示子程序:驱动数码管把实时温度值送出在LED数码管显示
查询记录温度值子程序:查询过去存储的温度值,最多可查询10个值
温度设定、报警子程序:设定报警温度值,当温度超过该值时产生报警,即驱动蜂鸣器鸣叫、8个发光二极管发光
主程序流程图:
2ห้องสมุดไป่ตู้
2.1
实现实时温度显示,测温范围0~500C,误差50C以内。
2.2
温度报警,能任意设定温度范围实现声光报警;
每隔10分钟记录一次温度数据,至少能查询过去10个时刻的温度情况。
3
3.1
3.1.1
由于本设计是测温电路,可以使用热敏电阻之类的器件,将随被测温度变化的电压或电流采样,进行A/D转换后就可以用单片机进行数据处理,实现温度显示。这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。
以上两种方案相比较,第二种方案的电路、软件设计更简单,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。
3.2
本方案设计的系统由单片机系统、数字温度传感器、LED显示模块、按键控制模块、温度报警模块组成,其总体架构如下图1。
图1 系统总体方框图
4
4.1
1.本设计采用STC89C52单片机作为控制器,完成所有功能的控制,包括:
段码和位码由单片机P0送出,分别用74HC673N锁存。
图9 数码管驱动显示电路
4.4
当温度超过设定温度值时,实现声光报警,蜂鸣器鸣叫、8个发光二极管点亮。蜂鸣器由单片机P2^3口控制,用三极管驱动,发光二极管接单片机P1口,由74HC673N锁存。
图10 声光报警电路
4.5
四个键分别连接单片机P3^4、P3^5、P3^6、P3^7构成独立式键盘,分别实现加、减、报警温度设定功能键和温度查询功能键。
图12 主程序流程图
5.2
读温度值模块需要调用4个子程序,分别为:
DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作
DS18B20写字节子程序:对DS18B20发出命令
DS18B20读字节子程序:读取DS18B20存储器的数据
4.2.2 DS18B20
图3 DS18B20外形及引脚
GND:地
DQ:单线运用的数据输入/输出引脚
VD:可选的电源引脚
4.2.3 DS18B20
单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。
图4 DS18B20接线原理图
4.2.4 DS18B20
主机使用时间隙来读写DS18B20的数据位和写命令字的位。
3.1.2
考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,起体积小、构成的系统结构简单,它可直接将温度转化成串行数字信号给单片机处理,即可实现温度显示。另外DS18B20具有3引脚的小体积封装,测温范围为-55~+125摄氏度,测温分辨率可达0.0625摄氏度,其测量范围与精度都能符合设计要求。
关键词:单片机 数字温度传感器 温度计
1
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。其中数字温度计就是一个典型的例子。
数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。
图7 字节分配
下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,
基于单片机的DS18B20数字温度计设计
内容摘要:
随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。本文介绍了一个基于STC89C52单片机和数字温度传感器DS18B20的测温系统,并用LED数码管显示温度值,易于读数。系统电路简单、操作简便,能任意设定报警温度并可查询最近的10个温度值,系统具有可靠性高、成本低、功耗小等优点。
实际温度=07D0H*0.0625=2000*0.0625=125℃。
例如-55℃的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作运算),
实际温度=370H*0.0625=880*0.0625=55℃。
可见其中低四位为小数位。
图8 DS18B20温度数据表
4.3
LED数码管显示采用动态扫描方式,能简化电路布线,节约单片机I/O端口。
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃
温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字
应用包括温度控制、工业系统、消费品、温度计和任何热感测系统
负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作
DS18B20数字温度传感器的初始化和读取温度值
LED数码管显示驱动与控制
按键识别和响应控制
温度设置和报警
温度值的存储和读取
2.单片机系统电路原理图:
图2 单片机系统原理图
4.2
4.2.1 DS18B20
独特的单线接口仅需一个端口引脚进行通信
简单的多点分布应用
无需外部器件
可通过数据线供电
零待机功耗
测温范围-55~+125℃,以0.5℃递增
1.初始化时序如下图:
图5 DS18B20初始化时序
2.DS18B20读写时序:
图6 DS18B20读写时序
4.2.5
高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
相关文档
最新文档