基于MAX1898的智能充电器设计

发布者:码字狂人最新更新时间:2016-09-07 来源: eefocus关键字:MAX1898  智能充电器 手机看文章 扫描二维码
随时随地手机看文章
单片机在控制方面不仅可以在工业控制方面大展神通,如果用在控制一些很有意思的芯片方面也可以实现实用的功能。比如用单片机控制冲电芯片实现手机的智能充电器设计,基于次参考有关资料学习了基于MAX1898的智能充电器设计。

 

主要器件:

1、  AT89C52单片机芯片,用于控制充电器芯片。

2、  可提供精确的恒流/恒压充电,可对所有化学类型的Li+电池进行安全充电的MAX1898。

3、  LM7805提供稳定的+5v电压。

 

试验流程图:
 

试验电路图:
 

试验程序代码:
//BattCharger.h程序

#ifndef       _BATTCHARGER_H                            // 防止BattCharger.h被重复引用

 

#define       _BATTCHARGER_H

 

#include

 

#define uchar unsigned char

#define uint unsigned int

 

sbit GATE = P2^0;

sbit BP = P2^1;

 

uint t_count,int0_count;

 

#endif

 

//BattCharger.c程序

#include "BattCharger.h"

 

/* 定时器0中断服务子程序 */

void timer0() interrupt 1 using 1

{

       TR0 = 0;                      // 停止计数

 

       TH0 = -5000/256;             // 重设计数初值

       TL0 = -5000%256;

 

       t_count++;      

 

       if (t_count>600)        // 第一次外部中断0产生后3s

       {

              if (int0_count==1)       // 还没有出现第二次外部中断0,则认为充电完毕

              {

                     GATE = 0;              // 关闭充电电源

                     BP = 0;                  // 打开蜂鸣器报警

              }

           else                       // 否则即是充电出错

              {

                     GATE = 1;      

                     BP = 1;          

              }

      

              ET0 = 0;                     // 关闭T0中断

              EX0 = 0;                  // 关闭外部中断0

 

              int0_count = 0;

              t_count = 0;

       }

       else

              TR0 = 1;                  // 启动T0计数

}

 

/* 外部中断0服务子程序 */

void int0() interrupt 0 using 1

{

       if (int0_count==0)

       {

              TH0 = -5000/256;      // 5ms定时

              TL0 = -5000%256;   

              TR0 = 1;                  // 启动定时/计数器0计数

              t_count = 0;              // 产生定时器0中断的计数器清零

       }

       int0_count++;

}

 

/* 初始化 */

void init()

{

       EA = 1;                        // 打开CPU中断

 

       PT0 = 1;               // T0中断设为高优先级

       TMOD = 0x01;             // 模式1,T0为16位定时/计数器

       ET0 = 1;               // 打开T0中断

 

       IT0 = 1;                // 外部中断0设为边沿触发

       EX0 = 1;               // 打开外部中断0

      

       GATE = 1;                  // 光耦正常输出电压

       BP = 1;                         // 关闭蜂鸣器

 

       int0_count = 0;        // 产生外部中断0的计数器清零

}

 

void main()

{

       /* 调用初始化函数 */

       init();

      

       /* 无限循环 */

       while(1);

}

关键字:MAX1898  智能充电器 引用地址:基于MAX1898的智能充电器设计

上一篇:基于DS12C887的日历时钟显示系统设计
下一篇:单片机控制步进电机系统

推荐阅读最新更新时间:2024-03-16 15:08

玩Mega8 智能充电器-12. 终于实现-dV检测
方法: 1) ADC部分, 硬件RC滤波, 软件每次测量连续获取5个ADC值, 去掉最高和最低的值, 最后剩下的取平均. 2) 记录电压的最高值, 只要达到了一个电压值,就记录在变量TOP内. 如果电压下降到top-12mV,并且连续3次,则确认-dV, 充电完成. 3) 只要突破TOP,则-dV计数复位. if( ic- top_voltage (ic- voltage+0.012) ){ ic- delta_times++; infon( -dV: ,ic- delta_times); _delay_s(2); if(ic- delta_times 3){ ic
[单片机]
电动汽车智能充电器的设计与实现
1 引言     随着低碳经济成为我国经济发展的主旋律,电动汽车作为新能源战略和智能电网的重要组成部分,必将成为今后汽车工业和能源产业发展的重点,相配套的电动汽车充电器也将成为一种新兴产业,其技术要求和革新也提上日程。     传统充电器采用相控电源,所使用的变压器是工频电源变压器,体积大,效率低,动态响应差。线性电源的功率调整管总是工作在放大区,损耗功率较大,需装配体积很大的散热片,这些均限制了其在电动汽车充电器的应用。为此,这里采用高频开关电源技术,并提出改进型变电流间歇充电方法,使充电电流在总体上逼近蓄电池的可接受充电电流曲线,满足了电动汽车充电需求。 2 充电电路拓扑     在采用开关电源的充电器电路拓扑中,有各种各样的
[电源管理]
电动汽车<font color='red'>智能充电器</font>的设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved