基于单片机智能充电器的设计课程设计报告书.docx
《基于单片机智能充电器的设计课程设计报告书.docx》由会员分享,可在线阅读,更多相关《基于单片机智能充电器的设计课程设计报告书.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机智能充电器的设计课程设计报告书
《单片机原理及应用》
课程设计报告书
课题名称
基于单片机智能充电器的设计
姓名
学号
专业
指导教师
机电与控制工程学院
年月日
任务书
一、设计题目:
基于单片机智能充电器的设计
二、设计要求:
(1)在单片机的控制系,具有充电保护的功能。
(2)能够自动断电和充电完成报警提示功能。
(3)能够实现充电器的智能化控制。
(4)能够方便快捷地答道正常充电的标准。
一、绪论…………………………………………………1
二、程序系统流程图………………………………………8
三、硬件设计………………………………………………9
四、单片机选择……………………………………………17
五、充电过程………………………………………………28
六、总结……………………………………………………29
七、附录……………………………………………………30
一、绪论
1.1概述
如今,随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。
电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。
因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。
与此同时,对充电电池的性能和工作寿命的要求也不断地提高。
电池充电是通过逆向化学反应将能量存储到化学系统里实现的。
由于使用的化学物质的不同,电池有自己的特性。
设计充电器时要仔细了解这些特性以防止过度充电而损坏电。
目前,市场上卖得最多的是旅行充电器,但是严格从充电电路上分析,只有很少部分充电器才能真正意义上被称为智能充电器,随着越来越多的手持式电器的出现,对高性能、小尺寸、轻重量的电池充电器的需求也越来越大。
电池技术的持续进步也要求更复杂的充电算法以实现快速、安全地充电,因此,需要对充电过程进行更精确地监控(例如对充、放电电流、充电电压、温度等的监控),以缩短充电时间,达到最大的电池容量,并防止电池损坏。
因此,智能型充电电路通常包括了恒流/恒压控制环路、电池电压监测电路、电池温度检测电路、外部显示电路(LED或LCD显示)等基本单元。
其框图如下:
1.2常见充电电池特性及充电方式
电池充电是通过逆向化学反应将能量存储到化学系统里实现的,由于使用的化学物质的不同,电池的特性也不同,其充电的方式也不大一样。
电池的安全充电:
现代的快速充电器(即电池可以在小于3个小时的时间里充满电,通常是一个小时)需要能够对单元电压、充电电流和电池温度进行精确地测量,在充满电的同时避免由于过充电造成的损坏。
充电方法:
SLA电池和锂电池的充电方法为恒定电压法要限流;NiCd电池和NiMH电池的充电方法为恒定电流法,且具有几个不同的停止充电的判断方法。
最大充电电流:
最大充电电流与电池容量(C)有关。
最大充电电流往往以电池容量的数值来表示。
例如,电池的容量为750mAh,充电电流为750mA,则充电电流为1C(1倍的电池容量)。
若涓流充电时电流为C/40,则充电电流即为电池容量除以40。
过热:
电池充电是将电能传输到电池的过程。
能量以化学反应的方式保存了下来。
但不是所有的电能都转化为了电池中的化学能。
一些电能转化成了热能,对电池起了加热的作用。
当电池充满后,若继续充电,则所有的电能都将转化为电池的热能。
在快速充电时这将使电池快速升温,若不及时停止充电就会造成电池的损坏。
因此,在设计电池充电器时,对温度进行监控并及时停止充电是非常重要的。
二、系统程序流程图
本充电器主要包括单片机控制、MAX1898主电路控制,单片机由AT89S52控制工作在12时钟,外接蜂鸣器。
由单片机控制发出警报声单片机的P2.0脚输出控制光耦器件,在在需要时可以及时关断充电电源。
单片机中断0由充电芯片MAX1898的充电状态输出信号/CHG经过反相后触发。
MAX1898是电路的主控制部分,当MAX1898芯片的2引脚/CHG发送的脉冲电平由低变高,这将会被单片机检测到,引起单片机的中断,在中断中,如果判断出充电完毕停止MAX1898的供电,从而保证芯片和电池的安全,同时也减小功耗。
单片机模块实现充电器的智能化控制,比如自动断电、充电完成报警提示等。
本系统的程序流程图如下所示
三、硬件设计
硬件设计主要是根据电路设计要求选择主要电路控制芯片和单片机以及电路所需的元器件并且简单介绍其作用。
一个智能化程度较高的充电器,应能在电池充电过程中准确的检测电池的状态,并能在控制过程中及时的作出反应,这就需要完善的硬件设施。
根据蓄电池快速充电技术的各项指标和设计原则,分析智能充电器硬件电路的工作原理,计算智能充电器所需的主要参数,选择各部分所需的元器件,并对硬件电路的各部分电路进行详细的设计。
3.1电池充电芯片的选择
目前市场上存在大量的电池充电芯片,它们可直接用于进行充电器的设计。
在选择具体的电池充电芯片时,需要参考以下标准。
(1)电池类型:
不同的电池(锂电池、镍氢电池、镍镉电池等)需选择不同的充电芯片。
(2)电池数目:
可充电池的数目。
(3)电流值:
充电电流的大小决定了充电时间。
(4)充电方式:
是快充、慢充还是可控充电过程。
我们实现的是手机的单节锂离子电池充电器,要求充电快速且具有优良的电池保护能力,据此选择Maxim公司的MAX1898作为电池充电芯片。
MAX1898配合外部PNP或PMOS晶体管可以组成完整的单节锂电池充电器。
MAX1898提供精确的恒流/恒压充电,电池电压调节精度为±0.75%,提高了电池性能并延长了电池使用寿命。
充电电流可由用户设定,采用内部检流,无须外部检流电阻。
MAX1898提供了充电状态的输出指示、输入电源是否与充电器的连接的输出指示和充电电流指示。
MAX1898还具有其他一些功能,包括输入关断控制、可选的充电周期重启(无须重新上电)、可选的充电终止安全定时器和过放电电池的低电流预充。
3.2MAX1898的特性
MAX1898的关键特性如下。
(1)简单、安全的线性充电方式。
(2)使用低成本的PNP或PMOS调整元件。
(3)输入电压:
4.5~12V。
(4)内置检流电阻。
(5)±0.75%电压精度。
(6)可编程充电电流。
(7)输入电源自动检测。
(8)LED充电状态指示。
(9)可编程安全定时器。
(10)检流监视输出。
(11)可选/可调节自动重启。
(12)小尺寸μMAX封装。
充电芯片MAX1898的内部电路包括输入电流调节器、电压检测器、充电电流检测器、定时器、温度检测器和主控制器。
3.3MAX1898的典型充电电路
输入电流调节器用于限制电源的总输入电流,包括系统负载电流与充电电流。
当检测到输入电流大于设定的门限电流时,通过降低充电电流从而控制输入电流。
因为系统工作时电源电流的变化范围较大,如果充电器没有输入电流检测功能,则输入电源必须能够提供最大负载电流与最大充电电流之和,这将使电源的成本增高、体积增大,而利用输入限流功能则能够降低充电器对直流电源的要求,同时也简化了输入电源的设计。
MAX1898的典型充电电路如图所示。
电路具体说明如下。
(1)输入电压范围为4.5~12V。
锂电池要求的充电方式是恒流恒压方式,电源的输入需要采用恒流恒压源,一般可采用直流电源外加变压器。
(2)通过外接的场效应管提供锂电池的充电接口。
(3)通过外接的电容CcT来设置充电时间tCHG。
这里的充电时间指的是快充时的最大充电时间,它和定时电容CcT的关系如下式所示。
=34.33×
式中,tCHG的单位为小时,CcT的单位为nF。
大多数情况下,快充时最大充电时间不超过3小时,因此常取CcT为100nF。
(4)在限制电流的模式下,通过外接的电阻RSET来设置最大充电电流IFSTCHG,关系如下式所示
式中,RSET的单位为Ω,IFSTCHG的单位为nF。
当充电电源和电池在正常的工作温度范围内时,插入电池将启动一次充电过程。
平均的脉冲充电电流低于设置的快充电流的20%,或者充电时间超出片上预置的最大充电时间时,充电周期结束。
MAX1989能够自动检测充电电源,没有电源时自动关断以减少电池的漏电。
启动快充后,打开外接的P型场效应管,当检测到电池电压达到设定的门限时进入脉冲充电方式,P型场效应管打开的时间会越来越短。
充电结束时,LED指示灯将会呈现周期性的闪烁,具体的闪烁含义如表1所示。
表1MAX1898典型充电电路的LED指示状态说明
充电状态
LED指示灯
电池或充电器没有安装
灭
预充或快充
亮
充电结束
灭
充电出错
以1.5Hz频率闪烁
MAX1898的引脚图如下图3所示:
3.4MAX1898引脚功能介绍
图3MAX1898引脚图
其引脚功能如下:
IN(1脚):
传感输入,检测输入的电压或电
流。
(2脚):
充电状态指示脚,同时驱动LED。
EN/OK(3脚):
使能输入脚/输入电源“好”输出指示脚。
EN为输入脚,可以通过输入禁止芯片工作;OK为输出脚,用于指示输入电源是否与充电器连接。
ISET(4脚):
充电电流调节引脚。
通过串接一个电阻到地来设置最大充电电流。
CT(5脚):
安全充电时间设置引脚。
接一个时间电容来设置充电时间,电容为100mF时,几乎为3个小时,此引脚直接接地将禁用此功能。
RSTRT(6脚):
自动重新启动控制引脚。
当此引脚直接接地时,如果电池电压掉至基准电压阈值以下200mV,将会重新开始一轮充电周期。
此引脚通过电阻接地时,可以降低它的电压阈值。
此引脚悬空或者CT引脚接地(充电时间设置功能禁用)时,自动重新启动功能被禁用。
BATT(7脚):
电池传感输入脚,接单个Li+电池的正极。
此引脚需旁接一个大电解电容到地。
GND(8脚):
接地端。
DRV(9脚):
外部晶体管驱动器,接晶体管的基极。
四、单片机的选择
单片机选择AT89S52,89S52是INTEL公司MCS-52系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-52的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
80C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。
4.1主要特点
·标准MCS-52内核和指令系统
·片内8kROM(可扩充64kB外部存储器)
·32个双向I/O口
·256x8bit内部RAM(可扩充64kB外部存储器)
·3个16位可编程定时/计数器
·时钟频率3.5-12/24/33MHz
·向上或向下定时计数器
·改进型快速编程脉冲算法
·6个中断源
·5.0V工作电压
·全双工串行通信口
·布尔处理器
—帧错误侦测
·4层优先级中断结构
—自动地址识别
·兼容TTL和CMOS逻辑电平
·空闲和掉电节省模式
·PDIP(40)和PLCC(44)封装形式
4.2震荡起特性
外接石英晶体或者陶瓷谐振器以及电容C1、C2接在放大器的反馈回路(AT89C52内部有一个用于构成内部振荡器的高增益反相放大电路,XTAL1、XTAL2分别是该放大器的输入和输出端)中构成并联振荡电路。
为了使装置能够被外部时钟信号激活,XATL1应该有效,而XTAL2应该被悬空。
由于输入到内部的时钟信号电路通过了一个二分频的信号,外部信号的工作周期比没有别的要求,但是最大值和最小值的大小可以在数据表上观察出来。
当正常工作时,外部振荡器可以计算出XTAL1上的电容,最大可达到100pF。
这是由于振荡器电容和反馈电容之间的相互作用。
当外部信号是标准高电平或者低电平时,电容不会超过20pF.。
4.3结构特点
1、补高性能金属氧化物半导体结构可擦可
2、编程只读存储器/只读存储器/中央处理器
3、三个16位的定时器/计数器
4、编程的时钟输出
5、Up/Down定时器/计数器
6、三级程序锁定系统
7、256字节片内RAM
8、改进的快速脉冲编程算法
9、布尔处理器
10、32根可编程的输入/输出线
11、六个中断源
12、可编程的串行通道带有:
——帧错误检测 ——自动地址识别
13、TTL和CMOS兼容逻辑电平
14、MCS51单片机可兼容指令集
15、扩展温度范围(﹣40℃到﹢85℃)
4.4AT89S52引脚功能
AT89S52单片机兼容MCS-51指令系统、4k可反复擦写(>1000次)ISPFlashROM、32个双向I/O口、4.5-5.5V工作电压、2个16位可编程定时/计数器、时钟频率0-33MHz、全双工UART串行中断口线、128x8bit内部RAM、2个外部中断源、低功耗空闲和省电模式、中断唤醒省电模式、3级加密位、看门狗(WDT)电路、软件设置空闲和省电功能、灵活的ISP字节和分页编程、双数据寄存器指针。
AT89S52引脚图如下图所示。
各个引脚功能:
VCC:
电源
GND:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出
P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S51特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
P3引脚号第二功能:
P3.0RXD(串行输入)
P3.1TXD(串行输出)
P3.2INT0(外部中断0)
P3.3INT0(外部中断0)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S51从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
4.5时钟电路的设计
时钟是单片机的心脏,各部分都以时钟频率为基准,有条不紊的一拍一拍的工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
对于MCS-51系列的单片机,常用的时钟电路设计方式有内部时钟和外部时钟两种。
内部时钟电路设计如下:
利用AT89S51单片机内部一个高增益的反相放大器,把一个晶振体和两个电容器组成自激励振荡电路,接于XTAL1和XTAL2之间。
这样振荡器发出的脉冲直接送入内部时钟电路。
单片机部分原理图主要由AT89C51单片机蜂鸣器以及多个电容电阻等组成的,其原理图9所示:
在图10中,U1为单片机AT89C51,工作在12MHz时钟;U2为蜂鸣器,蜂鸣器有单片机的P2.1肛却控制发出报警声提示;单片机的P2.0脚输出控制光耦器件,在需要的时候可以及时关断充电电源;单片机的外部中断0由充电芯片MAX1898的充电状态输出信号/CHG经过反相后触发。
五、充电过程
在MAX1898和外部单片机的共同作用下,实现了如下的充电过程。
5.1充满
在满充过程中,充电电流逐渐衰减,直到充电速率降到设置值以下,或满充时间超过,转入顶端截止充电。
顶端截止充电时,充电器以极小的充电电流为电池补充能量。
由于充电器在检测电池电压是否达到终止电压时有充电电流通过电池内阻,尽管在满充和顶端截止充电过程中充电电流逐渐下降,减小了电池内阻和其他串联电阻对电池端电压的影响,但串联在充电回路中的电阻形成的压降仍然对电池终止电压的检测有影响。
一般情况下,
满充和顶端截止充电可以延长电池5%~10%的使用时间。
5.2报警
当电池充满后,MAX1898芯片本身会熄灭外接的LED绿灯。
但是,为了安全起见,单片机在检测到充满状态的脉冲后,不仅会自动切断MAX1898芯片的供电,而且会通过蜂鸣器报警,提醒用户及时取出电池。
六、总结
此次课程设计我的题目是智能充电器的设计。
通过短短的两个星期的时间,让我对单片机以及充电器有了更深的了解。
以前我一直认为电池充电冲的越久越好,点量会充的越满,但是事实并不是如此。
当电池电量充满以后,电能将会全部以热能的形式传送给电池,对电池的使用寿命造成很大的影响。
因此在日常生活中,电池电量充满以后要及时取下来,及时断开电源。
充电器由单片机控制发出报警声。
单片机的p2.0脚输出控制光耦合器件,在需要时可以及时关断充电电源。
单片机中断0由充电芯片MAX1898的充电状态,输出信号/chg经过反相后触发。
虽然此次做设计的时间较短,不能够全面透彻地了解充电器的所有的知识,但是我在我的能力范围之内搜索了许多相关的资料,查阅了很多的信息,也让我明白了许多事情认真去做,努力去做,就能够做好。
七、附录
附录1元件清单
元件
数量
STC89S52
1
MAX1898
1
DIP40管座
1
DIP10管座
1
6x6按键开关
1
1K电阻
3
10K电阻
1
2.7K电阻
1
USB接口
1
LED红、黄
2
IN4007
1
蜂鸣器
1
8550
3
12MHz晶振
1
30PF电容
1
10UF电容
2
220UF电容
2
110NF电容
2
附录2完整电路图
附录3仿真图
附录4完整程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitGATE=P2^1;
sbitBP=P2^0;
uintt_count,int0_count;
/*初始化*/
voidinit()
{
EA=1;//打开CPU中断
PT0=1;//T0中断设为高优先级
TMOD=0x01;//模式1,T0为16位定时/计数器
TH0=(65536-5000)/256;//5ms定时
TL0=(65536-5000)%256;
ET0=1;//打开T0中断
TR0=0;
IT0=1;//外部中断0设为边沿触发
EX0=1;//打开外部中断0
GATE=1;//光耦正常输出电压
BP=1;//关闭蜂鸣器
int0_count=0;//产生外部中断0的计数器清零
}
voidmain()
{
/*调用初始化函数*/
init();
/*无限循环*/
while
(1);
}
/*定时器0中断服务子程序*/
voidtimer0()interrupt1using1
{
TR0=0;//停止计数
TH0=(65536-5000)/256;//重设计数初值
TL0=