基于DS18B20的智能温度检测系统

基于DS18B20的智能温度检测系统
基于DS18B20的智能温度检测系统

基于DS18B20的智能温度检测系统

电子系统综合设计

题目基于DS18B20的智能温度检测系统学号

姓名

所属系机械工程学院

专业电子信息工程

班级10级电信本一班

指导教师

摘要

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。

在此次设计中,我们采用LED显示温度,实现并焊接制作一个具有多种I/O接口的综合性功能电路,温度的测量值要精确到小数点的后1位,并采用单片机编程的方式使其使用方便、精度高。另外还通过protues软件对设计的数字钟进行了有效的仿真,使得设计的电子产品更具有实用性,该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。

关键字:温度测量;LED;数字温度传感器;单片机

Abstract

As a kind of high-accuracy digital net temperature sensor,DS18 B20 can be used building a sensor net easily. It can also make the net simple and reliable with it's special 1-wire interfa ce .This paper introduces the application of DS18B20 with singl e chip processor.

The system is constituted by two parts the temperature measure d part and displayed part. The temperature measured part has a RS232 interface. It used AT89C51 of ATMEL company and DS18B20 of DALLAS company .The displayed part uses PC .Th is system is applied in such domains as warehouse detecting te mperature;air-conditioner controlling system in building and su pervisory productive process etc.

Key words:temperature measure;LED;digital thermometer;si ngle chip processor

目录摘要 (2)

Abstract (3)

1绪论 (5)

2整体方案设计 (5)

2.1 STC89C51单片机基础 (5)

2.2 DS18B20的基本性质 (6)

3智能温度检测系统的硬件设计 (8)

3.1 LED电路 (8)

3.2 STC89C51单片机电路 (9)

3.3 DS18B20电路 (12)

4智能温度检测系统的软件设计 (15)

4.1 系统软件设计流程图 (15)

4.2 智能温度检测系统的源程序代码 (17)

4.3 只能温度检测系统的原理图 (24)

5系统硬件仿真 (24)

5.1 硬件仿真的介绍 (24)

5.2仿真结果现象描述 (25)

6总结 (26)

参考文献 (27)

1 绪论

在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。消防电气的非破坏性温度检测,电力电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械…等设备温度过热检测。温度检测系统应用十分广阔。温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量少,方便测量。

DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

2整体方案设计

2.1 STC89C51单片机基础

(1)增强型1T 流水线/精简指令集结构8051 CPU

(2)工作电压:3.4V-5.5V (5V单片机)/ 2.0V-3.8V (3V 单片机

(3)工作频率范围:0 -35 MHz,相当于普通8051 的0~420MHz.实际工作频率可达48MHz.

(4)用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K字节

(5)片上集成512 字节RAM

(6)通用I/O 口(27/23个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/高阻,开漏

每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA

(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器

可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片

(8)EEPROM 功能

(9)看门狗

(10)内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路)

(11)时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟。常温下内部R/C 振荡器频率为:5.2MHz ~6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz ~8MHz

(12)有2个16 位定时器/ 计数器

(13)外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒

(14)PWM( 4 路)/ P C A(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/ 下降沿中断均可支持)

(15)STC89Cc516AD具有ADC功能。10 位精度ADC,共8 路

(16)通用异步串行口(UART)

(17)SPI同步通信口,主模式/ 从模式

(18)工作温度范围:0 -75℃/ -40 -+85℃

(19)封装:PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封状,定货)

2.2 DS18B20的基本性质

1、DS18B20性能特点

①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)

②测温范围为-55℃-+125℃,测量分辨率为0.0625℃

③内含64位经过激光修正的只读存储器ROM,

④适配各种单片机或系统机,

⑤用户可分别设定各路温度的上、下限,

⑥内含寄生电源。

2、DS18B20内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图1所示。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。不同的器件地

址序列号不同。

图 1 DS18B20引脚分布图8位产品系列号48位产品序号8位CRC编码DS18B20高速暂存器共9个存存单元0 温度低字节以16位补码形式存放4、5 保留字节1、2 1 温度高字节 6 计数器余值 2 TH/用户字节1 存放温度上限7 计数器/℃ 3 HL/用户字节2 存放温度下限8 CRC

以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。高8位S S S S S 26 25 24 低8位23 22 21 20 2-1 2-2 2-3 2-4

3、DS18B20控制方法

在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND 接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。DS18B20有六条控制命令,

44H 启动DS18B20进行温度转换

读暂存器BEH 读暂存器9个字节内容

写暂存器4EH 将数据写入暂存器的TH、TL字节

复制暂存器48H 把暂存器的TH、TL字节写到E2RAM中

