毕业设计-基于单片机的智能充电器设计-正文_第1页
毕业设计-基于单片机的智能充电器设计-正文_第2页
毕业设计-基于单片机的智能充电器设计-正文_第3页
毕业设计-基于单片机的智能充电器设计-正文_第4页
毕业设计-基于单片机的智能充电器设计-正文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上目 录专心-专注-专业基于单片机的智能充电器设计摘要:电子技术的快速发展使得各种各样的电子产品都朝着便携式和小型轻量化的方向发展,也使得更多的电气化产品采用基于电池的供电系统。目前,较多使用的电池有镍镉、镍氢、铅蓄电池和锂电池。它们的各自特点决定了它们将在相当长的时期内共存发展。由于不同类型电池的充电特性不同,通常对不同类型,甚至不同电压、容量等级的电池使用不同的充电器,但这在实际使用中有诸多不便。为解决锂离子电池和镍氢/镍镉电池的充电问题,设计了一种以AT89S52单片机为核心的通用智能充电器,介绍了智能充电器的工作原理、设计特点和三种充电模式,详细讨论了系统的硬件

2、构成及软件实现方法。由于采用了高性能的微控制器及高分辨率的A/D转换电路,保证了充电器具有很高的精度。该智能充电器具有检测锂离子电池的状态;自动切换充电模式以满足充电电池的充电需要;充电器短路保护功能;充电状态显示的功能。在生活中更好的维护了充电电池,延长了它的使用寿命。关键词:单片机;A/D转换;智能充电器;硬件构成本课题设计是一种基于单片机的锂离子电池充电器,在设计上,选择了简洁、高效的硬件,设计稳定可靠的软件,详细说明了系统的硬件组成,包括单片机电路、充电控制电路、电压转换及光耦隔离电路,并对本充电器的核心器件MAX1898充电芯片、AT89C2051单片机进行了较详细的介绍。阐述了系统

3、的软硬件设计。以C语言为开发工具,进行了详细设计和编码。实现了系统的可靠性、稳定性、安全性和经济性。关键词:充电器;单片机;锂电池;MAX1898Design of Intelligent Charger Based on Single-chip ComputerAbstract:Electronic technology's fast development causes various electronic products develops toward portable and the small lightweight direction, It also causes th

4、e more electrification products to use based on battery's power supply system. At present, the many use's batteries have the nickel cadmium, the nickel hydrogen, the lead accumulator and the lithium battery. Their respective characteristic had decided they will coexist in a long time develop

5、. Because the different type battery's charge characteristic is different, usually to different type, even different voltage, capacity rank battery use different battery charger, but this has many inconveniences in the actual use. To resolve the lithium-ion batteries and Ni-MH / NI-CD battery ch

6、arging problem , Designed a AT89S52 microcontroller core universal smart charger, describes working principle, design of intelligent charger features three modes of charging and, discussed in detail the system of hardware and software implementation. As a result of the high-performance micro-control

7、ler and high resolution a/d conversion circuit, ensure that the charger has a very high precision. The intelligence battery charger has the examination lithium ion battery's condition; The automatic cut over charge pattern meets when rechargeable battery's charge needs; Battery charger has s

8、hort circuit protection function; The charge condition demonstration's function. The battery charger has made the better maintenance rechargeable battery in the life,and lengthened the rechargeable batterys service life.KeyWords: Single-chip computer;A/D convert;Intelligent battery charger;Hardw

9、are structureLithium Battery Charger Design Based On Single ChipAbstractThis topic design is one kind lithium ion battery charger which is based on Single Chip, in the design, it has chosen succinctly, the highly effective hardware, the design stable reliable software, explained in detail system'

10、;s hardware composition, including the monolithic integrated circuit electric circuit, the charge control electric circuit, the voltage transformation and the light pair isolating circuit, and to this battery charger's core component - MAX1898 charge chip, at89C2051 monolithic integrated circuit

11、 has carried on the detailed introduction. Elaborated system's software and hardware design. Take the C language as the development kit, has carried on the detailed design and the code. Has realized system's reliability, the stability, the security and the efficiency. Key words:Charger; SCM;

12、 Lithium battery; MAX18981 前言1.1 课题背景电子技术的快速发展使得各种各样的电子产品都朝着便携式和小型轻量化的方向发展,也使得更多的电气化产品采用基于电池的供电系统。社会信息化进程的加快对电力、信息系统的安全稳定运行提出了更高的要求。在人们的生产、生活中,各种电气、电子设备的应用也越来越广泛,与人们的工作、生活的关系日益密切,越来越多的工业生产、控制、信息等重要数据都要由电子信息系统来处理和存储。而各种用电设备都离不开可靠的电源,如果在工作中间电源中断,人们的生产和生活都将受到不可估量的经济损失1。对于由交流供电的用电设备,为了避免出现上述不利情况,必须设计一种电

13、源系统,它能不间断地为人们的生产和生活提供以安全和操作为目的可靠的备用电源。为此,以安全和操作为目的的备用电源设备上都使用充电电池。这样,即使电力网停电,也可利用由充电电池构成的安全和操作备用电源,从容地采用其他应急手段,避免重大损失的发生。而对于采用充电电池供电的用电设备,从生产、信息、供电安全角度来说,充电电池在系统中处于及其重要的地位2。目前,较多使用的电池有镍镉、镍氢、铅蓄电池和锂电池3。它们的各自特点决定了它们将在相当长的时期内共存发展。由于不同类型电池的充电特性不同,通常对不同类型,甚至不同电压、容量等级的电池使用不同的充电器,但这在实际使用中有诸多不便。同时,具体到生活方面,随着

14、社会的快速发展,电子产品小型化、便携化也使得充电电池越来越重要,锂离子电池有较高的比能量,放电曲线平稳,自放电率低,循环寿命长,具有良好的充放电性能,可随充随放、快充深放,无记忆效应,不含镉、铅、汞等有害物质,对环境无污染,被称为绿色电池4。基于这些特性,所以锂电池得到了迅速的发展和广泛的应用。锂电池充电器是为锂离子充电电池补充能源的静止变流装置,其性能的优劣直接关系到整个用电系统的安全性和可靠性指标5。1.2 设计目的本设计围绕二次电池的寿命进行讨论。二次电池在日常生活中是随处可见,锂电池有数多优点,广泛应用在各类电器上,如果在使用过程中使用不当会对电池造成严重的损害,尤其在充电过程中会严重

15、降低电池的使用寿命。此次设计讨论在充电过程中实现智能充电,充分保护电池,增加电池的使用次数,延长电池的使用年限,实现电池的安全使用。本文介绍一种基于单片机的智能充电器的设计方法。该充电器可以实时采集电池的电压和电流,并对充电过程进行智能控制。它可以自动计算电池的已充电量和剩余的充电时间,也可以改变参数来适应各种不同电池的充电。系统中的管理电路还具有保护功能,可防止电池的过充和过放对电池造成。另一方面,从电池技术特性、充电技术、充电器电路结构、充电器典型电路和电池保护等方面,多角度地阐述了充电技术发展和应用。1.3 设计任务1、能进行对充电电池的状态进行检测判断,包括电池电压、电流及电池温度的检

16、测。2、单片机控制电池的充电方式,3、单片机的看门狗电路、外接晶振电路设计。4、解决充电时间长、充电效率低的问题。5、改善充电控制不合理,而造成过充、欠充等问题,提高电池的使用性能和使用寿命。6、通过加强单片机的控制,简化外围电路的复杂性,同时增加自动化管理设置,减轻充电过程的劳动强度和劳动时间,从而使充电器具有更高的可靠性、更大的灵活性,且成本低。2 设计的主要元器件介绍2.1 硬件电路主要芯片单片机AT89S52,它是美国ATMEL公司生产的低电压,高性能COMS 8位单片机,片内含4KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(RAM),同时片内置通用8位

17、中央处理器(CPU)和FLASH存储单元,全面兼容标准的MCS-51指令系统,可适用于众多的控制领域6。8051是MCS-51系列单片机的典型产品, 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,其结构图如图2.1所示7。图2.1 8051 内部结构图2.2是MCS-51系列单片机的内部结构示意图:图2.2 MCS-51结构框图2.2 模数转换器 CS5552芯片模数转换器 ,即A/D转换器,或简称ADC,通常是指一个将模拟信号转变数字信号为的电子元件。通常的模数转换器是将

18、一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义8,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好9。最后,我们选择24位精度高精度串行A/D转换器。CS5522是Cirrus Logic公司生产的24位高精度串行A/D转换器,其引脚排列如图2.3所示。它含有多通道的多路编程增益

