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

更新时间:2024-06-06 07:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江科技学院本科毕业设计(论文)

浙 江 科 技 学 院

本科学生毕业设计(论文)

题 目

系 别

专业班级

姓 名

指导教师

基于DS18B20的智能温度检测系统 自动化与电气工程学院 02自动化A班 许 浩 学 号 10241029 张 丽 职 称 助 教 2006年 6 月 1 日

1

浙江科技学院本科毕业设计(论文)

摘 要:本文主要讨论了当今温度传感器的发展方向,介绍了用单片机控制的、基于数字温度传感器DS18B20的温度测量系统。重点阐述了DS18B20的工作原理、指令系统、单片机与DS18B20之间的接口、数据传递、通信协议,建立了基于DS18B20的单点、多点温度测量系统。最后用RS232总线实现了测温系统与PC机的通讯,实现了温度的实时检测与显示。

关键字: DS18B20,多点温度测量,通讯

Abstract :After mainly discussing the development direction of current temperature sensor, the paper introduces the temperature measurement system based on the digital temperature sensor DS18B20,which is controlled by 89S52 single chip microcomputer. The working princip1e of the DS18B20, instruction sets, data transmission, the interface and the communication protoco1 between the DS18B20 and single chip microcomputer is expounded specially. The detail design project and concrete implementation of the single and multiple temperature measurement system,which is made up of DS18B20 and 89S52 single chip microcomputer are discussed.The temperature measurement system can communicate with PC by RS232 bus, which can be realized the measurement and display of temperature in the real time in this paper.

Keywords:DS18B20, multipoint temperature measurement, communication

2

浙江科技学院本科毕业设计(论文)

目录

摘 要……..……………..…………………………………………………………………..I 1 绪论……………………………………………………………………………………..1 2 几种常用温度传感器的原理及发展 …………………………………………………2

2.1 引言………………………………………………………………………………….2 2.2 传感器的分类………………………………………………………………………...2 2.3 传感器的原理及发展…………………………………………………………………2 2.3.1 传统的分立式温度传感器—热电偶传感器…………………………………………2 2.3.2 集成(IC)温度传感器……………………………………………………………...3 2.4 智能温度传感器发展的新趋势………………………………………………………..5 2.4.1 提高测温精度和分辨力……………………………………………………………5 2.4.2 增加测试功能……………………………………………………………………..5 2.4.3 总线技术的标准化与规范化……………………………………………………….6 2.4.4 可靠性及安全性设计……………………………………………………………...6 2.4.5 虚拟温度传感器和网络温度传感器………………………………………………..7 2.5 小结………………………………………………………………………………….7

3 DS18B20测温系统的设计……………………………………………………………...8

3.1 现实测温遇到的问题…………………………………………………………………8 3.2 方案论证及比较……………………………………………………………………...8 3.3 DS1820数字温度传感器的原理与构造…………………………………………………9 3.3.1 DS18B20的内部结构…………………………………………………………….10 3.3.2 DS18B20温度传感器的存储器…………………………………………………...11 3.4 DS1820单点测温系统设计…………………………………………………………...14 3.4.1 CPU 模块……………………………………………………………………….14 3.4.2 数据采集模块…………………………………………………………………..15 3.4.3 显示模块……………………………………………………………………….15 3.4.4 系统软件设计…………………………………………………………………..15 3.5 DS18B20多点测温系统的设计………………………………………………………..25

3

浙江科技学院本科毕业设计(论文)

3.5.1 硬件说明………………………………………………………………………...25 3.5.2 软件设计………………………………………………………………………...25

4 DS1820测温系统与PC上位机通讯…………………………………………………..29

4.1 RS-232C介绍………………………………………………………………………...29 4.2 RS232硬件接口设计…………………………………………………………………30 4.2.1 硬件说明………………………………………………………………………...30 4.3 程序设计……………………………………………………………………………31 4.3.1 单片机内通信程序的设计………………………………………………………..31 4.3.2 PC 机内通信程序的设计………………………………………………………….32