重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器

读电源供电方式B4H 启动DS18B20发送电源供电方式的信号CPU

5、CPU对DS18B20的访问流程

先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

6、系统组成

由DS18B20构成的智能温度测量装置由三部分组成:DS18B20温度传感器、89C2051、显示模块。产品的主要技术指标:①测量范围:-55℃-+125℃,②测量精度:0.5℃,③反应时间≤500ms。

3 智能温度检测系统的硬件设计

3.1 LED电路

在电子技术中,由LED数码管显示0~9的数是常用的显示技术。数码管显示时,可用LCD(液晶),也可用LED数码管显示0~9的数。这里利用PIC16F84A单片机控制的数码管LED显示电路,如下图所示。下图是4位LED数码管显示电路,也可以扩展成更多的位或减少到一位数的显示。

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

① 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5

个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用

的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

② 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O

线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

3.2 STC89C51单片机电路

一、ISP与IAP编程方式

STC89C系列单片机芯片内置了ISP(在系统可编程)/IAP(在应用可编程)功能,无需专用编程器即可通过串口(P3.0/P3.1)用STC提供的STC-ISP.exe软件进行烧录。

新出厂的STC89C51系列单片机芯片,已经设置为单片机彻底放电后再复位,即会先进行ISP监控。当单片机检测到P3.0/RxD引脚有合法的下载命令流时,就会先将用户程序下载并烧录到用户程序区,再运行用户程序,否则软复位到用户程序区,运行用户程序。在进行ISP烧录时,可以选择下次冷启动时是依旧先进行ISP监控,还是需要P1.0和P1.1引脚同时为0才进行ISP监控,否则跳过ISP监控直接运行用户程序(见

图)。

二.6时钟,机器周期模式

标准的8051每个机器周期为12时钟。增强型的STC89C系列单片机在进行ISP 烧录程序时,可以设置为6时钟/机器周期(双倍速)或12时钟/机器周期工作模式.

6时钟/机器周期(双倍速)工作模式下,定时器的计数速度会加倍,相应的12时钟/机器周期模式下的串口波特率也会加倍,因此单片机使用的最高的波特率可以提高一倍。

三.降低簟片机对外部电磁辐射

通过设置6时钟/机器周期.(双倍速),可以将外接晶振频率降低一半,能有效降低对外部电磁辐射(EMI)。

更重要的是,STC89C系列单片机可以关闭ALE输出,最有效地降低EMI。

通过将ALEoff位(AUXR.0)置1,可以使ALE引脚仅在读取外接存储器时才有变化电平输出,从而降低对外部电磁辐射。

四、内部扩展RAM

STC89C系列单片机中的51/52/53(RC系列)在原有8052共256字节RAM的基础上,又扩展了256字节RAM,共有512字节RAM(000H~1FFH)。54/58/516(RD+系列)则扩展了1024字节RAM,共有1280字节RAM(000H~3FFH)。

通过设置EXTRAM位(见表1),在使用MOVX@DPTR,A/MOVXA,@DPTR 指令时,如访问在内部RAM范围内将会访问到内部RAM,超出此范围才会访问外部RAM。访问内部RAM时,不影响P0口/P2口/P3.6/P3.

五.双DPTR数据指针

标准的8051只有一个1 6位的DPTR数据指针,这样在进行数据块复制等动作时,必须对源地址指针和目标地址指针进行暂存,编程会非常麻烦。STC89C系列单片机内有两个DPTR数据指针DPTR0/DPTR1,可以通过设置DPS位(AUXR1.0)方便地选择,DPS置0则选中DPTRO,置1则选中DPTR1。通过执行INCAUXR1指令,能对DPS 快速切换,并不影响AUXR1的高位。此用法与PHILIPS单片机完全一致。

六.扩晨P4口

从引脚图上可以看出,PLCC-44、PQFP-44两种封装方式比PDIP-40多出的4个引脚在STC89C51RC/RD+系列单片机上被做成了P4口(SFR地址为0E8H),由P4.0~P4.3四条口线组成,使用方式上与原有I/0完全一致,可以位操作。

七、内置看门狗电路

RC/RD+型号的STC89C系列单片机均内置了看门狗电路。内置看门狗由看门狗定时器控制寄存器WDT_CONTR(见表2)控制。

