1997年直流稳定电源报告.docx
《1997年直流稳定电源报告.docx》由会员分享,可在线阅读,更多相关《1997年直流稳定电源报告.docx(13页珍藏版)》请在冰豆网上搜索。
1997年直流稳定电源报告
直流稳定电源
摘要:
本系统分为三个模块电路构成,稳压电路、稳流电路、显示模块。
考虑到负载特性、温度特性等因素,稳压电源和温流电源均采用串联反馈型电路。
显示模块用AT89C52单片机控制液晶LCD1602显示出用ADC0809采集的实际输出电压、电流。
关键字:
稳压电路、稳流电路、显示模块、AT89C52、LCD1602、ADC0809。
1总体方案设计
本直流稳定电源系统主要以稳压模块为基础,稳流模块是在稳压模块固定输出12V的条件下实现各功能,AT89C52和显示模块的供电也是稳压模块提供的。
系统总体框图如图一所示:
图一:
系统总体框图
1.1总体方案设计与论证
1.1.1稳压电源
方案一:
采用单级开关电源。
由220V交流整流后,经开关电源稳压输出。
但此方案所产生的纹波大,抗干扰能力弱,在以后的几级电路中很难加以抑制,很有可能造成设计的失败和技术参数的超标。
方案二:
从滤波电路输出后,直接进入线性稳压电路(如图二所示)。
线性稳压电路输出值可调,为9~12V直流电压输出。
这种方案的优点是:
电路简单,容易调试,但效率上难以保证。
线性稳压电源的输出端一般为15V左右的电压,而其输出端只为9~12V,两端压降太大,功率损耗严重,使得总电路效率指标难以达到。
图二
方案三:
采用串联反馈调整型稳压电源。
该方案采用负反馈网络,从输出电压取样与基准电压比较,并将误差电压经放大后馈送至调整管,使输出电压在电网电压变动的情况下仍能保持稳定。
该电路输出电压稳定性好,负载调整率高,引入的负反馈使纹波电压大大减少。
对方案一、方案二、方案三各自的优缺点综合考虑,结论如下:
选用方案二为了获得更好的性能指标,本设计选用可编程精密电压基准TL431器件作为比较放大器并依靠其内部基准电压源提供电路所需的电压基准。
TL431内部具有高达66dB的高增益运放,提供的基准电压调整率高,动态电阻小,并且具有输出电流大,温漂系数小等特点。
组成的串联调整型基本电路如图三所示:
图三
1.1.2稳流电源
方案一:
使用三端集成稳压芯片。
用稳压源和电阻可构成简单地恒流源。
使用可调稳压集成电路LM317构成的恒流源。
LM317提供1.25V的基准电压,调节电阻可改变电流的大小。
该电路简单稳定性较好,但温漂特性较差。
方案二:
使用分立元件,如图四所示。
该电路属于串联调整型稳流源,T1为调整管,T2为比较放大器,采样电阻Rs上的电压与参考电压的差值经放大后通过调整管T1的基极电流来保持Rl上的电流恒定。
在不考虑温度系数以及输入电压的变化时,该电路有可能达到题目要求的指标。
图四图五
方案三:
使用精密电压基准TL431。
如图五所示。
该电路属于串联调整型稳流源。
加入的TL431相当于引入一个深度的负反馈,使R2、Rs两端电压稳定在Uref。
通过改变R2、Rs串联电阻控制电流I,达到恒流的目的、该电路具有电路简单,稳定性好的特点。
上述三种方案对于完成题目的要求都是可行的,考虑到方案三稳定性好,温漂性能优越,故予采用。
2详细电路设计及分析
主要流程图如图六所示:
图六:
主要流程图
2.1稳压电源
稳压电源采用方案二,最终电路如图七所示:
图七:
稳压电源电路
在前面方案论述中曾提到压差与效率存在着矛盾。
为解决这一矛盾,因尽可能地降低最小压差,并同时降低其他部件的功耗,以提高效率。
所以对电路做以下几个方面的改进:
(1)采用效率更高的R型变压器和肖特基整流二极管,提高了交直流转换的效率。
(2)选用性能较好的低压MOS场效应管代替晶体管作为调整管,这相当于降低了饱和压降。
(3)选用大容量滤波电容C1,加大C1容量后,可以减小整流输出电压的纹波,对最小允许压差也有一定得改善。
(4)添加“上辅助电源“,该辅助电源提供偏置电压以及基极电流,它对降低最小压差起到重要的作用。
2.2稳流电源
稳压电源采用方案三,最终电路如图八所示:
图八:
稳流电源电路
2.3控制及显示模块
图九:
控制显示电路
说明:
通过控制ADC0809上的A、B、C接口的值,输入八位二进制数,用1和2作为输入采集通道。
3系统测试结果
3.1稳压电路
(1)测试电压可调范围。
当输入Ui=220V时,测得可调电压范围为8.9~13.5V。
(2)测电压调整率。
(用模拟测试,实际中,条件不满足测试不了)
220V是Uout/V
输入电压/V
输出电压/V
电压调整率
9.00
176.0
8.999
0.01%
253.0
9.000
12.00
176.0
11.997
0.025%
253.0
11.999
(3)负载调整率。
(模拟测试)
空载输出电压/V
满载输出电压/V
负载调整率
9.020
8.998
0.24%
12.063
12.006
0.47%
3.2稳流电路
(1)调节可变电阻,用万用表测得输出电流在2.068~24.033mA范围内连续可调。
(2)测负载调整率。
负载/Ω
输出电流/mA
负载调整率
220
19.985
0.10%
300
19.954
参考文献
[1]郭天祥.51单片机C语言教程.电子工业出版社.
[2]康华光.电子技术基础.高等教育出版社.
[3]黄志玮.全国大学生电子设计竞赛训练教程.电子工业出版社
附录:
程序清单
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitA=P2^0;
sbitBB=P2^1;
sbitC=P2^2;//A,B,C选择模拟量输入端
sbitST=P2^3;
sbitEOC=P2^4;
sbitOE=P3^2;
sbitCLK=P3^3;
sbitALE=P3^4;
sbitrw=P2^5;//1602读写选择端
sbitsjml=P2^6;//1602数据命令选择端
sbitsneng=P2^7;//1602使能端
uchara[]="0123456789";
uintge,shi,bai,qian,wan,swan;
uintge1,shi1,bai1,qian1,wan1,swan1;
floatgetdata,getdata1;
longnum,num1;
voidshizhong()
{
TMOD=0x01;
TH0=(65536-2)/256;
TL0=(65536-2)%256;
EA=1;
ET0=1;
TR0=1;
CLK=0;
}
voiddelay(ucharxms)
{
uchari,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voidkey()//电压显示
{
A=0;
BB=0;
C=0;
ST=ALE=0;
ST=ALE=1;
ST=ALE=0;
OE=0;
while(EOC==0);
OE=1;
getdata=P1*7.68;
}
voidkey1()//电流显示
{
A=1;
BB=0;
C=0;
ST=ALE=0;
ST=ALE=1;
ST=ALE=0;
OE=0;
while(EOC==0);
OE=1;
getdata1=P1*1.60;
}
voidwrite_com(ucharcom)
{
rw=0;
sjml=0;
P0=com;
delay(5);
sneng=1;
delay(5);
sneng=0;
}
voidwrite_data(uchardate)
{
rw=0;
sjml=1;
P0=date;
delay(5);
sneng=1;
delay(5);
sneng=0;
}
voidinit()
{
sneng=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
voiddisplay()//电压显示
{
shizhong();
key();
num=getdata*100;
shi=num/10%10;
bai=num/100%10;
qian=num/1000%10;
wan=num/10000%10;
swan=num/100000;
write_com(0x80);
write_data(a[swan]);
write_data(a[wan]);
write_data('.');
write_data(a[qian]);
write_data(a[bai]);
write_data(a[shi]);
write_data('v');
}
voiddisplay1()//电流显示
{
shizhong();
key1();
num1=getdata1*1000;
shi1=num1/10%10;
bai1=num1/100%10;
qian1=num1/1000%10;
wan1=num1/10000%10;
swan1=num1/100000;
write_com(0x80+0x40);
write_data(a[swan1]);
write_data(a[wan1]);
write_data('.');
write_data(a[qian1]);
write_data(a[bai1]);
write_data(a[shi1]);
write_data('M');
write_data('A');
}
voidmain()
{
init();
shizhong();
while
(1)
{
display();
display1();
}
}
voidtt()interrupt1
{
TH0=(65536-2)/256;
TL0=(65536-2)%256;
CLK=~CLK;
}