基于DS18B20的多点温度检测系统设计.docx
- 文档编号:12694926
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:46
- 大小:757.89KB
基于DS18B20的多点温度检测系统设计.docx
《基于DS18B20的多点温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20的多点温度检测系统设计.docx(46页珍藏版)》请在冰豆网上搜索。
基于DS18B20的多点温度检测系统设计
绪论
1.1设计背景和意义
温度是一个反映物体冷热程度的物理量。
温度的检测和控制在当代日常生活和工农业生产工程中有着越来越广泛的应用,要求也越来越高[1]。
在冶金、化工等工业生产过程中,广泛使用的各种加热炉、反应炉等,都要求对温度进行严格控制。
在日常生活中,电烤箱、微波炉、电热水器等电器也需要进行温度检测与控制[2],而且现在越来越多的地方用到多点温度测量,比如冰箱的保鲜层和冷冻层是不同的温度,这就需要多点的测量和显示可以让用户直观的看到温度值,并根据需要调节冰箱的温度。
它还在其他领域有着广泛的应用,如:
消防电气的非破坏性温度检测,空调系统的温度检测等。
温度检测系统应用十分广阔[3]。
1.2国内外同类设计概况
目前多点温度检测系统在国内各行各业的应用已经十分广泛,但从国内生产的多点温度检测仪器来讲,发展水平仍比较落后,和德国、美国等发达国家相比有着很大差距。
采用51单片机来对温度进行检测和控制,不仅具有成本低廉、控制方便和灵活性大等优点,而且可以提高被控温度的技术指标,从而提高产品的质量和数量。
因此,单片机对温度的处理问题是一个工业生产中经常会遇到的问题[4]。
1.3本课题要解决的问题和方法
本文基于AT89C51单片机,由两片DS18B20温度传感器采集环境温度,两片DS18B20温度传感器采用单总线连接方式,统一连接于单片机的同一IO口,由LCD1602将采集的温度实时显示出来,当温度超过设定的温度值范围,单片机控制外围电路中的蜂鸣器产生报警,并且利用max232实现与上位机的通信。
因此主要电路包括:
单片机系统电路,温度采集电路,温度显示电路,上位机通信电路,报警电路等组成。
2系统总体设计
2.1系统方案的选择
该设计主要由温度测量,数据采集和数据处理部分组成,实现方案有很多种,下面将列出两种经常用到的实现方案。
2.1.1设计方案一
采用热敏电阻传感器。
随着环境温度的变化,热敏电阻的阻值也发生线性变化,电阻两端的电压也随着电阻的线性改变而发生相同的变化,用处理器采集电阻两端的电压,然后根据公式计算出当前的环境温度值。
数据采集部分则使用带有A/D通道的单片机或使用专业的A/D转换芯片进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,同时对温度进行相应的报警和控制[5]。
此方案的优点是工作温度范围非常宽,体积小,精确度高,但是它们也存在着输出电压小、抗干扰能力差的缺点,并且这种设计需要用到A/D转换电路,因此此类设备需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
2.1.2设计方案二
采用数字温度芯片DS18B20测量温度。
DS18B20是DALLAS公司生产的一线式数字温度传感器,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,稳定性好,被测温度用符号扩展的16位数字量方式串行输出,输出信号全数字化。
多个DS18B20可以接在一根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,便于单片机控制及处理,省去传统测温方法的很多外围电路。
且该芯片的性能比较稳定,线形较好,在0—100°C时,最大线性偏差小于1°C。
DS18B20采用了单总线的数据传输,在同一条总线上可以挂接任意多个DS18B20传感器,可以同时测量多个环境温度,同时也提高了单片机IO口的利用效率。
由DS18B20和单片机AT89C51构成的温度测量装置,它直接输出温度的数字信号,测温系统的结构比较简单,体积也不大[6]。
采用51单片机控制,软件编程的自由度很大,可通过C语言编程实现各种各样的算术算法和逻辑控制,而且硬件实现简单,安装方便。
另外51单片机在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用AT89C51单片机芯片控制多个温度传感器DS18B20进行多点实时温度检测并显示,能够实现快速测量多个地点的环境温度并可以根据需要设定上下限报警温度进行报警和相应的控制处理[7]。
从以上两种方案,容易看出方案二的测温装置电路更简单、实现更方便、程序设计也更容易实现,故本次设计采用了方案二。
2.2系统的构成
本设计是以51单片机为核心设计的一种多点数字温度报警系统,系统整体硬件电路包括单片机晶振电路,复位电路,电源电路,2路温度采集电路,温度显示电路,报警电路,上位机通信电路等组成。
系统框图如图2.1所示:
图2.1硬件电路系统框图
单元模块功能如下:
系统的核心器件是51单片机,它是整个系统的核心,由它来控制协调各外围电路模块的正常工作,本设计采用较为常见的AT89C51单片机。
本设计的单片机的电源电路设计了两种供电方式,一种是采用计算机的USB口,单片机的工作电压为5V,计算机的USB口恰好能直接提供5V的直流电压,因此采用计算机的USB口供电较为简单。
第二种供电方式采用三端固定式稳压模块7805,7805芯片外接12V电池组或稳压电源,12V电压经过7805能输出5V电压[8]。
温度检测电路由2路DS18B20构成,实现多点温度检测。
DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它内部含有AD转换芯片,,可编程为9位~12位A/D转换精度,能直接读出被测温度,而且DS18B20采用单总线的数据传输,可以在一条总线上挂接任意多个DS18B20,每个DS18B20芯片拥有唯一的序列号,只需在程序中通过访问不同的序列号,就可以通过一条总线控制全部的DS18B20芯片。
提高了单片机I/O口的利用率,电路也十分简单。
报警功能由蜂鸣器完成,在程序中预先设定了报警界限,即当温度超出或低于所设定的温度范围时,将单片机的I/O口拉高,使蜂鸣器发出警报,另外为了区分不同的DS18B20温度不再界限内,在单片的两个I/O分别接了不同颜色的发光二极管,以达到区分的目的。
显示模块则由LCD1602显示,LCD1602可以显示两行字符,所以上下两行分别显示不同两点的温度。
与上位机通信模块采用MAX232芯片,MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。
2.3系统的工作过程
系统由DS18B20采集温度后进行转换再把温度数据传递给单片机,单片机控制LCD1602进行同步温度显示,同时对温度值进行处理,当温度高于或低于设定值后,由蜂鸣器和发光二极管产生报警。
3系统的硬件设计
3.1单片机最小系统的设计
本系统采用AT89C51为主控器,兼容所有89C51单片机。
3.1.189C51单片机简介
一.89C51单片机的片内结构
89C51单片机的片内结构如图3.1所示。
它把那些作为控制应用所必需的基本功能部件都集成在一个集成电路芯片上。
它由如下功能部件组成[9]:
(1)微处理器(CPU)
(2)数据存储器(RAM)
(3)程序存储器(4KFlashROM)
(4)4个8位可编程并行I/O口(P0口.P1口、P2口、P3口)
(5)1个全双工串行口
(6)2个16位定时器/计数器
(7)中断系统
(8)特殊功能寄存器(SFR)
图3.189C51单片机片内结构
1CPU
89C51单片机中有1个8位CPU,与通用的CPU基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的位处理功能。
2数据存储器(RAM)
片内为256B,片外最多可扩展64KB。
片内128B的RAM以高速RAM的形式集成在单片机内,可以加快单片机运行的速度,而且这种结构的RAM还可以降低功耗。
3程序存储器(ROM)
程序存储器用来存储程序。
89C51片内集成有4KB的Flash存储器,片外可外扩至64KB。
4中断系统
5个中断源,2级中断优先权。
5定时器/计数器
片内有3个16位的定时器/计数器,具有4种工作方式。
6串行口
1个全双工的串行口,具有4中工作方式。
可进行串行通信,扩展并行I/O,甚至于多个单片机相连构成多级系统,从而使单片机的应用更广。
7P1口、P2口、P3口、P0口
4个8位并行I/O口。
8特殊功能寄存器(SFR)
共有21个特殊功能寄存器,用于CPU对片内各功能部件进行管理、控制和监视。
特殊功能寄存器实际上是片内各个功能部件的控制寄存器和状态寄存器,这些特殊功能寄存器映射在片内RAM区80H~FFH的地址区间内。
二、AT89C51单片机引脚功能说明
如图3.2所示:
图3.2AT89C51引脚图
(1)电源引脚
VCC(40脚):
接+5V电源
GND(20脚):
接地。
(2)时钟引脚
XTAL1(19脚):
片内振荡器反相放大器和时钟发生器电路的输入端。
XTAL2(18脚):
片内振荡器反相放大器的输出端。
(3)控制引脚
RST(9脚):
复位信号输入端,高电平有效。
单片机运行时,在此引脚加上持续时间大于2个机器周期的高电平时,就可以对单片机完成复位操作。
/VPP(31脚):
当
引脚为高电平时,89C51单片机读片内程序存储器,但在PC值超过8KB时将自动转向外部程序存储器中的程序。
为低电平时,对程序存储器的读操作只先顶着外部程序存储器。
(4)I/O口引脚
P0口:
8位,漏极开路的双向I/O口。
当89C51扩展外部存储器及I/O借口芯片时,P0口作为地址总线低8位及数据总线的分时复用端口。
作为通用I/O口时需加上拉电阻,作为普通I/O口输入时应先向端口的输出锁存器写入1。
P1口:
8位,准双向I/O口,具有内部上拉电阻。
作为普通I/O输入时,先向端口输出锁存器写入1。
P2口:
8位,准双向I/O口,具有内部上拉电阻,作为普通I/O输入时同上。
P3口:
8位,准双向I/O口,具有内部上拉电阻,作为普通I/O输入时同上,P3口还可以提供第二功能,其第二功能定义如表3-1所示:
表3.1P3口第二功能
引脚
第二功能
说明
P3.0
RXD
串行数据输入口
P3.1
TXD
串行数据输出口
P3.2
外部中断0输入
P3.3
外部中断1输入
P3.4
T0
定时器0外部技术输入
P3.5
T1
定时器1外部计数输入
P3.6
外部数据存储器写选通输出
P3.7
外部数据存储器读选通输出
3.1.2单片机最小系统
整个系统的核心部件就是单片机,搭建一个稳定的单片机最小系统对于系统的正常工作是很重要的,这里单片机的最小系统包括晶振电路、复位电路。
具体如图3.3所示
图3.3单片机最小系统
其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能为系统提供一些控制信号。
时钟电路用于产生单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。
单片机内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。
电路中的微调电容通常选择为22pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。
本设计的晶体振荡频率采用11.0592MHz[10]。
单片机的复位是由外部的复位电路来实现,采用最简单的上电复位电路。
当上电时,复位电路通过电容给RST一个高电平,随着VCC对电容充电的进行,高电平信号逐渐衰弱。
高电平维持在2个机器周期以上,则CPU就响应并将系统复位。
3.1.3电源电路
要使整个系统正常的工作,电源电路是必不可少的,电源电路要提供稳定的+5V电压,给整个多点测温系统供电。
电源电路的实现方式如图3.4所示
图3.4电源电路
在这里设计了两种供电方式,一种是利用计算机的USB接口,USB接口恰好能直接输出5V电压,能够满足单片机和其他电路的供电需求,这种方式相对来说简单但是不是很方便,为了使设计更方便完美,增加了可手持性,即设计了第二种电源电路,如图3.4的上部分所示,该电路主要由二极管和三段固定的稳压器件7805组成,电源输入端可以接7—30v的电压适配器或者是电池组,一般以12V较为常见。
7805有三个端子:
输入端IN,输出端OUT和公共端COM。
输入端接整流滤波电路,输出端接负载,公共端接输入、输出的公共连接点。
其内部由采样、基准、放大、调整和保护等电路组成。
保护电路具有过流、过热及短路保护功能。
正常工作时,要求最低输入电压比输出电压3-4V,还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。
在图中,1uF电容C8为输入稳定电容,电容C9为输出稳定电容,可以起到改善负载的瞬态响应,也为1uF。
同时在电路中加有开关还发光二极管做指示灯,也使整个设计更完善[11]。
3.2温度检测电路及DS18B20测温原理
3.2.1DS18B20介绍
DS18B20引脚和实物如图3-5所示。
图3-5DS18B20的管脚排列和实物
DALLAS半导体公司的单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积小、适用于多种场合。
其温度测量范围为-55~+125°C,可编程为9位~12位转换精度,测温分辨率可达0.0625°C。
被测温度用符号扩展的16位数字量方式串行输出。
DS18B20是世界上第一片支持“一线总线”接口的温度传感器,即采用单条信号线,既可以传输时钟,又可以传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
而且多个DS18B20可以串联到一条数据线上,单片机只需一根端口线就能与诸多DS18B20通信,提高了I/O口的利用率,可节省大量的引线和逻辑电路[12]。
3.2.2DS18B20特性
(1)适应电压范围宽:
3.0V~5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(4)测温范围-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。
(5)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(6)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。
(7)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有很强的抗干扰纠错能力。
(8)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作[13]。
3.2.3DS18B20内部结构
(1)DS18B20的内部结构如图3-6所示。
图3-6DS18B20内部结构图
DS18B20有4个主要的数据部件:
(1)64位激光ROM。
64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
(2)温度灵敏元件。
(3)非易失性温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
(4)配置寄存器。
配置寄存器为高速暂存存储器中的第五个字节。
DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3-7所示。
TM
R1
R0
1
1
1
1
1
MSB
图3-7DS18B20配置寄存器结构图
LSB
其中,TM:
测试模式标志位,出厂时被写入0,不能改变;R0、R1:
温度计分辨率设置位,其对应四种分辨率如表3-2所列,出厂时R0、R1置为缺省值:
R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表3-2配置寄存器与分辨率关系表
R0
R1
温度计分辨率/bit
最大转换时间/us
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
(2)高速暂存存储器
高速暂存存储器由9个字节组成,其分配如下图所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图3-8所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
温度低位
温度高位
TH
TL
配置
保留
保留
保留
8位CRC
LSB
MSB
图3-8DS18B20存储器映像图
DS18B20温度数据和典型对应的温度值如表3-3,表3-4所示:
表3-3DS18B20温度数据表:
23
22
21
20
2-1
2-2
2-3
2-4
MSB
LSB
S
S
S
S
S
26
25
24
表3-4典型对应的温度值:
温度/℃
二进制表示
十六进制表示
+125
+25.0625
+10.125
+0.5
0
-0.5
-10.125
-25.0625
-55
0000011111010000
0000000110010001
0000000010100010
0000000000001000
0000000000000000
1111111111111000
1111111101011110
1111111001101111
1111110010010000
07D0H
0191H
00A2H
0008H
0000H
FFF8H
FF5EH
FE6FH
FC90H
3.2.4DS18B20电路设计
DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。
硬件连接电路原理图如图3-9:
图3-9DS18B20硬件连接电路
本系统为多点温度测试。
DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实践应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。
另外单总线长度也不宜超过80M,否则也会影响到数据的传输[14]。
对DS18B20的设计,需要注意以下问题
(1)对硬件结构简单的单线数字温度传感器DS18B20进行操作,需要用较为复杂的程序完成。
编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。
尤其在使用DS18B20的高测温分辨力时,对时序及电气特性参数要求更高。
(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20序列号和自动排序,以减少调试和维护工作量。
(3)测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
DS18B20在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。
若VCC脱开未接,传感器只送85.0℃的温度值。
(4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。
另外还应根据实际情况选择其接线拓扑结构。
本设计中,两片DS18B20芯片串接在单片机的P2.0口,如图3-10所示:
图3-10DS18B20连接图
3.3温度报警电路
温度检测的更重要的意义是预警,即当温度超过安全界限时,能够提醒人们,以提醒人们采取相应的措施。
本设计的温度报警主要由蜂鸣器和发光二极管构成,蜂鸣器采用NPN三极管驱动。
由于本设计需要测设两点的温度,所以,用不同颜色的发光二极管以示区分。
即当温度高于或低于设定的温度值时,蜂鸣器能够发生警报,同时,相对应的发光二极管发生光亮。
蜂鸣器接在单片机的P1.0,发光二极管分别接在单片机的P1.6口和P1.7口,设计连接图如图3-11所示:
图3-11温度报警电路
3.4温度显示电路
显示部分可以用液晶显示和数码管显示,因为要同时显示两点温度,这里采用的液晶显示LCD1602。
LCD1602它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
它的显示的内容为16x2,即可以显示两行,每行16个字符。
1602采用标准的16脚接口,其引脚图如图3-12所示[15,16]:
图3-12LCD1602引脚图
其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
在本设计中,LCD1602的数据/命令端RS管脚接单片机的P2.4口,读写端RW管脚接单片机的P2.5口,使能端EN接单片机的P2.6端,数据段D0-D7接在单片机的P0口,具体电路如图3-13所示:
图3-13LCD1602电路连接图
在本电路中,LCD1602的数据段D0-D7连接在单片机的P0口,因为P0口是8位漏极开路的双向I/O口,内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供。
简单一点说就是它要驱动LCD显示屏显示就必须要有电源驱动,否则亮不了,而恰好P0口没有电源,所以就要外接电源,因此在PO口接上了排阻P1。
在这里,LCD1602的V0管脚接了4.7KΩ的电阻,液晶可以达到一个相对合适的亮度。
3.5串口通信电路
AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠[17]。
具体电路如图3-14:
图3-14串口电路电路连接图
我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:
第5脚的GND、第2脚的RXD、第3脚的TXD。
这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。
通信线采用交叉接法,即两者信号线对应成为R—T,T—R。
具体连接电路如图3-15:
图3-15单片机与PC机串口连接图
3.6整体电路
见附件一(电路原理图)
4软件设计
4.1概述
整个系统的功能是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS18B20 多点 温度 检测 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)