直流电子负载.docx

上传人:b****6 文档编号:2946463 上传时间:2022-11-16 格式:DOCX 页数:19 大小:136.44KB
下载 相关 举报
直流电子负载.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

直流电子负载

直流电子负载

 

一、基本要求

(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

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

当前位置:首页 > 表格模板 > 调查报告

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

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