EN_WDT位(WDT_CONTR.5)为看门狗允许位,置1时即启动看门狗。CLR_WDT 位(WDT_CONTR.4)为看门狗清零位,置1则看门狗将重新计数,此位由硬件自动清零。IDLE_WDT位(WDTl_CONTR.3)为看门狗空闲模式位,当置为1时,看门狗在“空闲模式”时继续计数,当清零时,看门狗在“空闲模式”时不计数。PS2~PS0位(WDT_CONTR.2~0)用于设定看门狗溢出时间,看门狗溢出时间=(N×Pre-scale×32768)/晶振频率。其中N为每个机器周期的时钟数,标准模式为12,双倍速时为6。Pre-scale为PS2~PS0位所设定的预分频值。

八.软复位功能

STC89C系列单片机新增加的ISP_CONTR特殊功能寄存器(SFR地址为0E7H),实现了单片机系统软复位(热启动之一)功能。用户只需简单地控制ISP_CONTR特殊功能寄存器的其中商位SWBS/SWRST就可以系统复位了。SWBS位(ISP_CONTR.6)选择从用户应用程序区启动(0),还是从ISP程序区启动(1)。要与SWRST位配合才可以实现,SWRST位(ISP_CONTR.5)置0则无操作,置1则实现系统复位,硬件自动清零。软复位与硬件复位一样,所有的特殊功能寄存器都会复位到初始值,I/O口也会初始化。

九.带A/D功能的89LE系列

STC89LE51/52/54/58/516AD型号均内带一个8位精度的高速A/D转换器,扩展RAM均为256字节(共512字节,仅能用MOVX A,@Ri/MOVX A,@Ri指令访问),不能设置6时钟/机器周期(双倍速)模式,其余均与前几部分相同。另有一款STC89LE516X2,比STC89LE516AD增加6时钟/机器周期(双倍速)模式。A/D转换器为电压输入型,可做按键扫描、电池电压检测、频谱检测等。

STC89LE516AD/X2系列允许将P1.0~P1.7作为A/D口使用,P1_ADC_EN特殊功能寄存器(SFR地址为097H)作为A/D转换输入通道允许控制,相应位为“1”时,对应的P1.x口被允许作为A/D转换使用,内部上拉电阻自动断开。

3.3 DS18B20电路

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号

送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图3:DS18B20测温原理框图

DS18B20有4个主要的数据部件:

(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标

号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环

冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20

都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

(2)(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即可得到实际温度。

(3)DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

(4)配置寄存器

低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)

四、高速暂存存储器

高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表?2是对应的一部分温度值。第九个字节是冗余检验字节。

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM 指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU 将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

五、DS18B20的应用电路

DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。下面就是DS18B20几个不同应用方式下的测温电路图:

[1]、DS18B20寄生电源供电方式

在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

[2]、DS18B20的外部电源供电方式

在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。

外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,

依然能够保证温度量精度。

4 智能温度检测系统的软件设计

系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:

1、根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;

2、培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;

3、建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;

4、绘制程序流程图;

5、合理分配系统资源;

6、为程序加入注释,提高可读性,实施软件工程;

7、注意软件的抗干扰设计,提高系统的可靠性。

4.1 系统软件设计流程图

开始

系统初始化

测温度并显示

4.2 智能温度检测系统的源程序代码

#include

sbit DQ = P3 ^ 7; //定义端口DQ

// sbit led1 =P2^0;

// sbit led2 =P2^1;

// sbit led3 =P2^2;

// sbit led4 =P2^3;

sbit k1=P2^5;//+

sbit k2=P2^6;//-

sbit k3=P2^7; //回到正常显示

sbit k4=P2^4; //切换

sbit SPK = P3^6;

unsigned char tx[3]={0,0,0};

unsigned code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

0xf8,0x80,0x90,0xbf};

unsigned char flag,flag1,b0,frq, temp; //flag用于正常显示时正负的判断flag1

用于设置模式时判断是否显示负号unsigned char x0= 40, c0=0; //x0温度上限,c0温度下限

void key(void);

void Delay(int num);

void Delaynms(unsigned int di) ;

void Init_DS18B20(void);

unsigned char ReadOneChar(void);

void WriteOneChar(unsigned char dat);

void ReadTemperature(void);

void Display_SMG(void);

/*******************************************************/

void Delay(int num)//延时函数

{

while(num--) ;

}

/*********************************************************/

void Delaynms(unsigned int di) //延时

{

unsigned int da,db;

for(da=0;da

for(db=0;db<100;db++);

}

/**********************************************/

void Init_DS18B20(void)//初始化ds1820

{

unsigned char x=0;

DQ = 1; //DQ复位

Delay(8); //稍做延时

DQ = 0; //单片机将DQ拉低

Delay(80); //精确延时大于480us

DQ = 1; //拉高总线

Delay(14);

x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败Delay(20);

}

/****************************************************/

unsigned char ReadOneChar(void)//读一个字节

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{

DQ = 0; // 给脉冲信号

dat>>=1;

DQ = 1; // 给脉冲信号

if(DQ)

dat|=0x80;

Delay(4);

}

return(dat);

}

