智能充电器毕业论文基于89C51的智能电池充电器的设计

上传人:沈*** 文档编号:78219026 上传时间:2022-04-21 格式:DOC 页数:31 大小:284.53KB
返回 下载 相关 举报
智能充电器毕业论文基于89C51的智能电池充电器的设计_第1页
第1页 / 共31页
智能充电器毕业论文基于89C51的智能电池充电器的设计_第2页
第2页 / 共31页
智能充电器毕业论文基于89C51的智能电池充电器的设计_第3页
第3页 / 共31页
点击查看更多>>
资源描述
基于89C51的智能电池充电器的设计(硬件部分)系 别:自动化系专 业 班:电气自动化技术0601班姓 名:陈 琪学 号:20062822008指导教师:李川香 段丽娜 2009年5月19日 25基于89C51的智能电池充电器的设计(硬件部分)89C51-based smart battery charger design(Hardware part)摘 要目前,较多使用的电池有镍镉、镍氢、铅蓄电池和锂电池。它们的各自特点决定了它们将在相当长的时期内共存发展。由于不同类型电池的充电特性不同,通常对不同类型,甚至不同电压、容量等级的电池使用不同的充电器,但这在实际使用中有诸多不便。所研究课题根据电池两端不同的电压值采取不同的方案进行充电。通过对已有单片机技术的学习,结合课堂的理论知识,完成课题所规定的性能指标从而加强专业知识和专业技能综合应用能力的训练,培养实践动手能力,团队合作和创新精神。这次设计中,单片机电路主要包括89C51和ADC0809两块芯片,DM74163N用做分频器,74F138SJ用来产生和选择地址。其中,89C51的的晶振频率为11.0592MHz。电路有2个输入输出端口,Analog Voltage Input是作为电池组电压的输入,PWM contraltor是做为电池组控制脉宽的输出。关键词:89C51 ADC0809 定时器中断 PWM控制技术AbstractAt present, There is more use of nickel-cadmium batteries, nickel metal hydride, lead-acid batteries and lithium batteries. Their respective characteristics they will for a long time to co-exist within the development. Because different types of rechargeable batteries of different characteristics, usually of different types, and even different voltage levels of battery capacity to use a different charger, but in practice there are a lot of inconvenience in use.According to research by the battery voltage at both ends of the value of different options to take charge.Single-chip technology has been adopted for the study, combined with theoretical knowledge of the classroom to complete the tasks set forth in the performance indicators in order to enhance professional knowledge and professional skills training competence, ability to train yourself in practice, teamwork and innovation.The design, the main circuit including the 89C51 single-chip and chip ADC0809 , DM74163N used as a divider, 74F138SJ used to generate and select Address. Of these, 89C51 of the crystal frequency of 11.0592MHz. Circuit has two input and output ports, Analog Voltage Input battery voltage as input, PWM contraltor is the battery pack as the output pulse width control.Key words: 89C51 ADC0809 timer interrupt PWM control technology目 录摘要IAbstractII绪论11 总体设计31.1 智能充电器原理31.2 PWM技术的应用41.2.1 PWM软件法控制充电电流41.2.2 纯硬件PWM法控制充电电流51.3 89C51与ADC0809的接口设计61.4 本章小结72 硬件设计82.1 89C51及特点概述82.1.1 主要特性82.1.2 管脚说明82.1.3 振荡器特性102.1.4 芯片擦除102.1.5 结构特点112.2 ADC0809及特点概述122.2.1 主要特性122.2.2 内部结构122.2.3 外部特性122.3 本章小结133 软件设计143.1 程序明细143.2 本章小结204 系统调试与改进214.1 硬软件结合进行调试214.2 本章小结21结论22致谢23附录1 智能充电器原理电路图25绪 论现代社会电池的使用范围已经由40年代的手电筒、收音机、汽车和摩托车的启动电源发展到今天上百种用途。小到从电子表手表、CD唱机、移动电话、MP3、MP4、照相机、摄影机、各种遥控器、剔须刀、手枪钻、儿童玩具等。大到从医院、宾馆、超市、电话交换机等场合的应急电源,电动工具、拖船、拖车、铲车、轮椅车、高尔夫球运动车、电动自行车、电动汽车、风力发电站用电池、导弹、潜艇和鱼雷等军用电池。还有可以满足各种特殊要求的专用电池等。电池已经成为社会必不可少的便捷能源。电池(Batteries),是一种能量转化与储存的装置,它通过反应将化学能或物理能转化为电能。电池最早诞生于1836年,1899年发明了镍镉电池,1901年发明了镍铁电池,进入20世纪以后,电池理论和技术处于一度停滞时期但在第二次世界大战之后,电池技术又进入了快速发展的时期首先是为了适应重负荷用途的需要,发展了碱性锌锰电池,1951年实现了镍镉电池的密封化,这是镍镉电池发展史上另一个重要的里程碑。在这种电池中,化学反应产生的各种气体不用排出,可以在电池内部化合。密封镍镉电池的研制成功,使镍镉电池的应用范围大大增加。镍镉电池在20世纪80年代得到了迅猛发展。我国的电池产业虽然起步较晚,但发展很快。2005年,中国镍氢电池产量超过9.6亿只,2006年产量继续以超过15%的速度增长,达到11亿只左右。但当前我国市场上的充电器普遍存在以下问题:不具备对智能电池的充电功能,扩展性差;故障率高,而且维修困难,影响便携式设备的正常工作;对同类电池充电缺乏自适应性,充电控制策略落伍,导致了电池的寿命短、效率低和可维护性差;体积大,效率低,对电网污染大,不能满足电磁兼容等要求;充电电流小,充电时间长。对于铅酸蓄电池来讲,传统的充电方法有恒流限压充电和恒压限流充电。随着消费者和产业的环保意识增强,碱性一次电池和含有有毒金属镉等二次电池使用益受到限制,可充电的镍氢电池和锂电池得到了广泛的使用。充电器是伴随着充电电池的发展而发展的,早期出现的充电器多为镍镉电池充电器,当镍氢电池逐渐替代镍镉电池后,充电器也主要以镍氢电池充电器为主。镍镉电池充电器大致可分为三类。第一类是简单的定时充电器,充电时间是固定的,时间一到,就自动停止充电。脆充电器不适合给镍氢电池充电,镍氢电池不会被完全充满电。第二类是所谓的“通宵”充电器,它的充电速率就非常低。这类充电器能为镍氢电池充分充电,但是它必须花上很长的时间,使用很不方便。第三类疾速充电器,它给镍氢电池充电,不需要多余的电路,一旦电池充满后,充电停止。能在2个小时以内给电池充分充电的充电器,就称为疾速充电器,脆疾速充电器会使镍氢电池过度充电。在充电过程中,电池变得很热,那么这就是过度充电的征兆。在充电过程中电池的电压会随著储存电量的增加而逐渐上升,当电池储存的电量达到饱和电极材料无法继续充电时,若继续充电则电解液会起电解,并且在阳极产生氧气,在阴极产生氢气,如此会在密封的电池内部造成内部压力上升,会对电池内部结构造成破坏。像这种现象称之为过度充电,过度充电会使电池的寿命缩短。所以总的来说专门为镍镉电池充电的充电器可以充镍氢电池但不适用 1 。 1 总体设计1.1 智能充电器原理单片机电路主要包括89C51和ADC0809两块芯片,DM74163N如图1-1所示用做分频器,74F138SJ如图1-2所示用来产生和选择地址。具体的连接原理电路图如附录1。其中,8051的的晶振频率为11.0592MHz。电路有2个输入输出端口,Analog Voltage Input是作为电池组电压的输入,PWM contraltor是做为电池组控制脉宽的输出。本次设计通过ADC转到单片机,在单片机端接收到信号后,根据电池两端不同的电压值采取不同的方案进行充电。当电压非常小的时候,采取方案1来充电,方案1采取小电流充电,向引脚PWM发送占空比为10%的信号;当电压比较小但是不是极小的时候,采取方案2来充电,方案2采取较大电流充电,向引脚PWM发送占空比为20%的信号;当电压达到正常电压的时候,采取方案3来充电,方案3采取恒流充电,向引脚PWM发送占空比为50%的信号;对于电压超出正常电压,采取方案4,即不充电的方案,向引脚PWM发送占空比为0%的信号 2,3 。 图1-1 DM74163N芯片 图1-2 74F138SJ芯片1.2 PWM技术的应用随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而本文介绍的是在镍氢电池智能充电器中采用的脉宽PWM法。它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。1.2.1 PWM软件法控制充电电流本方法的基本思想就是利用单片机具有的PWM端口,在不改变PWM方波周期的前提下,通过软件的方法调整单片机的PWM控制寄存器来调整PWM的占空比,从而控制充电电流。本方法所要求的单片机必须具有ADC端口和PWM端口这两个必须条件,另外ADC的位数尽量高,单片机的工作速度尽量快。在调整充电电流前,单片机先快速读取充电电流的大小,然后把设定的充电电流与实际读取到的充电电流进行比较,若实际电流偏小则向增加充电电流的方向调整PWM的占空比;若实际电流偏大则向减小充电电流的方向调整PWM的占空比。在软件PWM的调整过程中要注意ADC的读数偏差和电源工作电压等引入的纹波干扰,合理采用算术平均法等数字滤波技术。软件PWM法具有以下优缺点。优点:简化了PWM的硬件电路,降低了硬件的成本。利用软件PWM不用外部的硬件PWM和电压比较器,只需要功率MOSFET、续流磁芯、储能电容等元器件,大大简化了外围电路。可控制涓流大小。在PWM控制充电的过程中,单片机可实时检测ADC端口上充电电流的大小,并根据充电电流大小与设定的涓流进行比较,以决定PWM占空比的调整方向。电池唤醒充电。单片机利用ADC端口与PWM的寄存器可以任意设定充电电流的大小,所以,对于电池电压比较低的电池,在上电后,可以采取小电流充一段时间的方式进行充电唤醒,并且在小电流的情况下可以近似认为恒流,对电池的冲击破坏也较小。缺点:电流控制精度低。充电电流的大小的感知是通过电流采样电阻来实现的,采样电阻上的压降传到单片机的ADC输入端口,单片机读取本端口的电压就可以知道充电电流的大小。若设定采样电阻为Rsample(单位为),采样电阻的压降为Vsample(单位为mV), 10位ADC的参考电压为5.0V。则ADC的1 LSB对应的电压值为 5000mV/10245mV。一个5mV的数值转换成电流值就是50mA,所以软件PWM电流控制精度最大为50mA。若想增加软件PWM的电流控制精度,可以设法降低ADC的参考电压或采用10位以上ADC的单片机。PWM采用软启动的方式。在进行大电流快速充电的过程中,充电从停止到重新启动的过程中,由于磁芯上的反电动势的存在,所以在重新充电时必须降低PWM的有效占空比,以克服由于软件调整PWM的速度比较慢而带来的无法控制充电电流的问题。充电效率不是很高。在快速充电时,因为采用了充电软启动,再加上单片机的PWM调整速度比较慢,所以实际上停止充电或小电流慢速上升充电的时间是比较大的。为了克服2和3缺点带来的充电效率低的问题,我们可以采用充电时间比较长,而停止充电时间比较短的充电方式,例如充2s停50ms,再加上软启动时的电流慢速启动折合成的停止充电时间,设定为50ms,则实际充电效率为(2000ms100ms)/2000ms95,这样也可以保证充电效率在90%以上 4 。1.2.2 纯硬件PWM法控制充电电流由于单片机的工作频率一般都在4MHz左右,由单片机产生的PWM的工作频率是很低的,再加上单片机用ADC方式读取充电电流需要的时间,因此用软件PWM的方式调整充电电流的频率是比较低的,为了克服以上的缺陷,可以采用外部高速PWM的方法来控制充电电流。现在智能充电器中采用的PWM控制芯片主要有TL494等,本PWM控制芯片的工作频率可以达到300kHz以上,外加阻容元件就可以实现对电池充电过程中的恒流限压作用,单片机只须用一个普通的I/O端口控制TL494使能即可。另外也可以采用电压比较器替代TL494,如LM393和LM358等。采用纯硬件PWM具有以下优缺点。优点:电流精度高。充电电流的控制精度只与电流采样电阻的精度有关,与单片机没有关系。不受软件PWM的调整速度和ADC的精度限制。充电效率高。不存在软件PWM的慢启动问题,所以在相同的恒流充电和相同的充电时间内,充到电池中的能量高。对电池损害小。由于充电时的电流比较稳定,波动幅度很小,所以对电池的冲击很小,另外TL494还具有限压作用,可以很好地保护电池。 缺点:硬件的价格比较贵。TL494的使用在带来以上优点的同时,增加了产品的成本,可以采用LM358或LM393的方式进行克服。涓流控制简单,并且是脉动的。电池充电结束后,一般采用涓流充电的方式对电池维护充电,以克服电池的自放电效应带来的容量损耗。单片机的普通I/O控制端口无法实现PWM端口的功能,即使可以用软件模拟的方法实现简单的PWM功能,但由于单片机工作的实时性要求,其软件模拟的PWM频率也比较低,所以最终采用的还是脉冲充电的方式,例如在10%的时间是充电的,在另外90%时间内不进行充电,这样对充满电的电池的冲击较小。单片机 PWM控制端口与硬件PWM融合对于单纯硬件PWM的涓流充电的脉动问题,可以采用具有PWM端口的单片机,再结合外部PWM芯片即可解决涓流的脉动性。在充电过程中可以这样控制充电电流:采用恒流大电流快速充电时,可以把单片机的PWM输出全部为高电平(PWM控制芯片高电平使能)或低电平(PWM控制芯片低电平使能);当进行涓流充电时,可以把单片机的PWM控制端口输出PWM信号,然后通过测试电流采样电阻上的压降来调整PWM的占空比,直到符合要求为止。1.3 89C51与ADC0809的接口设计用单片机控制ADC时,多数采用查询和中断控制两种方法。查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进行查询,以检查ADC变换是否已经结束,则读入转换完毕的数据。中断控制法是在启动信号达到ADC之后,单片机执行别的程序。当ADC变换结束并向单片机发出中断请求信号时,单片机相应次中断请求,进入中断服务程序。读入转换数据,并进行必要的数据处理,然后返回到原程序,这种方法单片机无需进行转换时间的管理,CPU效率高,所以特别适合于变换时间较长的ADC 5 。1.4 本章小结 本章主要介绍智能电池充电器的原理和相关的技术,PWM脉宽控制技术和其分类,89C51与ADC0809的接口技术。 2 硬件设计2.1 89C51及特点概述AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机,如图2-1所示。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 6 。2.1.1 主要特性(1) 与MCS-51 兼容 (2) 4K字节可编程闪烁存储器 (3) 寿命:1000写/擦循环 (4) 数据保留时间:10年 (5) 全静态工作:0Hz-24Hz (6) 三级程序存储器锁定 (7) 128*8位内部RAM (8) 32可编程I/O线 (9) 两个16位定时器/计数器 (10) 5个中断源 (11) 可编程串行通道 (12) 低功耗的闲置和掉电模式 (13) 片内振荡器和时钟电路 2.1.2 管脚说明VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.1.3 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.1.4 芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止 6 。2.1.5 结构特点(1) 8位CPU(2) 片内振荡器和时钟电路(3) 32根I/O线(4) 外部存贮器寻址范围ROM、RAM64K(5) 2个16位的定时器/计数器(6) 5个中断源,两个中断优先级(7) 全双工串行口(8) 布尔处理器图2-1 89C51芯片2.2 ADC0809及特点概述2.2.1 主要特性(1) 8路8位AD转换器,即分辨率8位 (2) 具有转换起停控制端 (3) 转换时间为100s (4) 单个5V电源供电 (5) 模拟输入电压范围05V,不需零点和满刻度校准 (6) 工作温度范围为-4085摄氏度 (7) 低功耗,约15mW2.2.2 内部结构 ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近,ADC0809内部结构框图 寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容 7 。2.2.3 外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图2-2所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ADDA、ADDB、ADDC真值表。 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上8 。图2-2 ADC0809芯片2.3 本章小结 本章主要介绍本次设计中的两个主要的芯片89C51和ADC0809,还学习了绘图软件VISIO,方便绘图。 3 软件设计3.1 程序明细本次课程设计,A/D采用外部中断触发的方式,当数据到来的时候将数据读入,根据不同的电压值选择不同方案,并且用定时器每500ms查询1次,改变原来的方案。程序清单如下: 功能:通过定时器定时从A/D上读取数据,根据不同的电压选择不同的控制充电方案,使用PWM控制输出脉宽来控制电流9,10,11 。ORG 0000HLJMP STARTORG 0003HLJMP EXTERN_INT ;外中断入口ORG 000BHLJMP TIMER0_INT ;定时器中断入口;程序开始,初始化各个寄存器以及标志位 START: MOV SP,#050H ;设置堆栈 MOV R0,#030H ;设置A/D存储单元初始地址 MOV IE,#0FFH ;打开所有中断 MOV DPTR,#78FFH ;采集通道首地址,只使用一路A/D就可以 MOV R0,#40H MOV R0,#00H ;清除方案选择位 MOV R0,#40H MOV R0,#00H ;清除方案选择触发位 MOV R1,#42H MOV R0,#00H ;清除定时器计数器 LCALL TIMER1_INIT ;进入循环,查询标志位,采取不同的方案 LOOP: MOV R0,#30H ;30H是A/D转换的地址,将数据和几个值进行比较;确定方案 MOV A,R0 SUBB A,#30H ;当电压很小的时候,采用第1种方案,向引脚PWM;发送占空比为10%的信号 JC PROCESS_01 MOV A,R0 SUBB A,90H JC PROCESS_02 ;当电压较小的时候,采用第2种方案,向引脚PWM;发送占空比为20%的信号 MOV A,R0 SUBB A,90H JZ PROCESS_03 ;当电压正好的时候,采用第3种方案,向引脚PWM;发送占空比为50%的信号 MOV A,#04H ;当电压超出的时候,采用第4种方案,向引脚PWM;发送占空比为0%的信号 LJMP PROCESS_04 CLEAR_FLAG: MOV R0,#40H ;清除方案选择位 MOV R0,#00H MOV R0,#41H ;清除触发位 MOV R0,#00H LJMP LOOP PROCESS_01: MOV R1,#040H MOV R1,#01H ;选择方案1 PROCESS_01_NEXT: SETB P2.0 ;将和PWM连接的管脚置高 MOV R1,#0F0H MOV R0,#00H PROCESS_01_01: DJNZ R1,PROCESS_01_01 DJNZ R0,PROCESS_01_01 ;空跑16*256*2 个周期 CLR P2.0 ;将和PWM来连接的管脚置低 MOV R1,#070H MOV R0,#00H PROCESS_01_02: DJNZ R1,PROCESS_01_02 DJNZ R0,PROCESS_01_02 ;空跑16*256*2*9个周期 MOV R1,#040H ;当方案改变标志位到来的时候,清除标志位并;且重新进行判断 CJNE R1,#00H,CLEAR_FLAG SJMP PROCESS_01_NEXT PROCESS_02: MOV R1,#040H MOV R1,#02H ;选择方案2 PROCESS_02_NEXT:SETB P2.0 ;将和PWM连接的管脚置高MOV R1,#0E0H MOV R0,00HPROCESS_02_01:DJNZ R1,PROCESS_02_01 DJNZ R0,PROCESS_02_01 ;空跑16*256*2个周期 CLR P2.0 ;将和PWM连接的管脚置低MOV R1,#080HMOV R0,00HPROCESS_02_02:DJNZ R1,PROCESS_02_02DJNZ R0,PROCESS_02_02; ;空跑16*256*2*8个周期MOV R1,#041H ;当方案改变标志位到来的时候,清除标志;位并且重新进行判断CJNE R1,#00H,CLEAR_FLAGSJMP PROCESS_02_NEXRPROCESS_03:MOV R1,040HMOV R1,#03H ;选择方案3PROCESS_03_NEXT:SETB P2.0 ;将和PWM连接的管脚置高MOV R1,0B0HMOV R0,#00HPROCESS_03_01:DJNZ R1,PROCESS_03_01DJNZ R0,PROCESS_03_01 ;空跑16*256*2*2个周期 CLR P2.0 ;将和PWM连接的管脚置低MOV R1,#0B0HMOV R0,00HPROCESS_03_02:DJNZ R1,PROCESS_03_02 DJNZ R0,PROCESS_03_02; ;空跑16*256*2*7个周期MOV R1,#041H ;当方案改变标志位到来的时候,清除标志;位并且重新进行判断CJNE R1,#00H,CLEAR_FLAGSJMP PROCESS_03_NEXRPROCESS_04:CLR P2.0MOV R1,#040HMOV R1,#04H ;选择方案4MOV R1,041HCJNE R1,#00H,CLEAR_FLAGSJMP PROCESS_04TIMER1_INIT;ANL TMOD,0FH ;设置定时器T1为方式2ORL TMOD,#10HMOV TOMD,#21H ;定时器T0工作在方式1MOV PCON,#080HCLR TRT1 ;禁止定时器T1SETB EASETB ET1SETB ET0SETB PT0 ;定时器T0中断优于串口中断CLR TF1MOV TL0,#00HMOV TH0,#01FH ;定时器T0中断发生时间为62.5msSETB TR0 ;使能定时器T0CLR TF0RET;进入定时器中断,每500ms设置1次标志位TIMER0_INT:PUSH ACC ;累加器入栈PUSH PSW ;程序状态字入栈MOV PSW,#18H ;切换寄存器区域CLR TF0 ;清除定时器中断TF0CLR TF0 ;禁止定时器中断T0MOV TL0,#00H MOV TH0,#01FH ;定时器T0中断发生时间为6CLR TF0 ;清除溢出中断位MOV R1,#42HINC R1 ;增加计数器的值,到8为止,这样达到500msCJNE R1,#08H,TIMER0_READYMOV R1,#00H ;清除计时器的值MOV R1,#041H ;设置标志位,每500ms重新选择方案MOV R1,#01HTIMER0_READY:SETB TR0 ;使能定时器T0POP PSW ;程序状态字出栈POP ACC ;累加器出栈RETI;进入外部中断,每进入一次读取ADC的值EXTERN_INT:PUSH ACC ;累加器压栈PUSH PSW ;程序状态字压栈MOV PSW,010H ;切换寄存器区域MOV DPTR,#78FFH ;A/D转换器首地址MOVX A,DPTR ;读入A/D的值MOV R1,030H ;存储A/D转换器的数据的地址MOV R1,A ;将A/D的值读入该地址POP PSW ;程序状态字出栈POP ACC ;累加器出栈RETIEND3.2 本章小结本章主要介绍本次课程设计所要的程序并对其作简要的说明。4 系统调试与改进4.1 硬软件结合进行调试软件的调试是整个设计之中的一个重要环节,它既可以对硬件连接的正确与否性进行检测,也可以验证软件的匹配性,所以调式的成功与否至关重要。但是由于条件有限,我和队友不可能进行真实的仿真实验。假设开始我和本组队友在进行调式时受挫,实验用的放电放空的镍镉蓄电池在一段时间的充电之后始终没有蓄积电量。于是我们就要展开分析,软件这部分应该是没有什么问题的,因为程序是先前的专业科技人员经过无数次实验验证的,所以目光要转向硬件方面,首先启动电路的电源,通盘检测一下电路是否全部连接通,如果没问题,接下来就检查ADC变换是否进行,这只需要用其它的软件单独测试AD0809转换器是否完好,倘若这没问题就等ADC转换结束之后,读入了转换数据,在单片机仿真的几组内部信息显示栏中查看CPU对程序的执行情况,是否有采用定时查询电压的机制,定时器每500ms给出标志位,查询A/D上的电压值,然后根据不同的电压选择不同的方案。同样的道理依次对DM74163N分频器,74F138SJ是否完好地具备其功能进行检测,问题终究会被发现就在其中。4.2 本章小结本章主要完成硬件部分设计结合软件部分进行调试,发现错误并将其改正,达到最终完成本次毕业设计的目的。结 论本次设计一开始,曾经一度对课题有许多不清楚和不了解的地方,经过近一周时间的课题分析,并与同组同学进行讨论,又在指导老师的讲解下对课题有了初步了解,但是深入课题之后,发现由于间隔时间过长,许多过去课堂上学过的知识点都遗忘了,在进行设计中的相关实验部分的操作时以及实验仪器的使用方法和注意事项都不很熟练,甚至有些遗忘,通过查阅相关资料,将一些基础知识进行了回顾,但在实验过程中仍出现了一些书本中没有讲到的问题。一段时间之后,我们组成小组,我们组数选课题是智能电池充电器的设计。第一部分为课题的初步考虑,通过查资料找线索,我们提出不同方案,并对各种方案进行比较讨论,选取了最好的方案而且对总框图进行构思和设计。第二部分为系统的详细设计,这一部分是最有挑战性的,为了实现各模块的功能而苦苦奋战,经过无数次修改而成功,初步尝到成功的喜悦,增强了进一步设计的信心。第三部分为系统完成下载阶段,这阶段也遇到困难,不过解决起来容易多了,对各种问题有了经验,测试,下载,连线。终于设计初步完成了,此时我们无比兴奋,看到自己的成果,成就感不言而喻。单片机电路主要包括89C51和ADC0809两块芯片,DM74163N用做分频器,74F138SJ用来产生和选择地址。其中,89C51的的晶振频率为11.0592MHz。电路有2个输入输出端口,Analog Voltage Input是作为电池组电压的输入,PWM contraltor是做为电池组控制脉宽的输出,根据电池两端不同的电压值采取不同的方案进行充电。本次毕业设计中,我除了对相关的专业知识以及相关的实验操作进行了回顾,还有许多其他的收获,比如在绘制论文中所需要的相关的电路图的过程中,我还学会使用VISIO绘图,这次毕业设计不但让我对本专业的相关基础知识进行了很好的复习,还对原由书本上的知识进行了拓展和延伸,毕业设计不但锻炼了我的动手能力,也锻炼了我处理问题的能力,并且学会了许多新的知识。致 谢通过几个月的努力,对本次设计的经历,使三年大学所学的相关知识相互的融汇、贯通,从而加深了对所学知识的理解。在此设计的过程中,参阅了大量的文献、专著、和资料,设计也引用了其中的部分内容,在此,对这些文献、专著和资料的作者和编著们表示感谢,尤其是在这次毕业设计中得到了指导老师段丽娜老师和同组同学的支持和帮助,受益颇多,衷心感谢! 参考文献 1 彭和平. 智能型铅酸蓄电池充电器的设计与实现. 电子技术应用. 2001,(12):12-172 王为青. 51单片机应用开发案例精选. 北京:人民邮电出版社,20073 楼然苗. 51系列单片机设计实例. 北京:北京航空航天大学出版社,20034 刘宝忠. PWM技术在单片机控制智能充电器中的应用. 今日电子. 2005,(12):79-835 何立民. 单片机高级教程应用与设计. 北京:北航大学出版社,20076 朱定华. 单片微机原理与应用. 北京:北京交通大学出版社,20087 苏小林. 计算机控制技术. 北京:中国电力出版社,20078 高卫东,辛友顺,韩彦征. 51单片机原理与实践. 北京:北京航空航天大学出版社,20089 边春远,王志强. MCS-51单片机应用开发使用子程序. 北京:人民邮电出版社,200510 杨将新,李华军,刘东骏. 单片机程序设计及应用从基础到实践. 北京:电子工业出版社,200611 王守中. 51单片机开发入门与典型实例. 北京:人民邮电出版社,200712 何志强,崔新会. 基于51单片机的铅酸电池充电器的实现.福建电脑. 2006,(12):62-7813 顾学群. 智能型铅酸蓄电池充电器的设计与实现. 交通职业大学学报. 2003,(2):22-4014 INTEL.16-bit Embedded Cvontrollers.1991附录1 智能充电器原理电路图
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!