直流电子负载.docx
- 文档编号:2946463
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:19
- 大小:136.44KB
直流电子负载.docx
《直流电子负载.docx》由会员分享,可在线阅读,更多相关《直流电子负载.docx(19页珍藏版)》请在冰豆网上搜索。
直流电子负载
直流电子负载
一、基本要求
(1)负载工作模式:
恒压(CV)、恒流(CC)两种模式可选择。
(2)电压设置及读出范围:
1.00V~20.0V。
(3)电流设置及读出范围:
100mA~3.00A。
(4)显示分辨力及误差:
至少具有三位数,相对误差小于5%。
二、总体方案论证与设计
2.1参数设计方案
利用A/D转换把模拟信号转换为数字信号,在利用单片机程控来修改电压电流参数,此方案精确度高,操作技术要求很高,节省时间。
并且用DA采集显示测量值,比较得出结论。
2.2恒流恒压设计方案
1.定电流模式(CCmode)
在定电流工作模式时,电子负载所流入的负载电流依据所设定的电流值而保持恒定,与输入电压大小无关,即负载电流保持摄定值不变。
2.定电压模式(CVmode)
在定电压工作模式时,电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流将会增加直到负载电压等于设定值为止,即负载电压保持设定值不变。
2.3电源模块设计
电源模块基本电路图
2.4单片机模块设计
单片机模块基本电路
三、测试及分析
测试原始数据
1.恒流模式数据测量
模式
设定值(A)
测量值1(A)
测量值2(A)
测量值3(A)
工作电压(V)
工作电压(V)
工作电压(V)
恒流
0.37
0.43
0.43
0.43
0.85
2.08
3.49
恒流
0.75
0.76
0.76
0.76
1.23
2.43
4.45
恒流
1.13
1.15
1.15
1.15
1.42
4.09
5.38
恒流
1.70
1.72
1.72
1.72
2.29
4.66
6.22
恒流
1.89
1.91
1.91
1.91
3.24
5.35
6.87
2.恒压模式数据测量
模式
设定值(V)
测量值1(V)
测量值2(V)
测量值3(V)
工作电压(V)
工作电压(V)
工作电压(V)
恒压
1.11
1.12
1.12
1.12
1.68
3.81
7.40
恒压
3.11
3.16
3.08
3.14
4.87
7.34
10.25
恒压
9.00
8.96
9.04
9.04
10.03
12.27
15.33
恒压
15.22
15.16
15.24
15.18
15.49
17.78
19.34
恒压
20.00
19.92
19.84
19.90
20.22
21.12
22.23
四、附录
基本程序
恒流模块
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitrs=P2^7;
sbitE=P2^6;
sbitadwr=P2^5;
sbitadrd=P2^4;
floatadval;
longinttemp;
voiddelay(uintz)//延时子程序
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
write_com(ucharcom)//写命令
{
rs=0;
P0=com;
delay(5);
E=1;
delay(5);
E=0;
}
write_data(uchardat)//写数据
{
rs=1;
P0=dat;
delay(5);
E=1;
delay(5);
E=0;
}
init()//液晶初始化
{
E=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+3);
}
voidDisplay_Resulti(uchardac)//恒流设定值子程序
{
floatdb=0.0;
ucharshi=0,ge=0,xs=0,xxs=0;
P3=dac;
db=dac*3.00/158.00;
shi=(int)db/10;
ge=(int)db%10;
db*=10.0;
xs=(int)db%10;
db*=10.0;
xxs=(int)db%10;
write_com(0x80+1);
delay
(2);
write_data('c');
delay
(2);
write_data('u');
delay
(2);
write_data('r');
delay
(2);
write_data('r');
delay
(2);
write_data('e');
delay
(2);
write_data('n');
delay
(2);
write_data('t');
delay
(2);
write_data(0x3a);
delay
(2);
if(shi==0)
{
write_data(0x20);
delay
(2);
}
else
write_data(0X30+shi);
delay
(2);
write_data(0X30+ge);
delay
(2);
write_data(0x2e);
delay
(2);
write_data(0x30+xs);
delay
(2);
write_data(0x30+xxs);
delay
(2);
}
voidDisplay_Resulti1(floatadval)//测量电流值子程序
{
ucharge,xs,shi,xxs;
temp=(longint)(adval*105/51);
shi=temp/1000;
ge=temp/100%10;
xs=temp/10%10;
xxs=temp%10;
write_com(0x80+0x40+1);
delay
(2);
write_data('C');
delay
(2);
write_data('U');
delay
(2);
write_data('R');
delay
(2);
write_data('R');
delay
(2);
write_data('E');
delay
(2);
write_data('N');
delay
(2);
write_data('T');
delay
(2);
write_data(0x3a);
delay
(2);
if(shi==0)
{
write_data(0x20);
delay
(2);
}
else
write_data(0X30+shi);
delay
(2);
write_data(0X30+ge);
delay
(2);
write_data(0x2e);
delay
(2);
write_data(0x30+xs);
delay
(2);
write_data(0x30+xxs);
delay
(2);
}
voidADC()//启动AD转换
{
adwr=1;
_nop_();
adwr=0;
_nop_();
adwr=1;
P1=0xff;
adrd=1;
_nop_();
adrd=0;
_nop_();
adval=P1;
adrd=1;
}
voidmain()//主程序
{
init();
TMOD=0x02;//定时器初始化
TH0=0x6f;
TL0=0x00;
IE=0x82;
TR0=1;
while
(1)//显示模块
{
ucharkey=0;
bitkeyflag=1;
uintdac=0;
Display_Resulti(dac);
while
(1)//键盘扫描控制显示
{Display_Resulti1(adval);
ADC();
key=P2&0x0f;
switch(key)
{
case0x0e:
if(keyflag)
{
dac=0;
Display_Resulti(dac);
keyflag=0;
}
break;
case0x0d:
if(keyflag)
{
dac+=10;
Display_Resulti(dac);
keyflag=0;
}
break;
case0x0b:
if(keyflag)
{
dac-=10;
Display_Resulti(dac);
keyflag=0;
}
break;
case0x07:
if(keyflag)
{
dac=158;
Display_Resulti(dac);
keyflag=0;
}
break;
case0x0f:
keyflag=1;
break;
}
}
}
}
恒压模块
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitrs=P2^7;
sbitE=P2^6;
sbitadwr=P2^5;
sbitadrd=P2^4;
floatadval;
longinttemp;
voiddelay(uintz)//延时子程序
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
write_com(ucharcom)//写命令
{
rs=0;
P0=com;
delay(5);
E=1;
delay(5);
E=0;
}
write_data(uchardat)//写数据
{
rs=1;
P0=dat;
delay(5);
E=1;
delay(5);
E=0;
}
init()//液晶初始化
{
E=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+3);
}
voidDisplay_Resultu1(floatadval)//恒压设定值子程序
{
ucharge,xs,shi,xxs;
temp=(longint)(adval*110/51);
temp=temp*4;
sh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直流 电子负载