19、放大器,数字滤波器以及片内系统校准和自校准和自校准标准电路。CS5522内含通道选择寄存器、配置寄存器和增益寄存器。通过单片机对CS5522寄存器的读写控制,可以实现多通道、高精度的A/D转换。CS5522的主要性能如下10:(1)、24位A/D转换精度; (2)、低输入电流(100µA),内带一个斩波放大器;(3)、2个差分输入模拟通道,每个通道都可以进行自校准和系统校准;(4)、单/双极性缓冲输入,量程有25mv、55mv、100mv、1v、2.5v、5v等;(5)、有单片机通信的三线接口或四线接口;(6)、低功耗:5.5mW。需要注意的是,在A/D转换数据结束后,需要先写8个1

20、给A/D,使其返回到命令状态,再用24个脉冲读出转换数据,如果先写8个0给A/D,则A/D转换器不是返回命令状态而是继续进行A/D转换9。其读写操作时序如图所示。图2-12 CS5522 A/D 转换器读写操作时序2.3 温度传感器PT100Pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点11。 铂热电阻的线性较好,在0100摄氏度之间变化时,最大非线性偏差小于0.5摄氏度。铂热电阻阻值与温度关系为:图2.3 CS5522引脚排列及说明(1)-200t0时,RPt100=100*1+At+B*t2+C*t3*(t-100) ;(2)0t850时,RPt100=100*1+At

21、+B*t2 ;其中,A = 0.;B = -0.;C = 0.42735。可见Pt100在常温0100摄氏度之间变化时线性度非常好,其阻值表达式可近似简化为:RPt=100(1+At),当温度变化1摄氏度,Pt100阻值近似变化0.39欧12。 3 硬件电路设计经过前面对充电器原理、AT89S52的总体了解和掌握以及对各种元器件和电路图的分析和比较后,现在就可以开始进入硬件电路的设计了。3.1 电源电路的设计在本次的设计中,要供电给AT89S52和LCD显示模块两部分,而一个LM7805的输出电流不足,所以本人打算将89S52和显示模块分别供电,所以实际电路中用到了两片7805。下面就一个电源

22、电路给出设计方案,另一个同样原理,其原理图如图3.1所示。图3.1 5V的电源电路设计原理图3.2 测温电路部分电池温度检测电池在充电末期,负极发生氧复合反应产生热量,使电池温度升高12。由于电池温度升高将导致充电电流增大,为控制充电电流,可在电池外壳上设置温度传感器或电阻等温度检测元件。当电池温度达到设定值时,电池充电电路被切断。图3.2即给出了电池温度检测简图和电池温度与充电时间的关系图13。图3.2 电池温度检测简图传感器电路包括传感器测量电桥和放大电路两部分,其电路结构如图3.3所示。图3.3 传感器放大电路注:R2、R3、R4和Pt100组成传感器测量电桥,为了保证电桥输出电压信号的

23、稳定性,电桥的输入电压通过TL431稳至2.5V。从电桥获取的差分信号通过两级运放放大后输入单片机14。电桥的一个桥臂采用可调电阻R3,通过调节R3可以调整输入到运放的差分电压信号大小,通常用于调整零点15。 放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图 1-2所示,前一级约为10倍,后一级约为3倍。温度在0100度变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压Av对应升高16。3.3 模数转换部分CS5522AT89S52P1.0P1.1P1.2P1.3CSSD1SD0SCLK为了便于单片机

24、对CS5522的控制,可将CS5522的CS与单片机直接相连,为低电平时,单片机可以对CS5522进行相应的读写控制17。CS5522与单片机的接口如图3.4所示。图3.4 CS552与单片机接口图利用AD采集数据,进行温度与电压采集,从而控制充电器的充电电流大小,判读充电器是否停止充电。3.4 充电器的充电指示部分通过对充电器的模拟采集信号的判断,可以判断出是充电状态,还是停止充电状态,其充电方式指示电路如图3.5所示。图3.5 充电器充电指示电路图3.5 充电电压显示部分 充电电压显示,该部分其实就是一个AD转换,原理图如图3.6所示。图3.6 充电电压显示电路图中的两组电容,其作用是滤波