5 总 结…………………………………………………………………………………38 致 谢………………………………………………………………………………………39 参考文献…………………………………………………………………………………..40 附录1……………………………………………………………………………………...41 附录2………………………………………………………………………………………68

4

浙江科技学院本科毕业设计(论文)

1 绪 论

温度是一个基本的物理量,自然界中的一切过程无不与温度密切相关。

随着科学技术的不断进步与发展,温度传感器的种类日益繁多,应用逐渐广泛,并且开始由模拟式向着数字式、单总线式、双总线式和三总线式方向发展。而数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。

在工业过程控制和检测过程中,温度是最重要的参数之一,很多情况下需要进行温度的现场测量。而在众多的温度传感器中,智能温度传感器DS18B20将温度传感器、A/D转换器、寄存器、接口电路集成在一个芯片中。可实现直接数字化输出、测试及控制功能强、传输距离远、抗干扰能力强、微型化、微功耗、可适配各种微控制器(MCU)或微型计算机进行数据处理及温度控制。在很多智能化的温度传感器中,大多使用同步串行总线技术,如 (Philips)、SMBus (Intel) 、SPI(Motorola)、 Microwire/Plus(NSC)等串行总线协议,而DS18B20采用的是单线(1-Wire)总线协议。单线(1-Wire)是DALLAS公司的一项专有技术,它采用一根信号线实现信号的双向传输,具有接口简单,节省I/O口线,便于扩展和维护等优点。

随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要后续信号处理电路,而且热敏电阻的可靠性相对较差,测量温度的准确度低,检测系统的精度差。我们选用了美国DALLAS公司最新推出的DS18B20数字式温度传感器,DS18B20是DS1820的更新产品,它与传统的热敏电阻温度传感器不同,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。因而使用DS18B20可使系统结构更趋简单,可靠性更高

在本设计中我使用智能温度传感器DS18B20构建温度检测系统,该系统实现了温度的实时检测及监测,检测数据精度高,范围大。

5

浙江科技学院本科毕业设计(论文)

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

分辨率设置表

R1 R0 分辨率 0 0 9位 0 1 10 位 1 0 11位 1 1 12位 温度最大转换时间 96.75ms 187.5 ms 375ms 750ms 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

16

浙江科技学院本科毕业设计(论文)

(a)初始化时序

(b)写时序

(c)读时序 DS18B20的工作时序图

17

1234浙江科技学院本科毕业设计(论文) A3.4 DS18B20单点测温系统设计 主控制电路、硬件原理说明装置的构成原理图如图3.2所示。 +599U1R21K311134781314171810OELED1D2D3D4D5D6D7D8GND74HC373VCC2012345678abcdefgdpVCCafegdNCbcdp10U3U4DS1820123456781011121314151617930293120P1.0/T2P1.1/T2EXP1.2/RXD1P1.3/TXD1P1.4/INT2P1.5/INT3P1.6/INT4P1.7/INT5P3.0/RXD0P3.1/TXD0P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDRSTALEPSENEAGND89S52C220pFC320pFVCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15X1X240393837363534333221222324252627281918Y1DQBQ1Q2Q3Q4Q5Q6Q7Q8GND25691215161912345678VCCabcdefgdpVCCafegdNCbcdp10DS1DS221S19U21113478131417181210OELED1D2D3D4D5D6D7D8GND74HC373VCC2012345678abcdefgdpVCCafegdNCbcdp10R35KC110uFR18.2KQ1Q2Q3Q4Q5Q6Q7Q8256912151619123456789abcdefgdpVCCafegdNCbcdp10DS3DS4C 图3.2 温度检测装置原理图 该系统以高性价比的89S52为核心,采用新型单片数字温度传感器DS18B20来测量温度。整个系统结构紧凑,性能可靠;不仅适用于工业环境温度的检测与控制,也可适用于水温检测与控制。 3.4.1 CPU 模块 D采用AT89S52单片机作为控制机构的核心。AT89S52 是一种低功耗、高性能的CMOS型 8位微型计算机。它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和82C52的指令系统及引脚兼容,片内Flash 1234集成在一个芯片上,可用于解决复杂的问题,且成本较低。AT89S52提供了8K字节Flash ,256字节RAM,32线I/O口,3个16位定时/计数器,6向量两极中断,一个双工串行口,具有片内自激振荡器和时钟电路等标准功能。此外, AT89S52设有静态逻辑,用于运行到零频率,并支持软件选择的节电运行方式和空闲方式使CPU停止工作,而允许RAM、定时/计数器、串行口和中断系统继续工作。在掉电方式下,片内振荡器停止工作,由于时钟被冻结,一切功能都停止,只有片内RAM的内容被保存,直到硬件复位才恢复正常工作。