/******************************************************/

void WriteOneChar(unsigned char dat)//写一个字节

{

unsigned char i=0;

for (i=8; i>0; i--)

{

DQ = 0;

DQ = dat&0x01;

Delay(2);

DQ = 1;

dat>>=1;

}

}

/*****************************************************/

void ReadTemperature(void)//读取温度

{

unsigned char a=0,a0;

unsigned char b=0;

unsigned char Data_L=0;

unsigned char num=0;

Init_DS18B20();

WriteOneChar(0xCC); // 跳过读序号列号的操作

WriteOneChar(0x44); // 启动温度转换

Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器

// Delay(5000);

a=ReadOneChar(); //读低8位

b=ReadOneChar(); //读高8位

tx[0] = (a/16+b*16)/10; //整数部分

tx[1] = (a/16+b*16)%10;

temp = a/16+b*16 ;

a0 = a & 80; //判断正负用于是否显示“-“号

if(a0 == 1) {

flag = 1 ;

}

else {

flag = 0 ;

}

Data_L=a&0X0F;

DS18B20温度检测程序

(1)先将数据线置高电平“1”。 (2)延时(该时间要求的不是很严格,但是尽可能的短一点) (3)数据线拉到低电平“0”。 (4)延时750微秒(该时间的时间范围可以从480到960微秒)。 (5)数据线拉到高电平“1”。 (6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8)将数据线再次拉高到高电平“1”后结束。

(1)数据线先置低电平“0”。 (2)延时确定的时间为15微秒。 (3)按从低位到高位的顺序发送字节(一次只发送一位)。 (4)延时时间为45微秒。 (5)将数据线拉到高电平。 (6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7)最后将数据线拉高。 DS18B20的写操作时序图如图

DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。DS18B20的读操作时序图如图所示。

DS18B20的Protues仿真图 源程序代码: #include "reg51.h" #include "intrins.h" // 此头文件中有空操作语句NOP 几个微秒的延时可以用NOP 语句,但本人没用NOP,直接用了I++来延时 #define uchar unsigned char #define uint unsigned int uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39}; sbit ds18b20_io=P2^0; //单片机与DS18B20的连接口 sbit lcdrs=P2^6; //1602与单片机的接口 sbit lcden=P2^7;

DS18B20温度检测

目录 1引言 (1) 2系统描述 (2) 2.1系统功能 (2) 2.2系统设计指标 (2) 3系统的主要元件 (3) 3.1单片机 (3) 3.2温度传感元件 (4) 3.3LCD显示屏 (6) 4硬件电路 (7) 4.1系统整体原理图 (7) 4.2单片机晶振电路 (7) 4.3温度传感器连接电路 (8) 4.4LCD电路 (9) 4.5报警和外部中断电路 (10) 5结论 (11)

温度监测系统硬件设计 摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可 以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。同时提高了系统能够的抗干扰性,使系统更灵活、方 便。本系统主要实现温度的检测、显示以及高低温的报警。也可以通过单总线挂载 多个DS18B20实现多点温度的分布式监测。 关键词: DS18B20,单总线,温度,单片机 1引言 在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。而单片机的发展和应用是其中的重要一方面。单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。其中,单片机在工业生产中的应用尤其广泛。 单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。 近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。这类温度传感器集温度测量和A\D转换于一生,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机

ds18b20温度采集

“盛群杯”单片机大赛设计报告 温度读取部分: 采用数字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。如图1.2.2 所示。 DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果 2.2.1 温度采集部分设计 本系统采用半导体温度传感器作为敏感元件。传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。DS18B20应用广泛,性能可以满足题目的设计要求。DS18B20的测温电路如图2.2.1所示。

图2.2.1 DS18B20测温电路 (1)DSI8B20的测温功能的实现: 其测温电路的实现是依靠单片机软件的编程上。当DSI8B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5℃/LSB形式表示。温度值格式如表2.2.1所示,其中“S”为标志位,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。DSI8B20完成温度转换后,就把测得的温度值与 TH做比较,若T>TH或T RoM操作命令 -> 存储器操作命令-> 处理数据 ①初始化单总线上的所有处理均从初始化开始 ② ROM操作命令总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如表2.2.2所示 表2.2.2 ROM操作命令表 ③存储器操作命令如表2.2.3所示 表2.2.3 存储器操作命令表

DS18B20温度检测教学提纲

D S18B20温度检测

目录 1 引言 (1) 2 系统描述 (2) 2.1 系统功能 (2) 2.2 系统设计指标 (3) 3 系统的主要元件 (3) 3.1 单片机 (3) 3.2 温度传感元件 (5) 3.3 LCD显示屏 (7) 4 硬件电路 (8) 4.1 系统整体原理图 (8) 4.2 单片机晶振电路 (9) 4.3 温度传感器连接电路 (10) 4.4 LCD电路 (10) 4.5 报警和外部中断电路 (12) 5 结论 (12)

温度监测系统硬件设计 摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温 度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监 测,而不会浪费单片机接口,提供了单片机接口的利用率。同时提高 了系统能够的抗干扰性,使系统更灵活、方便。本系统主要实现温度 的检测、显示以及高低温的报警。也可以通过单总线挂载多个 DS18B20实现多点温度的分布式监测。 关键词: DS18B20,单总线,温度,单片机 1引言 在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。而单片机的发展和应用是其中的重要一方面。单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。其中,单片机在工业生产中的应用尤其广泛。 单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。

DS18B20温度传感器设计

智能化仪器及原理应用课程设计 设计题目: DS18B20数字温度计的设计专业班级: 10自动化1 班 姓名: 组员: 指导老师: 日期:2012-11-26

目录 一、摘要 (2) 二、方案论证 (2) 三、电路设计 (2) 1、设备整机结构及硬件电路框图 (2) 2、单片机的选择 (3) 3、温度显示电路 (3) 4、温度传感器 (4) 5、软件设计 (6) 6、系统所运用的功能介绍: (8) 四、系统的调试及性能分析: (8) 附件:DS18B20温度计C程序 (9)

一、摘要 本设计的主要内容是应用单片机和温度传感器设计一个数字温度表,DS18B20是一种可组网的高精度数字温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计基于数字温度传感器DS18B20,以AT89C51片机为核心设计此测试系统,具有结构简单、测温精度高、稳定可靠的优点。可实现温度的实时检测和显示,本文给出了系统的硬件电路详细设计和软件设计方法,经过调试和实验验证,实现了预期的全部功能。 二、方案论证 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 方案设计框图如下: 方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 三、电路设计 1、 设备整机结构及硬件电路框图 根据设计要求与设计思路,设计硬件电路框图如下图所示, 4位数码管显示器系统中AT89C51成对DS18B20初始化、温度采集、温度转换、温度数码显示。 本装置详细组成部分如下: a. 主控模块:AT89C51片机; b. 传感器电路:DS18B20温度传感器;

DS18B20温度检测

目录1引言1 2系统描述2 2.1系统功能2 2.2系统设计指标3 3系统的主要元件3 3.1单片机3 3.2温度传感元件4 3.3LCD显示屏7 4硬件电路8 4.1系统整体原理图8 4.2单片机晶振电路8 4.3温度传感器连接电路9 4.4LCD电路10 4.5报警和外部中断电路11

5结论12

温度监测系统硬件设计 摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以 简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。同时提高了系统能够的抗干扰性,使系统更灵活、方 便。本系统主要实现温度的检测、显示以及高低温的报警。也可以通过单总线挂载 多个DS18B20实现多点温度的分布式监测。 关键词:DS18B20,单总线,温度,单片机 1引言 在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。而单片机的发展和应用是其中的重要一方面。单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。其中,单片机在工业生产中的应用尤其广泛。 单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。

温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器

摘要 此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器单片机STC89C52 对温度湿度分别测量并通过液晶显示屏1602经行显示。温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。HS1101是电容式空气湿度传感器,在不同的湿度环境下呈现出不同的电容值,0%~100%RH湿度范围内,电容从162PF变化到200PF,误差误差为2%RH。可见其精度非常高,为了反映出其电容的变化,本系统采用555多谐震荡电路产生不同的频率,用于检测湿度。单片机采集到两个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。 关键词:温湿度测量系统精度高速度快体积小 Abstract: The temperature and humidity measurement system is based on singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by LCD display. The line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directive given readable. HS1101 is capacitive sensor, air humidity in different humidity presents different capacitance, 0% ~ 100% RH humidity, within the scope of capacitance change to 200PF, from 162PF error for 2% RH error. e can see its precision is very high, in order to reflect the capacitance change, the system USES the 555 more harmonic concussion circuits produce different frequency, which is used to detect humidity. SCM acquisition to two sensor gives data processing and calculated, the current temperature and humidity and give the display on the LCD panel. This system has a readable, high stability, reaction speed, measured values exact characteristic. Keywords: temperature and humidity measurement system high precision speed small volume

stm32制作ds18b20温度传感器

折腾了一晚上,才把DS18B20的驱动移植到STM32上来。以前在51上使用过单个和多个连接的DS18B20,有现成的程序了,以为很快就能弄好,结果还是被卡住了,下面说下几个关键点吧: 首先是延时的问题,STM32上若用软件延时的话不太好算时间,所以要么用定时器要么用SysTick这个定时器来完成延时的计算。相比之下用SysTick来的简单方便点。 接着是STM32 IO脚的配置问题,因为51是双向的IO,所以作为输入输出都比较方便。STM32的IO是准双向的IO,网上查了下资料,说将STM32的IO配置成开漏输出,然后外接上拉即可实现双向IO。于是我也按规定做了,但调了老半天都不成功,是因为DS18B20没有响应的信号。在烦躁之际只有试下将接DQ的IO分别拉低和拉高看能不能读入正确的信号。结果果然是读入数据不对,原来我将IO配成开漏输出后相当然的以为读数据是用GPIO_ReadOutputDataBit(),这正是问题所在,后来将读入的函数改为GPIO_ReadInputDataBit()就OK了。现在温度是现实出来了,但跟我家里那台德胜收音机上显示的温度相差2度,都不知道是哪个准了,改天再找个温度计验证下。 下面引用一段DS18B20的时序描述,写的很详细: DS18B20的控制流程 根据DS18B20的通信协议,DS18B20只能作为从机,而单片机系统作为主机,单片机控制DS18B20完成一次温度转换必须经过3个步骤:复位、发送ROM指令、发送RAM指令。每次对DS18B20的操作都要进行以上三个步骤。

复位过程为:单片机将数据线拉低至少480uS,然后释放数据线,等待15-60uS让DS18B20接收信号,DS18B20接收到信号后,会把数据线拉低60-240uS,主机检测到数据线被拉低后标识复位成功; 发送ROM指令:ROM指令表示主机对系统上所接的全部DS18B20进行寻址,以确定对那一个DS18B20进行操作,或者是读取某个DS18B20的ROM序列号。 发送RAM指令:RAM指令用于单片机对DS18B20内部RAM进行操作,如读取寄存器的值,或者设置寄存器的值。 具体的RAM和RAM指令请查阅DS18B20的数据手册。下面简单介绍: 1、ROM操作命令:DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。一旦总线检测到从属器件的存在,它便可以发出器件ROM操作指令,所有ROM 操作指令均为8位长度,主要提供以下功能命令: 1 )读ROM(指令码0X33H):当总线上只有一个节点(器件)时,读此节点的64位序列号。如果总线上存在多于一个的节点,则此指令不能使用。 2 )ROM匹配(指令码0X55H):此命令后跟64位的ROM序列号,总线上只有与此序列号相同的DS18B20才会做出反应;该指令用于选中某个DS18B20,然后对该DS18B20进行读写操作。 3 )搜索ROM(指令码0XF0H):用于确定接在总线上DS18B20的个数和

