搜索
您的当前位置:首页正文

多路温度采集系统设计-17

来源:爱够旅游网
多路温度采集系统设计

目 录

摘 要 .............................................................. II ABSTRACT .......................................................... III 1 前 言 ............................................................ IV

1.1 背景介绍 .................................... 错误!未定义书签。 1.2 研究设计意义及目的 .......................... 错误!未定义书签。 1.3 发展情况 .................................... 错误!未定义书签。 1.4 本设计主要内容 .............................. 错误!未定义书签。 2 设计任务及方案论证 ............................................... IV

2.1 设计任务 ..................................................... 1 2.2 设计方案的论证 ............................................... 1 2.3系统框图设计 ................................................. 2 3 多路温度采集系统硬件电路设计 ...................................... 3

3.1系统模块及模块介绍 ........................................... 3

3.1.1 系统整体模块控制 ....................................... 3 3.1.2 模块介绍及原理 ......................................... 4 3.2 系统基本硬件组成设计 ......................................... 8

3.2.1微机芯片工作电路设计 .................................... 8 3.2.2 温度采集电路设计 ...................................... 10 3.2.3 LCD1602的显示设计 .................................... 11 3.2.4 报警电路的设计 ........................................ 11 3.2.5 电源部分的设计 ........................................ 12 3.3 系统设计的电路结构图 ........................................ 13 4 系统的软件设计 ................................................... 14

3.1 主程序设计 .................................................. 14 3.2 子程序设计 .................................................. 15 5 系统调试与性能分析 ............................................... 20

5.1 系统调试 .................................................... 20 5.2 性能分析 .................................................... 22 结论 ............................................................... 24 致 谢 ............................................................. 25 参考文献 ........................................................... 25 附录 ............................................... 错误!未定义书签。

I

多路温度采集系统设计

多路温度采集系统设计与实现

摘 要

现代化的工业生产中,在很多的场合都需要对各类温度进行检测和控制,采用单片机来对温度进行控制不仅控制方便、组态简单及灵活性大而且还可以提高被控温度的技术指标,从而提高产品的质量和产量。温度是实际生产中比较重要的参数,因此对温度控制系统进行详细的研究很有意义。本多路温度采集系统由CPU、温度的采集模块、显示模块、报警控制模块等组成。它利用单片机STC89C52做核心的控制及数据处理器、温度传感器DS18B20做温度检测器、LCD液晶显示器做为系统的输出设备。本系统采用的硬件电路相对简单,成本不高,测量范围大,测温精度高,温度数据的显示比较直观,使用起来会比较方便。

关键词:单片机 温度传感器 多路温度 温度采集

II

多路温度采集系统设计

MULTICHANNEL TEMPRATURE GATHERING

SYSTEM BASED ON ATS89C52

ABSTRACT:

In the modern industrial production, people need to all kinds of heating furnace and boiler heat treatment furnace temperature of the reactor inspection and control by single chip microcomputer to control temperature in has not only convenient control configuration simple and flexible could increase the advantages and accused of technical indexes which can temperature greatly improve the quality of the products and the quantity, the temperature is industrial production in common is accused of parameter, typical of the temperature control system with a wide range of research significance. This digital multichannel temperature gathering system by the temperature controller, acquisition circuit and temperature display circuit, alarm control circuit and control circuit of keyboard input. It uses single chip STC89C52 do control and data processor, intelligent temperature sensor DS18B20 do temperature detector, LCD do temperature display output device. Hardware circuit is simple, with low cost and temperature measuring range, high accuracy, readings show intuitive and easy to use.

KEY WORDS: Microcontroller Temperature Sensor Multi-channel Temperatures Temperature Data Collection

III

多路温度采集系统设计

前 言

温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足轻重的作用。随着现代信息技术的飞速发展,温度测量控制系统开始在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。

本次设计采用STC89C52控制芯片,此芯片功能较为强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对某一车间或是厂房温度的控制和调节功能。温度采集系统可以随时的采集多个地方多个监测点的温度,同时还可以根据环境的要求设置温度区间,并对各点温度进行实时地判断,在温度不在设定范围时及时启动相应的报警电路,为进一步的人为或是上位机对温度的情况做出调节和反应。

本次设计的目的在于学习和实际应用基于52单片机的多路温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,也就是平时所说的主控制器件CPU是本次设计的核心器件,为了进行数据处理,单片机控制数字温度传感器DS18B20,温度传感器对外界的温度变化产生相应变化的模拟电信号,而后温度传感器就会将模拟的电信号变化转换成16位的数字信号,并且暂存起来。传感器的操作是有严格的时序约定的,在CPU向传感器发出通信并且时序应答成功后,CPU即可对暂存器中的温度数据进行采集。由于本设计是四路温度采集,那么也就会有四个温度传感器在使用,而每个DS18B20温度传感器都会有一个固定的序列号。所以,在使用单总线与传感器通信的时候一个必不可少的步骤就是温度传感器序列号的判定,这一个过程多余单总线来说就是非常重要也是非常关键的。然后就是把温度传感器中的温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,如果数据在设定正常值范围,那么就会进行正常的温度显示,如果温度在设定范围以外就会立即发出控制信息改变报警和控制执行模块的状态。

IV

多路温度采集系统设计

