电动车电池防过充节电控制器_第1页
电动车电池防过充节电控制器_第2页
电动车电池防过充节电控制器_第3页
电动车电池防过充节电控制器_第4页
电动车电池防过充节电控制器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、随着人们环保意识的加强,节能环保的电动汽车产业,各种电动汽车也应运而生。经过市场调研,我们发现所有的电动车电池充电器都不具备自动断电功能。电池已充满电,充电器仍处于浮充状态。这不仅会导致电池损坏,还会造成大量电能浪费。对安全、节能和智能的电池充电器的需求也在不断增长。基于此,我们设计了一款电动汽车电池防过充节电控制器。本设计在普通电动车充电器的基础上增加了单片机控制部分。家用充电器可直接连接本产品的输入端,产品的输出端可连接电动车电池原有的充电口,实现充电的智能化目的。硬件电路由定时充电和自动控制充电两种工作模式组成。定时充电时,时钟数码管显示定时时间;自动充电时,时钟数码管显示电池两端电压和

2、浮地时间。电池充满电后,会自动切断电源。本产品具有电池电压检测功能,可应用于36V电池控制和48V电池控制。用户只需将自己的电池连接到相应的地方即可直接充电。如果电池反接,会自动保护电池不受损坏,具有很好的通用性和实用性。二、原理说明:示意图如图所示:电源部分:220端为输入端,插座端为输出端,P3为与单片机AD检测部分的连接排针。我们使用LM7805为电路的控制部分提供5V稳定的电源。单片机通过控制继电器的吸合和断开来控制充电电源的开合。 R1、R2、R3和R4是检测电池电压的分压电阻。采集到的电压经过电阻分压后才能输入到单片机。图中R19为上拉电阻,R6为限流电阻,继电器由晶体管9013(

3、0.5A)驱动。当单片机引脚输出低电平时,三极管截止,继电器线圈没有电流流过,继电器断开,开始充电。当MCU管脚输出高电平时,三极管导通,继电器吸合,充电停止。防止因过度充电而损坏电池。当电池充满电时,微控制器进入断电模式,即使周围没有人,也不会浪费太多电量。图中 D3 设计用于在电池反接时保护电池。 D4 旨在保护继电器。控制显示部分:如图所示:智能充电器控制显示部分主要以STC12C2052AD单片机为控制核心设计。本单片机自带AD转换,非常方便,不需要外接比较器;并能准确检测电池两端电压。外围电路包括输入设备按钮、显示设备时钟数码管、发光二极管(红色和绿色)和充满电的报警设备的蜂鸣器。用

4、户可以通过按键设置所需的充电模式和充电时间。两个 LED 用于指示不同的充电模式和不同的充电阶段。图中U3为74HC595,为8位串并移位寄存器,设计用于省去单片机的IO口。四个按键的功能分别是:S1为模式(自动控制模式和定时模式)选择键,S2为调节定时时间的“+”键,S3为“确认键”。时钟数码管在定时模式下显示定时时间的小时和分钟。自动控制模式下,在电池两端电压达到浮空状态前,数码管显示电池两端电压值,中间点亮;当电池两端电压达到浮空状态时,数码管显示定时两个小时,显示状态与定时模式下相同。理论设计计算:AD采集用分压电阻的设计与计算对于 48V 电池,R3 为 570K,R4 为 10K。

5、要求当电池电压达到浮空状态,即57.2V时,分压后输入到单片机的电压不超过5V。Vmax=57V:此时分压后输入到单片机的电压为Vin=Vmax*R3/(R2+R3)=1VR3 的功率为Pr3 =(Vmax/580K)*(Vmax/580K)*20K0.125W所以拿一个1/4W的电阻将单片机的AD转换寄存器中的值设置为ad_data,然后 ad_data=(Vin/5)*256如果取10位的转换精度,只需将256换成1024即可。从而将模拟量转换为数字量,由数码管显示。三、学习经历:在上这门课之前,我对 51 MCU 几乎一无所知。事实上,在我上这门课之前,我并不知道这门课是关于什么的。我只

