基于单片机的智能充电器的设计及报告_第1页
基于单片机的智能充电器的设计及报告_第2页
基于单片机的智能充电器的设计及报告_第3页
基于单片机的智能充电器的设计及报告_第4页
基于单片机的智能充电器的设计及报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

重庆交通大学电子信息工程07级3班 综合电路设计报告标 题: 智能充电器的设计 设 计 者: XXX 学 号: XXX 指导教师: XXX 设计时间: 2010 年 5 月 25 日智能充电器的设计【摘要】随着手机在世界范围内的普及,手机电池充电器的使用越来越广泛。充电器种类繁多,但从严格意义上讲,只有单片机参与处理和控制的充电器才能称为智能充电器。该设计利用51单片机的处理控制能力实现充电器的智能化,在单片机的控制下,具有预充、充电保护、自动断电和充电完成报警提示功能。该设计包括了六个功能模块: 单片机模块:实现充电器的智能控制,如自动断电,充电完成报警提示。 充电过程控制模块:采用专用的电池充电芯片实现对充电过程的控制。 光耦模块:控制通电和断电,在电池充满电后及时关断充电电源。 充电电压提供模块: 将一般家用交流电压经过变压器、电压转换芯片等转换为5V直流电压。 电压测试模块:利用AD转换把充电电池两端的电压通过数码管显示出来。 C51程序:单片机控制电池充电芯片实现充电过程的自动化,并根据充电状态给出有关的指示。【关键字】单片机、电压转换、MAX1898、智能、充电器【目录】一、设计综述 1二、基本方案 2三、软硬件设计 4 四、软硬件仿真 11五、测试 12六、设计体会 13七、参考文献 14一、设计综述手机电池的使用寿命和单次使用时间预充电过程密切相关,锂电池是手机最为常用的一种电池,它具有较高的能量重量比、能量体积比,具有记忆效应,可重复充电多次,使用寿命较长,价格也越来越低。锂电池对于充电器的要求也比较苛刻,需要保护电路,为了有效利用电池容量,须将锂电池充点值最大电压,但是过压充电会导致电池损坏,这就要求较高的充电精度。而大部分充电器多采用大电流的快速充电法,在电池充满后如果不及时停止会使电池发烫, 过度的充电会严重损害电池的寿命 。一些低成本的充电器采用电压比较法,为了防止过充,一般充电到90%就停止大电流快充,而采用小电流涓流补充充电,这样就使充电时间增长了。一部好的充电器不但能在短时间内将电量充足,而且还可以对锂电池起到一定的维护作用,修复由于记忆造成的记忆效应,即电池容量下降现象。设计比较科学的充电器往往采用专用充电芯片配合单片机控制的方法。专用的充电芯片可以检测出电池充电饱和时发出的电压变化信号,比较精确的结束充电工作,通过单片机对这些芯片的控制,可以实现充电过程的智能化,以缩短充电时间,同时能够维护电池,延长电池使用寿命。另外,比起一般充电器,智能充电器还增加了充电电压的显示,让我们能直观的看到电池的由预充、快充、满充充电阶段,从而加强对电池的维护。二、基本方案(一)方案分析该设计采用逐个功能模块分析再组合的方法来实现方案。1、单片机模块智能的实现利用单片机控制,经过分析,单片机芯片可以选择Atmel公司的AT89C52,来控制充满电时蜂鸣器报警声,以及通过中断控制光耦器件通电和断电。2、充电过程控制模块根据手机锂电池的需求特性,选择采用Maxim公司的MAX1898作为电池充电芯片。充电芯片Max1898的内部电路包括输入电流调节器、电压检测器、充电电流检测器、定时器、温度检测器和主控器,输入电流调节器用于限制总输入电流,包括系统负载电流与充电电流,但检测到输入电路大于设定的门限电流时,通过降低充电电流从而控制输入电流,Max1898外接限流型充电电源和PNP功率三级管,可对单节锂电进行有效的快充,它通过外接电容设定充电时间,通过外接电阻设置最大充电电流。 定时电容C和充电时间Tchg的关系式满足:C=34.33Tchg 最大充电电流Imax和限流电阻Rset的关系式满足:Imax1400/Rset 3、光耦模块为了在充满电后能及时关断充电电源,则需要引入一个光耦模块芯片6N137。6N137光耦合器是一款用于单通道的高速光耦合器,其内部有一个850 nm波长AlGaAs LED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流。6N137光耦合器的真值表如下:6N137光耦合器的真值输入“+”ENOUTPUT输入“+”ENOUTPUT1100010111NC01010NC14、充电电压提供模块:由于一般家用电压为+220V交流电压,需要设置一个电压转换电路将+220V交流电压转换成+5V直流电。首先用变压器将220V交流电压转换成7V交流电,经过桥式整流变成直流电,再利用电压转换芯片LM7805将7V直流电压转换为5V直流电压。5、电压测试模块该部分采用AD转换来实现充电电压的现实。采用中断触发,基本原理是将一段时间内的输入模拟电压 Ui 和参考电压UR 通过两次积分,变换成与输入电压平均值成正比的时间间隔,再变换成正比于输入模拟信号的数字量。把模拟信号转换成数字信号,转换原理为:其中,n为准换后的二进制位数,dn-1d0 为具体二进制位。UR 为参考电压,UA为显示电压。(二)方案实现功能方案实现的功能,即充电过程: 预充 在安装好电池之后,接通输入直流电源,当充电其检测到电池时将定时器复位,从而进入预充过程,在此期间充电器以快充电流的10给电池充电,使电压、温度恢复到正常状体,预充电时间由外接电容C9确定,如果在预充时间内电池电压达到2.5V,且电池温度正常,则进入快充过程;如果超过预充时间后,电池电压低于2.5V,则认为电池不可充电,充电器显示电池故障,由单片机发出故障指令,LED指示灯闪烁, 快充 快充就是以恒定电流对电池充电,恒流充电时,电池的电压缓慢上升,一旦电池电压达到所设定的终止电压时,恒流充电终止,充电电流快速递减,充电进入满充过程, 满充 在满充过程中,充电电流逐渐递减,直到充电速率降到设置值以下,或满充超时时,转入顶端截止充电,顶端截止充电时,充电器以极小的充电电流为电池补充能量,由于充电器在检测电池电压是否达到终止电压时有充电电流通过电池电阻,尽管在满充和顶端截至充电过程中充电电流逐渐下降,减小了电池内阻和其它串联电阻对电池端电压的影响,但串联在充电回路中的电阻形成的压降仍然对电池终止电压的检测有影响,一般情况下,满充和顶端截止充电可以延长电池510的使用时间, 断电 当电池充满后,Max1898芯片的2脚Chg发送的脉冲电平会由低变高,这将会被单片机检测到,引起单片机的中断,在中断中,如果判断出充电完毕,则单片机将通过P2.O口控制光耦切断L7805向Max1898供电,从而保证芯片和电池的安全,同时也减小功耗。 报警当电池充满后,MAX1898芯片的2引脚/CHG发送三、软硬件设计(一)硬件部分1、单片机控制设计,电路如下:电路说明如下:(1) P3.1脚控制发出报警声提示;(2) P3.0脚输出控制光耦器件,在需要的时候可以及时关断充电电源。外部中断0由充电芯片MAX1898的充电状态输出信号经过反向后触发2、充电部分:该部分为设计的主核心部分,利用MAX1898配合外部PNP组成完整的单节锂电池充电器。电路图具体说明:(1)MAX1898的电压输入脚IN输入电压范围为4.5 V 12V,锂电池的充电方式要求是恒流、恒压方式,所以电源输入需要采用恒流恒压源。(2)PNP场效应管为电压放大型器件,输入阻抗高,耐压高,通过外接的PNP场效应管提供锂电池的充电接口。(3)引脚CT通过外接的电容CCT 来设置快充时的最大充电时间tCHG 。100 = 34.33tmax(4)引脚ISET通过外接电阻RSET来设置最大充电电流Ifast。关系式如下:Ifast =1400/2.8103电路图如下:3、光耦控制部分,实现电路如下:电路说明:即当GATE输入为低电平时,OUTPUT输出为高电平;当GATE输入为高电平时,OUTPUT输出为低,即断电。4、充电电压转换,实现电路模块如下:5、充电电压显示,该部分其实就是一个AD转换,原理图如下:电路图中的两组电容,其作用是滤波。6、总电路(总电路实际上是由第5部分的充电电压和下图构成)(二)软件部分1、程序流程图启动定时器0?t_count=0初始化Int0_count0= 0?While(1)外部中断0服务子程序返回Int0_count+NoYes开始关闭T0中断和外部中断充电出错t _count +关闭T0计数t _count 600?定时器0服务子程序int 0_count=1?充电完毕,蜂鸣器报警,切断电源返回YesNoNoYes启动T0计数,同时进行A/D转换,显示电压2、程序代码及说明/防止BattCharger.h被重复引用的h文件#ifndef_BATTCHARGER_H #define_BATTCHARGER_H#include sbit GATE = P30;sbit BP = P31;uint t_count,int0_count;#endif/*主程序*/#include reg52.h#include ABSACC.h#include intrins.h#include BattCharger.h#define uchar unsigned char#define uint unsigned int#define PORTA4 XBYTE 0x7F8Fuchar tab=0xc0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0;uchar tab2=0xC7,0xCB,0xD3,0xF3;uchar SEGPT2=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;unsigned int Num; unsigned int getdata; uchar keydata;uchar selectkey;unsigned int date;sbit CLOCK=P35;uint tt=0;/* 延时子程序 */void delay(Num) unsigned int ii; for(ii=0;ii600)/ 第一次外部中断0产生后3sif (int0_count=1)/ 还没有出现第二次外部中断0,则认为充电完毕GATE = 0;/ 关闭充电电源BP = 0;/ 打开蜂鸣器报警 else/ 否则即是充电出错GATE = 1;BP = 1;ET0 = 0; / 关闭T0中断EX0 = 0; / 关闭外部中断0int0_count = 0;t_count = 0;elseTR0 = 1;/ 启动T0计数/* 外部中断0服务子程序 */void int0() interrupt 0 using 1if (int0_count=0)TH0 = -5000/256;/ 5ms定时TL0 = -5000%256;TR0 = 1;/ 启动定时/计数器0计数t_count = 0;/ 产生定时器0中断的计数器清零int0_count+;/*定时器1和中断1控制AD转换*/* 定时器1中断服务子程序 */void time1(void) interrupt 3 CLOCK=CLOCK; /* 外部中断1服务子程序 */void int1(void)interrupt 2 getdata=0; date=0; getdata=PORTA4; date=getdata*100/51; tab0=SEGPT2date/100-0x80; tab1=SEGPT2date%100/10; tab2=SEGPT2date%10; tab3=SEGPT20; TR0=0;/*显示子程序 */void DISP(void) unsigned int i; for(i=0;i5;i+) P2 = 0; P1 =tabi; P2 =tab2i; delay(255); /* 初始化 */void init()EA = 1;/ 打开CPU中断PT0 = 1;/ T0中断设为高优先级TMOD = 0x01;/ 模式1,T0为16位定时/计数器ET0 = 1;/ 打开T0中断BP = 1;/ 关闭蜂鸣器int0_count = 0;/ 产生外部中断0的计数器IT0 = 1;/ 外部中断0设为边沿触发EX0 = 1;/ 打开外部中断0GATE = 1; / 光耦正常输出电压清零void main(void) TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET1=1;init(); while(1) DISP(); PORTA4=0x00; IT1 =1; EX1=1; 四、软硬件仿真该设计中,由于在Protues和Multisim里都找不到元件MAX1898和6N137,不过好在单片机对充电过程的控制不复杂,可以在protel里画图,然后直接在在电路板上焊接测试。因此该设计可以仿真的部分只有用于充电器两端的电压显示部分(即AD转换部分)。仿真调试步骤如下:(一)在Keil程序里边新建项目,名称为“充电器显示”,并选择单片机型号为AT89C52.BUS。(二)执新建文件,输入源程序保存为充电器显示.C,并保存,然后将源程序添加到项目中。(三)执行菜单命令“Project”“Options for Target Target 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(四)编译源程序,得到HEX”文件。(五)在proteus仿真平台上建立仿真原理图,并将程序上载到虚拟芯片上调试及运行。结果如下:五、测试(一)测试方法1、线路连接按仿真图在万用板上大概排下版,然后开始焊接,并连好每条线,检查无误后,进行下一步。2、硬件是否工作测试由于充电器电路实现比较特殊,芯片是否正常工作不好确定,且该设计有一部分不能仿真,只能根据资料仔细研究分析各芯片的引脚功能及特征,综合考虑、检测。一般的测试方法是:(1)先用万用表欧姆档逐步测量线路,确保线路都连接正确。(2)然后,编写一段测试程序进行调试,即看各端口的工作状态是否和预设的一致来检测芯片是否工作,这个主要是测单片机是否正常工作,从而诊断出电路板是哪一部分出了问题然后再进行调试。(3)根据充电芯片特性,预设芯片某个输入脚的状态,检测芯片输出是否和预想的一样,来检测芯片是否能正常工作。(二)测试条件和测试环境 该设计测试条件要求不高,只需具备一些常见测试工具:电源、万用表、锂电池,便可以进行焊接测试。(三)测试结果充电芯片可以正常充电,实现预充、快充、满充,数码管显示实时充电电压。六、设计体会这次设计所以总的来说,不算顺利,基本上到最后我们才调试出来,因此我有很多感触。一开始的时候,从图书馆借了些资料,参照资料进行原理图的设计,而我们选择的题目用到的几个芯片都是我们以前没接触过的,于是就得到网上找相关芯片的资料,来了解芯片特性,从而实现芯片的控制功能,画出原理图,但由于我们所选的MAX1898和6N137芯片和不常见,电路有一部分不能进行仿真,这也决定了我们的调试会是一个艰巨的过程。 完成原理图的设计,然后是焊板,这是一个需要耐心加细心的过程,哪怕一个小小的错误也会使结果出不来,所以必须要一条线一条线的检查,确认无误才能在万能板上接。还有在焊接的时候也要特别小心,稍不注意就会被电烙铁烫到,或出错了把芯片给烫坏了或者不该连接的线路被焊锡连起来了。同时这也需要同组人的配合,三个人交换检查线路,出错的可能性就小一些,通过合作也使我懂得了认真严谨的工作态度和团队精神的重要性。上边就说了我们的调试将会是一个艰难的过程,事

温馨提示

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

评论

0/150

提交评论