1 设计任务及方案论证

1.1 设计任务

利用单片机实现对4路温度采集温度超出上限值或低于下限值时报警。

1.2 设计方案的论证

目前,多路温度控制的方法有基于计算机的温度控制系统、基于单片机的温度控制系统、基于CPLD/FPGA的温度控制系统、基于DSP控制的多路温度采集系统和基于PLC的温度控制系统。

PC机对多路温度控制系统,具有电路简单,可靠性好,通用性强的特点,广泛应用于乡镇粮站中,对粮仓温度的自动控制。用VB语言实现上位机数据传送,可方便地控制通信对象的选择,具有较大的灵活性。与一般控制系统相同,计算机控制系统可以是闭环的,这时计算机要不断采集被控对象的各种状态信息,按照一定的控制策略处理后,输出的控制信息直接影响被控对象。它也可以是开环的,这有两种方式:一种是计算机只按时间顺序或某种给定的规则影响被控对象;另一种是计算机将来自被控对象的信息处理后,只向操作人员提供操作指导信息,然后由人工去影响被控对象。计算机控制系统由控制部分和被控对象组成,其控制部分包括硬件部分和软件部分,这不同于模拟控制器构成的系统只由硬件组成。计算机控制系统软件包括系统软件和应用软件。计算机控制系统通常具有精度高、速度快、存储容量大和有逻辑判断功能等特点,因此可以实现高级复杂的控制方法,获得快速精密的控制效果[1]。

基于FPGA的高精度多路温度采集器,无需计算机干涉,可以采集多路温度信号,对计算机的服务定时约束非常松弛。采集器内置了串行接口,可以通过电平转换芯片和计算机的串行口直接连接,电路结构小型紧凑,系统工作稳定可靠。但是不能更改程序的电路设计[1]。

基于DSP控制的多路温度采集系统,是以数字式温度传感器DS18B20实现多路温度采集的系统。系统以DSP作为温度采集和控制核心,结合DSP软件设计,能够实现多路温度信号的同时采集。该系统还带有RS232通用串行接口,可实现与PC机

1

多路温度采集系统设计

的实时通信。整个设计电路具有结构简单、数据传输方便、多路温度采集所用时间短和实时性好等优点。

基于PLC的温度控制系统。主要用在工业生产方面,适用于高效率的工作模式。PLC功能的扩充是在控制器中扩充了PID控制功能,因此在逻辑控制与PID控制的混合应用场所中,采用PLC控制较为合理。采用PLC控制不仅方便、简单、灵活性好,可以提高被测温度的技术指标,还能够提高产品的质量和数量。但是在温度测量时必须采用PLC恒温控制,同时PID算法在PLC中的实现和PID参数都将影响系统控制性能,这就对多路温度精确地控制增加了难度。由于在生产现场对温度的影响是多方面的,使得在这种环境下对温度的控制过程会比较复杂,在传统的加热炉电气控制系统中,广泛采用的是继电器装置控制技术,而硬件采用的是固定接线的方法来实现逻辑控制的,这就使得控制系统的体积会增大不少,所消耗的电能也会增多,效率较低并且容易发生故障,会严重影响正常的工业生产。但是随着PLC技术的发展,基于PLC控制技术会取代传统的方法,而PLC本身的性能可以使温度控制系统有许多好处,可以使控制变得更加高效、经济、稳定且维护方便[1]。

基于单片机的多路温度控制系统:这种系统采用的是温度传感器DS18B20进行采集温度数据的,液晶屏LCD1602来显示温度数据,存储器存主要用来储温度上下限的设定值,通过按键来设置温度的上下限。此外,由于单片机自身的ROM较小,因此在系统设计中必须外设EPROM电路和相应的扩展电路,因而在这类项目中所运用的方案在硬件上必须能够完成电路的设计和组装调试;在软件软件上能够完成相应软件的编写、调试、加载以及脱机运行。现在市面上单片机芯片的价格相对都不高,并且其外围电路所需的配件价格也不高,所以该系统整体设计起来的成本会比较低,有利于系统设计成本上面投资的节约。同时还可以根据需要对外部的存储容量进行相应的扩展,设计也可以相对比较灵活一些。

1.3系统框图设计

2

多路温度采集系统设计

外部中断、复位 CPU LCD1602显示 DS18B20采集数据信息 相应的光,声报警

图 1.1 单片机温度控制系统原理图

通过系统框图可以清楚地了解到系统的工作原理,通过DS18B20采集温度并与CPU进行实时通信。18B20能够对温度的变化进行随时的检测,并自动转换成16位的二进制编码,18B20会将数码暂存起来,然后等待CPU的读取,上位机按照18B20严格的时序操作规则和18B20进行通信,并对其进行数据读取的操作。同时在系统上电的时候,CPU启动LCD1602,进行相应的初始化和固化格式的显示,由于时间都是微秒级的,所以在上电一开始就会进行相应的数据显示。对于1602的操作有固定的流程,而只需做的就是将相关的显示程序进行修改和编写即可,这也方便了系统的设计与修改。系统设计中还有相应的报警模块的设计,报警电路是在温度异常于正常温度的时候进行报警指示的电路,这部分电路主要是根据报警的明显、可以根据设计经验进行、并且报警方式多元化的特点进行设计的。

