基于AT89C51的电流源设计

时间:2022-10-30 11:10:52

基于AT89C51的电流源设计

摘要:本文介绍了一种基于AT89C51的恒流源,描述了单片机、DAC、恒流源的连接方法和硬件电路构成。该系统实现了单片机对模拟电路的控制,不仅充分发挥了单片机的控制优势,提高了系统的精度和灵敏度,而且拓展了其在人机对话和电机控制等方面的应用。

关键词:单片机;DAC;电压控制电流源(vccs)

引言

恒流源是模拟电路中的重要组成部分,它可以用作偏置、控制或驱动电路。传统电流镜电路通过调整偏置电阻大小来改变恒流源特性,单凭手动改变可变电阻的大小,在一些要求非线性、高精度、快速反应的场合难以实现精确控制,而且不能在功耗和性能之间取得平衡。此外,传统电流源很容易受到温度、电源电压等因素的影响。而采用微处理器能克服上述缺点,进行自动控制和手动监控,大大提高系统的精确度和反应速度。本文介绍的是用AT89C51控制的恒流源电路,它具有外部电路简单、干扰较小、价格低廉等优点。该系统是一种数字式的电压控制电流源,可以实现非线性控制,并且在自动调整、精确控制等方面有广阔的应用前景。

系统概述

本系统由单片机、小键盘、DAC、电压控制电流源几部分组成。设计中采用的是ATMALAT89C51芯片,它有4个输入和输出口,分别为P0、P1、P2、P3。下面仅以P1口为例来说明系统原理。从4×4小键盘输入一个0~255的数值,单片机从P0口得到键码加以识别并转化成数字信号,在P1口输出对应的8位控制码,经过一个8位的DAC,转换成模拟电压。这个电压再经过电压控制电流源,实现恒流。

当系统需要更高精确度时,可以通过增加锁存器和模拟开关,对控制码进行锁存,同时换用更高位数的DAC即可。

硬件基本组成

电压控制电流源的设计

设计中采用的是线性电源,受控源可以用运算放大器来实现,如图1所示。这种电流源不受Vcc和Vee的影响,甚至在Vcc和Vee不对称的情况下,仍保持良好的线性关系。

在图1电路中,同相端电压U3和反相端电压U2相等,那么:

电流Iout是一个与负载无关的量,它的大小取决于输入电压Vin可知其具有受控恒流特性。

电压控制电流源电路具有如下几个特点:

1.当Vin>>Vcc时,Vin对电流源不起控制作用,这是由运放本身固有特性所决定的。如果要增大调节范围,就必须提高运放的Vcc和Vee。

2.R5的数值与电流大小有关,但不是式(4)给出的那种线性关系。当R5减小到一定数值的时候(如R5=50Ω),电压控制恒流源的最大电流达到负载最大电流(当Vin=Vcc时,Iout=Iout,max),而且Iout动态范围会变小。R5每减小一半,动态范围就缩小一半。当R5=0Ω时,电压控制恒流源的电流为负载最大电流(Iout,max),不随输入电压Vin变化。

3.R1影响恒流源起始电流的大小(即Vin=0V时),当R1=1MΩ时,起始电流为0mA;R1=1.6MΩ,起始电流为6.2mA;R1=I.9MΩ时,起始电流为14.2mA。故为避免零点漂移,应使R1在1MΩ左右。

4.R4也影响起始电流的大小,当R4>1MΩ时,R1起主要调节作用。

5.R3的变化影响调节的范围,如R3=300KΩ时,可调的电压为5V~10V。

三极管构成VCCS的电流大小与工作偏置电压直接相关。当Vcc改变的时候,流入负载电阻的电流会随之发生改变,而且其输出电阻较小,这些因素使得VCCS的工作特性变差。由于每个三极管的伏安特性并不完全一致,其放大倍数β也不完全相同,三级管的参数也会随温度变化,致使最后的恒流特性差异更大。此外,电流比较大时,三极管功耗非常大,使得电路效率不高,容易烧坏三极管。

这个系统使用运算放大器搭建VCCS,由于运放有差分对输入,可以抑止共模信号,对温度漂移有良好的抑制作用,有利于减少干扰。另外,恒流源的工作电流与Vcc、Vee无关,只与和它构成反馈的电阻阻值有关。运算放大器的放大倍数差异并不会影响其最终的恒流特性,稳定性较好。

DAC

设计中采用的芯片是DAC0808,它是一个8位DAC。图2是DAC典型应用电路。

图2中输出的模拟量是一个正电压,当需要负电压时,在DAC的第4引脚直接接一个3KΩ左右的电阻即可。DAC的第4引脚的电流总是流入的,其最大值为1.992mA。当外接一个3KΩ的负载电阻RL时,输出的电压是通过RL上所加的电压,最大的电压为-3KΩ×1.922 mA≈-6V(当所有位输入都是高电平的时候),与实验中的数据相符合。需要指出的是,负载电阻的大小会影响转换时间,当负载电阻为2.5KΩ的时候,在最坏的情况下,会使转换时间增加1.2μs。

单片机的控制

图3是系统中使用的控制流程图。要从小键盘读入0-255的控制信号,要调用KEY子程序3次,读入百位、十位、个位,保存在寄存器中。单片机得到这些数字后,变成一个二进制的控制码输出到DAC,控制VCCS的电流大小。最后,程序自动初始化,清空堆栈,为下一次控制信号的输入作准备。

系统性能及分析

测试仪器为滨江DT9978万用表,直流电流精度为:2m/20mA±0.8%±2,200mA±1.2%±2。当负载为500Q时,键入不同数值得到实际电流大小;而理想电流是测出VCCS输入电压值,用公式(4)计算出来。实际电流要比理想电流稍大,但是在输入的整个范围内保持良好的线性关系。系统的负载变化时,在最坏的情况下(即输入数值最大时),输出电流在负载变化时基本保持不变,具有良好的恒流源特性。

因为系统在整个输入数值范围内都具有线性关系,截取其中一段分析可得输出电流步长。系统的电流步长取多次测量的平均值,其大小为0.1mA,精度为±7%,具有较高的精确度。

系统应用

系统应用是一种真彩色LED的驱动电路,在一个LED里面封装了分别可以发出红、绿、蓝光的3块芯片,它们的光强与通过的电流直接相关,因此,要用电流源作驱动电路。中心控制为AT89C51单片机,从小键盘中输入红绿蓝的控制值(0~255)。通过P0口输入到单片机,经过单片机处理后,输出到P1口、P2口、P3口,再通过DAC把控制信号转化为一个模拟电压信号。这个电压信号通过VCCS就可以改变LED的电流,LED的光强随着电流的变大而增强。图4采用了本文介绍的电流源来实现LED驱动电路。每种颜色有256级的亮度,组合起来,这个发光管就可以发出16万种颜色――这便是人眼能够识别的真彩色。

结语

这个系统以较低的成本实现了对电流源的精确控制,同时具有良好的通用性和扩展性。本系统作为RGB三色LED的驱动电路,实现了每种颜色256级亮度,组合起来有16万种颜色,对光强的控制作用明显。此外,这个系统仅改变单片机的程序就可以用于非线性控制,这种非线性控制在实现人眼视觉效应的动态伽马校正方面具有重要意义。

上一篇:液晶控制器SED1520与单片机μPSD3334D的接口及... 下一篇:针对复杂嵌入式应用的创新处理器实现方法