25、。3.6 恒流恒压电路恒流恒压电路是智能充电器的关键部分,图3.7是其电路原理图。恒流恒压电路由SR12单片机片内模拟电路模块和片外的MOSFET开关管、肖特基二极管、滤波电感、滤波电容等器件组成。其结构框图如下:图3.7 电池充电电路图总电路(总电路实际上是由第5部分的充电电压和下图构成)结构如图3.8所示。图3.8 总电路结构图4 软件设计4.1 系统程序流程图为了方便程序的设计,使自己在设计过程中做到思路清晰,设计起来游刃有余。这里首先画出了程序流程图,后面根据次流程图具体设计程序,需要具体分析,这次设计课题的主要内容是在充电器的充电过程中,采集参数,进行电压、电流、温度的实时显示。其主

26、流程图设计如图4.1所示。YesNoYes关闭T0中断和外部中断充电出错t _count +关闭T0计数t _count >600?定时器0服务子程序int 0_count=1?充电完毕,蜂鸣器报警,切断电源结束No启动T0计数,同时进行A/D转换,显示电压初始化开始图4.1 主程序流程图4.2 主程序/防止BattCharger.h被重复引用的h文件#ifndef_BATTCHARGER_H #define_BATTCHARGER_H#include <reg51.h>sbit GATE = P30;sbit BP = P31;uint t_count,int0_count

27、;#endif/*主程序*/#include "reg52.h"#include "ABSACC.h"#include "intrins.h"#include "BattCharger.h"#define uchar unsigned char#define uint unsigned int#define PORTA4 XBYTE 0x7F8Fuchar tab=0xc0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0;uchar tab2=0xC7,0xCB,0xD3,0xF3;uchar SEGP

28、T2=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;unsigned int Num; unsigned int getdata; uchar keydata;uchar selectkey;unsigned int date;sbit CLOCK=P35;uint tt=0;/* 延时子程序 */void delay(Num) unsigned int ii; for(ii=0;ii<Num;ii+) /*定时器0和中断0控制充电过程*/* 定时器0中断服务子程序 */vo

29、id timer0() interrupt 1 using 1TR0 = 0;/ 停止计数TH0 = -5000/256;/ 重设计数初值TL0 = -5000%256;t_count+;if (t_count>600)/ 第一次外部中断0产生后3sif (int0_count=1)/ 还没有出现第二次外部中断0,则认为充电完毕GATE = 0;/ 关闭充电电源BP = 0;/ 打开蜂鸣器报警 else/ 否则即是充电出错GATE = 1;BP = 1;ET0 = 0; / 关闭T0中断EX0 = 0; / 关闭外部中断0int0_count = 0;t_count = 0;elseTR

30、0 = 1;/ 启动T0计数/* 外部中断0服务子程序 */void int0() interrupt 0 using 1if (int0_count=0)TH0 = -5000/256;/ 5ms定时TL0 = -5000%256;TR0 = 1;/ 启动定时/计数器0计数t_count = 0;/ 产生定时器0中断的计数器清零int0_count+;/*定时器1和中断1控制AD转换*/* 定时器1中断服务子程序 */void time1(void) interrupt 3 CLOCK=CLOCK; /* 外部中断1服务子程序 */void int1(void)interrupt 2 get

31、data=0; date=0; getdata=PORTA4; date=getdata*100/51; tab0=SEGPT2date/100-0x80; tab1=SEGPT2date%100/10; tab2=SEGPT2date%10; tab3=SEGPT20; TR0=0;/*显示子程序 */void DISP(void) unsigned int i; for(i=0;i<5;i+) P2 = 0; P1 =tabi; P2 =tab2i; delay(255); /* 初始化 */void init()EA = 1;/ 打开CPU中断PT0 = 1;/ T0中断设为高优先

32、级TMOD = 0x01;/ 模式1,T0为16位定时/计数器ET0 = 1;/ 打开T0中断BP = 1;/ 关闭蜂鸣器int0_count = 0;/ 产生外部中断0的计数器IT0 = 1;/ 外部中断0设为边沿触发EX0 = 1;/ 打开外部中断0GATE = 1; / 光耦正常输出电压清零void main(void) TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET1=1;init(); while(1) DISP(); PORTA4=0x00; IT1 =1; EX1=1; 5 软件仿真与调试5.1 电源仿真电源设计部分输出5V电压,