2 多路温度采集系统硬件电路设计

2.1系统模块及模块介绍

2.1.1 系统整体模块控制

系统的主控部分用的是STC89C52单片机的应用控制系统,温度采集部分是用DS18B20数字温度传感器对监测点的温度进行检测并自动生成数字信号,报警电路

3

多路温度采集系统设计

部分是用两个不同的发光二极管和蜂鸣设备组合作为报警电路,通过单片机STC89C52的控制进行温度数据的实时处理,从而实现实时测量温度的目的。

CPU是控制设计的核心关键部分,在本次设计中,综合考虑各项指标的需求最终选择了STC89C52作为主芯片。液晶显示部分的选择是根据实际的需求和市场提供量以及性价比等综合方面进行了选择,确定LCD1602液晶显示器为温度显示器件。

单片机的最小系统中的各个部分都是不可缺少的,本次设计还是按照单片机的一般最小系统更具CPU型号确定晶振频率,复位电路等最小系统的控制电路。报警电路采用红色发光二极管闪烁的方式,能起到很好的警示作用。

2.1.2 模块介绍及原理

(1) 主控器件单片机的介绍

单片机是一块集成电路芯片具有一台微型计算机的功能,通常会被称为单片微型计算机,简称单片机。AT89S52系列单片机是HMOS工艺的,其引脚结构如图2.1所示。

图2.1 单片机引脚图[2]

① 8位CPU AT89S52系列单片机都是8位机,采用片外三总线控制,即数据总线,地址总线和控制总线,其中数据线是8位的,地址总线是16位的。

4

多路温度采集系统设计

② AT89S52单片机有4个可编程的I/O口线,即4个并行接口分别是P0、P1、P2、P3,其中P1口是唯一仅有单功能的I/O口,而另外的三个端口都是具有双重公用的I/O口。

③ AT89S52系列单片机有256KB片内RAM,8KB片内ROM。外部存储器可以寻址ROM空间为64KB,RAM空间为64KB。

④ AT89S52系列单片机具有三个16位的定时/计数器,可以通过对相应的控制寄存器RMOD中的M0、M1位的设置的不同实现定时/计数器的4种工作模式。

⑤ 52单片机有5个中断源,分别是外部中断0、外部中断1、T0溢出中断、T1溢出中断和串口中断。为两个优先级,每个中断源的优先级是可以编程的。

⑥ 52单片机的内部还有许多其他的寄存器,有22个专用寄存器,其中有21个专用寄存器是可寻址的,在这里面又有11个客位寻址。

(2)温度采集芯片DS18B20的简介

本次设计中采用的数字式温度传感器采用的是Dallas半导体公司的数字化温度传感器DS18B20芯片。该芯片有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9~12位A/D转换精度,最高测量分辨率为±0.0625℃,被测温度以16位补码方式串行输出,其工作电源既可以外端专门供给也可以附设在电路电源供电中。传感器支持“一线总线”接口,CPU只需要一根端口线就能和多个DS18B20通信,可方便地进行多点温度测量,分辨率设定及用户设定的报警温度存储在EPROM中,掉电后依然保存[3]。

该产品支持3~5.5V的电压范围,因其体积小使系统,设计更灵活、方便。管脚排列如下图2.2所示:

图2.2 DS8B20管脚[3]

(其中DQ:数字信号输入/输出端;GND:电源地;VDD:外接供电电源输入端。)

DS18B20的内部主要有4个组成部分:64位的只读ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器。如下图所示。

5

多路温度采集系统设计

64位ROM和单总线接口 存储器与控制高速缓存 温度传感高温触发低温触发配置寄存电源检测 8位CRC发生器

图2.3 DS18B20内部结构图

该器件中ROM的64位序列号是出厂前就已经被光刻好的,它可以看作DS18B20的地址序列码。64位序列号的排列是开始8位编号(0x28)是产品类型标志,中间的48位编号是该DS18B20自身的序列号,最后的8位数据是前面的56位编号的循环冗余校验码。每个器件的地址序列号是不相同的,这样一来可以方便地实现1根总线上挂接多个不同的DS18B20却依然能够准确地区分出来自不同温度监测点的温度数据的目的[4]。其内部存储器包括9B高速暂存RAM和1B非易失性的可电擦除的EPROM,后者存放高温度和低温度触发器TH,TL和结构寄存器,其具体的温度测量值分辨率设定表如表2-1所示。

表2-1 DS18B20温度测量值分辨率设定表[4]

R1 0 0 1 1 R0 0 1 0 1 分辨率/b 9 10 11 12 温度最大转换时间/ms 93.75 187.5 375 750 测量精度 0.5 0.25 0.125 0.0625

(3)显示器件LCD1602液晶的简介

1602液晶显示器常用的有笔端型、字符型和点阵型,而我们采用的字符型1602是一种专门用来显示字母、数字、符号等的点阵型液晶模块,在电极图设计上同若干个5×8或5×11点阵组成,每个点阵都可以显示一个字符。每位之间和每行之间的间隔起到了字符间距和行间距的作用,也因此1602不能用来显示图形。字符型

6

多路温度采集系统设计

1602通常有14或16个引脚。

