基于AVR单片机的多路直流电平检测电路设计*

2014-09-26 08:59林斯佳喻兰芳崔海波
电子器件 2014年2期
关键词:数码管电压表寄存器

李 颖,梁 庭*,林斯佳,喻兰芳,崔海波

(1.中北大学仪器科学与动态测试教育部重点实验室,太原030051;2.中北大学电子测试技术国防科技重点实验室,太原030051)

基于AVR单片机的多路直流电平检测电路设计*

李 颖1,2,梁 庭1,2*,林斯佳1,2,喻兰芳1,2,崔海波1,2

(1.中北大学仪器科学与动态测试教育部重点实验室,太原030051;2.中北大学电子测试技术国防科技重点实验室,太原030051)

在现代检测技术中,经常需要对智能仪器内部的多路直流电平进行实时检测,从而得知工作是否正常。为此以AT-mega16单片机为核心器件,采用内部ADC、加减运算电路以及三参数软件精度校准方法来设计一种测量系统,可以对-10 V~+10 V量程范围内的多路直流电平进行实时检测并用数码管显示。该系统通过proteus仿真以及对两路电平进行实际测量,误差范围≤0.02 V,且体积小、结构简单、工作可靠、响应速度快,可作为实际应用。

电平检测;ATmega16;软件精度校准;正负量程;多路

目前,由MCS-51和A/D转换器构成的数字电压表已被广泛应用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域[1]。这些基于MCS-51单片机的数字电压表一般采用专用的A/D转换器,并且电路需要搭配专门的译码和锁存电路把模拟信号转换成合适的数字信号,这样使得系统的设计相对复杂[2]。同时,这些数字电压表大都只是针对单路直流电平的测量进行设计,且测量范围一般仅局限于正电压,本文以ATmega16单片机为核心器件设计的测量系统可以实现对多路正负直流电平的精确检测。

1 系统总体设计方案

该系统的总体设计方案由七部分组成:ATmega16单片机、复位电路、时钟模块、两组四位一体LED数码管及其驱动模块、加减运算电路和待测输入信号。系统总体设计框图如图1所示。加减运算电路用于将-10 V~+10 V直流电平转换为0~5 V,AT-mega16作为核心控制器件,通过PA0和PA1口完成对两路电平信号的采集,然后利用内部自带的ADC实现对电平信号的模数转换,最后通过数据处理控制LED显示两路直流电平的数值。

图1 系统总体设计框

2 系统硬件电路构成

系统的硬件电路原理图如图 2所示。AT-mega16是基于增强的AVR RISC结构的低功耗8 bitCMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1 (MI/S)/MHz,从而可以缓解系统在功耗和处理速度之间的矛盾[3]。单片机的PA0~PA7八个I/O口均可作为待测直流电平的输入口,本系统通过编程循环设置PA0、PA1为信号输入口,用PB4、PB5、PB7 3个I/O口以及两个锁存器来动态点亮两组四位一体数码管,显示待测直流电平的数值。

图2 系统硬件原理图

2.1 内部自带ADC

ATmega16内部集成了一个10 bit逐次比较型的ADC电路,具有0.5LSB积分非线性误差、± 2LSB的绝对精度、13 μs~260 μs的转换时间,以及最大精度下可达到15 ksample/s的采样速率,因此使用AVR可以非常方便的处理输入的模拟信号量[4]。ATmega16的ADC与一个8通道的模拟多路选择器连接,能够对以PORTA作为ADC输入引脚的8路单端模拟输入电压进行采样[5]。ADC包括一个采样保持电路,以确保在转换过程中输入的电压保持恒定,使用方便。ADC模数转换的参考电源可选用内部的2.5 V电源或者AVCC,也可以使用外部参考源[6]。本文通过设置多路选择复用寄存器ADMUX,用VCC作为参考电源从VREF引脚输入,并选择PA0口和PA1口作为两路直流电平的数据采集口;通过设置控制和状态寄存器ADCSRA来实现ADC的使能、转换的开始与结束、以及采样时钟频率的选择。本文设置的ADC技术指标为:采样时钟187.5 kHz,采样速率7.5 ksample/s。

2.2 加法运算电路

集成运放加上适当的反馈网络,可以实现模拟信号的数学运算[7]。为了将-10 V~+10 V范围内的待测电压转化为单片机模拟输入引脚所能识别的0~5 V电压,选用LM324及其反馈回路组成加法运算电路。如图3所示。这里,PA0端的输出电压U0=-R4(Ui/R1+Uref/R2),由于模拟信号是反相输入的,为了保证+10 V电压输入时输出电压不小于0,取Uref=-10 V。

图3 加法运算电路原理图

2.3 显示驱动电路

如图2所示,74HC595集成8 bit移位寄存器和一个存储器,用单片机PB7、PB4、PB5口分别作为移位控制引脚、数据输出控制引脚以及数据的传送引脚来控制数码管的显示。每当SH_CP引脚的上升沿到来时,DS引脚的当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7'也会串行输出移位寄存器中高位的值,连续进行8次就可以将一组8 bit数据送到移位寄存器,当ST_CP引脚的上升沿到来时,移位寄存器中的数据通过Q0~Q7输出。图2中左右两个74HC595分别用于控制数码管的位选和段选。

3 系统软件设计

