数控恒流源电路图
数控直流恒流源的设计 (附外文翻译)

数控直流恒流源的设计摘要直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。
本文介绍了采用AT89C51单片机为主控制器,通过键盘来设置直流恒流源的输出电流,并由数码管显示电流设定值的数控直流恒流源。
本系统由单片机程控设定数字信号经过D/A转换器输出模拟量,再经过V/I转换电路的转换输出不同的电流。
输出电流范围为10~100mA,电流设置步进为1mA,输出电流调整率≤2%。
本文主要分析了数控直流恒流源系统的设计需求,阐述了数控直流恒流源的软硬件的设计原则,介绍了数控直流恒流源各模块电路的功能及设计思路,完成了数控直流恒流源系统的全部设计,给出了完整的电路图和程序。
本文设计的重点是单片机主控系统和D/A转换电路,设计的难点是高线性、高稳定度的电压/电流转换电路(V/I转换电路)。
测试结果表明,本系统能满足需要高稳定度的小功率直流恒流源领域的应用要求。
关键词数控恒流源 V/I转换ABSTRACTNumerical control DC constant current source is to provide a stable DC power devices, and equipment for scientific experiments debugging necessary equipment. This paper instructed the numerical control DC constant current source which makes use of the AT89C51 version single chip microcontroller is the main controller in this system, while the set value and the real output current can be displayed by LED. In this system, the digitally programmable signal from Single Chip Micro controller is converted to analog value by D/A converter, and then transited by voltage/current converter circuit, so adjustable output different current. Output current range of 10~100mA, current set of 1mA step, the output current adjustment rate of less than 2%.This paper analyzes the numerical control DC constant current source system design needs, expounded numerical-controlled DC constant current source of the hardware and software design principles, instructed the numerical-controlled DC constant current source circuit of the module function and design ideas, completed the numerical-controlled DC current source of all design, and the circuit is complete and procedures. This paper focuses on the design of the control system microcontroller and D/A Conversion Circuit, The difficulty in the design of high linearity, high stability of the voltage/current converter circuit (V/I Conversion Circuit). The test results have showed that it can be applied in need areas of constant current source with high stability and low power.KEY WORDS numerical control constant current source V/I convert目录前言 (1)第1章系统总体设计 (2)1.1 系统设计任务与要求 (2)1.1.1 系统设计任务 (2)1.1.2 系统设计要求 (2)1.2 重点研究内容与实现方法 (2)1.2.1 重点研究内容 (2)1.2.2 实现途径及方法 (3)1.3 系统总体方案设计 (3)1.3.1 主控模块 (3)1.3.2 键盘与显示模块 (4)1.3.3 恒流源模块 (4)1.3.4 存储器扩展模块 (4)1.3.5 电源模块 (5)1.3.6 系统原理框图 (5)第2章系统硬件各功能模块的设计 (6)2.1 主控模块的设计 (6)2.1.1 AT89C51单片机简介 (6)2.1.2 D/A转换电路的设计 (7)2.1.3 恒流源电路的设计 (9)2.1.4 数据存储器的扩展 (10)2.1.5 系统资源分配 (11)2.2 人机接口的设计 (12)2.2.1 键盘的设计 (12)2.2.2 显示电路的设计 (14)2.3 系统抗干扰设计 (15)2.3.1 看门狗电路的设计 (15)2.3.2 电源供电系统的设计 (16)2.3.3 基准电压的设计 (17)第3章控制软件的设计 (19)3.1 主程序的设计 (19)3.1.1 读写EEPROM子程序的设计 (19)3.1.2 键盘处理子程序的设计 (20)3.1.3 D/A转换子程序的设计 (20)3.2 键盘中断服务程序的设计 (21)3.3 显示中断服务程序的设计 (21)3.1.1 正常显示程序模块 (21)3.1.2 闪烁显示程序模块 (21)第4章系统调试 (28)4.1 硬件仿真调试 (28)4.2 软件的调试 (31)4.3 数据测试及误差分析 (35)第5章结论 (41)致谢 (42)参考文献 (43)附录1:电路原理图 (44)附录2:源程序 (48)附录3:英文原文 (62)附录4:中文译文 (69)前言直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。
一种高精度数控双极性恒流源电路的设计

