视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于单片机的智能充电电源设计
2025-09-23 22:16:22 责编:小OO
文档
基于单片机的智能充电电源设计

前言 

伴随着社会的发展,手机用户的数量在不断增长,相应的对高 性能、小尺寸的电池充电电源的需求也越来越大。但市场上的手机充电器质量参差不齐,有诸 多弊端。很多外观相似,但内部线路不同导致性能大有差异。虽然都能实现充满自停,但其实现的方式不同就会导致充电效果不同。由于采用高电流快速充电,充满后不能及时停止,使电池由于过充而发热严重,从而严重缩短电 池的寿命。低成本的手机电池充电电源(万能充)都是采用电压比较法,为防止过充,一 般只充到电池电量的 90%就停止高电流充电,然后用小电流涓流充电,此时充电器指示灯不再闪烁,如果用户此时拔下电源,无疑电池的电量只充到了 90%左右,再加上电压比较具有离散性,这 90%的电量也只是个理论值,不 精确。

手机技术的进步,如智能手机的出现,也对手机电池提出了更高的要求,容量要求越来越大。因此要求有更复杂的充电算法以实现快速、安全充电。一部好的手机充电电源不仅能在短时间内将电量 充足,而且能对电池起到一定的保护作用,可以修复由于电池的记忆效应引起的 电池活性衰退现象,同时避免由于电池发热引起的不安全因素。虽然大部分商家 极力推荐手机直充,但是这其中存在许多不方便的因素,比如体积大,不便于携带。

本设计提出一种结合智能充 电芯片 MAX1 8 和单片机 ATS51 的充电电源软硬件设计方案。 MAX1 8 功能强大,内部电路包含输入电流调节器、充电电流检测器、电压检测器、温度检测器、定时器和主控器。它与单片机强大的 控制功能配合使用,使得手机电池充电电源更加智能化,通过改良外围电路可以大 大减小手机电池充电电源的体积,使之便于携带,这样更能满足现代家庭生活的需求[1]。 

              

1  总体方案的设计 

1.1  实现功能

要实现智能化,要从两方面着手:

(1)充电的实现。包括两部分 :一是充电过程的控制;二是需要提供基本的充电电压。

(2)智能化的实现[2]。在充电过程中引入 51 单片机的控制,从而实现电池预充、快充、满充、充电保护、自动断电和充电完成自动报警提示功能。

1.2  方案设计与论证  

1.2.1  电池充电芯片的选择

目前市场上存在大量的电池充电芯片,它们可直接用于充电器的设计。在选择具体的充电芯片时,有以下参考标准:

• 电池类型:不同的电池(锂电池、镍氢电池、镍镉电池)需选择不同的充电芯片;

• 电池数目:可充电池的数目;

• 电流值:充电电流的大小决定了充电时间;

• 充电方式:快充、慢充或者可控充电过程。

本设计主要利用51单片机实现手机单节锂离子(Li+)电池智能充电器,要求充电快速且具有优良的电池保护能力。通过查阅相关资料,目前市场上常见的智能充电主要包括:MAX18、MAX1758、SMC401。不同的芯片在控制充电过程中能力各不相同,其价格也迥异,控制电路更是错踪复杂,所以进行了以下对比论证。

●智能锂电池充电控制芯片SMC401

SM401主要用于手机锂电池的充电器,也可以用于其他锂离子或锂聚合物电池的充电控制场合。内嵌8位MCU,提供全程的智能检测和智能控制,根据锂电池充电曲线在不同阶段进行精确恒流或恒压充电,具有电池放置检测、智能过流保护、过放电涓流预充、温度检测及保护、三色LED 状态指示等功能。采用本芯片设计的充电器能够充分贴合锂电池的充电曲线在不同阶段进行精确恒流或恒压充电,并能对过放电的锂电池进行补偿充电和电气性能修护,从而提高锂电池的充电饱和度,延长锂电池使用寿命。此外,芯片还能通过补偿锂电池内阻的方式缩短充电时间。

