文档库 最新最全的文档下载
当前位置:文档库 › 多点温度检测系统

多点温度检测系统

多点温度检测系统
多点温度检测系统

辽宁工业大学

电子综合设计与制作(论文)

题目:多点温度检测系统

院(系):电子与信息工程学院

专业班级:电子092班

学号: 090404051

学生姓名:胡贺强

指导教师:

教师职称:

起止时间:2012.12.29—2013.1.11

课程设计(论文)任务及评语

院(系):电子与信息工程学院教研室:电子信息教研室

注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算

摘要

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。本课题以AT89C51单片机系统为核心,能对多点的温度进行实时巡检。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。

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

目录

第1章方案论证比较与选择 (1)

1.1引言 (1)

1.2方案论证 (1)

1.3方案的比较与选择 (2)

1.4方案的阐述与论证 (2)

第2章硬件电路设计 (4)

2.1温度传感器 (4)

2.2单片机系统设计 (8)

2.3显示电路设计 (10)

2.4键盘电路设计 (11)

2.5报警电路设计 (13)

2.6通信模块设计 (13)

第3章软件设计 (14)

3.1系统主程序流程图 (14)

3.2传感器程序设计 (15)

3.3显示程序设计 (17)

3.4键盘程序设计 (18)

3.5报警程序设计 (20)

3.6通信模块程序设计 (20)

第4章设计总结 (21)

参考文献 (22)

附录Ⅰ:元器件清单 (23)

附录Ⅱ:主电路图 (24)

附录Ⅲ:程序清单 (25)

第1章方案论证比较与选择

1.1引言

温度测量的方案有很多种,可以采用传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。对于控制系统可以采用计算机、单片机等。

1.2方案论证

设计方案一

采用模拟分立元件,如电容、电感或晶体管等非线形元件,实现多点温度的测量及显示,该方案设计电路简单易懂,操作简单,且价格便宜,但采用分立元件分散性大,不便于集成数字化,而且测量误差大。

设计方案二

本方案采用AT89C51单片机为核心,通过温度传感器AD590采集温度信号,经信号放大器放大后,送到A/D转换芯片,最终经单片机检测处理温度信号。

采用该方案技术已经成熟,AD转换电路设计较烦琐,而且使用AD590进行温度检测必须对冷端进行补偿,以减小误差。

设计方案三

本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用RS-232串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控PC进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制。

下位机采用的是单片机基于数字温度传感器DS18B20的系统。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。系统框图如下

图1.1 系统框图

1.3方案的比较与选择

基于数字式温度计DS18B20的温度测量仪的硬软件开发过程,DS18B20将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理电路。该仪器电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足。相对与方案1,在功能、性能、可操作性等方面都有较大的提升。相对与方案2,硬件电路简单,易于操作,具有更高的性价比,更大的市场。所以我采用方案3完成本设计。

1.4方案的阐述与论证

方案三以DS18B20为传感器、AT89C51单片机为控制核心组成多点温度测试系统,该系统包括传感器电路、键盘与显示电路、串口通信电路等组成部。采用美国Dallas 半导体公司推出的数字温度传感器DS18B20,属于新一代适配微处理器的智能温度传感器。它具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信。全部传感元件及转换电路集成在形如一只三极管的集要求通过简单的编程实现9~12位的数字值读数方式。其可以分别93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625℃,而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。

它有如下的性能特点:

1)独特的单线接口,既可通过串行口线,也可通过其它I/O口线与微机接口,无需变换其它电路,直接输出被测温度值;

2)多点能力使分布式温度检测应用得以简化;

3)不需要外部元件;

4) 既可用数据线供电,也可采用外部电源供电;

5)不需备份电源;

6) 测量范围为-55~+125℃,固有测温分辨率为0.5℃;

7)通过编程可实现9~12位的数字读数方式;

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

9)警告搜索命令能识别和寻址温度在编定的极限之外的器件(温度警告情况);