一种高精度数控双极性恒流源电路的设计引言近年来,随着计算机使用的普及,在实际的测量和控制中,特别是由计算机参与的测控过程中,数控恒流源往往是电路中不可缺少的组成部分。
随着大规模集成电路的发展,测控技术在精度方面提出了更高要求。
本文设计的高精度数控双极性恒流源电路主要由D/A 芯片AD5542,基准源芯片ADR433,高精度运放OP97 和三极管来实现。
系统硬件设计该高精度数控双极性恒流源的系统框图如图1 所示,它由总线端、数字隔离电路、D/A 转换电路、V/I 转换电路组成。
计算机通过总线传送给D/A 芯片码值,D/A 将码值转换成相应的电压,然后通过V/I 转换电路将电压转换成电流,由于该D/A 输出的电压是双极性的,因此可以获得双极性的电流。
D/A 转换电路数字隔离电路就是用专门的磁隔SI8440 芯片来对计算机输出的数字信号和D/A 输出的模拟信号进行隔离。
D/A 转换电路中的D/A 芯片采用ADI 公司的AD5542,这是一款单通道、16 位、串行输入、电压输出数模转换器,采用5V 单电源供电;采用多功能三线式接口,并且与SPI、QSPI、MICROWIRE、DSP 接口标准兼容;其具有±0.5LSB 的积分非线性典型值,±0.5LSB 的微分非线性为-1.5LSB 的增益误差,±0.1 ppm/℃的增益误差的温度系数,±1 LSB 的双极性零点误差,±0.2 ppm/℃的双极性零点误差的温度系数,-VREF~VREF 的输出电压范围,在常温下无需进行任何调整就可提供16 位性能;其输出不经过缓冲,可。
资料:高效数控恒流电源设计

高效数控恒流电源一、任务分析本系统的硬件部分主要包括三大部分:键盘和显示电路、DA和AD转换电路、恒流源电路。
键盘用来输入预设值,显示器用来显示预设值和实际输出值,DA用来输出模拟量控制恒流源输入端,AD转换用于电流测量,压控恒流源是系统的重要组成部分,它的功能是用电压来控制电流的变化。
通过键盘输入预定电流值,利用AT89S51将数据送入液晶显示器显示当前设定值,同时将数据送人DA,DA输出的电压作为数控电流源输出电流的控制信号,采用场效应管进行扩流,能精确的输出200mA~2000mA数控可调直流恒流源。
此信号由AD转换为数字信号,单片机将此数据读人内部数据存储器,再送人LCD显示,通过显示器看到预定值和输出值。
二、方案论证与比较1、单片机部分方案一:采用目前比较通用的51系列单片机。
此单片机的运算能力强,软件编程灵活,自由度大。
本系统要求输出电流为200mA~2000mA,若步进取为10mA,则变化只有180个点,外接两个8位的AD和DA就能满足要求。
51单片机有32个输入/输出口,本系统中与单片连接的有AD、DA、显示器和一个蜂鸣器,总共使用输入/输出口少于32个,可直接与单片机相连接,不需要扩展,电路简单。
方案二:采用MSP430单片机,虽然内部集成了12位的AD和DA转换器,但编程不易实现,控制较为复杂。
鉴于上面考虑,我们采用方案一。
2、恒流源部分方案一:由三端可调式集成稳压器构成恒流源。
当可调稳压器调节在输出电压范围内时,若R固定不变,则电流I不变。
因此可以获得恒流输出。
若改变R的值,可使输出电流在200mA~2000mA变化。
此方案的结构简单、外围电路少、调试方便、价格便宜,但是精密的大功率的数控电位器难购买,而且题目要求也不允许使用成品模块。
R稳压器Uo'IC RL0.1μF Uo方案二:采用电流串联负反馈机理构成恒流源。
来自CPU的电流控制数据加至D/A 转换器,转换成电压信号加在运放的同向端由取样电阻引入的与输出电流成正比的反馈电压加在放大器的反向端。
数控恒流源

目录、方案摘要二、作品完成功能三、系统方案论证四、硬件结构设计及实现五、软件结构设计及实现六、作品测试数据七、不足及今后改进方向八、附录总设计电路图摘要:本方案釆用AT 8 9S52单片机作为系统控制核心,实现数控恒流源方案。
设计采用大功率双极型三极管2 SC 3 997以及仪表放大器等构成闭环恒流源控制电路,配以8位 A / D, D/A芯片完成单片机对输出电流的实时检测与实时控制,实现了OmA~15 0 OmA 范围内步进20mA恒定电流输出的功能,保证了纹波电流小于1mA,达到了较高的稳定度。
人机接口釆用4 * 4键盘以及LCD1602液晶显示器,控制界面直观简洁,具有良好的人机交互性。
一作品完成功能1•输出电流范围:0mA"1500mA ;2.可设置并显示输出电流给定值,输出电流与给定值偏差的绝对值W给定值1 %+10 mA:3. 具有“ + ”、“一”步进调整功能,步进W20mA;4. 纹波电流W2mA;5. 自制电源二系统方案论证1. 系统总设计模块DA转换模块自制电源2. 方案论证本系统设计关键在于恒流源模块方案,关于恒流源模块方案电压控制的电流源模块,可采用的方案有以下三种:①功率集成运放,如OPA501、OPA54 1、PA 05等;②运放+晶体三极管放大;③可调集成稳压模块,如LM317o方案一:直接使用功率集成运放。
特点:使用容易、性能稳定可靠。
常用的功率集成运放一般能够输出土4OV, 10〜1 5A的功率,性能指标也较高,完全能够满足本题要求。
功率集成运放还可以双极性输出,但本题只需单极性输出,却需要为功率集成运放配置正负双电源。
方案二:利用三端可调直流稳圧集成芯片,通过调整其输出电圧來实现负载的恒流特性。
特点:直接利用稳压片提供所盡功率,只需要添加相应控制电路即可实现本题的大部分要求,但是,其电流调整率指标只能达到0. 5ko. 1 5%,不满足题目要求,方案三:采用“运放+功率三极管”的结构构成恒流源。
详细教程:手把手教你DIY数控恒压恒流电源

详细教程:手把手教你DIY数控恒压恒流电源作为电子爱好者,直流稳压电源是我们不可缺少的部分,一般我们需要一个电源,要么就是购买一台现成的,要么就是自己制作一个。
购买的话就是省事,但是很糟钱哦。
这里小编分享一个直流稳压电源的详细教程,从工作原理讲到如何自己制作数控恒压恒流电源,下面就随着小编来一一学习吧!直流稳压电源是任何电子电路试验中不可缺少的基础仪器设备,基本在所有的跟电有关的实验室都可以见到。
对于一个电子爱好者来说,直流稳压电源也是必不可少的。
要得到一个电源,一般有两种方法:一是购买一台成品电源,这样最为省事:二是自己制作一台电源(因为你是电子爱好者),当然相比于第一种方法会麻烦很多。
很显然这篇文章不是教你如何去选购一台直流稳压电源……基本的恒压恒流电源结构框图如图1所示。
由电压基准源、调整管、误差放大、电压取样以及电流取样组成。
电压基准源的作用是为误差放大器提供一个参考电压,要求电压准确且长时间稳定并且受温度影响要小。
取样电路、误差放大和调整管三者组成了闭环回路以稳定输出电压。
这样的结构中电压基准源是固定的,电压和电流的取样电路也是固定的,所以输出电压和最高的输出电流就是固定的。
而一般的可变恒压恒流电源是采用改变取样电路的分压比例来实现输出电压以及最高限制电流的调节。
图1 基本恒压恒流电源框图图2 基本稳压电源简图图2中所示的是一个基本输出电压可变的稳压电源简图,可以很明显地看出这个电路就是一个由运算放大器构成的同相放大器,输出端加上了一个由三极管组成的射极跟随器以提高输出能力,因为射极跟随器的放大倍数趋近于1,所以计算放大倍数时不予考虑。
输入电压V+通过R1和稳压二极管VD产生基准电压Vref,然后将Vref放大1+R3/R2倍,即在负载RL上的得到的电压为Vref(1+R3/R2),因为R3可调范围是0~R3max,所以输出电压范围为Vref~Vref (1+R3max/R2)。
这不就和我们常用的LM317之类的可调稳压芯片一样了,只是像LM317之类的芯片内部还集成了过热保护等功能,功能更加完善,但是也有它的弊端,主要因为它是将电压基准、调整管、误差放大电路都集成在了一个芯片上,因此在负载变化较大时芯片的温度也会有很大的变化,而影响半导体特性的主要因素之一就是温度,所以使用这种集成的稳压芯片不太容易得到稳定的电压输出,这也正是高性能的电压基准都是采用恒温措施的原因,比如LM399、LTZ1000等。
简易数控恒压恒流源

设计报告--简易数控恒压恒流电源目录摘要-------------------------------------------------------------------------------------------------4关键词----------------------------------------------------------------------------------------------4 1.方案论证与比较----------------------------------------------------------------------------51.1DC-DC主回路方案------------------------------------------51.2控制方案的比较论证---------------------------------------51.3输出方案-------------------------------------------------51.4提高效率的方案-------------------------------------------61.5SIMPLE SWITCHER Power Module仿真-------------------------62.电路设计与参数计算----------------------------------------------------------------------62.1系统总体设计原理图---------------------------------------62.2主回路器件的选择及参数计算-------------------------------62.3控制电路设计与参数计算-----------------------------------62.4效率的分析及计算-----------------------------------------72.5保护电路设计与参数计算-----------------------------------72.6数字设定及显示电路的设计---------------------------------72.7软件设计-------------------------------------------------73.测试方法与数据------------------------------------------------------------------------------73.1 测试方法-------------------------------------------------7 3.2 测试仪器-------------------------------------------------83.3 测试数据-------------------------------------------------84.测试结果分析----------------------------------------------------------------------------------9 4.1 恒压源---------------------------------------------------9 4.2 恒流源---------------------------------------------------94.3 改进方案-------------------------------------------------95.附件列表----------------------------------------------------------------------------------------10附件一-------------------------------------------------------10 附件二-------------------------------------------------------11 附件三-------------------------------------------------------12摘要:本系统以ATmega16单片机为核心,对主回路采样值(电流、电压)进行AD-DA 处理后,以PWM波的形式对占空比进行调节,到达了使输出电压,电流值稳定的目的。
数控直流恒流源