6、知道是电子产品。我选择这门课程是抱着实践的想法。知道我们学的是单片机,是我们大三下学期才开的一门课。能提前联系上真的很幸运,收获很大。在这堂课中,我学习了单片机开发板成品的全过程,从最初原理图的设计到PCB板的生成,到东西的焊接,最后到调试和输入的程序。虽然我们在课堂上学过原理图的设计和PCB板的生成,但是大部分都是按照书上的,所以还是比较简单的。然而,在这门实验选修课上,这一切都是我一个人完成的。自己画原理图的时候,一开始觉得有点难,因为很多组件都不在库里,都需要自己画,也就是说要自己打包。 ,有点难。对于我这样的初学者来说,这是一个考验。画了原理图花了我两个大班。相对来说时间比较长,但是画

7、完之后有一点点成就感,这也是我对接下来的学习和制作比较感兴趣的原因。如果原理图绘制很成功,那么PCB就没有那么难了,自动生成也很快,但是layout比较麻烦。如果PCB能做好,那么生产基本完成了三分之一的工序。这是成功的第一步。学生们都做完后,老师送了一些元件,开始物理焊接板子。由于某些原因,我没有在课堂上完成这个焊接。下课后,我去同学的实验室继续焊接。完成焊接大约需要两个小时。看着自己做的板子,有种说不的感觉。我很高兴,我真的很有成就感,也许这是我第一次焊接这样的板!所以我决定以后多关注这方面。下一门课程是程序设计和调试。在编写程序之前,老师讲解了51单片机的一些知识和应用以及一些单片机程序

8、的程序代码。老师还推荐了一些书籍,让同学们可以继续学习MCU的知识。在写程序的过程中,我觉得很难,也很煎熬,因为我不知道,没有头绪,也许是因为我还没有深入研究过单片机!对于程序的编程和调试,老师的要求不是很严格,因为老师知道我们没有学过单片机。虽然我们对51单片机的改造调试并不精通,但对51单片机的产品研发生产全过程有了更深入的了解,不再迷茫和猜测。毕竟上课时间很短,深入学习就靠我们了。要想在这方面有所突破和发展,那么深入研究单片机是必然的。通过本课程的学习,对51单片机产品的开发有了一定的了解。同时,我也对这门课充满了向往。我觉得整个制作过程非常有趣。所以我决定,如果大三有这样的课程,我会选

9、择它。如果没有这样的课程,我会利用业余时间做一些这样的课题,我不知道方去问老师或一些更了解的学生。总而言之,我在一定程度上从这门课程中学到了很多。此外,王俊杰老师的细心指导也让我们倍感亲切。还有就是自己独立完成了一块电路板的制作,第一次尝到了做某事的成就感。这给了我很大的信心。我会以此为契机,学习专业知识,提高自己的专业水平。四、单片机编程代码:#include #include #define uchar 无符号字符#define uint 无符号整数#define AD_SPEED 0 x60 /0110,0000 1 1 每 270 个时钟周期转换一次,/*数码管IO口设置* * */位

10、 ST_CP =P11;位 SH_CP =P12;位 DS =P13;sbit LED4 =P14;/数码管位 LED3 =P15;位 LED2 =P16;位 LED1 =P17;sbit led0 =P30; /引领sbit led1 =P31;sbit s3 =P32;/密钥位 s2 =P33;位 s1 =P34;sbit BEE =P35;/蜂鸣器sbit k1 =P37;/继电器/*/uchar 温度=0; /595数据识别单位广告数据; /AD数据int count1 = 0;/数码管识别整数计数2 = 0;整数计数3 = 0;整数计数4 = 0;uint count_m=0;uch

11、ar count_f=0;uchar count_s=0;uint count = 0;/ms数码管显示标志uchar count0 = 0;/0.5suchar 状态=0; /数码管显示标志uchar shi=0; / 小时、分钟和秒的初始设置飞行干燥机 = 0;uchar 苗 = 0;uchar m = 0;飞行 q = 0; / 密钥 IDuchar k = 0;诠释 k2; / 密钥 IDuchar ad_flag = 0;位 time_flag = 0;位 auto_flag = 0;uchar countb = 0;单位电压 = 0; / 初始电压单位电压1 = 0;uchar i

12、 = 0;飞行标志1 = 0;飞行V;uchar value_buf 50; uchar count5, i5, j5, temp5; / 采集电压uchar VCC = 4.88; / 电源参考电压uchar 代码 DSY_CODE = 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; / 字符uchar code DSY_CODE1=0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10;/带小数点的字符/*无效ADC(); /*AD转换函数*/void

