基于51单片机的智能充电器系统.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于51单片机的智能充电器系统

基于51单片机的智能充电器系统 功能简介: 通过定时器定时从A/D上读取数据,根据不同的电压选择不同的控制充电方案,使用PWM控制输出脉宽来控制电流。 器件以及接口 本文中使用了8051和ADC0809芯片。下面对所使用的器件以及器件和单片机的接口作以下说明。 1、器件和原理 本文中主要使用的器件是可以进行A/D转换的8位ADC0809芯片。ADC0809是一种逐次逼近式8路模拟输入、8位数字量输出的A/D转换器。其引脚如图1所示。 图1 ADC0809外观图 由引脚图可知,ADC0809共有28引脚,采用双列直插式封装。其主要引脚功能如下。 (1)、IN0~IN7是8路模拟信号输入端。 (2)、2^(-1)~2^(-8)是8位数字量输出端。 (3)、ADDA、ADDB、ADDC与ALE控制8路模拟通道的切换,ADDA、ADDB、ADDC分别与3根地址线或数据线相连,三者编码对应8个通道地址口。ADDC、ADDB、ADDA=000~111分别对应IN0~IN7通道地址。 (4)、OUTPUT ENABLE、START、CLK为控制信号端,OUTPUT ENABLE为输出允许端、START为启动信号输入端、CLK为时钟信号输入端。 (5)、VREF(-)和VREF(+)为参考电压输入端。 2、器件的接口 在讨论8051与ADC0809的接口设计之前,先来讨论单片机如何控制ADC的问题。 用单片机控制ADC时,多数采用查询和中断控制两种方法。查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进行查询,以检查ADC变换是否已经结束,如查询到变换已结束,则读入转换完毕的数据。 中断控制法是在启动信号达到ADC之后,单片机执行别的程序。当ADC变换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序。读入转换数据,并进行必要的数据处理,然后返回到原程序。这种方法单片机无需进行转换时间的管理。CPU效率高,所以特别适合于变换时间较长的ADC。 如果对转换速度要求高,采用上述两种ADC控制方式往往不能满足要求,可采用DMA(直接存储器存取)的方法,这时可在ADC与单片机之间插入一个DMA接口(例如,btel公司的8237DM控制器)。传输一开始,AD转换的数据就可以从输出寄存器经过DMA中的数据寄存器直接传输到主存储器,因而不必受程序的限制。 在本文中,采用中断方式。从ADC0809与8051的中断方式接口电路如硬件电路图2和图3所示,ADC0809和8051的INT0管脚连接,当转换结束的时候,EOC向8051发送一个脉冲信号,提出中断申请,单片机响应中断请求,由外部中断l的中断服务程序读A/D结果,并启动8051的下一个转换,外部中断1采用跳沿触发方式。 图2 智能充电器原理电路图 图3智能充电器原理电路图 三、硬件电路图 本文中,单片机电路主要包括8051和ADC0809两块芯片,DM74163N用做分频器,74F138SJ用来产生和选择地址。具体的连接原理电路图如图2和图3所示。其中,8051的晶振频率为11.0592MHz。电路有2个输入输出端口,Analog Voltage Input是作为电池组电压的输入,PWM contraltor是做为电池组控制脉宽的输出。 四、软件程序设计 本文为智能充电器,传统充电器采用电流负反馈来进行控制,本程序使用8051单片机作为控制器进行控制。 对于电池中不同的电量,如果采取同样的方案,不会获得满意的充电效果,一般根据电池两端不同的电压值采取不同的方案进行充电。 本文中,将采集电池组的电压值,通过ADC转到单片机,在单片机端接收到信号后,根据不同的电压情况采取不同的方案。当电压非常小的时候,采取方案1来充电,方案l采取小电流充电;当电压比较小但是不是极小的时候,采取方案2来充电,方案2采取较大电流充电;当电压达到正常电压的时候,采取方案3来充电,方案3采取恒流充电;对于电压超出正常电压,采取方案4,即不充电的方案。 本文中,采用定时查询电压的机制,定时器每500ms给出标志位,查询A/D上的电压值,根据不同的电压值选择不同的方案。 对于电流的控制,采用PWM控制脉宽的方法来控制电流,应用不同的占空比,占空比越高,电流越大。 下面将首先对程序的主要模块进行介绍,然后给出整个程序。 (1)、初始化 在初始化程序中,需要进行与定时器相关的寄存器的初始化以及各个标志位和计数位的清零,如果采用中断方式,还包括与中断相关的寄存器。 本文中,电路中采用的晶振频率fosc=11.0592MHz,需要每500ms查询l次,将定时器设置成16位计数器,根据计算,可以得出定时器T0的初值为7936(1F00H),并且中断中使用计数器,计满8就达到了500ms。将方案选择

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档