基于DS18B20的温度传感器设计报告

目录 一、概述 (2) 二、内容 (2) 1、课程设计题目 (2) 2、课程设计目的 (2) 3、设计任务和要求 (2) 4、正文 (3) (一)、方案选择与论证 (3) 三、系统的具体设计与实现 (5) (1)、系统的总体设计方案 (5) (2)、硬件电路设计 (5) a、单片机控制模块 (5) b、温度传感器模块 (5) 四、软件设计 (11) 1、主程序 (11) 2、读出温度子程序 (11) 3、温度转换命令子程序 (11) 4、计算温度子程序 (12) 五、完整程序如下: (12) 六、设计体会 (17) 七、参考文献 (17)

一、概述 单片机技术是一项运用广泛且极具发展潜力的技术。 2009年6月14日随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。 本文主要介绍了一个基于89S52单片机的测温系统,详细描述了利用液晶显示器件传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 二、内容 1、课程设计题目 基于DS18B20的温度传感器 2、课程设计目的 通过基于MCS-52系列单片机AT89C52和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。 3、设计任务和要求 以MCS-52系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为±0.5摄氏度。温度显示采用LCD1602显示,两位整数,一位小数。

实验报告DS18B20温度检测控制

实训五 DS18B20温度检测控制实训 一、实训目的 1.温度传感器电路的工作原理。 2.了解温度控制的基本原理。 3.掌握一线总线接口的使用。 二、实训说明 1.DALLAS最新单线数字温度传感器DS18B20简介 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。 DS18B20测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。 DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的 48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校训码 (CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可 以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

温度传感器DS18B20工作原理以及引脚图

温度传感器: DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离 多点温度检测系统。 2 DS18B20的内部结构 DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源 接线方式时接地,见图4)。 ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+

