可定时开关的多路直流稳压电源.docx
《可定时开关的多路直流稳压电源.docx》由会员分享,可在线阅读,更多相关《可定时开关的多路直流稳压电源.docx(17页珍藏版)》请在冰豆网上搜索。
可定时开关的多路直流稳压电源
南京邮电大学第七届电子设计大赛
暨2012年江苏省大学电子设计竞赛选拔
设计报告
参赛题目:
可定时开关的多路直流稳压电源
题目编号:
E类
参赛队员:
王子恒麻旋黄晓辉
参赛单位:
通信与信息工程学院
日期:
2012年5月7号
摘要
本设计主要由三个模块构成:
电源稳压模块,数字显示控制模块,电路保护模块。
电源稳压模块电路有电源变压器电路,整流电路,滤波电路,稳压电路;数字显示控制模块有单片机AVR定时开关,数字显示输出电压;保护模块有自动恢复电路,微控热保护,过流及短路保护,过冲保护电路;
一.方案比较和选择
方案1,采用模拟的分立元件,通过电源变压器,整流滤波电路,以及稳压电路实现稳压电源输出正负5V,正负12V,正3.3V。
但分立元件分散性较大,各电阻电容影响教大,使用器件多,连接复杂。
方案2,采用FPGA作为控制器的简易数控直流电源设计方案。
设计方案采用FPGA作为控制器的简易数控部分,键盘显示器接口控制,输出部分采用D/A0835与运算放大器UA714,输出电压波形由FPGA的输出数据控制,不仅可以输出直流电平,而且只要预先生成波形的量化数据,就可以产生多种波形输出,显示数据由FPGA提供,利用硬件和软件结合的方法设计稳压电源,其精度和稳定性都有所提高,但是利用FPGA来设计成本很高,性价比很差。
选择:
通过比较,用方案一电路较清晰明了,便于调试,另一方面,成本低,性比价高,适合各种电路的兼并;
二.理论分析与计算
(1)电源稳压模块分析
①电源变压器:
是降压变压器,它将电网220V交流电压变换成符合需要的交流电压,并送给整流电路,变压器的变比由变压器的副边电压确定。
②整流电路:
利用单向导电元件,把50Hz的正弦交流电变换成脉动的直流电。
在ui的正半周内,二极管D1、D2导通,D3、D4截止;u2的负半周内,D3、D4导通,D1、D2截止。
正负半周内部都有电流流过的负载电阻RL,且方向是一致的。
③滤波电路:
可以将整流电路输出电压中的交流成分大部分加以滤除,从而得到比较平滑的直流电压。
滤波电路选用一个4700μF的大容量电解电容C1和一个0.33μF的小容量涤纶CL11型电容C2并联滤波。
理论上,在同一频率下容量大的电容其容抗小,这样一大一小电容相并联后其容量小的电容C2不起作用。
但是,由于大容量的电容器存在感抗特性,等效为一个电容与一个电感串联。
在高频情况下的阻抗反而大于低频时的阻抗,小电容的容量小,在制造时可以克服电感特性,几乎不存在电感。
④稳压电路:
稳压电路的功能是使输出的直流电压稳定,不随交流电网电压和负载的变化而变化。
稳压电路选用三端集成可调直流稳压器(它的线性调整率和负载调整率也比标准的固定稳压器好)
稳压电源的输入输出端要跨接一个二极管,以防止集成稳压器输出调整管损坏;
(2)电路保护模块分析
①电路的过流及短路保护采用SMD100F热敏电阻,经查找资料其动作电流是1.1A,符合所需要求,当电路电流过大(大于1.1时)或短路,热敏电阻阻值变大,电流跳跃为0.2~0.3A,电路保护,并自动检测电路,当电路正常时,热敏电阻恢复常态,电路工作正常。
②过热保护采用芯片控制,当温度过高时,芯片自动截止,电路停止工作;
(3)数字显示控制模块分析
定时控制采用DS1302时钟芯片,通过编程控制开关机;
输出电压显示通过1602液晶屏幕显示,由于负电压不能直接用单片机经过分析采用了如下电路:
此为单片机控制继电器并能自动实现电源的具有24小时自动定时开、关机的功能。
用按键实现开关的手动调节设定定时的时间,并在1602显示屏上显示出来,并在设定的时间正常实现电源的启动与关闭。
用1602液晶显示器显示输出电压,
(4)元器件选择和电路参数计算说明
1.变压器的选择
根据输出电压分别为正3.3V、正负5V、正负12V,最大输出电流为0.5~1A;
变压器选择220V/24V30W
2.选择整流电路中的二极管
∵变压器的副边电压U2=24V∴桥式整流电路中的二极管承受的最高反向电压为50V,桥式整流电路中二极管承受的最高平均电流为IA;
反向击穿电压UBR=50V>17V,最大整流电流IF=1A>0.3A
3.滤波电路中滤波电容的选择
滤波电容的大小可用式C=ΔUi/(Δt*I)求得。
(1)求ΔUi:
根据稳压电路的的稳压系数的定义:
设计要求ΔUo≤5mV,SV≤0.002。
Ui=24V
代入上式,则可求得ΔUi=ΔUo/(Uo*Sv);
(2)滤波电容C
设定Io=Iomax=1A,Δt=0.01S
则可求得C,经计算选择4700uF的电解电容器;
注意:
因为大容量电解电容有一定的绕制电感分布电感,易引起自激振荡,形成高频干扰,所以稳压器的输入、输出端常并入瓷介质小容量电容用来抵消电感效应,抑制高频干扰。
三.电路与程序设计:
(1)全波桥式整流
用4个二极管组成的桥式整流电路可以使用只有单个次级线圈的变压器,见图下。
负载上的电流波形和输出电压值与全波整流电路相同。
(2)、稳压电路的设计
(1)输出±5V:
核心器件选用LM317,LM337三端集成稳压器,其输出电压为±5V,额定电流0.5A。
当变压器变压后输出10V交流电,经整流,滤波后由LM317,LM337三端集成稳压电源处理(R2设置为定值),输出±5V电压,电流最大输出为1A。
(2)输出±12V:
核心器件依然选用LM317,LM337三端集成稳压器,组合应用这两个稳压器件与一个硅整流桥相接,按图接好电路就能输出±12V的电压。
滤波电容用了两个4700uF首尾相接,连接处接公共输出接地端。
输出电压为Uo=1.25【1+(Rw+R2)/R1】;
(3)输出+3.3V,该部分的核心器件为三端集成直流稳压器LM117转3.3V;
(3)稳压电源总电路如下:
(4)单片机供电稳压电路:
直接采用CW7805,CW7905
三端集成稳压器,输出正负五负的电压供单片机工作;
(6)程序设计:
#include"includes.h"
#defineMAIN_C
unsignedcharalarm_1_set,alarm_2_set,alarm_3_set,i;
//unsignedcharb10;
//unsignedcharbpm;
#include
#definessec!
(PIND&_BV(3))
#definemmin!
(PIND&_BV(4))
#definehhour!
(PIND&_BV(5))
#definesetalarm!
(PIND&_BV(6))
#definesettime!
(PIND&_BV(7))
/**************************************************************************************/
//函数名:
main
//属性:
私有
//功能:
主函数
//输入参数:
//输出参数:
//返回值:
//修改日期:
//修改人:
/**************************************************************************************/
staticunsignedcharf=0,ff1=1;
voiddisp(unsignedcharsec,unsignedcharmin,unsignedcharhour)
{
gotoxy(0,1);
delay_nms(10);
put_char('0'+hour/10);
put_char('0'+hour%10);
put_char(':
');
put_char('0'+min/10);
put_char('0'+min%10);
put_char(':
');
put_char('0'+sec/10);
put_char('0'+sec%10);
}
voidkey_scan()
{
unsignedcharss=0,mm=0,hh=0;
if(settime)
{
delay_nms(15);
if(settime)
{
delay_nms(500);
gotoxy(0,0);
outtext("set_time");
for(i=0;i<100000;i++)
{
if(settime)
{
delay_nms(15);
if(settime)
{
gotoxy(0,0);
outtext("");
delay_nms(1000);
break;
}
}
if(ssec)
{
delay_nms(15);
if(ssec)
{
ss++;if(ss==60)ss=0;
disp(ss,mm,hh);
}
}
if(mmin)
{
delay_nms(15);
if(mmin)
{
mm++;if(mm==60)mm=0;
disp(ss,mm,hh);
}
}
if(hhour)
{
delay_nms(15);
if(mmin)
{
hh++;if(hh==12)hh=0;
disp(ss,mm,hh);
}
}
}
set_time(ss,mm,hh);
}
}
if(setalarm)
{
delay_nms(15);
if(setalarm)
{
gotoxy(0,0);
outtext("set_alarm");
delay_nms(500);
for(i=0;i<100000;i++)
{
if(setalarm)
{
delay_nms(15);
if(setalarm)
{
gotoxy(0,0);
outtext("");
delay_nms(1000);
break;
}
}
if(ssec)
{
delay_nms(15);
if(ssec)
{
ss++;if(ss==60)ss=0;
disp(ss,mm,hh);
}
}
if(mmin)
{
delay_nms(15);
if(mmin)
{
mm++;if(mm==60)mm=0;
disp(ss,mm,hh);
}
}
if(hhour)
{
delay_nms(15);
if(hhour)
{
hh++;if(hh==12)hh=0;
disp(ss,mm,hh);
}
}
}
set_alarm(ss,mm,hh);
}
}
}
voidset_time(unsignedchars,unsignedcharm,unsignedcharh)
{
write_byte(sec_w,((s%10)+((s&0b01111111)-(s%10))<<4));
write_byte(min_w,((m%10)+((m&0b01111111)-(m%10))<<4));
write_byte(hour_w,((h%10)+((h&0b01111111)-(h%10))<<4));
}
voidset_alarm(unsignedchars,unsignedcharm,unsignedcharh)
{
eeprom_write_byte(0x00,s);delay_nms(3);
eeprom_write_byte(0x01,m);delay_nms(3);
eeprom_write_byte(0x02,h);delay_nms(3);
gotoxy(15,1);f=1;
outtext("A");
}
voidalarm(unsignedchars,unsignedcharm,unsignedcharh)
{
if(s==eeprom_read_byte(0x00)&&m==eeprom_read_byte(0x01)&&h==eeprom_read_byte(0x02))
{
if(ff1)ff1=0;elseff1=1;
f=0;
gotoxy(15,1);
outtext("");
}
}
voidadc()
{
ints;
ADCSRA=0xC7;
ADMUX=0xE0;
delay_nms(150);
s=ADCH;
s+25;
s*=2;
gotoxy(12,0);
put_char('0'+s/100);
put_char('.');
put_char('0'+(s%100)/10);
put_char('0'+(s%10));
ADMUX=0xE1;
ADCSRA=0xC7;
delay_nms(100);
s=ADCH;
s+25;
s*=(500-2*s)/0.6538;
gotoxy(0,0);
put_char('0'+s/1000);
put_char('.');
put_char('0'+(s%1000)/100);
put_char('0'+(s%100));
ADMUX=0xE2;
ADCSRA=0xC7;
delay_nms(50);
s=ADCH;
s+27;
s=s*5;
gotoxy(4,0);
put_char('0'+s/1000);
put_char('.');
put_char('0'+(s%1000)/100);
put_char('0'+(s%100));
ADMUX=0xE3;
ADCSRA=0xC7;
delay_nms(50);
s=ADCH;
s+27;
s=s*5;
gotoxy(8,0);
put_char('0'+s/100);
put_char('.');
put_char('0'+(s%100)/10);
put_char('0'+(s%10));
}
voidmain(void)
{
DDRD=0b11100000;
PORTD=0xFF;
PORTB=0b01111111;;
DDRB=0xFF;
PORTA=DDRA=0x00;
unsignedcharhour,min,sec;
//unsignedchartemp1,temp2,temp3;
unsignedchartest[]="Nowtimeis:
";
//min=0;
//sec=0;
//hour=0;
//SPL=0x5f;
//init_usart();
initgraph();
write_byte(w_protect,0x00);//makesurethattheWPbitiscleared
//settime
write_byte(0x90,0xa6);
write_byte(sec_w,0x09);
//write_byte(min_w,0x09);
//write_byte(hour_w,0x09);
while
(1)
{
//temp1=sec;
//temp2=min;
//temp3=hour;
sec=read_byte(sec_r);//readtheseconds
min=read_byte(min_r);//readtheminites
hour=read_byte(hour_r);//readtheminites
gotoxy(0,1);
delay_nms(10);
put_char('0'+hour/10);
put_char('0'+hour%10);
put_char(':
');
put_char('0'+min/10);
put_char('0'+min%10);
put_char(':
');
put_char('0'+sec/10);
put_char('0'+sec%10);
key_scan();
if(f==1)alarm(sec,min,hour);
if(ff1){PORTB|=_BV(6);gotoxy(10,1);outtext("ON");}else{PORTB&=~_BV(6);gotoxy(10,1);outtext("OFF");}
adc();
key_scan();
if(f==1)alarm(sec,min,hour);
if(ff1){PORTB|=_BV(6);gotoxy(10,1);outtext("ON");}else{PORTB&=~_BV(6);gotoxy(10,1);outtext("OFF");}
}
}
四.测试方案与测试结果
(1)电源仿真电路图
电源仿真结果
(2).电压输出波形和纹波变化见仿真图
五.总结与体会:
通过本次设计,让我们更进一步的了解到直流稳压电源的工作原理以及它的要求和性能指标.也让我们认识到在此次设计电路中所存在的问题;而通过不断的努力去解决这些问题.在解决设计问题的同时自己也在其中有所收获.我们这次设计的这个直流稳压电源电路;采用了电压调整管和外加调整管来实现电压的调整部分;而稳流部分用可调式三端稳压电源管来实现。