MAX1898智能充电器的设计2.docx

上传人:b****6 文档编号:6567077 上传时间:2023-01-08 格式:DOCX 页数:17 大小:456.05KB
下载 相关 举报
MAX1898智能充电器的设计2.docx_第1页
第1页 / 共17页
MAX1898智能充电器的设计2.docx_第2页
第2页 / 共17页
MAX1898智能充电器的设计2.docx_第3页
第3页 / 共17页
MAX1898智能充电器的设计2.docx_第4页
第4页 / 共17页
MAX1898智能充电器的设计2.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

MAX1898智能充电器的设计2.docx

《MAX1898智能充电器的设计2.docx》由会员分享,可在线阅读,更多相关《MAX1898智能充电器的设计2.docx(17页珍藏版)》请在冰豆网上搜索。

MAX1898智能充电器的设计2.docx

MAX1898智能充电器的设计2

1课程设计目的、任务及要求1

1.1课程设计目的1

1.2课程设计任务1

1.3课程设计要求1

2总体设计方案1

3硬件设计2

3.1单元电路设计2

3.1.1单片机模块电路和报警电路设计2

3.1.2充电器电路充电控制电路设计2

3.1.3充电器电压检测电路设计3

3.1.4报警电路电路设计3

3.2总电路设计4

4软件设计4

4.1程序设计概述4

4.2程序流程图5

4.2.1智能充电器的控制5

4.2.2IC使用6

5性能测试与分析6

6实验总结7

7参考文献7

附录一程序源代码9

附件二元件清单14

1课程设计目的、任务及要求

1.1课程设计目的

1、熟悉单片机应用系统的设计方法和步聚。

2、巩固PROTEL制板的方法和步骤。

3、进一步巩固单片机的应用和C51单片机程序设计方法。

4、掌握51单片机程序下载的方法和步骤。

5、熟悉单片机应用系统的软硬件调试方法和过程。

6、熟悉设计报告的书写方法。

1.2课程设计任务

1•通过单片机实现充电器的智能化控制,比如自动断电、充电完成报警提示等;

2•采用专用的电池充电芯片MAX1898与继电器实现对充电过程的控制,并实现电池预充、快充、

满充、充电

3.采用PCF8591对充入锂电池的电压进行检测电池电压,通过蜂鸣器对MAX1898充电情况做相

应的报警,并从24C02中读取存入里面的歌曲。

1.3课程设计要求

要实现智能化充电器,需要从以下两方面着手:

1.智能化的实现。

在充电过程中引入51单片机的控制。

2.充电的实现。

包括两部分:

一是充电过程的控制;二是需要提供基本的充电电压。

3.显示的实现。

利用I2C总线。

2总体设计方案

选择MAX1898作为充电芯片,AT89S51作为充电控制芯片,共同完成锂电池智能充电器的研究。

加载电源,MAX1898自动检测电池电压,判断电池是否为“满”状态,如果“是”则将此状态传递给单片机,触发信号拉低,TLP5621发出低电平信号,MAX1898“Eh”脚电

平被拉低,充电停止,蜂鸣器报警。

充电过程中,若电池充满,MAX1898发出“满”信号

传递给单片机,单片机同样拉低触发信号,74LS04发出低电平信号,MAX189“EN'拉低,通过继电器使充电停止,同时发出报警信号。

系统方框图如图2.1

图2.1系统方框图

3硬件设计

3.1单元电路设计

智能充电器设计的功能模块如下:

.单片机模块:

实现充电器的智能化控制,比如自动断电、充电完成报警提示等;充电过程控制模块:

采用专用的电池充电芯片与继电器实现对充电过程的控制;充电电压检测模块:

采用PCF8591对充入锂电池的电压进行检测,并在达到一定的值进行报警;

报警电路:

通过蜂鸣器对MAX1898充电情况做相应的报警,并从24C02中读取存入里面的歌曲。

3.1.1单片机模块电路和报警电路设计

单片机模块电路主要是由是以STC89C5为核心的最小系统电路,因为其具有广泛的兼容性和强大的及时控制功能,特别适合于许多较为复杂的控制应用场合。

蜂鸣器为系统进行报警提示,电路如图3.1.1.

图3.1.1单片机控制电路

3.1.2充电器电路充电控制电路设计MAX1898外接限流型充电电源和P沟道场效应管或PNP三极管,可以对锂电池进行安全有

效的快充,其最大的特点是在不使用电感的情况下仍能保持很低的功率耗散,可以实现预充电,

具有过压保护和温度保护功能以及为锂电池提供二次保护。

电路如图3.1.2.1和如图3.1.2.2

图3.121充电器电路充电控制电路

 

图3.1.2.2继电器充电控制电路

3.1.3充电器电压检测电路设计

利用MAX1898S行检测的同时,还要通过锂电池两端的电压进行检测,利用PCF8591

2

对电路进行AD转换,通过IC进行读取。

电路如图3.1.3.

图3.1.3充电器电压检测电路

3.1.4报警电路电路设计

利用蜂鸣器读取24C02中存入的歌曲,作为报警电路。

电路如图3.1.4.

图3.1.4报警电路

3.2总电路设计

基于MAX1898智能充电芯片,加上51系列单片机的强大功能使得智能电池充电器的设计更加模块化,也使得是电池充电器更加智能化。

如:

电池预充、充电保护、自动断电和充电完成报警提示功能。

其各模块电路如下图3.2.1所示.

4软件设计

4.1程序设计概述

(1)充电器的充电过程主要由MAX1898和单片机STC89C51空制,而单片机主要是对

电池充电器控制作用。

主要功能介绍如下:

当MAX1898I成充电时,其/CHG引脚会产生由低电平到高电平的跳变,该跳变引起单片机INTO中断。

/GHG输出为高电平时有以下3种情况:

•电池不在位或者无充电输入;

•充电完毕;

•充电出错(此时实际上/CHG会以1.5HZ的频率反复跳变);

显然前面2种情况都可以直接通过继电器切断充电电源,所以程序上着重于第三种情况的判断。

(2)12C使用4.2程序流程图

4.2.1智能充电器的控制

图421单片机初始化流程图

子程序

422I2C使用

(1)PCF8591的AD转换

(2)24C02的存储音乐系统源程序见附录。

5性能测试与分析

F面给出充电过程中记录的数据,如下表5.1所示:

表5.1充电过程数据表

测量次数

电池电压(V)

充电电流(mA

电阻(?

1

3.98

55.1

0.072

2

3.96

53.1

0.075

3

3.96

52.7

0.075

4

3.98

52.5

0.076

5

3.98

51.7

0.077

6

3.98

49.8

0.080

7

4

45.8

0.087

8

4

43.4

0.092

9

4

41.4

0.097

10

4.03

39.9

0.101

11

4.03

38.6

0.104

12

4.03

37.8

0.107

13

4.05

32.5

0.125

14

4.05

31.6

0.128

15

4.05

29

0.140

20

4.05

28.7

0.141

25

4.07

27.6

0.147

30

4.13

19.49

0.212

35

4.13

18.89

0.219

40

4.13

18.6

0.222

45

4.15

18.47

0.225

50

4.17

15.94

0.262

55

4.29

0.4

10.725

60

4.31

0.39

11.051

其绘制图形如下:

参考MAX1898伏安特性折线图:

 

从上可以看出随之充电的进行,电压值从3.68伏开始不断递增,而电流值不断的减小,根据安培定理,得出其阻值不断的增大,电压达到一定的值后,电流会达到最小值,即充电接近完成。

但是充电时间和参考折线图不一致,和理论值也不一制。

6实验总结

本设计以MAX1898为核心,利用单片机为控制元件实现智能手机充电器的设计。

通过

以上智能充电器的设计,使我进一步熟悉了MAX1898勺工作原理和使用方法,更深入的了解了STC89C51的定时/计数器、中断系统的应用,熟悉了单片机嵌入式控制系统的设计思路。

本设计使得课上所学得到充分的应用,加强了自身摄取新知识的能力,也为不断完善自己奠定了基础。

理论来源于实践而高于实践,没有亲力亲为是不能领会其魅力的。

这次设计进一步提高了自己的动手制作能力,也使得编程能力得到锻炼,取得不小的收获,同时也发现了自身所存在的不足。

对于本次设计制作,还有很多可以提高的地方。

1.利用PCF8591对电池电压进行采集,通过计算得出电池流入的电流,并在LCD1602

显示出来,达到可视化的控制。

2.提高充电速率。

3.提供电源的电压要稳定。

7参考文献

[1]MAX1898.DataSheet.

[2]STC89C51.DataSheet.

[3]PCF8591.DataSheet.

[4]

/.北

戴佳,戴卫恒,刘博文,51单片机C语言应用程序设计实例精讲[M],电子工业出版社

京,2008.12.

 

附录一程序源代码

程序源代码:

#inelude

#inelude

#inelude

#inelude

#defineueharunsignedchar

#defineuintunsignedintuehareodeHI_LIST[]={0,226,229,232,233,236,238,240,241,242,245,246,247,248};

ueharcodeLO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};

ueharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uintt_eount,intO_count;

ueharside;

sbitP10=P1A0;〃数码管显示

sbitP1仁P1A1;

sbitP12=P1A2;

sbitP13=P1A3;

//蜂鸣器输出引脚

//继电器输出引脚

sbitP20=P2A0;

sbitP21=P2A1;

sbitSCL=P2A3;

sbitSDA=P2A4;

voidStart()//开始总线

{

SDA=1;

SCL=1;

SDA=0;

SCL=0;

}

voidStop()//结束总线

{

〃SCL=0;

SDA=0;

SCL=1;

SDA=1;

SCL=0;

}

voidAek()//发(写)ACK~0

01

:

A>indu!

=indui

!

0=19S—IOS

!

(08X0^ndu!

)(;!

q)=vaS»>//!

0=1OS

}(-diuaVo=idiu9V8=diu91)J04!

