基于DS18B20的室温温度控制器毕业论文.doc

上传人:wj 文档编号:2487367 上传时间:2023-05-03 格式:DOC 页数:20 大小:1.80MB
下载 相关 举报
基于DS18B20的室温温度控制器毕业论文.doc_第1页
第1页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第2页
第2页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第3页
第3页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第4页
第4页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第5页
第5页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第6页
第6页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第7页
第7页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第8页
第8页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第9页
第9页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第10页
第10页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第11页
第11页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第12页
第12页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第13页
第13页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第14页
第14页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第15页
第15页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第16页
第16页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第17页
第17页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第18页
第18页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第19页
第19页 / 共20页
基于DS18B20的室温温度控制器毕业论文.doc_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于DS18B20的室温温度控制器毕业论文.doc

《基于DS18B20的室温温度控制器毕业论文.doc》由会员分享,可在线阅读,更多相关《基于DS18B20的室温温度控制器毕业论文.doc(20页珍藏版)》请在冰点文库上搜索。

基于DS18B20的室温温度控制器毕业论文.doc

漳州师范学院

毕业论文(设计)

基于DS18B20的室温温度控制器

DesignofARoomTemperature

MeasurementSystemBasedOnDS18B20

姓名:

林小燕

学号:

070502102

系别:

物理与电子信息工程系

专业:

电子信息科学与技术

年级:

2007级

指导教师:

郭海燕

2010年12月25日

17

摘要

在温度检测控制系统中以单片机AT89S52为控制核心,对温度信号进行采集,处理数据并输出控制。

单总线上连接多个传感器DS18B20,利用E2PROM建立了位置编号和传感器序列号的对应关系,实现多点温度测量。

结合按键实现报警温度值的设置,采用数码管实时显示温度,并且通过控制继电器来实现温度调节。

关键词:

数字温度传感器;单总线;单片机

Abstract

Inthetemperaturemeasurementsystem,AT89S52SCMthatisthecoreofthecontrollersamplstemperaturesignals,dealswiththetemperaturedatasandcontrolstheoutput.MultipletemperaturesensorsDS18B20areonthesinglebus.Torealizethemulti-spottemperaturemeasurementsystem,itestablishsthecorrespondingrelationofpositionnumberandtheserialnumberofsensorsbyE2PROM.Alarmtemperatureismanuallysettedbybuttons.Itusesdigitaltubestorealizethereal-timedisplayandapplysthecontrolofelectricrelaystoregulatethetemperature.

Keywords:

DigitalTemperatureSensor;Singlebus;SCM

目录

摘要 I

Abstract I

1引言 1

2系统方案论证 1

2.1温度传感器方案论证 1

2.2显示电路方案论证 1

2.3系统框图 2

3系统硬件电路设计 2

3.1单片机模块 2

3.1.1AT89S52介绍 2

3.1.2单片机应用电路 4

3.2温度采集电路 5

3.2.1DS18B20的技术特性 5

3.2.2DS18B20的内部结构 6

3.2.3DS18B20的测温原理 7

3.2.4DS18B20与单片机接口电路 8

3.3电源电路 8

3.4显示电路 9

3.5按键电路 9

3.6报警控制电路 10

3.7AT24C02存储电路 10

4软件设计 10

4.1DS18B20的单线协议和命令 10

4.1.1初始化 11

4.1.2写DS18B20 11

4.1.3读DS18B20 12

4.2I2C总线通信协议 12

4.2.1位传输 12

4.2.2数据传输的字节格式 13

4.2.3I2C数据传输协议 13

4.3主程序流程设计 14

4.4温度采集流程设计 14

5结束语 15

参考文献 15

附录 16

1引言

随着现代自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出。

它的发展大致经历三个阶段:

传统的分立式温度传感器;模拟集成温度传感器;数字温度传感器。

目前,逐渐向数字式、智能式、网络化的方向发展,同时具有抑制干扰强、分辨率高、成本低等优点。

在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓库、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。

本系统测量的对象是空气,测量点数至少为2个,测量精度为0.1℃,测量范围为-55℃~+125℃,采用数码管实时显示温度值,格式为路数,整数部分,小数部分。

设计一个能对多点温度测量的室温温度调节器,当对应的点温度超出设定值时,对应点的通风降温设备打开。

2系统方案论证

2.1温度传感器方案论证

方案一:

采用数字温度传感器DS18B20。

DS18B20是一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位转换精度,测温分辨率可达0.0625℃。

DS18B20可以直接读出被测的温度值,而且采用3线制与单片机相连,减少了外部的硬件电路。

每个DS18B20具有唯一的64位长序列号,存放于DS18B20内部存储器中,这样一条总线上可以挂多个DS18B20,大大节省了资源,因而使系统结构更趋简单。

方案二:

采用金属热电阻Pt100。

Pt100传感器是一种以白金(Pt)做成的电阻式温度检测器,属于正电阻系数。

利用铂电阻的阻值随温度的变化而变化,其温度与电阻的关RP=100+0.392T欧姆(00C≤T≤8500C),T为摄氏温度。

允许通过Pt100的电流≤5mA,但Pt100的灵敏度不够好,性能比较差,价格昂贵,不利于工业中的大量使用。

热敏电阻NTC电阻值随环境温度的变化幅度较大,需要查询温度与阻值对应的关系表,且需要带A/D转换电路的单片机组成的测温系统,不仅使硬件线路复杂化,增加软件开销。

DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。

虽然测温范围较小在工业应用上会受到限制,但本设计应用于温室温度控制,基于以上分析采用方案一。

2.2显示电路方案论证

方案一:

使用液晶显示。

液晶显示屏(LCD1602)具有超薄轻巧、耗能低、无辐射危险,平面直角显示以及影像稳定不闪烁,可视面大,画面效果好,分辨率高,抗干扰能力强,显示字符多,内部自带128个字符,也可以自己创建字符库,不需要动态显示,这样不会限制控制器的送显时间,但价格较贵,成本太高,相对低成本的硬件设计来说不够经济实用。

方案二:

使用传统的数码管显示。

数码管具有:

低能耗、低压、高频特性好,单色性好,亮度高,显示稳定,使用寿命长,成本低,便于广泛使用。

在单片机控制系统中,因为单片机的硬件简单灵活,非常适合使用LED数码管作为其输出设备,这样既满足了控制系统硬件简单,又能如实地显示系统的处理结果。

动态显示所用的I/O接口信号线少,线路简单[8]。

由于该系统只须显示数字即可,就经济实用性来看,该系统选择方案二

2.3系统框图

温度传感器及显示电路均采用方案二。

与传统的多路测温电路不同的是,组成多路系统的每个DS18B20可以独立的同时完成转换,而后者由于采取放大电路和A/D转换器,只能逐一转换。

因此,后者完成一次多路检测的周期T与通道数成正比,而DS18B20组成的测温系统中,可以实现统一转换,只需1s,可以用很少的时间去读取,省时效应越明显[6]。

采用单片机89S52对温度传感器进行控制,可系统在线编程,硬件电路简单,较易实现系统功能。

系统框图如图1所示。

图1系统框图

3系统硬件电路设计

3.1单片机模块

本设计单片机应用电路模块由核心芯片AT89S52、时钟电路和复位电路组成,该模块功能是让单片机正常工作,对外部传感器采集的温度输入数据并处理。

3.1.1AT89S52介绍

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程FLASH存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容,片上FLASH允许程序存储器在系统可编程,也适用于常规编程器。

这样的特性功能使得AT89S52为控制应用系统提供了高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8K字节FLASH,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

AT89S52引脚排列和逻辑符号如图2所示。

图2单片机AT89S52的引脚图

AT89S52引脚功能介绍如下:

1)P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0不具有内部上拉电阻。

在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

2)P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下所示:

P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5MOSI(在系统编程用)

P1.6MISO(在系统编程用)

P1.7SCK(在系统编程用)

在FLASH编程和校验时,P1口接收低8位地址字节。

3)P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在FLASH编程和校验时,P2口也接收高8位地址字节和一些控制信号。

4)P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2INTO(外中断0)

P3.3INT1(外中断1)

P3.4TO(定时/计数器0)

P3.5T1(定时/计数器1)

P3.6WR(外部数据存储器写选通)

P3.7RD(外部数据存储器读选通)

在FLASH编程和校验时,P3口也接收一些控制信号。

5)RST——复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

6)ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

7)PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

8)EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

当EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

对FLASH存储器编程期间,该引脚加上+12V的编程允许电源Vpp。

9)XTAL1——振荡器反相放大器和内部时钟发生电路的输入端。