SMC401的充电分为三个步骤:预充、恒流充电、恒压充电。

(1)预充阶段。先安装电池再加上电源,SMC401首先检测电池的温度是不是在设定范围,如果不正常就会进入温度故障模式。否则检测电压VBAT,当电池电压VBAT比低压门限VLOW还低时,SMC401就会以恒流10%的电流对电池进行预充电。

(2)恒流充电阶段。在完成对电池的预充或电池电压VBAT高于VLOW并低于VMAX时,SMC401进入恒流的充电状态,此时通过外部感测电阻上的压降来监控充电电流。

(3)恒压充电阶段。当电池电压VBAT达到了VMAX时进入恒压充电的状态。在整个工作电压和工作温度范围内,恒压精度高于±1%。如果充电电流达到了终止门限ILOW时就会停止充电,如果电池电压低于充电门限电压VMAX了就会自动重新开始进行恒压充电。

●智能锂电池充电控制芯片MAX1758

Max1758同MAX18一样也是Maxim公司生产的锂离子电池充电芯片,可实现智能

充电,自动检测调节电流、电压、温度等参数,为锂电池提供了一种新的安全、高效的设计方案。其性能和MAX18如出一辙,只是MAX1758 常用于笔记本和一些高档仪器的电源管理芯片,功耗小,发热量小,性能稳定,但是外围电路比较复杂。

●智能锂电池充电控制芯片MAX18[3]

MAX18的内部电路包含输入电流调节器、充电电流检测器、电压检测器、温度检测器、定时器和主控器。输入电流调节器是用来总输入电流,包括充电电流与系统负载电流,如果检测到输入电流大于了设定的门限电流,就会通过降低充电电流来控制输入电流,MAX18外接PNP功率三级管和限流型充电电源,可对单节锂电池进行有效的快速充电,充电时间可通过外接电容来设定,最大充电电流可通过外接电阻来设置。

充电时间Tchg和定时电容C的关系式满足:

C=34.33×Tchg                          (1.2.1-1)

最大的充电电流Imax和限流电阻Rset的关系式满足:

Imax=1400/Rset                        (1.2.1-2)

输入电压范围为4.5V-12V。锂电池要求充电的方式是恒流|恒压方式,电源的输入需采用恒压恒流源,通常采用直流电源再外加个变压器。

(1) 锂电池的充电接口通过外接的场效应管来提供。

(2) 通过外接电容CT设置快充时最大充电时间Tchg,它和定时电容CT 的关系[4]:CT=34.33*Tchg                           (1.2.1-3)

式中:Tchg 单位为小时,CT 单位为nF,一般情况下快充时间不超过3 小时,因此CT一般为100nF。

(3) 在电流的模式下,通过外接电阻RSET 来设置最大充电电流IFST,关系如下所示[5]:

IFST =1400 / RSET                        (1.2.2-4)

式中:RSET 单位为欧姆,IFST 单位为安培。

SMC401是一款更高级的充电控制芯片,它集成了8位MCU控制芯片,使用更加方便简洁,外设电路简单,是商家比较推崇的充电控制芯片,但基于此次设计需要用到单片机作为控制芯片,所以此种方案不作考虑,但其制作原理值得借鉴。

Maxim 公司生产的锂离子电池充电芯片MAX18 和MAX1758 都可以作为智能充电器的充电芯片,但MAX18的外围电路也更加简单,易于焊接,也更适合初学者的学习研究。

综上所述,选择MAX18作为充电芯片,ATS51作为充电控制芯片,共同完成锂电池智能充电器的研究。系统流程图如下:

图1.2.1-1  系统方框图

加载电源,MAX18自动检测电池电压,判断电池是否为“满”状态,如果“是”则将此状态传递给单片机,触发信号拉低,TLP5621发出低电平信号,MAX18“EN”脚电平被拉低,充电停止,蜂鸣器报警。充电过程中,若电池充满,MAX18发出“满”信号传递给单片机,单片机同样拉低触发信号,TLP5621 发出低电平信号,MAX18“EN”拉低,充电停止,同时发出报警信号。

