数控稳压直流电源.docx
- 文档编号:9156275
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:166.70KB
数控稳压直流电源.docx
《数控稳压直流电源.docx》由会员分享,可在线阅读,更多相关《数控稳压直流电源.docx(20页珍藏版)》请在冰豆网上搜索。
数控稳压直流电源
[摘要]
直流稳压电源是电子技术常用的设备之一。
传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。
普通直流稳压电源品种很多。
但均存在以下问题:
输出电压是通过粗调(波段开关)及细调(电位器)来调节。
将单片机数字控制技术融入直流稳压电源的设计中,设计一款多功能数字化通用直流稳压电源。
该设计除了实现对电压的数字控制外,还具有高精度、多功能、液晶显示的特点。
[关键词]
直流稳压电源数控单片机STC89C52
1、设计任务和要求
1、设计任务
设计并制作有一定输出电压调节范围和功能的数控直流稳压电源,其原理框图如图1所示。
图1数控电源原理框图
2、设计要求
(1)输出直流电压调节范围6~12V,纹波小于20mV。
(2)输出电流0~500mA。
(3)稳压系数小于0.2。
(4)按键设定输出电压值,分辨率为0.1V。
(5)用数码管显示稳压电源输出电压值,当输出电压为12.1V时,数码管显示“12.1”。
(6)实时采样并显示输出电流,显示分辨率为1mA。
二、基本工作原理
一个直流稳压电源通常是由电源变压器、整流电路、滤波电路和稳压电路四个部分构成。
稳压电路较常用的串联型线性稳压电路具有结构简单、调节方便、输出电压稳定性强、纹波电压小等优点,其原理图如图2所示。
输入电压为整流滤波电路的输出电压。
图2串联型稳压电路
稳压电路的输出电压为
(1)
由上式可知输出电压与基准电压为线性关系,当改变
的大小,则输出电压也将发生变化。
如果此基准电压是一个数控基准电压,则此稳压电路就可以构成一个数控的稳压电源。
数控基准电压源的原理框图如图3所示。
图3数控基准电压源原理
3、单元电路设计及元器件选用
1、电源变压器、整流电路、滤波电路
为方便起见,使用直流稳压电源作为输入电压
2、稳压电路
串联型稳压电路参见图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)
由以上几式即可确定调整管的极限参数。
实际选用时,还要考虑留一定的余量。
因要求输出电压为0~500mA,调整管Q1选用BD681,放大倍数hFE为750,则Q1基极电流最大约为0.7mA,BD681饱和压降Ube约为1.4V,输出电压为6~12V,令输入电压Ui为15V,所以
(5)
Q2和Q3选用2SC9013,放大倍数约为64~110,图4为2SC9013静态工作特性和增益特性
图4静态工作特性和增益特性
由图可知,Ic电流为1mA时已经工作在放大状态,假设Ic电流为1mA
(6)
(7)
取Rc=910Ω。
求得Re=51Ω。
4、单片机实现电压输出和电压采样
由于稳压电路输出电压由Uz决定
(8)
要求Uo范围为6~12V,设定单片机DA输出值Uz为1.2V~2.4V,故R1:
R2=4:
1,且取较小阻值,这里取R1=1.2KΩ,R2=300Ω。
本项目控制芯片采用STC89C52,DA-AD芯片采用Philip公司的PCF8591T,PCF8591T是8位DA-AD芯片,采用IIC总线与STC89C52通信。
1、流程图如下
2、程序代码见附录
从单片机前4个数码管读取采样电压值,后4个数码管显示设定值。
五、稳压电源主要性能指标
直流电源的技术指标分为两种:
一种是特性指标,包括允许输入电压、输出电压、输出电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整率)、输出电阻(或电流调整率)、纹波电压及温度系数等。
稳压电源主要性能指标测试。
1、输出电压范围
在额定负载情况下,稳压电源输出电压可调范围。
满载时约500mA。
设置电压
采样电压
实测电压
采样-实测误差
实测-设置误差
6.0
6.09
6.12
0.004901961
0.019607843
6.2
6.28
6.28
0
0.012738854
6.4
6.38
6.43
0.00777605
0.00466563
6.6
6.57
6.62
0.00755287
0.003021148
6.8
6.76
6.80
0.005882353
0
7.0
6.95
6.98
0.004297994
-0.00286533
7.2
7.14
7.17
0.0041841
-0.0041841
7.4
7.33
7.34
0.001362398
-0.008174387
7.6
7.62
7.62
0
0.002624672
7.8
7.81
7.82
0.001278772
0.002557545
8.0
8.00
8.01
0.001248439
0.001248439
8.2
8.19
8.19
0
-0.001221001
8.4
8.38
8.38
0
-0.002386635
8.6
8.57
8.57
0
-0.003500583
8.8
8.76
8.78
0.002277904
-0.002277904
9.0
9.05
9.10
0.005494505
0.010989011
9.2
9.33
9.32
-0.001072961
0.012875536
9.4
9.43
9.43
0
0.003181336
9.6
9.71
9.71
0
0.011328527
9.8
9.91
9.91
0
0.011099899
10.0
10.10
10.09
-0.00099108
0.008919722
10.2
10.29
10.28
-0.000972763
0.007782101
10.4
10.48
10.49
0.000953289
0.0085796
10.6
10.76
10.77
0.000928505
0.015784587
10.8
10.95
10.94
-0.000914077
0.012797075
11.0
11.14
11.15
0.000896861
0.013452915
11.2
11.33
11.33
0
0.011473963
11.4
11.53
11.52
-0.000868056
0.010416667
11.6
11.72
11.71
-0.000853971
0.009393681
11.8
11.91
11.91
0
0.009235936
12.0
12.19
12.17
-0.001643385
0.013968776
图6电压输出对比图
由于PCF8591T为8位DA-AD芯片,满值为256,输出电压范围为0~4.72V,故实测-设置误差相对较大。
2、输出最大电流
最大输出电流是指稳压电源正常工作的情况下能输出的最大电流,用Iomax表示。
一般情况下的工作电流Io<Iomax,稳压电路内部应有保护电路,以防止Io>Iomax或者输出端与地短路时损坏稳压器。
图5稳压电源性能指标测试电路
设定电压(V)
采样电流
实测电流
相对误差
6.0
228
225
-0.013333333
6.0
285
295
0.033898305
6.0
362
367
0.013623978
6.0
436
443
0.015801354
6.0
514
500
-0.028
8.0
285
288
0.010416667
8.0
381
377
-0.01061008
8.0
438
428
-0.023364486
8.0
514
509
-0.009823183
10.0
362
356
-0.016853933
10.0
457
463
0.012958963
10.0
533
527
-0.011385199
12.0
438
427
-0.025761124
12.0
552
554
0.003610108
在不同设定电压下输出电流均能达到500mA,满足项目要求。
3、纹波电压
叠加在输出电压上的交流电压分量。
用示波器观测其峰峰值一般为毫伏量级。
也可用交流毫伏表测量其有效值,但因纹波不是正弦波,所以有一定的误差,一般直流电源的纹波电压VP-P≤10mV。
电压设定V
实测电压V
最大电流mA
噪声电压mV
6
6.09
501
15
8
8.00
505
16
10
10.00
508
16
12
12.10
522
10
噪声电压均小于20mV,满足项目要求。
4、电压调整率(稳压系数)
当输出电流和环境温度保持不变时,只考虑由于输入电压改变Ui所引起输出电压的变化量Uo与输出电压Uo的百分比,即
(9)
电压设定
输入13.5V
15V输入电压
16.5V输入电压
18V输入电压
Sv
采样
实际
采样
实际
采样
实际
采样
实际
6
6.09
6.10
6.09
6.12
6.28
6.28
0.029411765
8
7.90
7.92
8.00
8.02
8.00
8.02
0.012468828
10
9.81
9.85
10.00
10.02
10.00
10.01
0.015968064
12
12.10
12.17
12.19
12.22
12.29
12.41
0.019639935
稳压系数Sv均小于0.2,满足项目要求
5、电流调整率
当输入电压和环境温度保持不变时,改变输出电流所引起输出电压的变化量Uo与输出电压Uo的百分比,即
(9)
该参数用于考核器件对应于负载变化而维持输出电压不变的能力。
电压设定
空载电压
额定时电压
额定电流
Si
6
6.19
6.09
512
-0.016420361
8
8
7.9
517
-0.012658228
10
10.01
9.91
503
-0.010090817
12
12
12
513
0
额定负载下,输出电压变化较小,满足项目要求。
6、总结
1、将单片机数字控制技术融入直流稳压电源的设计中,制作了一款多功能数字化通用直流稳压电源。
利用单片机设置基准电压,通过稳压电路输出稳压后的电压。
单片机显示输出电压和设定电压值。
2、在额定负载情况下,输出直流电压调节范围6~12V,按键设置电压值,每按一次最小增加0.1V。
稳压系数小于0.03,性能较好。
噪声电压小于20mV,基本满足设计要求。
3、输出电压的值由Uz决定,单片机DA输出分辨率可以选10位以上,本项目采用的8位DA芯片在输出精度上误差较大,导致输出电压误差较大。
4、PCB板注意布局,电源和地的铜片要大。
参考文献
1、《模拟电子技术(第四版)》高等教育出版社,串联型稳压电路;
2、《单片机的C语言应用程序设计(第四版)》
3、STC单片机程序设计
4、2SC9013PDF
5、BD681PDF
6、IIC总线协议
附录:
单片机程序
/*----------------------------------------------------------
程序功能:
1路AD检测外部模拟量输入,1路DA输出1.2~2.4V电压
-----------------------------------------------------------*/
#include
#include"i2c.h"
unsignedcharcode
DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//显示段码值0~9
unsignedcharcode
DuanMa1[10]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
//显示段码值0~9,带小数点
unsignedcharcode
WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//分别对应相应的数码管点亮,即位码
unsignedcharTempData[8];//存储显示值的全局变量
/*------------------------------------------------
显示函数端口定义
------------------------------------------------*/
#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换
sbitLATCH1=P2^2;//定义锁存使能端口段锁存
sbitLATCH2=P2^3;//位锁存
sbita1=P2^5;//定义整数部分增量按键
sbita0=P2^4;//定义小数部分增量按键
/*------------------------------------------------
DA_AD地址
------------------------------------------------*/
#defineAddWr0x90//写数据地址
#defineAddRd0x91//读数据地址
externbitack;
/*------------------------------------------------
函数调用声明
------------------------------------------------*/
unsignedcharReadADC(unsignedcharChl);
bitWriteDAC(unsignedchardat);
voidDelayUs2x(unsignedchart);
voidDelayMs(unsignedchart);
voidDisplay(unsignedcharFirstBit,unsignedcharNum);
voidInit_Timer0(void);
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain()
{
unsignedcharnum=0;
unsignedintnum1=0;
unsignedchardac=0;
unsignedcharzhengshu=60;
unsignedcharxiaoshu=0;
unsignedintnum2;
Init_Timer0();
while
(1)//主循环
{
DelayMs(1000);
num=ReadADC(0);//读取0路AD上的值
num1=(num*19.0588)*5;//转换采样电压
if(a1==0)//按键低电平有效
{
DelayMs(20);
zhengshu=zhengshu+10;
DelayMs(20);
if(zhengshu+xiaoshu>120)
{zhengshu=60;xiaoshu=0;}
}
if(a0==0)
{
DelayMs(20);
xiaoshu=xiaoshu+1;
DelayMs(20);
if(xiaoshu==10)
{
zhengshu=zhengshu+10;
xiaoshu=0;
}
if(zhengshu+xiaoshu>120)
{zhengshu=60;xiaoshu=0;}
}
dac=(zhengshu+xiaoshu)*1.067;//设定电压值转换
num2=(zhengshu+xiaoshu)*100;//设定电压值显示
WriteDAC(dac);//向IIC总线写入DA量
//数码管显示数据
TempData[0]=DuanMa[num1/10000];
TempData[1]=DuanMa1[num1%10000/1000];
TempData[2]=DuanMa[(num1%10000)%1000/100];
TempData[3]=DuanMa[((num1%10000)%1000)%100/10];
TempData[4]=DuanMa[0];
TempData[5]=DuanMa[num2/10000];
TempData[6]=DuanMa1[(num2%10000)/1000];
TempData[7]=DuanMa[(num2%10000)%1000/100];
/*------------------------------------------------
加入反馈
------------------------------------------------*/
if(num1>num2)//num1采样值,num2为输入值的显示
{dac--;}
else
{dac++;}
DelayMs(100);
}
}
/*------------------------------------------------
uS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下T=tx2+5uS
------------------------------------------------*/
voidDelayUs2x(unsignedchart)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
voidDelayMs(unsignedchart)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
显示函数,用于动态扫描数码管
输入参数FirstBit表示需要显示的第一位,如赋值2表示从第三个数码管开始显示
如输入0表示从第一个显示。
Num表示需要显示的位数,如需要显示99两位数值则该值输入2
------------------------------------------------*/
voidDisplay(unsignedcharFirstBit,unsignedcharNum)
{
staticunsignedchari=0;
DataPort=0;//清空数据,防止有交替重影
LATCH1=1;//段锁存
LATCH1=0;
DataPort=WeiMa[i+FirstBit];//取位码
LATCH2=1;//位锁存
LATCH2=0;
DataPort=TempData[i];//取显示数据,段码
LATCH1=1;//段锁存
LATCH1=0;
i++;
if(i==Num)
i=0;
}
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
voidInit_Timer0(void)
{
TMOD|=0x01;//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
//TH0=0x00;//给定初值
//TL0=0x00;
EA=1;//总中断打开
ET0=1;//定时器中断打开
TR0=1;//定时器开关打开
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
voidTimer0_isr(void)interrupt1
{
TH0=(65536-2000)/256;//重新赋
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 稳压 直流电源