18

浙江科技学院本科毕业设计(论文)

3.4.2 数据采集模块

该部分主要完成对温度信号的采集和转换工作,由DS18B20及其与单片机的接口部分组成。由于采用了该芯片,温度测量电路变得非常简单。DS18B20就像三极管一样,有一根地线,一根信号线DQ和一根电源线。通过DQ线与单片机的I/O口线相连,就能实现单片机对DS18B20模式控制、温度值的读取等操作。

3.4.3 显示模块

采用4位LED数码管分别显示温度的两位小数和两位整数,通过两片锁存器74HC373来控制LED的显示。

3.4.4 系统软件设计

软件采用模块化设计方式,将各个功能分成独立的模块。本装置的软件包括主程序、显示子程序以及有关DS18B20的程序(初始化子程序、写程序和读程序等)。

主程序完成的功能是:检测DS18B20是否存在,DS18B20初始化,读写程序,LED显示程序。全部的工作软件流程图情况如下:

开始否DS18B20是否存在是DS18B20复位初始化开始读温度子程序写DS18B20的子程序将读出的温度格式化读DS18B20的程序LED显示子程序结束

主程序框图 读温度子程序

19

浙江科技学院本科毕业设计(论文)

显示缓冲单元送R0查表显示单元送A取段位码送所选位码入P1口是输出段位码否转下下一缓冲单元是否显示完四位 LED显示子程序

程序代码:

;这是关于单个DS18B20的测温程序,数据脚为P3.3,晶振是11.0592MHZ ;温度传感器18B20采用器件默认的12位转化,最大转化时间要750毫秒 ;内存分配声明

TEMPER_L EQU 29H;用于保存读出温度的低字节

20

浙江科技学院本科毕业设计(论文)

DJNZ DEL,DSY RET

TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H ;----二进制到ASCII码转换-------------- PASS: MOV A, #30H

ORL A_BIT, A ;传送到PC上位机 LCALL TX_CHAR ORL B_BIT, A LCALL TX_CHAR ORL C_BIT, A LCALL TX_CHAR ORL D_BIT, A LCALL TX_CHAR RET

;---1MS延时---------------------------------------------------------------- D1MS: MOV R7,#250 LOOP0: NOP NOP

DJNZ R7,LOOP0 RET

;----1S延时 ----------------------------------------------------------------- D1S: MOV R6,#4 LOOP2: MOV R5,#250 LOOP1: LCALL D1MS DJNZ R5,LOOP1 DJNZ R6,LOOP2 RET INIT_RS232:

26

浙江科技学院本科毕业设计(论文)

MOV SCON,#50H

MOV TMOD,#20H ;定时器T1工作方式2 MOV TH1,#0FDH SETB TR1 SETB TI RET

;----------------------- TX_CHAR:

JNB TI,$ CLR TI MOV SBUF, A RET

;---------------------------------------------------------------------------------- END

3.5 DS18B20多点测温系统的设计

DS18B20是DALLAS公司生产的单总线数字温度传感器,可以通过在单线上串接多个DS18B20来达到多点测温和降低硬件复杂。DS18B20多点测温系统硬件原理图如下所示:

3.5.1 硬件说明