1.2.2  充电控制芯片的选择[6]

随着科学技术的飞速发展,市场上出现了大量的微控制芯片。单片机作为微型计算机的一个重要分支,应用面很广,发展很快。从单片机诞生到现在,已发展到了近千个机种(百种系列)。目前,单片机正朝着多品种和高性能方向发展,发展方向将是进一步向着CMOS化、低功耗、大容量、小体积、低价格、高性能和外围电路内装化等几个方面。随着单片机集成度越来越高,各种处围功能器件集成在片内成为了可能。除了通常必须具有的CPU、RAM、ROM、定时器/计数器等以外,片内集成的部件还有模/数转换器、声音发生器、DMA控制器、监视定时器、液晶显示驱动器、录像机和彩电用的锁相电路等。这些实现了数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品。由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要有如下特点:

• 有优异的性价比;

• 体积小、集成度高、有很高的可靠性;

• 有很强的控制功能;

• 低电压、低功耗,便于生产的便携产品; 

• 外部总线不仅增加了IC(Inter-Integrated Circuit)还增SPI(SerialPeripheral

Interface)等串行总线方式,进一步缩小了体积,简化了结构;

• 单片机的系统配置和系统扩展比较规范、典型,容易构成各种规模的应用系统。

所以本设计选用美国Intel公司推出的MCS-51系列单片微控制处理器(简称51

单片机)作为控制芯片。其中ATS51具有很强的代表性。

1.3  详细设计[7]

本文提出一种结合智能充电芯片MAX18 和单片机ATS51 的充电器软硬件设计方案。MAX18 功能十分强大,内部电路包括输入电流调节器、电压检测器、充电电流检测器、定时器、温度检测器和主控器。它与单片机强大的控制功能配合使用,使得手机电池充电器更加智能化,通过改良外围电路可以大大减小手机电池充电器的体积,使之携带更加方便。因此该设计方法将在高端手机充电器技术领域占领一席之地,并且引导现有手机充电器的发展趋势。

 

2  系统硬件设计

2.1  主控芯片介绍

2.1.1  MCS-51系列单片机概述及功能说明[8]

单片机又叫做微控制器,它是通过一个芯片上把计算机系统所要实现的功能全部集成一体,即一块芯片就可以成为一台计算机,其体积不仅小而且质量轻、价格还便宜、是学习、开发和应用的理想条件,同时,学习使用单片机是我们了解计算机的原理和结构的最佳选择条件。单片机是最早被用在工业控制领域中,它是由芯片内仅有的CPU专用处理器发展而来的,最早的设计理念是通过将大量外围设备和CPU集成在一个芯片上,使计算机系统体积更小,更容易集成复杂的而对体积要求严格的控制设备当中,本次设计采用的是ATS51单片机,它是一款低功耗,价格低,高性能的8位单片机。

ATS51内部框图如下:

图2.1.1-1  ATS51内部框图

由上图可知ATS51和ATS52一样,都是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,ATS51片内包含有4KB(ATS52 为8KB)可在系统编辑的Flash存储器(ROM)。MCS-51 单片机的指令系统及引脚兼容,功能强大,适合于许多较为复杂的控制应用场合。ATS51的主要性能参数:

• 与标准MCS-51系列产品兼容;

• 4KB(ATS52为8KB)可在系统编辑的Flash 存储器(ROM);

• 工作电压范围:4.0-5.5V; 全静态工作:0-33MHz;

• 三级加密程序存储器;

• 128B(ATS52为256B)片内数据存储器(RAM);

• 32根可编程输入/输出(I/O)口线;

• 2个(ATS52为3个)16位定时计数器;

• 5个(ATS52为6个)中断源;

• 可编程串行UART 通道;

• 低功耗和掉电模式;

MCS-51系列单片机中的各种型号是相互兼容,但引脚的个数和功能是有差异的。ATS51 有3种封装:40脚的双列直插式DIP、44脚的方形PLCC及TQFP。DIP封装如图2.1.1-2所示:                     

 

