最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

简易数控直流电源3310

IT圈 admin 52浏览 0评论

2024年9月29日发(作者:侯珺琪)

简易数控直流电源

该电源系统以ATMEGA8单片机为核心控制芯片,实现数控直流稳压电源功能的方案。

设计采用8位精度的DA转换器DAC0832、精密基准源LM336-5.0、7805和两个CA3140运算

放大器构成稳压源,实现了输出电压范围为-5V~+5V,电压步进0.1V的数控稳压电源,最

大纹波只有6mV,具有较高的精度与稳定性。另外该方案只采用了3按键实现输出电压的方

便设定,显示部分我们采用了诺基亚3310手机夜晶显示器来显示输出电压值和电流值。

基本要求

1) 输出电压:范围-5V~+5V,步进0.1V,纹波≤10mV。

2) 输出电压可预置在-5V~+5V之间的任意一个值。

3) 输出电流≤500mA。

4) 数字显示输出电压值和电流值。

5) 为实现上述几部件工作,自制稳压直流电源,输出±15V,+5V。

1.2 系统基本方案

根据题目要求,系统可以划分为输出部分,人机接口部分和直流稳压电源。其中输出

部分是由D/A转换后再放大得到的,人机接口包括4个按键和液晶显示部分,直流稳压电

源包括两组电源。

方案一: 三端稳压电源

采用可调三端稳压电源构成直流可调电源的电路如图1.1所示。怎样实现数控呢?我们

把图1.1中的可变电阻RP用数字电位器来代替,就能实现数控了。但由于三端稳压芯片

LM317和LM337的输出电压不能从0V起调,输出公式:Vout=1.25×(1+R2/R1)。所以,可

以采用在输出的地方加两个二级管,利用PN节的固有电压来实现从0V起调,如图1.2所示。

+15VU1

Vin

GND

LM317

Vout

C1

1000u

C2

100u

R1

10

1K

RP

x9c102

C3

100u

C4

10u

R110

C4

10u

C3

100u

RP

x9c1021K

C2

100u

C1

1000u

U1

+15V

GND

Vout

LM337

Vin

图1-1

1

+15VU1

Vin

GND

LM317

Vout

D?D?

DiodeDiode

C1

1000u

C2

100u

R1

10

1K

RP

x9c102

C3

100u

C4

10u

图1.2

优点:该方案结构简单,使用方便,干扰和噪音小

缺点:数字电位器误差较大,控制精度不够高,误差电压较大。同时更重要的是几乎所有的

数字电位器能够容忍的电流都在20mA以下。所以,这种方案就被否决了。

方案二:采用A/D和D/A

采用A/D和D/A构成直流电源的电路如图1.3和图1.4所示。采用单片机构成直流电源

的电路如图1.3所示,利用AVR单片机自带的D/A口DAC0输出0-2.5V的电压,然后经一

级反相放大器和跟随器,此时可以输出0到-5V电压。但是因为A/D变换器只能采集0到

+2.56V的电压,所以再在跟随器后面加一级反相放大器器然后送回到A/D采样,MCU比较发

现DAC0输出为正确电压时,则从跟随器后直接输出电压,这样就可以输出0到-5V的电压

了。当需要正相电压时从DAC1口输出电压,这时就不需要反相,其它原理与DAC0相似。

+5V

R1

Op Amp

DAC0

DAC1

R1

10

2

6

3

2

R1

10

MCU

-5V

R110

A/D

Port

Port

-5V

VCC

AR?

AR?

3

6

2

2

Op Amp

Op Amp

R1

R1

10

10

3

6

V0

VCC

-5V

Op Amp

Op Amp

3

6

AR?

R1

10

2

6

3

10

AR?AR?

-5V

+5V

R1

10

图1.3

优点:精确度高,纹波小,

效率和密度比较高,可靠性也不错。

缺点:电路相对复杂,AVR单片机的IO口不能容忍负电压,否则会被损坏。所以,这种方

案也行不通。

方案三:采用数字电位器与运放到组合

如图1.4所示,在该方案中我们用两个数字电位器代替了MCU中的D/A,这样可以降低

