![以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告_第1页](http://file4.renrendoc.com/view/d3c071c658b3f1d9f43b5614bb199820/d3c071c658b3f1d9f43b5614bb1998201.gif)
![以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告_第2页](http://file4.renrendoc.com/view/d3c071c658b3f1d9f43b5614bb199820/d3c071c658b3f1d9f43b5614bb1998202.gif)
![以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告_第3页](http://file4.renrendoc.com/view/d3c071c658b3f1d9f43b5614bb199820/d3c071c658b3f1d9f43b5614bb1998203.gif)
![以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告_第4页](http://file4.renrendoc.com/view/d3c071c658b3f1d9f43b5614bb199820/d3c071c658b3f1d9f43b5614bb1998204.gif)
![以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告_第5页](http://file4.renrendoc.com/view/d3c071c658b3f1d9f43b5614bb199820/d3c071c658b3f1d9f43b5614bb1998205.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、以AT89S52单片机为核心日勺智能充电器设计与实现项目可行性研究报告目录摘要(.4).关键词(.4).Abstract(.错误!未定义书签。) TOC o 1-5 h z Key words.4)前言.5.).绪论.5.).1.1课题研究日勺背景.6.)1.1.1课题研究日勺意义 .1.2课题研究日勺主要工作 (.7.)2充电技术(.7.).2种电池日勺充电特性.式)2.1.1锐氢/锐镉电池充电模式 皿.)2.1.2锂离子电池日勺特点及充电方式 .8 )2.2智能充电器.10)2.3设计日勺功能模块 .1.0)2.3.1单片机模块.10)2.3.2充电过程控制模块 .10)2.3.3充电电压
2、提供模块 .11 )2.3.4光耦模块.11)2.3.5电压测试模块(.1.3)3设计方案充电过程.1.3)预充(.13.)快充(.14.)满充.14.)断电.14.)报警.15.)4 锂离子电池充电器硬件设计 .1.5)4.1单片机电路.15 )4.1.1 AT89S52 .16 )4.2充电部分(.1.9.) TOC o 1-5 h z 4.4光耦控制部分(22)5锂离子电池充电器软件设计 .23)5.1程序功能(23.)5.2程序流程图.23 )5.3程序代码及说明 .25)附录.59)致谢.61.)参考文献.62.)摘 要:随着移动电话用户数量日勺不断增长,相应日勺电池和电池充电器需求
3、也将会有较大日勺增加。电子技术。日勺快速发展使得人们对高性能、小尺寸、重量轻。日勺智能电池充电器日勺需求也越来越大。目前,使用较多E勺是、锐镉电池(Nicd )、锐氢电池(NiMH )和锂离子电池。由于不同类型电池日勺充电特性不同,通常对不同类型,其至不同容量等级和电压日勺电池使用不同充电器,实际使用中会带来诸多不便。于是 设计一种以AT89S52单片机为核心日勺智能充电器,较好地解决了上述电池日勺充电 问题。在设计上,选择了简洁、高效日勺系统硬件,包括单片机电路、充电控制电路、 电压转换及光耦隔离电路。实践证明,设计。)日勺充电器功耗低、成本低、系统工作稳定 可靠,智能化程度高,具有推广价值
4、。关键词:智能充电器;AT89S52单片机;硬件构成前言现在社会信息化E勺不断加快,人们对自己使用E勺各种家电设备、仪表以及工业生产 中日勺数据采集与控制设备要求很高。尤其随着手机在世界范围内O0W及,手机电池 充电器日勺使用越来越广泛日勺时候人们对高性能、小尺寸、重量轻日勺智能电池充电 器日勺需求也越来越大,所以智能充电器有它日勺巨大发展空间。所谓智能充电器是、单片机参与处理和控制H勺充电器,能根据用户日勺需要自主选择 充电方式,并且在充电过程中能对被充电电池进行保护从而防止过电压、电流和温度过 高CDH勺一种智能化充电器。该智能充电器具有检测锂离子电池日勺状态;自动切换充电 模式以满足充电
5、电池日勺充电需要;充电器短路保护功能;充电状态显示日勺功能。在 生活中更好日勺维护了充电电池,延长了它日勺使用寿命。因此,研究智能充电器日勺 设计及推广其应用,有着非常现实日勺意义。单片机模块:实现充电器日勺智能化控制,比如自动断电、充电完成报警提示等。-充电过程控制模块:采用专用日勺电池充电芯片实现对充电过程日勺控制。充电电压提供模块:采用电压转换芯片将外部+12V电压转换为需要日勺+5V电 压。该电压在送给充电控制模块之前还需经过一个光耦模块。C52程序:单片机控制电池充电芯片实现充电过程日勺自动化,并根据充电日勺状态 给出有关日勺输出指示。本论文从锂离子电池技术特性、充电技术、充电器电路
6、结构、充电器典型电路和电池保 护等方面,多角度地阐述了充电技术发展和应用日勺智能化。绪论1.11.1课题研究CDH勺背景社会信息化进程。日勺加快对电力、信息系统。)日勺安全稳定运行提出了更高。日勺要求。而 各种用电设备都离不开可靠日勺电源,如果在工作中间电源中断,人们日勺生产和生活 都将受到不可估量日勺经济损失。对于由交流供电日勺用电设备,为了避免出现上述不 利情况,所以要设计一种电源系统,它能不问断地为人们日勺生产和生活提供以安全和 操作为目。日勺可靠。日勺备用电源。为此,以安全和操作为目。)日勺。)日勺备用电源设备上都 使用可充电池。电池是、一种化学电源,是、通过能量转换而获得电能日勺器件
7、。二次电池是、可多次反复 使用。日勺电池,它乂称为可充电池或蓄电池。二次电池。日勺工作原理:当对二次电池充 电时,电能转变为化学能,实现向负荷供电,伴随吸热过程。普通充电器多采用大电流 日勺快速充电法、在电池充满后如果不及时结束会使电池发烫,过度日勺充电也会严重 损害电池。)日勺寿命。一些低成本。)日勺充电器采用电压比较法,为了防止过充,一般充电 到90%就停止大电流快充,接着采用小电流涓流补充充电,这样就使充电时间加长了。 好日勺充电器不但能在短时间内将电量充足,而且对锂电池起到一定维护作用,修复由 于记忆造成日勺记忆效应。于是、设计出日勺智能充电器是、采用单片机控制00,可以 检测出电池充
8、电饱和时发出日勺电压变化信号,比较精确日勺停止充电工作,通过单片 机对充电芯片日勺控制实现充电过程。)日勺智能化,以缩短充电时间,延长电池使用寿命。智能充电器还增加了充电电压日勺显示,让我们能看到电池。日勺预充、快充、满充充电 阶段,从而加强对电池日勺维护。1.1.1课题研究CDH勺意义此课题研究日勺对象主要是、锂离子电池日勺充电原理和充电控制。锂离子电池日勺充电设备需要解决日勺问题有:通过单片机日勺控制,简化外围电路日勺复杂性,增加自动化管理设置,减轻充电过程。日勺劳动强度和劳动时间,从而使充电器具有更大日勺灵活性、更高日勺可靠性和成本 低。-改善充电控制不合理而造成过充、欠充等问题,提高电
9、池。日勺使用性能和使用寿命。-可以进行充电前处理,包括电池充电状态日勺鉴定和预处理。-需解决充电时间长、效率低等问题。研究课题日勺意义:-掌握锂离子电池日勺充放电方式和特点,从中找到最佳充电方式及电池管理途径。-完善充电设备日 勺适时处理功能和自诊断功能。-实现充电器具备强大日勺功能扩展性,为智能充电器日勺功能升级提供平台。1.2课题研究CDH勺主要工作本课题主要研究锂离子电池日勺充放电方法,在此基础上进行硬件设计和软件设计,并通过调试结果对充电控制方法测试验证。为了完成智能充电器日勺设计,我需做如下工作:-了解锂离子电池日勺特点和在应用中存在日勺主要问题从而分析实现电池日勺充放电方法和智能充
10、电器H勺实现方法,从而选择合适H勺充电电池芯片。进行硬件电路日勺设计,绘制充电电路原理图。进行软件设计,以C语言为开发工具,进行详细设计和编写程序代码。-调试硬件和软件电路,验证整个设计。2充电技术2.1 2种电池CDH勺充电特性2.1.1锐氢/锐镉电池充电模式这2种锐类电池具有相似。日勺充电特性曲线,因而可以用一样。日勺充电算法。 这2种电池日勺主要充电控制参数为-世 和温度9.对锐氢/锐镉电池由预充电到标准充电转换H勺判据为:单节电池电压水平0.61V;电池温度-50oC. 电池饱和充电日勺判据为:电池电压跌落或接近零增长-N= 615 mV /节;电池最高温度0max 50 C;电池温度
11、上升率 d 0/dt 1.0 C / min。由于温度。)日勺变化 容易受环境影响、因而实际用于判别充电各阶段。日勺变量主要为-世、Omax,其中对-V检测需要有足够00 A/D分辨率和较高日勺电流稳定度.-少日勺测量与A/D分辨率、充电电流日勺稳定性与电池内阻之间有以下关系:当电池内阻等于50 Q(接近饱和充电)时,充电电流=1200mA,电流漂移等于 5%,单节电池日勺最高充电电压为 1.58V,则此时电流漂移可能引起日勺电池电压变化为3 mV。2.1.2锂离子电池日勺特点及充电方式锂离子电池日勺正极材料通常由锂。日勺活性化合物组成,常见日勺正极材料主要成分为LiCo02,负极则是、特殊分
12、子结构日勺碳。充电时,加在电池两级日勺电势迫使正极化 合物释出锂离子,嵌入在负极分子排列呈片层结构日勺碳中。放电时,锂离子则从片层 结构日勺碳中析出,重新与正极日勺化合物结合。于是、锂离子日勺移动产生了电流。重量方面:锂离子电池为 3.6V,锂离子电池。日勺电压是、锐氢、锐镉电池日勺3倍。但 锂离子电池因端电压为 3.6V,在输出同电池日勺情况下,单个电池组合时数目可减少 2/3从而使成型后。日勺电池组重量和体积都减小。施,以监测锂离子电池日勺充放电状态。施,以监测锂离子电池日勺充放电状态。自放电率:锐镉电池为15%30% ,锐氢电池为25%35% ,锂离子电池为2%5% 锐氢电池日勺自放电率
13、最大,而锂离子电池日勺自放电率最小。记忆效率:锂离子电池很少有锐镉电池日勺记忆效应,记忆效应日勺原理是、结晶化,但在锂电池中几乎不会出现这种反应。锂离子电池在几次充电放电后容量仍然会下降, 主要日勺原因从分子层里来看,正负极材料本身日勺变化,正负极上容纳锂离子。日勺空 穴结构会逐渐塌陷,堵塞;从化学角度来看,是 、正负极材料活性钝化,出现副反应生 成稳定。日勺其他化合物。在物理上还会出现正极材料逐渐剥落等情况,降低了电池中可 以自由在充放电过程中移动日勺锂离子数目。记忆效应一般认为是、长期不正确日勺充电导致00,它可以使电池早衰,使电池无法 进行有效日勺充电,出现一充就满、一放就完日勺现象。严
14、格遵循“充足放光” 日勺原 则,即在充电前最好将电池内残余。日勺电量放光,充电时要一次充足,可防止电池出现 记忆效应。对于由于记忆效应而引起容量下降日勺电池,可以通过一次充足再一次性放 光。日勺方法反复数次,大部分电池都可以得到修复。充电方式:过度充电和过度放电,将对锂离子电池。日勺正负极造成永久日勺损坏,从分 子层面看,过度放电导致负极碳过度释放出锂离子而使得其片层结构出现塌陷,过度充 电将把太多日 勺锂离子硬塞进负极碳结构里去,而使得其中一些锂离子再也无法释放出 来。这就是、锂离子电池为什么通常配有充放电日勺控制电路沈勺原因。锂离子电池以恒流转恒压方式进行充电。采用1C充电速率充电至4.1
15、V时,充电器应立即转入恒压充电,充电电流逐渐减小;当电池充足电后,进入涓流充电过程。为避免 过充电或过放电,锂离子电池不仅在内部设有安全机构,充电器也必须采取安全保护措2.2智能充电器在人们日常工作和生活中,充电器日勺使用越来越广泛。从随身听到数码相机,从手机 到笔记本电脑,几乎所有用到电池日勺电器设备都需要用到充电器。充电器为人们日勺 外出旅行和出差办公提供了极大。)日勺方便。随着手机在世界范围内。)日勺普及使用,手机 电池充电器H勺使用也越来越广泛。所谓智能充电器是、单片机参与处理和控制,能根据用户日勺需要自主选择充电方式,并且在充电过程中能对被充电电池进行保护从而防止过电压、电流和温度过
16、高O H勺一种智能化充电器。本课题将通过一个典型实例介绍 AT89S52单片机在实现手机电池充电器方面H勺应 用。此次设计所要实现CDH勺充电器是、一种智能充电器,它在单片机勺控制下,具有 预充、充电保护、自动断电、电压显示和充电完成报警提示功能。2.3设计日勺功能模块2.3.1单片机模块智能日勺实现需要利用单片机控制,经过分析后单片机芯片可以选择Atmel公司日勺AT89S52 ,通过中断控制光耦器件通电和断电。2.3.2充电过程控制模块锂离子电池一般都具有管理芯片和充电控制芯片。其中管理芯片中有一系歹0H勺寄存器,用来存储电容容量、温度、ID、充电状态、放电次数等数值。这些数值在使用中会
17、逐渐变化。充电控制芯片主要控制电池日勺充电过程。锂离子电池日勺充电过程分为两个阶段,恒流快充阶段(电池指示灯呈黄色时)和恒压电流递减阶段(电池指示灯呈绿色闪烁) 恒流快充阶段,电池电压逐步升高到电池日勺标准电压,随后在控制芯片下转入恒压阶段,电压不再升高以确保不会过充现象,电流则随着电池电量H勺上升逐步减弱到0,而最终完成充电。电量统计芯片通过记录放电曲线(电压、电流、时间)可以抽样计算出电池E勺电量。 而锂离子电池在多次使用后,放电曲线是 、会改变日勺,如果芯片一直没有机会再次读 出完整日勺一个放电曲线,其计算出来日勺电量也就是、不准确所以我们需要深充放来校准电池H勺芯片。定时电容C和充电时
18、间Tchg 日勺关系式满足:C=34.33 XTchg最大充电电流Imax和限流电阻Rset关系式满足:Imax = 1400/Rset2.3.3充电电压提供模块由于一般家用电压是+220V交流电压,需要设计一个电压转换电路将+220V交流电压 转换成+5V直流电压。首先用变压器将220V交流电压转换成7V交流电压,经过桥式 整流变成直流电压,再利用电压转换芯片 LM7805将7V直流电转换为5V直流电压。2.3.4光耦模块为了在充满电后能及时关断充电电源,则需要引入一个光耦模块芯片6N137。6N137光耦合器是、一款用于单通道日勺高速光耦合器,其内部由一个 850 nm波长 AlGaAs
19、LED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及 一个肖特基钳位日勺集电极开路日勺三极管组成。具有温度、电流和电压补偿功能,高E勺输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd) , 5mA E勺极小输入电流。 工作参数:最大输入电流,低电平: 250uA最大输入电流,高电平: 15mA最大允许低电平电压(输出高):0.8v最大允许高电平电压:Vcc最大电源电压、输出:5.5V扇质TL负载):8个(最多)工作温度范围:-40 C to +85 C典型应用:高速数字开关,马达控制系统和A/D转换等6N137光耦合器日勺内部结构、管脚如下图所示图1 6N137光
20、耦合器6N137光耦合器日勺电源管脚旁应有一个 0.1uF 日勺去耦电容。在选择电容类型时,应尽量选择高频特性好日勺电容器,如陶瓷电容或钥电容,并且尽量靠近6N137光耦合器勺电源管脚;另外,输入使能管脚在芯片内部已有上拉电阻,无需再外接上拉电 阻。6N137光耦合器)日勺引脚:第6脚Vo输出电路届丁集电极开路电路,必须上拉一个电阻;第2脚和第3脚之间是、一个LED,必须申接一个限流电阻6N137光耦合器日勺真值表如下:6N137光耦合器E勺真值输入“ + ”ENOUTPUT输入“ + ”ENOUTPUT1100010111NC01010NC1表1 6N137光耦合器E勺真值2.3.5电压测试
21、模块该部分采用AD转换来实现充电电压日勺现实。采用中断触发,基本原理是、将一段时间内日勺输入模拟电压 Ui和参考电压UR通过两次积分,变换成与输入电压平均值成正 比O日勺时间间隔、再变换成正比丁输入模拟信00数字量。把模拟信号转换成数字信号,转换原理为:如夺七必.产+农+%舟)其中,n为准换后E勺二进制位数,dn-i d0为具体二进制位。Ur为参考电压,Ua为 显示电压。3设计方案充电过程3.1预充在安装好电池之后,接通输入直流电源,当充电其检测到电池时将定时器复位,从而进入预充过程,在此期间充电器以快充电流日勺10%给电池充电,使电压、温度恢复到正常状体,预充电时间由外接电容 C9确定,如果
22、在预充时间内电池电压达到 2.5V,且电池温度正常,则进入快充过程;如果超过预充时间后,电池电压低于2.5V,则认为电池不可充电,充电器显示电池故障,由单片机发出故障指令,LED指示灯闪烁。3.2快充快充就是、以恒定电流对电池充电,恒流充电时,电池。日勺电压缓慢上升,一旦电池电 压达到所设定日勺终止电压时,恒流充电终止,充电电流快速递减,充电进入满充过程。3.3满充在满充过程中,充电电流逐渐递减,直到充电速率降到设置值以下,或满充超时时,转 入顶端截止充电,顶端截止充电时,充电器以极小日勺充电电流为电池补充能量,由于 充电器在检测电池电压是、否达到终止电压时有充电电流通过电池电阻,尽管在满充和
23、 顶端截至充电过程中充电电流逐渐下降, 减小了电池内阻和其它申联电阻对电池端电压 日勺影响,但申联在充电回路中日勺电阻形成日勺压降仍然对电池终止电压日勺检测有 影响,一般情况下,满充和顶端截止充电可以延长电池5%10%00使用时间。3.4断电当电池充满后,MAX1898芯片日勺2脚/CHG发送日勺脉冲电平会由低变高,这将会 被单片机检测到,引起单片机日勺中断,在中断中,如果判断出充电完毕,则单片机将 通过P2.O 口控制光耦切断L7805向MAX1898供电,从而保证芯片和电池日勺安全, 同时也减小功耗3.5报警当电池充满后,MAX1898芯片内勺2引脚/CHG发送。LED灯会闪烁。但是、,为
24、了安 全起见,单片机在检测到充满状态日勺脉冲后, 不仅会自动切断MAX1898芯片日勺供 电,而且会通过蜂鸣器报警,提醒用户及时取出电池。4锂离子电池充电器硬件设计4.1单片机电路单片机控制设计,电路如下图:电路说明如下:P3.1脚控制发出报警声提示。P3.0脚输出控制光耦器件,在需要E勺时候可以及时关断充电电源。-外部中断0由充电芯片MAX1898 日勺充电状态输出信号经过反向后触发4.1.1 AT89S52I12I1234567S91011121314xJ151617UsU181920JpiorrVccPil/rPl.2POOPl.3P0.1Pl.4P02Pl 5P03Pl.6P0.4Pl
25、 7 ATfl?S5X P 3P0 6RST7VPDP0.7P3 0/RXDEA/VPPps.irrDP3.2/IKTdALE/PRQGP3.3/INT1PSEHP3.4/T0P3 5rriP2.7P3.g/WRP26F3.7/RDP25P24XTAL2P23STALLP22P21GndP2040393837363534:33130rii_252E272625242322n图 3 AT89S52AT89S52是、一个低电压,高性能 CMOS 8位单片机,片内含8k bytes 日勺可反复擦 写日勺Flash只读程序存储器和256 bytes 日勺随机存取数据存储器(RAM ),器件采 用ATM
26、EL公司日勺高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89S52单片机在电子行业中有着广泛 。日勺应用。主要功能特性:兼汕CS51指令系统8kB可反复擦写(大丁 1000次)Flash ROM32个双向I/O 口256x8bit 内部 RAM3个16位可编程定时/计数器中断时钟频率0-24MHZ2个申行中断,可编程 UART申行通道2个外部中断源,共8个中断源2个读写中断口线,3级加密位低功耗空闲和掉电模式,软件设置睡眠和唤醒功能-仟DIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品日勺需求管脚说明:VCC:供
27、电电压。GND :接地。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当P1 00 日勺管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以 被定义为数据/地址日勺第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是、一个内部提供上拉电阻00 8位双向I/O 口,P1 口缓冲器能接收输出 4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉 为低电平时,将输出电流,这是、由于内部上拉日勺缘故。在FLASH编程和校验时,P1
28、 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻00 8位双向I/O 口,P2 口缓冲器可接收,输出 4 个TTL门电流,当P2 口被写“ T时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口刀日勺管脚被外部拉低,将输出电流。这是、由丁内部上拉日勺缘 故。P2 口当用丁外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出 地址日勺高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据 存储器进行读写时,P2 口输出其特殊功能寄存器CDH勺内容。 P2 口在FLASH编程和校 验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是
29、8个带内部上拉电阻勺双向I/O 口,可接收输出4个TTL门电 流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由丁外 部下拉为低电平,P3 口将输出电流(ILL)这是由丁上拉日勺缘故。P3 口也可作为AT89S52 日勺一些特殊功能口,如下表 2所示:管脚备选功能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(外部数据存储器读选通)表 2 P3 口P3 口同时为闪烁编程和
30、编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期勺高电平时间ALE/PROG :当访问外部存储器时,地址锁存允许日勺输出电平用丁锁存地址日勺地位字节。在FLASH编程期间,此引脚用丁输入编程脉冲。在平时,ALE端以不变。日勺频率周期输出正脉冲信号,此频率为振荡器频率日勺1/6。因此它可用作对外部输出勺脉冲或用丁定时目日勺。然而要注意O0W:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX , MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在 外部执行状态AL
31、E禁止,置位无效。EA/VPP :当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH ),不管 是否有内部程序存储器。注意加密方式 1时,EA将内部锁定为RESET;当EA端保持 高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用丁施加12V编程电 源(VPP)。PSEN:夕卜部程序存储器日勺选通信号。在由外部程序存储器取指期I、土专个机器周期 两次PSEN有效。但在访问外部数据存储器时,这两次有效日勺PSEN信号将不出现。XTAL1 :反向振荡放大器日勺输入及内部时钟工作电路日勺输入。XTAL2 :来自反向振荡器勺输出。4.2充电部分该部分为设计日勺主核心部分
32、,电路图如下:220VTRANS1J TOUTW GNDC7 7&L05n R【9 C.l4VLI颁R1(C楹皆 L21 k| T -p220uF/5(iV HOOOuFfiQV220VTRANS1J TOUTW GNDC7 7&L05n R【9 C.l4VLI颁R1(C楹皆 L21 k| T -p220uF/5(iV HOOOuFfiQV图4智能充电器日勺主核心电路4.3充电电压转换,实现电路模块如下:图6充电电压转换电路首先用变压器将220V交流电压转换成7V交流电,经过桥式整流变成直流电,再利用 电压转换芯片LM7805将7V直流电压转换为5V直流电压4.4光耦控制部分,实现电路如下:图
33、7 6N137 光耦控制电路充电电压显示,该部分其实就是、一个AD转换,原理图如下:图85锂离子电池充电器软件设计 5.1程序功能单片机AT89S2052和LM7805 日勺智能电池充电器日勺程序需要完成以下日勺功能:通WHG信号引起INT0外中断。在两次中断中使用T0计数,判断是、否充电完毕。如果充电完毕,则控制P1.2和P1.3引脚,输出低电平。5.2程序流程图智能充电器日勺程序流程图简介:外部中断0设为边沿触发;中断第一个下降沿 T0开始计数一第二次下降沿一停止T0计数读取T0计数器中断返回开始e图9等待外部信号输入图10外部中断程序图11图11定时程序5.3程序代码及说明#includ
34、e 相关控制#include /lcd12864相关控制#include #include sbit CTRL_UP=P2A0;sbit CTRL_DOWN=P2A1;sbit ADCOE=P2A6;sbit ADCSTART=P2A7;sbit ADCALE=P2A5;sbit ADCA=P2A4;sbit ADCB=P2A3;sbit POWERKK=P1A4;#define ADCDATE P0sbit KEY1=P3A7;sbit KEY2=P3A5;sbit KEY3=P3A6;void InitSys();/ 初始化系统void InitInt();/ 初始化外部中断void In
35、itTimer();/ 初始化定时器,申口中断void SendSerialData();/启动并发送一组申口数据void StartADC();/ 选择通道n,开始转换void ShowAllTime();/ 显示完整日勺时间unsigned char g_myPar15 、g_CurSend;/g_t10、g_t11、g_t20、g_t21、g_t30、g_t31、g_n、g_U0、g_U1p、g_U1f、g_U2、g_U3、g_Th、g_Tm、g_Ts;参数顺序bit bSerialSending;unsigned char g_time6;unsigned char g_CurIn;u
36、nsigned char code g_adda=(0、1、1、0、1;unsigned char code g_addb=(1、0、0、0、1;unsigned char code g_ctrlu=(1 、1、1、0、0;unsigned char code g_ctrld=(0 、1、0、1、1;unsigned char g_tt10 、g_tt11、g_tt20、g_tt21、g_tt30、g_tt31;unsigned char CutState;bit CurTR0、Curctrlu、Curctrld;float SqrtDuty;unsigned char g_Percent;v
37、oid main()(/DelayMs(10);/Delay4us(10);InitSys();DelayMs(1200);InitLCD();InitLCDshow(0);InitInt();/初始化外部中断0InitTimer();/初始化定时器0,申口中断bSerialSending = 0;/ bLinking = 0;/WriteLCD(0、0 x80);/DspNumber(123);StartADC();while(1)(if(KEY1=0)/ 充电(TR1 = 0;CutState = 0;POWERKK = 1;InitLCDshow(0);TR0 = 1;g_myPar0=
38、g_tt10;g_myPar1=g_tt11;g_myPar2=g_tt20;g_myPar3=g_tt21;g_myPar4=g_tt10;g_myPar5=g_tt11;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC();ShowAllTime();DelayMs(100);else if(KEY2=0)/ 放电(TR1 = 0;CutState = 1;POWERKK = 1;InitLCDshow(1);TR0 = 0;
39、g_CurIn = 0;CTRL_UP = 1;CTRL_DOWN = 0;TR1 = 1;StartADC();ShowAllTime();DelayMs(100);else if(KEY3=0)/ 维护(TR1 = 0;POWERKK = 0;CutState = 2;InitLCDshow(2);TR0 = 1;g_myPar0=0 xff;g_myPar1=0 xf0;g_myPar2=0 xfe;g_myPar3=0 x74;g_myPar4=0 xff;g_myPar5=0 xf2;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1
40、);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC();ShowAllTime();DelayMs(100);/初始化系统void InitSys()unsigned char i;for(i=0;i6;i+)g_timei=;ADCOE = 1;ADCALE = 0;ADCSTART = 0;POWERKK = 1;g_myPar0=0 xff;/0 x30g_myPar1=0 x30;g_myPar2=0 xff;g_myPar3=0 x30;/0 x30g_myPar4=0 xff;g_myPar5=0 x30;g_tt10
41、 = 0 xff;g_tt11 = 0 x30;g_tt20 = 0 xff;g_tt21 = 0 x30;/*g_myPar0 = 0 x80;/g_TH1g_myPar1 = 0 x00;/g_TH2g_myPar2 = 0 x00;/g_TH3*/g_myPar6 = 6;SqrtDuty = sqrt(0.5);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);/初始化外部中断void InitInt()(IT0 = 1;/ 0/1低电平7下跳变PX0 = 1;/中断优先级/EX0 = 1;/EA = 1;初始化定时器,申口中断void InitTimer(
42、)(TMOD = 0 x11;/ 使用高4位0/1/2/3 13 位/16位/8位自动重载/双8位TH0 = (65536 - 49235) / 256;TL0 = (65536 - 49235) % 256;PT0 = 1;TR0 = 1;/开启定时器0ET0 = 1;TH1 = (65536 - 49235) / 256;TL1 = (65536 - 49235) % 256;TR1 = 1;/开启定时器1ET1 = 1;TCLK=1;RCLK=1;TH2=0 xFF; /19200bps 22.1184MHz日勺时钟频率TL2=0 xDC;RCAP2H=0 xFF; / 方式 1 和方式
43、 3 日勺波特率=fosc/(32-(65535-(RCAP2HRCAP2L)RCAP2L=0 xDC;TR2=1;/ET2=1;SCON = 0 x50;/申口方式1,允许接收PCON = 0 x00;/关闭波特率加倍PS = 1;/设置申口中断为高优先级ES = 1;/开申口中断/TH1 = 0 xfd;/ 申口通信使用定时器1,设定波特率9600/TH1 = 0 xf3;/ 申口通信使用定时器1,设定波特率2400EA = 1;/开始发送申口数据void SendSerialData()if(!bSerialSending)bSerialSending = 1;g_CurSend = 0
44、;SBUF = g_myParg_CurSend;g_CurSend+;/开始ADC转换void StartADC()CurTR0 = TR0;TR0 = 0;g_CurIn=0;ADCA = g_addag_CurIn;ADCB = g_addbg_CurIn;CTRL_UP = g_ctrlug_CurIn;CTRL_DOWN = g_ctrldg_CurIn;Curctrlu = CTRL_UP;Curctrld = CTRL_DOWN;ADCALE = 1;ADCALE = 0;ADCSTART = 1;ADCSTART = 0;EX0 = 1;/倒序转换unsigned char R
45、everse(unsigned char num)(unsigned char i 、rtTmp;rtTmp = 0 x00;for(i=0; i8; i+)(rtTmp = 1;return rtTmp;/显示完整CDH勺时间void ShowAllTime()(WriteLCD(0、0 x98+4);WriteLCD(1、g_time0);/ 时WriteLCD(1、g_time1);WriteLCD(1、:);WriteLCD(1、g_time2);/ 分WriteLCD(1、g_time3);WriteLCD(1、:);WriteLCD(1、g_time4);WriteLCD(1、g_
46、time5);外部中断0服务程序void Int0() interrupt 0g_myPar7+g_CurIn = ADCDATE;g_CurIn+;if(g_CurIng_myPar6)(i = 0;CTRL_UP = 1;CTRL_DOWN = 0;TH0 = g_myPar4;TL0 = g_myPar5;else(CTRL_UP = 1;CTRL_DOWN = 1;TH0 = g_myPar2;TL0 = g_myPar3;else(j = 1;CTRL_UP = 0;CTRL_DOWN = 1;TH0 = g_myPar0;TL0 = g_myPar1;定时器1中断服务程序void
47、Timer1() interrupt 3static unsigned char i 、j;unsigned char temp_data2;unsigned char presence 、k;TH1 = (65536 - 60730)/ 256;TL1 = (65536 - 60730) % 256;i+;if(i24)/时间显示(i=0;g_time5+;g_myPar14+;if(g_time5 0 x39)/ 秒个位(g_time5 = 0 x30;g_time4+;if(g_time4 0 x35)/ 秒十位(g_time4 = 0 x30;g_time3+;g_myPar14 =
48、0;g_myPar13+;if(g_time3 0 x39)/ 分个位(g_time3 = 0 x30;g_time2+;if(g_time2 0 x35)/ 分十位(g_time2 = 0 x30;g_time1+;g_myPar13 = 0;g_myPar12+;if(g_time1 0 x33)/ 时个位(g_time1 = 0 x30;g_time0+;if(g_time0 0 x39)/ 时十位(g_time0 = 0 x30;g_myPar12=0;/时十位/时个位WriteLCD(0、0 x98+4);WriteLCD(1、g_time0);WriteLCD(1、g_time1)
49、;/分十位WriteLCD(0、0 x98+5);WriteLCD(1、:);WriteLCD(1、g_time2);/分个位WriteLCD(0、0 x98+6);WriteLCD(1、g_time3);/秒十位/秒个位WriteLCD(0、0 x98+7);WriteLCD(1、g_time4);WriteLCD(1、g_time5);/显示充/放电状态j+;switch(j)case 1:WriteLCD(0、0 x98+2);WriteLCD(1、);WriteLCD(1、);WriteLCD(1、);StartADC();break;case 2:WriteLCD(0、0 x98+2
50、);WriteLCD(1、.);break;case 3:WriteLCD(0、0 x98+2);WriteLCD(1、.);WriteLCD(1、.);break;case 4:WriteLCD(0、0 x98+3);WriteLCD(1、.);j = 0;break;default:j = 0;presence = Init_DS18B20();if(presence=0)WriteOneChar(0 xCC); / 跳过 ROM 匹配操作Delay4us(10);WriteOneChar(0 x44); /启动温度转换presence = Init_DS18B20();if(presen
51、ce=0)(WriteOneChar(0 xCC); / 跳过 ROM 匹配操作Delay4us(10);WriteOneChar(0 xBE); / 读取温度寄存器Delay4us(10);temp_data0 = ReadOneChar(); / 温度低 8 位Delay4us(10);temp_data1 = ReadOneChar(); / 温度高 8 位if(presence=0)(if(temp_data1=0 xff) presence=1;if(g_CurIn = 5)(for(k=0;k100) g_Percent = 0;if(CutState=0)/ 充电模式(g_tt1
52、0 = (65536-5*(105-g_Percent)/256;g_tt11 = (65536-5*(105-g_Percent)%256;g_tt20 = (65536-5*(5+g_Percent)/256;g_tt21 = (65536-5*(5+g_Percent)%256;g_myPar0=g_tt10;g_myPar1=g_tt11;g_myPar2=g_tt20;g_myPar3=g_tt21;g_myPar4=g_tt10;g_myPar5=g_tt11;SqrtDuty = sqrt(1-g_Percent/100.0);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);g_CurIn = 0;if(CutSt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搬迁安置协议书
- 五年级语文下学期工作总结
- 商场美工工作计划范文
- 酒泉职业技术学院《景观建筑虚拟设计》2023-2024学年第二学期期末试卷
- 协会战略合作协议书范本
- 湖南高速铁路职业技术学院《测量学》2023-2024学年第二学期期末试卷
- 哈尔滨电力职业技术学院《广告摄像》2023-2024学年第二学期期末试卷
- 广东外语外贸大学《商标法案例分析》2023-2024学年第二学期期末试卷
- 湘教版数学七年级上册《3.1 建立一元一次方程模型》听评课记录3
- 珠海艺术职业学院《会展安全与危机管理》2023-2024学年第二学期期末试卷
- 河南2025年河南职业技术学院招聘30人笔试历年参考题库附带答案详解
- 2025年长沙穗城轨道交通有限公司招聘笔试参考题库含答案解析
- 2024年湖南有色金属职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 生物-辽宁省大连市2024-2025学年高三上学期期末双基测试卷及答案
- 2025年山东华鲁海运有限公司招聘笔试参考题库含答案解析
- 《民营企业清廉建设评价规范》
- 银川经济技术开发区2024年综合考核评价指标表及评分细则
- 智能RPA财务机器人开发教程-基于来也UiBot 课件 第2章-常用机器人流程自动化
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 读书分享《给教师的建议》课件
- 广东省茂名市2023-2024学年高一上学期物理期末试卷(含答案)
评论
0/150
提交评论