图2.1.1-2 MCS-51单片机DIP封装图

(1)主电源引脚

VCC(Pin40):电源输入,接+5V 电源

GND(Pin20):接地线

(2)外接晶振引脚

XTAL1(Pin19):片内振荡电路的输入端

XTAL2(Pin20):片内振荡电路的输出端

(3)控制引脚

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平就会使单片机复位。

PSEN(Pin29):外部存储器读选通信号

ALE/PROG(Pin30):地址锁存允许信号

EA/VPP(Pin31):程序存储器的内外部选通,接低电平将会从外部程序存储器读取指令,接高电平就会从内部程序存储器读取指令。

(5)可编程输入/输出引脚

ATS51单片机共有4组8位的可编程I/O口,分别为P0~P3口,每个口有8 位(8 根引脚),共32 根。

PO 口(Pin39~Pin32);8 位双向I/O 口线,名称为P0.0~P0.7

P1 口(Pin1~Pin8):8 位准双向I/O 口线,名称为P1.0~P1.7

P2 口(Pin21~Pin28):8 位准双向I/O 口线,名称为P2.0~P2.7

P3 口(Pin10~Pin17):8 位准双向I/O 口线,名称为P3.0~P3.7

   2.1.2  MAX18芯片介绍[9]

MAX18配合外部的PMOS或PNP晶体管可以组成完整的单节电锂离子(Li+)电池充电电源。MAX18 提供精确的恒压/恒流进行充电。电池电压的调节精度能达到0.75%,不仅提高了电池性能还延长了其使用寿命。充电电流是由来用户设定,采用内部检流,不需外部检流电阻。MAX18能提供用于监视充电状态的输出、输入电源是否与充电电源连接的输出指示和充电电流指示一致的功能。还有其它功能,比如关断控制、可选的充电周期重启后不需重新上电、可选的充电终止安全定时器以及过放电电池的低电流预充。而且将提高产品或设备的性能,缩小产品体积,提高产品的技术含量,提高产品的附加值。MAX18 的关键特性如下:

• 简单,安全的线性充电方式;

• 使用低成本的PMOS或PNP调整元件;

• 输入电压:4.5~12V;

• 内置了检流电阻;

• ±0.75%的电压精度;

• 可变成充电电流;

• 输入电源能自动进行检测;

• 检测电流输出;

• 可编程安全定时器;

• 充电状态LED指示;

• 可选/可调节自动重启;

• 小尺寸uMAX 封装;

充电芯片MAX18内部的电路包括输入电流调节器、充电电流检测器、电压检测器、温度检测器、定时器和主控制器。输入电流调节器是用于电源的总输入电流,包括充电电流与系统负载电流。如果检测到输入电流超过了设定的门限电流时,通过降低充电电流来控制输入电流。因为系统工作是电流变化范围较大,所有需要对电流进行智能检测。MAX18 外接限流型充电电源和P沟道场效应管或PNP三极管,可以对锂电池进行安全有效的快充,器最大的特点是在不使用电感的情况下仍能保持很低的功率耗散,可以实现预充电,具有过压保护和温度保护功能以及为锂电池提供二次保护。

MAX18 可以对所有的化学型的Li+电池进行安全充电,它具有高集成度,集成了大量的基本应用电路,只需要少数外部元件。MAX18 为10 引脚、超薄型uMAX 封装,

器引脚分布如图2.1.2-1.

图2.1.2-1  MAX18的引脚

引脚功能如下:

IN:传感输入,检测输入的电压或电流。

CHG:充电状态指示脚。

EN/OK:使能输入脚/输入电源输出指示脚。

ISET:充电电流调节引脚,通过串接电阻来设置最大充电电流。

CT:安全充电时间设置引脚,接一个时间电容来设置充电时间。

RSTRT:自动重新启动控制引脚,直接接地如果电池电压掉至基准电压阀值以下200mV,

将会重新开启一轮充电周期。

BATT:电池传感输入脚,接单个Li+电池的正极。需旁接一个大的电解电容到地。

GND:地