将多个DS18B20串接在89S52的P3.3上,采用电源供电,利用上拉电阻R1保证温度信息的正常传送,由于多个DS18B20串接在同一口上,在获取温度信息时需进行ROM匹配,以保证所获取的温度信息与目标相同。同时在系统硬件上可以通过扩展键盘来进行传感器的片选。

27

浙江科技学院本科毕业设计(论文)

3.5.2 软件设计

每一片DSl820 在其ROM 中都存有其唯一的48 位序列号在出厂前已写入片内ROM中主机在进入操作程序前必须逐一接入18B20 用读ROM(33H)命令将该18B20 的序列号读出并记录。当主机需要对众多在线18B20 的某一个进行操作时,首先要发出匹配ROM 命令(55H) ,紧接着主机提供64 位序列(包括该18B20 的48 位序列号) ,之后的操作就是针对该18B20 的。而所谓跳过ROM 命令即为之后的操作是对所有18B20 的。框图中先有跳过ROM 即是启动所有18B20 进行温度变换之后,通过匹配ROM 再逐一地读回每个18B20 的温度。数据在18B20 组成的测温系统中,主机在发出跳过ROM 命令之后再发出统一的温度转换启动码44H 就可以实现所有18B20 的统一转换,再经过1s 后就可以用很少的时间去逐一读取这种方式使其T 值往往小于传统方式。由于采取公用的放大电路和A D 转换器只能逐一转换显然通道数越多这种省时应就越明显。

初始化设置DS18B20个数B跳过ROM匹配匹配ROM变换温度读温度等待1S存在缓冲区指针增1否初始化初始化B-1=0?是 多路测温程序框图

28

浙江科技学院本科毕业设计(论文)

DS18B20 序列号获得

; ---------读出DS18B20 序列号应用程序,P3.3 接DS18B20----------------------- ORG 0000H AJMP MAIN ORG 0020H MAIN: MOV SP,#60H

CLR EA ;使用DS18B20 一定要禁止任何中断产生 LCALL INT ;初始化DS18B20 MOV A,#33H

LCALL WRITE ;送入读DS18B20 的ROM 命令 LCALL READ ;开始读出当前DS18B20 序列号 MOV 40H,A LCALL READ MOV 41H,A LCALL READ MOV 42H,A LCALL READ MOV 43H,A LCALL READ MOV 44H,A LCALL READ MOV 45H,A LCALL READ MOV 46H,A LCALL READ MOV 47H,A SETB EA

29

浙江科技学院本科毕业设计(论文)

SJMP $

INT: ;初始化DS18B20 子程序 CLR EA

L0:CLR P3.3 ;DS18B20 总线为低复位电平 MOV R2,#200 L1:CLR P3.3

DJNZ R2,L1 ;总线复位电平保持400us SETB P3.3 ;释放DS18B20 总线 MOV R2,#30

L4:DJNZ R2,L4 ;释放DS18B20 总线保持60us CLR C ;清存在信号 ORL C,P3.3

JC L0 ;存在吗?不存在则重新来 MOV R6,#80 L5:ORL C,P3.3 JC L3 DJNZ R6,L5 SJMP L0 L3:MOV R2,#240 L2:DJNZ R2,L2 RET

WRITE: ;向DS18B20 写操作命令子程序 CLR EA

MOV R3,#8 ;写入DS18B20 的bit 数,一个字节8 个bit WR1:SETB P3.3 MOV R4,#8

RRC A ;把一个字节data(A)分成8 个bit 环移给 C CLR P3.3 ;开始写入DS18B20 总线要处于复位(低)状态

30

浙江科技学院本科毕业设计(论文)

WR2:DJNZ R4,WR2 ;DS18B20 总线复位保持16us MOV P3.3,C ;写入一个bit MOV R4,#20

WR3:DJNZ R4,WR3 ;等待40us DJNZ R3,WR1 ;写入下一个bit SETB P3.3 ;重新释放DS18B20 总线 RET READ: CLR EA