数控直流恒流源Document number:NOCG-YUNOO-BUYTT-UU986-1986UT数控恒流源设计与总结报告摘要:本设计以89C52为主控器件,采用了高共模抑制比低温漂的运算放大器OP07和大功率场效应管IRF640构成恒流源,通过12位A/D、D/A转换芯片,完成了单片机对输出电流的实时检测和实时控制,控制界面直观、简洁,具有良好的人机交互性能,人机接口采用4*4键盘及LCD液晶显示器。
该系统电流输出范围为20mA~2000mA的数控直流电流源。
该电流源具有电流可预置,1mA步进,同时显示给定值和实测值等功能。
关键词: 89C52 恒流源 AD DA1 系统设计设计并制作数控直流电流源。
输入交流200~240V,50Hz;输出直流电压≤10V。
其原理示意图如下所示。
图数控直流电流源原理示意图设计要求题目要求设计并制作数控直流电流源。
输入交流200~240V,50Hz;输出直流电压≤10V。
其要求如下:1.1.1 基本要求(1)输出电流范围:200mA~2000mA;(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;(3)具有“+”、“-”步进调整功能,步进≤10mA;(4)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的1%+10 mA;(5)纹波电流≤2mA;(6)自制电源。
1.1.2 发挥部分(1)输出电流范围为20mA~2000mA,步进1mA;(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值≤测量值的%+3个字;(3)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的%+1 mA;(4)纹波电流≤;(5)其他。
总体设计方案本设计要设计的基于单片机控制的直流恒流源,以直流稳压电源和稳流电源为核心,结合单片机最小系统实现对输出电流的控制。
附录一基于AT89S52的数控可调恒流源总电路图及PCB图

附录一基于AT89S52的数控可调恒流源总电路图及PCB图附录2 数控可调恒流源程序#include<reg52.h> //包含头文件#include<intrins.h> //此头文件为了使用_nop_();函数#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit dacs=P3^2; //DA控制端口定义sbit rd=P3^3; //外部读取转换结果的控制输出信号端口定义sbit wr=P3^4; //启动转换的控制输入端口定义sbit key1=P3^5; //控制按键端口定义sbit key2=P3^6; //控制按键端口定义sbit key3=P3^7; //控制按键端口定义sbit lcdrs=P3^0; //液晶控制端口定义sbit lcden=P3^1; //全局变量定义uchar num=0;unsigned long int num1=0;uint bujin=1; //电流步进定义uchar code table[]="dianliu:mAbujin:"; //液晶显示数组定义uchar code table1[]="0123456789 ";uchar table2[4];uchar code table3[]="SHUKONG";uchar code table4[]="dian liu yuan";uchar table5[10];/********************************************************************==========================MS延时函数===============================********************************************************************/void delayms(uint x){uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}/********************************************************************=======================1602液晶显示==================================********************************************************************/void yjwrite_com(uchar com) //写入地址函数{lcdrs=0;P0=com;delayms(5);lcden=1;delayms(5);lcden=0;}void yjwrite_date(uchar date) //写入数据函数{lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=0;}/****************************************************************==========================液晶显示初始化======================== **************************************************************/void yjinit() //液晶初始化{uchar i;dacs=0;P2=0;dacs=1;lcden=0;yjwrite_com(0x38);yjwrite_com(0x0c);yjwrite_com(0x06);yjwrite_com(0x01); //显示清0,数据指针清0yjwrite_com(0x80); //从液晶开始第一行起始端位置显示for(i=0;i<7;i++){yjwrite_date(table3[i]); //显示dianliu:}yjwrite_com(0x80+0x40); //第二行显示for(i=0;i<13;i++){yjwrite_date(table4[i]); //显示bujin:}while(1){if(key1==0||key2==0||key3==0){delayms(5);if(key1==0||key2==0||key3==0){goto a;}}}a:yjwrite_com(0x01);//显示清0,数据指针清0}void displayinit(){uchar i;yjwrite_com(0x80);for(i=0;i<8;i++){yjwrite_date(table[i]);}yjwrite_com(0x80+0x0e);yjwrite_date(table[8]); //显示mAyjwrite_date(table[9]);yjwrite_com(0x80+0x40); //第二行显示for(i=10;i<16;i++){yjwrite_date(table[i]);}}/**********************************************************************=====================显示输出电流值和步进值===========================************************************************************************/ void display(){uchar i;yjwrite_com(0x80+10);for(i=0;i<4;i++){yjwrite_date(table1[table2[i]]); //显示电流值}yjwrite_com(0x80+0x4a); //显示和分离步进值yjwrite_date(table1[8*bujin/100]); // 步进百位yjwrite_date(table1[8*bujin%100/10]); //步进十位yjwrite_date(table1[8*bujin%10]); //步进个位}/*****************************************************************===========================按键检测部分==========================在不按下key3按键时按下key1按键输出电流增加为原来值加上步进值按下key3按键时输出电流每次减小为原来值减去步进值,在一直按下key3按键时如果按下key1则步进值在原来的基础上加8,如果按下key2则步进值在原来的基础上减8*****************************************************************/void keyscan(){uchar i;dacs=1; //DA停止工作if(key1==0) //key1按键按下{ //消除抖动delayms(10); //确认key1键按下if(key1==0){num=num+bujin; //输出电流值增加为原来的值加上步进值if(num==255)num=0; //防止超过上限值因为8位DA输入值为从0-255(2的八次方)while(!key1); //等待按键释放}}if(key2==0) //key2按键按下{delayms(10); //消除抖动if(key2==0) //确认key2键按下{num=num-bujin; //输出电流值增加为原来的值减上步进值if(num==-1)num=0; //防止低于下限值因为8位DA输入值为从0-255(2的八次方)while(!key2); //等待按键释放}}if(key3==0) //步进调节按键{delayms(10);if(key3==0){yjwrite_com(0x01);yjwrite_com(0x80+0x40); //第二行显示for(i=10;i<16;i++){yjwrite_date(table[i]);}while(!key3){if(key1==0){delayms(10);if(key1==0){bujin++;if(bujin==100)bujin=0;while(!key1);}}yjwrite_com(0x80+0x4a); //显示和分离步进值yjwrite_date(table1[(8*bujin)/100]); //分离百位yjwrite_date(table1[8*bujin%100/10]); //分离十位yjwrite_date(table1[8*bujin%10]); //分离个位if(key2==0){delayms(10);if(key2==0){bujin--;if(bujin==0)bujin=100;while(!key2);}}yjwrite_com(0x80+0x4a); //显示和分离步进值yjwrite_date(table1[8*bujin/100]); //分离百位yjwrite_date(table1[8*bujin%100/10]); //分离十位yjwrite_date(table1[8*bujin%10]); //分离个位}yjwrite_com(0x80); //第一行显示for(i=0;i<8;i++){yjwrite_date(table[i]);}yjwrite_com(0x80+0x0e);yjwrite_date(table[8]); //显示mAyjwrite_date(table[9]);}}dacs=0;}/***************************************************===================AD转换部分=======================**************************************************/uchar adzhuanhuan(){uchar a;wr=1; //AD开始工作_nop_();wr=0;_nop_();wr=1;display();delayms(2);P1=0xff;rd=1;_nop_();rd=0;_nop_();a=P1;rd=1;return a;}/***********************************************************************=================================主函数=================================************************************************************************/void main(){uchar i;yjinit();displayinit();while(1){display();keyscan();P2=num;keyscan();num1=0;for(i=0;i<5;i++){table5[i]=adzhuanhuan();num1=num1+table5[i];keyscan();keyscan();keyscan();}num1=num1/5;num1=num1*7.8125;table2[0]=num1/1000; //分离出电流千位table2[1]=num1%1000/100; //分离出电流百位table2[2]=num1%1000%100/10; //分离出电流十位table2[3]=num1%10; //分离出电流个位}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控恒流源
•基于8051单片机的数控电源设计方案
•2010年12月18日9:52:07 来源:《半导体器件应用》2009年12月刊作者:李好,陈晓利
•Html文件格式可能无法显示特殊符号及公式,阅读全文,请点击下面按钮以Pdf文件格式浏览阅读
1 引言
目前所使用的直流可调电源中,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。
利用数控电源,可以达到每步0.1V的精度,输出电压范围0V~15V,电流可以达到2A。
其系统结构如图1所示。
2 芯片选用
DAC0832是一款常用的数摸转换器,它有两种连接模式,一种是电压输出模式,另外一种是电流输出模式。
为了设计的方便,选用电压输出模式,引脚如图2所示,Iout1和Iout2之间接一参考电压,VREF 输出可控制电压信号。
它有三种工作方式:不带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。
该电路采用单缓冲模式,由图2可知,由于/WR2 =/XFER=0,DAC寄存处于直通状态。
又由于ILE=1,故只要在选中该片(/CS=0)的地址时,写入(/WR=0)数字量,则该数字信号立即传送到输入寄存器,并直通至DAC寄存器。
经过短暂的建立时间,即可以获得相应的模拟电压。
一旦写入操作结束,/WR1和/CS 立即变为高电平,则写入的数据被输入寄存器锁存,直到再次写入刷新。
AT24C02是一款常用的可掉电保存数据的ROM,2K比特容量,采用I2C总线操作,关于它的具体操作方法参考相关资料。
3 硬件电路设计
采用常用的AT89C51芯片作为控制器,P0口和DAC0832的数据口直接相连,DA的/CS和/WR1连接后接P2.0,/WR2和/XEFR接地,让DA工作在单缓冲方式下。
DA的11脚接参考电压,参考电压电路如图2所示,通过调节可调电阻调节LM336的输出电压为5.12V,所以在DAC的8脚输出电压的分辨率为5.12V/256=0.02V,也就是说DA输入数据端每增加1,电压增加0.02V。
DA的电压输出端接放大器OP07的输入端,放大器的放大倍数为R8/(R8+R9)=1K/(1K+4K)=5,输出到电压模块LM350的电压分辨率=0.02V×5=0.1V。
所以,当MCU输出数据增加1的时候,最终输出电压增加0.1V,当调节电压的时候,可以以每次0.1V的梯度增加或者降低电压。
本电路设计三个按键,KEY1为翻页按键,最近设置的电压大小保存在EEROM里面。
比如10个电压,按一下KEY1,电压变为下一个,省去了反复设置电压的麻烦。
KEY2为电压+,KEY3为电压-,按一下KEY2,当前电压增加0.1V,按一下KEY3,当前电压减小0.1V。
限于篇幅原因,未画出数码管显示电路。
该系统使用3个数码管,可以显示三位数,一个小数位,比如可以显示12.5V,采用动态扫描驱动方式。
本主电路的原理是通过MCU控制DA的输出电压大小,通过放大器放大,给电压模块作为最终输出的参考电压,真正的电压,电流还是由电压模块LM350输出。
为了达到2A的输出电流,LM350必须选用金属外壳封装,并且带稍大面积的散热片。
4 软件系统
软件的设计主要完成三方面的功能:
(1)设置电压并且保存,主要是对EEROM的操作;
(2)把设置的电压送到DA,主要是对DA的操作;
(3)中断显示,把设置的电压显示到LED数码管上。
该数控电压源实现保存最近10个电压功能,当打开电源的时候,它显示和输出的必须是上次使用电压大小,所以在EEROM中使用11个地址保存数据,第一个地址保存当前电压编号,大小为1~10。
第2个地址~第11个地址连续保存10个电压大小数据。
电压编号的大小分别对应到相应地址电压大小。
软件流程如图4所示:当电源打开的时候,MCU进行复位,寄存器清零。
接着电源应该显示和输出上次关机前的电压大小,这时候MCU先读取EEPROM中保存的电压编号,根据电压编号读出对应电压,把该数据送到DA,再转换成BCD码送到显示部分。
这时候程序循环检测是否有按键信号,如果KEY1按下,电压编号指向下一个,保存该电压编号,读对应电压,把他送到DA并且显示。
如果KEY2按下,当前电
压数据加1,相对应输出电压。