基于51单片机的多通道数据采集范围控制系统
1 引 言
在实际应用中,对被控对象的物理参数(温度、湿度、位移、电流、电压等)在一定的范围内进行控制,是单片机的典型应用之一。很多宏观要求精确控制的场合,其微观控制过程,仍可归结为是对某些参数变化范围的控制。如,传统的三相异步电机从启动到正常运行,其电流、电压和温度的变化;抽水塔水位的变化;机床刀具的行程变化及数字电表的自动量程变换等。这些控制过程最显著的特点是:被控物理量都是一个变化范围,而非某一个精确的“点”。有效控制物理量变化范围的方法很多,本文重点介绍利用C8051F000单片机片内8路高性能的12位ADC数据采集系统和可编程窗口检测器,实现对多路参数变化范围控制的硬件组成和软件设计方法。
2 C8051Fxxx系列单片机介绍
美国Cygnal公司是专业从事混合信号片上系统单片机设计与制造的一家新兴半导体公司。C8051Fxxx系列是该公司以拥有自主产权并与MCS-51内核及指令集完全兼容的CIP-51为内核而集成的混合信号片上系统(System on Chip)。片内集成了数据采集和控制系统中常用的模拟部件,并能方便地通过数字交叉开关将内部数字系统资源定向到外部I/O口上。它的特点是:高达25 MIPS的执行速度,强大的模拟信号处理和资源控制功能;8路高性能的12位ADC(最大转换速率为100 kSPS)数据采集系统,两路12位精度DAC,两路模拟比较器和ADC可编程窗口检测器;8K~128K字节闪速/电可擦除程序存储器、256~8 448 bit的RAM;覆盖了典型的串行通信接口,22个中断源,7个复位源;先进的JTAG非侵入式在线调试和看门狗、电源监视等可靠的安全机制。该产品汇集了单片机领域许多先进技术,成为目前功能最强大的8位单片机之一。
3 硬件电路组成及原理
电路硬件组成如图1所示,分成数据采集、按键控制和显示输出三大部分。C8051Fxxx系列的8路模拟量采集通道,通过选择不同功能的传感器或电量转换装置(如电流、电压互感器、集成温度传感器等),就能完成对被测目标系统多路参数的数据采集。工作时,系统不断将各通道采集来的数据与用户事先设定的上下限极值进行比较,系统执行机构根据比较结果,确定是否越限而作出相应的操作。系统为5位LED显示,低4位用来显示用户所选定通道的模拟信号大小或上下限极值设置数据,最高位LED4为通道数字(0~7)显示位。P0.0~P0.7为各通道越限处理输出,分别控制相应的执行机构。
3.1 按键控制功能
这是整个系统最复杂、但也最能体现设计思想的一部分。为了方便地选择通道及显示设置数据,以尽量少的按键完成尽可能多的功能,实现较好的人机界面和软、硬件资源的有机结合,在此设置了选择通道的“切换”键S1、进行ADC窗口检测器上下限极值设定的“设置”键S5、改变LED显示数据的“+”、“-”键S3、S4,并要求它每按一次使显示值加(减)1,如果连续按键超过一定时间(如2s),则显示值将很快地递增或递减。用户设置完毕,按下“存储”键S2,可将所设数据保存在非易失性数据存储器FLASH中,避免由于断电而需重新设置数据。通过软件设计完成数据的自我备份与保护,不需要另置备用电池,简化了硬件结构。
3.2 ADC的工作方式及窗口检测器
C8051F000片内ADC子系统内除集成了1个多通道模拟输入选择器(AMUX)、可编程增益放大器(PGA)和1个100 kSPS、12位分辨率的逐次逼近型ADC外,还集成了跟踪保持电路和可编程窗口检测器,它们完全由CIP-51通过特殊功能寄存器控制。
ADC0CN寄存器:控制转换启动方式和结果数据存放方式,设置ADC转换结束和窗口检测器中断标志等。A/D转换允许用软件事件、硬件信号触发转换或进行连续转换,每次转换完成后产生一个中断,或者用软件查询来判断转换是否结束,完成后数据字被锁存在指定的寄存器中。
AMXOSL、AMXOCF寄存器:ADC通道选择。当AMXOCF=00H时,AMXOSL从00H~07H分别表示选择AIN0~AIN7八个模拟输入通道。
ADC0GTH、ADC0GTL寄存器:这两个存贮单元是ADC可编程窗口检测器供用户设定的上限12位数据寄存器。ADC0GTH是高4位,ADC0GTL为低8位。
ADC0LTH、ADC0LTL寄存器:ADC可编程窗口检测器供用户设定的下限12位数据寄存器。
4 软件设计
为便于以后的升级和维护,软件设计采用积木式模块化处理,各功能模块既相互联系,又能自成一体。其基本设计思想是:利用定时/计数器T3的溢出,定时地启动ADC转换和窗口比较器中断。通过中断处理,将相应通道的12位转换数据与由用户设定的上下限极值作为越限条件进行比较,产生新的中断输出,驱使系统执行机构进行相应的调整,从而达到把数据控制在某一范围内的目的。
主程序由初始化、显示、定时比较、按键处理等软件功能模块组成。图2为主程序流程框图。图3为中断处理子程序。这里只给出主程序清单,所有被调用的子程序略。
LOOP0:ACALLWORK0;调通道“切换”键处理子程序。供用户选择通道,并显示其上下限极值
ACALL WORK1;调“存储”键处理子程序,将用户的设置值保
存在8000H以后单元的FLASH中
ACALL WORK2;调“+”键处理子程序,实现显示数据递增,有连加功能,方便快速调节
ACALL WORK3;调“-”键处理子程序,用于递减地调节显示数据,有连减功能,方便快速调节
ACALLWORK4;调“设置”键处理子程序。用户进入极值设定状态,实现上下限极值显示的转换ACALLDISP;调显示子程序SJMPLOOP0
5 结束语
C8051Fxxx系列单片机自2000年推出以来,其强大的内部功能和丰富的片内资源,使之能用最简单的硬件结构实现多通道数据范围的检测。本文设计的控制系统只要配置合适的电量传感器,就可方便地用于各类电力变电系统对三相电流、电压等进行范围控制,以确保电网的安全运行,具有良好的推广应用价值。
1 李 刚,林 凌.与8051兼容的高性能、高速单片机——C8051Fxxx.北京:北京航空航天大学出版社,20022 肖定柏.LHB型交流互感器在家电中的应用.电子技术,1996(12):42
3 龚成龙.智能异步电动机综合保护器设计.单片机与嵌入系统应用,2002(2):63~65
4 何立民.单片机应用技术选编.北京:北京航空航天大学出版社,1997
5 潘琢金,施国君.C8051Fxxx高速SOC单片机原理及应用.北京:北京航空航天大学出版社,2002
6 李 华,等.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,2002
评论