成本,同时简化电路,从两个串连的数字电位器可以直接输出-5V到+5V的电压同上面方案

一样,当输出反相电压时在送电压回A/D采样时要先经过一次反相。但同样存在上面的问题。

2

+5V

+5V

R1

RPot1

AR?

1K

1K

R2

RPot1

R3

1K

Res1

3

6

2

Op Amp

-5V

-5V

MCU

Q2

2N3906

Vo

A/D

Port

Port

R4

10

6

3

R610

Op Amp

AR1

2

R5

10

+5V

Q1

2N3904

图1.4

优点:电路结构更简单,降低了成本

缺点:因为数字电位器电阻误差大,且单片机的A/D口容易损坏。

方案三:采用7805构成直流电源

采用7805构成直流电源的电路如图1.5所示,改变RP阻值使7805的公共端的电压在

0到-10V之间可调,则7805的输出端电压就可实现-5V-+5V之间可调了。这种方案是利

用了7805的输出端与公共端的电压固定为+5的特性来设计的。但同样存在不好数控的问题。

+15vU1

Vin

GND

7805

Vout

C1

1000u

C2

10u

-10V

Rp

X9C102

1K

C3

100u

C4

10u

图1.5

方案四 方案三与方案四结合,然后再以+5V为参考输出

显示

8

D/A转换器

电流-电

压转换

及放大

+15V

7805

Atmega8

键盘

输出

功率放大

-10V~0V

+5V

ADC0

放大

3

如上图所示,采用数模转换器输出电流,经电压转换和反向放大之后得到-10V~0V的电压,

把这个电压送到三端稳压器件7805的公共端,然后,再以+5V作为参考则输出的电压就能

实现在-5V~+5V任意可调。采样时,是对地采样的,就省去了负电压不好采样的麻烦,这也

是我们的创新之处。

1. 主要单元电路设计

电源电路单元

该电路用了7805、7815和7905、7915制成了两组稳压直流电源电路分别得到±15V和

±5V的电源。为了防止恒流源电路中的较大电流对控制部分产生干扰,将控制部分的电源

和恒流源电路电源分成独立的两部分,分别由两组变压器供电,并且,在电源的输出极加上

LC滤波电路。通过实际测量发现加LC滤波器之前的纹波高达50~60mV,但是通过滤波之后,

电压输出,有了明显的改善,纹波只有10mV左右了。

人机接口部分的单元电路设计 LCD显示界面

按键键盘:

数模转换电路:

4

DAC0832接口电路:

用单片机的P3口来控制DAC0832输出电压。

0832输出电路:

DAC0832输出的电压通过两个CA3140的两级放大,从Vout1 和Vout2两路输出实现输出

正负5V的电源。

精密基准源:

5

用LM334和一个10K的可调变阻构成了一个精密5V基准电压,提高系统的精密度。

纹波、尖峰干扰处理:

未加电源滤波器之前,从电源电路输出端测得的纹波有50~60mV,当加了电源滤波器之

后,电源电路输出端的纹波只有6~8mV了。在主控板的电源输入端分别再对±15V、±5V

加一级LC滤波,最后把纹波控制在6mV以下了。

主控电路保护二极管:

二极管用以防止电流倒灌,防止烧坏电源。

功率放大驱动电路

+15V

输出

-15V

上图是由OP放大器与推挽射极跟随器相组合的电路。因为使用将NPN与PNP晶体管

的共同连接的推挽射极跟随器,该电路在输出端不取电流时,发射极无电流流动,所以电路

的效率非常高。这是该电路的一大特点。没有反馈回路时,推挽射极跟随器的开关失真很大,

假如反馈后,开关失真变小,但仍然存在。为了解决这个问题我们加入了偏置电路,由于在

各自的晶体管上加两个二级管的V

F

电压(≈1.2V),所以在发射极电阻上分别加一个PN

节的电压(≈0.6V)。该电压用发射极设定电流(零点几至数毫安)来除就求出发射极电阻。

在偏置电路里流动的电流,是由比晶体管基极电流大得多的值来决定的,但若太大,

则OP放大器就不能驱动偏置电路,所以设定该电流在1mA以下是比较妥善的。

3.系统的软件设计

