数控直流稳压电源最新.docx

上传人:b****2 文档编号:14535189 上传时间:2023-04-23 格式:DOCX 页数:19 大小:110.17KB
下载 相关 举报
数控直流稳压电源最新.docx_第1页
第1页 / 共19页
数控直流稳压电源最新.docx_第2页
第2页 / 共19页
数控直流稳压电源最新.docx_第3页
第3页 / 共19页
数控直流稳压电源最新.docx_第4页
第4页 / 共19页
数控直流稳压电源最新.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数控直流稳压电源最新.docx

《数控直流稳压电源最新.docx》由会员分享,可在线阅读,更多相关《数控直流稳压电源最新.docx(19页珍藏版)》请在冰豆网上搜索。

数控直流稳压电源最新.docx

数控直流稳压电源最新

基于MCU的数控直流稳压电源设计

摘要:

本项目设计制作一个输出电压范围(6~12V)可调节和输出电流范围(0~500mA)可调节的数控直流稳压电源。

直流稳压电源通常是由四部分组成:

电源变压器、整流电路、滤波电路和稳压电路。

其中难点在第四部分,本项目设计制作的是一个串联型线性稳压电路,主要包括基准电压电路,调整管,比较放大,取样电路四个单元模块。

本项目将基准电压设计成一个数控基准电压,则稳压电路就可以构成一个数控的稳压电源。

此基准电压通过单片机的A/D转换实现,通过差动放大电路与取样电压进行比较放大,输出电压通过调整管得到稳定,并通过单片机的D/A转换将采样电压,采样电流转换成输出电压电流并用数码管显示出来。

本项目制作的数控直流稳压电源具有结构简单、调节方便、输出电压稳定性强、纹波电压小等优点。

关键字:

数控直流稳压电源;基准电压;取样电路;单片机

一、设计任务与要求

1、设计任务

设计并制作有一定输出电压调节范围和功能的数控直流稳压电源,其原理框图如

图1所示。

图1数控电源原理框图

2、基本要求

(1)输出直流电压调节范围+6V~+12V。

(2)最大输出电流为500mA。

(3)按键设定输出电压值,分辨率为0.1V。

(4)显示稳压电源实际输出电压值,要求精度为±(0.5%读数+2个字)。

(5)实时采样并显示输出电流,显示分辨率为1mA,要求精度为±(2%读数+2个字)。

(6)电压调整率≤0.2%(输入电压变化范围-10%~+10%下,空载到满载)。

(7)电流调整率≤1%(最低输入电压下,满载)。

(8)纹波电压(峰-峰值)≤10mV(最低输入电压下,满载)。

(9)具有过流保护功能;动作电流不大于600mA。

(动作电流为输出电压下降5%时,对应的输出电流值)

(10)要求一路单电源供电。

二、基本工作原理

一个直流稳压电源通常是由电源变压器、整流电路、滤波电路和稳压电路四个部分构成,前三部分电路的作用及工作原理较为简单。

稳压电路较常用的串联型线性稳压电路具有结构简单、调节方便、输出电压稳定性强、纹波电压小等优点,其原理图如图2所示。

输入电压为整流滤波电路的输出电压。

稳压电路的输出电压为:

 

Uz

 

图3采用差动放大电路的稳压电路

由上式可知输出电压与基准电压为线性关系,当改变Uz的大小,则输出电压也将发生变化。

如果此基准电压是一个数控基准电压,则此稳压电路就可以构成一个数控的稳压电源。

数控基准电压源的原理框图如图3所示。

图4数控基准电压源原

三、单元电路设计参考

(1)稳压电路

串联型稳压电路参见图2,其中调整管是核心元件,它的安全工作是电路正常工作的保证,它的选用主要考虑其极限参数ICM,U(BR)CEO和PCM。

调整管极限参数的确定,必须考虑到输入电压UI由于电网电压波动而产生的变化,以及输出电压的调节和负载电流的变化所产生的影响。

由图可知,调整管的发射极电流IE等于采样电阻R1中电流和负载电流IL之和,即IE=IR1+IL,调整管的管压降UCE等于输入电压UI与输出电压UO之差,即UCE=UI-UO。

显然,当负载电流最大时,流过调整管发射极的电流最大,即IEmax=IR1+Ilmax。

通常,R1电阻上电流可以忽略,且IEmax≈ICmax,所以调整管集电极最大电流为:

ICmax≈IEmax

(2)当电网电压最高,即输入电压最高同时输出电压最低时,调整管承受的管压降最大,即UCEmax=UImax-UOmin

(3)当晶体管的集电极电流最大,且调整管承受的管压降最大时,调整管的功率最大,即Pcmax=ICmaxUCEmax

