AT89C2051在加热炉温度采集系统中的应用

2005-04-29 04:52夏益民
电子世界 2005年10期
关键词:数码管加热炉单片机

夏益民 杜 敏

摘要:设计了一种以AT89C2051单片机为核心的加热炉温度采集系统。给出了该温度采集系统的基本原理、电路结构和软件的实现过程。

数据采集是获取信息的一种重要手段。数据采集以传感器、信号测量与处理、微型计算机等技术为基础形成了一门综合的应用技术,它研究数据的采集、存储、处理和控制等作业,具有很强的适用性。

数据采集广泛应用于各个测试和控制系统,数据采集系统的设计和实现包括很多方面的内容,涉及的面也很广。本课题设计完成的是对炉温的多通道采集、数码管显示以及PC机对温度变化的曲线图绘制。设计采用了模块化的思想,条理比较清楚,主要分为硬件原理图设计和软件程序设计。该系统设计简单、扩展和接口方便、连线简单、操作容易、可靠性也比较好,在多点温度检测中有很广泛的应用前景,具有较强的使用价值。就其采样频率和分辨率来说属于中速类型,适合对数据采样频率要求不是特别高的应用场合。

系统硬件结构

1.硬件框图

本设计主要包括模拟信号采集、信号调整放大、A/D模数转换、CPU控制处理、PC机温度曲线图绘制与显示以及温度的数码管显示6个模块,图1是结构框图,图2是原理图。

该设计的大致工作流程从图2可以看出为:

2.硬件各部分功能简介

(1) AD524信号调整放大器 基于本设计电路对信号调整放大性能的要求,及对同类芯片特点性能的比较,选用运放AD524。AD524是一种低噪声、低非线性、高信噪比的高精度的运放器件。主要特点有:低补偿电压、低补偿电压漂移;引脚选择增益1、10、100、1000;通过可变电阻可得到任意增益;输入输出补偿。

(2)TLC2543串行A/D转换器TI公司的TLC2543 12位串位A/D转换器,使用开关电容逐次逼近技术完成A/D 转换过程。提供的最大采样速率为66Ksps供电电流仅需1mA(典型值)。其每个器件包括片选()、输入输出时钟(I/OCLOCK)、地址输入端(DATE INPUT)三个控制器输入端。它还可以通过一个串行的3态输入端(DATE OUT)与主处理器或其外围的串行口通讯,输出转换结果。在转换结束时,转换结束(EOC)输出端变高以指示转换的完成。本器件中的转换结合外部输入的差分高阻抗的基准电压,具有简化比率转换、刻度以及模拟电路与逻辑电路和电源噪声隔离的特点。开关电容的设计可以使在整个温度范围内有较小的转换误差。除了高速的转换器和通用的控制能力外,本器件有一个片内的14通道多路器可以在11个输入通道或3个内部自测试电压中任意选择一个。这种形式的通道速度较慢,但硬件开销少,对转换速度要求不高的系统最为合适。由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。

(3)AT89C2051单片机 AT89C2051是美国ATMEL公司推出的一种性价比较高的8位单片机,其指令系统与MCS-51系统完全兼容。另外具有很强的加密功能。ATAT89C2051只有20只引脚,压缩了I/O端口与存储器容量,其余配置与功能不减,可方便地应用于家电产品及小型仪器仪表,是性价比极优的单片机。

(4)MAX232电平转换器 EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此为了能够同计算机接口连接,必须在RS-232与TTL电路之间进行电平和逻辑关系的转换。

MAX232芯片可完成TTL与EIA双向电平转换,且MAX内部有电压倍增电路和转换电路,仅需+5V电源便可工作,使用十分方便,亦可连接两对收/发线。

(5)LED驱动器MAX7219 MAX7219是八位串行共阴LED数码管动态扫描驱动电路,仅需使用单片机3个I/O口,即可完成对八位LED数码管的控制和驱动,线路非常简单,控制方便,外围电路仅需一个电阻设定峰值段电流,同时可以通过软件设定其显示亮度;还可以通过级联,完成对多于八位的数码管的控制显示。当工作于关闭方式时,不仅单片机仍可对其传送数据和修改控制方式,而且芯片耗电仅为150μA。使用方便灵活,连线简单,且不占用数据存储器空间。

