太阳能光伏存储技术研究——工作总结
毕业设计工作总结表6
工作任务完成情况(包括任务书中规定的工作内容、研究目标等,如未能完成须说明原因):在李田泽教授的精心指导下,经过一个学期的时间,我上网搜集资料、查阅了大量的相关书籍、请教老师和同学,确定了研究内容并按照任务书要求完成了相关的工作,依据。本文针对光伏电池转化效率低以及并网逆变系统存在的孤岛效应对并网光伏发电系统进行了研究,主要工作如下:基于光伏阵列单元等效电路模型,分析了太阳能电池输出特性与太阳光照强度、环境温度之间的关系;在分析太阳能电池输出特性的基础上,采用多镜面组成的抛物面聚光器提高光伏电池的转化效率,并给出了该聚光器的设计理论与相关计算;在了解光伏逆变器基本知识的基础上分析了光伏并网逆变电路工作原理,阐述了孤岛状态的定义,并介绍了对孤岛状态检测方法的要求,在此基础上,对目前常用的逆变系统孤岛检测方法进行了分析比较,针对有功干扰法在孤岛中存在多个光伏并网系统并联供电时的失效问题,提出了一种基于正反馈有功干扰的孤岛检测方法。由于本人的水平有限、阅历尚浅,设计中很多地方都不尽完美,但总的来说,在老师的帮助下基本完成了各项任务并撰写了毕业设计论文。在这里衷心的对李田泽老师表示感谢!主要创新点:本论文的创新点是针对有功干扰法在孤岛中存在多个光伏并网系统并联供电时的失效问题,提出了一种基于正反馈有功干扰的孤岛检测方法,加入正反馈环节后,该方法对孤岛中存在多个光伏并网的情况也具有一定的适用性。该检测方法控制简单,对传感器精度要求不高,在光伏并网逆变器中实现不需额外的硬件成本。
工作状况(包括工作态度、刻苦精神、协作精神、个人精力投入、出勤等情况):拿到任务书后两周内,首先通过网上、实验室、图书馆等查阅各种资料,包括设计所需要的材料、外文文献和翻译资料,与指导老师交流,确定设计方案,再将这些资料整理并加以融合,在此基础上根据设计任务书的具体指标稍作修改,基本上满足本次设计的要求。在设计过程中,我深知自己所学知识有限,积极与其他同学及老师请教遇到的问题,正是由于老师的精心解答,同学的热心帮助,我才如期完成毕业设计。对每次老师集中指导我都非常重视,按时出勤,认真听取老师的指导,及时和老师交流设计心得,报告设计进度。收获、体会及建议:一个学期紧张而充实的毕业设计工作,我受益匪浅。通过本次设计,我巩固了所学专业知识,拓展了自己的知识结构,学到了许多新的技术。通过老师的悉心指导,我不仅将自己所学的知识在实践中得以运用,加强了对知识的理解、运用能力,而且接触了很多新观念、新方法,拓宽了知识面,为将来的工作打下良好的基础。本次毕业设计,培养了我严谨认真的态度和独立解决分析问题的能力,自我约束能力也进一步增强。在漫长的设计过程中我克服了浮躁心理,踏踏实实用心做好每一步设计。同时,我还认识到了和他人的协作对于一个人的成功是多么的重要,在与同学的交流协作中,我也学到了很多为人处事的方法,使得自己的交际能力有了很大的提高。本文是在导师李田泽教授的悉心指导下完成的。他渊博的知识,严谨的治学态度,鞭策我不断努力探索;他敏锐的洞察力和孜孜不倦的教诲使我受益终身,无论是现在还是将来,都将激励我奋发向上。学生签字:201*年6月12日
扩展阅读:太阳能光伏存储技术的研究——毕业论文
毕业设计说明书
太阳能光伏储存技术研究
学院:电气与电子工程学院专业:电子信息科学与技术姓名:学号:指导教师:
201*年6月
摘要
摘要
目前,太阳能能源在生活中的利用越来越频繁,如何更好储存太阳能就成为利用太阳能的一个重要环节,而蓄电池正是太阳能储存的重要器件。面对目前许多蓄电池充放电控制不合理和保护不够充分等情况,本文设计了一套太阳能充电控制器,控制蓄电池的充放电,从而达到更有效的存储太阳能。
在总体方案的指导下,本设计使用低功耗、高性能、超强抗干扰的STC89C52单片机作为核心器件进行控制。系统硬件电路由太阳能电池充放电电路,电压采集和显示电路,单片机控制电路和RS232串口通信电路组成,主要实现对蓄电池电压的采集和显示。软件部分依据PWM(PulseWidthModulation)脉宽调制控制策略,编制程序使单片机输出PWM控制信号,通过控制光电耦合器通断进而控制MOSFET管开启和关闭,达到控制蓄电池充放电的目的,同时按照功能要求实现了对蓄电池过充、过放保护和短路保护。
实验表明,该控制器性能优良,可靠性高,可以时刻监视太阳能电池板和蓄电池状态,实现控制蓄电池最优充放电,既能达到延长蓄电池使用寿命,也能够更好的对太阳能进行存储。
关键词:充电控制器;太阳能储存;PWM脉宽调制;
IAbstract
Abstract
Atpresent,thesolarenergyutilizationinthelifeofpeoplemoreandmorefrequent,howtostoresolarenergyhasbecomeanimportantpartofthat,andthestoragebatteryisanimportantcomponentofsolarenergystorage.Inthefaceofmanyofthecurrentbatterychargeanddischargecontrolunreasonableandinadequateprotection,thispaperdesignsasolarchargecontroller,batterychargeanddischargecontrol,soastoachievethestorageofsolarenergymoreeffectively.
Undertheguidanceoftheoverallprogram,thedesignoflowpowerconsumption,highperformance,stronganti-interferenceofSTC89C52microcontrollerasthecoredevicecontrol.Thesystemhardwarecircuitbythecircuitofcharginganddischargingsolarbattery,voltageacquisitionanddisplaycircuit,SCMcontrolcircuitandRS232serialcommunicationcircuit,mainlyrealizestheacquisitionanddisplayofthebatteryvoltage.ThesoftwarepartbasedonPWM(PulseWidthModulation)pulsewidthmodulationcontrolstrategy,programmingthemicrocontrolleroutputPWMcontrolsignal,throughthecontrolofphotoelectriccoupleron-offandcontrolofMOSFETopeningandclosing,tocontrolthebatterycharginganddischargingoftheobjective,atthesametime,accordingtothefunctionalrequirementsoftherealizationofthebatteryovercharge,overdischargeprotectionandshortcircuitprotection.
Experimentsshowthat,thecontrollerhasexcellentperformance,highreliability,canconstantlymonitorthesolarpanelsandthestateofthebattery,batterychargeanddischargecontroloptimal,toprolongtheservicelifeofstoragebatteryatthesametime,alsocanbetterforstorageofsolarenergy.
Keywords:solarchargecontroller;storage;PWMpulsewidthmodulation;
II目录
目录
摘要..............................................................IAbstract..........................................................Ⅱ目录.............................................................Ⅲ第一章绪论........................................................1
1.1太阳能储存现状.............................................11.2课题研究背景和意义.........................................11.3主要设计内容...............................................3第二章太阳能储存的总体设计方案...................................42.1太阳能储存的控制策略.......................................42.1.1太阳能电池.............................................42.1.2蓄电池.................................................42.1.3控制策略..............................................72.2总体设计方案...............................................7第三章系统硬件电路设计...........................................93.1单片机最小系统.............................................9
3.1.1STC89C52的简介......................................93.1.2单片机的最小系统及扩展电路..........................113.2充放电电路................................................133.3光耦驱动电路..............................................143.4A/D转换电路..............................................15
3.4.1ADC0804的简介......................................153.4.2ADC0804外围接线电路...............................173.5LCD显示电路..............................................183.6E2PROM数据存储电路.......................................203.7串口通信电路..............................................213.8系统总机电路图............................................24第四章系统软件设计..............................................244.1系统主程序设计............................................244.2电压采集转换模块..........................................25
4.2.1ADC804时序图.......................................254.2.2A/D转换子程序......................................254.3显示模块..................................................26
4.3.11602液晶写操作时序图...............................264.3.2电压显示流程图......................................274.4数据存储模块..............................................28
III
目录
24.4.1IC总线模拟时序图.................................28
4.4.2数据存储流程图......................................304.5软件调试和仿真............................................30结论...........................................................33参考文献.........................................................34致谢...........................................................36附录Ⅰ系统程序..................................................37附录Ⅱ总机电路图................................................51
IV第一章绪论
第一章绪论
1.1太阳能储存现况
太阳能作为新能源有着巨大的优势,所以世界各国都在努力研发新技术,比较成熟的是太阳能光伏发电技术。太阳能光伏发电现已成为新能源和可再生能源的重要组成部分,也被认为是当前世界最有发展前景的新能源技术。目前太阳能光伏发电装置已广泛应用于通讯,交通,电力等各个方面。
在进行太阳能光伏发电时,由于一般太阳能极板输出电压不稳定,不能直接将太阳能极板应用于负载,需要将太阳能转变为电能后存储到一定的储能设备中,如铅酸蓄电池。但只有当太阳能光伏发电系统工作过程中保持蓄电池没有过充电,也没有过放电,才能使蓄电池的使用寿命延长,效率也得以提高,因此必须对工作过程加以研究分析而予以控制,这种情况下太阳能充电控制器应运而生。
1.2课题研究背景和意义
能源资源是国民经济发展的重要基础之一,随着人民生活水平的不断提高和科学技术的迅速发展,能源的缺口增大,能源问题作为困扰人类长期稳定发展的一大因素摆在了人们面前。伴随着世界能源危机的日益严重,石油价格不断上涨,利用常规能源已经不能适应世界经济快速增长的需要,如何解决能源问题,是每个国家都必须面临的问题。同时,以煤、石油作为燃料在燃烧过程中产生的有害物质已经开始造成全球变暖,即“温室效应",人类的生活将会由此受到很大的威胁。这些难题迫使政府和社会在发展常规能源的同时必须加大对新能源的开发和利用。
新能源包括水能、风能、太阳能等。虽然风能或水能等更加便宜,但是大多数的自家用户却都不可能找到适当场合进行架设,架设成本较高。而太阳能则不同,任何自家用户只要找到一个有阳光照射到的窗户都可以装置太阳能极板作辅助能源,几百元投资便可以架设。所以综合考虑,太阳能无疑是符合我
-1-
第一章绪论
国可持续发展战略的理想绿色能源,全球能源专家也认为,太阳能将成为21世纪最重要也最有前景的能源之一。
而且太阳辐射能与煤炭、石油等常规能源相比较,更有如下的优点:(1)普遍性。
地球上处处都有太阳能,不需要到处去寻找,去运输,容易获取。(2)无害性。
利用太阳能作为能源,没有废渣,废料,废气,废水的排放,没有噪声,不会污染环境,没有公害,清洁干净。
(3)长久性。
只要有太阳,就有太阳能,因此太阳能可以说是取之不尽,用之不竭。(4)巨大性。
一年内到达地面的太阳辐射能总量要比现在地球上消耗的各种能量的总和大几万倍。
我国幅员辽阔,有着十分丰富的太阳能资源。全国各地的年太阳辐射总量3340.8400MJ/m2,中值为5852MJ/m2。年日照时数在2200小时以上的地区约占国土面积的2/3以上。我国的西部地区,包括西藏、新疆、青海、内蒙古等省,年日照时间长,这些地区面积宽广、人口密集低,在一些偏僻的地区传统的供电设施建设成本高,电能的供需矛盾显得十分突出,因此当地政府充分利用太阳能发电解决无电地区的用电具有重大的战略意义。为了更高效的利用太阳能,白天可将太阳能转化为电能,利用蓄电池将电能储存起来,需要用电时即可由蓄电池供电。
总体看来我国太阳能资源比较丰富,因此充分利用丰富的太阳能资源,采用太阳能光伏发电技术,可以节约能源,发展经济,提高人民生活水平。
-2-
第一章绪论
1.3主要设计内容
本设计研究确定了一种基于STC单片机的太阳能充电控制器的方案,在太阳能对蓄电池的充电方式、控制器的功能要求和电路保护方面做了分析,完成了系统硬件电路设计和软件编程,实现了对蓄电池的科学管理。这里以充/放电最大电流10A,额定电压12V控制器系统为例,其实现的主要功能如下。
(1)要能自动检测太阳能电池板电压是否高于蓄电池电压,若高于蓄电池电压,则可开启充电;若低于蓄电池电压,则不能开启充电,否则蓄电池电流会反向流向太阳能电池板而造成点亮损耗。
(2)当蓄电池电压低于10.8V时,自动关断负载(欠压关断),同时有报警功能;
(3)当蓄电池电压高于14.5V,自动关断负载(过压关断)和充电电路,同时有报警功能。
(4)当蓄电池处于浮充充电状态时电压值控制在13.5V左右。
(5)当用户将太阳能电池板接反至控制器时,具有保护控制器不被毁坏的功能;
(6)当用户将蓄电池接反至控制器时,要有报警功能,并且具有保护控制器不被毁坏的功能。
-3-
第二章太阳能储存的总体设计方案
第二章太阳能储存的总体设计方案
2.1太阳能储存的控制策略
2.1.1太阳能电池板
如图2-1所示,太阳能电池板是利用半导体光伏效应制成的,能够直接将太阳辐射转换成电能的器件。具有很强的光伏效应半导体材料,当吸收一定能量的光子后其内部导电的载流子电子和空穴分布和浓度发生变化。光照在半导体P/N结上,就会在其两端产生光生电压,当外部接通电路时,在该电压的作用下,将会有电流流过外部电路产生一定的输出功率。在这个过程中,光电池本身不发生任何化学反应,也没有转动磨损,因此使用太阳能电池的过程中没有噪声,没有环境污染,这是其他方式发电所不能比拟的。
图2-1太阳能电池产生光伏效应
2.1.2蓄电池
(1)蓄电池工作原理
太阳能充电控制器最主要的功能是控制太阳能极板对蓄电池的充电,蓄电池的性能和充放电的方式有很大的关系,所以在设计控制器之前需要对蓄电池的原理、充放电过程做一个分析。
一般铅酸蓄电池是由正极板、负极板、隔板、电池槽、电解液和接线端子等部分组成,极板主要有铅制成,电解液是硫酸溶液。依据化学基础理论:铅酸蓄电池释放化学能的过程(放电过程)是负极进行氧化,正极进行还原的过程;
-4-
第二章太阳能储存的总体设计方案
电池补充化学能的过程(充电过程)是负极进行还原,正极进行氧化的过程。分析可知,蓄电池的充电过程和放电过程是可逆的。实际上,蓄电池最重要的指标就是电解液中硫酸根的浓度,因此可以用电池中硫酸溶液的密度(比重)来衡量电池充放电的程度。
(2)蓄电池在光伏发电系统中的作用
在独立的太阳能光伏发电系统中,蓄电池是整个系统的重要组成部分,是对整个系统性能可靠性影响比较大的部分。在光伏发电系统中,蓄电池的主要作用有:储存能量、对太阳能极板的工作电压的进行钳位、给负载提供启动电流等。蓄电池的存在,可以解决太阳能产生电能和负载用电时间不一致不同步的问题,太阳能极板和负载两者之间电压不匹配的问题等。(3)蓄电池常规充放电方式
目前,市场上常规的蓄电池充电法包括三种:恒流充电法、阶段充电法和恒压充电法。
恒流充电法:是通过保持充电电流强度不变进行充电的方法。这种充电控制方法简单,但由于电池的可接受电流能力是随着充电过程的进行而逐渐下降的,到充电后期,充电电流多用于电解水,产生气体,使出气过多,影响蓄电池的使用寿命。
阶段充电法:这种充电方法包括二阶段充电法和三阶段充电法。二阶段充电法是先用恒定电流充电至预定的电压值,然后改为恒定电压完成剩余的充电,一般两阶段之间的转换电压就是第二阶段的恒电压;三阶段充电法是指在充电开始和结束时采用恒定的电流充电,中间用恒定的电压进行充电。阶段充电法这种方法虽然可以将出气量减到最少,但作为一种快速充电方法使用,实际应用中受到一定的限制。
恒压充电法:恒压充电时要严格掌握充电电压,电压在全部充电时间里保持恒定的数值,充电电压过低,蓄电池会充不满,过高则会造成过量充电。由于充电初期蓄电池电动势较低,充电电流很大,随着充电的进行,电流将逐渐减少。这种充电方法在充电初期电流过大,对蓄电池寿命造成很大影响,且容
-5-
第二章太阳能储存的总体设计方案
易使蓄电池极板弯曲,将会影响蓄电池的使用。
改进的充放电方式:针对目前市场上控制器的主要问题是由于对于蓄电池的保护不够充分,不合适的充电方式容易导致蓄电池的损坏,同时通过对蓄电池的工作原理和对影响蓄电池使用寿命因素的分析,本论文提出了PWM(PulseWidthModulation)脉宽调制充电方法。PWM是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。这种充电法不仅遵循蓄电池固有的充电接受率,而且能够提高蓄电池充电接受率,这也是蓄电池充电理论的进一步发展。
PWM脉冲调制充电方式首先对电池充电一段时间,然后让电池停止充电一段时间,如此循环往复。充电脉冲使蓄电池充满电量,而间歇期使蓄电池经化学反应产生的氧气和氢气有时间重新化合而被吸收掉,从而减轻了蓄电池的内压,使下一轮的充电能够更加顺利地进行,使蓄电池可以吸收更多的电量。PWM调制充电方式使蓄电池有较充分的反应时间,减少了析气量,提高了蓄电池的充电效率。脉宽调制方式是指在固定时钟频率下,通过调节开关的通断时间来控制信号的占空比,从而实现对输出电压的调整。实际也就是以一直流电压经过以一定频率打开与闭合开关的控制来改变电压。输出电压波形如图2-2所示。
针对目前市场上的太阳能充电控制器当蓄电池给负载供电时,没有时刻检测蓄电池的电压,很容易导致蓄电池的深度放电这个问题,本论文提出时刻在线检测蓄电池电压来避免蓄电池发生过放现象,保护蓄电池,提高其使用寿命。
作为光伏发电系统中的关键部件,蓄电池的寿命短是阻碍整个光伏发电系统性能和推广的主要原因之一。根据蓄电池的工作原理,结合实际应用情况,在光伏发电系统中,影响铅酸蓄电池寿命的主要因素有:充电电压的设置、过放控制点的设置、温度、运行环境等。依据这些影响因素,分析蓄电池常见充放电方式局限性,对充放电方式进行了一定的改进。
-6-
第二章太阳能储存的总体设计方案
电压U0tT时间
图2-2输出电压波形
2.1.3控制策略
一般太阳能极板输出电压的不稳定,不能直接应用于负载,需要将太阳能转变为电能后存储到储能设备如蓄电池中,而控制器在这个过程中起着枢纽作用,其性能的好坏将会直接影响实际应用的使用效果。控制器控制太阳能极板对蓄电池的充电,为了延长蓄电池的使用寿命,必须对它的充放电条件加以限制,防止蓄电池过充电及深度充电。控制器同时负责蓄电池是否对负载供电,当蓄电池的电压在正常范围内时,控制器控制开关接通,蓄电池给负载供电;当蓄电池的电压处于欠压或是过放状态时,控制器控制开关截止,蓄电池停止对负载的供电,在这个过程中控制器起着至关重要的作用,保护负载和蓄电池。
2.2总体设计方案
通过以上对各种分析,明确太阳能充电控制器的重要性和作用,依照应该具有的功能,制订出控制策略,最后确定了整体设计方案。
本系统以STC89C52单片机为主控芯片,利用分压电路对蓄电池的电压、进行采样,然后经过A/D转换将检测电压数据输入到单片机中进行处理,通过液晶芯片把电压值显示出来方便调整。单片机在软件程序的控制下输出PWM控制信号,经光耦驱动MOSFET管开启与关闭来控制充放电电路。该系统可以实现控制蓄电池的最优充放电,有效的延长蓄电池的寿命。系统整体结构框图如图2-3所示。
-7-
第二章太阳能储存的总体设计方案
太阳能电池板充电电路光耦驱动电路液晶1602电压显示电路铅酸蓄电池A/D转换电路主控芯片STC89C52单片机AT24C02数据存储电路负载放电电路光耦驱动电路RS232串口通信电路图2-3系统整体结构框图
以上通过对太阳能电池、被控对象蓄电池的分析,结合硬件资源和软件控制策略,进行了硬件电路设计和软件编程设计,最终确定整体设计方案。整体方案设计,讲述了光伏发电技术中控制器和蓄电池的作用,控制器主要负责控制太阳能极板对蓄电池的充电以及控制蓄电池对负载的供电。由于不合适的充放电方式会导致蓄电池的损坏,缩短蓄电池的使用寿命,本论文提出了PWM脉宽调制充电方法,这种充电方法能够使蓄电池有较充分的反应时间,与以前的充电方式相比,提高了蓄电池的充电效率。同时提出了时刻在线检测蓄电池电压的放电控制方法,避免蓄电池发生过放现象,保护蓄电池。各个部分的控制功能通过对单片机进行软件编程来实现。。
-8-
第三章系统硬件电路设计
第三章系统硬件电路设计
在整体方案的指导下,依据工程设计的常见思路,本论文从硬件电路设计和软件设计两个方面入手,运用模块化的设计方法去进行控制器的设计。
硬件电路主要由以下几部分组成:单片机最小系统、充放电电路、光耦驱动电路、A/D转换电路、LCD显示电路、E2PROM数据存储电路、串口通信电路等。下面先从系统层次原理图入手,对系统原理进行详细的分析,然后再对具体电路地进行一一介绍。
3.1单片机最小系统
3.1.1STC89C52的简介
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用STC公司高密度非易失性高加密性存储器技术制造,与工业80C51产品指令和引脚完全兼容。在芯片内部,拥有很高频率8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52具有低功耗设计,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。而且STC89C52的工作频率很宽,可以在0~35MHz之间选择,芯片具有超强抗干扰性,加密性强。
STC89C52常见的是PDIP封装,是一个有40个引脚的芯片,引脚如图3-1所示。按其功能类别将它们分为三类:
(1)电源和时钟引脚。如VCC、GND、XTAL1、XTAL2。
-9-
第三章系统硬件电路设计
(2)编程控制引脚。RST、PSEN、ALE/PROG、EA/VPP。(3)I/O口引脚。如P0、P1、P2、P3。
图3-1STC89C52引脚图
这里仅详细介绍编程引脚:
(1)RST:复位输入。晶振工作时,RST引脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
(2)ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的振荡频率输出脉冲,可作为外部定时器或时钟使用。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
-10-
第三章系统硬件电路设计
PSEN:(3)外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
(4)EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏Vpp电压。
3.1.2单片机的最小系统及扩展电路
单片机是系统的主控芯片,为了使整个电路得到很好的控制,首先必须构建最小系统是单片机可以工作起来。本设计单片机最小系统扩展电路包括上电复位电路,时钟电路,工作指示灯和蜂鸣器报警电路等。
(1)时钟电路
单片机内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入端和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~12MHz之间选取。时钟电路如图3-2所示。电路中C6、C7是反馈电容,其值在5pF~30pF之间选取,本电路选用的电容为30pF,晶振频率为11.0952MHz。
(2)复位电路
复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
单片机的复位电路如图3-3所示。本系统采用的是上电+电平按钮复位,上电复位是通过外部复位电路的电容充电来实现的。按钮复位是当按钮按下后,
-11-
第三章系统硬件电路设计
电源通过电阻R14施加到复位端上,实现单片机复位。
复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路电阻和电容值进行实验。
图3-2时钟电路
图3-3复位电路
(3)工作状态指示灯电路
本设计可以时刻检测蓄电池电压,为了更好的进行监控,要对整个电路的
工作状态进行指示,这是很有必要的。工作状态指示灯电路如图3-4所示。其中LED1为正常充电指示灯,LED2为过压指示灯,LED3为欠压指示灯。串联的电阻的目的是为了限制通过发光二极管的电流太大而将其烧毁。
(4)蜂鸣器报警电路
报警电路采用蜂鸣器来发出报警声音,由于STC89C52输出引脚的驱动能力较弱,所以蜂鸣器要加三极管进行驱动。
在对蓄电池电压实时监测的过程中,一旦发现检测电压值连续超出阈值范围,便启动自身报警电路,即当电压超过程序设定的最高值或最低值时,单片机的P2.6引脚(beep端)输出低电平,三极管随之导通,驱动蜂鸣器发出报警信号。蜂鸣器报警电路图如图3-5所示。
-12-
第三章系统硬件电路设计
图3-5工作状态指示灯电路
图3-5蜂鸣器报警电路
3.2充放电电路
充放电电路如图3-6所示,电路由防反充二极管D1、滤波电容C4和C5、稳压管D2、续流二极管D3、MOSFET管Q1和Q2等构成。二极管D1是为了防止反充,当阴天或晚上蓄电池的电压高于太阳能电池板的电压时,D1就生效,可以防止蓄电池电流流向太阳能电池板。分析可知,通过控制MOSFET管闭合和断开的时间(即PWM脉冲宽度调制),就可以控制输出电压。所使用的MOSFET是电压控制单极性金属氧化物半导体场效应晶体管,所需驱动功率较小。而且MOSFET只有多数载流子参与导电,不存在少数载流子的复合时间,因而开关频率可以很高,非常适合作控制充放电开关。设计中采用IRL2703-N沟道MOSFET管,N沟道MOSFET的导通电压Vth>0。当光耦U2断开时,由于Q1的G极电压接近蓄电池电压,S极是接地,使得Vgs>0,当G极电压达到一定值时,Q1导通。电容C4是太阳能电池板输出电压滤波,使得更稳定地给蓄电池充电。电容C5是对蓄电池输出电压进行滤波,以保证负载供电电路的稳定性。图中稳压管D2用来对蓄电池进行稳压作用。当用户将蓄电池反接至控制器时,续流二极管D3可以进行续流,从而保护控制器不被毁坏。
按程序设计当检测到蓄电池的电压低于12V,充电模式为均充,Q1为完全导通状态,也就是导通的脉冲占空比最大;当检测到蓄电池的电压在12V-14.5V,
-13-
第三章系统硬件电路设计
图3-6充放电电路
充电模式为浮充,Q1导通与不导通的占空比例变小,当检测到蓄电池的电压等于15V左右,Q1截止使充电停止,同时Q2也关闭来关断负载。当检测到蓄电池的电压低于10.8V,Q2关闭停止放电,关断负载来实现欠压关断。
3.3光耦驱动电路
为了增加系统的可靠性,本设计用光电耦合器实现单片机控制电路和充放电电路的隔离。光耦驱动电路如图3-7所示。M0S管Q1控制着充电电路,当充电控制信号PWM为低电平时,光耦内部的发光二极管的电流近似为零,右侧三极管不导通,输出端两管脚间的电阻很大,相当于开关—断开‖,输出端K1被抬高,电阻R9右侧被稳压管D2稳压到12V左右,MOSEFT的Vgs>0,MOS管Q1开启,太阳能极板开始对蓄电池充电;当充电控制器信号为高电平时,光耦内部的发光二极管发光,三极管导通,输出端两管脚间的电阻变小,相当于开关—接通‖,此时从U2输入的电压经光耦流向接地端,K1处的电压接近为零,MOSEFT的Vgs第三章系统硬件电路设计
图3-7光耦驱动电路
3.4A/D转换电路
本系统设计的STC89C52单片机没有内置的A/D转换模块,因此需要先采集蓄电池的电压,然后经A/D转换才可接入单片机。市场中集成的A/D转换器品种很多,选用时需要综合考虑各种因素进行选取。一般逐次比较型A/D转换器用到较多,本设计采用8位并行A/D转换器芯片ADC0804。因为蓄电池电压的采集转换在系统中极为重要,所以下面对所选ADC0804芯片及在本系统中是典型连接电路予以介绍。
3.4.1ADC0804的简介
AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。AD转换器最主要的技术参数是转换速度和转换精度,由于逐次比较型兼有并行A/D转换器转换速度高和双积分型转换精度高的优点,所以得到普遍应用。ADC0804就是这类集成A/D转换器。
ADC0804为一只具有20引脚并行8位CMOS工艺逐次比较型的集成A/D转换器,其规格如下:
-15-
第三章系统硬件电路设计
(1)高阻抗状态输出,分辨率:8位(0~255)(2)存取时间:135us;转换时间:100us(3)总误差:正负1LSB
(4)工作温度:0度~70度;(5)模拟输入电压范围:0V~5V(6)参考电压:2.5V;工作电压:5V
(7)输出为三态结构,可直接连接在数据总线上。ADC0804引脚图如图3-8所示,其各个引脚的功能:
CS芯片片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器别选中,可启动工作。
RD外部读取转换结果的控制输出信号。RD为1时,DB0~DB7处理高阻抗:RD为0时,数字数据才会输出。
WR用来启动转换的控制输入,相当于ADC的转换开始(CS=0时),当WR由1变为0时,转换器被清除:当WR回到1时,转换正式开始。
图3-8ADC0804引脚图
CLKIN时钟信号输入端
-16-
第三章系统硬件电路设计
CLKR:内部时钟发生器的外接电阻端,与CLK配合可有芯片自身产生时钟脉冲,其振荡频率为1/(1.1RC)
INTR中断请求信号输出,端,低地平动作.,表明本次转换已完成。VIN(+)VIN(-)差动模拟电压输入。输入单端正电压时,VIN(-)接地:而差动输入时,直接加入VIN(+)VIN(-).
AGND,DGND模拟信号以及数字信号的接地.VREF/2参考电平输入,决定量化单位。DB0~DB7三态特性数字信号输出端.VCC:电源供应以及作为电路的参考电压.
3.4.2ADC0804外围接线电路
(1)电压采集电路
如图3-9所示,电压采集电路使用两个串联的电阻,大小比例为2:1,然后并联在需要检测的电压两端,从两个电阻中间采集电压。由分压公式得出采集的电压为ADIN,当蓄电池充满电时电压大概为14.5V,计算出采集到的电压为4.8V,符合A/D转换芯片的ADC0804的输入值。
图3-9电压采集电路
(2)ADC0804构成的典型A/D转换电路
-17-
第三章系统硬件电路设计
按照芯片手册中ADC0804的典型接法,系统中设计的A/D转换电路如3-11所示。单片机的P2.7引脚,用来实现片选;RD、WR分别接单片机的P3.6和P3.7引脚,进行读写控制;CLK、CLKR、GND之间用电阻和电容构成RC振荡电路,用来给ADC0804提供工作所需的脉冲。
蓄电池的电压采集信号ADIN从6脚引入,在内部采集转换后,从数字输出端输出到单片机的P1口,通过读P1口数据,便可以得到蓄电池的电压,实现实时在线检测。
图3-12A/D转换电路
3.5LCD显示电路
液晶具有体积小、功耗低,显示清晰的优点,所以比较适合作显示使用。为了更好的显示电压值,同时扩展自己学习芯片的能力,本设计用液晶1602来显示蓄电池的电压值。在使用1602之前,我们首先查阅其使用手册,对其进行一定的了解。从芯片手册中,可以得到1602液晶的主要技术资料,如表3-1所示,通过此表我们可以知道1602工作电压和显示容量,可以验证设计选择的是否合适。
表3-11602的主要技术参数
显示容量芯片工作电压工作电流
模块最佳工作电压
162个字符4.5~5.5V
2.0mA(5.0V)5.0V
第三章系统硬件电路设计
字符尺寸
2.954.35(WH)mm
显然,1602液晶可以满足要求,接下来介绍其各个引脚的功能,为后面设计电压显示电路做准备。1602引脚功能如表3-2所示。
表3-21602引脚功能表
引脚1234567-14
符号VssVDDVORSR/WEDB0-DB7
名称接地电路电源
0V功能5V±10%
液晶显示对比度调
用于调节对比度
节端
寄存器选择信号读/写信号片选信号数据线
H:数据寄存器L:指令寄存器H:读L:写下降沿触发,锁存数据数据传输
根据1602的技术参数和引脚功能,1602与单片机连接构成的电压显示电路如图3-12所示。EN使能端接单片机的P2.2引脚,用来实现片选;RS接单片机P2.0引脚,进行数据和命令选择;R/W接单片机P2.1引脚,进行读写控制;为防止直接加5V电压烧坏背光灯,在15脚串接一个10的电阻用于限流。液晶3端通过接一个10K电位器接地来调节显示对比度。数据输入端D0-D7接单片机的P0口用于电压数据的传送。
图3-11电压显示电路
-19-
第三章系统硬件电路设计
3.6E2PROM数据存储电路
为了把电路发生异常时的蓄电池电压记录下来,需要用存储芯片进行数据保存。若采用普通存储器,在掉电时需要备用电池供电,并需要在硬件上增加掉电检测电路,但存在电池不可靠及扩展芯片占用单片机过多口线的缺点。为了解决这一难题,本设计采用具有I2C总线接口的串行E2PROM器件,这里选择AT24C02芯片。AT24C02可有效解决掉电数据保存问题,可对所存在数据保存100年,并可多次擦写,擦写次数可达10万次以上。
AT24C02是一个2K位串行CMOSE2PROM,内部含有256个字节,采用先进CMOS技术实质上减少了器件的功耗。AT24C02内部有一个8字节页写入数据缓冲器。该器件通过I2C总线接口进行操作,有一个专门的写保护功能。为了更好的使用AT24C02,首先来介绍其各个引脚功能,如表3-3所示。
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,
2各设备的时钟线SCL接到总线的SCL上。根据各引脚的功能,依据IC总线
系统的典型硬件连接图,AT24C02与单片机连接构成的数据存储电路如图3-1所示。
表3-3AT24C02管脚描述
管脚名称A0A1A2SDASCLWP
功能
可编程地址输入端串行数据/地址串行时钟写保护
电源端,+1.8V~6.0V工作电压地
VccGND
-20-
第三章系统硬件电路设计
图3-12数据存储电路
3.7串口通信电路
随着单片机系统的广泛应用和计算机网路技术的普及,单片机的通信功能愈来愈显得重要。单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,不过通常使用的是单片机与计算机之间的通信。通信有并行和串行两种方式。由于并行通信存在使用传输线较多,长距离传送成本高且收、发方的各位同时接受存在困难等诸多问题,所以在现代单片机测控系统中,信息的交换多采用串行通信方式。
本设计中加入串行通信电路的目的主要有三个:一是方便给单片机下载程序;二是使控制器具有远程通信或远程监控的功能;三是将控制器每天采集到数据的极限值和发生异常状态时的数据记录下来,供用户查看。由于单片机的电平和计算机电平不兼容,设计中采用MAX232芯片进行TTL电平和RS-232电平之间的转换。而且系统采用易于实现的异步串行通信方式,用最简单也最实用的奇偶校验作为串行通信错误校验方式。
MAX232芯片是专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。其主要特点:
(1)符合所有的RS-232C技术标准(2)只需要单一+5V电源供电(3)片载
-21-
+10V和-10V第三章系统硬件电路设计
电压V+、V-
(4)功耗低,典型供电电流5mA(5)内部集成2个RS-232C驱动器(6)内部集成两个RS-232C接收器
(7)高集成度,片外最低只需4个电容即可工作。
了解芯片的主要特点之后,接下来我们来认识MAX232它的各个引脚的功能,即有什么作用,以更好地设计串口通信电路。其引脚图如图3-13所示。
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS电平从T1IN、T2IN输入转换成RS-232电平从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚GND、16脚VCC(+5v)
图3-13MAX232的引脚图
按照串行通信原理,根据RS-232串口协议和MAX232芯片的引脚功能,
-22-
第三章系统硬件电路设计
结合STC89C52单片机串行中断方式,本设计采用串口方式1(10位数据的异步通信)来构建串口通信电路。电路如下图3-14所示。
图3-14串口通信电路
设计中T1IN连接CMOS电平的单片机的串行发送端;T1OUT连接电脑的RS-232C串口的接收端PCRXD;同理,R1IN连接电脑的RS-232C串口的发送端PCTXD;R1OUT连接CMOS电平的单片机的串行接收端。当然单片机和DB9要共地,这是实现串行通信的前提条件。
3.8系统总机电路图
本章对充放电控制器的原理以及具体的硬件实现电路进行了详细的介绍,并对电路中使用到的芯片也予以描述,使读者通过阅读可以清晰的明白控制器的设计思路和实现过程。最后得出系统的总机电路图,见附录二。
-23-
第四章系统软件设计
第四章系统软件设计
软件设计采用C语言来实现,受C语言模块化编程设计思想的启发,本系统软件设计采用模块化设计思路,即整个控制软件由许多独立的子程序(子函数)模块组成,它们之间通过函数调用实现连接。既便于调试,连接,又便于移植、修改。系统软件主要完成蓄电池电压采集转换,PWM脉冲充电控制、实时LCD显示,异常报警等。包括以下几部分:系统主程序设计,电压采集转换模块,显示模块和异常数据存储模块。
4.1系统主程序设计
系统主程序流程图如图4-1所示。
开始初始化主函数和子函数蓄电池电压采集转换蓄电池反接关闭充放电电路Vbat14.5VNVbat>12VNYVbat>10.8V直充充电N关断负载开启充电结束图4-1系统主程序流程图
-24-
NY停止充电关断负载YPWM浮充充电第四章系统软件设计
系统主程序是整个电压测控系统中最重要的程序,是一个顺序执行的无限循环程序。蓄电池电压的采集、转换显示和异常数据的存储都在测控子程序中进行,系统应用主程序采用模块化结构,首先完成初始化,然后就开始按顺序调用各个模块子程序,通过系统自检和控制指令来实现数据处理和电路控制,有效的控制蓄电池充放电。
4.2电压采集转换模块
4.2.1ADC804时序图
为了更好理解模数转换器的对蓄电池电压采集转换过程,下面首先对ADC0804的启动和读取时序图予以介绍。时序图如图4-2所示。
图4-2ADC804时序图
如图,当CS与WR同时置低,为低电平时,A/D转换器被启动,且在WR上升沿后,经过约100uS后,模数完成转换,转换结果存入数据锁存器,同时,INTR自动变为低电平,表示本次转换已结束。在INTR变为低电平后,若CS、RD同时来低电平,则数据锁存器的三态门打开,把数字信号送出,此时直接读取数字端口数据,便可得到转换后的数字信号。反之,若RD为高电平,三态门处于高阻状态,数据被锁存。
4.2.2A/D转换子程序
-25-
第四章系统软件设计
芯片的时序图是对芯片的操作的关键依据。按照ADC0804芯片的时序图,此模块通过对其进行启动和读取操作,主要来完成对蓄电池电压的采集转换,并对结果进行数据处理,送给后面的显示模块予以显示。由于ADC0804的转换时间很短,本设计未用中断读取A/D的数据,而是在启动A/D转换后,稍等一会时间(程序中用延时函数实现),直接读取A/D的数字输出口即可。软件设计中AD转换模块的流程图如图4-3所示。
开始CS置低片选芯片RD置低电平读使能WR置低启动AD转换读取AD转换结果延时等待转换成实际电压值转换完成?Y结束N图4-3A/D转换子程序
4.3显示模块
4.3.11602液晶写操作时序图
通过电压采集转换子程序,通过单片机处理就可以得到蓄电池的实际电压值,本设计用液晶1602作显示器来进行显示。液晶1602通常用并行操作,作为一款显示芯片,为了使其能够正常的工作,首先必须对其进行初始化,然后按照其时序图进行正确操作,才能够得到满意的显示效果,这就是软件设计中显示模块的任务。下面就1602的初始化指令和操作时序进行介绍。
液晶1602的初始化,是让其正确显示的前提,其初始化通常如下:EN=0;首先关闭使能,防止开始时显示乱码,同时为以后高脉冲写入数据做
-26-
N第四章系统软件设计
准备。
write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加1write_com(0x01);//显示清零,数据指针清零
了解液晶1602的基本操作时序,读懂其操作时序图,是对其读写操作的关键。1602的基本时序如下:
读状态输入:RS=L,输出:DO~D7=状态字读数据输入:RS=H,输出:无
写指令输入:RS=L,R/W=L,DO~D7=指令码,E=H高脉冲输出:DO~D7=状态字
写数据输入:RS=H,R/W=L,DO~D7=数据,E=H高脉冲输出:无
作为显示用的芯片,通常对其进行写操作,1602液晶写操作时序图如图4-4所示。
R/W=H,E=H
R/W=H,E=H
图4-41602液晶写操作时序图
-27-
第四章系统软件设计
4.3.2电压显示流程图
分析时序图可知,对1602液晶进行写操作的流程如下:
(1)通过RS确定是写数据还是写操作,写命令包括使液晶的光标显示/不显示、光标是否闪烁、需/不需要移屏、在液晶的什么位置显示,等等。写数据是指要显示什么内容。
(2)读/写控制端设置为写模式,即低电平。(3)将数据或命令送到达数据线上。
(4)给使能端E一个高脉冲将数据送入到液晶控制器,完成写操作。关于时序图中的各个延时,不同厂家生产的液晶延时不同,不过大多数基本为纳秒级,而单片机操作最小单位为微秒级,因此在写程序是可不做延时,不过为了使液晶运行稳定,最好做简短延时即可。本设计采用C51库中自带的延时函数_nop_()(延时一个机器周期的意思)来实现简短延时。
按照1602液晶的写操作时序图,结合硬件连接电路,软件设计中电压显示模块的流程图如图4-5所示。
4.4数据存储模块
24.4.1IC总线模拟时序图
在对蓄电池充放电控制过程中,会出现电压值过高或过低的异常情况,很有必要对其进行存储,作为以后分析优化使用;同时我们可以按一定周期间隔性的对蓄电池电压进行采集,然后求取电压的平均值,通过分析每天的平均值情况,可以大致了解蓄电池的充电情况,这对以后优化充放电很有用。本设计用常见E2PROM器件AT24C02作为存储器对数据进行保存记录。AT24C02芯片的优点:
2IC总线标准,串行操作,可以简化硬件电路;同时具有很好的掉电保护采用
功能。
2由于STC89C52单片机没有IC总线接口,所以使用时要先通过软件模拟
I2C总线的工作时序,正确的调用函数就可方便的扩展I2C总线接口部件。
-28-
第四章系统软件设计
I2C总线模拟时序图如图4-6所示。
开始初始化设置读取AD转换模块处理结果,得到实际电压值分离出十位、个位和十分位,送给1602液晶具体位置显示调用写命令函数,定位第一行显示的数据指针调用写数据函数,进行第一行数据显示调用写命令函数,定位第二行显示的数据指针调用写数据函数,进行第二行数据显示移屏显示结束图4-5电压显示流程图
SCL>4.7us>4.7usSCL>4usSDA启动信号S终止信号P>4usSDA4usSCLSCLSDASDA应答信号初始化信号
2图4-6IC总线模拟时序图
-29-
第四章系统软件设计
2按照时序图,设计中为了模拟IC总线通信,写出了几个关键部分的程序:
总线初始化、启动信号、应答信号、停止信号等。下面以启动信号为例进行介绍。
启动信号的程序如下:在SCL为高电平期间,SDA一个下降沿为启动信号。voidstart()//启动信号{}
sda=1;scl=1;sda=0;
delay1();delay1();delay1();
4.4.2数据存储流程图
2作为存储芯片最重要的是对其进行写操作,下面将给出IC总线发送一个2IC总线时字节的流程图如图4-7所示。并根据AT24C02字节写入方式,结合
序图,软件中实现异常数据存储的流程图如图4-8所示。
开始开始时钟信号SCL置低总线初始化,初始化地址指针传送数据左移一位异常电压值送给变量a将此位送到数据线上时钟信号置高标志位是否有效?NN8位送完否?Y清除标志位,调用AT24C02写字节函数Y一个应答信号的周期地址指针加1结束
结束
2图4-7IC发送字节流程图
图4-8异常数据存储流程图
-30-
第四章系统软件设计
当检测蓄电池充电使电压值超过14.5v造成过充电时,首先蜂鸣器报警,标志位置1,然后调用数据存储函数把此时刻的电压值保存下来;当发生过放电时,同理如此。由于单片机的处理速度很快,因此很容易实现循环检测,做到对蓄电池状态的实时监控。
4.5软件调试和仿真
为了检验自己设计的单片机系统是否可以正常工作以及设计合理性,很有必要对系统进行模拟仿真。通过仿真可以看出系统硬件设计的不合理部分,以方便改善使得系统更加合理;同时更重要的是验证自己编写的软件程序是否已经实现其功能,完成了相应的设计要求和设计任务。
软件调试的过程:首先根据太阳能充电控制器软件设计要完成的设计任务,然后按照C语言模块化设计的编程方法,设计出各个子模块和主程序的算法流程图,最后在KEILC51中去编写相应的程序去实现。当然在编写程序进行软件实现过程中,遇到的第一个问题就是:程序的调试。程序编写后,进行编译,一开始发现了很多错误,一下子把自己卡住了;后来通过查看相关资料,同时咨询指导老师和同学的经验,,在软件的提示下,慢慢地修改,最终把出现的错误都改正过来了。最终在显示输出信息窗口出现了一下信息:
Buildtarget"Target1"
//创建目标"Target1"//编译文件控制器移屏.c
compiling控制器移屏.c...linking...
//链接
ProgramSize:data=21.1xdata=0code=1572//项目大小:存储空间RAM和
ROM的数据存储量
creatinghexfilefrom"充放电控制器"...//创建了十六进制的目标文件"充放电控制器"-0Error(s),0Warning(s).//工程“充放电控制器”,编译结果,0错误,0警告。
当看到这个信息时,我很激动,知道自己编写的程序终于调试成功了。通过编写和调试程序,深深的体会到了程序编写的不易和艰辛,同时积累了很多的经验,收益匪浅。更十分地感谢我的同学和指导老师的无私帮助,是在他们的指导
-31-
第四章系统软件设计
下,我才把程序调试无误完成了软件调试工作。
程序调试成功后,下一步就是软件仿真,是检验程序运行是否正确的关键所在,更是优化系统所必须的。Proteus软件为单片机系统提供了良好的仿真环境,所以程序调试完成后,把在KEIL中生成的目标文件HEX文件,下载在仿真系统的单片机中,进行KEIL和proteus联合调试,看系统是否能正常工作。
和自己当初预料的一样,在刚开始仿真时,遇到了许多的问题,如1602液晶不显示,系统工作状态指示灯指示状态不正确等等,调试很久找不到关键所在。无奈之下,最后去咨询指导老师该怎么办,老师说可以在模拟的电池板和蓄电池附近并联虚拟的电压表,通过电压表的示数,用以时刻监测蓄电池的充放电状态。果然加上虚拟电压表,通过监测后发现蓄电池两端电压表的示数一直显示为零,明白是AD转换部分出现问题,然后通过修改AD转换模块的子程序,同时调整硬件引脚部分与软件相一致,慢慢的调试,最终蓄电池两端电压表有了示数,液晶1602也正确的显示了。然后再慢慢调试主程序,修改控制指令,最终三个工作状态指示灯也正确指示了。
系统共三种状态:正常充电、过充、过放。这里仅列出系统在正常工作状态下的仿真图,如下图4-9所示,以便更形象的看出充电控制器内部结构设计和实现功能。
正常工作时的状态:(此时电压13.4V)
其工作原理如下,单片机在软件程序控制下,控制着各个部分硬件电路有序工作,把从模数转换器得到的蓄电池的电压值,用1602液晶去显示,同时绿灯亮起表示系统正在充电。(注:这里为了得到更加逼真效果,仿真时采用直流电机作为负载)。
由于利用C语言开发单片机与汇编语言相比,具有易于操作、规范性好、适合模块化处理且容易移植的优点,所以本设计采用C语言作为编程语言。按照C语言模块化程序设计方法,论文编制了系统主程序和各个子程序模块来实现PWM脉宽调制控制策略和各种保护,完成了软件设计任务。
-32-
第四章系统软件设计蓄电池1U3VI7805VOGND3负载2太阳能电池板20kB112VC11DW12V100uF2R8R920kC12100uFC130.1uFK2+4.01VoltsR14+366V1+15.0VoltsRV110kC10D2+15.0Volts220uF10110k15v2100uF+4.50VoltsQ2D11LCD1602GND1N4148PV+Q1RSRWE456RSR/WEND0D1D2D3D4D5D6D7R510k65PWM1R15200K1123VSSVDDVEEU6324C122pFU1X112M18XTAL219XTAL1STC89C52P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDD3393837363534333221222324252627281011121314151617D0D1D2D3D4D5D6D7RP1123456789RV2D0D1D2D3D4D5D6D7BV+R610k65C2R16200K230pFU7FUZAI110kbeepQ3R110k249RSTC310uF293031PSENALEEAU2CSADRDWRR410kADC0804VCCDB0(LSB)DB1DB2DB3DB4DB5DB6DB7(MSB)201*17161514131211R310kC4330PFR210k1234581091967RSR/WENLEDLED1LED2beepCSADTXDRXDPWMFUZAISCKSDAWRRDU4SCK6SDA57SCKSDAWPAT24C02CA0A1A2123CSRDWRCLKININTRAGNDDGNDVREF/2CLKRVIN+VIN-12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71C1+TXD11RXD12109T1INR1OUTT2INR2OUT1uFC53C1-U5T1OUTR1INT2OUTR2INVS+VS-C2-14137826ADLEDR7330R18330R19330MAX232C2+4LED1D4C7C81uF1uFLED-GREENLED2D5LED-REDC61uF578910111213143R10C9ADK1P116273849DCDDSRRXDRTSTXDCTSDTRRIERRORCOMPIMLED-RED图4-9正常工作状态仿真
-33-
结论
结论
本论文为了更好的对太阳能进行储存,设计了一个太阳能充电控制器,把硬件电路和软件编程有效结合在一起来完成设计任务。
系统硬件电路设计包括单片机及外围电路设计、充放电电路设计、光耦驱动电路设计、电压显示电路设计、数据存储电路设计、串口通信电路设计等。所涉及的相关模块的电路设计,有的采用的是常见的经典电路的结构,有些是在原有结构的基础上,采用了集成度更高的现代芯片,从而使电路变得更加简单、可靠。
而软件系统是基于STC89C52,对太阳能充放电控制器进行了算法分析并编制了程序,软件编程实现对蓄电池的过充、反接等保护。
本太阳能充电控制电路,对蓄电池的充放电等全程进行控制,可以使蓄电池始终处在最佳状态,从而使太阳能的存储效率大大提高,实现了提高太阳能储存的课题目标。
由于实践经验缺乏,以及技术水平和实验条件的限制,本系统部分功能尚未完成,需要进一步完善,主要表现在以下几个方面:
(1)对系统中的单片机控制功能需要进一步研究,以便找到功能更加强大的主控芯片去代替,从而更好更快的实现设计要求。
(2)对蓄电池电压的采集方式过于简单,精度较低,需要探索采集精度更加精准的经典电路,使得对蓄电池的充电控制更加准确。
(3)系统软件设计可增加串行中断控制方式,从而方便用上位机(如微机)通过串行通信进行有效的监控,增强对系统的在线检测和控制功能。
-33-
参考文献
参考文献
1.马广伟,景有泉,甘林川.蓄电池内阻测量及其应用[J].通信电源技术,201*,24(2):63-64
2.HariP.DharSwadesK.Chaudhuri.Measurementsoffuelcellinternalresistancesforthedetectionofelectrodeflooding[J].SolidStateElectrochem,201*,(13):99910023.ArenstAndreasArie,OlegM.Vovk,JinO.Song.CarbonfilmcoveringoriginatedfromfullereneC60onthesurfaceoflithiummetalanodeforlithiumsecondarybatteries[J].Electroceram,201*
4.ByungWonCho&JoongKeeLee.CarbonfilmcoveringoriginatedfromfullereneC60onthesurfaceoflithiummetalanodeforlithiumsecondarybatteries[J].Electroceram,201*,025.桂长清等.动力电池[M].北京:机械工业出版社,201*.4.151~1526.袁芬.太阳能电池板与蓄电池如何匹配[J].无线电,201*,09.957.肖强,郑玉甫.混沌振子实现微弱周期小信号的检测[J].网络与通信,201*,23(1/3):147-149.
8.曹建平,江国栋.直流充电法在蓄电池内阻分析中的实用性研究[J].电子工程师.201*.34(12)
9.桂长清.风能和太阳能发电系统中的储能电池[J].电池工业,201*,2:50-54
10.M.ElMokadem1,C.Nichita1,B.Dakyo,W.Koczara.Maximumwindpowercontrolusingtorquecharacteristicinawinddieselsystemwithbatterystorage[J].DevelopmentsofElectricalDrives,201*:385396
11.WeiChen,HuiShen,BifenShu,HongQin,TaoDeng.EvaluationofperformanceofMPPTdevicesinPVsystemswithstoragebatteries[J].RenewableEnergy201*(32):1611162212.V.Salas,E.Olias,M.Alonso-Abella,F.Chenlo.Analysisofthemaximumpowerpointtrackinginthephotovoltaicgridinverterslowerthen5kw[J].ProceedingsofISESSolarWorldCongress,201*:1376-1380
-34-
参考文献
13.MehranHabibiandAlirezaYazdizadeh.NewMPPTControllerDesignforPVArraysUsingNeuralNetworks(ZanjanCityCaseStudy)[J].LNCS201*:1050-1058
14.李忠实.风光互补发电控制系统不同负载对蓄电池控制电压的影响[D].天津大学硕士论文,201*,03:10-13
15.DimosthenisPeftitsis,GeorgiosAdamidisandAnastasiosBalouktsis.AninvestigationofnewcontrolmethodforMPPTinPVarrayusingDC-DCbuck-boostconverter[J].IEEEPowerElectronicsconference,201*,6
16.MohamedAzab.ANewMaximumPowerPointTrackingforPhotovoltaicSystems[J].WorldAcademyofScience,EngineeringandTechnology,201*(44):571-574
17.A.Lay-Ekuakille,G.Vendramin,A.Fedele,L.Vasanelli,A.Trotta.PVMaximumpowerPointTrackingThroughPyranometricSensor:ModellingandCharacterization[J].InternationalJournalonSmartSensingandIntelligentSystems,201*,9(3):659-678
18.黄瑶,黄洪全.电导增量法实现光伏系统的最大功率点跟踪控制[J].电路设计,201*,03:18-19
19.车孝轩著.太阳能光伏系统概论【M】.武汉大学出版出版社,201*
20.主编左然,施明恒,王希麟.可再生能源概论【M】.21世纪高等教育建筑环境与设备
工程系列规划教材.北京:机械工业出版社,201*
21.侯玉宝,陈忠平,李成群等编著.基于Proteus的51系列单片机设计与仿真.北京:电子工业出版社,201*.9
22.邢运民,陶永红主编.现代能源与发电技术【M】.西安:西安电子科技大学出版社,201*23.(美)RussellLMeade,RobertDiffenderfer著.电子学基础【M】.北京:清华人学出
版社,201*
24.郭天祥.新概念51单片机C语言教程入门、提高、开发、拓展全攻略.北京:电子工业
出版社,201*.1
25.艾永乐,付子义.模拟电子技术基础.北京:中国电力出版社,201*.11
-35-
致谢
致谢
紧张的毕业设计终于画上了句号,这次的毕业设计即检验了我对四年来所学知识的掌握程度,又使我对自己知识体系的漏洞进行了及时的发现与弥补。尽管此次的毕业设计已经基本完成,但仍然存在很多不完善的地方,不详尽甚至不当之处,希望各位老师给予批评和谅解。
值此毕业学位论文完成之际,在此要特别感谢我的指导老师李田泽老师。在整个毕业设计期间,老师精心指导我选题、设计、撰写论文等工作。老师不但给予我指导和大力支持,而且在我遇到困难时他们悉心教导、指导我解决困难,在解决问题的同时我更学会了很多实用的知识。在此,我由衷地感谢他们并致意崇高的敬意。
同时,也非常感谢同学们对我的帮助,感谢山东理工大学大学为我提供学习成长的环境,感谢老师们四年来对我孜孜不倦之教诲,让我能够顺利完成毕业设计,更为我将来进入社会工作打下了良好的专业基础。感谢所有在帮助过我,关心过我的良师益友。
-36-
附录一系统程序
附录一系统程序
系统主程序代码controller.c:#include
#include//库函数头文件,代码中引用了_nop_()函数#include"define.h"#include"init.h"#include"AD.h"
//变量定义和函数的声明
//初始化模块
//AD转换模块//液晶1602显示模块//数据存储模块
#include"yj1602.h"#include"AT24C02.h"/*主函数*/voidmain(){
init();init1602();init24c02();battery_v=get_ad();yj1602();
if(battery_v附录一系统程序
}if(battery_v>=108)//蓄电池电压大于10.8V{
if(145附录一系统程序
}elseif(battery_v附录一系统程序
}TL0=(65536-50000)%256;//定时时间为50ms,每50ms中断一次count++;
以下代码为define.h#defineucharunsignedchar#defineuintunsignedint//定义控制信号端口//充放电控制端口
//变量定义和函数的声明
sbitPWM=P3^2;//蓄电池开关sbitFuZai=P3^3;//负载开关
sbitLED=P2^3;//充电指示灯sbitLED1=P2^4;//充电指示灯sbitLED2=P2^5;//欠压指示灯sbitbeep=P2^6;//蜂鸣器控制位ucharcount,battery_v;//AD转换sbitcsad=P2^7;sbitadwr=P3^6;sbitadrd=P3^7;
//定义AD的片选位//定义AD的WR端口//定义AD的RD端口
unsignedcharV1,V2,V3,adval,ad_vo;//1602液晶显示sbitRS=P2^0;//P2.0sbitRW=P2^1;//P2.1sbitEN=P2^2;//P2.2
unsignedcharcodetable1[]="TYNCFDKZQXTSJ";unsignedcharcodetable2[]="D:12.0N:";
-40-
附录一系统程序
unsignedcharcodelcdd[]="0123456789";ucharxs_vo,num;//AT24c02保存数据
bitwrite=0;//写24C02的标志;sbitscl=P2^4;sbitsda=P2^5;ucharp=2,a1;RS232串口通信sbitRXD=P3^0;sbitTXD=P3^1;/*声明调用函数*/voidinit();//初始化主函数
voiddelay(unsignedintt);//可控延时函数
voiddelay1();//软件实现延时函数,5个机器周期voidbuzzer();ucharget_ad();
//AD程序
//1602液晶显示部分voidwrite_com(ucharcom);voidwrite_data(uchardate);voidinit1602();voidyj1602();//AT24c02保存数据voidinit24c02();voidstart();//启动voidstop();//停止voidrespons();//应答voidwrite_byte(uchardate);//ucharread_byte();
-41-
附录一系统程序
voidwrite_add(ucharaddress,uchardate);//ucharread_add(ucharaddress);voidAT24c02();
以下代码为init.h
//初始化模块
voidinit()//初始化主函数{}
/*延时函数*/
voiddelay(unsignedintt){
unsignedintj,i;for(i=0;i附录一系统程序
/*延时函数1*/voiddelay1(){
_nop_();_nop_();_nop_();}
//蜂鸣器报警函数voidbuzzer(){}
以下代码为AD.h//ad转换程序ucharget_ad(){
csad=0;//置CSAD为0,adwr=1;_nop_();adwr=0;_nop_();adwr=1;
//启动AD转换//AD程序
//AD转换模块
beep=0;beep=1;
delay(10);_nop_();_nop_();
delay(2);//AD转换时间
P1=0xff;//读取P1口之前先给其写全1
附录一系统程序
adrd=1;//选通ADCS
_nop_();
adrd=0;//AD读使能_nop_();adval=P1;adrd=1;
//AD数据读取赋给P1口,得到ad转换的结果
ad_vo=(float)adval*150.0/256.0;//得到蓄电池的电压}
以下代码为yj1602.h
//液晶1602显示模块
return(ad_vo);
/*LCD1602显示部分子函数*/voidinit1602()//LCD初始化函数{}
voidwrite_com(ucharcom)//1602写命令函数{
EN=0;
write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加1write_com(0x01);//显示清零,数据指针清零
RW=0;delay1();
RS=0;//RW=0,RS=0,写LCD命令字delay1();
友情提示:本文中关于《太阳能光伏存储技术研究——工作总结》给出的范例仅供您参考拓展思维使用,太阳能光伏存储技术研究——工作总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。