33、仿真时用multisim软件,画好电路图之后运行,打开示波器便显示电压值,仿真结果如图5.1所示。图5.1 电压仿真结果5.2 充电器两端的电压显示部分充电器两端的电压显示部分(即AD转换部分)。仿真调试步骤如下:(一)在Keil程序里边新建项目,名称为“充电器显示”,并选择单片机型号为AT89C52。(二)执新建文件,输入源程序保存为充电器显示.C,并保存,然后将源程序添加到项目中。(三)执行菜单命令“Project”à“Options for Target Target 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(四)编译源程序,得

34、到HEX”文件。(五)在proteus仿真平台上建立仿真原理图,并将程序上载到虚拟芯片上调试及运行15。结果如图5.2所示。要让输出口电平发生转换,采用了两种方法。一种是用延时的办法。初始设B0口为0,二极管不亮,经过一定时间的延时后,B0口变为1,二极管发光。再过相同时间,B0口再为0按上述步骤循环,就可以实现二极管的亮灭了。编写程序,由于这里采用的是C语言编写,程序相对来说比较简单,延时程序如下:void delay_1ms(void) unsigned int i; for(i=1;i<(unsigned int)(xtal*143-2;i+) ;xtal是晶振频率,这里采用的是7

35、.3728MHz,从理论上讲,应出现1ms左右的延时。编译器上通过以后,可以进行程序的下载。选中“Flash”存储器,选择保存的路径。二极管出现了快速的亮灭交替显示。将143设置为,将周期提高到近1s,实际运行时,小灯的闪动明显变慢,基本达到了预期目标。第二种利用中断。主程序将B0口置1,使小灯发亮。在timer0中设置计数操作,当到达一定的数值时,B0口跳为0。程序跳到timer0中运行,实现中断。然后跳出中断,每计数到一固定的数值时,程序就执行中断操作。第一次运行时,小灯发亮,但不闪烁。检查电路,接线完好,程序是编译通过的,语法上不可能有毛病。程序设计的思想也应该没有错误。反复读写程序,结

36、果发现没有调用看门狗复位程序。看门狗可以保证程序执行过程中不会复位,而当程序陷入死循环后,能保证在允许的时间里复位。把看门狗程序放在timer0里面,重新下载,就发现小灯可以闪烁了。(二)灯的循环显示这一实验主要实现在B口接8个小灯,让小灯从B0到B7逐个发亮。通过上面的两种方法的比较,当小灯个数较多时,对逐个实现延时比较麻烦。而采用中断实现时,初设小灯全部发亮,当每计数到一固定时间时,点亮1个灯,8个灯全亮时作为总的循环时间,用for语句实现,里面用switchcase语句分为8种情况。设置的时间不同,其循环时间就不一样。经过运行,小灯的显示达到了预期目标。在一段时间里,用发光二极管作为主要

37、输出工具,本人在指导老师和同学的大力帮助下,实现了一个又一个实验,期间出现了不少问题,但最终都顺利得到了解决。为最后实现LCD的显示迈出了重要的一步。 图5.2 充电器两端的电压显示结果6结论该智能电池充电器能有效地解决电池和充电器的兼容问题, 从而避免了因电池化学特性不同而给电池充电造成的各种麻烦。另外, 除了对电池电压的检测外, 为了更好的保护电池, 该充电器充电时还可对电池的温度及充电时间进行监测以作为辅助或后备保护方案。在毕业论文接近末尾之时,我要衷心地感谢我们李秀圣老师,在我整个毕业设计过程中,李秀圣老师给了我很大的帮助和细心的指导。在一个多月的毕业设计过程中,当我遇到了困难和问题时

38、,当我们需要他的时候,李秀圣老师总是第一时间出现在我们面前,他让我们学会了以前在课堂上没有的东西。 另外,我还要特别感谢我所有的搭档,是他们给了我巨大的勇气和战胜困难的信心,在毕业设计中我们合作的很愉快,当我们遇到困难时我们一起去探讨和研究,一起去战胜它,大家也一起分享排除问题和困难后的喜悦。 同时大家也发扬我们慷慨激扬精神:特别能吃苦,特别能攻关,特别能战斗,特别能奉献 。 在此我表示真诚的感谢! 经过这次毕业设计,使我觉得不论从理论知识还是从实际操纵中都学到了不少知识,我想归纳起来,主要有以下四个方面: 1、经过这次毕业设计,它让我接触更多平时没有接触过的科学仪器设备、元器件以及获得相关的仪器调试经验,同时我也发现自己在这方面很多不足之处。体会到理论知识对实践有很大的指导作用。 2、学会了高效率的查阅资料、运用工具书、利用网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论