13、InitADC();/AD设置函数void keyserve(void);/按键设置void keyscan();/键盘扫描void Delay(uint x);/延迟无效 In_595(); /595函数无效 Out_595();void beek(void);/蜂鸣器继电器void init();/初始化/* *无效的主要() 在里面();而(1)键扫描();比克();如果(自动标志=1) for (count5=0;count550;count5+)value_bufcount5 = V;延迟(10);对于 (j5=0;j550-1;j5+)对于 (i5=0;i5value_bufi5+

14、1)temp5 = value_bufi5;value_bufi5 = value_bufi5+1;value_bufi5+1 = temp5;电压=(value_buf0*1.96);如果(电压=395)电压1=4801;如果(电压=409)电压1=4902;如果(电压=416)电压1=5003;如果(电压=425)电压1=5104;如果(电压=433)电压1=5205;如果(电压=442)电压1=5306;如果(电压=460)电压1=5504;如果(电压=468)电压1=5601;如果(电压=478)电压1=5702;计数1=(电压1/1000);count2=(电压1%1000)/100

15、);count3=(电压1%1000%100)/10);count4=(电压1%1000%100%10);延迟(300);如果(电压=480) BEE=1;延迟(200);BEE=0;TR1=1;shi=0;/充满电后的延时时间分=1;苗=15;ADC_CONTR&=0 x6e;auto_flag=0;flag1=1;if(count_f2)/自动控制定时时间设置,时间大于2分钟继电器断开TR0=0;TR1=0;蜜蜂=1;ADC_CONTR&=0 x6e;k1=0;延迟(2000);蜜蜂=0; 自动标志=0;count_m=0; /将秒数清0,保持蜂鸣器不响 /*AD初始化*无效初始化() T

16、MOD = 0 x11;TH0=0 xfa;TL0=0 x00;TH1=(65535-50000)/256;TL1=(65535-50000)%256;ET0=1;/开启定时器中断ET1=1;TR0=1;TR1=0;EA=1;P 3M0=0X00;/设置BEE端口P1 3M=0X20;辅助|=0 x10;EADC_SPI=1;LED1=1;LED2=1;LED3=1;LED4=1;蜜蜂=0;k1=1;无效初始化ADC()P1=0 xff;ADC_CONTR=0 xe8;延迟(80);P 1M0|=0 x01;/这两个寄存器用于设置P1端口的四种状态,每一位对应一个P1引脚,根据状态组合进行操作

17、P 1M1&=0 xfe;/设置P1.1为开漏状态无效 ADC() 中断 5如果(广告标志=1)ad_flag=0;ad_data=ADC_DATA;V=广告数据;ADC_CONTR&=0 xe7; /清除标志并关闭AD采集ADC_CONTR=0 xe8;/开启中断广告void Time0() interrupt 1/显示数码管TH0 = 0 xfa;TL0 = 0 x00;计数+;if(count=20)/循环20次检测电压计数=0;ad_flag=1;状态+;开关(状态)情况1:temp = DSY_CODEcount1; In_595(); Out_595();LED1=0;LED2=1

18、;LED3=1;LED4=1;休息;案例2: temp = DSY_CODE1count2; In_595(); Out_595();LED1=1;LED2=0;LED3=1;LED4=1;休息;案例3:temp = DSY_CODEcount3; In_595(); Out_595();LED1=1;LED2=1;LED3=0;LED4=1;休息;案例4:状态=0;temp = DSY_CODEcount4; In_595(); Out_595();LED1=1;LED2=1;LED3=1;LED4=0;休息;/*void Time1() 中断 3TH1 = (65535-50000)/25

19、6;TL1 = (65535-50000)%256;如果(自动标志=0)count4=分%10;计数3=分/10;count2=shi%10;计数1=石/10;如果(+count0=10)计数0=0;淼;如果(苗=0)分 - ;如果(芬=0 xff)分=59;shi-;如果(shi=0)时=0; 苗=59; 如果(自动标志=1)如果(+count0=10)计数0=0;count_m+;如果(count_m=59)count_m=0;计数_f+;如果(count_f=60) count_f=0;count_s+;如果(count_s=24) /*无效延迟(uint x) uchar我;而(x-) for(i=120;i0;i-);/*无效 In_595() uchar我;对于(i=0;i8;i+) 温度 = 1;DS = CY;SH_CP = 1;_nop_();_nop_();SH_CP = 0;无效 Out_595() ST_CP = 0;_nop_();ST_CP = 1;_nop_();ST_CP = 0;/*数据处理无效键扫描()如果(s1=0)/延迟(5);延迟(200);如果

温馨提示

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

评论

0/150

提交评论