资源描述
E题 简易数控充电电源一、题目要求一、任务设计并制作简易数控充电电源。输入交流200240V,50Hz;输出:当负载电压小于10V时为恒流充电状态,当负载电压为10V时为恒压充电状态。其原理示意图如下所示。二方案设计1、基本要求(1)输出恒流时:电流100mA(慢充)和200mA(快充)可设置;改变负载电阻,要求输出电流变化的绝对值5mA;纹波电流2mA。(2)输出恒压时,改变负载电阻,输出电压波动小于0.5V;输出纹波电压小于2。(3)具有输出电压、电流的测量和数字显示功能。 2、发挥部分(1)输出恒流时: 改变负载电阻,要求输出电流变化的绝对值3mA;纹波电流1mA。(2)输出恒压时:改变负载电阻,输出电压波动小于0.2V;输出纹波电压小于1。(3)具有过热(60)保护功能,降温后自动恢复工作。(4)其它。二、方案选择继电器器恒流电路恒压电路单片机1602显示负载反馈电路键盘三、方案论证1、恒流部分下图是一个最常用的恒流电路,这样的电路更容易获得稳定及精确的电流值,R1 为取样电阻,REF 是给定信号,电路工作原理是:当给定一个信号时REF,如果R1 上的电压小于1REF,也就是OP07的-IN 小于+IN,OP07 加输出大,使MOS 加大导通使R3 的电流加大。如果R1上的电压大于REF 时,-IN 大于+IN,OP07 减小输出,也就降了R3 上的电流,这样电路最终维持在恒定的给值上,也就实现了恒流工作。如给定1REF 为10mV,R3 为0.1 欧时电路恒流为0.1A,改变。REF 可改变恒流值,REF 可用电位器调节输入或用DAC芯片由MCU 控制输入,采用电位器可手动调节输出电流。如采用DAC 输入可实现数控恒流电子负载。2、恒压部分在定电压工作模式时,电子负载所流入的负载电流依据所设定的负载电压而定,此时负载电流将会增加直到负载电压等于设定值为止,即负载电压保持设定值不变。图中 MOS 管上的电压经 R6 与 R7 分压后送入运放 IN+与给定值进行比较,如图所示, IN-为 0.5V,那么 MOS 管上的电压应为1V。恒压10V时,使R6为4K欧,从而可以处理单片机输出的电压。3、单片机部分程序:#include#includelcd1602.h#includemaxim187.h#includetlc5615.h#define uchar unsigned char #define uint unsigned intuchar tlc5615_buff4,tlc5615_buff12;uchar dis187_dujun4,dis187_huyao4;uint num_5615=20,temp_dujun;uint temp_huyao,temp_huyao1;uint num_dujun,num_huyao;uint dat187_dujun,dat187_huyao;uchar flag;sbit manchong=P33;sbit kuaichong=P34;sbit dujun=P30;sbit huyao=P31;void display_5615dujun()tlc5615_buff0=temp_dujun%10;tlc5615_buff1=temp_dujun/10%10;tlc5615_buff2=temp_dujun/100%10;tlc5615_buff3=temp_dujun/1000;writecmd_lcd(0x80);writedat_lcd(I);writedat_lcd(n);writedat_lcd(p);writedat_lcd(u);writedat_lcd(t);writedat_lcd(:);writedat_lcd(0x30+tlc5615_buff3);writedat_lcd(0x30+tlc5615_buff2);writedat_lcd(0x30+tlc5615_buff1);writedat_lcd(0x30+tlc5615_buff0);writedat_lcd(m);writedat_lcd(V);void display_5615huyao()tlc5615_buff10=temp_huyao1%10;tlc5615_buff11=temp_huyao1/10%10;writecmd_lcd(0x80);writedat_lcd(I);writedat_lcd(n);writedat_lcd(p);writedat_lcd(u);writedat_lcd(t);writedat_lcd(:);writedat_lcd(0x30+tlc5615_buff11);writedat_lcd(0x30+tlc5615_buff10);writedat_lcd(.);writedat_lcd(0);writedat_lcd(0);writedat_lcd(V);void display_187dujun()writecmd_lcd(0xc0);writedat_lcd(O);writedat_lcd(u);writedat_lcd(t);writedat_lcd(p);writedat_lcd(u);writedat_lcd(t);writedat_lcd(:);writedat_lcd(0x30+dis187_dujun3);writedat_lcd(0x30+dis187_dujun2);writedat_lcd(0x30+dis187_dujun1);writedat_lcd(0x30+dis187_dujun0);writedat_lcd(m);writedat_lcd(A);void display_187huyao()writecmd_lcd(0xc0);writedat_lcd(O);writedat_lcd(u);writedat_lcd(t);writedat_lcd(p);writedat_lcd(u);writedat_lcd(t);writedat_lcd(:);writedat_lcd(0x30+dis187_huyao3);writedat_lcd(0x30+dis187_huyao2);writedat_lcd(0x30+dis187_huyao1);writedat_lcd(0x30+dis187_huyao0);writedat_lcd(m);writedat_lcd(V); /*void init_time()TMOD=0X01;TH0=-5000/256;TL0=-5000%256;EA=1; ET0=1;TR0=1; void time0() interrupt 1static uchar t;TH0=-50000/256;TL0=-50000%256;t+;if(t=5)t=0;AD_187();if(flag=0)num_dujun=num_187-temp_dujun;if(num_dujun0)num_dujun=-num_dujun;if(num_dujun0.05*temp_dujun)dis_1870=num_187%10;dis_1871=num_187/10%10;dis_1872=num_187/100%10;dis_1873=num_187/1000; if(num_1870.90*100)dis_1870=num_187%10;dis_1871=num_187/10%10;dis_1872=num_187/100%10;dis_1873=num_187/1000;elsenum_huyao=num_187-temp_huyao;if(num_huyao0)num_huyao=-num_huyao;if(num_huyao0.05*temp_huyao)dis_1870=num_187%10;dis_1871=num_187/10%10;dis_1872=num_187/100%10;dis_1873=num_187/1000; if(flag=1)if(num_1870.90*100)dis_1870=num_187%10;dis_1871=num_187/10%10;dis_1872=num_187/100%10;dis_1873=num_187/1000;if(num_187=250)flag=1;else flag=0; */ void keyscan()if(!manchong)delayms(10);if(!manchong)while(!manchong);num_5615=20; if(!kuaichong)delayms(10);if(!kuaichong)while(!kuaichong);num_5615=41; if(!dujun)delayms(10);if(!dujun)while(!dujun);flag=0; if(!huyao)delayms(10);if(!huyao)while(!huyao);flag=1; main()init_lcd();flag=0;while(1)if(flag=0)/恒流模块处理tlc_5615(num_5615);temp_dujun=5.0/1024*1000*num_5615;dat187_dujun=max_187();if(dat187_dujun0.90*temp_dujun)dis187_dujun0=dat187_dujun%10;dis187_dujun1=dat187_dujun/10%10;dis187_dujun2=dat187_dujun/100%10;dis187_dujun3=dat187_dujun/1000;display_5615dujun();display_187dujun();else /恒压模块处理tlc_5615(410);temp_huyao=5.0/1024*1000*410;temp_huyao1=10;dat187_huyao=max_187();if(dat187_huyao0.90*temp_huyao)dis187_huyao0=dat187_huyao%10;dis187_huyao1=dat187_huyao/10%10;dis187_huyao2=dat187_huyao/100%10;dis187_huyao3=dat187_huyao/1000;display_5615huyao();display_187huyao(); keyscan();delayms(100); 3电路总图四、实物展示
展开阅读全文