企业档案
- 会员类型:免费会员
- 工商认证: 【未认证】
- 最后认证时间:
- 法人:
- 注册号:****
- 企业类型:生产商
- 注册资金:人民币***万
联系我们
联系人:李雪
热门标签
技术文章
单片机AT89C52的温度测量系统
单片机AT89C52的温度测量系统 | |
作者:不详 来源:网上收集 更新日期:2008-2-27 阅读次数: 17 | |
摘要:本文详细介绍了基于单片机AT89C52的温度测量系统,对系统中信号输入通道、信号处理、数据显示等从硬件和软件两方面进行了阐述,并做了相应的理论分折,系统可以实现多点温度巡回采集处理与变送的功能。 关键词: 变送器 传感器 单片机 一、概述 二、系统硬件设计 1、系统结构框图及人机界面 系统的结构框图见图二。系统硬件部分主要由前端输入电路,A/D及D/A电路,人机界面电路,CPU及外围电路组成。系统达到的主要功能是充许四路信号输入,用户可以通过参数设定选择输入热电偶类型,平时显示温度平均值,若操作者需要可以按动面板上的按键查看任一路信号的温度。四路信号是独立的,有一路短路或断线故障,不影响其它几路信号的工作。仪表具有超限报警功能及热电偶断线提示功能。温度平均值或温度的一路信号的变送为4-20mA电流信号输出。系统具有掉电保护功能,当掉电时,设定数据可以保存。 系统设计有良好的人机界面,操作显示面扳见图3,在控制显示面板上有两排数码管和四个按键,进行系统工作的显示和参数的修改。系统工作方式分为两个状态分别为编程和运行。利用一号键K1(状态切换键)可以在两种状态间切换。在编程状态时,上一排数码管显示参数代号,下排数码管分别显示对应参数。在这种状态下,利用二号键K2(移位键)可以顺序变换不同的参数代号及参数。利用三号键K3(加键)和四号键K4(减键)可以对参数进行修改。 在运行状态时,上一排数码管显示各个信号回路顺序号(1~~5),下排数码管分别显示对应温度。其中1~4路分别显示四路回路号及其温度,5路显示四路中温度平均值。这五路自动循环显示,利用四号键K4(定位键)可以使显示内容停在当前回路上。在编程或运行状态下,无论何时按下K1,都可使状态变换到另一种状态的初始阶段。 电路设计中没有扩展总线及程序存储器及I/O口,CPU的四个并行口全作为普通I/O口使用,CPU及外围电路都是标准用法,在此重点介绍有设计特色的A/D及D/A电路和人机界面电路及电源电路。 2、数据采集电路与放大电路 数据采集部分电路如图4所示,限流电阻R1和稳压管TL431产生2.5V标准电压。系统共有7路模拟输入信号,4路热电偶信号输入(EXT1————EXT4),1路冷端补偿信号,一路基准信号,一路地信号(EXT5)。2.5V电压加在10K电阻和外接二极管串联支路上,构成热电偶的冷端补偿电路,它是利用二极管正向工作的电压-温度特性测量冷端温度,基准信号利用2.5V电压和分压电阻产生。因此采用了8选1多路模拟开关CD4051,由单片机的P2.0、P2.1、P2.2三个引脚高低电平控制模拟通道的选择。由于输入热电偶分度号由用户设定,不同分度号信号大小不一,故设计了由OP07和4051(U2)组成的程控放大器,输入信号经放大后进入A/D,经采集处理后得出各路信号值。程控放大是利用单片机对4051的控制,选择不同的通道,同时也就选择了不同的放大倍数。4051外接的电阻是:R25=20K,R26=47K,R27=2.4K,R28=3.9K,R29=1.9K,共有4个不同的放大倍数,分别为放大倍数1=(20+47+2.4+3.9+1.6)/(47+2.4+3.9+1.6)≈1.3倍、放大倍数2=(20+47+2.4+3.9+1.6)/(2.4+3.9+1.6)≈10倍、放大倍数3=(20+47+2.4+3.9+1.6)/(3.9+1.6)≈14倍、放大倍数4=(20+47+2.4+3.9+1.6)/1.6≈46倍。1.3倍的放大倍数主要用于冷端补偿二极管信号的采集,电路中四个22M上拉电阻完成热电偶断线捡测功能。 石灰炉内4点放四只热电偶,作为系统的四路mV信号输入端。热电偶信号被选通输入后进入程控放大电路,信号分度号不同则mV值的高低也不同,通过软件选择不同的放大倍数,使这些放大后的信号值接近A/D的充许值;以充分利用A/D资源,保证测量精度。设放大倍数为A,则从程控放大出来的信号即为AX。各种信号的放大倍数的确定和后面A/D器件的模拟输入有关,本电路的A/D选择7135(五位半),基准电压为0.5V,7135的模拟输入的范围为0~1V电压。例如B、S标准热电偶,放大倍数应选择46,K、E、标准热电偶放大倍数应选择14。冷补二极管信号为0.65V左右,采用1.3倍放大倍数,现以一路信号的转换计算为例说明,测量某路热电偶输入时依次采集外接热电偶输入毫伏值、冷端补偿二极管电压降、基准电压及模拟地。从4051的X2端输入V基是己知电压,并固化于程序中,D基、D零、Dx分别是基准、零点及输入热电偶信号的实时A/D采集值,通过下式可以完成零点满度的自校正,计算出VX值。由于V基、Vx及地三个信号经过同样的硬件输入通道,硬件的离散性误差及零点满度漂移对三者的影响相同,通过下面公式可以校正零点、放大倍数及A/D各环节的误差,在用一般器件的情况下可保证系统的测量精度。 zlg7289具有SPI串行接口功能的可同时驱动8位共阴极数码管(或64只独立LED)的智能显示驱动芯片,无须外围元件可直接驱动八位LED数码管并可同时连接多达64键盘的键盘矩阵,单片即可完成LED显示及按键的扩展。zlg7289内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。本系统用了两排4位数码管,数码管用的是动态显示的。根据zlg7289的要求,数码管选用共阴极的,Zlg7289的18脚~25脚接数码管的位驱动端,10脚~17脚接数码管的段驱动端,通过数据线和时钟线可以把要显示内容送入7289。本电路只设计了四个按键,当有键按下时,KEY引脚电平发生变化通知CPU通过数据线和时钟线读取键值。 5、报警电路及信号输出电路 报警有两种:上限报警和下限报警,两个报警继电器分别通过PNP驱动三极管接在单片机的P0.5和P0.7,低电平有效。软件设计当四路信号及平均值超过各自所定的上限时,继电器就发出报警,同时在控制面板的上排数码管的*后一位显示H字样;同样,当四路信号及平均值低于设定的下限时,继电器也报警,并在同一个位置显示L字样。 模拟输出部分的电路图如图6所示。单片机根据设定参数选择把温度平均值或温度那一测量点信号送到十位D/A芯片7520,配合LM741放大器得到电压输出;*后经再经过一个LM741构成的V/I转换电路,得到模拟电流4-20mA及1-5V电压形式输出。 6、开关电源电路 本变送器采用DDZ-Ⅲ型的电动单元组合仪表24V直流电源,这种供电方式的优点是各单元省掉了电源电压器,没有工频电源进入单元仪表,既解决了仪表发热问题,也为仪表的防爆提供了有利条件。由于内部需要±5V,所以该系统采用了DC/DC开关电源,生成5V和-5V电压。电源部分电路如图7。 电源电路采用的MC34063是一种集成了DC-DC变换主要功能电路的芯片,它能被设计完成升(降)压和极性变换的功能,而且所需外接元件少。外输入24V电压,经过MC34063电压可以转换为+5V,而后,该电压又经过ICL7660变成-5V电压。24V电压可以同时供内部4-20mA输出电路使用。电路工作时5V电流0.4安培,-5v电流0.02安培。 三.软件设计及调试 主程序主要包括两大分支,一个是编程状态,一个是运行状态。 单片机首行初始化,程序的初始状态设置为运行状态,除刚通电进入运行状态外,以后程序须判断状态标志位,根据判断结果程序进入编程或运行状态。在运行状态下无法对各参数进行编辑,只能从24C02读出各种运行工作参数,巡回测量输入信号,*后通过零点满度自校正处理,冷端补偿计算,查表处理得出各测量点温度值。在该状态下可通过←键选择显示测量、报警、故障信息等各种运行参数。在编辑参数的状态下系统不进行测量,刚进入编程状态时要求输入编程充许密码,在输入密码正确的前提下,可以通过←键选择各设定各参数,并可通过↑↓按键修改,存入24C02中,停止按键操作5分钟后不管是否按状态键均自动转入运行状态。 单片机在运行状态时,上面四位数码管显示回路号(*合二位显示报警及故障信息),下面四位数码管分别显示对应数据,可通过K4键来切换显示不同的回路及其参数。其中回路号1-4表示不同的四路信号,平均值在第五路显示。比较后其中的一路及四路平均值可以通过参数的设定选择以4-20mA形式变送输出。软件确定4051与AT89C52相连四路信号选择电平,选择的模入信号经程控4051和运放放大后,进入ICL7135进行A/D转换,由电压信号转化为BCD码(由万位到个位,五位地址输出)。利用转换子程序把BCD码转换为十六进制数,*后进行各种数据处理得出温度值,求出值及平均值,并进行报警及信号故障判别处理。 |
原创作者:厦门科昊自动化仪表有限公司