DRV:外部晶体管驱动器,接晶体管的基极。

CS:电流传感输入脚,接晶体管的发射极。

2.2  单元电路设计

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

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

• 充电过程控制模块:采用专用的电池充电芯片实现对充电过程的控制;

• 充电电压提供模块:自制5V恒压电源模块提供电压,为实现电气电路的安全隔离, 在送给充电模块前加入了光耦隔离器;

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

单片机最小系统是用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。对于ATS51单片机,由于其内部有4K可在线编程的Flash存储器,用它组成最小系统时,不需机外扩程序存储器,只要有复位电路和时钟电路即可,因此,由ATS51单片机组成的最小系统如图2.1.1-1所示:

图2.2.1-1 单片机组成的最小系统

 

单片机的时钟电路,通过连接一个晶振和两个30pF的电容,构成了单片机的时钟电路。晶振是一种能够输出稳定的震荡周期的元件,通过它,单片机才能有了时间的概念。不过晶振并不能的使用,必须配合合适的负载电容,否则会产生错误,或者是使晶

振不能工作。负载电容的选择可以根据单片机的技术文档上的说明来选择。对于51单片机一般选择不大于40pF的瓷片电容。

51单片机的复位电路,是由一个10uF的电容和一个4.7K的电阻组成。为什么要这样接线,原因是在设计51单片机的时候,规定在51单片机的第9引脚为复位功能引脚。当在这个引脚有连续两个以上机器周期(2us以上)的高电平时,这个单片机就会复位。而我们的电路设计是,电容充电的瞬间,是导通,在这个瞬间,电流通过电容器,然后想电阻方向放电,此时,电容的“-”端就能有一个很高的电势,在高于3V的情况下,均可认为是高电平。而电容的充电是有时间的,当选择合适的电容,其充电时间会大于2us,这时,复位的条件就成立了。当然,我们为了能够更稳定的复位,我们经常会把单片机的复位引脚的高电平时间控制得更长一点,通常会达到ms级别。

本单片机模块电路主要是由是以ATS51为核心的最小系统电路,因为其具有广泛的兼容性和强大的及时控制功能,特别适合于许多较为复杂的控制应用场合。蜂鸣器为系统进行报警提示,电路如图2.1.1-2所示:

图2.1.1-2 单片机控制电路

2.2.2电源电路和光耦隔离部分电路设计

耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦,是开关电源电路中常用的器件。耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、用途最

广的光电器件之一。光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。

本次设计选择了TLP5621光耦合器进行电器隔离从而实现51单片机对MAX18的智能控制。

由于MAX18输入电压范围为4.5V-12V。锂电池要求充电方式是恒流恒压,电源的输入需要采用恒流恒压源,一般采用直流电源外加稳压器实现,这里还要使用三端稳压7805,因为其外围电路简单且输出功率稳定。电路如图2.2.2-1所示:

图2.2.2-1 电源电路和光耦隔离部分电路

2.2.3  充电电源充电控制电路设计

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

图2.2.3-1  充电电源充电控制电路

(Ⅰ)电源输入:锂离子电池要求的充电方式是恒流恒压方式,电源的输入需要采用恒流恒压源,一般的,可以采用直流电源加上变压器提供。

(Ⅱ)输出:MAX18通过外接的场效应管提供理电池的充电接口。

(Ⅲ)充电时间的选择:MAX18充电时间的选择是通过外接的电容大小决定的。标准的充电时间为1.5小时,最大不要超过3小时,根据这个标准,可以计算得到外接的电容的容值,如下所示:

定时电容C和充电时间Tchg的关系式满足:

C[nF]=34.33×Tchg[hours]                         (2.2.3-1)

(Ⅳ)设置充电电流:MAX18充电电流在电流的模式下,可以通过选择外接的电阻阻值大小决定。

最大充电电流Imax和限流电阻Rset的关系式满足:

Imax=1400/Rset                                  (2.2.3-2)