6

3.1 程序流程图

开 始

‘+’键按下还是

‘-’键按下?

‘+’键按下

‘-’键按下

Flag标志位置‘1’

Flag标志位清‘0’

扫描键盘,从键盘输入两

位数,作为输出电压值。

对应的值在0~50之间

启动键是否按下?

N

Y

显示设定的电压值,并将

起转换为相对应数字量,

送到DA,进行数模转换

N

判断‘↑’键是

否按下

判断‘↓’键是

否按下

Y

‘1’

判断flag标志位

为‘1’还是‘0’

‘0’

判断电压值是否

等于5V?

N

Y

电压值设为5V不变

电压绝对值减少0.1

的步进量

电压绝对值增加0.1

的步进量

7

4.2 指标测试

1、 输出电压:范围-5V~+5V,步进0.1V,纹波≤6mV。初始状态时,可以通过4

个按键输入-5.0V~+5.0V之间的任意电压值,并实时显示。显示值与实际测量

值同步,且在-5.0V~+5.0V之间的调节过程中最大误差为0.03V;

2、 输出电压可预置在-5V~+5V之间的任意一个值,并且设有电压步进0.1V的增

减键,实时可调,有自动扫描代替人工按键功能,步进0.1V ;

3、 输出电流≤500mA ;

5、 带负载时可以显示电流值,并通过功能键进行切换,换到电流控制档,可控制电

流在10mA~100mA自由调节。

4、 输出电压调整率≤0.5%(输入电压220V变化范围+15%~-20%下,空载到满载);

8

9

6、 线性度:(数据分析)

8.纹波测试结果:

不带负载时的纹波测试图:

带负载时的纹波测试图:

10

从波形图中可以看出,加负载后,纹波变得更加密集了。是因为,加了负载

之后,就在电路中形成了回路,在负反馈的过程中,相应的调整管就需要作调整,

以保证输出的电压的稳定性。所以,我们看到了以上的现象。但是,纹波的幅值

并没有增加,仍为5.44mV这也说明了电路的稳定性比较好。

附录1:程序清单

#include

#include

#include "lcd3310.h"

#define osccal 0x7d

void main(void)

{

uchar key,num_flag=0,gb_b=40,flag=0,dac_dat=0;

char theta=0;

short mid=0,midd=0,m_v=0;

port_init();

LCD_init(); //³õʼ»¯Òº¾§

LCD_clear();

LCD_write_chinese_string(0,0,12,3,0,0,0);//д¡±µçѹ:¡°

LCD_write_String(40,0,"0 00");

11

OSCCAL=osccal; //УÕý¾§ÕñƵÂÊ

LCD_write_chinese_string(0,4,16,5,0,0,1);//д¡±Êý¿ØµçÔ´¡°

LCD_draw_map(47,0,point,7,14);//СÊýµã

LCD_draw_map(73,0,voltge,12,12);//Êä³öV

LCD_write_chinese_string(0,2,12,3,0,0,2);//д¡±µçÁ÷:¡°

LCD_write_String(46,2,"123");

LCD_draw_map(68,2,current,16,12);//Êä³ömA

dac_wr_0;//ʹÄÜDAC Vo=(Êý×ÖÂë-128)*Vref/128

PORTD=0x7f;

while(1)//Õý¸ººÅÊäÈë¼ì²â£¬ÓÉÈ·Èϼü½áÊø

{

//¼üÅÌɨÃè

key=PINB&0x02; //PB1¶ÔÓ¦"+"

if(key==0x00)

{

delay_nms(85);

}

key=PINB&0x80; //PB7¶ÔÓ¦"-"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40; //PB6¶ÔÓ¦"È·ÈÏ"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40;

if(key==0x00)

{

key=PINB&0x80;

if(key==0x00)

{

LCD_draw_map(30,0,reduce,8,12);//Êä³ö-;

}

num_flag=1;//±íʾ¸ºÖµ

flag=1;

key=PINB&0x02;

if(key==0x00)

{

LCD_draw_map(30,0,plus,8,12);//Êä³ö+;

}

num_flag=0;//±íʾÕýÖµ

flag=1;

}

12

if(flag==1)

}

{

flag=0;

break;

}

else

{

}

}

}

