1、该AD转换器转换速度快且精度高,同时也简化了外部硬件电路。两者相比C8051F360内部自带的AD精度更高、操作方面,故选择方案二。1.2.3显示模块采用数码管显示。数码管具有接线简单,成本低廉,配置简单灵活,编程容易,对外界环境要求较低,易于维护等特点。电压和电流的显示可以用数码管,并且本直流电子负载设计并不需要显示太多的内容,数码管就可以完成要求。 方案二:采用液晶显示(LCD)。液晶显示具有功耗低、体积小、质量轻、无辐射危害的特点。但是液晶价格昂贵且屏幕容易出现瑕疵。对于此系统只是简单地显示电压电流值无需其他文字说明,从要求和成本考虑我们选择方案一。 两种方案比较可知应选择方案一。1.2
2、.4键盘模块:采用矩阵式键盘。将键盘排列成矩阵形式,需要通过软件对按键进行判断和定义,且接口电路由单片机系统直接访问和控制,键盘的扫描、去抖动、判断和编码等操作都需要单片机完成,这样会使得单片机的工作量非常大,使单片机的效率降低。采用专用的按键扫描控制芯片74HC165。能够独立的完成对键盘中按键的扫描与管理,并且通过简单接口与微控制器进行连接。使用按键扫描控制芯片来完成微控制器的键盘管理,可以大大的提高微控制器的工作效率。经比较选择方案二,在本直流电子负载中,采用74HC165键盘扫描控制集成芯片。1.2.5恒流模块电阻采样反馈法,在功率MOS管的源极串接采样电阻,将电流转换成电压,反馈至高
3、增益误差放大器的反相端。在同相端输入固定电压,当反相端的电压等于同相端的电压时,功率MOS管的电流就恒定,即电流与同相端电压成正比例关系。电流直接采样法,通过电流传感器及运放电路检测流入电子负载的电流,与设定电流相比较,看电流是否达到系统设定的电流值,通过PID算法控制DA输出电压,进而控制功率MOS管的导通量来控制电流。方案一与方案二相比,由于采样电阻的功率太小,使电子负载可流入的电流受到很大的限制,远远无法满足题目的要求,方案二的缺点是系统响应速度较慢,但可以通过较大的电流。综合考虑,我们选择方案二。1.2.6恒压模块三极管放大比较法,此方案中三极管的基极和发射极分别相当于比较器的负、正输
4、入端。这样的电路可以实现恒压功能,但是误差比较大,同时还有较大的功率损耗。方案二;通过调节PWM占空比来比较调节指定电压与负载电压。这种电路结构简单,误差较小。比较两种方案知应选择方案二。1.2.7恒阻模块硬件实现法,将功率MOS管的端电压V采样至误差放大器的同相端,将功率MOS管的电流I采样转换成电压至误差放大器的反相端,根据欧姆定律:R=V/I,实现恒阻。软硬件相结合的方法。对恒压恒流两种模式进行同时调节,通过PWM调节控制来实现恒阻。由于方案一误差较大,所以选择方案二。第二部分 电路设计2.1单片机电路设计主控电路C8051F360组成的单片机最小系统构成。主控电路原理图见附件。图2-1
5、主控电路图2.2硬件检测驱动电路硬件检测驱动电路图如图2-2所示图2-2硬件检测驱动电路1.恒流控制电子负载所流入的负载电流依据所设定的电流值而保持恒定,与输入电压大小无关,即负载电流保持设定值不变。在电流检测电路端的传感器输入端输入电流信号(02A),经过电流传感器ACS712变化为电压信号(2.52V),该传感器具有能输出与检测的直流成比例的电压,ACS712的输出电压与被检测的电流的关系为:然后再通过LM336电路减去增大的一部分并将电压值送入运放,经运放进行放大(-5倍),此时的得到的电压值约为电流I的1.25倍。将电流检测端的的电流送入单片机并经A/D转换与给定值进行比较,如果,经P
6、ID计算,然后调节占空比来减小MOS管的导通量使实际电流减小;反之则增大MOS管的导通量。2.恒压控制电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流增加直到负载电压等于设定值为止,此后负载电压维持设定值不变。实际电压从电压输出端口进行采样,得到的电压为然后将此电压经A/D转换送入单片机与给定值作比较,若,在单片机内经PID计算,然后通过调节占空比来增大MOS管的导通量U,反之则减小MOS管的导通量。3.恒阻控制对恒压恒流两种模式进行同时调节,将电流、电压信号送入单片机并进行A/D转换,在单片机内部根据公式R=U/I来计算出实际电阻的数值,并与给定电阻的阻值相比较,如果,则单片机
7、会通过PID计算,经过D/A转换并送出单片机,通过调节占空比来减小MOS管的导通量从而使 减小;反之则要增大MOS管的导通量来使得增大,这样就实现了电子负载的恒阻状态。2.1.5键盘模块电路本系统采用74HC165键盘扫描控制集成芯片完成对键盘中按键的扫描与管理电路图如附图1所示。2.1.6数码显示模块本系统采用数码管对电压电流和电阻进行显示。电路图如附图2所示。2.2软件设计软件设计中,电压电流采集数据经A/D转换后送入C8051F360单片机,与设定值进行比较,然后按要求进行控制,同时对电压、电流和电阻参数进行显示。主程序流程如图2-5所示::图2-5系统程序流程图第三部分 测试方案与测试
8、结果通过外接可调电源分别调节恒流、恒压和恒阻三种模式,并观察三种模式下数码管显示的电压电流情况。并对显示的电压电流进行比较。在恒流模式下,通过键盘设定恒流值,用万用表测试电源的输出电压。改变电源的输出,记录流入负载的电流随电源输出电压的变化过程,测试数据见表设定电流(mA)测试值1测试值2测试值3实测电流(mA)误差4004102.5%3909009202.2%9252.7%8822%130013201.5%12851.15%13302.3%17001720168217501.75%在恒压模式下,通过键盘设定恒压值,用万用表测试电源的输出电流。改变电源的输出,记录负载的电压随电源输出电流的变化
9、过程,测试数据见表2。设定电压(V)实测电压(V)实测电流(A)33.051.7%2.913%2.9498.79.39.282.9%1515.4515.42.6%15.32019.619.519.4在恒阻模式下,通过键盘设定恒阻值,用万用表测试电源的输出电压。改变电源的输出,记录负载的电阻随电源输出电压的变化过程,测试数据见表3。设定电阻()实测电阻()1010.310.2606160.81.3%591201231221701751742.4%1731.8%结果分析:由数据表明,实测电流的值都稳定在设定值左右,经计算,相对误差小于3%。说明系统在恒流模式下工作正常实测电压的值都稳定在设定值左右
10、,经计算,相对误差小于3%。说明系统在恒流模式下工作正常。实测电阻的值都稳定在设定值左右,经计算,相对误差小于3%。第四部分 总结这次大赛,经过四天三夜的拼搏,受益匪浅,我们终生难忘。不仅完成了一件作品,而且大大提高了我们的创新精神,动手能力,团队协作和竞争意识,这些在今后的人生道路上将是一笔宝贵的财富。充分发挥团队合作精神,工作进展很顺利。我们在比赛中做到精益求精,在完成基本功能之后,又向发挥部分进发,最后完成了所有的基本功能和部分发挥部分。参考文献:1 邱关源.电路M.北京:高等教育出版社,20032 华成英,童诗白.模拟电子技术基础M.北京:高等教育出版社 20063 公茂法,黄鹤松,杨
11、学蔚等.MCS-51/52单片机原理与实践.北京:北京航空航天大学出版社,2009附图:附图1键盘电路附图2 数码显示电路程序:/数码管显示模块void display()unsigned char m,i,j;for(j=0;j8;j+) m=tab1j;for(i=0;i=1; /delay();/去扰动程序void delay10(void) /误差 -0.000000000001us unsigned char a,b,c; for(c=28;c0;c-) for(b=214;bb-) for(a=19;aa-); _nop_; /if Keil,require use intrins
12、.h/模数转换取值并且处理程序返回值ab为全局变量float sun_vol() uchar i=0,h,n=20,j; int sum,t; /float aver; /AMX0P = 0x12; /P3.2测电压 for(i=0;20; AD0BUSY = 1; /启动 ADC0 转换 while(AD0INT=0); /等待转换完毕 AD0INT=0; ad=adc0; dataparti =ad; /n =20; /AD0BUSY = 0; for (h=0;hh+) /数组个数,冒泡 循环到没有比较范围 for (j=0; j datapartj+1) /大的放在后面,小的放到前面
13、t = datapartj; datapartj = datapartj+1; datapartj+1 = t; /完成交换 sum=0; for(i=5;15; sum = sum+dataparti; /aver =sum/10; add=0.25*sum;/根据外部采样电路因此在这个地方结果乘以11 ab=add/1024; / VOLTS = aver*330/0xFF; /VV = VOLTS; return ab;/对模数转换后的数值显示处理void datachange(void) int m=0; float ad; if(add4=1) ad=ab*11; /if(add5=
14、1) /if(add6=1) if(adh-) for(u=40;uu-) for(v=26;vv-) for(k=24;kk-); while (add4=1) AMX0P = 0x13;/恒压模式测量端口 /AMX0P = 0x13; /AMX0P = 0x0f; sun_vol();/执行完此程序得出模数转换电压值 hy=ab*11; sub=hy-in; if(sub0)2) for (i=0;2;i+) zkb+=30; PCA0CPH0 = zkb; if(sub0.02) PCA0CPH0=zkb1;ADC0CN = 0x00; else if (1sub1; zkb+=10;
15、sun_vol(); if(sub else /if(sub=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; else if (-2 zkb1=zkb; datachange(); display(); delay();/恒流处理模式 /* while(add5=1) AMX0P = 0x14;/p3.5恒流模拟输入端 */恒阻处理模式/*while(add6=1) AMX0P = 0x11;/电压检测端 AMX0P = 0x11;/电流检测端
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1