(6)其他 由于AD524的正电源电压范围是6~18V,负电源电压是-6~-18V,而其他的器件都是采用的典型电源电压+5V和-5V。用LM7805来实现电源电压转换,使电压统一。SCREEN数码管用来显示转换结果即加热炉温度。

系统软件结构

单片机程序主要包括主程序MAIN、串行数据采集模块"D_SAMPLE"和串行数据传输模块"D_COM"。TLC2543的通道选择和方式数据为8位,其功能为D7、D6、D5和D4,用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依次类推;D3和D2用来选择输出数据长度,本程序选择输出数据长度为12位,即设置D3D2=00或D3D2=10;D1、D0选择输入数据的导前位,D1D0=00选择高位导前。TLC2543在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行移出。主程序MAIN的程序流程如图3,测试时用的是单通道,晶体管显示后,直接传到PC机上,再返回采集。在本刊的网站(www.eleworld.com)上给出了部分程序,供读者参考。分模块介绍如下:

(1)初始化程序INIT 主要是对定时器/计数器、中断源、串口的初始化。

(2)串行数据采集模块D_SAM PLE 单片机通过编程产生串行时钟,即由CLK先高后低的转变提供串行时钟;并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出;用累加器和带进位的左循环移位指令来合成SPI功能。程序流程图如图4所示。

(3)串行数据传输模块D_COM 串行数据传输模块应包括串行口初始化INIT和数据传输程序D_COM,在此把INIT写到总的初始化子程序中。数据传输程序D_COM可采用查询方式亦可采用中断方式,两者可方便替换。笔者用的是中断方式,采用MOV SBUF,A进行发送数据,一条写SBUF指令就可启动数据发送过程,在发送移位时钟(由波特率确定)的同步下,从TXD先发出起始位,然后是8位数据位,最后是停止。这样的一帧10位数据发送完后,中断标志TI置位。程序流程如图5。

(4)上位机串口接收程序设计上位机串口接收数据程序用C语言,包括初始化子程序和接收子程序。

(5)16进制到BCD码的变换程序HEXTOBCD 把原始16进制结果存储在R2、R3中,将转换后的BCD码结果存储在起始地址是70H的缓冲区中。

(6)LED显示驱动程序 MAX7219是八位串行共阴LED数码管动态扫描驱动电路,每片可驱动8个LED数码管,通过对片内的位和控制寄存器编程,可选择译码方式、LED个数、显示亮度和关闭等功能。

抗干扰措施

笔者设计的加热炉温度采集系统由于现场使用环境较恶劣,各种干扰因素较多,因此必须采取有效的抗干扰措施以确保系统稳定工作,下面介绍我们在该系统上采取的抗干扰措施。

(1)光电隔离 在输入和输出通道上采用光电隔离器来进行信息传输是很有好处的,它将微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。

(2)过压保护电路 在输入输出通道上应采用一过压保护电路,以防引入高电压,伤害微机系统。过压保护电路由限流电阻和稳压管组成,限流电阻选择要适宜,太大会引起信号衰减,太小起不到保护稳压管的作用。稳压管的选择也要适宜,其稳压值以略高于最高传送信号电压为宜,太低将对有效信号起限幅效果,使信号失真。

(3)配置去耦电容原则上每个集成电路芯片都应安置一个0.01mF的陶瓷电容器,可以消除大部分高频干扰。

(4)良好接地 本系统既有模拟电路又有数字电路,因此数字地与模拟地要分开,最后只在一点相连,如果两者不分,则会互相干扰。

结束语

由于微型计算机控制技术的引用,使得温度采集技术的各项指标大幅度提高。本文介绍的以AT89C2051单片机为核心构成的加热炉温度采集系统,可以实现对炉温的多道采集、晶体管显示和PC机对温度变化的曲线图绘制。实际应用时,系统运行正常,效果较佳。

猜你喜欢
数码管加热炉单片机
基于单片机的SPWM控制逆变器的设计与实现
Arduino编程
基于单片机的层次渐变暖灯的研究
MC9S08FL16单片机数码管静态显示分析
基于单片机的便捷式LCF测量仪
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
便携无火加热炉
Microchip推出两个全新PIC单片机系列
加热炉富氧推火与引火燃烧的火焰变化规律分析