直流电子负载_第1页
直流电子负载_第2页
直流电子负载_第3页
直流电子负载_第4页
直流电子负载_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..>直流电子负载一、根本要求〔1〕负载工作模式:恒压(CV)、恒流(CC)两种模式可选择。〔2〕电压设置及读出范围:1.00V~20.0V。〔3〕电流设置及读出范围:100mA~3.00A。〔4〕显示分辨力及误差:至少具有三位数,相对误差小于5%。二、总体方案论证与设计显显示按键输入单片机AD转换DA转换电流检测电压检测恒压恒流利用A/D转换把模拟信号转换为数字信号,在利用单片机程控来修改电压电流参数,此方案准确度高,操作技术要求很高,节省时间。并且用DA采集显示测量值,比较得出结论。1.定电流模式〔CCmode〕在定电流工作模式时,电子负载所流入的负载电流依据所设定的电流值而保持恒定,与输入电压大小无关,即负载电流保持摄定值不变。2.定电压模式〔CVmode〕在定电压工作模式时,电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流将会增加直到负载电压等于设定值为止,即负载电压保持设定值不变。电源模块根本电路图单片机模块根本电路三、测试及分析测试原始数据1.恒流模式数据测量模式设定值〔A〕测量值1(A)测量值2(A)测量值3(A)工作电压(V)工作电压(V)工作电压(V)恒流恒流恒流恒流恒流2.恒压模式数据测量模式设定值(V)测量值1(V)测量值2(V)测量值3(V)工作电压(V)工作电压(V)工作电压(V)恒压恒压3.163.083.14恒压8.969.04恒压15.24恒压19.8421.12四、附录根本程序恒流模块#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharsbitrs=P2^7;sbitE=P2^6;sbitadwr=P2^5;sbitadrd=P2^4;floatadval;longinttemp;voiddelay(uintz)//延时子程序{uint*,y;for(*=z;*>0;*--)for(y=110;y>0;y--);}write_(uchar)//写命令{rs=0;P0=;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_(0*38);write_(0*0c);write_(0*06);write_(0*01);write_(0*80+3);}voidDisplay_Resulti(uchardac)//恒流设定值子程序{floatdb=0.0; ucharshi=0,ge=0,*s=0,**s=0;P3=dac; db=dac*3.00/158.00; shi=(int)db/10; ge=(int)db%10; db*=10.0;*s=(int)db%10; db*=10.0;**s=(int)db%10;write_(0*80+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(0*3a);delay(2);if(shi==0){write_data(0*20);delay(2);}elsewrite_data(0*30+shi);delay(2);write_data(0*30+ge);delay(2);write_data(0*2e);delay(2);write_data(0*30+*s);delay(2);write_data(0*30+**s);delay(2);}voidDisplay_Resulti1(floatadval)//测量电流值子程序{ucharge,*s,shi,**s;temp=(longint)(adval*105/51);shi=temp/1000;ge=temp/100%10;*s=temp/10%10;**s=temp%10;write_(0*80+0*40+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(0*3a);delay(2);if(shi==0){write_data(0*20);delay(2);}elsewrite_data(0*30+shi);delay(2);write_data(0*30+ge);delay(2);write_data(0*2e);delay(2);write_data(0*30+*s);delay(2);write_data(0*30+**s);delay(2);}voidADC()//启动AD转换{adwr=1;_nop_();adwr=0;_nop_();adwr=1;P1=0*ff;adrd=1;_nop_();adrd=0;_nop_();adval=P1;adrd=1;}voidmain()//主程序{init();TMOD=0*02;//定时器初始化 TH0=0*6f; TL0=0*00; IE=0*82; TR0=1;while(1)//显示模块{ucharkey=0; bitkeyflag=1; uintdac=0; Display_Resulti(dac);while(1)//键盘扫描控制显示 {Display_Resulti1(adval);ADC(); key=P2&0*0f;switch(key) { case0*0e: if(keyflag){ dac=0; Display_Resulti(dac);keyflag=0; } break;case0*0d: if(keyflag){dac+=10; Display_Resulti(dac); keyflag=0; } break;case0*0b: if(keyflag){dac-=10; Display_Resulti(dac); keyflag=0; } break;case0*07: if(keyflag){ dac=158; Display_Resulti(dac);keyflag=0; } break;case0*0f:keyflag=1;break; } }}}恒压模块#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharsbitrs=P2^7;sbitE=P2^6;sbitadwr=P2^5;sbitadrd=P2^4;floatadval;longinttemp;voiddelay(uintz)//延时子程序{uint*,y;for(*=z;*>0;*--)for(y=110;y>0;y--);}write_(uchar)//写命令{rs=0;P0=;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_(0*38);write_(0*0c);write_(0*06);write_(0*01);write_(0*80+3);}voidDisplay_Resultu1(floatadval)//恒压设定值子程序{ucharge,*s,shi,**s;temp=(longint)(adval*110/51);temp=temp*4;shi=temp/1000;ge=temp/100%10;*s=temp/10%10;**s=temp%10;write_(0*80+0*40+1);delay(2);write_data('V');delay(2);write_data('O');delay(2);write_data('L');delay(2);write_data('T');delay(2);write_data('A');delay(2);write_data('G');delay(2);write_data('E');delay(2);write_data(0*3a);delay(2);if(shi==0){write_data(0*20);delay(2);}elsewrite_data(0*30+shi);delay(2);write_data(0*30+ge);delay(2);write_data(0*2e);delay(2);write_data(0*30+*s);delay(2);write_data(0*30+**s);delay(2);}voidDisplay_Resultu(uchardac)//测量电压子程序{floatdb=0.0; ucharshi=0,ge=0,*s=0,**s=0;P3=dac; db=dac*20.00/255.00; shi=(int)db/10; ge=(int)db%10; db*=10.0;*s=(int)db%10; db*=10.0;**s=(int)db%10;write_(0*80+1);delay(2);write_data('v');delay(2);write_data('o');delay(2);write_data('l');delay(2);write_data('t');delay(2);write_data('a');delay(2);write_data('g');delay(2);write_data('e');delay(2);write_data(0*3a);delay(2);if(shi==0){write_data(0*20);delay(2);}elsewrite_data(0*30+shi);delay(2);write_data(0*30+ge);delay(2);write_data(0*2e);delay(2);write_data(0*30+*s);delay(2);write_data(0*30+*s);delay(2);}voidADC()//启动AD转换{adwr=1;_nop_();adwr=0;_nop_();adwr=1;P1=0*ff;adrd=1;_nop_();adrd=0;_nop_();adval=P1;adrd=1;}voidmain()//主程序{init();TMOD=0*02;//定时器初始化 TH0=0*6f; TL0=0*00; IE=0*82; TR0=1;while(1)//显示模块{ucharkey=0; bitkeyflag=1; uintdac=0; Display_Resultu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论