欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于UCC3895与单片机的智能充电器的软件设计DOC.docx

    • 资源ID:6241537       资源大小:178.43KB        全文页数:30页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于UCC3895与单片机的智能充电器的软件设计DOC.docx

    1、基于UCC3895与单片机的智能充电器的软件设计DOC1 引言充电器通常指的是一种将交流电转换为低压直流电的设备。充电器在各个领域用途广泛,特别是在生活领域被广泛用于手机、相机等等常见电器。充电器是采用电力电子半导体器件,将电压和频率固定不变的交流电变换为直流电的一种静止变流装置。在以蓄电池为工作电源或备用电源的用电场合,充电器具有广泛的应用前景1。我国的电池产业虽然起步较晚,但发展很快,但当前我国市场上的充电器普遍存在以下问题:不具备对智能电池的充电功能,扩展性差;故障率高,而且维修困难,影响便携式设备的正常工作;对同类电池充电缺乏自适应性,充电控制策略落伍,导致了电池的寿命短、效率低和可维

    2、护性差;体积大,效率低,对电网污染大,不能满足电磁兼容等要求;充电电流小,充电时间长2。本课题研究的是智能充电器,在原有充电器的基础上,加以改进,实现其智能化。做到自动断电、充电完成报警提示。同时,采用专用的电池充电芯片实现对充电过程的控制。2 智能充电器概述21 UCC3895的控制原理UCC3895是TI公司生产的专用于PWM移相全桥DCDC变换的新型控制芯片,可工作于电压模式,也可工作于电流模式,并且可实现输出脉冲占空比从0到100相移控制,软启动和软停止可按要求进行调节;内置7MHz带宽的误差比较放大器;具有完善的限流及过流保护、电源欠压保护,基准欠压保护、软启动和软停止等功能3。在P

    3、WM 型直流变换器中,功率开关管MOSFET在开通和关断过程中,不仅承受一定的电压,而且还承受一定的电流,因此,功率开关管在工作过程和开通、关断过程中将产生导通损耗、开通损耗、关断损耗和开关管结电容充放电损耗等。当变换器的工作频率升高时,开通损耗、关断损耗和开关管结电容充放电损耗都将随着开关频率的升高而增加,从而使变换器的效率降低。开关管在电压不为零的条件下开通,且在电流不为零的条件下关断称为硬开关。在开通和关断过程中,变换器电路中的寄生电感和电容将产生很大的尖峰电压和浪涌电流,还可能产生较强的电磁干扰。采用谐振变换器后,可利用LC 谐振技术降低开关管开通和关断过程中的di/dt和du/dt,

    4、在功率开关管开通时,使两端电压先下降到零,电流才开始上升(零电压开通),在功率开关管关断时,使电流先下降到零,两端电压才开始上升(零电流关断),这样可以使变换器的开关损耗大幅度减小,使开关频率得以提高,从而使变换器中的变压器和滤波元件的体积大大减小,这样便可在保持变换器高效的前提下,大大提高变换器的功率密度4。单片机与UCC3895共同组成控制器部分,相对于仅使用单片机作为控制器的方式,具有响应速度快,控制精度高,软件设计简单,运行稳定等优点。22 智能充电器的优点1、可以给碱性电池充电;通过碱性电池的特性,胭脂出特殊控制器可以精确控制电流,活化碱性电池的化学成分,达到充电目的5。2、可以复活

    5、植物人电池;通过控制器自动识别到1V以下或内阻不正常的坏电池,控制器自行调动充电资源,分配最合适的微电流对已死掉的电池进行激活修复,电池修复好以后自动调整达到正常充电状态。3、自动识别功能,通过IC微电脑识别不可充电池(碳性,锌锰电池)短路电池和有缺陷的可充电池,有防止电池正负极反向短路保护,届时充电器不会充电,大大提供了使用安全4、利用涓流充电;通过只能技术切断快速充电模式,单片机控制快速充电,连续充电过程,并自动转换成涓流充电模式,确保电池完全充饱而不会过充,可以延长电池寿命。5、充电全程监控;LCD显示充电过程,直观显示电池状态。6、充电保护措施完善;搞转换效率、电芯只能保护、过压保护、

    6、过流保护、过充保护、过温保护、过时保护、短路保护、漏电保护,确保充电安全放心。7、全电压输入;支持110V240V充电,适应全球的电压6。3 系统分析和总体设计31 对智能充电器的要求本设计由电压传感器,单片机,UCC3895,液晶显示,键盘控制组成,传感器将采集到的电压和电流信息通过模数转换交由单片机处理后,通过单片机控制UCC3895,再由UCC3895控制晶闸管的导通角从而控制充电器的输出电压,同时还可以手动设定充电模式,LCD显示器可以实时显示电池状态。主要技术指标【1】 充电电压误差:0.2V【2】 适用电压:110V240V【3】 短路保护以及故障显示74 硬件的简单介绍4.1 A

    7、T89C51及特点概述AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机,如图2-1所示。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精

    8、简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 8 。4.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) 片内振荡器和时钟电路9 4.1.2 管脚说明VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向

    9、I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高6。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个T

    10、TL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号10。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出

    11、电流(ILL)这是由于上拉的缘故11。 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口同时为闪烁编程和编程校验接收一些控制信号12。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电

    12、平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

    13、 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出13。5 软件设计5.1 软件程序设计的语言选择5.1.1汇编语言的简介汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的

    14、程序。汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能像用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的汇编程序的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行14。5.1.2 单片机C语言的简介C语言是在70年代初问世的。一九七八年由美国电话电报公司贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROG

    15、RAMMING LANGUAGE”一书。在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,称之为ANSIC。作为一种结构化的程序设计语言,C语言的特点就是可以使你尽量少地对硬件进行操作,易于调试和维护,具有很强的功能性、结构性和可移植性,常常被优选作为单片机系统的编程语言。用C编写程序比汇编更符合人们的思考习惯,具有良好的程序结构,适用于模块化程序设计,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构清晰,易于调试和维护,还可增强可读性和移植性。在绝大多数场合采用C语言编程即可完成预期的目的,但是对实时时钟系统、要求执行效率

    16、高的的系统就不适合采用C语言编程,对这些特殊情况进行编程时要结合汇编语言。汇编语言具有直接和硬件打道、执行代码的效率高等特点,可以做到C语言所不能做到的一些事情。这种混合编程的方法将C语言和汇编语言的优点结合起来,已经成为目前单片机开发最流行的编程方法。5.2 软件整体设计及各模块设计绘制流程图所谓流程图,就是用各种符号、图形、箭头把程序的流向及过程用图形表示出来。绘制流程图是单片机程序编写前最重要的工作,通常我们的程序就是根据流程图的指向采用适当的指令来编写的。本文的软件程序模块包括对键盘扫描单元程序、LCD显示程序、温度检测程序、A/D电压电流转换的编写来实现充电器的智能充电。5.2.1

    17、主程序模块该软件的目的是控制电池充电及维护终点及状态显示。当电池放入该智能充电器时,我们可以人为选择充电状态与维护状态,然后读入温度传感器环境温度,决定电池充电或维护状态的最终电压。再由程序控制充电及维护I/O口电平的高低,选择是对电池充电还是维护。在由ADC0832采样的电压判断电池维护或充电的终止时刻,并由内部程序计算出电池充电电流、充电电压、电池内阻等参数输出给LCD1602,由其显示电池状态。图5.1 主程序流程图5.2.2 温度检测模块图5.4温度检测流程图低温度系数晶振的振荡频率受温度的影响很小1,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改

    18、变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温

    19、度寄存器中的数值即为所测温度#includereg51.h#included1820.hint t;uint num;uchar dat; /读写数据变量uchar a=0;uchar b=0;float tep=0; /读一个温度时的温度转换中间间uchar data tempbuf4=0;/温度字型显示中间变量void delay(uint num)/延时 while(num-);void Init_DS18B20(void)/初始化char x=0;DQ=1; delay(10);/稍作延时 DQ=0;delay(80);/延时480us 540usDQ=1; /拉高总线 15-60us

    20、delay(20);x=DQ;/读总线状态 为0复位成功,为1则不成功 delay(30);DQ=1;/释放总线uchar ReadOneChar(void)/读1820一个字节uchar i; uchar dat=0;for(i=0;i=1;DQ=1;/给脉冲if(DQ) dat|=0x80;/读1 / 读0右移处理 delay(8);/15us内读完一个数return(dat);void WriteOneChar(uchar dat)/写DS18B20 uchar i=0;for(i=0;i=1; delay(8);int ReadOneTemperature(void) /读取温度值 I

    21、nit_DS18B20();WriteOneChar(0xcc);/发跳过ROM命令WriteOneChar(0x44);/发读开始转换命令Init_DS18B20();WriteOneChar(0xcc);/发跳过ROM命令WriteOneChar(0xbe);/读寄存器,共九字节,前两字节为转换值a=ReadOneChar(); /a存低字节b=ReadOneChar(); /b存高字节t=b;t=8;/高字节转换为10进制t=t|a;tep=t*0.0625;/转换精度为0.0625/LSBt=tep*10+0.5;/保留1位小数并四舍五入*后面除10还原正确温度值)return(t);

    22、void Temperaturepro(void)/温度处理int temp;temp=ReadOneTemperature();tempbuf3=temp/1000; /百位tempbuf2=temp/100%10;/十位tempbuf1=temp%100/10; /个位tempbuf0=temp%10; /小数 5.2.3 PWM控制模块A/D采用外部中断触发的方式,当数据到来的时候将数据读入,根据不同的电压值选择不同方案,并且用定时器每500ms查询1次,改变原来的方案。程序清单如下: 功能:通过定时器定时从A/D上读取数据,根据不同的电压选择不同的控制充电方案,使用PWM控制输出脉宽来

    23、控制电流 。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

    24、 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 ;当电压正好的时候,采

    25、用第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

    26、: 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

    27、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 ;当方案改变标志位到来的时候,

    28、清除标志;位并且重新进行判断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,PR

    29、OCESS_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 ;定

    30、时器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 TF


    注意事项

    本文(基于UCC3895与单片机的智能充电器的软件设计DOC.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开