新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MAX1898的智能充電器設(shè)計

基于MAX1898的智能充電器設(shè)計

作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
單片機在控制方面不僅可以在工業(yè)控制方面大展神通,如果用在控制一些很有意思的芯片方面也可以實現(xiàn)實用的功能。比如用單片機控制沖電芯片實現(xiàn)手機的智能充電器設(shè)計,基于次參考有關(guān)資料學(xué)習(xí)了基于MAX1898的智能充電器設(shè)計。

本文引用地址:http://butianyuan.cn/article/201611/315966.htm

主要器件:

1、AT89C52單片機芯片,用于控制充電器芯片。

2、可提供精確的恒流/恒壓充電,可對所有化學(xué)類型的Li+電池進行安全充電的MAX1898。

3、LM7805提供穩(wěn)定的+5v電壓。

試驗流程圖:

試驗電路圖:

試驗程序代碼:
//BattCharger.h程序

#ifndef_BATTCHARGER_H//防止BattCharger.h被重復(fù)引用

#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中斷服務(wù)子程序*/

void timer0() interrupt 1 using 1

{

TR0 = 0;//停止計數(shù)

TH0 = -5000/256;//重設(shè)計數(shù)初值

TL0 = -5000%256;

t_count++;

if (t_count>600)//第一次外部中斷0產(chǎn)生后3s

{

if (int0_count==1)//還沒有出現(xiàn)第二次外部中斷0,則認(rèn)為充電完畢

{

GATE = 0;//關(guān)閉充電電源

BP = 0;//打開蜂鳴器報警

}

else//否則即是充電出錯

{

GATE = 1;

BP = 1;

}

ET0 = 0;//關(guān)閉T0中斷

EX0 = 0;//關(guān)閉外部中斷0

int0_count = 0;

t_count = 0;

}

else

TR0 = 1;//啟動T0計數(shù)

}

/*外部中斷0服務(wù)子程序*/

void int0() interrupt 0 using 1

{

if (int0_count==0)

{

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

TL0 = -5000%256;

TR0 = 1;//啟動定時/計數(shù)器0計數(shù)

t_count = 0;//產(chǎn)生定時器0中斷的計數(shù)器清零

}

int0_count++;

}

/*初始化*/

void init()

{

EA = 1;//打開CPU中斷

PT0 = 1;// T0中斷設(shè)為高優(yōu)先級

TMOD = 0x01;//模式1,T0為16位定時/計數(shù)器

ET0 = 1;//打開T0中斷

IT0 = 1;//外部中斷0設(shè)為邊沿觸發(fā)

EX0 = 1;//打開外部中斷0

GATE = 1;//光耦正常輸出電壓

BP = 1;//關(guān)閉蜂鳴器

int0_count = 0;//產(chǎn)生外部中斷0的計數(shù)器清零

}

void main()

{

/*調(diào)用初始化函數(shù)*/

init();

/*無限循環(huán)*/

while(1);

}



關(guān)鍵詞: MAX1898智能充電

評論


技術(shù)專區(qū)

關(guān)閉