智能充电器论文(2)

2019-03-23 10:43

图 5 基于MAX1898的智能充电器电路电压转换及光耦隔离部分原理图

U3为输出+5V的电压转换芯片LM7805,它将12V的输入电压转换为固定的5V 输

出,U4为光耦隔离芯片6N137 ,其输入为LM7805 产生的 5V 电压,输出为经过隔离的5V电压,U4的2脚和单片机的P2.0相连,由单片机控制适时地关闭电电源。

图 6 所示的为充电控制部分的电路原理图,其核心器件为充电芯片MAX1898,其充电状态输出引脚/CHG经过74LS04反相后与单片机INT0相连,触发外部中断,LED-R 为红色发光二极管,红灯表示电源接通;LED-G为绿色发光二极管,绿灯表示处于充电状态。Q 1 为 P 沟道的场效应管,由MAX1898提供驱动。图 6 中,R4为设置充电电流的电阻,阻值为2.8kΩ,设置最大充电电流为 500mA; C11为设置充电时间的电容, 容值为100nf设置最大充电时间为3小时。

在MAX1898和外部单片机的共同作用下,实现了如下的充电过程。 ● 预充

在安装好电池之后,接通输入直流电源,当充电器检测到电池时将定时器复位,从而进入预充过程,在此期间充电器以快充电流的 10%给电池充电, 使电池电压、温度恢复到正常状态。预充时间由外接电容CcT确定(100nF时为45分钟), 如果在预充时间内电池电压达到2.5V,且电池温度正常,则充电进入快充过程;如果超过预充时间后,电池电压仍低于2.5V,则认为电池不可充电,充电器显示电池故障,LED指示灯闪烁。 ● 快充

快充过程也称为恒流充电,此时充电器以恒定电流对电池充电。恒流充电时,电池电压缓慢上升,一旦电池电压达到所设定的终止电压, 恒流充电终止,充电电流快速递减,充电进入满充过程。

图 6 基于MAX1898的智能充电器电路充电控制部分原理图

● 满充

在满充过程中,充电电流逐渐衰减,直到充电速率降到设置值以下,或满充时间超过,转入顶端截止充电。顶端截止充电时, 充电器以极小的充电电流为电池补充能量。由于充电器在检测电池电压是否达到终止电压时有充电电流通过电池内阻, 尽管在满充和顶端截止充电过程中充电电流逐渐下降, 减小了电池内阻和其他串联电阻对电池端电压的影响, 但串联在充电回路中的电阻形成的压降仍然对电池终止电压的检测有影响。 一般情况下, 满充和顶端截止充电可以延长电池5%~10%的使用时间。 ● 断电

当电池充满后,MAX1898芯片的2引脚/CHG发送的脉冲电平会由低变高,这将会被单片机检测到,引起单片机的中断,在中断中,如果判断出充电完毕,则单片机将通过P2.0口控制光耦6N137,切断LM7805向MAX1898的供电,从而保证芯片和电池的安全,同时也减小功耗。 ● 报警

当电池充满后,MAX1898芯片本身会熄灭外接的LED绿灯。但是,为了安全起见,单片机在检测到充满状态的脉冲后,不仅会自动切断MAX1898芯片的供电, 而且会通过蜂鸣器报警,提醒用户及时取出电池。当充电出错时,MAX1898芯片本身会控制LED绿 灯以1.5Hz左右的频率闪烁,此时不要切断芯片的供电,要让用户一直看到此提示。

2.3 单片机接口说明

1、CHG:MAX1898充电状态输出,连接到单片机的INT0,单片机判断充电完毕后,通过P1.2引脚切断MAX1898的电源输入。

2、Gate:连接单片机的P1.2引脚,当单片机判断充电完毕后,P1.2管脚输出低电平,光耦不导通,从而切断MAX1898的电源输入。 3、Beep:单片机控制蜂鸣器的引脚。 4、EN/OK:MAX1898充电使能。

3 软件设计

充电电器的充电过程主要由MAX1898控制,而单片机芯片主要是对电池起保护作用。本例的软件设计较为简单,其主要功能如下。

当MAX1898完成充电时,其/CHG引脚会产生由低到高的跳变,该跳变引起单片机的INT0中断。/CHG输出为高存在3种情况:一是电池不在位或无充电输入,二是充电完毕,三是充电出错(此时,实际上/CHG会以1.5Hz频率反复跳变)。显然前两种情况单片机都可以直接控制光耦切断充电电源,所以,程序中只要区别对待第 3 种充电出错的情况即可。因此,在此中断中,如果判断出不是充电出错,则控制P2.0脚切断电源,控制P2.1脚启动蜂鸣器报警。

3 . 1 程序流程

单片机控制智能充电器工作的程序流程如图7所示。

图 7 基于MAX1989的智能充电器程序流程图

3.2 程序功能

基于单片机STC89C52和MAX1898的智能电池充电器的程序需要完成以下的功能:

1通过CHG信号引起INT0外中断。

2在两次中断中使用T0计数,判断是否充电完毕。

3如果充电完毕,则控制P1.2和P1.3引脚,输出低电平。 4在LCD1602上显示充电剩余时间和充电状。

3 . 3 程序说明

主要程序代码及其说明(见注释语句)如下。 uint8 t1_count20 = 0;//20进制计数器

uint8 second=0,minute=0,hour=0;//时分秒计数器

uint8 second_re=0,minute_re=0,hour_re=0;//记录时间剩余 uint16 t0_count = 0; //定时器0中断的计数器清零 uint16 int0_count=0; // 产生外部中断0的计数器清零 /* 初始化 */ void Init(void) { init_1602(); //液晶初始化 TMOD = 0x11; // 定时器T0 T1 方式1,T0 T1 为16位定时/计数器 PT0 = 1; // T0中断设为高优先级 ET0 = 1; // 打开T0中断 TH1 = 0x4C; //定时器T1初值 50ms定时 晶振11.0592MHz TL1 = 0x00; ET1 = 1; // 打开T1中断 TR1 = 1; //运行T1 IT0 = 1; // 外部中断0设为边沿触发 EX0 = 1; // 打开外部中断0 GATE = 0; // 光耦正常输出电压 BEEP = 1; // 关闭蜂鸣器 EN_OK = 1; //使能MAX1898 EA = 1; // 打开所有的中断 }

void main()

{ Init(); //初始化 //Used 液晶第一行显示初始化 gotoxy_1602(0,0); write_str_1602(\ gotoxy_1602(0,7); write_num_1602(hour); //显示时 write_data_1602(':'); gotoxy_1602(0,10); write_num_1602(minute); //显示分 write_data_1602(':'); gotoxy_1602(0,13); write_num_1602(second); //显示秒 //remain 液晶第二行显示初始化 gotoxy_1602(1,0); write_str_1602(\

hour_re = 2 - hour; //计算时剩余 gotoxy_1602(1,7);

write_num_1602(hour_re); //显示时剩余 write_data_1602(':');

minute_re = 59 - minute; //计算分剩余 gotoxy_1602(1,10);

write_num_1602(minute_re); //显示分剩余 write_data_1602(':');

second_re = 59- second; //计算秒剩余 gotoxy_1602(1,13);

write_num_1602(second_re); //显示秒剩余

while(1) // 等待外部的控制信号 { if(t1_count20 >= 20) //定时1S时间到,1s = 50ms*20 { t1_count20=0; second++; if(second==60) //秒调整,分加1 { second=0; minute++; if(minute==60)//分调整,时加1 { minute=0; hour++; if(hour==24) //时调整 { hour=0; } gotoxy_1602(0,7); write_num_1602(hour); //时更新

hour_re = 2 - hour; //计算时剩余 gotoxy_1602(1,7); write_num_1602(hour_re); //显示时剩余 }

gotoxy_1602(0,10);

write_num_1602(minute); //分更新

minute_re = 59 - minute; //计算分剩余 gotoxy_1602(1,10); write_num_1602(minute_re); //显示分剩余 }

gotoxy_1602(0,13);


智能充电器论文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于51单片机的电子打铃器 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: