




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
更多相关文档资源请访问/lzj781219完整设计文件及源代码,资料请联系68661508索要PAGE○○A基础理论●B应用研究○C调查报告○D其他本科生毕业论智能型单片机电池容量测试仪的设计二级学院:信息科学与技术学院专业:电气工程及其自动化完成日期:2015年5月25日目录1.绪论 11.1研究的背景与意义 11.1.1论文研究的背景 11.2国外相关技术发展现状及趋势 11.3国内相关技术发展现状及趋势 21.4论文研究的意义 31.4.1维护消费者权益 31.4.2安全保障方面 41.5本设计的研究内容 42.电池容量检测模块原理简述 42.1检测原理 42.1.1电压检测原理 42.2测试方法选择 52.3电池容量测量说明 62.4容量计算方法 62.5整体设计 92.6放电电路的介绍 93.硬件设计 103.1单片机电路模块 103.2时钟振荡电路 113.3电源稳压电路的设计 123.4放电电路的设计 133.5数字显示模块 143.6继电器控制电路模块 154.软件的设计 154.1软件整体设计 164.2各子程序功能的简单介绍 164.3单片机的I/O分配表 164.4键盘输入控制子程序模块 164.5电压检测控制子程序模块 174.6显示输出控制子程序模块 184.7继电器控制子程序模块 194.8中断程序模块 204.9主程序控制模块 215.系统的实现与调试 225.1电路图的绘制 225.1.1原理图的绘制 225.1.2PCB板的生成 225.1.3硬件的焊接 235.2硬件调试 236.结论与展望 24参考文献 25附录 26附录A 26附录B 27附录C 28致谢更多相关文档资源请访问/lzj781219完整设计文件及源代码,资料请联系68661508索要基于单片机的智能型电池容量测试仪摘要:本设计使用了STC12C5A60S2单片机为系统控制器设计了一个电池容量检测仪,外围有串电阻放电电路,晶振时钟电路,LCD1602显示屏、按键等元件组成。通过硬件和软件结合,可对锂电池和镍氢等充电电池的容量进行自动测试,并以数字形式显示其测试结果。关键词:控制器;电池容量;STC12C5A60S2单片机。IntelligentbatterycapacitytesterbasedonMCUAbstract:ThisdesignisbasedonSTC12C5A60S2microcontroller,accordingtothedesignrequirements,setupthehardwarecircuit,andwritingprogram,peripheryhaveaseriesresistordischargingcircuit,vibrationcrystalclockcircuit,theLCD1602display,buttonsandothercomponents.Throughacombinationofhardwareandsoftware,butforlithiumbatteryandnickelmetalhydriderechargeablebatterycapacityforautomatictest,andaccordingtothetestresultsindigitalform..Keywords:controller;batterycapacity;STC12C5A60S2microcontroller.PAGE271.绪论1.1研究的背景与意义1.1.1论文研究的背景随着世界不可再生能源的日益短缺以及移动电子设备的迅猛发展,移动电源业得到了快速的发展。同时,随着空间、微电子等高新技术的发展,对于移动能源,尤其是能够提供高能量密度和较长寿命的二次电池(电池组)的需求量越来越大[1][2]。因此,对于二次充电电池的检测与生产就提出了更高的要求。制造商和消费者都希望自己生产和使用的电池(组)具有可靠的长寿命工作性能。鉴于这个现状,个人使用也有必要建立一个完整的评估体系,作为长期选购、使用的指导参考。为了更好地维护消费者的权益,更好地规范市场,通过查找资料掌握课题相关方面的一些最新动态和设计方法,通过深入分析充电电池的性能特点,在了解测试原理的基础上,利用单片机设计一种电池容量测试仪。1.2国外相关技术发展现状及趋势伴随着手机、数码相机、掌上电脑(PDA)和便携式摄像机等消费和移动电子产品的继续走强,以及锂离子等动力电池所呈现的巨大应用潜力,未来锂离子电池的市场需求将保持相当的增长速度。在2003~2006年世界锂离子电池生产规模复合增长率达到23.2%,销售收入复合增长率达到12.25%[3]。锂离子电池行业的发展和壮大是锂离子电池检测设备赖以生存的土壤,目前很多电子设备,例如手机、笔记本电脑等移动设备的普及,最关键的技术之一就是电源技术。世界各个发达国家对于二次能源开发都给予很高的重视。自1994年以来锂离子电池发展相当迅速,加上电池材料技术研究进步,大幅降低了它的成本,世界范围内自1994~2005年锂离子电池的产量、平均价格及增长率如表1-1所示。表1-11994~2005年世界锂离子电池产量和平均价格及增长率电池检测设备是数字化测量技术在电池领域一个成功的应用[4][5],早在90年代,欧美国家就凭借着电子检测技术方面的优势实现了电池检测的自动化,并且一直处于领先地位。随着电子信息技术迅猛的发展,电池检测也经历了由手动分选测试到大规模、高品质的数字化检测设备的发展进程,检测设备的性能(如可靠度、准确性、自动化水平等)得到了大幅度的提高。最初,电池检测设备是以单片机作为核心处理器,实现电池性能的检测。但是这种方法仍然存在很大问题:单片机系统资源比较少,实现功能比较单一;其次,很多单片机通常是与某种特定型号计算机相连,这就增加了系统成本,同时系统可移植性很差。因此,又出现了以PC机作为上位机,单片机作为下位机的二级系统。单片机进行数据的测量和采集,PC机负责数据的管理和分析。但是随着数字化检测技术的飞速发展,数字化电池检测设备也纷纷出现。通过以上分析,国外的电池检测技术发展的比较早,技术领先于国内水平,发展迅速。但是国外的检测设备价格比较高,这限制了它在国内的普及。1.3国内相关技术发展现状及趋势进入20世纪90年代以后,我国的一些科研单位相继进入锂离子电池检测领域。如:哈尔滨子木科技有限公司、广州电科所、北京有色金属研究总院、燕山大学等纷纷研制出各自的锂离子电池检测设备投入到锂离子电池市场[6]。但是国内大多数科研单位研制的电池检测设备都还停留在PC机-单片机的模式下,通常效率比较低下。哈尔滨子木科技有限公司率先提出了一种以DSP为核心处理器的新概念的锂离子电池检测系统[7]。和传统设备相比较,该系统具有一些独特的性能,如能够实现电池放电能量利用、连续测量分选、智能操作监控等。同时该系统具有的软件升级功能是数字化系统都有的特点,在不增加任何硬件成本的情况下,给系统增加各种功能。这大大加快了国内数字化电检测设备的发展。综上所述,随着电池产品不断向体积小、重量轻、容量大、寿命长、安全性好、无环境污染、国际标准化、通用化方向发展,因此,对电池化成检测设备也提出了更高的要求。电池测试设备的发展趋势主要集中在以下几个方面[8~10]:1.高可靠性、高准确度,以适合高质量生产的需要;2.向大功率发展,以适应电动工具、数字通讯、电动汽车等发展的需要;3.多参数检测,可检测除电压、电流以外更多的电池参数;4.具有大规模检测能力,即一台设备能同时检测的电池数量要多,以适应电池大规模生产的需要;5.具有多功能,如提高用户对电池检测过程设置的灵活性,对检测数据查看方式的多样性等,以满足不同用户或不同电池的需要;6.向自动化发展,以提高电池检测的效率,适应大规模全自动化生产的需要;7.向组合结构、模块化发展,形成一个满足多种电池的生产及科研需要的一个通用的测试平台;8.向智能化发展,充分利用智能控制、现代控制等理论,建立电池各种情况下的模型,更深层次的检测电池电化学性能。1.4论文研究的意义研究的意义体现在以下几个方面:1.4.1维护消费者权益近年以来,手机、数码市场迅速发展,市场竞争异常激烈。一些经销商为了完成厂家指定的销售任务,获得更多的销售奖励和返点,往往把利润预期锁定在电池、手机配件、存储卡、相机包等附件上,故意将价格低廉的低容量电池的容量标高,以次充好。广东产品质量监督检验研究院曾对流通领域的手机电池商品质量进行市场专项监测。共抽查了31家销售企业,37家生产企业生产的手机电池60款,合格30款,合格率为50.0%。抽查检验结果表明,此次抽查手机电池的放电性能,包括0.2C5A放电性能、1C5A放电性能存在明显质量问题。省工商局消保处有关负责人表示,抽查结果与市场上普遍存在虚标电池容量的现象相吻合。即手机电池制造厂商为追求利润,将价格低廉的低容量电池的容量标高出售,如果消费者购买了虚标容量的手机电池,会影响手机的待机时间,缩短手机的使用寿命,损害的是消费者的利益。1.4.2安全保障方面首例手机电池爆炸致人死亡事件在兰州发生后,电池的安全问题再一次引起最大限度的关注,令人担忧的是,一些山寨充电电池,充电宝存在安全隐患,引发爆炸。这是由于采用了质量不过关的保护板。当好的保护板遇到强电流会像电闸一样自动跳闸,质量差的则完全没有反应。使用电池容量检测仪,可以提前检查出一些伪劣产品,可以更好的避免危险的发生。1.5本设计的研究内容(1)电池容量测试仪电路由单片机电路、电池串电阻放电电路、稳压电源电路和数码显示电路等部分组成。(2)软件采用C语言编写,程序由主程序和中断服务子程序、延时子程序等部分组成。(3)电路采用对电池容量测试电路,设定电池的放电终止电压,取基准电压,设定电池放电电流。(4)研究方法:将电池进行串电阻放电,每隔几秒监测一次电池电压,在放电的同时监测电池的端电压当端电压下降到一定值时,停止放电记录放电时间,放电电压与所串电阻的商与放电时间的积分就是电池的容量。2.电池容量检测模块原理简述2.1检测原理2.1.1电压检测原理读ADC测量外部电压,使用内部基准计算电压。选择具有内置AD转换的stc12系列单片机,STC系列单片机的参考电压源就是输入工作电压Vcc,所以一般不用外接参考电压源,为了参考电压的准确,本设计使用7805三端稳压块,是输出稳定电压5.0V。测量电压输入接在P1.0口,P1.3口AD后的值为VP1.0,参考电压源AD转换后的值为VPx。则P1.0口实际值为:
VP1.0
V
=
×
5.0
(V)………….(1)
VPx2.2测试方法选择电池容量是衡量电池质量的重要指标。充电电池的容量测试有很多的方法。多,如传统容量测试方法,曲线比较方法,恒定电流放电,串电阻放电法。(1)传统容量测试方法费时费力,难以实现自动检测,故本设计不考虑。(2)曲线比较方法可以依据电池的放电曲线,进行短时间放电,从而粗略得出电池容量。这种方法最大的优点是快速,但是充电电池的放电曲线并不具有普遍性,很多劣质电池放电初期电压也很平稳,一旦进入中后期,电压下降非常迅速,所以采用这种方法得出的结论将非常不准确的。(3)恒定电流放电是目前较可靠准确无误的方法,以标准电流放电,全程测量实际放电时间的方式。不同的放电电流,充电电池最终能够释放出的电量是不同的,有一定的差距。不过该方法放电电路复杂,很难满足两种不同种类电池的智能选择检测。经一番研究后放弃使用。(4)串电阻放电法,放电的同时监测电池的端电压,当端电压下降到一定值时停止放电,每段时间的电压除以放电电阻与每段时间的积分就是电池的容量。该串电阻放电方法电路简单,实用性高,使用积分的方法算电池容量较为准确。按实际情况分析,本方案采用恒电阻放电的方法检测,该方法电路结构简单,调整方便。该串电阻放电方法电路简单,实用性高,使用积分的方法算电池容量较为准确。电池容量一般用mAh毫安时表示,1mAh表示:1毫安电流放电1个小时.把电池充满电,单只锂电池充充满电后的电压是4.2V;镍氢二次电池是1.2V.电池总容量用C表示,,一般以相对于电池容量而言的0.5C放电,我们按照放电倍率选择不同阻值的大功率电阻。2.3电池容量测量说明电池容量是指在一定充电或放电条件下,供给电池或从电池获得的电量。一般电池负极容量过剩,正极容量控制整个电池的容量。电池的额定容量定义为:以规定的放电率放电至终止电压时电池所能提供的电量。在电池测量的过程中,电池的容量不是直接测量单位,而是导出单位,它是由式(2)电流与时间的乘积在一定的电压限制条件下计算得出的。C=I⋅t…………..(2)式中C——电池的容量,单位Ah;I——电池的放电电流,单位A;t——电池放电至终止电压的时间,单位h。电池容量是一个受多种因素影响的物理量,它与电池自身的特性,测量时的环境温度以及放电电流大小、波形等条件均有关。因此,在涉及电池的容量时,应注明测量条件。容量测试是以满电电压和设定的终止电压为参数的,锂电池终止电压设定为3.2v;镍氢二次电池是1v。因为充电电池不能超过终止电压,小于终止电压对电池有害。2.4容量计算方法本设计采用恒电阻放电的方法检测,在放电的同时监测电池的两端电压,当两端电压下降到一定值时停止放电,每段时间的电压除以放电电阻与每段时间的积分就是电池的容量。原理图如图2.4.1,使用单片机制作的电池容量测试电路,可对镍氢,锂离子电池的容量进行测试,实现自动计时和电压测量,并进行容量计算和数字显示。由于单片机的AD转换功能在量化时使用的对比电压是单片机的输入电压,在某一时刻可能存在波动,使得经过AD转换量化的电压也存在波动,所以需要采取一定的滤波措施。在本设计中采用均值滤波的方式,把多次测量到的电压值进行累加,然后取平均值,在一定程度上,达到了取得相对稳定的测量电压的效果。图2.4.1测试方法原理图以锂电池和镍氢电池容量检测为例,电池放电曲线图分别如图2.4.2和图2.4.3,容量积分计算原理简图如图2.4.4,图4.4.4阴影部分面积就是电池容量图2.4.2镍氢电池放电曲线图图2.4.3锂电池容量积分计算原理简图图4.4.4电池容量积分曲线图电池容量积分公式,………..(3)其中t是停止的时间,R是放电所串电阻,U是所测电压。2.5整体设计电池容量测试仪电路由单片机电路、电池串电阻放电电路、+5V直流稳压电源电路和数码显示电路等部分组成,系统框图如下:单单片机显示模块按键输入电压检测电路时钟电路电源稳压电路放电电路图2.5.1系统框图2.6放电电路的介绍将电池进行串电阻放电,每隔几秒监测一次电池电压,在放电的同时监测电池的端电压当端电压下降到一定值时,通过继电器控制停止放电,记录放电时间,放电电压与所串电阻的商与放电时间的积分就是电池的容量。图2.6放电电路图3.硬件设计电池容量测试仪电路由单片机电路、电池串电阻放电电路、+5V稳压电源电路和数码显示电路等部分组成。单片机通过I/O接口将信号输入内部模拟信号比较器,并将模拟信号比较器比较的结果存入对应的寄存器中。电源电压经过分压后作为基准电压,使电池电压与基准电压相比较,并用1、0表示其比较结果。片段译码器采用集成电路,把BCD码转换成字段码供数码显示,工作状态用发光二极管来指示。电池放电过程二极管亮。单片机的电源由5V稳压电源提供,并附带单片机的复位电路。3.1单片机电路模块根据设计的要求,对于单片机控制模块的选择要有以下几个方面的功能:运算速度快、有AD转换。由于51系列单片机本身没有AD转换功能,必须额外增加AD转换器,这样做使得硬件复杂,稳定性降低,而且成本增加,所以本控制器设计选择使用STC系列具有ad转换的单片机--STC12C5A60S2系列单片机。STC12C5A60S2系列单片机,是单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,内部集成MAX810专用复位电路,STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、、I/O接口、高速A/D转换、看门狗及片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机主要特点:(1)高速:1个时钟/机器周期,增强型8051内核,速度比普通的快8-12倍;(2)宽电压:5.5-3.3V;(3)工作温度范围:0℃~75℃;(4)1280字节片内SRAM数据存储器;(5)8通道,10位高速ADC,速度可达25万次/秒;(6)60K字节内Flash程序存储器,擦写数十万次以上;(7)4个16位定时器,兼容普通8051的定时器T0/T1;(8)芯片内EEPROM功能,可掉电保存信息;(9)硬件看门狗(WDT);(10)通用I/O口(36个),可设成四种模式:准双向口/弱上拉,仅输入/高阻,开漏,并且每个I/O口驱动能力均可达20mA。据以上特点,所以本设计的单片机模块选用STC12C5A60S2芯片。单片机管脚图如图3.1图3.1单片机管脚图3.2时钟振荡电路外接石英晶体(或陶瓷振荡器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷振荡器建议选择30pF±10pF。图3.2时钟振荡电路为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。STC系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。如图3.2.所示。图3.3复位电路图3.3电源稳压电路的设计为了达到设计要求的精确度和避免测试过程中的电源之间的影响,所各个芯片或者模块必须要用稳压电源经行供电。图3.4是用三端式稳压器LM7805构成的单电源电压输出稳压电源的实验电路图。其中整流部分采用了由四个二极管组成的桥式整流器。滤波电容C4、C7一般选取几百~几千微法。当稳压器距离整流滤波电路比较远时,在输入端必须接入电容器C5(数值为0.1μF),以抵消线路的电感效应,防止产生自激振荡。输出端电容C4(0.1μF)用以滤除输出端的高频信号,改善电路的暂态响应。二极管D7做反向保护作用。图3.4+5V直流稳压电源电路3.4放电电路的设计为了检测充电电池的容量,需要对电池进行串大功率电阻放电,。随着放电的进行,电路原理图如图3.5,锂电池端可测4~5V的锂电池,镍氢电池端可测1.~1.5V的二次镍氢电池。图3.5放电电路图由于检查不同种类的电池时,要求所串的电阻的大小不同,通过两个继电器来选择放电电阻。3.5数字显示模块显示模块选用LCD1602液晶显示模块,如图3.6,该液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,LCD1602液晶显示模块,它可以显示两行,每行16个字符,因此可相当于32个LED数码管,而且比数码管显示的信息还多。采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。图3.6LCD16021602采用标准的16脚接口,其中:第1脚:VDD接5V
第2脚:VSS接地
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生"鬼影",使用时可以通过一个10K的电位器调整对比度
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。电路连接图如图3.7,图3.7LCD1602电路连接图3.6继电器控制电路模块本设计中需要单片机自动控制放电电路的通断,所以加入两个继电器,由于继电器的驱动电压比较高,需要用三极管来放大单片机的输出电压,并在继电器两端加二极管保护。继电器模块电路图如图3.8图3.8继电器模块电路图4.软件的设计4.1软件整体设计本设计的源程序主要由各个子程序组成,通过调用子程序,把各个硬件模块的功能协调在一起,达到本设计的设计要求。程序整体设计框图如图4.1 主程序主程序键盘输入控制子程序电压检测控制子程序显示输出控制子程序继电器控制子程序中断程序子程序功能控制子程序图4.1程序整体设计框图4.2各子程序功能的简单介绍(1)键盘输入控制子程序检测按键的状态;(2)电压检测控制子程序检测当前的电池的电压值;(3)功能控制子程序实现选择不同电池检测等功能;(4)显示输出子程序实现时间、电池容量、当前电池电压等的显示;(5)继电器控制子程序控制放电电路的通断状态;4.3单片机的I/O分配表表2I/O分配表单片机管脚编号器件端口编号功能描述P0AD0~AD7LCD1602段选P2.0A8指令/数据寄存器P2.1A9读写选择引脚P2.2A10使能引脚P2.4Key1上移和开始P2.5Key2上移P2.6Key3选择确认P2.7Key4暂停P1.0Voltage电压检测P1.1Relay继电器控制P1.2Relay继电器控制4.4键盘输入控制子程序模块本设计的键盘主要用来进行功能切换、选择电池类型、开始检测容量等功能,采取独立按键的式接口,根据IO口的高低电平来判断键的状态,因而键盘输入控制子程序则是检测相应按键的IO口的高低电平,判断按键是否按下,并返回键值。键盘输入控制子程序流程图如图4.2所示。KKey2=0?返回键值开始Key1=0?Key3=0?Key4=0?结束YYYYNNNN图4.2键盘输入控制子程序流程图4.5电压检测控制子程序模块电压检测是本设计中的重点,电压的采集主要通过放电电路所接的电池的电压来实现的,把采集到的电压值进行均值滤波后使用到容量计算中去。电压检测控制子程序流程图如下图4.3所示。由于单片机的AD转换功能在量化时使用的对比电压是单片机的输入电压,在某一时刻可能存在波动,使得经过AD转换量化的电压也存在波动,为了减少误差,所以需要采取一定的滤波措施。在本设计中采用均值滤波的方式,把多次测量到的电压值进行累加,然后取平均值,在一定程度上,达到了取得相对稳定的测量电压的效果。开始开始初始化内部ADC外部电压采样基准电压比较ADC转换结束返回电压值图4.3电压检测控制子程序流程图4.6显示输出控制子程序模块LCD1602屏幕上所需要的显示都由本子程序来实现,把需要显示的数字、字符和需要显示的功能指示标志的值输入进来,,然后驱动相应的程序,显示出数字和字符等。显示输出控制子程序流程图如下图4.4所示。图4.4显示输出控制子程序流程图4.7继电器控制子程序模块当开始检测电池容量时,则要调用本子程序,通过I/O口输出高电平使三极管导通,使得继电器通电,接通所选择的放电电路,使其放电。但检测到放电电池电压低于设定的终止电压,通过I/O口输出低电平使三极管截止,使得继电器断电,断开所选择的放电电路,使其停止放电。继电器控制子程序流程图如下图4.5所示。开始开始始输入值开继电器?YN关继电器开继电器结束图4.5继电器控制子程序流程图4.8中断程序模块 由于需要执行大量的任务处理,并且执行显示输出、显示更新、按键信号检测、压力检测、蜂鸣器响停等子程序必需要及时响应,而按键信号处理、时间处理等则可以稍微在响应完需要及时处理的任务后再进行处理。这样保证了系统的实时性,保证了单片机运算和控制的高效性。所以本设计里采用定时中断的方法,每250us进行一次定时中断,在中断服务程序里进行1ms,100ms,500ms时间的判断,并设置相应的标志位,让主程序在相应的时间段里执行相应的任务,从而保证对输入信号和输出信号的响应的实时性[12]。 中断服务程序模块流程图如下图4.5所示。图4.5中断服务程序模块流程图4.9主程序控制模块主程序则负责调度、协调各个子程序模块,执行初始化外围器件,故障处理等任务,循环执行各项功能,其控制流程如下图4.6所示。开始开始始I/O口初始化键盘检测电压检测功能模块显示检测结束图4.6主程序控制流程图5.系统的实现与调试5.1电路图的绘制5.1.1原理图的绘制第一步:打开Protel软件,新建“电池容量测试仪”项目,并保存到目标文件夹。第二步:先添加创建一个名为“电池容量测试仪”.Sch的原理图文件。第三步:建立PCB电路文件“电池容量测试仪.Lib”。第四步:画出需要的STC12C5A60S2单片机、电阻电容、按键开关、LCD1602、三极管,继电器,lm7805等等。第五步:生成PCB文件并进行布局和布线。5.1.2PCB板的生成 第1步:创建PCB图文件保存;第2步:建立文件并命名为“电池容量测试仪.Pcb”;第3步:进行电路板的PCB转换,建立PCB封装文件,命名为“PCB.Lib”;第4步:将转换过来的元件根据电路的电气特点进行PCB排版;第5步:输出出PCB板图待做板使用。制作PCB板电路时,要仔细考虑,合理布置器件,妥善布线。合理布置器件要全面考虑电路结构,要做到布置有利于器件的焊接和布线。PCB印板图见附录A;5.1.3硬件的焊接对于硬件的焊接,在进行硬件焊接时,要使用适合的电烙铁,使用适合的温度来进行焊接,并且做好电烙铁接地,以防止静电损坏元器件,元器件要对号入座,特别是有极性的二极管、电解电容、三极管、芯片等,要注意其引脚的位置和极性。焊接过程中尽可能的使得焊点加锡量适合,焊点光滑饱满,减少漏焊、虚焊的现象。对于主要芯片等应加底座,这样就可以方便芯片的接入,并能避免主要芯片在焊接过程中引脚的损坏或静电损害芯片。这样焊接好的电路比较容易进行检测,并查找出存在的问题。5.2硬件调试先对电路板进行加个制作,对元件进行焊接,焊接后对各个元件的位置进行再次确认检查,检查合格后就可以进行一下电路的检测调试。1)做好焊接的工作做后,先用万用表进行电路关键点的检测,检查短路是否发生,待一切检测正常后,接通电源进行带电检测,检测电路的通断是否正常,如出现异常则需要再次检查,直至一切工作正常。2)单片机控制电路、LCD显示模块、按键部分接上电源,将单片机下载好编写的程序,分开对各个模块的的功能进行检测,主要检查的模块有按键检测控制模块、LCD显示电路模块、单片机最小系统模块、稳压电源模块、继电器模块等是否符合电路的控制要求。对以上各个部分调节好以后。至此,系统的整个过程结束。出现问题就进行分析检测,最后完成设计的所有要求。电路原理图见附录B。完整程序见附录C。6.结论与展望设计采用STC系列单片机为核心,使系统呈现单片化结构。尤其是采用了直观的数字显示,可直接显示放电容量,避免了人工计算。在定电阻放电状态下,也可方便地测量出其准确的充电电池容量,且体积小、可靠性高、价格低廉、测量方便、具有很高的性能价格比,可以得到广泛的应用。参考文献[1]郭炳,徐徽,王先友,肖立新.锂离子电池[M].科学出版社,2002:3-60.[2]王海明.锂离子电池的特点及应用[J].电气时代,2004,6(3):54-58.[3]扬林.中、日、韩三国锂离子电池发展概况[J].电池工业,2003,8(3):137-139.[4]王海明.锂离子电池的特点及应用.[J]电气时代,2004,6(3):54-58.[5]陈洪超,李相东.锂离子电池原理、研究现状与应用前景[J].军事通信技术,2001,23(6):56-57.[6]蔡生民.我国锂离子电池行业的发展现状及趋势.[J]通讯电源,2004,6(3):17-18.[7]何银吉,赵林英,乐浪,李革臣.一种新型的锂离子电池化成检测系统[N].哈尔滨理工大学学报,2005.10:29-33.[8]蔡生民.我国锂离子电池行业的发展现状及趋势[J].通讯电源,2004,6(3):17-18.[9]乐浪,安爱民,朱磊,李革臣.现场总线在锂离子电池检测系统中的应用研究[N].哈尔滨理工大学学报.2006,11(1):5-7.[10]JonTitus.高性能锂离子电池[J].电源技术,2004,6:53-58.[11]W.KozakiandT.Yamazaki.Remainingbatterycapacitymeterandmethodforcomputingremainingcapacity.U.S.Patent,1997,(11):25-28[12]赵建领等.51系列单片机开发宝典[M].2版.北京:电子工业出版社,2012.2,337-389.附录附录A附录BPAGE38附录C#include"stc.h"#include"lcd1602.h"#include"key.h"#include"delay.h"#include"adc.h"#include"menu.h"//#include"lamp.h"#defineucharunsignedchar#defineuintunsignedintsbitP_OUT_NI_RELAY=P2^4;//镍氢电池继电器sbitP_OUT_LI_RELAY=P2^5;//锂电池继电器externunsignedcharkeyvalue;ucharmenu=1;ucharr_res_value;//放电电阻值uintr_stop_voltage;//终止放电电压ucharr_t1ms,r_t100ms,r_t500ms;//中断时间相关寄存器bitb_t1ms,b_t100ms,b_t500ms;//中断时间相关标志位bitb_runing_test;//测试运行标志位bitb_adc_need;//需要ad转换标志位bitb_adc_ok;//ad转换okucharr_time,r_time_hour,r_time_min,r_time_sec;//计时时间寄存器floatr_voltage_test;//测量电压值floatr_rongliang_test;//测量容量值uintr_voltage_disp;//显示电压值uintr_rongliang_disp;//显示容量值voidinit_myself(void);//初始化voidkeyhandle(void);//按键信号处理voidmenu_up_handle(void);//菜单上移voidmenu_down_handle(void);//菜单下移voidmenu_enter_handle(void);//进入菜单voidmenu_esc_handle(void);//退出菜单voidli_ion_test(void);//锂电池测试voidni_cd_test(void);//镍氢电池测试voidtimer_process(void);//时钟处理voiddisplay(void);//显示输出处理voiddispaboutme(void);//显示相关信息voidmain(){ init_myself(); InitADC(); LCD1602_Initial(); dispwelcome(); delay(5000); dispmenu(); while(1) { keyhandle(); }}/*********锂电池测试函数*********/voidli_ion_test(void){ LCD1602_WriteCommand(0x01);//指令"清屏" LCD1602_DispString(0,0,"::.V"); LCD1602_DispString(0,1,"mAh"); r_time=0;r_time_hour=0;r_time_min=0;r_time_sec=0; r_voltage_test=0;r_rongliang_test=0; r_res_value=9;//电阻为9欧 r_stop_voltage=3200;//终止放电电压为3.2V b_adc_ok=0; while(1) {if((b_adc_need==1)&&(b_runing_test==1))//需要ad转换 { b_adc_need=0; b_adc_ok=1; r_voltage_test=GetadcAndFilter(0); r_rongliang_test=r_rongliang_test+(((r_voltage_test/r_res_value)*250)/3600000);///36000000 } if(b_t1ms) { b_t1ms=0; //======================================// if((keyvalue==1)&&(b_runing_test==0))//开始测试 { P_OUT_LI_RELAY=0;//开继电器 b_runing_test=1;//启动测试 keyvalue=0;//清键值 } if((keyvalue==2)&&(b_runing_test==1))//暂停测试 { P_OUT_LI_RELAY=1;//关继电器 b_runing_test=0;//停止测试 keyvalue=0;//清键值 } if(keyvalue==4)//退出测试 { P_OUT_LI_RELAY=1;//关继电器 b_runing_test=0;//停止测试 r_voltage_test=0;//清电压值 r_rongliang_test=0;//清容量值 menu_esc_handle();//退出控制 keyvalue=0;//清键值 break; } display();//显示输出 } if(b_t100ms) { b_t100ms=0; }if(b_t500ms){b_t500ms=0;timer_process();//时钟处理} }}/*********镍氢电池测试函数*********/voidni_cd_test(void){ LCD1602_WriteCommand(0x01);//指令"清屏" LCD1602_DispString(0,0,"::.V"); LCD1602_DispString(0,1,"mAh"); r_time=0;r_time_hour=0;r_time_min=0;r_time_sec=0; r_voltage_test=0;r_rongliang_test=0; r_res_value=3;//电阻为3欧 r_stop_voltage=1000;//终止放电电压为1.0V b_adc_ok=0; while(1) {if((b_adc_need==1)&&(b_runing_test==1))//需要ad转换 { b_adc_need=0; b_adc_ok=1; r_voltage_test=GetadcAndFilter(0); r_rongliang_test=r_rongliang_test+(((r_voltage_test/r_res_value)*250)/3600000);///36000000 } if(b_t1ms) { b_t1ms=0; //======================================// if((keyvalue==1)&&(b_runing_test==0))//开始测试 { P_OUT_NI_RELAY=0;//开继电器 b_runing_test=1;//启动测试 keyvalue=0;//清键值 } if((keyvalue==2)&&(b_runing_test==1))//暂停测试 { P_OUT_NI_RELAY=1;//关继电器 b_runing_test=0;//停止测试 keyvalue=0;//清键值 } if(keyvalue==4)//退出测试 { P_OUT_NI_RELAY=1;//关继电器 b_runing_test=0;//停止测试 r_voltage_test=0;//清电压值 r_rongliang_test=0;//清容量值 menu_esc_handle();//退出控制 keyvalue=0;//清键值 break; } display();//显示输出 } if(b_t100ms) { b_t100ms=0; }if(b_t500ms){b_t500ms=0;timer_process();//时钟处理} } }/*********显示输出函数*********/voiddisplay(void){ LCD1602_DispOneChar(0,0,(r_time_hour/10%10+0x30));//小时的十位 LCD1602_DispOneChar(1,0,(r_time_hour%10+0x30));//小时的个位 LCD1602_DispOneChar(3,0,(r_time_min/10%10+0x30));//分的十位 LCD1602_DispOneChar(4,0,(r_time_min%10+0x30));//分的个位 LCD1602_DispOneChar(6,0,(r_time_sec/10%10+0x30));//秒的十位 LCD1602_DispOneChar(7,0,(r_time_sec%10+0x30));//秒的个位 r_voltage_disp=(int)(r_voltage_test*1000);//显示电压值 if((b_runing_test==1)&&(b_adc_ok==1)) { if(r_voltage_disp<=r_stop_voltage)//测试电压小于或等于终止放电电压 { b_runing_test=0;//停止测试 P_OUT_LI_RELAY=1;//关锂电池继电器 P_OUT_NI_RELAY=1;//关镍氢电池继电器 b_adc_ok=0; } } LCD1602_DispOneChar(11,0,(r_voltage_disp/1000+0x30));//电压值的千位 LCD1602_DispOneChar(13,0,(r_voltage_disp/100%10+0x30));//电压值的百位 LCD1602_DispOneChar(14,0,(r_voltage_disp/10%10+0x30));//电压值的十位 r_rongliang_disp=(int)(r_rongliang_test); LCD1602_DispOneChar(4,1,(r_rongliang_disp/1000+0x30));//电压值的千位 LCD1602_DispOneChar(5,1,(r_rongliang_disp/100%10+0x30));//电压值的百位 LCD1602_DispOneChar(6,1,(r_rongliang_disp/10%10+0x30));//电压值的十位 LCD1602_DispOneChar(7,1,(r_rongliang_disp%10+0x30));//电压值的十位}/*********单片机初始化函数*********/voidinit_myself(void){ P_OUT_NI_RELAY=1;//关继电器 P_OUT_LI_RELAY=1;//关继电器 AUXR&=0x7F;//定时器时钟12T模式 TMOD&=0xF0;//设置定时器模式3 TMOD|=0x02;//设置定时器模式(8位自动重装) TL0=0x06;//设置定时初值 250微秒 TH0=0x06;//设置定时重载值 TR0=1;//定时器0开始计时,250微秒 ET0=1;//开定时器0中断 EA=1;//开全局中断}/*********中断服务函数*********/voidtime0_isr()interrupt1{ keyscan();if((b_adc_need==0)&&(b_runing_test==1)) { b_adc_need=1;//需要ad转换 } r_t1ms++; if(r_t1ms>=8)//1ms { r_t1ms=0; b_t1ms=1; r_t100ms++; if(r_t100ms>=5)//100ms { r_t100ms=0; b_t100ms=1; r_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效备战CFA考试的心得试题及答案
- 校长管理研讨发言稿范文
- 特许金融分析师考试知识点归纳与试题及答案
- 广东省江门市2024-2025学年高三下学期一模地理试题(解析版)
- 特许金融分析师考试各科目分析试题及答案
- 自然拼读法在初中英语词汇教学中的应用
- 眼镜行业市场调研
- 预防机制培训:缓解自然灾害对物资供应的影响
- 霜藏针的培训
- 特许金融分析师考试全景复习试题及答案
- 中国古代四大发明(小学课件)
- 事故隐患报告举报奖励制度培训
- 过敏人群精准营养干预规范(征求意见稿)
- 广西壮族风俗演示文稿课件
- 新生儿疼痛管理指南2028
- 医院安全生产问题分析报告
- 小米手机产品生命周期及营销策略分析
- 辅警必考题库以及结构化面试题及答案(2024年完整版)
- 鼻骨骨折病人护理课件
- 中国人的礼仪规矩
- 产品合格证出厂合格证A4打印模板
评论
0/150
提交评论