while(1)

{

volt_disp();

delay_nms(80);

//¼üÅÌɨÃ裬Åжϼӻ¹ÊǼõ

key=PINB&0x02; //PB1¶ÔÓ¦"+"

if(key==0x00)

{

delay_nms(85);

}

key=PINB&0x80; //PB7¶ÔÓ¦"-"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x80;

if(key==0x00)

{

dis_num[num_bit]--;

}

if((dis_num[num_bit]-'0')>=255)

{

dis_num[num_bit]=0+'0';

}

key=PINB&0x02;

if(key==0x00)

{

dis_num[num_bit]++;

}

if((dis_num[num_bit]-'0')>=9)

{

dis_num[num_bit]=9+'0';

}

13

);

}

key=PINB&0x40; //PB6¶ÔÓ¦"È·ÈÏ"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40;

if(key==0x00)

{

num_bit++;

if(num_bit==4)//µçѹÉèÖÃÍê±Ï

{

mid=(short)(100*(dis_num[0]-'0')+10*(dis_num[2]-'0')+(dis_num[3]-'0')

}

//½øÈëʵʱµ÷ѹ½×¶Î

while(1)//´Ó¸öλµ½Ê®·Öλ¡¢°Ù·ÖλÒÀ´ÎÉ趨ÊýÖµ£¬ÓÉ"+"¡¢"-"¼üÀ´½øÐÐÉ

}

}

else if(num_bit==1)

{

num_bit++;

}

if(mid>=500)//°ÑÉèÖõĵçѹֵÏÞ¶¨ÔÚ-5~+5V·¶Î§Ö®ÄÚ

{

}

if(num_flag==0)//É趨µÄÊÇÕýµçѹ

{

}

else //É趨µÄÊǸºµçѹ

{

mid=-mid;

}

dac_dat=(uchar)(0.25*mid+128);

PORTD=dac_dat;

volt_disp();

break;

dis_num[2]=dis_num[3]=0;

dis_num[0]=5;

}

14

{

key=PINB&0x02; //ÓÐ"+"¼ü°´ÏÂʱ

if(key==0x00)

{

delay_nms(85);

key=PINB&0x02;

if(key==0x00)

{

if(mid>=490)

{

mid=500;

}

else

{

mid+=10;

}

}

}

key=PINB&0x80; //ÓÐ"-"¼ü°´ÏÂʱ

if(key==0x00)

{

delay_nms(85);

key=PINB&0x80;

if(key==0x00)

{

if(mid<-490)

{

mid=-500;

}

else

{

mid-=10;

}

}

}

if(mid>=0)//ÊÇÕýµçѹ

{

LCD_draw_map(30,0,plus,8,12);//Êä³ö+;

}

else //ÊǸºµçѹ

{

LCD_draw_map(30,0,reduce,8,12);//Êä³ö-;

}

dac_dat=(uchar)(0.238*mid+128)+theta;//0.24938 132.80

15

}

midd=mid;////mid¶ÔÓ¦¸ø¶¨µçѹ µÄ100±¶

if(midd<0)

{

midd=-midd;

}

else

{

}

dis_num[0]=midd/100+'0';

dis_num[2]=midd/10%10+'0';

dis_num[3]=midd%10+'0';

m_v=volt_mesue(40,2,0);

current_mesue(40,4,1);

m_v=m_v-500;//ʵ²âµçѹ,Ïà¶ÔÓë5VµÄµçѹ //ʵ¼Êµçѹ µÄ100±¶

{

theta--;

}

else

{

theta++;

}

PORTD=dac_dat;

volt_disp();

if(m_v>mid)

}

附录2:系统使用说明

1、 系统上电;

2、 设置所需电压的正负号;

3、 设置-5.0V~+5.0V之间的任意电压值,先设置个位,按确认键后,在设置十分位,

再按确认键,最后同样的设置百分位;

4、 按确认键,从输出端口输出的电压即为所需电压;

5、 此时可以按‘+’‘-’来微调电压,按着不放,它会不断的按0.1V的步进增减或减

少。

16