diua;」Eippau6isun

}

Qndui」eqopau6isun);!

gga;u/v\占喘011[1四&8Y旦〃

{另型非7'另型~0〃⑪日」o」归)u」n®

!

0=19SVaS=l!

aJ0JJ3—IOS需剁嫌魁〃:

i=vas

加o」」mi!

q

}>16/(聲)冯M//()”6/lso丄四

{<(++匸00A!

0=!

)」Oj}(-u)8|!

MM

!

ijuin

}11shin易府亟//(uju!

n)Ae|eppjoa

{!

0=19S^=19S:

i=vas»>//!

0=1OS

}A'OH(t;)

OA

{需剁嫌魁JMW^//:

i^=vas

!

0=19S

^=19S:

o=vas

»>//!

0=1OS

ucharRead8Bit()〃读8个字节

{

unsignedchartemp,rbyte=O;

for(temp=8;temp!

=0;temp--)

{

SCL=1;

rbyte=rbyte<<1;

rbyte=rbyte|((unsignedchar)(SDA));//将位SDA转换成字节再行原来的rbyte相或,SCL=1时即SDA

稳定时读

SCL=0;

}

return(rbyte);

}

uintreadpcf8951_adc(){

uintdat;

Start();

Write8Bit(0x90);

TestAck();

Write8Bit(0x40);TestAck();

Start();Write8Bit(0x91);TestAck();dat=Read8Bit();

Stop();returndat;

}

//读pcf8591数据函数

〃选择通道

uintGets_24c02(ucharx){

uintdat;

Start();

Write8Bit(0xA2);

TestAck();

Write8Bit(x);

TestAck();

Start();

Write8Bit(0xA3);

TestAck();dat=Read8Bit();

//读pcf8591数据函数

//选择通道

 

}

/*MAX1898控制*/voidint0()interrupt0

{

if(intO_count==0)

{TH0=-5000/256;

TL0=-5000%256;

TR0=1;

t_count=0;

}

int0_count++;

}

Stop();returndat;

}voiddisplay。

{

unsignedinttemp;

unsignedchardis_c[4],i;

temp=readpcf8951_adc()*1.0/255*500;//以长整型运算。

for(i=0;i<4;i++)

{dis_c[i]=temp%10;

temp=temp/10;

}

P0=(table[dis_c[3]]);P10=0;delay

(1);P10=1;

P0=(table[dis_c[2]y0x80;P11=0;delay

(1);P11=1;//显示小数点异或0x80

P0=(table[dis_c[1]]);P12=0;delay

(1);P12=1;

P0=(table[dis_c[0]]);P13=0;delay

(1);P13=1;

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

〃延时5ms

//启动定时/计数器0计数

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

voidT1_INT()interrupt3{P20=!

P20;

TH1=HI_LIST[side];

TL1=LO_LIST[side];

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

}

voidT0_INT()interrupt1

{

t_count++;

TR0=0;

TH0=-5000/256;

TL0=-5000%256;

if((t_count>600)&&(t_count<1OOO))

〃停止计数

〃延时5ms

〃外部中断0产生3s~5s的信号

if(intO_count==1)

{P21=0;

P20=0;

}

else

{

P21=1;

P20=1;

}

ETO=O;

EXO=O;

int0_count=0;

t_count=0;

}

else

TR0=1;

//标志,认为充电完毕

//关闭充电电源

//打开蜂鸣器报警

//否则即是充电出错

〃关闭T0中断

〃关闭外部中断0

//to计数

 

 

/******************************************************************

主函数

******************************************************************/

voidmain()

{

uchari;

TMOD=0X11;//初始化

EA=1;

ET0=1;

ET1=1;

IT0=1;

TR0=1;

TR1=1;

EX0=1;

int0_count=0;

while

(1)

{

display。

if(P20==0)

{for(i=0;i<14;i++)

{side=Gets_24c02(i);

TR1=1;

}

附件二元件清单

 

智能手机充电器元件清单

排阻(4.7K)1

电阻(1K)1

电阻(10K)3

电阻(2K)1

电阻(51)1

电阻(100)2

电阻(2.8K)1

电容(20PF)2

电容(1.1uF)1

电容(1uF)1

电容(0.1uF)1

电容(220uF)1电解电容(10uF)1

电容(100nF)1

杜邦线

STC89C511

MAX189模块(DIP)1

PCF89511

74LS041

24C02(DIP直插式)11

晶振(12MHZ)1

锂电池1

蜂鸣器1

4位共阴数码管1

PNPt85503

二极管1N40072

红色发光二极管1

绿色发光二极管1

按键开关1

继电器1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1