10)XTAL2——振荡器反相放大器的输出端[1]。

3.1.2单片机应用电路

图3单片机晶振电路

图4单片机复位电路

单片机晶振电路如图3所示。

采用内部振荡电路方式,引脚XTAL1和XTAL2外接石英晶振和微调电容,这样所得的时钟信号比较稳定。

理论上使用的是12MHz的晶振,但实际测得是11.0592MHz。

两个33pF的电容主要起频率微调和稳定的作用。

单片机复位电路如图4所示。

采用手动复位与上电复位相结合的方式,当RST端出现两个及其周期以上高电平单片机复位。

当按下按键S1时,VCC的高电平就直接加到RST端,即使很快的松开按键,也能满足复位的时间要求,实现了手动复位。

上电复位由VCC通过电阻R3容C7成回路,通过电容的充电来实现,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST端的电位逐渐下降。

3.2温度采集电路

3.2.1DS18B20的技术特性

DALLAS单总线数字温度传感器DS18B20是一种新型的“一线器件”,它使用了在板“on-board”专利技术来测量温度,全部传感器及数字转换电路都集成在一起,其体积小、适用电压宽,适用于多种场合[6]。

与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的转换精度,测温分辨率可达0.0625℃,分辨率设定参数以及设定的报警温度存储在E2PROM中,掉电不丢失,被测温度用符号位扩展的16位数字量方式串行输出。

因为每一个DS18B20有唯一的序列号(serialnumber),CPU只需一根端口线就能与诸多DS18B20双向通信,这允许在不同地方放置传感器,节省了大量的引线和逻辑电路,构成多点温度采集系统。

温度转换功率来源于数据总线,无需额外电源,因而使系统结构更简单,十分方便[10]。

DS18B20的主要特性如下:

1)适应电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电。

2)独特的单线接口方式:

仅需要一条口线即可实现微处理器与DS18B20的双向通信。

3)支持多点组网功能:

多个DS18B20可以并联在唯一的三线上,实现多点测温。

4)不需要任何外围元件,全部传感元件及转换电路集成在集成电路内。

5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。

6)可编程的分辨率为9~12位,测温分辨率可达0.0625℃,实现高精度测温。

7)最多在750ms内把温度值转换为数字量输出,速度快。

8)用户可定义的非易失性温度报警设置。

9)负压特性:

电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

DS18B20的外部封装形式如图5所示。

图5DS18B20的外部封装图

引脚功能描述如表1所示。

表1DS18B20引脚介绍

引脚序号

名称

引脚功能描述

1

GND

接地

2

DQ

数字输入∕输出引脚,漏极开路单线接口引脚当使用寄生电源时,可提供电源

3

VDD

可选择的电源引脚

当使用寄生电源时,该引脚必须接地

3.2.2DS18B20的内部结构

如图6所示。

DS18B20内部结构主要组成:

64位光刻ROM,温度灵敏器件,非易失性温度报警触发器TH和TL,配置寄存器。

VDD

DQ

图6DS18B20内部结构图

(1)如图7所示。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,可以实现一根总线上挂接多个DS18B20的目的。

64位光刻ROM的排列是:

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

图764位光刻ROM

(2)非易失性温度报警触发器TH和TL,通过软件写入用户温度上下限。

(3)DS18B20的内部存储器包括一个高速暂存RAM和一个非易失性、电可擦除的EEPROM,后者存放高温度和低温度触发器TH、TL。

数据先写入暂存RAM,也可以被读回,当数据被校验后传给EEPROM。

暂存存储器有助于在单线通信时确保数据的完整性。

高速暂存RAM由9个字节组成,其分布如表5所示。

当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存RAM的第0和第1个字节。

单片机可通过单线接口读到该数据,读取时低位在前,高位在后。

第8个字节是循环冗余CRC校验值[7]。

表2:

DS18B20暂存存储器分布

字节地址

寄存器内容

0

温度值低位(LSByte)

1

温度值高位(MSByte)

2

高温限值(TH)

3

低温限值(TL)

4

配置寄存器

5

保留

6

保留

7

保留

8

CRC校验值

(4)配置寄存器:

高速暂存器中的第4个字节,用于确定温度值的数字转换分辨率。

低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。

在DS18B20出厂时该位被设置为0,R1和R0用来设置分辨率,如表3所示(DS18B20出厂时被设置为12位)。

表3:

