多路温度采集系统设计Word格式.docx

上传人:b****6 文档编号:19045205 上传时间:2023-01-03 格式:DOCX 页数:34 大小:290.22KB
下载 相关 举报
多路温度采集系统设计Word格式.docx_第1页
第1页 / 共34页
多路温度采集系统设计Word格式.docx_第2页
第2页 / 共34页
多路温度采集系统设计Word格式.docx_第3页
第3页 / 共34页
多路温度采集系统设计Word格式.docx_第4页
第4页 / 共34页
多路温度采集系统设计Word格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

多路温度采集系统设计Word格式.docx

《多路温度采集系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《多路温度采集系统设计Word格式.docx(34页珍藏版)》请在冰豆网上搜索。

多路温度采集系统设计Word格式.docx

(AT89C51)

图1数字式多路温度采集系统结构框图

采用智能温度传感器(DS18B20)采集环境温度并进行简单的模数转换;

单片机(AT89C51)执行程序对温度传感器传输的数据进行进一步的分析处理,转换成环境对应的温度值,通过I/O口输出到数码显示管(LED)显示;

由键盘输入控制选择某采集电路检测温度及显示;

报警电路对设定的最高最低报警温度进行监控报警。

2.1温度采集电路设计

温度采样处理电路由温度传感器、放大电路、A/D转换电路等组成。

采用分块结构的温度采样处理电路,其硬件电路结构复杂,也不便于数据的处理。

采用智能温度传感器采样处理电路,能够方便的进行温度的采集及简单的数据处理。

并且可以达到设计的技术指标要求。

本系统选择智能温度传感器DS18B20作为温度采集电路的核心器件。

由DS18B20及辅助电路构成温度采集电路。

2.1.1DS18B20简介

(1)DS18B20的性能特点

DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等温度传感器相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以在93.75ms至750ms内完成相应9位至12位的数字量转换。

它的测温精度可达到0.0625℃/LSB。

它的测温范围是-55~+125℃。

从DS18B20读出或写入信息仅需要一根口线,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,无需额外电源。

因而选用DS18B20是恰当的。

(2)DS18B20的外形和内部结构

DS18B20采用3脚PR-35封装,其外形和内部结构框图分别如图2、图3所示。

图2DS18B20外形结构图3DS18B20内部结构

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

64位光刻ROM的位结构图如图4所示。

64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。

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

图464位ROM结构

DS18B20温度传感器的内部存储器包括一个非易失性的可电擦除E2PRAM和一个高速暂存RAM。

E2PRAM包括存放高温度和低温度的触发器TH、TL和结构寄存器。

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

高速暂存RAM的结构为9字节的存储器,结构图如图5所示。

头2个字节包含测得的温度信息。

第3、4字节是TH和TL的拷贝,每次上电复位时被刷新。

第5字节为配置寄存器,用于确定温度值的数字转换分辨率。

第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

第5字节配置寄存器各位的定义如图6所示;

低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式;

R1和R0决定温度转换的精度位数(即设置分辨率),定义方法见表1。

图5高速缓存RAM结构

图6配置寄存器

表1DS18B20分辨率的定义规定

R1

R0

分辨率/位

温度最大转换时间/ns

1

9

10

11

12

93.75

187.5

375

750

9位分辨率时,精度为0.5℃/LSB;

10位分辨率时,精度为0.25℃/LSB;

11位分辨率时,精度为0.125℃/LSB;

12位分辨率时,精度为0.0625℃/LSB。

转换精度越高所需转换时间越长。

为了达到本系统的技术指标,选择12位分辨率。

(3)DS18B20供电方式

外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。

在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证测量精度。

所以本系统采用外部电源供电方式。

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

外部电源供电方式如图7所示。

在外部供电方式下,DS18B20的GND引脚必须接地,不能悬空,否则不能转换温度,读取的温度总是85℃。

图7DS18B20外部电源供电

2.1.2温度采集电路结构

温度采集电路结构如图8所示。

图中给出了2路温度采集电路,2只智能温度传感器DS18B20的信号输出端都连接到单片机的P1.7端,电阻R6作为上拉电阻。

如果需要增加,可以在P1.7端再连接更多的智能温度传感器DS18B20。

工作时,由程序控制读取某智能温度传感器DS18B20采集的温度数据,送单片机处理。

图8多点温度采集电路

2.2单片机控制电路设计

单片机控制电路核心是单片机芯片,其加上工作基本电路,就可以展开控制工作。

2.2.1单片机芯片选择

MCS8031和AT89C51[2]都具有4个8位I/O接口,但MCS8031没有内部程序存储器,需要外接,增加了电路的复杂性;

AT89C2051和AT89C51都具有FlashROM,可以省去外接程序存储器;

但AT89C2051接口少,不利于功能扩展;

故选用AT89C51。

AT89C51单片机内部结构及主要性能特点:

40个引脚,双列直插式封装;

有4个8位I/O接口;

有全双工增强型UART,可编程串行通信;

2个16位定时/计数器;

5个中断源,2个中断优先级;

有片内时钟振荡器(全静态工作方式,0~24MHz);

有128字节内部RAM,4KBFlashROM(可以擦除1000次以上,数据保存10年);

电源控制模式灵活(时钟可停止和恢复,空闲模式,掉电模式)。

2.2.2AT89C51单片机工作基本电路设计

AT89C51单片机正常工作,必须连接基本电路。

基本电路包括晶振电路[3]和复位电路[4]。

(1)晶振电路

单片机的时钟信号通常有两种产生方式:

一是内部时钟方式,二是外部时钟方式。

内部时钟方式是利用单片机内部的振荡电路产生时钟信号。

外部时钟方式是把外部已有的时钟信号引入到单片机内。

本设计采用内部时钟方式,电路如图9中所示。

在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。

C1和C2可以稳定振荡频率,并使快速起振。

本电路选用晶振12MHz,C1=C2=30pF。

(2)复位电路

复位是使单片机处于某种确定的初始状态。

单片机工作从复位开始。

在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。

复位操作有两种基本方式:

一种是上电复位,另一种是上电与按键均有效的复位。

本设计采用后一种复位电路。

电路如图9中所示。

当RST获得高电平,随着电容C3的充电,RST引脚的高电平将逐渐下降。

若该高电平能保持足够2个机器周期,就可以实现复位操作。

选择C3=10µ

F,R1=10KΩ。

综上所述,单片机控制电路如图9所示。

图9单片机控制电路

2.3输入控制电路设计

输入控制电路由按键及其接口构成,键盘是单片机最简单的输入设备。

常用键盘分为独立式键盘和矩阵式键盘。

本系统的输入控制简单,采用独立式键盘及接口电路[5]。

输入电路由2个按钮开关、2个10欧的限流电阻组成;

键扫描识别采用软件查询的方法。

电路如图10所示,各键功能如表2所示。

图10按键输入控制电路

表2各键功能

按键

键名

功能

S1

第一路温度

按键按下,LED数码显示管显示第一路温度。

S2

第二路温度

按键按下,LED数码显示管显示第二路温度。

2.4显示电路设计

显示电路采用LED数码管显示。

LED数码显示管有静态显示方式和动态显示方式,本系统采用串行输出[6]的静态显示方式。

利用4片串转并芯片74LS164将控制器输出的串行数据转换成并行数据输出,用来驱动4位LED数码显示管显示数据。

2.4.1LED数码显示管静态显示工作原理

LED显示器工作于静态显示方式时,各位的阴极(或阳极)选择线连接在一起并接地(或+5V);

每位的段码线分别与1个8位的锁存器输出连接。

各LED显示某一字符时,相应段的发光二极管恒定地导通或截止,直到送入另一个字符的段码为止。

静态显示可以得到较高的显示亮度。

静态显示有并行输出和串行输出两种方式。

并行输出显示的十进制位数多时,需要并行I/O接口芯片的数量较多。

串行输出可以大大节省单片机的内部资源。

2.4.2显示电路结构

显示电路由单片机AT89C51的P3.0端作数据输出,连接到低位74LS164的数据输入引脚端,其余3片74LS164的数据输入端分别接到它前面一位74LS164的数据输出端的最高位引脚端。

单片机AT89C51的P3.1、P1.4端分别接到一个与门电路的输入端,与门电路的输出端分别与每片74LS164的输出允许控制端相连接。

每片74LS164的输出端分别连接到一个数码显示管。

显示电路结构图如图11所示。

图11显示电路图

2.4.3显示电路工作过程

AT89C51单片机工作在串行口方式0下(移位寄存器方式),P3.0(RXD)为数据输出端,P3.1(TXD)为移位脉冲输出端,P1.4为74LS164允许输出控制端。

串行口发送缓冲区的数据在移位脉冲的作用下,一位一位地从P3.0口移入到74LS164中,并在控制信号的控制作用下,通过LED数码显示管显示。

2.5报警控制电路设计

报警控制电路采用压电式蜂鸣器作发声体,用三极管对蜂鸣器发声进行控制。

2.5.1报警控制电路结构

报警控制电路由单片机AT89C51的P3.7端作输出,通过一个限流电阻与三极管C945的基极相连接。

三极管C945集电极连接压电蜂鸣器(BUZZER)的一端。

压电蜂鸣器的另一端连接电源。

报警控制电路如图12所示。

图12报警工作电路

2.5.2报警控制电路工作过程

(1)压电蜂鸣器工作原理

压电蜂鸣器以压电陶瓷制作而成。

压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。

当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,电流的变化与压力的变化密切相关。

反之,当在压电陶瓷上加上一定频率的电压,就会在内部产生一定频率的电流,从而就会引起压电陶瓷微小形变,这一形变带动空气发生振动。

如果频率适当,就产生蜂鸣声,可以被人耳所听见。

(2)报警控制电路工作过程

报警控制信号由单片机AT89C51的P3.7端输出,通过一个限流电阻加到三极管C945的基极。

当P3.7端的输出信号发生变化时,则三极管C945将交替的工作于截止、饱和状态,形成高低电平的波,从而使压电蜂鸣器发出声音。

2.6电源电路设计

电源电路[7]由变压器、单相桥式整流电路、滤波电路和三端稳压电路构成。

其电路图如图13所示,图中“output”端输出为+5V。

图13电源电路

电子设备中常使用输出电压固定的集成稳压器。

三端式稳压器只有输入、输出和公共引出端,由启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等部分组成。

在本系统中,要求电源电压为+5V,由于三端式稳压器输出电压固定,故在设计中选择三端式稳压器L7805。

三端式稳压器的输入与输出之间电压差为2~3V,整流桥的输出电压是输入电压(有效值)的1.2倍,根据有效值与峰-峰值的关系选择220V/6V的变压器。

由于L7805的最大输出电流为1A,电压为稳定的+5V,输出功率为5W,加上三端式稳压器L7805的消耗,故本系统选择降压比为220V/6V、功率为10W的变压器。

图13中C4、C5为低频滤波电容,根据经验选择电解电容,其容值分别为C4=220μF、C5=47μF;

C6、C7为高频滤波电容,均选0.1μF的无极性电容。

发光二极管用于指示电源是否接通,选择FG1112004发光二极管,根据FG1112004正向电流为5mA及管压降为+2V,选择限流电阻R5=680Ω。

2.7数字式多路温度采集系统元件清单

数字式多路温度采集系统元件清单,见附录

(1)。

2.8数字式多路温度采集系统电路图

数字式多路温度采集系统原理图,见附录

(2)(图14)

数字式多路温度采集系统印刷电路板图,见附录(3)(图15)

3数字式多路温度采集系统程序设计

3.1主程序设计

主程序[8]主要功能是控制调用子程序,实现温度的实时显示、读出并处理DS18B20的测量温度值(温度测量每1s进行一次)。

其程序流程图如图16所示。

图16数字式多路温度采集系统主程序流程图

3.2子程序设计

3.2.1DS18B20的通信协议

根据DS18B20的通讯协议[7],主机(单片机AT98C51)控制DS18B20完成温度转换必须经过三个步骤:

每一次读写之前都要对DS18B20进行初始化操作,初始化成功后发送一条存储器操作命令(ROM指令),最后处理数据(发送RAM指令),这样才能对DS18B20进行预定的操作。

所用各ROM、RAM操作指令分别如表3、表4所示。

表3ROM指令表

指令

约定代码

读ROM

33H

读DS18B20温度传感器ROM中的编码(即64位地址)

符合ROM

55H

发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写做准备.

搜索ROM

0F0H

用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。

为操作各器件作好准备。

跳过ROM

0CCH

忽略64位ROM地址,直接向DS18B20发温度变换命令。

适用于单片工作。

告警搜索命令

0ECH

执行后温度超过设定值上限或下限的片子才能做出响应。

表4RAM指令表

温度转换

44H

启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。

结果存入内部9字节RAM中。

读暂存器

0BEH

读内部RAM中9字节的内容。

写暂存器

4EH

发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。

3.2.2子程序

(1)键盘扫描子程序

键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。

其程序流程图如图17所示。

(2)温度转换命令子程序