(4)由以上几式即可确定调整管的极限参数。

实际选用时,还要考虑留一定的余量。

(5)电路设计的参数计算:

图中输出电压关系为:

=12+1.5+1=14.5V

取1.2

取43

取560

放大倍数为6倍,取

采样电阻取值:

要满足最大采样电压不超过2.4V避免烧坏单片机ADC0口

所以取值:

额定电流下(500mA)负载是R=

C=133

取100

具体电阻视实验室提供的大小进行调整!

四、稳压电源主要性能指标

直流电源的技术指标分为两种:

一种是特性指标,包括允许输入电压、输出电压、输出电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整率)、输出电阻(或电流调整率)、纹波电压及温度系数等。

稳压电源主要性能指标测试。

1、输出电压范围

在额定负载情况下,稳压电源输出电压可调范围。

2、输出最大电流

最大输出电流是指稳压电源正常工作的情况下能输出的最大电流,用Iomax表示。

一般情况下的工作电流Io<Iomax,稳压电路内部应有保护电路,以防止Io>Iomax或者输出端与地短路时损坏稳压器。

图5稳压电源性能指标测试电路

3、纹波电压

叠加在输出电压上的交流电压分量。

用示波器观测其峰峰值一般为毫伏量级。

也可用交流毫伏表测量其有效值,但因纹波不是正弦波,所以有一定的误差,一般直流电源的纹波电压VP-P≤10mV。

4、电压调整率

当输出电流和环境温度保持不变时,只考虑由于输入电压改变Ui所引起输出电压的变化量Uo与输出电压Uo的百分比,即

(5)

5、电流调整率

当输入电压和环境温度保持不变时,改变输出电流所引起输出电压的变化量Uo与输出电压Uo的百分比,即

(6)

该参数用于考核器件对应于负载变化而维持输出电压不变的能力。

6、输出最大电流

最大输出电流是指稳压电源正常工作的情况下能输出的最大电流,用Iomax表示。

一般情况下的工作电流Io<Iomax,稳压电路内部应有保护电路,以防止Io>Iomax或者输出端与地短路时损坏稳压器。

图15稳压电源性能指标测试电路

测试数据:

输入9V下降5%,即8.55V时,最大输出电流为594mA;

输入12V下降5%,即11.4V时,最大输出电流为598mA;

所以有上述数据得到:

最大输出电流小于600mA。

7、纹波电压

叠加在输出电压上的交流电压分量。

用示波器观测其峰峰值一般为毫伏量级。

也可用交流毫伏表测量其有效值,但因纹波不是正弦波,所以有一定的误差,一般直流电源的纹波电压。

测试数据:

输入6.0V,输出电流501mA时,示波器的波动电压为Vp-p=8mV

小于实验要求(10mV),所以达到实验要求。

五过流保护电路(硬件保护)

为了使电路安全工作,一般需要加入过流保护电路。

当调整管输出电压不变时,负载电阻RL变小输出电流就变大,极限情形负载电阻短路。

输出电流变大,图6中的电阻R上压降增大,使得Q2的ICE电流增大,从而流向调整管基极电流变少,从而限制了输出电流的增大。

极限情形当UR超过VBE时,三极管Q2饱和导通,调整管无电流输出。

图6过流保护电路图

相关计算如下:

(14)

根据实验室已有电阻,取R=1.2Ω

六、实验数据测量与记录

相对误差=|设定电压-实测电压|/实测电压

当输入电压为17V时的测量数据:

最大输出电流(mA)

设定电压(V)

数码管显示电压(V)

高精度万用表测量电压(V)

相对误差(设定电压与实测电压的误差)

504

6.00

6.07

5.91

1.52%

502

6.10

6.15

6.06

0.66%

507

6.20

6.22

6.15

0.81%

497

6.30

6.28

6.26

0.64%

503

6.40

6.45

6.41

0.16%

506

6.50

6.53

6.49

0.15%

502

7.00

6.97

6.98

0.28%

499

8.50

8.44

8.59

1.05%

501

9.00

8.98

9.09

0.99%

504

10.50

10.56

10.68

1.69%

503

11.00

11.05

11.08

0.72%

501

12.00

12.02

11.88

1.01%

小结:

由表中数据可知在误差允许范围内系统基本达到设计要求。

而且单片机测量值与使用高精度电压表的实测值很逼近。

系统设计达标。

当输入电压为15.3V时的测量数据

最大输出电流(mA)

设定电压(V)

数码管显示电压(V)

高精度万用表测量电压(V)

相对误差(设定电压与实测电压的误差)

495

6.00

6.14

6.01

0.17%

505

9.00

8.96

9.27

2.91%

500

12.00

11.90

12.80

6.25%