1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 图2DS18B20的管脚排列 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S 为符号位。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 温度值高字节 高低温报警触发器TH和TL、配置寄存器均由一个字节的

基于单片机DS18B20温度控制器课程设计

《单片机原理及应用》 课程设计报告 题目:温度控制器电路 专业:电子信息工程 年级: 2010级 学号: ********** 学生姓名: ******* 联系电话: ************ 指导老师: ******* 完成日期:2013年5月30

摘要 随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。 本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有量程宽、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,有广泛的应用前景。 关键词:单片机;温度检测;AT89C52;DS18B20;

ABSTRACT With the era of progress and development, the temperature test has affected our life, work, scientific research, each domain, has become a very important thing, be imperative system so the design of a temperature test. This paper introduces a digital temperature alarm system based on AT89C52 mcu. Detailed description of the process of digital temperature sensor DS18B20 temperature measurement system development, focusing on the sensor under the SCM hardware connection, software programming and system flow of each module are analyzed in detail, on the part of the circuit are one one are introduced, the system can facilitate the realization of temperature acquisition and alarm, and can according to need any alarm temperature, it is very convenient to use, has a wide range, small volume, low power consumption, suitable for our daily lives and industrial, agricultural production in the temperature measurement, can also be used as a temperature processing module into other systems, as other auxiliary system. DS18B20 combined with AT89C52 to achieve the most simple temperature alarm system, the system is simple in structure, has the widespread application prospect. Key word.Single chip microcomputer; temperature detection; AT89C52; DS18B20;

