主页 > 案例大全 > 论文方法大全-多点温度采集系统设计

论文方法大全-多点温度采集系统设计

2021-03-31 11:01:02

  科学技术飞速发展的21世纪的今天,许多工业和农业生产中都需要对各种类型的温度进行采集和分析,基于单片机进行多点温度的采集不仅高效科学而且简单方便,使得产业的发展得到了有力的数据支撑。温度在日常生活中的方方面面都有所涉及,那么全面开展研究温度控制系统十分重要。

  在本文的设计中,将主控、液晶显示、温度测量、报警控制、按键控制等模块共同组成了多点温度采集系统。其中系统的主控模块我们采用的是单片机AT89C52,温度传感器DS18B20负责多点温度的检测,LCD液晶显示器能够对实时的温度进行显示。采用软硬件结合的方式,整个系统性价比高、测量范围大、测温精度高且温度数据的显示比较直观,具有重要的现实意义。

  1.1背景介绍

  温度在日常生活的方方面面都是一个重要的参数,例如在冶金、化工、建材、食品、机械、石油等行业中都有所体现。伴随着科学技术的飞速发展,进行多点的温度采集与检测逐渐在工业和农业中的地位更为凸显,而且还对测量范围和测量精度提出了新的要求,因此针对温度采集系统的设计显得当务之急。

  1.2课题意义及目的

  测量多种设备及运行过程的温度的需求因不断飞速发展的工业生产和科学技术变得越来越凸显。生产生活中日益显现的温度测量以及变得更为常见的温度的控制和设计,都离不开它们在各个行业中越来越突出的重要性。在本文的设计中,由多个模块和电路组成了单片机多路温度采集系统,对多个地方和监测点随时进行温度采集的温度采集系统,与此同时,对温度区间进行设置是根据环境的要求进行,还要实时判断各点温度,若温度超出了设定的范围,就会立刻使相应的报警电路启动,进一步的进行调节和反应人为或者上位机对温度的情况。

  1.3研究现状

  热电阻、热电偶和热敏电阻等测温元件是我们在进行多点温度采集时所常用到的。这些热电偶的分类通常是利用物理现象来进行的,如下为常用的:1、液体压力温度计与气体温度计是根据体积膨胀的原理的分类,-200~350是液体压力温度计的测量范围,-250~1000是气体温度计的测量范围;2、热敏电阻与铂热电阻传感器是根据电阻的变化原理的分类;3、铂铑热电偶与钨铼热电偶是根据接触热电动势原理的分类;4、温度传感通过硅半导体二极管来进行是根据PN结结电压所设计出的;5、传感器件如示温涂料和液晶等等是通过温度-颜色的物理特性所设计出的;6、红外辐射温度传感器是根据光辐射和热辐射的理论所设计出的,但是需要和复杂的放大电路和A/D电路共同连接才能确保正常工作,并且进行多路信号的实时采集相对比较困难。近些年,伴随着传感器技术的智能化、科学化和人性化发展,多点温度的采集往往需要计算机、单片机、PLC等的共同作用才能实现,所以从结构和设计方法等方面入手进行研究是高质量温度检测的趋势。

  1.4本文研究内容

  本文以单片机采集设计多点温度为基础,利用温度传感器来对整个系统进行温度数据的采集,温度数据通过液晶屏来显示,温度上下限的设定值通过存储器来储存,温度的上下限通过按键来设置,除此之外还有外设EPROM电路与相应扩展电路的添加,电路的设计和组装调试是此项目中运用的方案在硬件方面一定要完成的,对相应软件的编写、调试、加载以及脱机运行是在软件方面需完成的。

  2总体设计

  2.1设计要求

  该系统的技术指标:

  (1)采集8个地点温度的电路。

  (2)-30~50℃为采集测温范围。

  (3)温度精度,误差在0.5℃以内。

  2.2设计方案

  我们使用单片机作为系统的核心元器件,综合考虑各项指标的需求最终选择了AT89C52作为主芯片,使用数字温度传感器DS18B20完成对温度信号的采集和处理,严格的时序约定是传感器操作的一个特点,CPU对暂存器中的温度数据采集需在CPU向传感器发出通信并且时序应答成功后才可进行。本设计使用了8个温度传感器是基于采集了8点温度,判定温度传感器序列号是在单总线与传感器通信使用时不可或缺的一个步骤,这是因为每个DS18B20温度传感器都有一个固定的序列号,对于单总线而言,这个过程极其关键、重要。通过市场提供量、实际的需求以及性价比等综合方面来进行液晶显示部分的选择,温度显示器件确定为LCD1602液晶显示器。最终使实时测量温度的目的实现,组合两个不同的蜂鸣设备和发光二极管作为报警电路,实时处理温度数据利用单片机AT89C52的控制来进行。

  温度传感器采集到的信号传至单片机模块,系统进行软件模块的程序分析,如果在设定范围内显示模块的LCD1602会一直进行实时的温度显示,相反,由于本文有声光并用的报警模块的设置,蜂鸣器和放光二极管会在温度超出设定范围时进行相应的指示,与此同时,液晶显示屏上面会显示出当前的温度信息,总体设计框图如下图2-1所示。

  图2-1总体系统框图

  3硬件电路设计

  3.1 AT89C52单片机

  3.1.1单片机的应用

  发展微控制器的趋势逐渐加快,是因为第一台计算机诞生以后,对它进行简化似乎就成了人们首先想到的,我们迫切需要更小尺寸的计算机,因此对处理器的尺寸,人们一直在尝试着简化,并增加其功能。我们通过单片机的历史背景可以看出,单片机的原理精粹已被我们坚实的掌握了,并且进行了大量的运用,MCS51/96和其他处理器因不断进步的科学技术成为了主要核心,优化配置是通过扩展地址来实现。现如今,在各个行业中,单片机已得到大规模及广泛的使用了,主要应用的领域有以下几方面:

  1、仪器仪表中的应用

  如果在仪器仪表领域中使用单片机,则其性能将得到一定程度的改善,并且仪表及其外形结构可以得到简化,从而不仅价格低廉,而且可以提高稳定性。

  2、通信领域中的应用

  近些年单片机已广泛用于通信领域,特别是计算机在近几年因快速发展得互联网已经得到了普及,以单片机为核心得通信设备使我们得生活显著的变得便捷高效。

  3、控制过程中的应用

  系统得稳定性和精确度会因单片机在控制过程中得使用而得到提升,从而进一步得确保了生产得产品质量。

  4、家用电器领域的应用

  对于那些对单片机有所了解的人来说,会发现单片机以及其复合系统微妙的融入了日常生活,对我们的生活及生活质量正安静而有力得进行着改变。更智能、科学得操作是基于单片机系统得加入,从而改善了人们得生活质量。

  3.1.2单片机的系统性能特点

  在本文中核心模块我们选择单片机的型号为AT89C52单片来进行自行车里程和速度的测量,其具有以下性能特点:

  (1)稳定性强、体积小

  微型控制器是微控制器中的内部电路,它是十分小型的,具有密集的内部电路和相对简单的布线电路。很难清除内部ROM,其保密性相对较强。

  (2)易携性、低功耗

  单片机的正常工作4到5伏的电压就可以满足,也就是它的消耗比较低,单片机使用者可以工作携带,是因为它的体积不是很大。

  (3)易拓展

  单片机很多自身的部件都能够拓展,因此其存储空间能得到更大的扩展。

  (4)同比价格低

  单片机因其低廉的价格、完善的性能以及齐全的功能,使使用者还有单片机的爱好者更易进行消费,其在未知领域潜在的发展空间很大,而且仍然在不断发展和完善单片机的性能。

  AT89C52完美了融合了8052单片机引脚的特点和MCS-51单片机核心优点,并且使系统的高性价比和高可靠性得到了保证。之所以受到广泛的喜爱使因其更加的方便以及低廉的价格,图3-1所示为它的引脚图。

  图3-1 AT89C52引脚图

  (1)8位CPU一个,128B通用数据寄存器。

  (2)采用ROM或EPROM(8031无)的4KB程序存储器。

  (3)可编程全双工串行口1个,8位并行I/O口4个。

  (4)具有中断源5个,优先级嵌套结构2个,16位定时/计数器2个。

  (5)16位定时/计数器2个,一个时钟电路与片内振荡器。

  AT89C52单片机的引脚大概有40个,对主要引脚功能的详细介绍如下:

  P0口:此端口是具有三态输入/输出的双向端口,它在某些时候还可以作为I/O的接口,大多数用作数据传输当中的地址或数据BUS。此端口在作为输出端口时,输出大头针是在接口“1”驱动电路进入高电平电路时进行。此端口也可以用做8bit外部程序的数据内存。

  P1口:这个端口是一个双向的具有8位I/O端口,此端口在FLASH编程和验证中作为第8个地址接收。

  P2口:这个端口可以进行4个TTL栅极电流的输入和输出。内部电阻会随着此端口的升高而相应的变大。设置端口2的识别码为低水平和输出电流。

  ALE:地址锁存控制信号。

  I/O口:可以将读取端口和读取pin此两种方法作为输入。

  RST:复位信号。

  PSEN:外部程序存储器读选通信号。

  XTAL1和XTAL2:外接晶体引线端。

  VCC:+5V电源。

  VSS:地线。

  3.1.3单片机最小系统

  通常情况下单片机内部包含程序存储器和数据存储器拉昂个重要模块,分别对其进行保障电路的设计单片机就能发挥高效性能,图3-2表示的是单片机最小系统原理详细结构。

  图3-2单片机最小系统控制电路

  (1)时钟电路

  通常情况下单片机的时钟信号分为内外两个部分,一般情况下内部模式相对常见。

  (2)复位电路

  一般情况下复位可以理解为首先整个系统进行了初始化,当芯片运行时,为使CPU和其余的系统均处于初始状态,首先进行复位工作,然后再接着进行后面的准备工作。由此可知,复位这一环节的工作相当重要。但是单片机若要实现功能上的转换就必须通过外部相应辅助电路的帮助,因为单片机不会自动进行复位。

  3.2温度采集模块

  本文我们使用型号为DS18B20的数字型温度传感器作为测温模块的核心器件,其引脚图如下3-3所示,-55℃~+125℃为测温范围,使用9~12位A/D用于精度的转换,±0.0625℃为温度测量的精确度,以16位补码方式对测量后的温度参数串行输出。该传感器如果想多点测温可以多个和CPU进行一个端口相连,非常人性化的设计,并且我们设置的报警温度可以在EPROM中存储,即使关闭系统依然具有记忆功能。

  图3-3 DS8B20管脚

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

  设计温度采集电路根据DS18B20的特性来进行,温度采集电路在此次系统设计中处于核心的部分,尽管它非常的简单,DS18B20的操作具有极其严格的对时序的控制,因此要严格控制此次系统的设计与控制,当前部分电路的情况直接影响着系统性能的好坏。图3-4所示为温度采集模块和单片机相连的电路图,正常工作的时候,单片机对温度传感器传来的数据进行读取并处理,以用于显示和报警等动作。

  图3-4多路温度采集模块图

  3.3液晶显示模块

  性能相对强大的LCD1602是我们本次毕业设计所选用的液晶显示模块,它能够清晰的显示数据是通过液晶显示器来实现的,LCD之所以得到广泛的使用是因为它能够显示数字和图像,它能够识别处理由传感器送入单片机的信号,最终在液晶显示屏上予以显示,可直观的表达和显示出障碍物的精确距离,下图3-5表示的是LCD1602的引脚和单片机连接的结构图。

  图3-5液晶部分与单片机连接电路

  3.4按键电路

  (1)主要功能

  通过按键进行工作模式的切换,并且用按键进行上限温度和下限温度的更改。其中,按键K1的功能是设置/退出,按键K2的功能是增加数值(参数+),按键K3的功能是减小数值(参数-)。

  (2)器件选择

  该模块采用3个按钮开关和相应的10K电阻组成,按键及其仿真图如下3-6所示,按下按钮后得到一个低电平信号,然后送入单片机,开关松开后则变回高电平信号,对此信号的识别及相应是由单片机进行的。

  图3-6按键图和按键控制仿真图

  3.5报警模块

  蜂鸣器是设计系统报警模块中采用的声音报警设备,发光二极管为光显示设备,蜂鸣声由蜂鸣器发出以及点亮发光的发光二极管,是在DS18B20所采集的8个温度中,若有某一个超出了设定的温度范围进行的温度报警。因本设计是实时显示,所以异常温度消失,则可使报警立即解除。不能报警或者因干扰等的情况引起的误报警行动,在此设计方法中得到了有效地解决,使显示和报警的作用更加准确无误。

  声音报警以及光的显示报警发生在报警控制电路时,简而言之就是说本设计中的报警功能有声和光两部分组成,由一个红色发光二极管组成了光的报警设施,连接着CPU的P1.6引脚,或者也可以选择将CPU与一个限流电阻连接在一起,两者所使用的电源则是相同的同一路电源。本设计中采用蜂鸣器来用于声音报警中,我们也可以进行其他的报警设备的选择用于设计中,比如实际中的电铃、功率大的功放等等这类能发出比较大的声音的设备,设计者则需要对相应的保护电路及驱动的设计进行考虑来针对实际中所选择的设备。不管是从电路需求还是从设计成本方面来说,采用蜂鸣器在本设计中是较为合适的,我们既可以采用功率较低的蜂鸣器用于本设计,也可以为提高设计的可靠性来考虑选择加设限流电阻。

  图3-7报警电路模块

  3.6系统设计的电路结构图

  Proteus软件是一个电路分析、物理模拟仿真系统,它是由一家外国软件开发公司研究生产的,迄今为止的计算机C语言程序集成开发环境的软件和51系列单片机汇编程序,我们的软件是最杰出的。各个应用程序在Protues软件中的结合,包括CPU、内存等的大量的组件库存数据库提供给了用户。Keil软件事实上并不相同于MPLAB软件,不同点是我们在进行自己的生产模拟操作时只需要基于画电路原理图,因为它提供给外围设备了一个仿真程序。这就更加的智能化,更加的方便,本文的附录为系统电路图。

  4系统的软件设计

  4.1主程序设计

  控制调用子程序为主程序的主要功能,程序需将不同的DS18B20成功的分辨出来,将温度的实时显示得到实现,将DS18B20的测量温度值读出并进行处理。图4-1为程序流程图:

  图4-1主程序流程图

  4.2子程序设计

  4.2.1序列号匹配命令子程序

  对序列号进行准确的匹配,是系统设计中各个温度传感器温度能够准确实时的显示十分重要的一点,那么就需一个四位数组加入到程序设计中,各个DS18B20的序列号也就是这其中的数据,与此同时,电路图中的DS18B20也许更改在其属性的设计中的序列号,要求此序列号与程序中的序列必须一致。循环程序是序列号匹配程序中首先需要采用的,循环序列号,并向DS18B20写入每一字节的数据,最后可采用取余和取模的运算在需要显示的时候。

  4.2.2温度转换命令子程序

  负责对DS18B20发送温度转换开始命令即温度转换命令子程序,图4-2为它的程序流程图。

  图4-2温度转换命令流程图

  4.2.3读出温度子程序

  负责将DS18B20的RAM中所储存的9个字节的温度数据读出即读出温度子程序,读取的过程也是一个边读边验证的过程,图4-3为它的程序流程图。

  图4-3读出温度子程序

  4.2.4计算温度子程序

  要想显示字符,则需把DS18B20读取出的16位二进制数据转换成十进制的数据。对于这种情况,就可以在设计时将二进制数据的高字节的低半字节和低字节的高半字节组成一个字节,将该字节的二进制数据处理为十进制数据后,所得的刚好是传感器件所采集的实际温度值的百、十、个位的数据值;所得的当然是传感器件所采集的实际温度值的小数部分的数值,这是相对于剩下部分的低字节的低半字节化成十进制数据以后来说的。图4-4为程序流程图。

  图4-4计算温度子程序流程图

  4.2.5实时显示子程序

  实时更新LCD1602的显示缓冲区中用作显示的数据即实时显示子程序,图4-5为该子程序流程图。

  图4-5显示数据刷新子程序流程图

  4.2.6报警模块子程序

  依据该设计的方案与思想,为提示人们当前温度超出了设定的数值范围,报警设备会在温度传感器所采集的温度超出设定的温度范围后启动并执行报警动作,或者在实际中也可以加入一些其他的动作设备,图4-6为该程序流程图。

  图4-6报警控制子程序流程图

  5系统调试

  使系统更加的完善以及更加完美的功能是系统调试的主要目的。观察整个电路的设计是否会有问题出现,为使系统能够使设计的需要与需求得到满足,就需在出现问题时立即改变方法与策略,这是对系统硬件的调试。针对程序层面的仿真调试是系统软件部分的调试,在软件系统中若有错误的问题出现,在我们达到最终目的位置之前都要不断的通过代码报错提示进行相应的逐行修改。

  在实验过程中,误差是无法规避的一项数据,实验的精确程度可因误差的大小而间接体现,在有些时候误差还能决定实验的成败。因此十分有必要来进行误差的分析,可以优化我们的实验,很大程度上提高我们的工作效率,它是以数据的形式对我们发现、分析、总结问题提供了帮助。

  5.1软件调试

  通常我们使用keil软件来操作软件部分的调试,第一步我们要一个一个的计算温度测量系统中的模块,不停的进行调试,不断地根据调试地数据来进行变化。人们喜爱和广泛使用keil软件是因其支持汇编语言和C语言。

  (1)调试的技巧与方法:断点、跟踪、视图变量和更改值这四种类型为程序调试的一般类型。倘若使用函数,那么运行完毕完整的函数后返回即可停止。

  (2)查看变量这种方法效果十分不错,我们要想发现问题所在,就可以对当前所运行的程序通过一系列指令来逐个的查看。keil软件在单机添加的一个项目菜单后,就可以在提示窗口发现此可变量数据的显示。

  (3)正常运行的程序会受到用户所知道的调试过程中的内容或者变量的改变的影响,有时还可能造成一个异常,这种改变刚好是十分有效的,若要在正确范围内没有错误出现,就要立即确保变量的内容。用户将需更改的值输入,后单击OK按钮,转换为十六进制,这个时候将显示程序开始调用,对此时所显示的数值通过液晶显示器来观察。

  5.2仿真调试

  5.2.1系统仿真

  快速准确的读取8点温度数据是此次设计的核心部分,在电路设计及软件编程完成以后,在Keil下编译所需的程序,装入设计好的单片机后做仿真实验。实现了多点温度测量的快速、同步。图5-1表示的是该仿真效果图第2通路的测量温度的采集。

  图5-1仿真效果图

  5.2.2系统运行及数据分析

  仿真时通过系统硬软件设计方案所绘制的系统电路来进行的,对8路温度测量数据进行依次采集,记录LED数码管显示的数据,同时与设定的温度值进行比较,系统运行结果如下,如表5-1所示。

  表5-1仿真与实测温度统计表

  通道DS18B20(单位:℃)温度器(单位:℃)

  1-30.0-29.8

  2 20.0 20.1

  3-10.0-10.3

  4 40.0 40.4

  5-20.0-20.1

  6 30.0 30.0

  7 10.0 10.1

  8 50.0 49.7

  测量结果符合温度器直接测量,与仿真结果相符,-30~50℃为本系统的测量范围,采集精度为0.5℃,温度传感器DS18B20数字值读取位数为8位。提高精度我们可以对温度传感器DS18B20数字值读取位数进行改变,扩大量程可以通过实际应用的所需要求来实现。