当输入电压为18.7V时的测量数据

最大输出电流(mA)

设定电压(V)

数码管显示电压(V)

高精度万用表测量电压(V)

相对误差(设定电压与实测电压的误差)

504

6.00

6.27

6.13

2.12%

503

9.00

9.06

9.45

4.76%

497

12.00

12.36

13.20

9.09%

空载时测量数据:

负载断开时(即输出电流0mA)

设定电压(V)

数码管显示电压(V)

高精度万用表测量电压(V)

相对误差(设定电压与实测电压的误差)

0mA

6.00

5.29

6.41

6.39%

0mA

9.00

7.87

9.37

3.95%

0mA

12.00

11.60

13.70

12.4%

满载时测量数据:

输出电流为额定电流时(500mA)

设定电压(V)

数码管显示电压(V)

高精度万用表测量电压(V)

相对误差(设定电压与实测电压的误差)

504

6.00

6.07

5.91

1.52%

499

9.00

8.98

9.09

0.99%

503

12.00

12.02

11.88

1.01%

过流保护时测量数据:

设定电压(V)

额定电流(mA)

额定电流500mA下测得的电压(V)

过流时电压(V)

过流电流(mA)

6.00

503

6.06

6.06(1-5%)=5.75

590

9.00

497

8.87

8.87(1-5%)=8.43

594

12.00

502

11.97

11.97(1-5%)=11.37

598

小结:

由以上几个表格的数据可看出,本实验设计基本合理能够达到设计要求。

七、元器件(设计过程用分立元件实现)

三极管:

90133个,BD6811个,导线、电阻若干。

八、实验总结:

由上述原理分析知本项目设计制作一个输出电压范围(6~12V)可调节和输出电流范围(0~500mA)可调节的数控直流稳压电源。

由信号源提供一个直流电源设计制作一个串联型线性数控稳压电路,主要包括基准电压电路,调整管,比较放大,取样电路四个单元模块组成。

基准电压由单片机键盘数控输入提供,此基准电压通过单片机的A/D转换实现。

调整管采用9013三级管进行过流保护,比较放大器采用了由两个9013三极管构成的差动放大电路,与取样电压进行比较放大,输出电压通过调整管得到稳定,并通过单片机的D/A转换将采样电压,采样电流转换成输出电压电流并用数码管显示出来。

本项目制作的数控直流稳压电源达到了本实验的要求,具有结构简单、调节方便(采用单片机键盘数字输入控制)、输出电压稳定性强(电压调整率与电流调整率<1%)、纹波电压小(Vp-p=8mV)、有过流保护(IOmax<600mA)等优点。

附录:

单片机代码

#include

bitmodel=0;//定义model,0为输入数据,1为显示电压电流

bitflag1=0;//定义标志位作为INT7中断标志

chardata_10=0,data_1=0,data_01=0,date=0;//定义data表示输入三个数据的十位,个位和十分位

unsignedintDA_code=0,mun=0;//DA转化的数字量

intvoltage=0,current=0;//定义voltage、current表示测定的电压、电流值

intms=0;//定义ms为T0计时单位,每过10ms,ms加1

//时钟初始化,外部时钟12M

voidSYSCLK_Init(void)

{

inti;

OSCXCN=0x77;//外部时钟选择12M

for(i=0;i<256;i++);

while(!

(OSCXCN&0x80))//等待晶体震荡稳定

{;}

OSCICN=0x08;//切换到外部时钟

}

 

//IO端口初始化

voidPORT_Init(void)

{

XBR2=0x40;//使能交叉开关

P3MDOUT=0xff;//将P3设置为推挽输出

}

 

//DAC初始化

voidDAC1_Init()

{

REF0CN=0x03;//内部偏压发生器工作

DAC1CN=0x80;//使能DAC1,更新发生在在写DAC1H时。

}

 

//ADC0初始化

voidADC0_Init()

{

ADC0CN=0x80;//使能ADC0,向AD0BUSY写1启动ADC0转换,转化结果右对齐

REF0CN=0x03;//设置基准电压为内部偏压

AMX0SL=0x00;//通道选择,通道0,初始化为电压传感器

ADC0CF=0x28;//ADC0SC=5,ADC0的转化时钟为2M,PGA增益为1

}

//外部中断7初始化

voidINT7_Init()

{

EIE2=0x20;//使能外部中断7

EIP2=0x20;//设置外部中断7为高优先级

}

 

//定时器T0初始化

voidT0_Init()

{

CKCON=0x00;//定时器时钟选择,用系统时钟12分频

TMOD=0x01;//定时器方式设置为方式0

TH0=(65536-10000)/256;//为T0装初值

TL0=(65536-10000)%256;//

TR0=1;//开启T0

ET0=1;//允许T0中断

}

 