DS18B20数字温度测量报警程序1

硬件电路: 软件设计: /****************************************************************** 程序名称:DS18B20温度测量、报警系统 简要说明:DS18B20温度计,温度测量范围0~99.9摄氏度 可设置上限报警温度、下限报警温度 即高于上限值或者低于下限值时蜂鸣器报警 默认上限报警温度为38℃、默认下限报警温度为5℃ 报警值可设置范围:最低上限报警值等于当前下限报警值 最高下限报警值等于当前上限报警值 将下限报警值调为0时为关闭下限报警功能 编写:吴彦刚 ******************************************************************/ #include #include "DS18B20.h" #define uint unsigned int #define uchar unsigned char //宏定义 #define SET P3_1 //定义调整键 #define DEC P3_2 //定义减少键 #define ADD P3_3 //定义增加键

#define BEEP P3_7 //定义蜂鸣器 bit shanshuo_st; //闪烁间隔标志 bit beep_st; //蜂鸣器间隔标志 sbit DIAN = P2^7; //小数点 uchar x=0; //计数器 signed char m; //温度值全局变量 uchar n; //温度值全局变量 uchar set_st=0; //状态标志 signed char shangxian=38; //上限报警温度,默认值为38 signed char xiaxian=5; //下限报警温度,默认值为38 uchar code LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff}; /*****延时子程序*****/ void Delay(uint num) { while( --num ); } /*****初始化定时器0*****/ void InitTimer(void) { TMOD=0x1; TH0=0x3c; TL0=0xb0; //50ms(晶振12M) } /*****定时器0中断服务程序*****/ void timer0(void) interrupt 1 { TH0=0x3c; TL0=0xb0; x++; } /*****外部中断0服务程序*****/ void int0(void) interrupt 0 { EX0=0; //关外部中断0 if(DEC==0&&set_st==1) { shangxian--; if(shangxian

(完整版)基于DS18B20的温度检测系统毕业论文

所属系电子工程系 专业自动化 学号 姓名周何聪 指导教师李振东 起讫日期 2011.4 --- 2011.5 设计地点东南大学成贤学院

东南大学成贤学院毕业设计报告(论文) 诚信承诺 本人承诺所呈交的毕业设计报告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。如论文涉及任何知识产权纠纷,本人将承担一切责任。 学生签名: 日期: 目录 摘要 (3) Abstract (4) 第一章绪论 (5) §1.1 系统背景 (5) §1.2 系统概述 (5) 第二章方案论证 (6) §2.1 传感器部分 (6) §2.2主控制部分 (7) §2.3 系统方案 (7) 第三章硬件电路设计 (8) §3.1 电源以及看门狗电路 (8) §3.2键盘以及显示电路 (10)

§3.2温度测试电路 (12) §3.3 串口通讯电路 (16) §3.4 整体电路 (17) 第四章软件设计 (17) §4.1 概述 (17) §4.2 主程序方案 (17) §4.3 各模块子程序设计 (19) 第五章系统调试 (21) §5.1 分步调试 (21) §5.2 统一调试 (21) 结束语 (22) 参考文献 (23) 附录一:软件流程图 (25) 附录二:电路原理图 (26) 致谢 (30) 摘要 DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。 该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C51单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC。该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。 关键字:温度测量;单总线;数字温度传感器;单片机

DS18B20温度检测控制

DS18B20温度检测控制 摘要 温度是一个很重要的物理量,在现代工农业生产中,对它的测量与控制有十分重要的意义。本论文从简单实用方面介绍了由DS18B20单总线数字式温度传感器与AT89S52单片机构成温度检测控制系统。论文从五个方面介绍了这一设计:绪论部分简单介绍了课题背景及现状,并提出预期目标;第二部分对DS18B20、AT89S52、74LS244的硬件资源、功能等作了较详细的介绍;第三部分介绍了主要硬件电路的设计,包括测量电路、显示电路和电源电路;第四部分介绍软件设计。程序采用C语言在Keil软件环境下编写、调试,并用计算机并口下载到单片机;第五部分主要对设计进行调试实验,并对实验结果作总结并指出不足。 关键词:单总线单片机 AT89S52 DS18B20

Abstract Temperature is an important physical parameter and the measurement and control it is of great significance. This article introduced a simple and practical temperature examination control system by the DS18B20 1-wrie digital temperature sensor and AT89S52 single-chip computer. The article introduced this design from five aspects: The introduction part simply introduced the topic background and the present situation, and set the anticipated target;the second part introduced function and technique data of the AT89S52, DS18B20、74LS244; The third part introduced the design of main hardware circuit's, including metering circuit, display circuit and power circuit; part four introduced the design of software . Use the C program language which writes and debugs at Keil software environment ,and download to the single-chip computer by combine of computer; The fifth part mainly to designs carries on the debugging experiment, and does to the experimental result summarizes and points out the insufficiency. Key Words:1-wire single-chip computer AT89S52 DS18B20

郭天祥讲解的DS18B20测温度的程序

#include #include #define uchar unsigned char #define uint unsigned int sbit ds=P2^2; //温度传感器信号线 sbit dula=P2^6; //数码管段选线 sbit wela=P2^7; //数码管位选线 sbit beep=P2^3; //蜂鸣器 uint temp; float f_temp; uint warn_l1=260; uint warn_l2=250; uint warn_h1=300; uint warn_h2=320; sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0xbf,0x86, 0xdb,0xcf,0xe6,0xed, 0xfd,0x87,0xff,0xef}; //不带小数点的编码 void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void dsreset(void) //18B20复位,初始化函数{ uint i; ds=0; i=103; while(i>0)i--; ds=1;

while(i>0)i--; } bit tempreadbit(void) //读1位函数 { uint i; bit dat; ds=0;i++; //i++ 起延时作用 ds=1;i++;i++; dat=ds; i=8;while(i>0)i--; return (dat); } uchar tempread(void) //读1个字节 { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tempreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DA T里} return(dat); } void tempwritebyte(uchar dat) //向18B20写一个字节数据 { uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //写1 { ds=0; i++;i++; ds=1; i=8;while(i>0)i--; } else

DS18B20温度检测仪表(数码管显示)doc资料

目录 第1章绪论 (1) 1.1 选题目的 (1) 1.2 设计要求 (1) 第2章电路结构及工作原理 (2) 2.1 电路方框图 (2) 2.1.1 电路图 (2) 2.1.2 系统流程 (3) 2.2芯片介绍 (5) 2.2.1 DS18B20 (5) 2.2.1.1 DS18B20的工作原理 (5) 2.2.1.2 DS18B20的使用方法 (6) 2.2.2 AT89C51 (8) 2.2.2.1 AT89C51简介 (8) 第3章整机工作原理 (10) 第4章系统调试与分析 (12) 4.1 系统的调试 (12) 4.2系统的分析 (12) 结论 (13) 收获和体会 (14) 致谢 (15) 参考文献 (16) 附录一元件清单 (17)

课程设计任务书 年月日

第1章绪论 1.1 选题目的 随着人们生活水平的不断提高,单片机技术已经普及到我们生活,工作,科研等各个领域。单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本文利用单片机结合传感器技术开发设计,把传感器理论与单片机实际应用有机结合,详细地讲述了利用温度传感器DS18B20测量环境温度,设置上下报警温度,当温度不在设置范围内是,可以报警。同时51单片机在现代电子产品中广泛应用以及其技术已经非常成熟,DS18B20可以直接读出被测温度值,而且采用一线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 1.2 设计要求 (1)设计题目和设计指标 测量温度范围为0-100℃。并通过数码管显示 (2)设计功能 利用DS18B20实现温度采集,并用数码管显示

相关文档
最新文档