毕业设计智能电源设计

上传人:1888****888 文档编号:39406294 上传时间:2021-11-10 格式:DOC 页数:34 大小:570.51KB
返回 下载 相关 举报
毕业设计智能电源设计_第1页
第1页 / 共34页
毕业设计智能电源设计_第2页
第2页 / 共34页
毕业设计智能电源设计_第3页
第3页 / 共34页
点击查看更多>>
资源描述
扬 州 大 学毕 业 设 计(论 文)设计(论文)题目: 智能电源设计系 别:专 业:电子信息工程班 级:姓 名:孙磊学 号:指导教师:完成时间:2012/4/24 目 录1 引言(或绪论)41.1 课题研究的意义和背景 4 1.1.1 电源技术的意义 41.1.2 智能电源的背景 6 1.2 本课题的研究内容 72 系统方案与选择82.1 开关电源模块的论证与选择82.2 单片机供电电源模块的论证与选择 82.3 单片机控制模块的论证与选择 82.4 设计目标与总体设计框图 82.4.1 设计目标 82.4.2 总体框图 83 系统硬件设计 103.1 可控DC-DC电源电路设计103.2 单片机供电电路103.3 单片机控制电路113.4 AD转换的基本概念123.4.1模数转换定义123.5液晶(LCD)显示模块134 系统软件设计154.1程序功能描述与设计思路 154.2 程序流程图 155 测试方案与测试结果165.1测试方案 165.2测试条件与仪器 165.3测试结果及分析 16 5.3.1恒压充电测试数据165.4充电时间测试17 5.4.1测试结果(数据) 17结论 19致谢 20参考文献21附录A 电路原理图1 23附录B 电路原理图2 23附录 C 电路原理图323附录 D 主程序清单25智能电源设计孙西磊摘要:本系统由宏晶科技集团的8位高速低功耗单片机STC12C5204AD为控制核心,产生两路PWM来驱动开关管SFR9034 MOS管结合自带的AD做反馈,做成两路可控的DC-DC电源,当改变负载的时候,通过改变PWM来控制输出电压,稳定输出电在8V左右,然后通过单片机算法算出各DC-DC模块的电流及总的电流。按照设计要求,再次调节PWM,使电流按比例分配,同时在采样电流的过程中,可以做限流控制,达到保护的作用。关键词: SFR9034; STC12C5404AD; AD采样 ;比例电流输出扬州大学毕业设计(论文) 第33页共33页1 引言(或绪论)电力电子技术的发展带动了电源技术的发展,而电源技术的发展有效的促进了电源产业的发展。到现在为止电源已经成为非常重要的基础科技和产业,并广泛应用于各行各业。从目前来看,智能电源在电子玩具行业的发展前景将会很大。智能电源是一种常见的电子仪器,并广泛地应用于电子电路、教学实验、和科学研究等领域。随着电子技术的飞速发展,各种电子、电器设备对智能电源的性能要求日益提高,智能电源不断朝着小型化、模块化、高效率、低成本、高可靠性、低电磁干扰方向发展。以单片机系统为基础而设计制造出来的新一代智能电源不但电路简单、结构紧凑、价格低廉、性能卓越,而且由于单片机具有计算和控制能力,利用它对采样数据进行各种计算,从而可排除和减少干扰信号以及模块电路引起的误差,大大提高智能电源输出的电压精度。智能电源可利用单片机设置紧密的保护监测系统,确保电源运行可靠。输出电压采用数字显示,输入采用键盘方式,操作实用方便,具有较高的实用价值。1.1 课题研究的意义和背景1.1.1电源技术的意义电源设备是电子仪器的一个重要组成部分,在科研及实验中都是必不可少的,电源种类繁多,也没有明确的划分标准,习惯上, 按照调整管的工作方式的不同可将直流稳压电源划分为线性直流稳压电源和开关型稳压电源两大类,下面我们将主要讨论线性稳压电源。 在实际的工作环境下,特别是在一些工业场所,各种用电设备纵横交错,电磁环境十分恶劣,设备仪器在使用过程中常常会被暴露在异常状况工作环境之下, 例如过电压、瞬态脉冲冲击波、强电磁辐射等,这些都会影响设备的正常运行,严重时甚至会损坏电源,以至于影响整个系统的工作,这就对电源设备的可靠性提出了严格要求。人们已经研制成了许多模拟电压源,这些电压源各有各的优点,例如成本低、简单、负载可以接地等。在自动控制仪表中,常要求按一定输入值输出相应精度电压,但是一般的电压源往往是固定的一种电压值,或有限的数档电压值,不便于通用。常见的直流稳压电源,大都采用串联反馈式稳压原理,通过调整输出端取样电阻支路中的电位器来调整输出电压。由于受电位器阻值变化的非线性和调整范围窄所限,普通直流稳压电源难以实现输出电压的精确调整。在目前所使用的直流可调电源中,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。近年来,随着微电子技术的发展,新器件的研制、生产周期日益缩短,电子技术中遇到的许多难题将通过寻求新器件的办法解决。各种各样的D/A转换器已可实用,便可以方便的对电压值进行数字控制,这样就可以比较经济地构建数控直流稳压电源【28】之类的电路。单片机相关的应用技术更是有了迅猛的发展,众多功能各异、结构不同、供应状态不一的单片机可供用户选择,如支持ISP(在线更新程序)功能的89S51系列芯片,低电压、高性能8位CMOS芯片AT89C51,以及具有内部集成D/A、A/D转换器的单片机C8051F02等等。将低价位的单片机引入电源设计中,以单片机作为核心部件,利用键盘产生中断,利用中断服务程序实现各模块的功能成为当前国内外数控电源设计的主流。本课题将单片机数字控制技术有机地融入直流稳压电源的设计中, 设计出一款高性价比的多功能数字化通用智能型直流稳压电源。该电路具有电压调整简便,读数直观,电压输出稳定,便于智能化管理的特点,可以有效地克服传统电源的不足。集成芯片的不断发展,亦大大简化了电源的设计,电源工程师们不用一步一步地去连接复杂的电路,因为各部分的电路都集成在各部分的功能模块中,只需将其封装起来,构成模块整体,这样,电源的设计、制作以及故障维修也相对比较简单了,当需要用到某些功能时,只需要将那些功能模块连接起来组成一个整体电路,再经过调试和测试便可以达到其特定功能,如果整体电路中的某个部分出现了错误,那么可分别对各模块进行检查,维修起来自然比较方便。本设计中的数控电源就是模块设计中的一个比较好的应用。它的主要功能部分都运用了集成芯片,用户不需要知道各芯片的内部电路是怎样连接的,只需要知道各芯片管脚的功能和用法就可以了。数字化智能电源模块是针对传统电源模块的不足提出的,数字化能减少使用过程中的不确定因素和人为参与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。电源采用数字控制,具有以下明显优点:1)可以方便地采用先进的控制方法和控制策略,使电源的智能化程度更高,性能更完美。2)在不改动硬件电路的基础上可方便地对系统升级,维护方便。3)系统的可靠性高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,不同的性能要求可通过对控制软件做相应的修改来实现。1.1.2智能电源的背景数字电源的特点与发展现状分析随着半导体工艺技术的不断升级,电路板上的元器件运行速度更快、体积更小,而且还要求更多、更低的供电电压和更大的供电电流;最终系统的功能不断增加,平均售价却不断下降。此外,用户对电源的故障修复时间、电源运行状态的感知与控制的要求越来越高,电源设计人员不再满足于实时监控电流、电压、温度, 还提出了诊断电源供应情况、灵活设定每个输出电压参数的要求。这些需求已是今日的模拟解决方案难以满足的。因此,作为电源管理发展的新思路的数字电源应运而生,其目标就是将电源转换与电源管理架构用数字方法集成到单芯片中,实现智能、高效的转换与控制及通信。数字电源是采用数字方式实现电源的控制、保护回路与通信接口的新型电源技术。可编程、响应性和数字环路控制是表征数字电源的3个主要特征。随着电源系统的性能和功率的不断提高,实现电源性能指标所必需的元件数量和成本也随之增加,越来越多的控制需要通过具有成本效益的数字电路实现。一般认为,在设计DC/DC变换器时,通常100W以上的系统中会应用数字控制技术;而在设计AC/DC变换器时,250W以上的系统会应用数字技术,这样电源的经济性会更高一些。因此,在未来的电源系统中,模拟与数字技术将共存相当一段时间。30年前,电源行业转向开关电源是一个很大的变化,而电源数字化趋势将会是一个更大的变化。模拟电源的优势与不足目前,除了一些专门用于微处理器的转换器之外,市场上大多数砖形转换器、中间总线转换器及负载点POL转换器仍采用模拟控制。这是因为许多模拟电源系统经过了多年的检验,可靠性还是很高的。可尽管模拟电源解决方案的成本、性能(如负载变化时的电源响应时间)、占板面积等指标都优于当前的数字电源解决方案,但对开发人员来说,它完全是一种固定模式的黑盒应用,抑制了开发人员发挥创造力的激情。对电源进行同步跟踪、电压排序、故障诊断及适应环境变化的能力还是比较差的。目前,许多高性能的DC/DC转换器仍通过简单的无源器件产生的模拟信号进行设置和控制。即使是具有最先进拓扑结构的高性能转换器,也还需要使用外部电阻、电容来确定诸如启动时间、输出点值及开关频率等参数。这些电阻、电容的值都是设计调试时确定的,制造完成后不可轻易更改,因此自适应的电 源管理方案也就不可能实现。而且,为实现更多功能,就要设计更多的直接反馈电路,所以模拟控制环路会变得非常复杂。传统的模拟控制架构已经使用多年,但仍有不少缺陷。举例来说,模拟控制电路因为使用许多元器件而需要很大空间,这些元器件本身的值还会随使 用时间、温度和其他环境条件的变化而变动,从而对系统稳定性和响应能力造成负面影响。模拟控制的控制-响应特性是由分立元器件的值决定的,它总是面向一个范围狭窄的特定负载,因此无法为所有电压值或负载点提供最优化的控制响应。换句话说,如果你需要一个可以在很多产品中重复使用而不必更换部件的设计平台, 则模拟方案难以胜任。除此之外,模拟系统的测试和维修都非常困难1.2 本课题的研究内容本课题拟设计一种基于单片机的智能直流稳压电源。该电源通过不断地采集输出端的实际输出电压,转换为数字量后传送到单片机结合用户预置电压值进行相应计算,然后输出控制信号到D/A转换器,控制电压调整电路,以实现对数控直流稳压电源的输出电压的精确控制。由电压的控制过程可知,本电源系统通过内嵌在单片机程序存储器中的PID控制算法,结合扩展的ADC和DAC构成了先进的数字闭环控制回路,无疑可以大大提高稳压电源的性能。本系统设计输出可调电压范围为2V到12V,同时要求输出电压值可由键盘方便、直观的输入,电压精确到0.1V。设计电压调整方法和控制算法,使系统实现预置电压输入调整方便,输出电压电流值数字显示等预期目标。课题需要完成的工作:自行设计数控直流稳压电源及备用电源的硬件电路,并编制其汇编程序代码。2 系统方案与选择本系统主要由开关电源模块、单片机供电电源模块、单片机控制模块组成,下面分别论证这几个模块的选择。2.1 开关电源模块的论证与选择方案一:选用N沟道MOS管。这种类型的场效应管使用到电路中效率相对较低。方案二:选用P沟道MOS管。这种类型的场效应管使用到电路中效率相对较高。综合以上两种方案,选择方案二。2.2单片机供电电源模块的论证与选择方案一:利用三端稳压器L7805稳压。成本低,电压稳定性好,但是效率很低。方案二:采用开关芯片MC34063稳压。成本低,电压很稳定,效率90% 以上。综合以上两种方案,选择方案二。2.3 单片机控制模块的论证与选择方案一:采用89C52单片机。需要配合AD转换芯片使用,增加了电路的制作难度,而且自身不能产生PWM。方案二:使用STC12C5204AD单片机。自身带有AD转换功能,不需要使用AD转换芯片,有所降低成本,而且电路自作难度有所降低。而且还能产生PWM综合考虑采用方案二。2.4 设计目标与总体设计框图2.4.1 设计目标(1).调整负载电阻至额定输出功率工作状态,供电系统的直流输出电压U0=8.00.4V。(2).额定输出功率工作状态下,供电系统的效率不低于60%。(3).调整负载电阻,保持输出电压为U0=8.00.4V,使两个模块输出电流之和为I0=1A且按I1:I2=1:1模式制动分配电流,每个模块的输出电流的相对误差的绝对值不大于5%。(4).调整负载电阻,保持输出电压为U0=8.00.4V,使两个模块输出电流之和为I0=1。5A且按I1:I2=1:2模式制动分配电流,每个模块的输出电流的相对误差的绝对值不大于5%。(5)调整负载电阻,保持输出电压UO=8.00.4V,使负载电流IO 在1.53.5A之间变化时,两个模块的输出电流可在(0.52.0)范围内按指定的比例自动分配,每个模块的输出电流相对误差的绝对值不大于2%。(6)调整负载电阻,保持输出电压UO=8.00.4V,使两个模块输出电流之和IO =4.0A 且按 I1:I2=1:1 模式自动分配电流,每个模块的输出电流的相对误差的绝对值不大于2%。(7)额定输出功率工作状态下,进一步提高供电系统效率。(8)具有负载短路保护及自动恢复功能,保护阈值电流为4.5A(调试时允许有0.2A 的偏差)。2.4.2 总体框图总体的设计框图如图所示。RLU0U2U3U1AC220V变压器整流电路滤波电路稳压电路U图1 总体框架图3 系统硬件设计3.1可控DC-DC电源电路设计本系统的开关电源输入电压由外界提供,电压为24V,而脉宽由STC2C5204AD单片机提供,频率为24KHz。由于输出输入电压为24V,我们选用SFR9034的MOS管作为开关管,因为单片机输出的PWM无法直接控制开关管的导通与截止,所以由PWM控制频率特性为100MHz的9014三极管处于饱和与截止的状态来控制MOS管的导通与截止。由于两个开关电源并联使用,有时输出电流过大以及防止电流倒灌或停止工作,故在输出端分别接了大电流肖特基二极管IN5822。设计如图2所示。图2 可控DC-DC电源电路3.2单片机供电电路 单片机工作电压在3.5V至5.5V之间,而外界提供的电压为24V,如果直接用L7805三端稳压器件稳压,L7805必然发热,导致整个系统的效率降低。在这里我们使用双极型线性集成芯片MC34063。片内包含有温度补偿带隙基准源、一个占空比周期控制振荡器、驱动器和大电流输出开关,能输出1.5A的开关电流。它能使用最少的外接元件构成降压式变换器。图3 单片机供电电路3.3单片机控制电路 本系统采取的是宏晶科技公司生产的STC12C5204AD单片机,能产生两路独立的PWM来控制两路DC-DC电源,并且通过自带的AD模块来采样两路DC-DC电源输出电流,从而调整PWM的占空比来分配电流输出。也能够让操作人员通过按键预设比例值,预设的比例值会通过LED以4位二进制形式显示出来,S4是进入设置键,S1键设置比例加,S2键设置比例减,S3确认键,电路如图4所示。 图4 单片机控制电路 3.4 AD转换的基本概念3.4.1模数转换定义将时间连续、幅值也连续的模拟信号转换成为时间离散、幅值也离散的数字信号。(1) 步骤取样量化编码保持 (2) STC单片机的ADSTC12C5A系列单片机P1口的第二功能可做为模数转换接口使用。该系列单片机集成8路10位电压输入型高速A/D。这8路A/D的转换速度可达25万次/秒,用于温度检测、电池电压检测、按键扩展和频谱扫描等。STC12C5A系列单片机P1口功能选择可通过特殊功能寄存器P1ASF设置实现。当P1ASF的相应位置1时,该位被设置为A/D模拟输入通道;当P1ASF对应位设置为0时,该位作为通用I/O使用。STC12C5A系列单片机模数转换模块上电、转换速度、模拟输入通道的选择、启动模数转换及转换状态可通过模数转换控制寄存器ADC_CONTR进行配置及查看。ADC_POWER为ADC电源控制位,当ADC_POWER置1时,打开模数转换器电源;为0时关闭模数转换器电源。进入空闲模式时,应关闭模数转换器电源降低功耗。初次打开模数转换器电源应适当延时以稳定模数转换器电源,保证模数转换精度。SPEED1和SPEED0为模数转换速度控制位ADC_FLAG为模数转换完毕标志位。当A/D转换完成后,该位置1,需要由软件清零。无论A/D工作于与查询方式还是中断方式,ADC_FLAG只能由软件清零。须注意,读取ADC_CONTR设置ADC_START为模数转换器转换启动控制位,设置为1时,启动A/D转换,转换完毕,自动清零。3.5液晶(LCD)显示模块4 系统软件设计4. 1程序功能描述与设计思路1、程序功能描述通过单片机对两个开关电源模块的控制,使得每个电源模块的输出电流按照程序所设定的比例或是键盘输入的比例来调整。在键盘输入处理时:当单片机正在运行时若检测到中断信号,则单片机暂停当前工作并关闭当前PWM输出,等待操作人员输入指定的电流比例;当输入完毕后键盘服务程序退出。2、程序设计思路本系统是通过单片机对两个开关电源模块的PWM分别控制,并根据反馈回来的比例参数进一步调整两个电源模块的电流。最终使得反馈回的电流比例与所设定的比例相等。调整过程为单片机上电后,先稳定输出一个8伏的电压,维持几十个毫秒,接着通过AD端采样并计算得到当前流过负载的总电流,并且得到两路电源流经负载的电流比值;将此比值同设定比例比较,如不等则调整两个电源模块是的最终各电源模块输出的电流比例与预设比例相等。4.2程序流程图主程序流程图5所示 图5 程序主流程图 图 5 测试方案与测试结果5.1测试方案1、硬件测试用信号发生器对制作的电路加上相应的脉宽能够稳定到8V且当输出功率为32W时数出效率接近80%。2、软件仿真测试通过KEIL软件仿真,按照控制要求,各方面测试正常。3、硬件软件联调在开发板上接硬件联调,接可调负载,看输出电压是否稳定在8V,调整负载为4欧姆,通过取样电阻上的电压算出两路DC-DC的电流比是否为1:1,再调整为6欧姆,看电流比是否为1:2,再调整负载,使其在6欧姆至2.3欧姆之间(总电流为1.5A3.5A)时,通过键盘输入0.52中的任意比值时,看两支路电流分配是否满足要求;再调整负载为2欧姆时,通过测量两路DC-DC的电流比是否定为1:1。整个测试过程中监控误差是否满足要求。5.2 测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:模拟示波器,数字万用表。 直观显示:液晶显示电压。5.3 测试结果及分析5.3.1恒压充电测试数据本实验利用两个相同设计好的充电器对3、4、5节镍氢电池进行充电实验,并全程记录相关数据,只在测量充电器对电池充电电压控制的精度,以及距离电池极限电压的差值。测试数据如表3所示。表3 恒压充电测试数据表电池数量电压设定程序代码模块编号电压(峰值)DEALT_V距极限电压3恒压OUT_ VOUTAGE(112)A4.36V0.025V0.115VB4.3854恒压OUT_ VOUTAGE(148)A5.75V0.0240.226VB5.774V5恒压OUT_ VOUTAGE(188)A7.261V0.0550.226VB7.316V5.4 充电时间测试5.4.1测试结果(数据)(1).调整负载电阻至额定输出功率工作状态:电池数耗时恒压值34.8小时4.380V44.9小时5.840V55小时7.300V 输出电压效率7.96V73.4%(2). 调整负载电阻,使两个模块输出电流之和为1.0A、1.5A时和4A时:总电流电源1电流电源电流2 两者之比输出电压1.0A0.50A0.50A1:17.99V1.5A0.50A1.00A1:28.004A1.98A2.02A1:18.00(3). 调整负载电阻,使负载电流IO在1. 53.5A之间变化时 (测试点2A):指定比例电源1电流(A)电源2电流 (A) 两者之比输出电压(V)0.50.41.60.38.000.60.561.440.48.000.70.661.340.58.000.80.761.240.68.000.90.881.120.88.001.00.981.021.08.001.11.040.961.18.001.21.080.921.28.001.31.120.881.38.001.41.180.821.48.001.51.20.81.58.001.61.240.761.68.011.71.280.721.78.011.81.30.71.88.021.91.340.662.08.022.01.360.642.18.01(4.)保护阈值电流测试输出总电流(A)保护响应4.3A是 结 论根据上述测试数据,由此可以得出以下结论:1、系统的整个调节过程中输出电始终是8V,效率达到75%以上。2、在总电流分别为1A或4A时,电流分配比始终为1:1,误差小于2%。1.5A时电流分配为1:2。3、在总负载电流为1.5A3.5A之间变化时,通过键盘给定指定比例,测试结果显示两者电流之比呈递增关系,存在细微误差。综上所述,本设计达到设计要求。致 谢感谢我的导师!导师虽然平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料到设计任务及方案的确定和修改,中期的检查,后期详细设计、方案的验证等整个过程中都给予了我耐心细致的指导。除了敬佩导师很老师扎实的专业知识和广博的视野外外,他治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 最后,向所有关心我、支持我的人们致谢!向我的母校致谢!祝愿母校的明天更美好!职大的校园更加和谐!参 考 文 献:1 魏秀芬,张国恒. N沟道增强型MOS管的工作原理及特性曲线. 甘肃高师学报,2002, 7(5): 27282 张军涛. 单片机热敏电阻温度计. 机械研究与应用,2004,4(17):66683 毛兴武,姜宁. 温度传感器MM1522及温度开关MM1523/1524. 电子世界,2003,3:494 刘美俊. 基于AT89C2051单片机的智能充电器设计. 电子质量,2004,7:78795 钟国华,吴玉广. 锂电池保护电路的芯片设计. 通信电源技术,2003,5:18216 李晓延. 多节锂离子电池的充放电保护. 今日电子,2008,7:37387 蒋新华. 锂离子电池组应用电路研究:硕士学位论文. 上海:中国科学院上海微系统与信息技术研究所,20058 路秋生. 锂离子电池充电保护集成电路UCC3957. 电子产品世界,2004,8:64669 候宇,王肖. 锂离子电池充电供电保护电路的设计. 光电技术应用,2009,24(3):505510 康华光,陈大钦. 电子技术基础. 北京:高等教育出版社,1999. 15519511 姜志海,黄玉清,刘连鑫. 单片机原理及应用. 北京:电子工业出版社,2009.10117012 阎石. 数字电子技术基础. 北京:高等教育出版社,2001:15016013 曲学基,王增益,曲敬铠. 稳定电源电路设计. 北京:电子工业出版社,2003:94514 孙涵芳,徐爱卿. 单片机原理及应用. 北京:北京航空航天大学出版社,1996. 2025 15 郝立军. 直流稳压电源的设计方法. 农业机械化与电气化,2007,1:495016 曾素琼. 基于AT89C52和IW1692的智能开关电源设计与研究. 低压电器,2009,13:424417 毛志强. 数控直流稳压电源及系统设计. 机电产品开发与创新,2010,23(3):18618718 许艳惠. 一种智能化高精度数控直流电源的设计与实现. 微计算机信息,2007,23(11-2):13613819 王翠珍. 可调直流稳压电源电路的设计. 中国测试技术,2006,32(5):113115 20 周凯汀, 郑力新. 一种简单优质的双端可调功率直流稳压电源的设计与分析J. 电子与自动化, 1999, 28:222421 沈国帅,孟晓风,王拂为,等. 基于数字闭环的程控电源. 航空计测技术,2004,24(4):151822 张亚迪,姚宏宇,余梦泽,等. 一种低压程控电源的设计. 电源技术应用,2005,8(3):384023 黄培根. 如何在Protel 99 SE中创建新的元件外形. 电子世界,2005,11:3536附录A:电路原理图1附录B:电路原理图2附录C:电路原理图3 附录D:主要程序清单(一)main.c/* * 说 明 :main * 参 数 :无 * 返回值 :无*/#includeconfig.hmain()/有无电池,可充标志,电池拿掉 电池加上 unsigned char *p,flag1=0,flag2=0,flag3 = 0,n = 0,flag4=0,flag5=0;p = &flag4;SYS_TIME_INIT();ADC_INIT();PWM_INIT();delay(5000);while(1) flag1 = test();CR=1; if(flag1=0|flag4=1) GRE_ON(); NOBAT(p); else if(flag1 =1) flag2 = BAT_CHECK(); /判断是否可充;if(flag2=0&flag1)YELL_ON();UN_CHARGE(p);/ 不可充断电; while(!flag3&flag2)flag3 = PRE_CHARGE(p); while(flag3)TR0=1;n = BATNUM_CHECK();if(n=0) IAP_CONTR = 0X20;RED_ON();CONST_CURRENT(n,p);GRE_ON();CONST_VOUTAGE(n,p);break;SYS_TIME_INIT();flag1 = 0;flag2 = 0;flag3 = 0;n = 0; (二)、founction.c /*- 名称:无 编写:无 日期:无 修改:无 内容:无 引脚定义如下:-*/#includefunction.h/* * 说 明 :PWM_INIT * 参 数 :无 * 返回值 :无*/void PWM_INIT() CMOD=0x02;CL=0;CH=0;CCAP0L=0xc0;CCAP0H=255;CCAPM0=0x42;CR=0;P3_7=0; /* * 说 明 :无电池执行固定输出 * 参 数 :*flag4 * 返回值 :无*/void NOBAT(unsigned char *flag4)int OUT2=0,OUT2_1=0; unsigned int i=0;*flag4 = 0;while(1)for(i=0;i60000;i+) OUT_voutage(127+40,1); /OUT2稳压输出OUT2 = ADC_OUT2();for(i=0;i60000;i+)OUT_voutage(127,1);OUT2_1 = ADC_OUT2();if(abs(OUT2-OUT2_1)30) *flag4 = 0; IAP_CONTR = 0X20;break;/* * 说 明 :判断有无电池 * 参 数 :无 * 返回值 :flag 1:有 0:无*/unsigned char test()unsigned char OUT2=0,flag;OUT2=ADC_OUT2();if(OUT225)flag = 0;elseflag = 1;return flag;/* * 说 明 :电池类型检测 * 参 数 :无 * 返回值 :flag 1:charge 0:ucharge*/unsigned char BAT_CHECK() unsigned char OUT2=0,OUT1=0,OUT2_1,OUT2_2,flag,dealt=0; /电池加电压后的值;unsigned int i=65535,m=1000,n=0;L1: ;for(n=0;n5)goto L1;dealt = OUT2 - OUT2_1; if(dealt10) /7 12flag = 0; /不可充;elseif(dealt25) n+;if(n5)*flag4=1; break; /* * 说 明 :超时处理 * 参 数 : * 返回值 :恒流结束标志*/void TIME_OUT(unsigned char *flag4) unsigned int OUT2=0,OUT2_1=0;CCAP0H=255;LED_OFF();OUT2 = ADC_OUT2();while(1)CR=0;P3_7=0;OUT2_1 = ADC_OUT2();if(abs(OUT2-OUT2_1)25) SYS_TIME_INIT(); *flag4=1; break; /* * 说 明 :恒流充电程序 * 参 数 :*flag4 * 返回值 :恒流结束标志*/unsigned char PRE_CHARGE(unsigned char *flag4) int bat_voutage=0,temp=0,temp1=0,flag = 0,OUT2_1=0,OUT2_2=0;unsigned long int i = 0,j=10; CCAP0H = 255;delay(2000); temp = ADC_OUT2();while(j) LED_OFF();for(i=0;i20000;i+)OUT_voutage(temp+20,1);OUT2_1=ADC_OUT2();for(i=0;i20)*flag4=1;break;CCAP0H = 255;delay(1000);temp1 =ADC_OUT2();if(abs(temp1-temp)92&bat_voutage122&bat_voutage153&bat_voutage190) n = 5;else n= 0;return n;/* * 说 明 :恒流充电程序 * 参 数 :*flag4,BAT_NUM 电池节数 * 返回值 :无*/void CONST_CURRENT(unsigned char n,unsigned char *flag4)unsigned char i,num=0,num1=0,OUT2,OUT2_1,VALUE=0;unsigned int m;switch(n)case 0 :goto L1;case 3 : OUT2 = 112;VALUE=92;break; /4.36vcase 4 : OUT2 = 148;VALUE=122;break; /5.8vcase 5 : OUT2 = 188;VALUE=153;break; /7.25vdefault : OUT2 = n;break;while(1)for(m=0;mn*15)num1+;if(num110)*flag4=1;goto L1;else num1=0;if(CONST_CURRENT_FLAG)for(m=0;mOUT2)num+;if(num3)break;else num=0; if(TIME_OUT_FLAG)TIME_OUT(flag4);L1:;/* * 说 明 :恒压充电程序 * 参 数 :*flag4,BAT_NUM 电池节数 * 返回值 :无*/ void CONST_VOUTAGE(unsigned char n,unsigned char*flag4) int OUT2_1=0,OUT2_2=0; /注意变量类型; unsigned char OUT2=0;unsigned int i;switch(n)/case 0 : break;case 3 : OUT2 = 112;break;/4.36vcase 4 : OUT2 = 148;break;/5.8v 2.9case 5 : OUT2 = 188;break;/7.25vdefault : OUT2 = n;break; while(1) if(abs(OUT2_1-OUT2_2)5|OUT275) /*flag4=1;break; for(i=0;i20000;i+)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


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

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


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