在LCD1602液晶显示器内部的字符产生存储器(CGROM)中已经存储了大量的点阵字符图形,其中的每一个图形字符都会对应着一个固定的代码,而这些字型是只可以读取不可以写入的并且这些字型要经过内部电路的转换才会传到显示器上,比如字母“B”的代码是01000010B(42H),要显示“B”字符,就要将B的ASCII码42H写入到DDRAM中,同时电路到CGROM中将B的字型点阵数据找出来显示在LCD液晶上,我们就能看到字母“B”。需要清楚的是LCD1602只能够识别ASCII码,所以在我们进行LCD质量性能检验试验时也可以用ASCII码直接赋值,还可以在单片机编程中直接用字符型常量或变量对其进行赋值,如‘D’[6]。

LCD1602内部有DR数据寄存器,该寄存器的负责存储MCU要写给CGRAM或DDRAM的数据,或存储MCU要从CGRAM或DDRAM读出的数据。所以DR寄存器可以看做是一个数据缓冲区,并且它是被RS、R/W及E这3个引脚来控制的。当RS及R/W引脚信号为1的时候,E引脚步信号由1变为0时,那么LCM会将DR寄存器内的数据由DB0~DB7向外输出,以供MCU读取;当RS引脚信号为高电平1,同时R/W引脚信号为0以及E引脚信号由1变为0时,就会把在DB0~DB7引脚上的数据存入DR寄存器中[6]。

以下是LCD1602液晶的读、写时序操作图:

① LCD1602液晶显示器的写操作时序就如下图中所示:

图2.4 LCD1602液晶模块写操作时序图[7]

② 1602液晶模块的读操作时序就如下图所示:

7

多路温度采集系统设计

图2.5 LCD1602液晶模块读操作时序图[7]

(4)报警模块

在系统报警模块的设计中,所采用的声音报警设备是蜂鸣器,光显示设备是发光二极管,当四个DS18B20所采集的温度中有一个不在设定的温度范围的时候就会进行温度报警,蜂鸣器发出蜂鸣声,发光二极管点亮发光。当异常温度消失的时候,由于本设计是实时的显示,所以可以使得报警也立即解除。这种设计的方法有效的解决了不能报警或者由于干扰等情况引起的误报警行动。从而达到了更加准确地显示和报警的作用。

2.2 系统基本硬件组成设计

按照设计要求和单片机的工作特性,总体的系统设计硬件电路应该包含以下基本部分:最小系统、温度采集、液晶显示、报警控制。

2.2.1微机芯片工作电路设计

AT89C52单片机要正常工作,就需要至少连接起单片机的最小系统。最小系统中包括电源、接地以及最基本的电路晶振电路、访问存储器控制端和复位电路。 (1)晶振电路

单片机的时钟信号通常有内外两种时钟产生方式。内部时钟方式是利用单片机内部的振荡电路产生时钟信号。外部时钟方式是把外部已有的时钟信号引入到单片机内。本设计采用内部时钟方式。

晶振电路的具体是在52单片机的XTAL1(19)和XTAL2(18)引脚外接石英

8

多路温度采集系统设计

晶体(简称晶振)和电容,作为单片机内部振荡电路的负载,构成自激振荡电路,可在单片机内部产生稳定的时钟脉冲信号。电容C1和C2可以起到稳定振荡频率,并使快速起振的作用。单片机中常用的晶振的频率有11.0592MHz、12MHz等,根据再设计中的情况和为了计算的方便,在本次设计的电路中选用晶振频率为12MHz,电容选用C1=C2=30Pf[2]。 (2)复位电路

复位电路是单片机非常重要必不可少的一个最小系统的组成电路。复位即是使单片机工作处于某种设定的初始化状态。单片机工作从复位状态开始。在单片机RST引脚设置高电平并持续2个机器周期以上的时间,CPU就会执行复位操作。通常情况下复位操作有两种基本方式:一种是上电复位,另一种是上电与按键均有效的复位。本次设计采用的是上电与按键均有效的复位电路。

当给RST引脚持续的高电平时,就会对电容C3充电,随着电容垫量的增加,RST引脚的高电平将逐渐下降。若该引脚的高电平能保持2个机器周期以上的时间,就可以成功实现对CPU的复位操作。复位电路元件的参数选择为C3=10µF,R1=10KΩ[6]。

(3)单片机最小系统控制电路

最小系统的主要组成如下图所示:

9

多路温度采集系统设计

图2.6 单片机最小系统控制电路[2]

2.2.2 温度采集电路设计

根据DS18B20的特性进行温度采集电路的设计,温度采集电路虽然简单,但是却是本系统设计的关键部分,另外,DS18B20的操作是对时序的控制是非常严格的,所以在系统设计和控制上也要有严格的控制,系统的性能好坏直接由本部分电路情况而定[8]。按照本次设计的方案要求设定本设计能够进行4路温度的数据采集和监控,4只智能温度传感器DS18B20的信号通信端采用的是单总线的连接方式,即连接每一个DS18B20的通信端口以后以总线的方式连接到单片机的P1.1口[6]。当然还有另一种设计思路就是根据DS18B20的单独工作特性,在需要设计多路温度的采集的时候,可以选择在单片机IO口再连接更多的智能温度传感器DS18B20或者外加扩展口后连接更多18B20,本设计不采用这种设计方案,因为这种设计会使得电路的利用率和工作效率都有一定的下降,并且电路更加复杂增加了电路错误的可能。而本次设计所选用的单总线连接的思路是可以高效率工作并且还能使得电路简化,只是这种情况的时候要进行更加严密的上下位机的通信时序控制以及判断相关设计