当充电电源和电池充电电流达到快充电流的1%,或者是充电时间超出片上预置的充电时间。MAX18能够自动检测充电电源,没有电源时自动关断以减少电池的漏电。启动快充后打开外接的P型场效应管,当检测到电池电压达到设定的门限时进入脉冲充电方式,P沟道场效应管打开时间会越来越短。

2.3  总电路设计

基于MAX18和51系列单片机的强大功能使得设计更加模块化和智能化。如:电池

预充、充电保护、自动断电和充电完成报警提示功能。其各模块电路如下图2.3-1所示:

图2.3-1 智能充电电源总电路原理图

3  系统软件设计

3.1  程序设计概述[10]

充电器的充电过程主要由MAX18和单片机ATS51控制,而单片机主要是对电池充电电源控制作用。主要功能介绍如下:

当MAX18完成充电时,其/CHG 引脚会产生由低电平到高电平的跳变,该跳变引起单片机INT0中断。/GHG 输出为高电平时有以下3 种情况:

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

• 充电完毕;

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

显然前面2 种情况都可以直接通过控制光耦切断充电电源,所以程序上着重

于第三种情况的判断。

本设计的编程采用的是Keil软件,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。用C语言编程,那么Keil几乎是最佳选择其方便易用的集成环境、强大的软件仿真调试工具能令我们事半功倍

3.2程序流程图[11]

图3.2-1 单片机初始化流程图

如图3.2-1,接通电源后,单片机进入初始化状态,自动检测来自MAX18反馈信号,判断是否需要充电?当检测到反馈为“是”单片机发出信号要求光耦TLP5621工作,MAX18开始对电池充电,反之。在此同时单片机不断检测电池状态,当单片机检测到电池充满后返回信号“是”,单片机指示光耦TLP5621 停止工作,MAX18停止对电池充电,同时发出提示警报,提示充电完成。

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

定时器服务子程序[12]。

图3.2-2  单片机控制智能充电电源的控制流程

外部中断0设为边沿触发

程序的简单介绍:中断    第一个下降沿      T0开始计数     第二次下降沿

停止T0计数      读取T0计数器      中断返回。

系统源程序[12]见附录, 程序中的变量及说明如表3.2-1所示:

表3.2-1  变量及说明

变量说明
GATE单片机的P1.2口,控制电源的开关

BEEP单片机的P1.3口,控制蜂鸣器

t_countT0的计数值

int0_count外部中断脉冲
int0 ()外中断0服务程序

timer0 ()定时器0中断服务程序

4  系统电路软、硬件调试

(1)软件测试方法采用先分别调试各单元模块,调通后再进行整机调试的方法,以提高调试效率。首先测试在带有单片机的电路板上编程调试芯片,利用仿真机调试成功后通过编程器将程序写入芯片中,观察ALE口电平变化,确定单片机最小系统正常运行。

(2)智能关断、蜂鸣器报警和智能充电模块联调。测试完成单片机最小系统后,接上电池观察充电指示灯状态,MAX18 芯片本身会熄灭外接的LED 灯,但是为了安全起见,单片机在检测到电池脉冲后,不仅会切断MAX18的供电,还会通过蜂鸣器报警,提醒用户及时取出电池。当充电出错时,MAX18 芯片本身会控制LED 以1.5HZ 左右的频率闪烁,此时不要切断芯片的供电,提示用户充电错误。LED指示灯具体的闪烁含义如下表4-1所示:

表4-1  MAX18充电电路的LED指示灯状态说明

充电状态LED 指示灯

电池或充电器没有安装
预充或快充
充电结束
充电出错闪烁
5  结束语

本设计以MAX18为核心,利用单片机控制元件实现智能手机充电器的设计。在设计过程中,出现的问题和解决方案:

(1)方案论证与选定。第一次做这样的选题,所以存在许多不足之处。通过查阅资料和同学之间的交流,最终选定MAX18 作为智能充电芯片。

(2)硬件制作。由于时间原因,只是利用Protel99se绘制了电路图、PCB图,未能做出实物,比较遗憾。