10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统。

以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。

根据DS18B20以上的特点我选用方案三来实现本课题。

第2章硬件电路设计

2.1温度传感器

1.温度传感器选用细则

现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的题。当传感器确定之后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。

2.温度传感器DS18B20

DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。其可以分别93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625℃,而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。

DS18B20的性能特点

单线数字化智能集成温度的传感器,其特点是:

DSI8B20可将被测温度直接转换成计算机能识别的数字信号输出,温度值不需要经电桥电路先获取电压模拟量,再经信号放大和A/D转换成数字信号,解决了传统温度传感器存在的因参数不一致性,在更换传感器时会因放大器零漂而必须对电路进行重新调试的问题,使用方便.

DS18B20能提供9到12位温度读数,精度高,且其信息传输只需1根信号线,与计算机接口十分简便,读写及温度变换的功率来自于数据线而不需额外的电源.每一个DS18B20都有一个惟一的序列号,这就允许多个DS18B20连接到同一总线上.尤其适合于多点温度检测系统.

负压特性:当电源极性接反时,DS18B20虽然不能正常工作,但不会因发热而烧毁正是由于具有以上特点,DS18B20在解决各种误差、可靠性和实现系统优化等方面与传统各种温度传感器相比,有无可比拟的优越性,因而广泛应用于过程控制、环境控制、建筑物、机器设备中的温度检测。

DS18B20与单片机的典型接口设计

DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。Dsl8B20与单片机的硬件连接有两种方法:一是Vcc接外部电源,GND接地,I/0与单片机的I/0线相连;二是用寄生电源供电,此时,~UDD和GND接地,I/0接单片机I/0。无论是哪种供电方式,I/0口线都要接4.7k Q左右的上拉电阻。图4给出了DSl8B20与微处理器的典型连接。

DS18B20寄生电源供电方式:

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

独特的寄生电源方式有三个好处:进行远距离测温时,无需本地电源;可以在没有常规电源的条件下读取ROM;电路更加简洁,仅用一根I/O口实现测温。

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

因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。

(1)DS18B20寄生电源强上拉供电方式:

为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O 线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。

(2)DS18B20的外部电源供电方式:

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

(3)DS18B20 的内部结构:

它主要包括寄生电源、温度传感器、64 位激光ROM 单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH 和TL 触发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。64位光刻ROM 的排列是:开始8位是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻R0M 的作用是使每一个DS18B20都各不相同,这可实现一根总线上挂接多个DS18B20的目的。暂存存储器包含了8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位。第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节

(4)DS18B20 的测温原理:

DS1820测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,

用于产生固定频率的脉冲信号送给计数器

1。

高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,DS1 8B20测量温度原理停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

在正常测温情况下,DS18B20 的测温分辨力为0.5℃,可采用下述方法获得高分辨率的温度测量结果:首先用DS18B20 提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分TZ,然后再用BEH 指令取计数器1 的计数剩余值CS 和每度计数值CD。考虑到DS18B20测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度TS 可用下式计算:TS=(TZ-0.25℃) +(CD-CS)/CD

(5)警告信号:

DS18B20 完成温度转换后,就把测得的温度值与TH、TL 作比较。若T>TH 或T

(6)CRC 的产生:

在64 位ROM 的最高有效字节中存有循环冗余校验码(CRC)。主机根据ROM 的前56 位来计算CRC 值,并和存入DS18B20 中的CRC 值作比较,以判断主机收到的ROM 数据是否正确。CRC 的函数表达式为:CRC=X8+X5+X4+1。此外,DS18B20 尚需依上式为暂存器中的数据来产生一个8位CRC 送给主机,以确保暂存器数据传送无误。在本课题中采用四个数字式温度传感器DS18B20与单片机89C51连接如下图

图2.1 温度传感器的连接

(7) DS1820使用中注意事项

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

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

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

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

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

2.2单片机系统设计