系统的软件设计包括初始化、启动模数转换、数据的处理与显示,对实际系统的校准等。整篇代码采用单片机C语言编写,具有编程效率高、可读性强、便于修改等优点[8]。主程序流程图如图4所示。系统的初始化包括设置参考电源、转换结果的存放格式、设置模拟电压输入口、转换模式以及采样时钟频率等,进而循环往复对两路电压进行采集、转换、处理和显示。

图4 主程序流程图

3.1 数据处理子程序

数据处理子程序流程图如图5所示。AD转换成的10 bit数据存储在ADCH、ADCL两个寄存器中,将其赋予dat。ref0、ref负、ref正3个参数分别对应0、+10 V、-10 V输入时模数转换后的数据,由于待测电压是从运放的反相端输入的,负电压转换后的数据大于ref0,正电压转换后的数据小于ref0。根据关系式Ui/10 V=dat/(ref负-ref0)即可得到显示结果。

图5 数据处理子程序流程图

3.2 实际应用中对系统的校准

设计系统实物的过程中由于电阻阻值误差的不可避免性直接影响到加法运算电路的精度,进而影响到系统测量的精度,该设计采用三参数校准方法实现系统实物的设计[9]。硬件实物完成之后,选用性能可靠的万用表作为标准测量设备,首先调节待测直流稳压电源使其万用表的读数为0,然后通过编程微调ref0的参考值,直到数码管显示为0时确定ref0的值,然后运用相同的方法确定ref正和ref负两参数的值即可保证系统实物的使用精度。

4 实测数据

应用该检测电路实际检测由直流稳压电源提供的-10 V~+10 V待测电压,并用数字万用表进行监测,输入电压值为万用表对直流稳压源测量的电压值,实际测量值为由电平检测电路处理后经4 bit数码管显示的电压值,记录测量数据如表1所示,数据拟合曲线如图6所示。由测试数据可以清晰地看出,本文设计的多路直流电平检测电路可用于实际测量,且绝对误差≤0.02 V。

表1 测量数据

图6 测量数据拟合曲线

5 结语

该系统采用ATmega16单片机为核心器件实现对多路直流电平的检测及显示功能。设计过程中采用Proteus软件进行仿真调试,使用内部自带模数转换ADC,电路结构简单,成本低,操作方便。用三参数软件校准的方法用于系统实物的调试,能够精确测量范围在-10 V~+10 V的两路直流电平,且速度快、性能可靠,有较高的实用价值。

[1] 赵静,刘少聪.基于单片机的数字电压表设计[J].数字技术与应用,2013,36(2):121,125.

[2] 骆旭坤.基于AVR单片机实现积分式直流数字电压表的设计[J].黎明职业大学学报.2008(1):31-34.

[3] 汪炼,韩震宇.基于AVR单片机的串口通信[J].中国测试技术,2003,29(2):52-53.

[4] 孙艳玲,罗友,张东清.一种单片机实时显示太阳能充放电控制器设计[J].电子器件,2012,35(4):435-439.

[5] 李建成.基于单片机的数字电压表设计与仿真[J].现代电子技术,2012,35(21):170-172.

[6] 翟永前,蒋芳芳.基于MSP430单片机的智能数字电压表设计[J].化工自动化及仪表.2011,38(3).297-300.

[7] 华成英,童诗白.模拟电子技术基础[M].4版.北京:高等教育出版社,2006:330-334.

[8] 边晶莹,李晓峰,李平周.基于FPGA的新型数字电压表设计[J].现代电子技术,2010,33(6):185-188.

[9] 甘本鑫,苏红艳.基于单片机交直流数字电压表的设计[J].科技信息,2008,32(32):247-248.

李 颖(1987- ),女,河北保定人,硕士研究生,主要研究方向为光电传感器,praiseu@126.com;

梁 庭(1979- ),男,山西长治人,中北大学副教授、硕士生导师、博士,主要从事光学气体传感器及高温压力传感器等的研究,liangtingnuc@163.com。

Design of Detection Circuit for Multi-channel DC Level Based on AVR Microcontroller*

LI Ying1,2,LIANG Ting1,2*,LIN Sijia1,2,YU Lanfang1,2,CUI Haibo1,2

(1.Key Laboratory of Instrumentation Science and Dynamic Measurement(North University of China),Ministry of Education Taiyuan 030051,China; 2.Science and Technology on Electronic Test and Measurement Laboratory,North University of China,Taiyuan 030051,China)

In modern detection technology,real-time detection for multi-channel DC level inside the intelligent instrument is required frequently to ensure its working properly.ATmega16 microcontroller is used as the core device,using the internal ADC,the addition and subtraction operational circuit,and the precision calibration method of three-parameter software to design a measurement system.Multiple DC level of-10 V~+10 V range can be monitored real-timely with digital display.Proteus simulation and actual measurement were both used in the system,which showed the error did not exceed the scope of 0.02 V,together with the characteristics of small size,simple structure,reliable work and fast response made it work properly in practical application.

level testing;ATmega16;software calibration precision;positive and negative range;multi-channel

10.3969/j.issn.1005-9490.2014.02.018

TM932

A

1005-9490(2014)02-0254-04

项目来源:国家自然科学基金项目(51075375)

2013-06-05修改日期:2013-06-26

book=257,ebook=91

EEACC:1130B

猜你喜欢
数码管电压表寄存器
STM32和51单片机寄存器映射原理异同分析
如何判断电压表的测量对象
微课教学设计之“数码管动态显示”
判断电压表测量对象有妙招
Lite寄存器模型的设计与实现
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
电压表的妙用
再探电压表内阻的测量方法