[8]

10

多路温度采集系统设计

在系统开始上电工作时,由程序控制CPU进行读取每一个智能温度传感器DS18B20采集的温度数据,并且然后再送单片机处理,以用于显示和报警等动作。

2.2.3 LCD1602的显示设计

根据前面的综合分析考虑选定了LCD1602用来液晶显示,结合1602的特点和使用方法进行本部分的设计。在设计中由52单片机的P3口作为输出口担任数据输出给显示电路的任务,由P1.4、P1.5、P1.6作为控制端口对显示器进行相应的控制,在利用P0口时还要在P0口外加上拉电阻,实际电路中常用1kΩ的排阻。

LCD与CPU的连接时有总线方式和模拟口方式两种,而模拟口方式也就是平时所说的独立连接方式或者间接连接方式。在采用总线连接方式的时候,单片机要有两个端口设置成高位地址线和LCD1602的控制端R/W、RS分别相连,单片机再取一个端口作为高位地址线和WR、RD先与非运算2次,然后与LCD1602的读写如同对片外的RAM单元读写一样[9]。 而独立连接方式的时候,CPU的输入/出端口会直接分别和1602的读/写、寄存器选择端、以及使能端想连接。对1602的读写时通过对CPU的输入/出端口的读写来完成的。另外,独立连接的接线方式是比较简单的连接方式。

本设计考虑到简化电路、方便使用和检修,因此采用的是独立连接方式,而在使用1602之前一定要将其初始化,这个初始化的过程可以在复位的前或者后完成。1602的初始化操作主要有以下主要的动作:先进行清屏,然后开始设置主要功能,第三就是开关显示的设置,最后设置输入方式。

2.2.4 报警电路的设计

报警控制电路时有声音报警伴随着光的显示报警,也就是说本设计中会有声、光两部分报警显示功能,其中光的报警设施是由两个二极管组成,一个是蓝色的一个是红色的,它们分别和CPU的P1.2、P1.3两个引脚相连接,在这里也可以选择通过一个限流电阻与CPU相连接,而电源则是两者共同使用的相同的一路电源。而声音报警即是前面设计描述中所采用的蜂鸣器,当然再设计中也可以选择其他的报警设备,如在实际中可以采用功率较大的功放、电铃以及其他的一些发出较大声音的设备,如果实际中选择的是这些的设备,那么就需要设计者再考虑上相应的驱动和

11

多路温度采集系统设计

保护电路的设计。在本设计中采用蜂鸣器是合适的不论是设计成本还是电路需求上来讲,在这次设计中我们既可以考虑采用加设限流电阻来提高设计的可靠性也可以选择不加选择而是采用较低功率的蜂鸣器。

图2.7报警电路模块

2.2.5 电源部分的设计

在电源设计中一般会用输出电压较为恒定的集成稳压器L7805。L7805稳压器共有输入、输出和公共引出端三个引脚端子,而其电路组成部分有启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等电路。按照任务要求和CPU芯片的特性,要求设计的电源电路的电压应为+5V的直流电压。由于L7805的输出电压比较固定,所以在实际应用中会比较可靠,有利于系统的正常运行和动作,所以本次设计中我最后选择了三端式集成稳压器L7805[11]。对于L7805自身,其输入与输出端口之间的电压差一般为2~3V,在前面一级德尔文氏桥整流电路的输出电压有效值大约是其输入电压有效值的1.2倍。对于变压器来说,变压器的选取一定要根据电路中电流电压的有效值与峰-峰值之间的相应关系进行选择,从而最终确定了本次设计中要选择的是降压比为220V/6V变压器。由于在稳压器L7805的输出电流中,最大电流值为1A,同时又稳定地输出+5V直流电压,因此L7805的输出功率一般也稳定为5W,另外还要考虑上稳压器L7805自身会产生的一定的消耗量,所

12

多路温度采集系统设计

以在器件的预算选取的过程中一定要考虑到这些全部的情况,这样才能在设计的系统中产生最好的效果。综合考虑这些因素,在本系统设计中最终选择的变压器的参数为:降压比为220V/6V、功率为10W的变压器[11]。

图3.8为本次系统电源设计的原理图,在这个图中C4、C5电容是低频滤波电容,它们的作用是对电流的波动进行整合,滤掉文氏桥整出电流中频率较低的部分分量。这部分设计中原件的参数一般是有固定的经验性的参数值的,所以只需要根据以往的设计者所得出的结论和经验就可以对本设计中的电源进行模块化设计。由这些电子电路设计得到的成熟经验对本部分中所用的电解电容的参数进行认真的选择,这些电容的容量应该为:C4=220μF、C5=47μF;在原理图中C6、C7电容是高频滤波电容,根据以往的经验两个电容都要选择0.1μF的无极性电容是最合适的。在原理图中D5是一个发光二极管,那么D5的作用就是用来清楚地指示电源是否接通,以及电源的工作是否正常。这个D5的选择一般要求不是特别严格,一般选择市场常见的实验设计常用的普通的发光二极管即可,然后要根据二极管的特性进行选择,一般二极管的正向电流为5mA,其管压降一般为+2V,因此根据这些确定设计中选择的限流电阻的阻值为R5= 680Ω[10]。

一般的电源电路的设计会采用如下这样的一种电路,在原理图2.8中的“output”端输出电压一般为+5V。

图2.8 电源电路原理图[11]

2.3 系统设计的电路结构图

前面通过对系统设计中硬件电路的各个模块的分别详细的讲述和分析,可以清晰地看到为了实现系统预计各模块的功能,那么就需要按照各模块要求来协调设计系统的硬件电路,这样子才可以保证系统能够可靠高效地运行。根据前面各个模块的具体描述和设计的各种方案,下面就是进行综合的模块组合,而电路的具体分布也就可以

13

多路温度采集系统设计

利用protues7.5先画出电路图。其中系统工作原理图如图2.9所示。

图2.9 系统的电路图

3 系统的软件设计

3.1 主程序设计

主程序主要功能是控制调用子程序,程序要能够成功分辨出不同的DS18B20并且实现温度的实时显示、读出并处理DS18B20的测量温度值。其程序流程图如图3.1所示:

14

多路温度采集系统设计

开始 初始化显示 设置温度范围 读取温度 与设置温度范围比较 是否超出范围 启动报警设备 显示实时温度值 延时一段时间 图3.1 主程序流程图

3.2 子程序设计

(1)序列号匹配命令子程序

系统设计中要想准确的实时的显示各个温度传感器的温度,那么很重要的一点就是要准确的进行序列号匹配,这就需要在程序设计中加入一个四位的数组,其中的数据便是各个DS18B20的序列号,同时在电路图中的DS18B20也要在其属性的设计中更改序列号,这个序列号适合程序中的序列号要求一致的。在序列号匹配程序中首先要采用的是循环程序,对序列号进行循环的向DS18B20写入每一字节的数

15

多路温度采集系统设计

据,然后如果需要显示的时候就应该采用的是取余和取模运算[12]。

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

温度转换命令子程序主要是对DS18B20发送温度转换开始命令。在CPU对温度传感器发送匹配ROM命令以后,下面就要进行发送准备进行测温的DS18B20的64位自带序列号。在一般的情况下都是采用12位分辨率,那么转换时间就大约为750ms左右[12]。其程序流程图如图3.2所示。

发送DS18B20复位指令 匹配ROM、64位地址 发送温度开始转换命令 结 束

图3.2 温度转换命令流程图

(3)读出温度子程序

设计的读温度子程序功能就是读出DS18B20的RAM中所储存的9个字节的温度数据,在读出时需进行校验,校验结果如果有错误则不可以进行温度数据的改写操作[4]。其程序流程图如图3.3所示。

16

多路温度采集系统设计

发DS18B20复位指令 匹配ROM、64位地址 校验 移入温度暂存 发读取温度命令 读取RAM中9个字节 结束 9字节完?

图3.3 读出温度子程序

(4)计算温度子程序

对于DS18B20读取出的16位二进制数据,程序设计时必须先将数据转换成十进制的数据才可以用于字符的显示。本设计采用的转换精度是12位,在DS18B20的温度寄存器里所储存的值以0.0625为步进,因此温度值的计算就是将温度寄存器里的二进制数据乘以0.0625[3]。

通过比较这样处理的一个二进制和十进制数据的关系,可以明显的发现低字节中高位的半字节乘以0.0625恰好就是原整数。基于这个情况,设计时就可以把二进制数据的高字节的低半字节和低字节的高半字节组成一个字节,这样处理该字节的二进制数据化为十进制数据以后,得到的就恰好是传感器件所采集的实际温度值的百、十、个位的数据值;相对而言剩下部分的低字节的低半字节化成十进制数据以后,得到的自然就是传感器件所采集的实际温度值的小数部分的数值[13]。由于小数部分的数据实际上是半个字节,因此确定的二进制数据范围就是0~F,相应的所转换成的十进制小数数值就是0.0625的倍数,这也正是这种算法所基于的一种原理性思想[13]。其程序流程图如图3.4所示。

17

多路温度采集系统设计

开始 温度零下? 温度值取补码置“—”标志 置“+”标志 计算小数位BCD值 计算整数位BCD值

图3.4 计算温度子程序流程图

(5)实时显示子程序

实时显示子程序主要是对LCD1602的显示缓冲区中的用来用作显示的数据进行实时的更新,当检测到最高显示位为“0”时就将符号显示位向下移动一位。该子程序流程图如图3.5所示。

18

多路温度采集系统设计

初始化 判忙 CPU向LCD写命令 CPU向LCD写数据 显示数据 结束

图3.5显示数据刷新子程序流程图

(6)报警模块子程序

按照设计的思想和方案,如果温度传感器所采集的温度超出了报警温度的设定范围时,就会立即启动报警设备执行报警动作,用以提示人目前温度不在设定值范围内。或者在实际中再有其他的一些相应动作设备也可以加入进来。该程序流程图如图3.6

设定温度范围 是否超出范围 执行报警 结束

图3.6 报警控制子程序流程图

19

多路温度采集系统设计

4 系统调试与性能分析

3.1 系统调试

在本次系统设计中将系统调试的设计分为硬件调试设计和软件调试设计。 (1)硬件调试的设计

硬件电路的设计是从proteus中开始的,根据设计的系统,将所需的电路图设计出来,并且在proteus中以实物的形式绘制连接起来。在和程序调试仿真成功以后,直接可以生成网络表格并导入到PCB板制作的界面中进行相关的布局、布线等操作

[14]

。然后再将完成的PCB板图纸用电光纸打印出来,接着按照PCB制作的工艺流程

进行PCB板的制作。制作PCB完成后,经检查没有明显的缺点和错误,并且线路通畅就应当把相应的器件焊接到PCB板上,制作成成品的硬件电路板[14]。生成并绘制PCB板的时候布局有手工布局和自动布局,而后的布线方式有手工布线也有自动布线,我在设计的时候是两者兼备的,先自动布局,然后手动调整,再自动布线,最后把不合适的地方手工进行修改,最后的得到的PCB图如图4.1:

图4.1 PCB板图

20

多路温度采集系统设计

图4.2 温度采集模块

硬件调试是最终的必不可少的,同时它相对简单主要是技术操作的细节问题,需要先检查电路中各器件引脚的焊接是否完好焊点处有没有虚焊、空焊等问题,对于不太确定的电路部分也可用万用表来测试或者进行通电来检测电路[15]。同时如果是采用通电的方法进行检查的,那么首先一定要确保各个电子器件的电源与接地等端口的正确连接,否则很可能会对元器件产生一定的损伤严重时可能会直接破坏器件功能。也可以结合一些检测软件进行调试,通常情况软件调试以程序为主,并且会有很多的调试检测软件,当然也可以自己根据硬件电路来编写一个简单的检测软件下载到电路板的CPU中进行实物检测。 (2)软件调试的设计

软件调试主要是利用变成软件进行程序的编写和编译工作,首先根据系统要设计实现的功能确定主程序的框架,然后根据主程序种不同的部分的需求进行部分程序的编写。在本次设计中采用的软件是Keil u Vision2软件,该软件可以和proteus 软件方便的连接起来,使得仿真很方便。根据设计的安排依次进行主程序、序列号匹配子程序、读出温度子程序、温度转换命令子程序、计算温度子程序、实时显示子程序等的编程及调试。生成hex文件后,将该hex文件导入到proteus中的电路图中去,这样在proteus中进行仿真看看该程序是否能实现系统要实现的功能[15]。软件调试到能显

21

多路温度采集系统设计

示温度值,并且可实时的跟随变化而显示,温度超过范围时可以及时启动报警。

3.2 性能分析

多路温度测量系统的关键是对温度进行准确的测量,所以谈到多路温度采集系统设计与实现课题的制作成果的时候就免不了首先提到温度的实时正确性。任何一个设计的最终目的其实都是应用到我们的实际的生产生活中去,而对于温度的检测则一定要实现其实时性和准确性,在系统设计中可以说是把这一个指标当做一个最终的最主要的设计指标来考虑的。在设计过程中,经过了多次的程序分析和尝试,最后实现了目前这个最简洁的系统程序的设计。

另外就是硬件上的实时性,需要所涉及的系统能够实时的显示温度的变化情况。这个需要在仿真中先行实现,在设计中曾经就是没有考虑到仿真图中DS18B20的序列号和程序中的序列号数组应该必须要保持一致。因此在设计的过程中就要不断地进行数据的读取的操作,保证CPU与DS18B20的实时对话,使其实时的采集传感器的温度数据,还有在输出端上也要不断地刷新输出,使得LCD1602能够和CPU前一个机器周期所采集到的数据一致,也就是不断地刷新LCD1602的数据输入。另外就是应该在设计过程中就应该充分的考虑到能不能在实际电路中实现的问题,这就要求在生成PCB的时候我们应该尽量把电路的布线设计合理,不可以过细也不可以过粗,否则都可能在硬件上就使得电路板的失败。而这一问题在设计的过程中得到了充分的避免。而截取的PCB布线图如图4.1.

在多个温度传感器同时存在且同时工作的时候,我们除了需要保证其实时性之外还要保证其准确性,这就是要求在准确地分辨DS18B20的同时还要准确地进行数据的处理。在系统的设计过程中也要保证这一点,首先要确保温度传感器的数据线的衔接不出问题,另外就是是电源与接地端的正确与否。其次还要注意的是就是在程序的设计中我们应该采用的是取模与取余运算的结合使用,使得小数点以前及以后的数据能够正常且准确地显示出来。

还有一个指标就是报警动作。在设计系统的时候是给CPU一个范围的限定的,当CPU采集到的温度不在设定的正常温度的范围的时候,我们需要报警设备及时启动。在这个设计中采用的声光报警设备究竟能不能够及时的启动,不仅要看仿真还要看看实际电路中,因为功率和干扰的问题,在实际中我们往往需要加添驱动电阻来对

22

多路温度采集系统设计

电路的报警设备的驱动。在本设计过程中我们同样在蜂鸣器的旁边加设驱动电阻以保证蜂鸣器的及时启动。

23

多路温度采集系统设计

结论