配置寄存器结构

TM

R1

R0

1

1

1

1

1

当设定的分辨率越高,温度数据转换所需的时间越长。

表4:

温度分辨率设置表

R1

R0

分辨率

温度最大转换时间

0

0

9位

93.75ms

0

1

10位

187.5ms

1

0

11位

375ms

1

1

12位

750ms

3.2.3DS18B20的测温原理

如图8所示。

DS18B20的测温过程:

低温系数振荡器的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给计数器1,高温系数振荡器的振荡频率受温度的影响明显,所产生的信号作为计数器2的脉冲输入来确定一个门周期。

计数器1在这个门周期内对低温系数振荡器的脉冲进行减法计数,如果计数器在门周期结束前到达0,则温度寄存器的值增加,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

每次测量前,首先将-55 ℃所对应的基数分别置入计数器1和温度寄存器中,计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。

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

图8温度测量电路框图

当DS18B20接收到温度转换命令之后,开始启动转换,转换完成后的温度值以16位符号扩展的二进制补码读数形式存储在DS18B20的两个8比特的RAM中。

二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

DS18B20部分温度数据如表6所示。

表5:

DS18B20温度值格式

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

23

22

21

20

2-1

2-2

2-3

2-4

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

S

S

S

S

S

26

25

24

表6:

DS18B20温度数据表

温度/℃

数字量输出(二进制)

数字量输出(十六进制)

+125

0000011111010000

07D0H

+85

0000010101010000

0550H

+25.0625

0000000110010001

0191H

+10.125

0000000010100010

00A2H

+0.5

0000000000001000

0008H

0

0000000000000000

0000H

-0.5

1111111111111000

FFF8H

-10.125

1111111101011110

FF5EH

-25.0625

1111111001101111

FE6FH

-55

1111110010010000

FC90H

3.2.4DS18B20与单片机接口电路

图9DS18B20与单片机接口电路

如图9所示,DS18B20组成网络的单总线接口DQ连接到单片机的I/O口P1.3。

要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大,因此采用独立电源工作方式。

3.3电源电路

图10电源电路

如图10所示。

由于单片机、测温、显示、报警等电路需要5V电源,选用三端稳压集成电路7805,该电路简单实用、性能可靠稳定。

输入10V交流电压,经桥式整流、电容滤波后,再经过7805稳压,输出+5V的直流电压作为各个模块电源。

电容C3和C4用于消除自激,两电容要紧靠7805。

C1和C2是滤波电容,要求C2的容量要小于C1,以免掉电时C2通过7805向C1反充电。

3.4显示电路

图11显示电路

如图11所示。

通过控制I/O口P2.0、P2.1的状态来实现两个不同颜色的发光二极管的亮暗,来区别系统的正常显示和设置状态,用四位数码管显示温度数据等。

动态显示电路是AT89C51的P0.0至P0.7端口作为LED的字段输出口,P2.4至P2.7作为LED的位选控制口,采用PNP管9012驱动共阳LED显示器的第3引脚公共极COM,显示器从最左边的位开始点亮LED。

动态显示电路采用4个共阳极LED数码管分时扫描,把所有数码管的8个笔划段a,b,……,h的同名端连在一起,而每一个显示器的公共极COM都是各自独立地受I/O口线控制。

单片机向字段输出口送出字形码,所有显示器接收到相同的字形码,但究竟要在哪个显示器亮,则取决于公共极COM。

由于数码管余辉效应和人眼的视觉暂留现象,尽管实际上各位显示器并非同时点亮,但只要扫描速度足够快,会出现稳定的显示数据。

动态显示所用的I/O接口信号线少,线路简单[8]。

3.5按键电路

如图12所示。

采用独立按键的结构形式,每个按键相互独立,分别与单片机的一根输入线相连,配置灵活,软件简单,适用于按键较少的场合。

当按键开关未按下时,开关处于断开状态,单片机I/O口为高电平;当按键开关按下时,开关处于闭合状态,单片机I/O口为低电平。

由于按键开关闭合和断开瞬间都会产生5~10ms的抖动,对于单片机来说完全可以感应到,因此采用软件消除抖动。

图12独立按键电路

3.6报警控制电路

如图13所示。

当各路的实际温度超过设置的温度值时,通过控制单片机的I/O口产生脉冲信号,使三极管导通和截止,蜂鸣器间断地

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2