基于AT89C51的电动车快速充电器设计.doc_第1页
基于AT89C51的电动车快速充电器设计.doc_第2页
基于AT89C51的电动车快速充电器设计.doc_第3页
基于AT89C51的电动车快速充电器设计.doc_第4页
基于AT89C51的电动车快速充电器设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计(论 文)题 目 基于AT89C51的电动自行车快速充电器设计 系 别:电信系专 业:电子信息工程班 级:KT883-1学 号:2008K830103学生姓名: 屈发富指导老师: 黄晓林 罗五四 完成日期:2012年6月3日 摘要本文介绍的一种脉冲控制的快速充电方法,所谓快速充电就是为了能够最大限度地加快蓄电池的化学反应速度,缩短蓄电池达到满充状态的时间,同时,保证蓄电池正负极板的极化现象尽量地少或轻,提高蓄电池使用效率。硬件设计包含冲电主模块、单片机(本设计采用AT89C51)最小系统模块、电源模块、模数转换模块、外部分压电路模块等;软件设计包含电压检测,充满自动断电,充满报警。此设计系统简单明了,工作可靠,制作简单等优点。关键词:AT89C51,快速充电器,电动自行车 ABSTRACTThis paper introduces a kind of pulse fast charging control method, the so-called fast charging is to maximize the speed up the battery chemistry speed, shorten battery reach full charge of state time, meanwhile, ensure the polarization phenomenon of positive and negative battery plate as fewer or light, improve the efficiency of the battery. Hardware design includes blunt electricity main module and single-chip microcomputer (the design USES AT89C51) minimum system module, the power modules, signal sampling and amplifier module, analog conversion module, etc.; The software design includes voltage detection, full of automatic without electricity, full of alarm. This design system simple, reliable, easy fabrication, etc.Keywords: AT89C51, quick charger, electric bicycle 目录第一章 概论11.1论文研究的背景11.2电动自行车目前所用的电池以及电池的发展趋势21.2.1 镍氢蓄电池(Ni-MH)21.2.2 锂离子蓄电池21.2.3 铅酸蓄电池21.3论文研究的意义31.4本课题的基本内容4第二章 系统设计52.1 基本理论52.1.1电池极化52.1.2 蓄电池容量52.1.3 整流滤波电路62.2 充电方法62.2.1 铅酸蓄电池传统的充电方法62.2.2 铅酸蓄电池的快速充电方法72.3方案的选择82.4充电过程92.4.1 预充电102.4.2快速充电102.4.3补足充电102.4.4浮压充电10第三章 硬件电路设计113.1控制器选择113.2电路总体设计123.3单片机最小系统模块133.4充电模块的设计143.5 电压检测模块153.6 数码管模块163.7 电源模块173.8 LED指示模块183.9 外部分压电路18第四章 软件系统设计194.1 系统总体设计194.2电压采集系统的设计214.3 部分模块程序段显示224.3.1 AD延时程序段224.3.2 AD初始化程序22第五章 软件与硬件的调试235.1 程序的调试235.2 硬件的调试235.3 加载后的改进23第六章 结论25结束语26致谢27参考文献28附录.28第一章 概论1.1论文研究的背景2004年,中国生产的电动自行车占世界总产量的60%,中国的电动自行车,无论是产量还是技术含量,在世界上都走在了前列,在未来的发展过程中如果能够有效的突破瓶颈,在巩固国内市场的同时,大力发展国际市场,前途一片光明。2011年、2012年不断高涨的石油价格给发达国家带来了一道新的风景:这就是自行车的回归和电动自行车的应用。越来越多的消费者认识到:汽车不是唯一的、最佳的交通工具。按照2012年的油价,一辆普通轿车月行驶1000公里,汽油费高达800元以上。从1997年开始,世界许多国家政府都已适当限制汽车、摩托车,日本、美国、法国等国家通过法律明确电动自行车作为一种特殊自行车的地位鼓励人们积极使用。2005年,中国生产的电动自行车,有30%出口到几十个国家和地区。各种迹象表明,世界将成为中国的电动自行车生产的巨大市场,而中国将是世界电动自行车的最大工厂1 姚胜华 汽车电器与电子控制技术 华南理工大学出版社 2010。 理由: 1中国自行车产业有较强的竞争力,在国际市场地位稳固,产品具有相当信誉,为电动自行车的出口奠定了很好的基础。 2中国电动自行车经过十几年的发展,在技术上处于领先地位,可以适应各个国家不同的技术要求。 3中国已经建立了丰厚的电动自行车零部件的生产基地和多达600家以上的整装企业,能够满足世界各地的需求。 5几十年来,中国在自行车出口的过程中,建立较为完善的国际营销网络,为电动自行车的出口提供了优越的条件。6. 电动车是目前世界上唯一能达到零排放的机动车,由于环保的要求,加之新材料和新技术的发展,电动车进入了发展高潮。电动车作为绿色交通工具,将在二十一世纪给人类社会带来巨大的变化。1.2电动自行车目前所用的电池以及电池的发展趋势目前能够被电动自行车采用的有以下四种动力蓄电池,即阀控铅酸免维护蓄电池、胶体铅酸蓄电池、镍氢蓄电池和锂离子蓄电池。1.2.1 镍氢蓄电池(Ni-MH) 正极:Ni(OH)2+OH-= NiOOH+H20 +e- (1.1) 负极:M+H2O+e=MHab+OH-Ni(OH)2+M=NiOOH+MHab (1.2)优点:比能量高(一次充电可行使的距离长);比功率高,在大电流工作时也能平稳放电(加速爬坡能力好);低温放电性能好;循环寿命长;安全可靠,免维护;无记忆效应;对环境不存在任何污染问题,可再生利用,符合持续发展的理念。但是由于Ni-MH蓄电池的技术未臻成熟,价格贵,单体电池电压低,使用时串联电池个数多,而且均匀一致性较差,限制了蓄电池组实际可使用的寿命。尤其是镍氢电池在高温时自放电率会增高,造成电容量下降的缺点。1.2.2 锂离子蓄电池比能量大;比功率高;自放电小; 无记忆效应;循环特性好;可快速放电,且效率高;工作温度范围宽;无环境污染等,因此有望进入21世纪最好的动力电源行列,但是因内含锂活性物质,易产生化学作用,遇火、氮、酸或氧化剂时,可能会有爆炸或着火危险等安全性问题成为影响锂离子蓄电池在电动自行车上应用的主要制约因素。1.2.3 铅酸蓄电池电极主要由铅及其氧化物制成,电解液是硫酸溶液的一种蓄电池。荷电状态下,正极主要成分为二氧化铅,负极主要成分为铅;放电状态下,正负极的主要成分均为硫酸铅。充电:2PbSO4+2H2O=PbO2+Pb+2H2SO4(电解池) (1.4) 放电:PbO2+Pb+2H2SO4=2PbSO4+2H2O(原电池) (1.5)优点:铅酸电池为数量最多。铅酸电池的价格最低,也最常用,中国是全世界铅酸电池最大的生产国。其含污染的成分比较少,可回收性好2 朱松然 铅酸蓄电池技术第二版 机械工业出版社 2004。 缺点:是比容小。也就是说,在同样的容量下,电池重量和体积都大。目前的铅酸电池基本上是由浮充类型的电池发展而来的。浮充电池不适应快速充电和大电流冲电。现在的电动车上绝大多数装的是铅酸蓄电池,因为铅酸蓄电池成本低,性价比高。1860年,法国的普朗泰发明出用铅做电极的电池。这种电池的独特之处是,当电池使用一段使电压下降时,可以给它通以反向电流,使电池电压回升。因为这种电池能充电,可以反复使用。四种电池的特点比较如表1.1所示。表1.1 四种电池的比较类别优点缺点锂离子电池循环寿命大,比能量大,无记忆效能,体积小,重量轻,自放电小成本高,不能大电流放电,需要保护电路控制镍氢电池循环寿命大,比能量大,重量轻,体积小成本高,有记忆效能,自放电大镍镉电池成本低,自放电小循环寿命短,有较强的记忆效能,重量重,体积大铅酸电池无记忆效应,成本低循环寿命短,比能量小,体积大,重量重1.3论文研究的意义随着目前电动自行车越来越受到人们的喜爱,而作为电动自行车的核心部件的电池以及充电器也是大多数人们关注。消费者在买电动自行车的时候也会考虑充电是否快速,电池寿命是否长久,这些都是影响消费者购买电动自行车的因素,所以完善解决电动自行车的快速充电并且保证电池的完好,对电动自行车的快速发展起到很大的促进作用。因此,研究一种智能快速充电器,时刻检测电池的电压,温度,确保电池一直处于较好的充电状态,避免在充电过程中,出现电池极化,提高电池的效率与寿命。1.4本课题的基本内容 第一:对快速充电方案的设定 第二:控制器的选择及控制电路 第三:电压检测电路及程序 第四:硬件与软件的调试第二章 系统设计2.1 基本理论2.1.1电池极化当电池有电流通过,使电极偏离了平衡电极电位的现象,称为电极极化。通电前和通电后电极电位的差叫作过电位。平衡电极电位是一个没有电流流过时,静止的、相对理想化的状态时的一个电极电位。电池极化就是由于电流的流动,而打破静止状态后,实际电极电位偏离了平衡电极电位的现象。阳极电流产生的电极极化叫作阳极极化;阴极电流产生的电极极化叫阴极极化。在电极单位面积上通过的电流越大,偏离平衡电极电位越严重。因此想要快速充电,就会很容易发生电池极化3 张惠 冯英 电源大全 西南交通大学出版社 1993年。蓄电池充电过程中的极化现象对蓄电池的负面影响主要有以下几个方面:(1)极化产生的过电压阻碍充电电流增加,使电池化学反应速度减慢。(2)加剧化学反应的水解过程,产生大量气体,延缓电池的充电过程,而且对极板有严重的腐蚀作用。(3)电池内部水解产生大量热量使电解液温度升高,当温度升高到一定程度时会引起极板变形损坏。极化所产生的过压、气泡、温升、能耗等对蓄电池都是极为不利的。此外,充电电流越大,极化现象越严重,如果不设法消除或缓和极化现象就难以实现大幅值恒流充电。这也是长期以来一直用小电流进行常规充电的原因,只有消除极化才有可能达到快速充电的目的。2.1.2 蓄电池容量电池容量(C)是蓄电池使用过程中的一个重要参数,是指蓄电池充足电后放电到终止电压时所输出的电量,单位为Ah、mAh。2.1.3 整流滤波电路整流电路是利用二极管的单向导电性将正负变化的交流电压变为单向脉动电压的电路。在交流电源的作用下,整流二极管周期性地导通和截止,使负载得到脉动直流电。在电源的正半周,二级管导通,使负载上的电流与电压波形形状完全相同;在电源电压的负半周,二极管处于反向截止状态,承受电源负半周电压,负载电压几乎为零。4 王兆安 电力电子技术 机械工业出版社 2007年 滤波电路尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低,波形变得比较平滑。以上2个合用,就是为了得到波形平直的直流电,通常用在交流变直流电源的转换中。2.2 充电方法铅酸蓄电池的充电方法主要分为传统的充电方法和快速充电方法,传统充电方法主要是采用小电流慢充的方式,将完全放电状态的电池恢复至完全充电状态大约需要20H的充电时间。快速充电法旨在缩短铅酸蓄电池的充电时间,提高充电速效率,并提高铅酸蓄电池的循环使用次数,是目前充电领域研究和应用的热点之一5 王鸿麟 钱建立 周晓军智能快速充电器设计与制作 科学出版社 2001。2.2.1 铅酸蓄电池传统的充电方法 1)恒流充电 恒流充电是用一个电流源对电池充电,充电电流在一个阶段保持恒定。它包括单一恒流充电和分阶段恒流充电, 2)恒压充电 恒压充电是保持电池端电压恒定值的充电方法。25V。恒压充电的时候,充电初始电流很大。随着充电的进行,蓄电池电势和电解液密度逐渐上升,在充电末期,充电电流较小。3)恒压限流 首先采用恒流充电,限制充电的初始充电电流,等电池电压上升到恒压值,再转入恒压充电,这个时候充电电流逐渐减小,直到充电结束。两阶段充电的过程中,电解液产生的气泡较少,可以节省电能、降低蓄电池的升温,避免损坏电池的极板,是一种有效可行的充电方式。2.2.2 铅酸蓄电池的快速充电方法 1)分级定流冲电法 在充电的初期采用较大的充电电流,经过一段时间后改用较小的电流,至充电后期改用更小的电流。分级定流充电法如图2.1所示。图2.1 分级定流充电法 2)脉冲式充电法 脉冲充电方式首先是用脉冲电流对电池充电,然后让电池停充一段时间,如此循环。脉冲式充电法如图2.2所示。tI图2.2 脉冲式充电法如图所示3)变电流间歇充电法 是将恒流充电段改为限压变电流间歇充电段。充电前期的各段采用变电流间歇充电的方法,保证加大充电电流,获得绝大部分充电量。充电后期采用定电压充电段,获得过充电量,将电池恢复至完全充电态。通过间歇停充,使蓄电池经化学反应产生的氧气和氢气有时间重新化合而被吸收掉,使浓差极化和欧姆极化自然而然地得到消除,从而减轻了蓄电池的内压,使下一轮的恒流充电能够更加顺利地进行,使蓄电池可以吸收更多的电量6 马忠梅 单片机外围电路设计北京航空航天大学出版社2005。2.3方案的选择本文设计我选择的是脉冲式充电法 。脉冲充电方法的理论基础是通过在充电电流中叠加一定频率、宽度、高度的负脉冲或短时问的中途停充电,这样一冲一放其目的是降低蓄电池的极化电压。 由于极化电压是影响充电速度的重要因素,因此,要实现快速充电,必须设法去除极化电压对铅酸蓄电池充电的影响。由于极化电压的大小是跟随充电电流的变化而变化的,当停止充电时,电阻极化消失、浓度差极化和电化学极化亦逐渐减弱。如果为阀控密封铅酸蓄电池提供一条放电通道让其反向放电,则浓度差极化和电化学极化将迅速消失,同时电池内部温度也因放电而降低。因此,在阀控密封铅酸蓄电池的充电过程中适时的暂停充电,或者适当的加入放电脉中,就可以消除蓄电池的极化现象,实现脉冲快速充电。由220V交流电经整流、滤波后,经脉冲变压器降压送给蓄电池进行充电。系统可以分为控制部分和信号检测部分。控制部分则包括单片机模块、电源通断控制模块、开关管驱动模块三个基本部分。信号检测部分充电电压测量模块组成,电压测量模块测量蓄电池充电时蓄电池的实时电压。实时信号反馈给控制器,从而控制充电电压大小。当蓄电池的电压达到额定值后,说明蓄电池已经充满电,单片机控制开关,断开电源,停止充电并且指示灯亮,来提示你,电池已充满。2.4充电过程本文设计的充电过程为四段,预充电快速充电补足充电浮压充电。通过这四段充电,可以根据电池剩余的电量来进行充电。充电过程如图2.4所示。开始预充电浮压充电结束补足充电快速充电图2.4 充电过程图2.4.1 预充电 在一个电池处于深度放电状态下,开始用较小的电流进行充电,这样可以保护电池,反之,一上来就快速充电会缩短电池的寿命。开始进行小电流充电,当电池电压上升到一定值(这个值由单片机设定控制)后,就进行脉冲充电。2.4.2快速充电 开始充电时采用大电流,随着电池容量的增加,电压逐渐升高,电流开始降低,使充电电流的脉冲幅度和宽度随蓄电池端电压的升高而减小。这样可以消除充电接近充满时易出现的振荡现象及过充电问题。2.4.3补足充电 快速充电终止后,电池并不一定充足电,为了保证电池充入100的电量,对电池还要进行补足充电。在脉冲快速充电过程中,电池电压上升较快,当电压上升至补足充电电压阈值时(这个值由单片机设定控制),转入补足充电阶段。补足充电为恒压充电,可使电池容量快速恢复。此时充电电流逐渐减小,当电流下降至某一阈值时,转入浮充阶段。2.4.4浮压充电 此阶段主要用来补充蓄电池自放电所消耗的能量,只要电池接在充电器上并且充电器接通电源,充电器就会给电池不断补充电荷,这样可使电池总处于充足电状态。此时也标志着充电过程已结束。第三章 硬件电路设计3.1控制器选择 单片机的结构图如图3.1所示。AT89C51是一种带4K字节FLASH存储器)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案7 何立民 单片机高级教程 航空航天大学出版社2004。特性: .与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位8 陈贵银 单片机原理及接口技术 机械工业出版社 2011。图3.1 AT89C51引脚图3.2电路总体设计根据充电的原理及课题的要求,我设计的快速充电器的总体设计图如图3.2所示。电压采样整流滤波高频变压器U3842单片机最小系统模块A/D模数转换模块蓄电池交流电电源模块指示电路图3.2总体设计图首先是220V的交流电进行整流滤波,变成直流电,再通过高频变压器,先将直流电变成交流电,再变成直流电变成铅酸电池所需的48V电压,通过蓄电池的2端来采集电压,电流数据,通过A/D转换,将模拟量转换成数字量,传输给单片机(AT89C51),单片机根据所传数据做出简单的判断,并把电压,电流信息显示在数码管上,从而来选择充电的时段。3.3单片机最小系统模块 单片机最小系统模块如图3.4所示。单片机采用的是AT89C51型芯片,通过在18脚跟19脚接入晶振和瓷片电容来为单片机提供时钟基准,单片机的复位电路为上电复位,电源通过10K的电阻加到单片机的复位脚9脚上一个高电平复位信号,RC常数远大于2个机械周期的时间(即2mS),即单片机在加电后,单片机能完成复位。P0口通过排阻RS1与电源相连,为P0口的每个引脚接了一个1K的上拉电阻。P0口与ADC0809的数据口相连,用于电压和电流信号的读取及取样。单片机的地址锁存输出引脚经过四分频后为ADC0809提供时钟信号,ADC0809的地址线为P2.7,光电耦合器的控制脚为P2.4-P2.6, ADC0809的读写控制引脚为P3.6(WR)和P3.7(RD),P3.2(INT0)用于接收来自ADC0809模数转换结束的中断 9 华成英 童诗白模拟电子技术基础高等教育出版社2006。图 3.4 单片机最小系统模块3.4充电模块的设计充电模块主要把220V的交流电通过整流滤波,在经过高频变压器降压得到电池充电所需的额定电压。其中电源充电由UC3842控制,UC3842是一种型性能优良的电流控制型脉宽调制芯片, 采用固定工作频率脉冲宽度可控调制方式,共有8 个引脚,各脚功能如下:脚是误差放大器的输出端,外接阻容元件用于改善误差放大器的增益和频率特性;脚是反馈电压输入端,此脚电压与误差放大器同相端的2.5V 基准电压进行比较,产生误差电压,从而控制脉冲宽度;脚为电流检测输入端, 当检测电压超过1V时缩小脉冲宽度使电源处于间歇工作状态;脚为定时端,内部振荡器的工作频率由外接的阻容时间常数决定,f=1.72/(RTCT);脚为公共地端;脚为推挽输出端,内部为图腾柱式,上升、下降时间仅为50ns 驱动能力为1A ;脚是直流电源供电端,具有欠、过压锁定功能,芯片功耗为15mW;脚为5V 基准电压输出端,有50mA 的负载能力10 周志敏 周纪海充电器电路设计与应用 人民邮电出版社 2005年。图3.5中C1、V1V4、C2组成滤波整流电路,变压器T为高频变压器,V5、R2、C11组成功率开关管V7的保护电路,NF为供给IC电源的绕组。单端输出IC为UC3842,其8脚输出5V基准电压,2脚为反相输入,1脚为放大器输出,4脚为振荡电容C9、电阻R7输入端,5脚为接地端,3脚为过流保护端,6脚为调宽单脉冲输出端,7脚为电源输入端。R6、C7组成负反馈,IC启动瞬间由R1供给启动电压,电路启动后由NF产生电势经V6、C4、C5整流滤波后供给IC工作电压。R12为过流保护取样电阻,V8、C3组成反激整流滤波输出电路。R13为内负载,V9V12及R14R19组成发光管显示电路。图1中V5、V6选用FR107,V8选用FR154,V7选用K792图 3.5充电主模块3.5 电压检测模块一般单片机内都自带的AD转换模块,P8 为模拟通道输入接口,输入范围为05V。P8接入蓄电池的正极,负极接GND(P14)。AD转换将模拟量转化为数字量,通过AT89C51在把数字信息传送给数码管,可以使我们在数码管上明确看到蓄电池的电压,同时单片机将电压信号传送给UC3842,UC3842通过输入的参照电压量,与内部基准电压进行比较,产生的误差信号送往脉宽调制电路,完成脉冲宽度的调制,从而达到稳定输出电压的目的。如果输出电压变高,则第2引脚的取样电压也变高,脉宽调制电路会使输出脉冲的宽度变窄, 则开关功率管的导通时间变短,输出电压变低,从而使输出电压稳定:反之,如果输出电压变低,则芯片的输出脉冲的宽度变宽, 开关功率管的导通时间变长,输出电压变高以抵消输出电压的降低使之稳定下来。AD转换模块如图3.6所示。图3.6 ADC模块原理图3.6 数码管模块数码管的原理图如图3.7所示。图3.7为数码管模块,主要显示蓄电池目前的电压值,充电时,时刻对蓄电池的电压进行检测,通过AD转换,再在数码管显示,是我们能直观的观察蓄电池电压的变化。图3.7 数码管模块原理图3.7 电源模块电源模块采用的是USB供电,来让单片机,数码管正常工作12 陈劲松 何德建 STC12C5A60S2实验板 V2.1使用说明书 湖北汽车工业学院 。如图3.8所示。图3.8 电源模块3.8 LED指示模块指示电LED指示灯组成。当预充电时,灯D1;快速充电时灯D2亮;补足充电时灯D3亮;浮充电时灯D4亮。充电完成时没有灯亮。单片机根据传送来的电压信号,按照电压量的大小做出判断,通过LED来显示,以便我们能更直观的观察蓄电池的充电情况。原理图如图3.9所示。图 3.9 LED指示电路图3.9 外部分压电路因为电动自行车蓄电池的电压最高为48V,然而采集模拟电压的范围为0V到5V,所以只有进行分压,要确保单片机集成电路正常工作,当蓄电池满电时,分压后采集的电压也不超过5V,所以设计12个电阻进行串联,达到分压的效果。原理图如3.10所示。图 3.10分压电路第四章 软件系统设计4.1 系统总体设计系统采用8位的AT89C51单片机来完成对系统的控制和数据处理,当上电复位后单片机首先对ADC0809进行初始化,测量蓄电池的电压,读取由ADC0809转换出来的数字信号13 Hua Bai and Chris Mi Transients of Modern Power Electronics Wiley 2010。由单片机换算出蓄电池的实际电压值,由实际的电压值决定对蓄电池进行那种阶段的充电,并将此时的电压值传送给UC3842,控制导通与断开实现对蓄电池的充电。在充电器对蓄电池进行充电的同时,单片机实时地测量充电的电流和蓄电池的电压,并对电流和电压信号传送给UC3842进行处理,不断地调整PWM波形的占空比14 William M. Flanagan Handbook of Transformer Design and Applications McGraw-Hill Professional 1993 。当蓄电池充满电时,单片机控制继电器,断开电源停止充电,程序流程图如图4.1所示:首先通过对蓄电池电压的检测,如果电压小于10V,这个时候由单片机控制充电模块,进行小电流充电,因为蓄电池的的电压太低,处于深度放电状态,这个时候进行快速充电,大电流注入,会损耗蓄电池的寿命,反之,如果大于10V,单片机就直接控制充电模块进行快速充电。当进行预充电,一段时间过后,蓄电池的电压上升,当到达10V时,这时单片机会控制充电模块由预充电状态进入快速充电状态。随着充电的进行,蓄电池的电压快速上升,当上升到40V时,这个时候电池的电压已经接近满了,由于快速充电是大电流强制注入,所以这个时候不适合了,所以这个时候单片机控制充电模块,转入补足充电,进行小电流充电。随着补足充电的进行,几分钟过后,电池的电压接近满了,这个时候为了电池的电量回复100%,我们可以从数码管上明显看到蓄电池的电压,当到47V时,单片机控制充电模块进行浮压充电。此阶段主要用来补充蓄电池自放电所消耗的能量,只要电池接在充电器上并且充电器接通电源,充电器就会给电池不断补充电荷,这样可使电池总处于充足电状态。这个时候电压的数据一般没有明显变化,单片机会在3分钟后控制充电模块断开来断开电源,也预示着充电的结束。充电过程流程图如图4.1所示。开始U47V?U40V?U48V?初始化启动模数转换预充电快速充电U10V?补足充电读取电压幅值浮压充电读取电压幅值停止充电读取电压幅值读取电压幅值NYNYNYNY图4.1 充电过程流程图4.2电压采集系统的设计电压的采集就是将实际电压用数字显示出来,通过AD转换,将模拟量装化为数字量,单片机读取数字信号,再将电压值显示在数码管上15 H.A. Kiehne Battery Technology Handbook (Electrical Engineering and Electronics) CRC Press 2003 。电压采集的流程图设计如图4.2所示。AD转换的模拟量输入端口的电压为05V。然而电动自行车的蓄电池一般为48V,所以进行蓄电池的两端电压进行采集,必须先分压,使用串联电阻分压,采集其中一段电压值,使最高电压值小于5V,在经过AD装换,传送给单片机,单片机根据数据,将数据反成蓄电池的实际电压值,然后显示在数码管上,同时根据电压值的大小与10V,40V,47V比较,确定蓄电池处于充电的哪个阶段,以控制4个LED的中的哪个亮。图4.2 电压采集流程图4.3 部分模块程序段显示:4.3.1 AD延时程序段:void AdcDelay(Uint16 t) Uint16 n; while(t-) n = 6000; while(-n); 16 徐爱钧 彭秀华单片机高级语言 C51 应用程序设计北京航空航天大学出版社 2006附录系统设计程序实现功能:STC12c5a60s2 ADC测试程序,以P11作为AD采集口,数码管显示采集数据8位(0255)组成文件:main.c-主程序文件ADC.c -STC12C5A60S2 ADC驱动程序文件SegLedDisp.c-数码管显示程序文件硬件连接:模拟电压输入到P11口(05V)=*/#include STC_NEW_8051.h#include .srcADCADC.h#include .srcSegledDispSegLedDisp.h/* 函 数:void main(void) 参 数:无 功 能:测试程序主函数 返回值:无 更 新:无 备 注:无*/void main(void)InitAdc();while(1)SegLedDisp4(AdcResult(1,8);/* 功 能:STC12c5a60s2 ADC驱动程序(查询方式)*/#include STC_NEW_8051.H#include intrins.h#include adc.h /* 函 数:void AdcDelay(Uint16 t); 参 数: Uint16 t延时时间 功 能:AD延时函数 返回值:无*/void AdcDelay(Uint16 t) Uint16 n; while(t-) n = 6000; while(-n); /* 函 数:void InitAdc(void); 参 数:无 功 能:AD初始化函数 返回值:无 更 新:无 备 注:/ADRJ = AUXR12:/0: 10 位A/D 转换结果的高8 位放在ADC_RES 寄存器, 低2 位放在ADC_RESL 寄存器/1: 10 位A/D 转换结果的最高2 位放在ADC_RES 寄存器的低2 位, 低8 位放在ADC_RESL 寄存器*/void InitAdc(void) P1ASF = AD_CHANNEL1; /0000,0010, 将 P11 置成模拟口/ P1ASF = AD_CHANNEL1 | AD_CHANNEL0;/0000,0010, 将 P11 ,P10置成模拟口 AUXR1 &= 0x04; /0000,0100, 令 ADRJ=0/ AUXR1 |= 0x04; /0000,0100, 令 ADRJ=1/ ADC_CONTR |= 0x80; /1000,0000 打开 A/D 转换电源/* 函 数:Uint16 AdcResult(Uint8 channel,Uint8 bits); 参 数: Uint8 channelAD转换通道选择 取值07 对应P10P17 Uint8 bits AD转换数据的长度 取值8 或 10 功 能:10位AD转换结果输出函数 返回值:Uint16对应通道的AD转换值 更 新:无 备 注:无 */Uint16 AdcResult(Uint8 channel,Uint8 bits) Uint8 AD_finished=0; /存储 A/D 转换标志 ADC_RES = 0; ADC_RESL = 0;ADC_CONTR = 0; channel &= 0x07; /0000,0111 清0高5位 ADC_CONTR |= AD_SPEED; _nop_(); ADC_CONTR |= channel; /选择 A/D 当前通道 _nop_(); ADC_CONTR |= 0x80; /启动 A/D 电源 AdcDelay(1); /使输入电压达到稳定 ADC_CONTR |= 0x08; /0000,1000 令 ADCS = 1, 启动A/D转换, AD_finished = 0; while (AD_finished =0) /等待A/D转换结束 AD_finished = (ADC_CONTR & 0x10); /0001,0000 测试A/D转换结束否 ADC_CONTR &= 0xE7; /1111,0111 清 ADC_FLAG 位, 关闭A/D转换, _nop_();if(bits=10) return (ADC_RES 2 + ADC_RESL); /返回 A/D 高 8 位转换结果elsereturn ADC_RES;功 能:4位共阴数码管驱动程序 更新历史:无 备 注:段码端口:P0 位选 P20P23*/#include reg52.h#include .SegLedDisp.h#define TIM 30 #define TIME 2000#define LED_DATA P0#define LED_PORT P2code unsigned char LEDMAP = /* 八段管显示码 */0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71/共阴/ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e/共阳;/从右至左 LED1234sbit LED4=P20;/sbit LED3=P21;/sbit LED2=P22;/sbit LED1=P23;/sbit gw=P23; /个位sbit sw=P22; /十位sbit bw=P21; /百位sbit qw=P20; /千位Uint8 a4; /*存放位段的数字*/* 函 数:void SegDelay(Uint16 t); 参 数: Uint16 t延时时间 功 能:数码管显示延时函数 返回值:无 更 新:无 备 注: */void SegDelay(Uint16 t)Uint8 i;while (t- !=0) for (i=100; i !=0; i-);/* 函 数:void SegLedDispCalc(Uint16 m); 参 数: Uint16 m 显示数值 功 能:显示数值拆分 拆分后将各位数据放在a中 返回值:无 更 新:无 备 注: */void SegLedDispCalc(Uint16 m)/a3 = m/1000;/千a2 = m/100%10;/百a1 = m/10%10;/十a0 = m%10;/个/* 函 数:SegLedDisp4(Uint16 t); 参 数: Uint16 u显示数值 功 能:将一个不超过4位的整数显示出来 返回值:无 更 新:无 备 注:无 */void SegLedDisp4(Uint16 u)Uint8 c;SegLedDispCalc(u);c=a0; LED_DATA = LEDMAPc;gw=0;SegDelay(TIM);gw=1;c=a1;LED_DATA = LEDMAPc;sw=0;SegDelay(TIM);sw=1;c=a2;LED_DATA = LEDMAPc;bw=0;SegDelay(TIM);bw=1;/* 函 数:SegLedTest(void); 参 数:无 功 能:数码管测试程序 返回值:无 更 新:无 备 注:无 */void SegLedTest(void)unsigned char i; /四位全显 0F LED_PORT=0xf0; for(i=0;i16;i+) LED_DATA = LEDMAPi; SegDelay(TIME);LED

温馨提示

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

评论

0/150

提交评论