直流电子负载设计与制作论文Word格式文档下载.docx
《直流电子负载设计与制作论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《直流电子负载设计与制作论文Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
![直流电子负载设计与制作论文Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-2/2/ae4b2cc2-f2f6-44ec-b404-736c126549a2/ae4b2cc2-f2f6-44ec-b404-736c126549a21.gif)
该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的输出电压
与被检测的电流
的关系为:
然后再通过LM336电路减去增大的一部分并将电压值送入运放,经运放进行放大(-5倍),此时的得到的电压值
约为电流I的1.25倍。
将电流检测端的的电流送入单片机并经A/D转换与给定值进行比较,如果
,经PID计算,然后调节占空比来减小MOS管的导通量使实际电流减小;
反之则增大MOS管的导通量。
2.恒压控制
电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流增加直到负载电压等于设定值为止,此后负载电压维持设定值不变。
实际电压从电压输出端口进行采样,得到的电压为
然后将此电压经A/D转换送入单片机与给定值作比较,若
,在单片机内经PID计算,然后通过调节占空比来增大MOS管的导通量U,反之则减小MOS管的导通量。
3.恒阻控制
对恒压恒流两种模式进行同时调节,将电流、电压信号送入单片机并进行A/D转换,在单片机内部根据公式R=U/I来计算出实际电阻的数值,并与给定电阻的阻值相比较,如果
,则单片机会通过PID计算,经过D/A转换并送出单片机,通过调节占空比来减小MOS管的导通量从而使
减小;
反之则要增大MOS管的导通量来使得
增大,这样就实现了电子负载的恒阻状态。
2.1.5键盘模块电路
本系统采用74HC165键盘扫描控制集成芯片完成对键盘中按键的扫描与管理电路图如附图1所示。
2.1.6数码显示模块
本系统采用数码管对电压电流和电阻进行显示。
电路图如附图2所示。
2.2软件设计
软件设计中,电压电流采集数据经A/D转换后送入C8051F360单片机,与设定值进行比较,然后按要求进行控制,同时对电压、电流和电阻参数进行显示。
主程序流程如图2-5所示:
:
图2-5系统程序流程图
第三部分测试方案与测试结果
通过外接可调电源分别调节恒流、恒压和恒阻三种模式,并观察三种模式下数码管显示的电压电流情况。
并对显示的电压电流进行比较。
在恒流模式下,通过键盘设定恒流值,用万用表测试电源的输出电压。
改变电源的输出,记录流入负载的电流随电源输出电压的变化过程,测试数据见表
设定电流
(mA)
测试值1
测试值2
测试值3
实测电流(mA)
误差
400
410
2.5%
390
900
920
2.2%
925
2.7%
882
2%
1300
1320
1.5%
1285
1.15%
1330
2.3%
1700
1720
1682
1750
1.75%
在恒压模式下,通过键盘设定恒压值,用万用表测试电源的输出电流。
改变电源的输出,记录负载的电压随电源输出电流的变化过程,测试数据见表2。
设定电压
(V)
实测电压(V)
实测电流(A)
3
3.05
1.7%
2.91
3%
2.94
9
8.7
9.3
9.28
2.9%
15
15.45
15.4
2.6%
15.3
20
19.6
19.5
19.4
在恒阻模式下,通过键盘设定恒阻值,用万用表测试电源的输出电压。
改变电源的输出,记录负载的电阻随电源输出电压的变化过程,测试数据见表3。
设定电阻(Ώ)
实测电阻(Ώ)
10
10.3
10.2
60
61
60.8
1.3%
59
120
123
122
170
175
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<
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>
b--)
for(a=19;
a>
a--);
_nop_;
//ifKeil,requireuseintrins.h
}
//模数转换取值并且处理程序返回值ab为全局变量
floatsun_vol()
uchari=0,h,n=20,j;
intsum,t;
//floataver;
//AMX0P=0x12;
//P3.2测电压
for(i=0;
20;
{
AD0BUSY=1;
//启动ADC0转换
while(AD0INT==0);
//等待转换完毕
AD0INT=0;
ad=adc0;
datapart[i]=ad;
//n=20;
//AD0BUSY=0;
for(h=0;
h<
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;
15;
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;
tab1[4]=rdispchart[qian];
tab1[3]=rdispchart[bai];
//显示延时程序
voiddelay(void)
{inth,u,v,k;
for(h=50;
h>
h--)
for(u=40;
u>
u--)
for(v=26;
v>
v--)
for(k=24;
k>
k--);
while(add4==1)
{AMX0P=0x13;
//恒压模式测量端口
//AMX0P=0x13;
//AMX0P=0x0f;
sun_vol();
//执行完此程序得出模数转换电压值
hy=ab*11;
sub=hy-in;
if(sub>
0)
2)
{for(i=0;
2;
i++)
{zkb+=30;
PCA0CPH0=zkb;
if(sub<
0.02){PCA0CPH0=zkb1;
ADC0CN=0x00;
elseif(1<
sub<
1;
{zkb+=10;
sun_vol();
if(sub<
else//if(sub<
{zkb+=5;
//30%占空比调节
if(zkb>
=256)zkb=256;
PCA0CPH0=zkb;
else
{/*if(sub<
-0.02)
{zkb-=5;
if(zkb<
=0)zkb=0;
{PCA0CPH0=zkb1;
ADC0CN=0x00;
}*/
-2)
{zkb-=30;
-0.02){PCA0CPH0=zkb1;
elseif(-2<
-1)
{zkb-=10;
if(sub>
zkb1=zkb;
datachange();
display();
delay();
//恒流处理模式
/*while(add5==1)
{AMX0P=0x14;
//p3.5恒流模拟输入端
}*/
//恒阻处理模式
/*while(add6==1)
{AMX0P=0x11;
//电压检测端
AMX0P=0x11;
//电流检测端