MAX1898智能充电器的设计2.docx
- 文档编号:5197241
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:16
- 大小:183.85KB
MAX1898智能充电器的设计2.docx
《MAX1898智能充电器的设计2.docx》由会员分享,可在线阅读,更多相关《MAX1898智能充电器的设计2.docx(16页珍藏版)》请在冰豆网上搜索。
MAX1898智能充电器的设计2
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_adc()//读pcf8591数据函数
{
uintdat;
Start();
Write8Bit(0x90);
TestAck();
Write8Bit(0x40);//选择通道
TestAck();
Start();
Write8Bit(0x91);
TestAck();
dat=Read8Bit();
Stop();
returndat;
}
uintGets_24c02(ucharx)//读pcf8591数据函数
{
uintdat;
Start();
Write8Bit(0xA2);
TestAck();
Write8Bit(x);//选择通道
TestAck();
Start();
Write8Bit(0xA3);
TestAck();
dat=Read8Bit();
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]])^0x80;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;
}
/*MAX1898控制*/
voidint0()interrupt0//外部中断0服务子程序
{
if(int0_count==0)
{TH0=-5000/256;//延时5ms
TL0=-5000%256;
TR0=1;//启动定时/计数器0计数
t_count=0;//产生定时器0中断的计数器清零
}
int0_count++;
}
voidT1_INT()interrupt3
{P20=!
P20;
TH1=HI_LIST[side];
TL1=LO_LIST[side];
}
voidT0_INT()interrupt1//定时器0中断服务子程序
{
t_count++;
TR0=0;//停止计数
TH0=-5000/256;//延时5ms
TL0=-5000%256;
if((t_count>600)&&(t_count<1000))//外部中断0产生3s~5s的信号
{
if(int0_count==1)//标志,认为充电完毕、
{P21=0;//关闭充电电源
P20=0;//打开蜂鸣器报警
}//否则即是充电出错
else
{
P21=1;
P20=1;
}
ET0=0;//关闭T0中断
EX0=0;//关闭外部中断0
int0_count=0;
t_count=0;
}
else
TR0=1;//t0计数
}
/******************************************************************
主函数
******************************************************************/
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;
}
}
}
}
附件二元件清单
智能手机充电器元件清单
STC89C51
1
排阻(4.7K)
1
MAX1898模块(DIP)
1
电阻(1K)
1
PCF8951
1
电阻(10K)
3
74LS04
1
电阻(2K)
1
24C02(DIP直插式)1
1
电阻(51)
1
晶振(12MHZ)
1
电阻(100)
2
锂电池
1
电阻(2.8K)
1
蜂鸣器
1
电容(20PF)
2
4位共阴数码管
1
电容(1.1uF)
1
PNP管8550
3
电容(1uF)
1
二极管1N4007
2
电容(0.1uF)
1
红色发光二极管
1
电容(220uF)
1
绿色发光二极管
1
电解电容(10uF)
1
按键开关
1
电容(100nF)
1
继电器
1
杜邦线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MAX1898 智能 充电器 设计