最新直流电子负载设计与制作精品版.docx
《最新直流电子负载设计与制作精品版.docx》由会员分享,可在线阅读,更多相关《最新直流电子负载设计与制作精品版.docx(14页珍藏版)》请在冰豆网上搜索。
![最新直流电子负载设计与制作精品版.docx](https://file1.bdocx.com/fileroot1/2022-12/31/8aca4d13-c38b-4f8d-bee5-cd714cfa5182/8aca4d13-c38b-4f8d-bee5-cd714cfa51821.gif)
最新直流电子负载设计与制作精品版
2020年直流电子负载设计与制作精品版
直流电子负载的设计与制作
摘要:
本直流电子负载采用C8051F360作为系统的主制芯片,可以实现恒流、恒压和恒阻三种模式。
三种模式可手动切换。
三种模式下,电流、电压、电阻的给定是通过键盘进行设定。
硬件电路有单片机电路;键盘、显示、A/D、D/A(PWM),电压检测电路,电流检测电路,MOS管及驱动电路组成。
恒流(恒压)模式下,单片机通过检测电子负载电流(电压)值与给定电流(电压值)比较,由PID算法进行PWM控制,达到恒流(恒压)的目的;恒阻模式下,根据R=U/I计算电子负载阻值与给定电阻值进行比较,由PID算法进行PWM控制,进而实现恒阻控制。
通过安装调试;本直流电子负载电压在1~20V、电流在100mA~2A、电阻在1~200Ώ范围内,跟踪误差≤3%,调节时间≤3秒。
关键字:
C8051F360;电子负载;恒流模式;恒压模式;恒阻模式
第一部分方案论证与设计
1.1整体方案设计
经过仔细研究分析,我们设计系统的结构框图如下:
«SkipRecordIf...»图1-1系统总体框图
1.2模块方案比较
1.2.1主控单元模块
方案一:
采用ATMEL公司的AT89C51。
51单片机结构简单,操作方便,应用广泛,价格便宜。
但是速度慢,程序复杂,硬件误差过大,难于满足指标要求。
方案二:
采用C8051F360单片机控制。
C8051F360单片机速度快且带片上调试功能,且具有片内A/D转换功能。
强大的处理能力,丰富的片上外围模块,系统工作稳定,开发环境方便高效。
综上所述两种方案相比较,C8051F360单片机可靠性更高,故选择方案二。
1.2.2A/D转换电路
方案一:
采用TLC7135芯片。
其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。
方案二:
采用C8051F360片内自带的10位AD转换器。
该AD转换器转换速度快且精度高,同时也简化了外部硬件电路。
两者相比C8051F360内部自带的AD精度更高、操作方面,故选择方案二。
1.2.3显示模块
方案一:
采用数码管显示。
数码管具有接线简单,成本低廉,配置简单灵活,编程容易,对外界环境要求较低,易于维护等特点。
电压和电流的显示可以用数码管,并且本直流电子负载设计并不需要显示太多的内容,数码管就可以完成要求。
方案二:
采用液晶显示(LCD)。
液晶显示具有功耗低、体积小、质量轻、无辐射危害的特点。
但是液晶价格昂贵且屏幕容易出现瑕疵。
对于此系统只是简单地显示电压电流值无需其他文字说明,从要求和成本考虑我们选择方案一。
两种方案比较可知应选择方案一。
1.2.4键盘模块:
方案一:
采用矩阵式键盘。
将键盘排列成矩阵形式,需要通过软件对按键进行判断和定义,且接口电路由单片机系统直接访问和控制,键盘的扫描、去抖动、判断和编码等操作都需要单片机完成,这样会使得单片机的工作量非常大,使单片机的效率降低。
方案二:
采用专用的按键扫描控制芯片74HC165。
能够独立的完成对键盘中按键的扫描与管理,并且通过简单接口与微控制器进行连接。
使用按键扫描控制芯片来完成微控制器的键盘管理,可以大大的提高微控制器的工作效率。
经比较选择方案二,在本直流电子负载中,采用74HC165键盘扫描控制集成芯片。
1.2.5恒流模块
方案一:
电阻采样反馈法,在功率MOS管的源极串接采样电阻,将电流转换成电压,反馈至高增益误差放大器的反相端。
在同相端输入固定电压,当反相端的电压等于同相端的电压时,功率MOS管的电流就恒定,即电流与同相端电压成正比例关系。
方案二:
电流直接采样法,通过电流传感器及运放电路检测流入电子负载的电流,与设定电流相比较,看电流是否达到系统设定的电流值,通过PID算法控制DA输出电压,进而控制功率MOS管的导通量来控制电流。
方案一与方案二相比,由于采样电阻的功率太小,使电子负载可流入的电流受到很大的限制,远远无法满足题目的要求,方案二的缺点是系统响应速度较慢,但可以通过较大的电流。
综合考虑,我们选择方案二。
1.2.6恒压模块
方案一:
三极管放大比较法,此方案中三极管的基极和发射极分别相当于比较器的负、正输入端。
这样的电路可以实现恒压功能,但是误差比较大,同时还有较大的功率损耗。
方案二;通过调节PWM占空比来比较调节指定电压与负载电压。
这种电路结构简单,误差较小。
比较两种方案知应选择方案二。
1.2.7恒阻模块
方案一:
硬件实现法,将功率MOS管的端电压V采样至误差放大器的同相端,将功率MOS管的电流I采样转换成电压至误差放大器的反相端,根据欧姆定律:
R=V/I,实现恒阻。
方案二:
软硬件相结合的方法。
对恒压恒流两种模式进行同时调节,通过PWM调节控制来实现恒阻。
由于方案一误差较大,所以选择方案二。
第二部分电路设计
2.1单片机电路设计
主控电路C8051F360组成的单片机最小系统构成。
主控电路原理图见附件。
图2-1主控电路图
2.2硬件检测驱动电路
硬件检测驱动电路图如图2-2所示
图2-2硬件检测驱动电路
1.恒流控制
电子负载所流入的负载电流依据所设定的电流值而保持恒定,与输入电压大小无关,即负载电流保持设定值不变。
在电流检测电路端的传感器输入端输入电流信号(0~2A),经过电流传感器ACS712变化为电压信号(2.5~2V),该传感器具有能输出与检测的直流成比例的电压,ACS712的输出电压«SkipRecordIf...»与被检测的电流«SkipRecordIf...»的关系为:
«SkipRecordIf...»
然后再通过LM336电路减去增大的一部分并将电压值送入运放,经运放进行放大(-5倍),此时的得到的电压值«SkipRecordIf...»约为电流I的1.25倍。
将电流检测端的的电流送入单片机并经A/D转换与给定值进行比较,如果«SkipRecordIf...»,经PID计算,然后调节占空比来减小MOS管的导通量使实际电流减小;反之则增大MOS管的导通量。
2.恒压控制
电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流增加直到负载电压等于设定值为止,此后负载电压维持设定值不变。
实际电压从电压输出端口进行采样,得到的电压为
«SkipRecordIf...»
然后将此电压经A/D转换送入单片机与给定值作比较,若«SkipRecordIf...»,在单片机内经PID计算,然后通过调节占空比来增大MOS管的导通量U,反之则减小MOS管的导通量。
3.恒阻控制
对恒压恒流两种模式进行同时调节,将电流、电压信号送入单片机并进行A/D转换,在单片机内部根据公式R=U/I来计算出实际电阻的数值,并与给定电阻的阻值相比较,如果«SkipRecordIf...»,则单片机会通过PID计算,经过D/A转换并送出单片机,通过调节占空比来减小MOS管的导通量从而使«SkipRecordIf...»减小;反之则要增大MOS管的导通量来使得«SkipRecordIf...»增大,这样就实现了电子负载的恒阻状态。
2.1.5键盘模块电路
本系统采用74HC165键盘扫描控制集成芯片完成对键盘中按键的扫描与管理电路图如附图1所示。
2.1.6数码显示模块
本系统采用数码管对电压电流和电阻进行显示。
电路图如附图2所示。
2.2软件设计
软件设计中,电压电流采集数据经A/D转换后送入C8051F360单片机,与设定值进行比较,然后按要求进行控制,同时对电压、电流和电阻参数进行显示。
主程序流程如图2-5所示:
:
«SkipRecordIf...»
图2-5系统程序流程图
第三部分测试方案与测试结果
通过外接可调电源分别调节恒流、恒压和恒阻三种模式,并观察三种模式下数码管显示的电压电流情况。
并对显示的电压电流进行比较。
在恒流模式下,通过键盘设定恒流值,用万用表测试电源的输出电压。
改变电源的输出,记录流入负载的电流随电源输出电压的变化过程,测试数据见表
设定电流
(mA)
测试值1
测试值2
测试值3
实测电流(mA)
误差
实测电流(mA)
误差
实测电流(mA)
误差
400
410
2.5%
390
2.5%
410
2.5%
900
920
2.2%
925
2.7%
882
2%
1300
1320
1.5%
1285
1.15%
1330
2.3%
1700
1720
2%
1682
2.3%
1750
1.75%
在恒压模式下,通过键盘设定恒压值,用万用表测试电源的输出电流。
改变电源的输出,记录负载的电压随电源输出电流的变化过程,测试数据见表2。
设定电压
(V)
测试值1
测试值2
测试值3
实测电压(V)
误差
实测电流(A)
误差
实测电流(A)
误差
3
3.05
1.7%
2.91
3%
2.94
2%
9
8.7
3%
9.3
3%
9.28
2.9%
15
15.45
3%
15.4
2.6%
15.3
2%
20
19.6
2%
19.5
2.5%
19.4
3%
在恒阻模式下,通过键盘设定恒阻值,用万用表测试电源的输出电压。
改变电源的输出,记录负载的电阻随电源输出电压的变化过程,测试数据见表3。
设定电阻(Ώ)
测试值1
测试值2
测试值3
实测电阻(Ώ)
误差
实测电阻(Ώ)
误差
实测电阻(Ώ)
误差
10
10.3
3%
10.2
2%
10.2
2%
60
61
1.7%
60.8
1.3%
59
1.7%
120
123
2.5%
122
1.7%
123
2.5%
170
175
2.9%
174
2.4%
173
1.8%
结果分析:
由数据表明,实测电流的值都稳定在设定值左右,经计算,相对误差小于3%。
说明系统在恒流模式下工作正常
实测电压的值都稳定在设定值左右,经计算,相对误差小于3%。
说明系统在恒流模式下工作正常。
实测电阻的值都稳定在设定值左右,经计算,相对误差小于3%。
说明系统在恒流模式下工作正常。
第四部分总结
这次大赛,经过四天三夜的拼搏,受益匪浅,我们终生难忘。
不仅完成了一件作品,而且大大提高了我们的创新精神,动手能力,团队协作和竞争意识,这些在今后的人生道路上将是一笔宝贵的财富。
充分发挥团队合作精神,工作进展很顺利。
我们在比赛中做到精益求精,在完成基本功能之后,又向发挥部分进发,最后完成了所有的基本功能和部分发挥部分。
参考文献:
[1]邱关源.电路[M].北京:
高等教育出版社,2003
[2]华成英,童诗白.模拟电子技术基础[M].北京:
高等教育出版社2006
[3]公茂法,黄鹤松,杨学蔚等.MCS-51/52单片机原理与实践.北京:
北京航空航天大学出版社,2009
附图:
附图1键盘电路
附图2数码显示电路
程序:
//数码管显示模块
voiddisplay()
{unsignedcharm,i,j;
for(j=0;j<8;j++)
{m=tab1[j];
for(i=0;i<8;i++)
{CLK=0;
DIN=m&0x01;
CLK=1;
m>>=1;
}
//delay();
}
}
//去扰动程序
voiddelay10(void)//误差-0.000000000001us
{
unsignedchara,b,c;
for(c=28;c>0;c--)
for(b=214;b>0;b--)
for(a=19;a>0;a--);
_nop_;//ifKeil,requireuseintrins.h
}
//模数转换取值并且处理程序返回值ab为全局变量
floatsun_vol()
{
uchari=0,h,n=20,j;
intsum,t;
//floataver;
//AMX0P=0x12;//P3.2测电压
for(i=0;i<20;i++)
{
AD0BUSY=1;//启动ADC0转换
while(AD0INT==0);//等待转换完毕
AD0INT=0;
ad=adc0;
datapart[i]=ad;
}
//n=20;
//AD0BUSY=0;
for(h=0;h<20;h++)//数组个数,冒泡循环到没有比较范围
{for(j=0;j<20-h;j++)//每次预置k=0,循环扫描后更新k
{
if(datapart[j]>datapart[j+1])//大的放在后面,小的放到前面
{
t=datapart[j];
datapart[j]=datapart[j+1];
datapart[j+1]=t;//完成交换
}
}
}
sum=0;
for(i=5;i<15;i++)
{
sum=sum+datapart[i];
}
概率教学方法的研究
//aver=sum/10;
add=0.25*sum;//根据外部采样电路因此在这个地方结果乘以11
昙花教学实录ab=add/1024;
材料科学概论试题//VOLTS=aver*330/0xFF;
//VV=VOLTS;
returnab;
教师评语小学}
教案的格式//对模数转换后的数值显示处理
voiddatachange(void)
教学设计与反思免费下载{intm=0;
floatad;
if(add4==1)ad=ab*11;
//if(add5==1){}
//if(add6==1){}
挫折作文材料
if(ad<1.00)
李笑来学习这里{m=ad*100;
文成公主进藏教学实录shi=m/10;
ge=m%10;
tab1[3]=rdispchart[0];
tab1[2]=0xf7;
tab1[0]=rdispchart[ge];
tab1[1]=rdispchart[shi];}
else{
m=ad*100;
bai=m/100;
qian=bai/10;
bai=bai%10;
a=m%100;
shi=a/10;
ge=m%10;
tab1[4]=rdispchart[qian];
tab1[3]=rdispchart[bai];
tab1[2]=0xf7;
tab1[0]=rdispchart[ge];
tab1[1]=rdispchart[shi];
}
}
//显示延时程序
voiddelay(void)
{inth,u,v,k;
for(h=50;h>0;h--)
for(u=40;u>0;u--)
for(v=26;v>0;v--)
for(k=24;k>0;k--);
}
while(add4==1)
{AMX0P=0x13;//恒压模式测量端口
//AMX0P=0x12;//P3.2测电压
//AMX0P=0x13;
//AMX0P=0x0f;
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub>0)
{
if(sub>2)
{for(i=0;i<2;i++)
{zkb+=30;PCA0CPH0=zkb;}
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub<0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
elseif(1{for(i=0;i<1;i++)
{zkb+=10;PCA0CPH0=zkb;}
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub<0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
else//if(sub<0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
{zkb+=5;//30%占空比调节
if(zkb>=256)zkb=256;
PCA0CPH0=zkb;
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub<0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
}
else
{/*if(sub<-0.02)
{zkb-=5;//30%占空比调节
if(zkb<=0)zkb=0;
PCA0CPH0=zkb;}
else
{PCA0CPH0=zkb1;
ADC0CN=0x00;}*/
if(sub<-2)
{for(i=0;i<2;i++)
{zkb-=30;PCA0CPH0=zkb;}
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub>-0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
elseif(-2{for(i=0;i<1;i++)
{zkb-=10;PCA0CPH0=zkb;}
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub>-0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
else//if(sub<0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
{zkb-=5;//30%占空比调节
if(zkb>=256)zkb=256;
PCA0CPH0=zkb;
sun_vol();//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub>-0.02){PCA0CPH0=zkb1;ADC0CN=0x00;}
}
}
zkb1=zkb;
datachange();
display();
delay();
}
//恒流处理模式
/*while(add5==1)
{AMX0P=0x14;//p3.5恒流模拟输入端
}*/
//恒阻处理模式
/*while(add6==1)
{AMX0P=0x11;//电压检测端
AMX0P=0x11;//电流检测端
}*/
}