管湘芸
(无锡商业职业技术学院,江苏无锡 214053)
一般的小信号量测量,先要经过信号放大,然后进行AD采样,再通过MCU对采样值进行处理,最后得到较为准确的读数。现在的MCU一般都集成10bit/12bit的ADC,所以无需采用专门的ADC芯片,而放大电路则需采用单独的运算放大器。
EM78P259N是台湾义隆公司生产的一款8位单片机,内含4路12位AD,1个比较/放大器,3个8位定时器和1个16位定时器。可选择外部晶振模式、外部RC振荡模式和内部RC振荡模式,赋予用户灵活的选择。该MCU基于义隆公司成熟的EM78系列内核,拥有良好的开发环境。
系统主控部分采用EM78P259N,供电电压为+5V。该电源电压需要经过适当的滤波处理,被测量的信号接入以EM78P259N内部OP为核心的负反馈放大电路。放大后的直流信号经由MCU的管脚输出并直接接入EM78P259N的AD输入端进行ADC转换,所得数据经过一系列处理后被显示出来。
系统显示部分采用LCD1602液晶显示模块,显示“000mV-999mV”,如果所测电压大于999mV,则显示最大值“999mV”,系统框图如图1所示。
图1 系统框图
该系统所测信号为小于1V的直流电压信号,需要进行放大。在此利用EM78P259N内部集成的OP来搭建负反馈放大电路以实现信号调理功能。这样既节省了整个系统的成本,又因为采用了集成元件而提高了系统的抗干扰能力。
输入电压信号的负端直接接地,正端经电阻分压后输入放大器的同相端。R3和VR1构成电压串联负反馈,调整VR1阻值以获得一定的电压放大比,放大后的电压直接接入到芯片的ADC输入端,见图2。
将放大后的直流信号输入到EM78P259N的AD中,经转换可以得到12bit的AD数值。但我们知道,单次AD转换得到的数据因受各种因素影响存在很大的误差,尤其是信号较小时,易受到噪声的干扰,需要多次采集数据并经过滤波处理才能得到一个相对准确的值。本系统的软件采用中值结合平均值滤波法。以下是数据采集流程图,见图3。
图2 电压放大电路
图3 数据采集流程图
不间断进行5次AD转换后,求得5次转换的中间值。将512个这样的中间值相加,然后再除以2048。如果每一个中间值都相等,则相当于单次值除以4。
根据放大电路结构,我们得到输出电压为Vout=Vin*R2/(R1+R2)*(1+ VR1/R3)。当R2>>R1时,放大器正输入端电压接近于Vin,所以放大倍数仅取决于滑动变阻器VR1和R3的比值。同时,根据软件所用中值滤波法的处理,我们将AD平均值减小为理论值的1/4,所以,经过调整,最终VR1和R3的比值约为3左右。
同时,因为所用元器件性能存在一定的差异,每一个系统的放大倍数都不一致。所以,在实际应用中,我们使用5位半的电压表对该毫伏表进行校准。通过调整VR1的阻值来调整放大倍数,从而实现较为精确的电压测量和显示。
利用8位单片机EM78P259N的丰富内设,我们选择较为简单的外围元器件和适当的软件处理方式,实现了一个实用的直流毫伏表,该方案已成功应用于实验室教学等领域。
1 张 俊.匠人手记——一个单片机工作者的实践与思考[M].北京航空航天大学出版社,2008
2 童诗白,华成英.模拟电子技术基础(第三版)[M].高等教育出版社,2005
3 李学海.EM78单片机实用教程(基础篇)[M].电子工业出版社,2003