数控恒流源电路图

合集下载

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

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

数控直流恒流源的设计摘要直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。

本文介绍了采用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)前言直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。

数控恒流源

数控恒流源

3.1 数控恒流源数控恒流源为电阻测量提供恒定的电流。

单片机由测量所需的电流而控制输出恒定电流的大小。

实际电路中采用的三极管为TIP41,三极管本身在这里不具备控制电流大小的作用,但是起到驱动和扩流的作用。

前面是一个电压跟随,后面一个负反馈。

R9上的电压为输入的电压Vin。

理论计算I 1=VR1/R1=(Vi-V+)/R1;I 2=VR2/R2=(V+-Va)/R2;因为I+=0,得I1=I2所以Va=(V+-Vi)R2/R1+V+;I 3=VR3/R3=V-/R1;I4=VR4/R4=(VO-V-)/R4;因为I-=0,得I3= I4所以VO=V-(R3/R4+1);从而可得R5上电压为UR5=VO-Va=(R4/R3)×V-- (R2/R1)×V++(V--V+)+ (R2/R1)×Vi ,若R2=R1,R3=R4,且 V-=V+则UR5=Vi(输入电压)假设I5=IL可得VA/RL=VI/R5,由上式的Va=(V+-V-)R2/R1+V+;及R2=R1;可得(2V+-V-)/RL=Vi / R5 即(2V+/V-)-1= RL/ R5;当V+<Vi 和RL<R5,R3+R4>>R5, R3+R4>>RL,时可满足RL上电流恒定。

详细教程:手把手教你DIY数控恒压恒流电源

详细教程:手把手教你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波的形式对占空比进行调节,到达了使输出电压,电流值稳定的目的。

数控恒流源

数控恒流源

题目:数控恒流源系别:电子信息工程系专业:应用电子技术班级:电子032姓名:潘嘉柳学号: 03364213指导老师:王贵恩完成时间:2006年3月目录摘要 (1)前言 (1)1系统原理及理论分析 (2)1.1单片机最小系统组成 (2)1.2系统性能要点 (2)1.3恒流原理 (3)2总体方案论证与比较 (5)3模块电路设计与比较 (5)3.1恒流源方案选择 (5)3.2反馈闭环方案选择 (7)3.3控制单元方案选择 (7)3.4电源方案选择 (7)3.5过压报警功能设计 (8)4软件设计 (9)4.1主程序模块 (9)4.2闭环比较子程序模块 (9)4.3电流设置子程序模块 (9)4.4键盘中断子程序模块 (9)4.5显示中断子程序模块 (9)5数据测试及分析 (14)5.1输出电流测试 (14)5.2步进电流测试 (15)5.3工作时间测试 (15)5.4负载阻值变化测试 (16)5.5纹波电流测试 (16)6结束语 (17)7致谢 (17)参考文献 (17)数控恒流源摘要:本系统以直流电流源为核心,AT89S52单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达1mA,并可由数码管显示实际输出电流值和电流设定值。

本系统由单片机程控输出数字信号,经过D/A转换器(AD7543)输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电流。

单片机系统还兼顾对恒流源进行实时监控,输出电流经过电流/电压转变后,通过A/D转换芯片,实时把模拟量转化为数据量,再经单片机分析处理,通过数据形式的反馈环节,使电流更加稳定,这样构成稳定的压控电流源。

实际测试结果表明,本系统实际应用于需要高稳定度小功率恒流源的领域。

关键词:压控恒流源智能化电源闭环控制The Digital Controlled Direct Current SourceAbstract: In this system the DC source is center and 89S52 version single chip microcomputer (SCM) is main controller, output current of DC power can be set by a keyboard which step level reaches 1mA, while the real output current and the set value can be displayed by LED. In the system, the digitally programmable signal from SCM is converted to analog value by DAC (AD7543), then the analog value which is isolated and amplified by operational amplifiers, is sent to the base electrode of power transistor, so an adjustable output current can be available with the base electrode voltage of power transistor. On the other hand, The constant current source can be monitored by the SCM system real-timely, its work process is that output current is converted voltage, then its analog value is converted to digital value by ADC, finally the digital value as a feedback loop is processed by SCM so that output current is more stable, so a stable voltage-controlled constant current power is designed.The test results have showed that it can be applied in need areas of constant current source with high stability and low power.Keywords: voltage-controlled constant current source, intelligent power; closed loop control前言随着电子技术的发展,数字电路应用领域的扩展,现今社会,产品智能化、数字化已成为人们追求的一种趋势,设备的性能,价格,发展空间等备受人们的关注,尤其对电子设备的精密度和稳定度最为关注。

数控直流恒流源

数控直流恒流源

数控直流恒流源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图

附录一基于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; //分离出电流个位}}。

数控恒流源

数控恒流源

目录一、方案摘要二、作品完成功能三、系统方案论证四、硬件结构设计及实现五、软件结构设计及实现六、作品测试数据七、不足及今后改进方向八、附录总设计电路图摘要:本方案采用AT 89S52单片机作为系统控制核心,实现数控恒流源方案。

设计采用大功率双极型三极管2SC 3997以及仪表放大器等构成闭环恒流源控制电路,配以8位A/D,D/A 芯片完成单片机对输出电流的实时检测与实时控制,实现了0mA~1500mA 范围内步进20mA恒定电流输出的功能,保证了纹波电流小于1mA,达到了较高的稳定度。

人机接口采用4*4键盘以及LCD1602液晶显示器,控制界面直观简洁,具有良好的人机交互性。

一 作品完成功能1.输出电流范围:0mA~1500m A;2.可设置并显示输出电流给定值,输出电流与给定值偏差的绝对值≤给定值1%+10 mA ;3.具有“+”、“-”步进调整功能,步进≤20mA;4.纹波电流≤2mA;5.自制电源二 系统方案论证1.系统总设计模块2.方案论证本系统设计关键在于恒流源模块方案,关于恒流源模块方案电压控制的电流源模块,可采用的方案有以下三种:① 功率集成运放,如OPA501、OPA541、P A05等;② 运放+晶体三极管放大;③ 可调集成稳压模块,如L M317。

方案一:直接使用功率集成运放。

特点:使用容易、性能稳定可靠。

常用的功率集成运放一般能够输出±40V,10~15A 的功率,性能指标也较高,完全能够满足本题要求。

功率集成运放还可以双极性输出,但本题只需单极性输出,却需要为功率集成运放配置正负双电源。

DA 转换模块方案二:利用三端可调直流稳压集成芯片,通过调整其输出电压来实现负载的恒流特性。

特点:直接利用稳压片提供所需功率,只需要添加相应控制电路即可实现本题的大部分要求,但是,其电流调整率指标只能达到0.5%~0.15%,不满足题目要求,方案三:采用“运放+功率三极管”的结构构成恒流源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,相对应输出电压。

相关文档
最新文档