温度转换命令子程序主要是发送温度转换开始命令。

在发送匹配ROM命令后,紧跟着发送要进行测温的DS18B20的64位ROM序列(这个序列号一般由厂方提供或通过实验的方式获得)。

采用12位分辨率,转换时间约为750ms。

其程序流程图如图18所示。

图17键盘扫描子程序流程图图18温度转换命令子程序流程图

(3)读出温度子程序

读出温度子程序主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图如图19所示。

(4)计算温度子程序

从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。

在系统采用12位转换精度,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。

通过观察可以发现一个十进制值和二进制值之间有很明显的关系。

低字节的高半字节乘以0.0625恰好就是原整数。

因此,把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就恰好是温度值的百、十、个位值;

剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。

小数部分因为是半个字节,所以二进制值范围是0~F,转换成十进制小数值就是0.0625的倍数。

这样需要4位的数码管来显示小数部分,实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。

表5就是二进制和十进制小数的近似对应关系。

其程序流程图如图20所示。

表5小数部分二进制和十进制的近似对应关系表

小数部分

二进制数

2

3

4

5

6

7

8

A

B

C

D

E

F

十进制数

图19读出温度子程序流程图图20计算温度子程序流程图

(5)显示数据刷新子程序

显示数据刷新子程序[9]主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。

其程序流程图如图21所示。

图21显示数据刷新子程序流程图图22报警控制子程序流程图

(6)报警控制子程序

当设定的最高报警温度值大于显示缓冲区中的数据时,发出报警,提示温度超过设定的最大值。

其程序流程图如图22所示。

3.3数字式多路温度采集系统控制源程序

数字式多路温度采集系统控制源程序,见附录(4)。

4系统调试及性能分析

4.1系统调试

系统调试分为硬件调试和软件调试两步。

(1)硬件调试

硬件调试比较简单,首先检查电路的焊接是否正确及电路中有没有虚焊等问题,然后可用万用表测试或通电检测电路。

(2)软件调试

软件调试以程序为主。

先编写一段显示程序对硬件的正常工作进行检验,然后进行主程序、匹配ROM子程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等的编程及调试。

软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能够改变就基本完成软件调试。

由于DS18B20与单片机采用单线串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。

4.2系统性能分析

用制作的测温系统和已有的成品温度计(如水银温度计)来同时测量环境温度,并对测量的结果进行比较分析。

由比较分析及DS18B20的特点可得,用本系统进行测温时,精度很高,误差指标可以限制在0.1℃以内;

另外在-55~+125℃的测温范围内使得该系统完全适合一般的应用场合。

5结束语

数字式多路温度采集系统具有温度采集、显示、简单的人机对话及报警功能。

它的测温范围宽(-55~+125℃),测量精度可通过编程调节,最高精度可达到0.0625℃/LSB。

本系统主要是适用于采集显示温度,不具备控制调节温度功能。

但能够进行硬件和软件功能扩展。

在硬件扩展后,通过软件编程实现控制功能扩展。

例如当环境温度达到一定值时,通过软件编程进行判断,从主控制器的一个I/O端口输出一个控制指令,去驱动外部的控制电路工作,从而调节环境温度,使环境温度达到人们所需的要求。

因此在人们健康意识日益提高的今天有很好的市场推广前景。

参考文献

[1]李光飞.单片机课程设计实例指导[M].北京:

北京航空航天大学出版社,2004:

105-106.

[2]余永权.ATMEL系列单片机应用技术[M].北京:

北京航空航天大学出版社,2002:

25-26.

[3]张毅刚.单片机原理及应用[M].北京:

高等教育出版社,2004:

31-33.

[4]李玉峰.MCS-51系列单片机原理与接口技术[M].北京:

人民邮电出版社,2004:

26-27.

[5]陈明荧.8051单片机课程设计实训教材[M].北京:

清华大学出版社,2004:

28-30.

[6]李全利.单片计原理及接口技术[M].北京:

117-149.

[7]康华光.电子技术基础(模拟部分)[M].北京:

高等教育出版社,1999:

444、446、455.

[8]周航慈.单片机程序设计基础[M].北京:

北京航空航天大学出版社,2003.

[9]胡健.单片机原理及接口技术实践教程[M].北京:

机械工业出版社,2004.

致谢

 

附录

附录

(1)数字式多路温度采集系统元件清单

编号

元件名称

型号及规格

数量

单片机芯片

AT89

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1