复位电路:无论哪种单片机,都会涉及到复位电路。如果复位电路不可靠,在工作中就有可能出现“死机”,“程序走飞”等现象。所以,一个单片机复位电路的好坏,直接影响到整个系统工作的可靠性。复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当89c51单片机的复位引脚RST 出现5ms以上的高电平时,单片机就完成了复位操作,如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有上电和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。常用的上电复位且开关复位电路如图 3.6所示,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。单片机的复位操作使单片机进入初始化过程,其中包括是程序计数器

PC=0000H,P0-P3=FFH,SP=07H,其他寄存器处于零,程序从0000H地址单元开始执行,单片机复位后不改变片内RAM区中的内容。

时钟电路:89c51单片机的时钟信号通常用内部振荡和外部振荡方式。在引

图2.2 复位电路

脚XTAL1和XTAX2由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ或24MHZ。内部振荡器方式如下。如图3.7,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为5-30PF。内部振荡方式所得的时钟信号比较稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适于用于用来使单片机的时钟与外部信号保持一致。

图2.3 时钟电路

串口:串行通信是CPU与外界交换的一种基本方式。单片机运用于数据采集或工业控制时,往往作为前端机安装在工作现场,远离主机,现场数据采用串行通信方式主机并进行处理,以降低通信成本,提高通信可靠性。51系列单片机自身有全双工的异步通信接口,通过软件编程,它可以作为通用异步接受和发送器使用,也可作为同步移位寄存器。

89c51单片机串口主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器组成,其内部还有一个串行控制寄存器SCON和一个波特率发生器。接受缓冲器与发送缓冲器占用同一个地址99H,其名称亦同样为SBUF。CPU写SBUF,一方面修改发送寄存器,同时启动数据串行发送;读SBUF,就是读接受寄存器,完成数据的接受。特殊功能寄存器SCON用以存放串行口的控制和状态信息。根据对其写的控制字决定工作方式,从而决定波特率发生器的时钟是来自系统时钟还是来自定时器T1。特殊功能寄存器PCON 的最高位SMOD为串行口波特率的倍增控制位。

89c51单片机的串行口正是通过对上述专用寄存器的设置,检测与读取来管理串行通信。在进行通信时,外界的串行数据是通过引脚RXD输入的。输入数据先逐位进入输入移位寄存器,在送入接受SBUF。在此采用了双缓冲结构,为了避免在接受到第二帧数据之前,CPU未及时响应接受器的前一帧的中断请求而把前一帧数据读走,造成两帧数据重叠的错误。对于发送器,因为发送时CPU是主动的,不会产生写重叠问题,不需要双缓冲器结构,为了保持最大传送速率,仅用了SBUF一个缓冲器。

I/O口:计算机对外设进行数据操作时,外设的数据是不能直接连到CPU的数据线上的,必须经过接口。这是由于CPU的数据线是外设或存储器和CPU进行数据传输的唯一公共通道,为了使数据线的使用对象不产生使用总线的冲突,以及协调快速的CPU 和慢速的外设,CPU和外设之间必须有接口电路,接口起着缓冲、锁存数据、地址译码、信息格式转换、传递状态、发布命令等功能,I/O接口有并行接口、串行接口、定时/计数器、A/D、D/A等,根据外设的不同情况的应用要求,选择不同的接口。单片机的I/0 口一般是双向的.既可以做输入.也可以做输出。以5 1系列为例,其P0、P 1、P2、P3均为双向口,且可位操作。

89c51单片机内部有P0、P1、P2、P3四个8位双向I/O口,外设可直接连接于这几个接口上,而无须另加接口芯片。P0-P3的每个端口可以按字节输入或输出,也可以按位进行输入或输出,共32根口线,用作控制十分方便。P0口为三态双向口,能带8个TTL电路。P1、P2、P3口为准双向口,负载能力为4个TTL电路,如果外设需要的驱动电流大,可加接驱动器。

相关文档