此次设计的有成功也有失败,失败之处在于选题之后没有对系统进行整体评估,对元件的各方面特点,比如封装、引脚功能更深入的了解,所以在后期过程中会有许多问题出现。方案的选择与论证也没有进行系统的辩证,对市场信息也不够了解。成功之处在于完成了一个之前没有接触过的东西,从方案的选定与论证、软件调试制作,遇到了许多困难,通过不断的查阅资料和修改硬件,完成了课题的设计。总结整个过程充满艰辛和痛苦,但还是挺过来了,收获的是喜悦,是知识。对于本次设计制作,还有很多可以提高的地方,比如利用ADC0809 对电池电压进行采集,再通过LCD1602 显示出来,达到可视化的控制,这样的市场前景也更加广阔,也可以使用SMC401 代替MAX18,因为SMC401的功能更加强大,一般用于笔记本电池充电控制芯片,单从经济性来看MAX18 更加符合大众消费,也适合当今节能减排,创建和谐社会的理论。

在此我谨向敬爱的指导老师和尊敬的学院领导致以最诚挚的谢意!并由衷地感谢关心、帮助和鼓励我完成设计的老师和朋友们。

附录1:总电路原理图

附录2:PCB图

附录3:源程序

/************函数声明************************/

#include

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

/****************主程序函数***************************/

void main()

{  EA=1; //开总中断

TMOD=0x01; //模式1 16 位定时/计数

ET0=1; //开定时器0 中断

IT0=1; //下降沿触发

EX0=1; //开外部INT0 中断

GATE=1; //光耦输出

BP=1; //关闭蜂鸣器

while(1); //主函数循环

}

MAX18智能充电电源.C 文件  MAX18的初始化函数

/***********智能手机电池充电电源***************************/

#include"ats51.h"

sbit GATE = P2^6;

sbit BP = P2^7;

unsigned int time_count,int0_count;

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

void timer0() interrupt 3

{

TR0=0; //停止计数

TH0=(65536-5000)/256;

TL0=(65536-5000)%256; //50ms 计数初值

time_count++;

if(time_count>600) //第一次外部中断产生后3 秒

{

if(int0_count==1) //没有出现第二次外部中断0,则认为是充电完毕

{

GATE=0; //关闭充电电源

BP=0; //开启蜂鸣器报警

}

else

{

GATE=1;BP=1;

}

ET0 = 0; //关闭T0 中断

EX0 = 0; //关闭INT0 外部中断

int0_count = 0;

time_count = 0;

}

else TR0=1; //T0 开始计数

}

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

void int0() interrupt 0

{

if(int0_count==0)

{

        TH0=(65536-5000)/256;

TL0=(65536-5000)%256; //5ms 定时

TR0=1; //启动定时器0 开始计数

time_count=0; //定时器计数清零

}

int0_count++;

}

参考文献:

[1] 彭介华:电子技术课程设计指导,高等教育出版社,1997.6,P2-P5

[2] 沈红卫:基于单片机的智能系统设计与实现,电子工业出版社,2005.9, P32- P42

[3] 何立民:MCS-51系列单片机应用系统设计,北京航天航空大学出版社,1998,P25-P36

[4] 夏路易、石宗义:电路原理图与电路板设计,希望电子出版社,2002.6, P4-P11

[5] 邵贝贝:单片机嵌入式应用的在线开发方法,清华大学出版社,2004, P18-P12

[6] 催建群、杨青、郑世玉:单片机机应用教程,清华大学出版社,2008.3, P4-P7

[7] 钟伟雄:基于ATC51的智能充电器的设计,信息工业出版社,2009.5, P21-P27

[8] 邓兴成:单片机原理与实践指导,机械工业出版社,2009.6, P16-P19

[9] 吴军辉:MCS51单片机制作的充电器,南京农专学报,2007年第6期,P6

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

[11] 周兴华:手把手教你学单片机C程序设计,北京航天航空大学出版社,2009.4, P16-P20

[12] 蹇兴亮,单片机定时中断的编程方法,山东师范大学学报,2008年第3期,P3下载本文

显示全文
专题