新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的温度测控系统

基于单片机的温度测控系统

作者:时间:2016-10-15来源:网络收藏

摘要:本次设计的温度测控系统采用MCS-51系列单片机中的STC89C58作为微处理器,使用集成AD-590采集温度信息,光电耦合双向晶闸管为驱动电路,可精确地采集环境温度信息,稳定性高,抗干扰性强。接受信息后处理器可快速地作出反应,导通驱动电路,实现温度调节。本文从硬件和软件两方面介绍了系统的设计思路,对硬件原理图和程序框图作了简捷的描述。

本文引用地址:http://www.eepw.com.cn/article/201610/307605.htm

关键词:;;;

温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能力强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。

1 系统结构及工作原理

根据应用系统的要求及软硬件功能的划分,初步确定应用系统硬件结构如图1所示。

基于单片机的温度测控系统

利用AD590可以直接渎取被测温度值,进行转换的特性,模拟温度值经过ADC0809处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LCD中显示。

1.1 系统硬件设计

1.1.1 微处理器选择和主机系统设计

由于本设计对控制精度要求不高,控制功能一般,故选择常用的MSC-51系列单片机中的STC89C58作为微处理器。片外程序存储器选用2732,容量为4 k×8位。因采集和处理的数据不多且不需要保留,估计数据存储器使用片内的即能满足要求。其中,硬件元器件STC89C58有40条引脚,有两条专门用于电源的引脚,两条外接晶振的引脚,四条控制或与其他电源复用的引脚,32条L/O引脚。

1.1.2 输入通道设计

输入通道只有一个,包括温度传感器、放大器和A/D转换器三部分。本次设计的范围属于低温,适用于低温的检测元件有热电偶、热敏电阻、集成温度传感器等。

1)这里采用集成温度传感器AD590。这种传感器是一个双端元件,其工作温度范围为-55℃~+150℃,要求工作电源为直流+4 V~+30 V。它能把温度信号变为与绝对温度成比例的电流信号,比例因子为1 μA/K。其稳定性高,线形度好,测温误差有±1、±0.5、±0.3几种等级。

AD590本身产生的电流信号,通过运算放大器TD07对电流做加法运算。在运放输出端可得到合适的电压信号,作为A/D转换的输入。电阻RP1、RP2的选择原则是使运放输出电压为0;当温度为60℃时,调节RP2使运放输出电压为4.69 V。如果0℃不能实现,也可以在另外一个温度点上(如室温)来调整。0 V和4.69 V经A/D转换后的数字量为00H和F0H(240),这样对应1℃的数字量为04H,便于进行温度的标度变换。

AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分挡,AD590的后缀以I,J,K,L,M表示。AD590L,AD 590M一般用于精密温度测量电路,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端IO;3脚为管壳,一般不用。

AD590的工作原理是在被测温度一定时,AD590相当于一个恒流源,把它和5~30 V的直流电源相连,并在输出端串接一个1 kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1 mV/K的电压信号。

2)本系统的运算放大器采用TD07。TD07高精度运算放大器具有极低的输入失调电压,极低的失调电压温漂,非常低的输入噪声电压幅度及长期稳定等特点。可广泛应用于稳定积分、精密绝对值电路、比较器及微弱信号的精确放大,尤其适应于宇航、军工及要求微型化、高可靠的精密仪器仪表中。

3)本系统的AD转换芯片采用ADC0809。ADC0808是精度为8位的CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换。

1.1.3 输出通道设计

输出通道有3条,分别控制3台电炉通电和断电。这是3条具有相同结构的开关量输出通道,拟采用前面介绍的光电耦合双向晶闸管驱动电路。

2 系统软件设计

2.1 软件总体设计

应用程序结构采用中断方式,由定时器发出定时中断申请。主程序进行系统初始化,包括定时器、I/O口和中断系统的初始化,等待定时中断。在中断服务程序中,先判断是否到30 s。若不到30s,则返回;若到30s,进行以下操作:拨盘设定值检测、、标度变换、温度显示和,并根据温度检测值决定是否报警。

在应用程序总体结构中,将以下6个功能程序作为模块程序:温度设定输入、温度检测、温度值标度变换、温度显示、温度控制和报警程序模块。

2.2 程序模块设计

下面说明温度检测和温度控制这两个模块的程序设计。

1)温度检测程序模块。温度检测程序的功能是连续进行4次A/D转换,求取转换结果的平均值,存入内部50 H单元,A/D转换采用查询方式。

2)温度控制程序模块。温度控制程序的功能是将温度实测值(存于50H)与设定值(存于51H)作比较,如测值高于设定值1℃(注意,此值小于要求误差2℃,对应的数字量为04H),则关闭1台电炉;如实测值低于设定值,则接通一台电炉;否则不与调节。3台电炉接通的顺序是3#、2#、1#,这样可以保持电炉的通断具有相对稳定性。

3)主程序和中断服务程序设计。在定时中断服务程序中,各功能程序都已模块化,可直接调用。

先说明30 s定时的实现方法。当振荡频率为6 MHz时,STC89C58内部定时器的最大定时值为131 ms。要实现30 s定时,需要另外设置一软件计数器。现使定时器T0工作于方式1,定时时间为130 ms,则其时间常数为:

N=216-130*10-3*6*106/12=536=0218H

软件计数器的初值=30、0.13≈E7H

主程序清单:

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP T0INT//转定时中断服务程序

ORC 0030H



评论


相关推荐

技术专区

关闭