本次设计的系统是与单片机的用的一种,而又同时实现了多路温度、实时采集以及单总线等的特点和优势。这样的设计更加的方便于应用到实际的生产生活之中,在实际生产中,通常对测温设备的要求较高,除了一些硬件材料上的使用与特殊场合的特殊要求以外,通常会对可靠性要求比较高。本次设计的系统正是从实际的生产生活的角度出发来考虑方案的选定的。

本次所设计的系统主要是适用于多路温度的独立采集与实时的温度显示。独立采集是容易实现的,而独立采集的数据也能准确的分辨并显示出来就需要精心的设计了。实时显示的温度要求是至少在人的识别能力以上,也就是说应该在温度变化是人看到的时候也同时应该看到温度显示的变化。这两点是在实际制作电路板中的重要环节,也是检验设计的最终的实物板子的性能的参考指标,同时采用单总线的设计方案可以减少端口的占用情况,留下更多的端口可以利用相应的剩余端口以便在扩展的功能时可以扩展控制调节温度等具体的功能,这样就实现了资源的节约使用和高效利用。单总线的技术也是这次设计中的一个难点,不仅要在程序中放入序列号数组同时还要不断地调用和进行选择判断。同时在电路图中也要将四个温度传感器进行相应的序列号设置才可以使得采集和显示都正常化。另外在这次设计的系统的基础之上还是能够进行硬件和软件功能扩展。在硬件扩展后,通过软件编程实现控制功能扩展。

经过了这次为毕业设计的所有准备,我不仅复习和学习了许多知识,同时还让我更加坚信了自己应该选择自己专业的研究方向。再今后毕业的社会工作的过程中我应该将自己为毕业设计准备的精神拿出来用到工作中去,应该为自己的工作设定好自己的目标,然后脚踏实地努力的准备,那么自己将克服一层层困难,最终实现在自己的专业领域取得一定的成绩。

今后的实际工作中我还要继续不断地学习自己专业和相关专业的知识和技能,要让自己时刻的保持着前进的状态,扩大自己的知识面增强自己的专业知识基础和实践能力。

24

多路温度采集系统设计

参考文献

[1] 翁嘉民,陶春明,冯建勤.单片机应用开发技术[M].中国电力出版社 2010:39-40 263-267

[2] 侯殿有.单片机C语言程序设计[M].人民邮电出版社 2010:

[3] 张齐.单片机原理与应用系统设计[M].电子工业出版社 2010:123-140

[4] 童诗白,华成英.模拟电子技术基础(第四版)[M]. 高等教育出版社 2006:513-562 [5] 朱清慧,张凤蕊,翟天嵩. Proteus教程(第二版)[M].清华大学出版社 2011: 288-350 [6] 刘素芳,陈志红,任枫轩.电子工艺与电子CAD[M].人民邮电出版社 2009: 130-200

[7] 高西全, 丁玉玉.数字信号处理[M].电子科技大学出版社 2008: 132-176 [8] 刘君华.智能传感器系统[M]. 电子科学大学出版社 1999:161-179

[9] 周月霞, 孙传友. DS18B20硬件连接及软件编程[M]. 人民邮电出版社 2003: 92-136

[10] 李全利.单片计原理及接口技术[M]. 高等教育出版社 2004: 66-96 [11] 李朝青.单品机原理及接口技术[M]. 北京航空航天大学出版社 1998: 53-86 [12] 康华光.电子技术基础(模拟部分)[M].高等教育出版社 1999: 103-149 [13] 沙占友.集成温度传感器原理与应用[M]. 北京: 机械工业出版社 2002: 97-144 [14] 陈跃东. DS18B20集成温度传感器原理与应用[J]安徽机电学院学报, 2002: 66-69 [15] DALLAS公司. DS18B20数据手册

25

多路温度采集系统设计

致谢

从选题开始到现在设计接近尾声,首先要感谢毕业设计的指导老师苗铁壮老师,苗老师在任务布置和检查上对我们有较严格的要求,同时也不断地指导我一些方法和实际的操作。在这期间,苗老师多次地和大家见面,花费大量的时间和精力来指导我们组的每一个学生的毕业设计。在这个最后的时候回顾几个月的设计以来,我觉得没有一个合适的老师指导和监督检查,我是不会这么顺利的完成毕业设计的。其次还要感谢我的同学们,也包括我的室友们,在每一个设计的环节都有大量的和同学探讨讨论的过程在里面。可以说准备毕业设计的过程也是大家集体学习互动学习最好的一次,在这个过程中我学到了很多的自己原来没有掌握好的知识点。同学之间的知识互动也使得大家的设计普遍完成的较好,没有他们我可能要少学到好多的东西,因此也要感谢我的同学们。最后还要谢谢学校的各位领导和毕业设计的负责老师,他们不仅给像我这样需要做实际产品的同学们以资金的保障、实验设备的提供还及时为我和同学们及时地提供各种注意事项的提醒,使我们少走很多的弯路。没有这些后盾的援助和支持,恐怕我的设计要出现很多的麻烦,我可能要不断的进行修改,可能要为制作的实际产品而发愁。所以说还需要感谢各位领导和各位负责老师的悉心提醒和可靠地后续保障。

26

因篇幅问题不能全部显示,请点此查看更多更全内容

Top