MOV R6,#8 ;连续读8 个bit RE1:CLR P3.3 ;读前总线保持为低 MOV R4,#4 NOP

SETB P3.3 ;开始读总线释放 RE2:DJNZ R4,RE2 ;持续8us

MOV C,P3.3 ;从DS18B20 总线读得一个bit RRC A ;把读得的位值环移给 A MOV R5,#30

RE3:DJNZ R5,RE3 ;持续60us DJNZ R6,RE1 ;读下一个bit SETB P3.3 ;重新释放DS18B20 总线 RET END 注意事项:

DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:

(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温

31

浙江科技学院本科毕业设计(论文)

结果。

(2)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。

(3)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。

(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。

32

浙江科技学院本科毕业设计(论文)

4 DS18B20测温系统与PC上位机通讯

4.1 RS-232C介绍

RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。

RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态,在开始传送时,首先产生一起始位,起始位为一个宽度的逻辑“0”,紧随其后为所要传送的数据,所要传送的数据有最低位开始依此送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑“1”状态。

PC机一般使用8250或16550作为串行通讯的控制器,使用9针或25针的接插件将串行口的信号送出。该插座的信号定义如下: DB-25 DB-9 信号名称 2 3 4 5 6 7 8 3 2 7 8 6 5 1 TXD RXD RTS CTS DSR SG DCD DTR RI 方向 输出 输入 输出 输入 输入 - 输入 输出 输入 含 义 数据发送端 数据接收端 请求发送(计算机要求发送数据) 清除发送(MODEM准备接收数据) 数据设备准备就绪 信号地 数据载波检测 数据终端准备就绪(计算机) 响铃指示 20 4 22 9 以上信号在通讯过程之中可能会被全部或部分使用,最简单的通讯仅需TXD及RXD及SG即可完成,其他的握手信号可以做适当处理或直接悬空,至于是否可以悬空这视乎你的通讯软件。比如说,如果使用DOS所提供的BIOS通讯驱动程序,那么,这些握手信号则需要做如下处理,

33

浙江科技学院本科毕业设计(论文)

234因为BIOS的通讯驱动使用了这些信号。如果使用自己编写的串行驱动程序则可以完全不使用这些握手信号。 4.2 RS232硬件接口设计 +5C51ufVCCVS+VS-T1OUTT2OUTR1OUTR2OUT1626147129C61ufC7J11uf162738495C31ufU81345111013815C1+C1-C2+C2-T1INT2INR1INR2INGNDMAX232C41ufP3.1TXDP3.0RXD1110D Connector 9 图4.1 4.2.1 硬件说明 89S52 单片机通过串行通讯口与PC 机RS232 串口实现通信的硬件接口电路如图4.1所示。由于PC 系列微机串行口为RS232C 标准接口,与输入、输出均采用TTL 电平的89S52 单片机在接口规范上不一致,因此TTL电平到RS232 接口电平的转换采用MAXIM 公司的MAX232 标准RS232接口芯片,该芯片可以用单电压(+5V)实现RS232接口逻辑“1”(-3V~15V)和逻辑“0”(+3V~15V)的电平转换。采用简单的三线制串行通讯接口,无需硬件握手和软件握手。 34 浙江科技学院本科毕业设计(论文)

4.3 程序设计

4.3.1 单片机内通信程序的设计

;----二进制到ASCII码转换-------------- PASS: MOV A, #30H

ORL A_BIT, A LCALL TX_CHAR ORL B_BIT, A LCALL TX_CHAR ORL C_BIT, A LCALL TX_CHAR ORL D_BIT, A LCALL TX_CHAR RET

INIT_RS232: MOV SCON,#50H

MOV TMOD,#20H

MOV TL1,#0FDH MOV TH1,#0FDH SETB TR1 SETB TI

RET

TX_CHAR: JNB TI,$ CLR TI MOV SBUF, A

RET

;传送到PC上位机 T1工作方式2 35

;定时器

本文来源:https://www.bwwdw.com/article/qfd6.html

Top