//数码管显示

voidDisplay()

{

inti;

if(model==0)//model=0显示设定电压值

{

ZLG7289_Download(1,0,0,data_10);

ZLG7289_Download(1,1,1,data_1);

ZLG7289_Download(1,2,0,data_01);

//ZLG7289_Hide(0x07);

}

else//model=1,显示电流电压值,0~3管显示电流,4~7管显示电压

{

ZLG7289_Download(1,0,0,current/1000);

ZLG7289_Download(1,1,0,(current%1000)/100);

ZLG7289_Download(1,2,0,(current%1000%100)/10);

ZLG7289_Download(1,3,0,current%1000%100%10);

ZLG7289_Download(1,4,0,voltage/1000);

ZLG7289_Download(1,5,0,(voltage%1000)/100);

ZLG7289_Download(1,6,1,(voltage%1000%100)/10);

ZLG7289_Download(1,7,0,voltage%1000%100%10);

}

}

 

//处理读按键值并更新DAC输出

voidRead()

{

charkey_data;

key_data=ZLG7289_Key();//读键值

switch(key_data)

{

case0:

model=!

model;break;

case1:

if(data_10==1)data_10=0;elsedata_10++;break;

case2:

if(data_10==0){if(data_1==9)data_1=0;elsedata_1++;}else{if(data_1==2)data_1=0;elsedata_1++;}break;

case3:

if(data_01==9)data_01=0;elsedata_01++;break;

//case5:

data_10=(data_10-1)%10;break;

//case6:

data_1=(data_1-1)%10;break;

//case11:

data_01=(data_01-1)%10;break;

default:

break;

}

if(data_10>1)

{

data_10=1;

data_1=2;

}

if(data_10==1&&data_1>2)

{

data_10=1;

data_1=2;

}

/*if(data_10==0&&data_1<6)

{

data_10=0;

data_1=6;

}*/

date=data_10*100+data_1*10+data_01;

Display();

DA_code=(4096*(data_10*10+data_1+data_01*0.1))/14.526;

DAC1L=DA_code%256;

DAC1H=DA_code/256;//向DAC1H写数据,DA更新输出

}

 

//调整输出

voidAdjust()

{

if(voltage>date)//当输出电压大于设定值时,减小输出DA数字量值

{

if(DA_code>0)

{

DA_code--;

DAC1L=DA_code%256;

DAC1H=DA_code/256;//向DAC1H写数据,DA更新输出

}

}

elseif(voltage

{

if(DA_code<4095)

{

DA_code++;

DAC1L=DA_code%256;

DAC1H=DA_code/256;//向DAC1H写数据,DA更新输出

}

}

}

voidmain()

{

WDTCN=0XDE;

WDTCN=0XAD;//关闭看门狗

EA=1;//开启中断开关

SYSCLK_Init();//系统时钟初始化

ZLG7289_Init(60);//ZLG芯片初始化

PORT_Init();//端口初始化

ADC0_Init();//ADC0初始化

T0_Init();//定时器T0初始化

INT7_Init();//外部中断7初始化

DAC1_Init();//DAC1初始化

while

(1)

{

if(model==0)//medel=0时,设定电压值,更新输出

{

if(flag1==1)

{

Read();

flag1=0;

}

}

else//model=1时,输出电压电流值,并调整DA_code的值

{

if(flag1==1)

{

model=!

model;

flag1=0;

Display();

}

AMX0SL=0x00;//采集输出电流值,输入选择AIN0

ADC0CF=0x2b;//采集输出电流值,增益为8

AD0INT=0;//清除转换结束标志

AD0BUSY=1;//开始转换

while(AD0INT==0);//等待转换结束

current=(2*2421.0*(ADC0H*256+ADC0L))/32768;//计算电流值,单位为mA

AMX0SL=0x01;//采集输出电压值,输入选择AIN1

ADC0CF=0x28;//采集输出电压值,增益为1

AD0INT=0;//清除转换结束标志

AD0BUSY=1;//开始转换

while(AD0INT==0);//等待转换结束

voltage=51*(2.421*(ADC0H*256+ADC0L))/4096-current/200.0;//计算电压值,单位为1V扩大10倍

if(ms>=50)

{

ms=0;

Display();

}

//Adjust();//调整,使输出电压值等于设定电压

}

}

}

//INT7中断服务程序

voidser19()interrupt19using1

{

flag1=1;

P3IF=0x00;//标志位清零

}

//定时器T0中断控制函数

voidser1()interrupt1using2

{

ms++;//计时周期为10ms,当有中断时,计时增加

TH0=(65536-10000)/256;//定时器初值重载

TL0=(65536-10000)%256;//

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1