2024年9月29日发(作者:侯珺琪)

简易数控直流电源

该电源系统以ATMEGA8单片机为核心控制芯片,实现数控直流稳压电源功能的方案。

设计采用8位精度的DA转换器DAC0832、精密基准源LM336-5.0、7805和两个CA3140运算

放大器构成稳压源,实现了输出电压范围为-5V~+5V,电压步进0.1V的数控稳压电源,最

大纹波只有6mV,具有较高的精度与稳定性。另外该方案只采用了3按键实现输出电压的方

便设定,显示部分我们采用了诺基亚3310手机夜晶显示器来显示输出电压值和电流值。

基本要求

1) 输出电压:范围-5V~+5V,步进0.1V,纹波≤10mV。

2) 输出电压可预置在-5V~+5V之间的任意一个值。

3) 输出电流≤500mA。

4) 数字显示输出电压值和电流值。

5) 为实现上述几部件工作,自制稳压直流电源,输出±15V,+5V。

1.2 系统基本方案

根据题目要求,系统可以划分为输出部分,人机接口部分和直流稳压电源。其中输出

部分是由D/A转换后再放大得到的,人机接口包括4个按键和液晶显示部分,直流稳压电

源包括两组电源。

方案一: 三端稳压电源

采用可调三端稳压电源构成直流可调电源的电路如图1.1所示。怎样实现数控呢?我们

把图1.1中的可变电阻RP用数字电位器来代替,就能实现数控了。但由于三端稳压芯片

LM317和LM337的输出电压不能从0V起调,输出公式:Vout=1.25×(1+R2/R1)。所以,可

以采用在输出的地方加两个二级管,利用PN节的固有电压来实现从0V起调,如图1.2所示。

+15VU1

Vin

GND

LM317

Vout

C1

1000u

C2

100u

R1

10

1K

RP

x9c102

C3

100u

C4

10u

R110

C4

10u

C3

100u

RP

x9c1021K

C2

100u

C1

1000u

U1

+15V

GND

Vout

LM337

Vin

图1-1

1

+15VU1

Vin

GND

LM317

Vout

D?D?

DiodeDiode

C1

1000u

C2

100u

R1

10

1K

RP

x9c102

C3

100u

C4

10u

图1.2

优点:该方案结构简单,使用方便,干扰和噪音小

缺点:数字电位器误差较大,控制精度不够高,误差电压较大。同时更重要的是几乎所有的

数字电位器能够容忍的电流都在20mA以下。所以,这种方案就被否决了。

方案二:采用A/D和D/A

采用A/D和D/A构成直流电源的电路如图1.3和图1.4所示。采用单片机构成直流电源

的电路如图1.3所示,利用AVR单片机自带的D/A口DAC0输出0-2.5V的电压,然后经一

级反相放大器和跟随器,此时可以输出0到-5V电压。但是因为A/D变换器只能采集0到

+2.56V的电压,所以再在跟随器后面加一级反相放大器器然后送回到A/D采样,MCU比较发

现DAC0输出为正确电压时,则从跟随器后直接输出电压,这样就可以输出0到-5V的电压

了。当需要正相电压时从DAC1口输出电压,这时就不需要反相,其它原理与DAC0相似。

+5V

R1

Op Amp

DAC0

DAC1

R1

10

2

6

3

2

R1

10

MCU

-5V

R110

A/D

Port

Port

-5V

VCC

AR?

AR?

3

6

2

2

Op Amp

Op Amp

R1

R1

10

10

3

6

V0

VCC

-5V

Op Amp

Op Amp

3

6

AR?

R1

10

2

6

3

10

AR?AR?

-5V

+5V

R1

10

图1.3

优点:精确度高,纹波小,

效率和密度比较高,可靠性也不错。

缺点:电路相对复杂,AVR单片机的IO口不能容忍负电压,否则会被损坏。所以,这种方

案也行不通。

方案三:采用数字电位器与运放到组合

如图1.4所示,在该方案中我们用两个数字电位器代替了MCU中的D/A,这样可以降低

成本,同时简化电路,从两个串连的数字电位器可以直接输出-5V到+5V的电压同上面方案

