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

上传人:b****1 文档编号:1392679 上传时间:2022-10-22 格式:DOCX 页数:17 大小:184.57KB
下载 相关 举报
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、熟悉单片机应用系统的设计方法和步聚。

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“EN”脚电平被拉低,充电停止,蜂鸣器报警。

充电过程中,若电池充满,MAX1898发出“满”信号传递给单片机,单片机同样拉低触发信号,74LS04发出低电平信号,MAX1898“EN”拉低,通过继电器使充电停止,同时发出报警信号。

系统方框图如图2.1

图2.1系统方框图

3硬件设计

3.1单元电路设计

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

∙单片机模块:

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

∙充电过程控制模块:

采用专用的电池充电芯片与继电器实现对充电过程的控制;

∙充电电压检测模块:

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

∙报警电路:

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

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

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

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

图3.1.1单片机控制电路

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

MAX1898外接限流型充电电源和P沟道场效应管或PNP三极管,可以对锂电池进行安全有效的快充,其最大的特点是在不使用电感的情况下仍能保持很低的功率耗散,可以实现预充电,具有过压保护和温度保护功能以与为锂电池提供二次保护。

电路如图3.1.2.1和如图3.1.2.2

图3.1.2.1充电器电路充电控制电路

图3.1.2.2继电器充电控制电路

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

利用MAX1898进行检测的同时,还要通过锂电池两端的电压进行检测,利用PCF8591对电路进行AD转换,通过I2C进行读取。

电路如图3.1.3.

图3.1.3充电器电压检测电路

3.1.4报警电路电路设计

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

电路如图3.1.4.

图3.1.4报警电路

3.2总电路设计

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

如:

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

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

图3.2.1智能充电器总电路

4软件设计

4.1程序设计概述

(1)充电器的充电过程主要由MAX1898和单片机STC89C51控制,而单片机主要是对电池充电器控制作用。

主要功能介绍如下:

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

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

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

∙充电完毕;

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

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

(2)I2C使用

4.2程序流程图

4.2.1智能充电器的控制

图4.2.1单片机初始化流程图

单片机控制智能充电器的控制流程如图4.2.2,其中包括外部中断服务子程序和定时器服务子程序。

图4.2.2单片机控制智能充电器的控制流程

4.2.2I2C使用

(1)PCF8591的AD转换

(2)24C02的存储音乐

系统源程序见附录。

5性能测试与分析

下面给出充电过程中记录的数据,如下表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.

 

 

 

附录一程序源代码

程序源代码:

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

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

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

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

uintt_count,int0_count;

ucharside;

sbitP10=P1^0;//数码管显示

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

sbitP20=P2^0;//蜂鸣器输出引脚

sbitP21=P2^1;//继电器输出引脚

sbitSCL=P2^3;

sbitSDA=P2^4;

voidStart()//开始总线

{

SDA=1;

SCL=1;

SDA=0;

SCL=0;

}

voidStop()//完毕总线

{

//SCL=0;

SDA=0;

SCL=1;

SDA=1;

SCL=0;

}

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

{

SCL=0;//可省略

SDA=0;

SCL=1;

SCL=0;

SDA=1;//必须置1,释放总线

}

voidNoAck()//发(写)ACK~1

{

SCL=0;//可省略

SDA=1;

SCL=1;

SCL=0;

}

voiddelay(uintn)//延时约Nms的时间

{

uinti;

while(n--){for(i=0;i<100;i++);}

}

bitTestAck()//测试(读)ACK

{

bitErrorBit;

SDA=1;//释放总线

SCL=1;

ErrorBit=SDA;

SCL=0;

return(ErrorBit);//0~应答,1~非应答

}

//写入8个bit到IIC器件

Write8Bit(unsignedcharinput)

{

unsignedchartemp;

for(temp=8;temp!

=0;temp--)

{

SCL=0;//可省略

SDA=(bit)(input&0x80);

SCL=1;

SCL=0;

input=input<<1;

}

}

ucharRead8Bit()//读8个字节

{

unsignedchartemp,rbyte=0;

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_

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

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

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

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