一样,当输出反相电压时在送电压回A/D采样时要先经过一次反相。但同样存在上面的问题。

2

+5V

+5V

R1

RPot1

AR?

1K

1K

R2

RPot1

R3

1K

Res1

3

6

2

Op Amp

-5V

-5V

MCU

Q2

2N3906

Vo

A/D

Port

Port

R4

10

6

3

R610

Op Amp

AR1

2

R5

10

+5V

Q1

2N3904

图1.4

优点:电路结构更简单,降低了成本

缺点:因为数字电位器电阻误差大,且单片机的A/D口容易损坏。

方案三:采用7805构成直流电源

采用7805构成直流电源的电路如图1.5所示,改变RP阻值使7805的公共端的电压在

0到-10V之间可调,则7805的输出端电压就可实现-5V-+5V之间可调了。这种方案是利

用了7805的输出端与公共端的电压固定为+5的特性来设计的。但同样存在不好数控的问题。

+15vU1

Vin

GND

7805

Vout

C1

1000u

C2

10u

-10V

Rp

X9C102

1K

C3

100u

C4

10u

图1.5

方案四 方案三与方案四结合,然后再以+5V为参考输出

显示

8

D/A转换器

电流-电

压转换

及放大

+15V

7805

Atmega8

键盘

输出

功率放大

-10V~0V

+5V

ADC0

放大

3

如上图所示,采用数模转换器输出电流,经电压转换和反向放大之后得到-10V~0V的电压,

把这个电压送到三端稳压器件7805的公共端,然后,再以+5V作为参考则输出的电压就能

实现在-5V~+5V任意可调。采样时,是对地采样的,就省去了负电压不好采样的麻烦,这也

是我们的创新之处。

1. 主要单元电路设计

电源电路单元

该电路用了7805、7815和7905、7915制成了两组稳压直流电源电路分别得到±15V和

±5V的电源。为了防止恒流源电路中的较大电流对控制部分产生干扰,将控制部分的电源

和恒流源电路电源分成独立的两部分,分别由两组变压器供电,并且,在电源的输出极加上

LC滤波电路。通过实际测量发现加LC滤波器之前的纹波高达50~60mV,但是通过滤波之后,

电压输出,有了明显的改善,纹波只有10mV左右了。

人机接口部分的单元电路设计 LCD显示界面

按键键盘:

数模转换电路:

4

DAC0832接口电路:

用单片机的P3口来控制DAC0832输出电压。

0832输出电路:

DAC0832输出的电压通过两个CA3140的两级放大,从Vout1 和Vout2两路输出实现输出

正负5V的电源。

精密基准源:

5

用LM334和一个10K的可调变阻构成了一个精密5V基准电压,提高系统的精密度。

纹波、尖峰干扰处理:

未加电源滤波器之前,从电源电路输出端测得的纹波有50~60mV,当加了电源滤波器之

后,电源电路输出端的纹波只有6~8mV了。在主控板的电源输入端分别再对±15V、±5V

加一级LC滤波,最后把纹波控制在6mV以下了。

主控电路保护二极管:

二极管用以防止电流倒灌,防止烧坏电源。

功率放大驱动电路

+15V

输出

-15V

上图是由OP放大器与推挽射极跟随器相组合的电路。因为使用将NPN与PNP晶体管

的共同连接的推挽射极跟随器,该电路在输出端不取电流时,发射极无电流流动,所以电路

的效率非常高。这是该电路的一大特点。没有反馈回路时,推挽射极跟随器的开关失真很大,

假如反馈后,开关失真变小,但仍然存在。为了解决这个问题我们加入了偏置电路,由于在

各自的晶体管上加两个二级管的V

F

电压(≈1.2V),所以在发射极电阻上分别加一个PN

节的电压(≈0.6V)。该电压用发射极设定电流(零点几至数毫安)来除就求出发射极电阻。

在偏置电路里流动的电流,是由比晶体管基极电流大得多的值来决定的,但若太大,

则OP放大器就不能驱动偏置电路,所以设定该电流在1mA以下是比较妥善的。

3.系统的软件设计

6

3.1 程序流程图

开 始

‘+’键按下还是

‘-’键按下?

‘+’键按下

‘-’键按下

Flag标志位置‘1’

Flag标志位清‘0’

扫描键盘,从键盘输入两

位数,作为输出电压值。

对应的值在0~50之间

启动键是否按下?

N

Y

显示设定的电压值,并将

起转换为相对应数字量,

送到DA,进行数模转换

N

判断‘↑’键是

否按下

判断‘↓’键是

否按下

Y

‘1’

判断flag标志位

为‘1’还是‘0’

‘0’

判断电压值是否

等于5V?

N

Y

电压值设为5V不变

电压绝对值减少0.1

的步进量

电压绝对值增加0.1

的步进量

7

4.2 指标测试

1、 输出电压:范围-5V~+5V,步进0.1V,纹波≤6mV。初始状态时,可以通过4

个按键输入-5.0V~+5.0V之间的任意电压值,并实时显示。显示值与实际测量

值同步,且在-5.0V~+5.0V之间的调节过程中最大误差为0.03V;

2、 输出电压可预置在-5V~+5V之间的任意一个值,并且设有电压步进0.1V的增

减键,实时可调,有自动扫描代替人工按键功能,步进0.1V ;

3、 输出电流≤500mA ;

5、 带负载时可以显示电流值,并通过功能键进行切换,换到电流控制档,可控制电

流在10mA~100mA自由调节。

4、 输出电压调整率≤0.5%(输入电压220V变化范围+15%~-20%下,空载到满载);

8

9

6、 线性度:(数据分析)

8.纹波测试结果:

不带负载时的纹波测试图:

带负载时的纹波测试图:

10

从波形图中可以看出,加负载后,纹波变得更加密集了。是因为,加了负载

之后,就在电路中形成了回路,在负反馈的过程中,相应的调整管就需要作调整,

以保证输出的电压的稳定性。所以,我们看到了以上的现象。但是,纹波的幅值

并没有增加,仍为5.44mV这也说明了电路的稳定性比较好。

附录1:程序清单

#include

#include

#include "lcd3310.h"

#define osccal 0x7d

void main(void)

{

uchar key,num_flag=0,gb_b=40,flag=0,dac_dat=0;

char theta=0;

short mid=0,midd=0,m_v=0;

port_init();

LCD_init(); //³õʼ»¯Òº¾§

LCD_clear();

LCD_write_chinese_string(0,0,12,3,0,0,0);//д¡±µçѹ:¡°

LCD_write_String(40,0,"0 00");

11

OSCCAL=osccal; //УÕý¾§ÕñƵÂÊ

LCD_write_chinese_string(0,4,16,5,0,0,1);//д¡±Êý¿ØµçÔ´¡°

LCD_draw_map(47,0,point,7,14);//СÊýµã

LCD_draw_map(73,0,voltge,12,12);//Êä³öV

LCD_write_chinese_string(0,2,12,3,0,0,2);//д¡±µçÁ÷:¡°

LCD_write_String(46,2,"123");

LCD_draw_map(68,2,current,16,12);//Êä³ömA

dac_wr_0;//ʹÄÜDAC Vo=(Êý×ÖÂë-128)*Vref/128

PORTD=0x7f;

while(1)//Õý¸ººÅÊäÈë¼ì²â£¬ÓÉÈ·Èϼü½áÊø

{

//¼üÅÌɨÃè

key=PINB&0x02; //PB1¶ÔÓ¦"+"

if(key==0x00)

{

delay_nms(85);

}

key=PINB&0x80; //PB7¶ÔÓ¦"-"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40; //PB6¶ÔÓ¦"È·ÈÏ"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40;

if(key==0x00)

{

key=PINB&0x80;

if(key==0x00)

{

LCD_draw_map(30,0,reduce,8,12);//Êä³ö-;

}

num_flag=1;//±íʾ¸ºÖµ

flag=1;

key=PINB&0x02;

if(key==0x00)

{

LCD_draw_map(30,0,plus,8,12);//Êä³ö+;

}

num_flag=0;//±íʾÕýÖµ

flag=1;

}

12

if(flag==1)

}

{

flag=0;

break;

}

else

{

}

}

}

while(1)

{

volt_disp();

delay_nms(80);

//¼üÅÌɨÃ裬Åжϼӻ¹ÊǼõ

key=PINB&0x02; //PB1¶ÔÓ¦"+"

if(key==0x00)

{

delay_nms(85);

}

key=PINB&0x80; //PB7¶ÔÓ¦"-"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x80;

if(key==0x00)

{

dis_num[num_bit]--;

}

if((dis_num[num_bit]-'0')>=255)

{

dis_num[num_bit]=0+'0';

}

key=PINB&0x02;

if(key==0x00)

{

dis_num[num_bit]++;

}

if((dis_num[num_bit]-'0')>=9)

{

dis_num[num_bit]=9+'0';

}

13

);

}

key=PINB&0x40; //PB6¶ÔÓ¦"È·ÈÏ"

if(key==0x00)

{

delay_nms(85);

key=PINB&0x40;

if(key==0x00)

{

num_bit++;

if(num_bit==4)//µçѹÉèÖÃÍê±Ï

{

mid=(short)(100*(dis_num[0]-'0')+10*(dis_num[2]-'0')+(dis_num[3]-'0')

}

//½øÈëʵʱµ÷ѹ½×¶Î

while(1)//´Ó¸öλµ½Ê®·Öλ¡¢°Ù·ÖλÒÀ´ÎÉ趨ÊýÖµ£¬ÓÉ"+"¡¢"-"¼üÀ´½øÐÐÉ

}

}

else if(num_bit==1)

{

num_bit++;

}

if(mid>=500)//°ÑÉèÖõĵçѹֵÏÞ¶¨ÔÚ-5~+5V·¶Î§Ö®ÄÚ

{

}

if(num_flag==0)//É趨µÄÊÇÕýµçѹ

{

}

else //É趨µÄÊǸºµçѹ

{

mid=-mid;

}

dac_dat=(uchar)(0.25*mid+128);

PORTD=dac_dat;

volt_disp();

break;

dis_num[2]=dis_num[3]=0;

dis_num[0]=5;

}

14

{

key=PINB&0x02; //ÓÐ"+"¼ü°´ÏÂʱ

if(key==0x00)

{

delay_nms(85);

key=PINB&0x02;

if(key==0x00)

{

if(mid>=490)

{

mid=500;

}

else

{

mid+=10;

}

}

}

key=PINB&0x80; //ÓÐ"-"¼ü°´ÏÂʱ

if(key==0x00)

{

delay_nms(85);

key=PINB&0x80;

if(key==0x00)

{

if(mid<-490)

{

mid=-500;

}

else

{

mid-=10;

}

}

}

if(mid>=0)//ÊÇÕýµçѹ

{

LCD_draw_map(30,0,plus,8,12);//Êä³ö+;

}

else //ÊǸºµçѹ

{

LCD_draw_map(30,0,reduce,8,12);//Êä³ö-;

}

dac_dat=(uchar)(0.238*mid+128)+theta;//0.24938 132.80

15

}

midd=mid;////mid¶ÔÓ¦¸ø¶¨µçѹ µÄ100±¶

if(midd<0)

{

midd=-midd;

}

else

{

}

dis_num[0]=midd/100+'0';

dis_num[2]=midd/10%10+'0';

dis_num[3]=midd%10+'0';

m_v=volt_mesue(40,2,0);

current_mesue(40,4,1);

m_v=m_v-500;//ʵ²âµçѹ,Ïà¶ÔÓë5VµÄµçѹ //ʵ¼Êµçѹ µÄ100±¶

{

theta--;

}

else

{

theta++;

}

PORTD=dac_dat;

volt_disp();

if(m_v>mid)

}

附录2:系统使用说明

1、 系统上电;

2、 设置所需电压的正负号;

3、 设置-5.0V~+5.0V之间的任意电压值,先设置个位,按确认键后,在设置十分位,

再按确认键,最后同样的设置百分位;

4、 按确认键,从输出端口输出的电压即为所需电压;

5、 此时可以按‘+’‘-’来微调电压,按着不放,它会不断的按0.1V的步进增减或减

少。

16

发布评论

评论列表 (0)

  1. 暂无评论